Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2030Etapytworzeniaoprogramowania
43
końcowi,architekcisystemu,menedżerowieitd.Natymetapiekluczowejestrównież
adekwatneokreśleniemożliwychkosztówiprzewidywanegoharmonogramu(Dick
etal.2017).
2.Analizaproblemu(ang.problemanalysis)-bazujenapoprzednimkroku.Jesttoproces
ustanawianianajważniejszychrelacjiwobrębiesystemu,rozpoznawaniaregułrządzą-
cychkrytycznymiprocesami,identyfikacjinajtrudniejszychkomponentówizarysowa-
nianajważniejszychstadiówkluczowychalgorytmów,zeszczególnymuwzględnieniem
tychnajbardziejproblematycznych.Wniektórychprzypadkachmożetobyćnajkosz-
towniejszyinajbardziejżmudnyetap,angażującyekspertówzinnychobszarów.
3.Projektowanierozwiązań(ang.solutiondesign)-opierasięnapoprzednichkrokach.
Procestenpoleganawyspecyfikowaniuarchitekturycałegosystemu,rozważeniujego
wszystkichkomponentóworazichinterfejsów.Jegoelementstanowispecyfikacjanarzę-
dziistrategiiimplementacyjnych.Częstoprocestenpoleganaprzygotowaniuwykresów
Ganttaobrazującychwzajemnepowiązaniapomiędzyetapamiimplementacjisystemu,
zasobamiludzkimi,terminamiorazkamieniamimilowymi.
4.Implementacja(ang.implementation)-procestworzeniaoprogramowaniabazującyna
poprzednichkrokach.Głównymproduktemtegoetapujestkodźródłowy.Powstajeteż
postaćwykonywalna,jakzostałotopokazanenarysunku2.3.
5.Testowanieidebugowanie(ang.testing&debugging)-połączonyproceswykrywania
inaprawywadliwegooprogramowania.Testypowinnybyćdobrzezaprojektowaneprzy
użyciuformalnychmetodologii,takichjaktworzenieoprogramowaniasterowanetesta-
mi(ang.testdrivendevelopment,wskrócieTDD)czytestyjednostkowe(zob.dodatek
A.7).Problemypojawiająsięjednak,gdyprzyczynąniedziałającejpoprawnieimple-
mentacjiwadysamegoprojektulubinnychwyższychpoziomówprocesutworzenia
oprogramowania.Takwięcrolaomówionychkrokówprojektowychjestnajważniejsza.
6.Wdrożeniesystemu(ang.systemdeployment)-procesintegracjiiinstalacjisystemu
wceluzapewnieniajegoodpowiedniegodziałanianaspecjalnieskonfigurowanejplat-
formiesprzętowej.Wymagatozwykledopasowaniadookreślonychkomponentów
sprzętowych,którenp.nieobecnenawybranejplatformielubmająróżneparametry
(Somerville2016).
7.Utrzymaniesystemu(ang.systemmaintenance)-praktykizapewniającenieprzerwane
działaniesystemu,pozwalającenajegoewolucjęiniezakłóconewprowadzaniezmian.
Zpewnościąteetapytworzeniaoprogramowanianiejedynąmożliwąścieżką,jaką
możnapodążaćwtejwysocewymagającejdziedzinieinżynierii.Jesttopoprostujeden
zmożliwychmodeli.Strategieprojektoweopracowanewinnychdziedzinach,takichjak
elektronikaczyarchitektura,równieżmogąbyćpomocneprzyprojektowaniuoprogramowa-
nia.Cociekawe,postulatwspólnychwzorcówprojektowych-któredlanasstanowiądobrze
ugruntowanekomponentyoprogramowaniaposiadająceokreślonecharakterystyki-poraz
pierwszypojawiłsięwodniesieniudokonstrukcjibudynków(Alexander1977).Poprzednie
krokipowinnyrównieżznajdowaćodzwierciedleniewdokumentacjiprojektowej,której
strukturamogłabystanowićtematznaczniedłuższychrozważań.Nietrzebadodawać,że
takadokumentacjapowinnatakprecyzyjnie,jaktotylkomożliwe,itakzwięźle,jaktomoż-
liwe,opisywaćwszystkiekrokikoniecznedorozwiązaniadanegoproblemu.Wprzypadku