Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.3.Wytwarzanieoprogramowania
27
dokonywanewprocesietestowaniaakceptacyjnego.Równieżfazaprzekazaniamoże
miećkilkaiteracji,obejmującychróżnewersjeoprogramowanialubróżnepodsystemy.
Procesiteracyjnyznaczniełagodzigłównewadyprocesukaskadowego.Ponieważ
oprogramowaniejestbudowanestopniowo,akażdywytworzonyfragmentjestpodda-
wanytestowaniuiocenie,więcdużowcześniejmożnawykryćipoprawićewentualne
błędyiniezgodnościzespecyfikacjąwymagań.Równieżzmianawymagańwtrakcie
trwaniaprocesuniejestkatastrofą,leczmożebyćuwzględnionaprzezrozszerzenie
zakresujednejznastępnychiteracji.Modeltenniejestjednakpozbawionywad.Prakty-
kapokazała,żebardzotrudnojesttakustalićkolejnośćimplementowaniafunkcjiopro-
gramowania,abyrealizacjanastępnejgrupyfunkcji,wkolejnejiteracjifazykonstrukcji,
niewymagaławprowadzeniazmianwjużistniejącymkodzieprogramu.Zwiększato
ilośćpracydowykonaniaipociągazasobąkoniecznośćponownegotestowaniazmie-
nionychfragmentówprogramów.Zarządzanieprocesemiteracyjnymjestrównież
trudniejszeniżzarządzanieściśleszeregowymprocesemkaskadowym.
Proceszwinny
Zarównowkaskadowym,jakiiteracyjnymprocesiewytwórczymwszystkiedziałania
podejmujesięwkontekściecałościbudowanegosystemu.Wpoczątkowychfazach
procesuokreślasięcałośćwymagańużytkownikaicałościowąkoncepcjędziałania
systemu,takabyzobaczyćcałośćpracydowykonania.Następnietworzysięprojekt
architekturycałegooprogramowaniaidopierowtedyrozpoczynasiępisaniekodu
programu.Powstającaprzytymdokumentacjaanalitycznaiprojektowarozrastasiędo
monstrualnychrozmiarów.Celemtakiegopostępowaniajestużywającjęzykateorii
sterowaniazapewnienieglobalnejoptymalizacjibudowanegosystemu.
Praktykapokazałajednak,żeosiągnięcietegoceluwszybkozmieniającymsię
świeciejesttrudne,akosztywysokie.Popierwsze,samoopracowanieiutrzymanie
aktualnejdokumentacji,którawdużymprojekciemożeliczyćtysiącestron,jest
kosztowne.Podrugie,proceswytwórczyjestociężały,gdyżkażdazmianawprojekcie
lubkodzieprogramuwymagamodyfikacjiwieludokumentóworazponownejich
weryfikacjiizatwierdzenia.Takipowtarzającysięcyklzmianpochłaniaznaczną
częśćenergiiizasobówprojektu.
Wprocesiezwinnym(agileprocess),zwanymteżlekkim,odrzucasięcało-
ściowysposóbpostrzeganiaimodelowaniaprzyszłychrozwiązańnarzeczszybkiej
implementacjibieżącychwymagańilokalnejoptymalizacjiwodpowiedzinazmiany.
Skoroniedasięzgóryprzewidziećcałościwymagańicałościrozwiązania,któreza
chwilęmogąuleczmianie,toniewartotworzyćidokumentowaćichmodeli.Zamiast
tegotrzebaszybkostworzyćproduktrealizującyczęśćpotrzebużytkownika,apotem
rozwijaćgodalej,uwzględniającprzytymzarównozmiany,jakinowepotrzeby.
Dlategohoryzontczasowyprocesuzwinnegoobejmujeconajwyżejkilkamie-
sięcy,podczasktórychpowstajekompletnewydanie(release)oprogramowania.Jeśli