You are on page 1of 4

Konstrukcija softvera (Software Construction)

U ovoj lekciji obraivaemo:

oblast konstrukcija softvera


podoblasti konstrukcije softvera:
o Osnove konstrukcije softvera,
o Upravljanje konstrukcijom i
o Praktina razmatranja

Na slici je prikazan ematski prikaz softverske konstrukcije:

Figure 1. Breakdown of topics for the Software Construction KA.


(preuzeto sa: http://www.computer.org/portal/web/swebok/html/ch4)

Termin kontrukcija softvera odnosi se na detaljno kreiranje softvera kroz kombinaciju


kodiranja, verifikacije, testiranje jedinice, integralnog testiranja i Debugging-a. Oblast
konstrukcije softvera je povezana sa svim ostalim oblastima softverskog inenjerstva,
posebno sa softverskim dizajnom i testiranjem softvera. Sama oblast konstrukcije softvera
ukljuuje znaajnu meru softverskog dizajna i aktivnosti testiranja.
Koristi izlaze iz dizajna i obezbeuje jedan od ulaza za testiranje. Detaljnije granice izmeu
dizajna, kreiranja i testiranja variraju u zavisnosti od procesa ivotnog ciklusa softvera koji
se koristi u projektu.

Copyright Link group

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:

Osnove konstrukcije softvera (Software Construction Fundamentals),


Upravljanje konstrukcijom (Managing Construction) i
Praktina razmatranja (Practical Considerations)

Osnove konstrukcije softvera


Osnove konstrukcije softvera ukljuuju:

Minimiziranje kompleksnosti (Minimizing Complexity)


Predvianje promena (Anticipating Change)
Konstrukcija za verifikaciju (Constructing for Verification)
Standardi u konstrukciji (Standards in Construction)

Prva tri koncepta se primenjuju na dizajn isto kao i na konstrukciju.

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

Copyright Link group

(Coding). Podrane su i od konstrukcijski fokusiranih tehnika kvaliteta predstavljenih u temi


kvalitet konstrukcije (Construction Quality).

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))

Vano je i korienje internih standarda, standardi koji su kreirani na organizacionoj osnovi


na korporativnom nivou ili za korienje u specifinim projektima. Interni standardi
podravaju koordinaciju grupnih aktivnosti, minimiziranje kompleksnosti, predvianje
promena i konstrukciju pogodnu za verifikaciju.

Reference:

K. Beck, Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999,


J. Bentley, Programming Pearls, second ed., Addison-Wesley, 2000,
A. Hunt and D. Thomas, The Pragmatic Programmer, Addison-Wesley, 2000

Copyright Link group

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.

Copyright Link group

You might also like