Infrastruktura za podršku životnog ciklusa razvoja aplikacija

U modernom razvoju softvera ključno je pobrinuti se da kod zadovoljava zahtjeve projektnog tima i životnog ciklusa razvoja aplikacija. Najbolje prakse i alati za upravljanje konfiguracijama softvera (SCM) pomažu u ostvarenju toga cilja praćenjem i nadziranjem promjena u kodu tijekom cijelog životnog ciklusa razvoja softvera. Prakse SCM-a kao što su nadzor revizije, uspostavljanje referentnog početnog plana, praćenje grešaka, upravljanje inačicama (build) i softverom, revizija koda i upravljanje okolinom doprinose ostvarenju navedenih ciljeva SCM-a.

SCM-u je srodna i kontinuirana integracija (CI, Continuous Integration). Kontinuirana je integracija praksa razvoja softvera u kojoj se tijekom dana vrti nekoliko softverskih inačica koje obuhvaćaju sve developerske promjene. Time se ubrzava cjelokupni ciklus razvoja, za koji su tipične nightly builds (dnevne automatizirane izgradnje inačica), što developerima omogućuje da tijekom cijelog radnog dana vide status svojeg koda. Također je olakšano brzo rješavanje i popravljanje neuspješne izgradnje inačica (build breaks) iterativnim pristupom. Kada kontinuiranu integraciju prati automatsko testiranje jedinica koda, omogućuje se razvoj softvera vođen testovima, što dodatno povećava učinkovitost SDL-a.

Najvažniji cilj ovih dviju disciplina jest povećanja kvalitete i brzine razvoja i isporuka softvera.

Alati koje koristimo za izgradnju infrastrukture jesu:

  • Subversion, GIT i CVS (repozitoriji koda)
  • Trac, Bugzilla, IBM Rational Team Concert (praćenje problema)
  • SonarQube (upravljanje kvalitetom koda)
  • Jenkins (upravljanje buildovima i  integracija promjena)
  • Sonatype Nexus (repozitorij softverskih artefakata)

Uobičajeni radni tok stoga izgleda ovako:

  1. Developer zaprima obavijest o novom/ažuriranom problemu (Trac)
  2. Developer pristupa problemu pomoću alata za praćenje problema (Trac)
  3. Problem vodi do zahvaćenog izvornog koda (Trac / Subversion)
  4. Kod se provjerava, ispravlja/mijenja i sprema s porukom u kojoj se navodi broj problema (SVN)
  5. Ažuriranje repozitorija koda pokreće izgradnju nove inačice kontinuirane integracije, ažuriranje ili provjeru izmijenjenoga koda (Jenkins / SVN)
  6. Kod se pregledava alatom za upravljanje kvalitetom temeljenim na pravilima provjere usklađenosti sa standardima kodiranja (SonarQube)
  7. Nakon uspješne izgradnje inačice, artefakti te inačice učitavaju se u repozitorij softverskih artefakata (Nexus)

U slučaju da dođe do prekida radnog toka, developeri dobivaju obavijest radi poduzimanja korektivnih mjera.

Tagovi: