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ślitakiekomponentyniesądo-
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żsąpokazanena
rysunku2.5.Wprzypadkusystemówkrytycznychwyjściemprocesuprojektowania
sąszczegółowedokumentyprojektoweokreślająceprecyzyjneidokładneopisyele-
mentówsystemu.Jeśliużywamypodejściasterowanegomodelami(patrzrozdz.5),
wynikiprojektowaniasądiagramamiprojektowymi.Przyposługiwaniusięzwinnymi
metodykamiwytwarzaniawyjściemprocesuprojektowaniamogąniebyćoddzielne
dokumentyspecyfikacji,alewynikimogąbyćreprezentowanewkodzieprogramu.
Procestworzeniaprogramuimplementującegosystemwynikanaturalniezpro-
jektusystemu.Choćniektóreklasyoprogramowania,takiejaksystemykrytycz-
nezewzględunabezpieczeństwo,są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ówidebugowaniesąodrębnymiprocesami.Testypo-
zwalająokreślićistnieniedefektów.Debugowaniezajmujesięzlokalizowaniem
ipoprawieniemtychdefektów.
Podczasdebugowaniamusimyformułowaćhipotezynatematdającegosięza-
obserwowaćzachowaniaprogramuinastępniesprawdzaćtehipotezywnadziei