Professional Documents
Culture Documents
Pored toga to se neki detalji dizajna izvravaju pre konstrukcije, mnogo dizajnerskog posla
se izvrava unutar aktivnosti konstrukcije takoe. Zbog toga je oblast konstrukcije softvera
tesno vezana sa oblasti softverski dizajn. Kroz konstrukciju, softver inenjeri sprovode
testiranje jedinice i integralni test, pa kaemo da je zbog toga oblast kontrukcija softvera
tesno vezana i sa oblau testiranje softvera. Konstrukcija softvera tipino proizvodi veliki
broj konfiguracionih stavki, kojima je potrebno upravljati u softverskom projektu (Source
Files, Content, Test Cases, itd.), pa je oblast konstrukcije softvera tesno povezana i sa
oblau softverski konfiguracioni menadment (Software Configuration Management).
Poto se konstrukcija softvera jako oslanja na alate i metode i predstavlja verovatno
najveu Tool-Intensive oblast u softverskom inenjerstvu, kaemo da je vezana i za alate i
metode softverskog inenjerstva. Kvalitet softvera je vaan u svim oblastima softverskog
inenjerstva, ali zbog posebne vanosti kvaliteta koda, kvalitet softvera je takoe vezan sa
konstrukciju softvera. Meu svim drugim disciplinama softverskog inenjerstva, konstrukcija
softvera je navie blizak raunarskim naukama, poto se oslanja na platformu, algoritamsko
znanje, detaljne kodne prakse i dr.
Takoe je vezana sa upravljanjem projektima, u toj meri to upravljanje konstrukcijom
moe da predstavlja veliki izazov.
Konstrukcija softvera obuhvata:
Minimiziranje kompleksnosti
Osnovni faktor koji pokazuje prednost raunara nad ljudima je ograniena mogunost ljudi
da pamte kompleksne strukture i informacije, posebno tokom dueg vremenskog perioda.
Ovo vodi do najjaeg pokretaa u softverskoj konstrukciji: minimiziranje kompleksnosti.
Potreba za smanjenjem kompleksnosti primenjuje se posebno na svaki aspekat softverske
konstrukcije i posebno je kritian za proces verifikacije i testiranja softverskih konstrukcija.
Verifikacija i testiranje kompleksnih reenja moe da bude teko izvodljivo.
U softverskoj konstrukciji smanjenje kompleksnosti je ostvareno kroz naglasak na kreiranje
koda koji je jednostavaniji i itljiviji radije nego pametniji. Smanjenje kompleksnosti je
ostvareno kroz primenu standarda, koji se razmatraju u sekciji 4 - Standards in
Construction, i kroz brojne specifine tehnike koje su sumirane u podsekciji kodiranje
Predvianje promena
Veina softvera se menja tokom vremena i predvianje promena proizvodi mnoge aspekte
softverske konstrukcije. Softver je neizbeno deo promena u spoljanjim okruenjima i
promene u ovim spoljanjim okruenjima utiu na softver na najrazliitije naine.
Predvianje promena je podrano od strane mnogih specifinih tehnika predstavljenih u
temi kodiranje.
Konstrukcija za verifikaciju
Konstrukcija za verifikaciju znai izgradnju softvera na takav nain da greke i nedostaci
mogu biti brzo otklonjeni, kao i tokom nezavisnih testiranja i operacionih aktivnosti.
Postojanje verifikacije funkcionie kao i kod drugih oblasti. Specifine tehnike koje
podravaju konstrukciju za verifikaciju ukljuuju standarde kodiranja.
Vano je dobro pripremiti preglede koda i uraditi testiranja jedinice. Kod treba organizavati
u cilju podrke automatizovanom testiranju. Restriktivna upotreba je upotreba kompleksnih
jezikih struktura, tekih za razumevanje.
Standardi u konstrukciji
Standardi koji direktno utiu na temu konstrukcije ukljuuju korienje eksternih standarda.
Konstrukcija zavisi od korienja eksternih standarda za konstrukcione jezike, konstrukcione
alatke, tehnike interfejse i interakcije izmeu oblasti konstrukcije softvera i drugih oblasti.
Standardi dolaze iz razliitih oblasti, ukljuujui specifikacije hardverskih i softverskih
interfejsa, kao to su Object Management Group (OMG konzorcijum softverskih
kompanija, postavljanje standarda za distribuirane sisteme i modelovanje - www.omg.org) i
internacionalne organizacije kao to su IEEE ili ISO.
Postoje i drugi standardi:
programski jezici (jeziki standardi za jezike kao to su npr. Java ili C++)
platforme (npr. programerski interfejs standardi za pozive operativnog sistema)
aAlati (npr. standardi za notacije kao to je UML (Unified Modeling Language))
Reference:
IEEE Std 1517-1999, IEEE Standard for Information Technology-Software Life Cycle
Processes- Reuse Processes, IEEE, 1999.
IEEE/EIA 12207.0-1996//ISO/IEC12207:1995, Industry Implementation of Int. Std.
ISO/IEC 12207:95, Standard for Information Technology- Software Life Cycle
Processes, IEEE, 1996.
B.W. Kernighan and R. Pike, The Practice of Programming, Addison-Wesley, 1999,
S. Maguire, Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C
Software, Microsoft Press, 1993,
S. McConnell, Code Complete: A Practical Handbook of Software Construction,
Microsoft Press, second ed., 2004.
I. Sommerville, Software Engineering, seventh ed., Addison-Wesley, 2005.