Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
46Rozdział2
Procesywytwarzaniaoprogramowania
3.Projektowanieinterfejsu,gdziedefiniujemyinterfejsymiędzykomponentami
systemu.Taspecyfikacjainterfejsumusibyćjednoznaczna.Mającprecyzyjny
interfejs,komponentmożebyćwykorzystywanyprzezinnekomponentybezko-
niecznościznajomościprzeznieszczegółówimplementacji.Pouzgodnieniuspe-
cyfikacjiinterfejsówkomponentymogąbyćprojektowaneitworzoneoddzielnie.
4.Wybóriprojektowaniekomponentów.Wtymmiejscuwyszukujemykomponenty
nadającesiędoponownegowykorzystania,ajeślitakiekomponentyniedo-
stępne,projektujemynoweelementyoprogramowania.Projekttworzonywtej
faziemożebyćprostymopisemkomponentu,gdyszczegółyimplementacjipo-
zostawiamyprogramiście.Alternatywniemożebyćtolistazmian,któretrzeba
wykonaćwponowniewykorzystywanymkomponencie,alboszczegółowymodel
projektowywyrażonywjęzykuUML.Modelprojektowymożezostaćnastępnie
użytydoautomatycznegowygenerowaniaimplementacji.
Czynnościteprowadządowynikówprojektowania,którerównieżpokazanena
rysunku2.5.Wprzypadkusystemówkrytycznychwyjściemprocesuprojektowania
szczegółowedokumentyprojektoweokreślająceprecyzyjneidokładneopisyele-
mentówsystemu.Jeśliużywamypodejściasterowanegomodelami(patrzrozdz.5),
wynikiprojektowaniadiagramamiprojektowymi.Przyposługiwaniusięzwinnymi
metodykamiwytwarzaniawyjściemprocesuprojektowaniamogąniebyćoddzielne
dokumentyspecyfikacji,alewynikimogąbyćreprezentowanewkodzieprogramu.
Procestworzeniaprogramuimplementującegosystemwynikanaturalniezpro-
jektusystemu.Choćniektóreklasyoprogramowania,takiejaksystemykrytycz-
nezewzględunabezpieczeństwo,zazwyczajprojektowaneszczegółowoprzed
rozpoczęciemjakiejkolwiekimplementacji,częściejbędziemymielidoczynienia
zprzeplataniemsięprojektowaniaitworzeniaprogramu.Dowygenerowaniaszkie-
letuprogramunapodstawieprojektumożnawykorzystaćnarzędziawytwarzania
oprogramowania.Dotejkategoriinależykoddefiniującyiimplementującyinterfejs
iwwieluprzypadkachprogramistamusijedyniedodaćszczegółydziałaniakażdego
komponentuprogramu.
Programowaniejestdziałalnościąindywidualnąinieistniejeżaden,zwyczajo-
woprzestrzeganyprocesogólny.Niektórzyprogramiścizaczynająodkomponentów,
któredobrzerozumieją,apoichnapisaniuprzechodządotych,któresłabiejrozpo-
znają.Inniprzyjmująpodejścieodwrotne,pozostawiającdobrzeznanekomponenty
napotem,gdyżwiedzą,jakjenapisać.Częśćprogramistówlubizdefiniowaćdanena
wczesnymetapieiużywaćtychdefinicjipodczastworzeniaprogramu;innipozosta-
wiajądanebezspecyfikacjitakdługo,jaktomożliwe.
Programiścizwyklewykonująpewnetestypisanegoprzezsiebiekodu.Często
ujawniająsięwtensposóbdefektyprogramu(bugs),któremuszązostaćusunię-
te.Wyszukiwanieipoprawianiebłędówprogramujestnazywanedebugowaniem.
Testowaniepodkątembłędówidebugowanieodrębnymiprocesami.Testypo-
zwalająokreślićistnieniedefektów.Debugowaniezajmujesięzlokalizowaniem
ipoprawieniemtychdefektów.
Podczasdebugowaniamusimyformułowaćhipotezynatematdającegosięza-
obserwowaćzachowaniaprogramuinastępniesprawdzaćtehipotezywnadziei