Osnovni potek izgradnje programske opreme

Osnovni potek izgradnje
programske opreme
Življenjski cikel programske opreme
•
•
•
•
•
•
•
Podajanje problema – specifikacija zahtev
Analiza zahtev
Načrtovanje rešitve problema
Implementacija
Testiranje in validacija
Namestitev in predaja
Vzdrževanje in nadgradnja
Način podajanja problemov – specifikacija
zahtev
• Izdelava programa se začne s podajo oz. specifikacijo
zahtev
• Specifikacija zahtev je lahko neformalna ali formalna
oz. nekje vmes
• Neformalne zahteve so običajno podane v obliki
prostega besedila – problem dvoumnosti
• Formalne zahteve so običajno podane v obliki
matematičnih formul, primerov delovanja oz.
uporabe programa – problem razumljivosti
Primeri podajanja zahtev
Dvoumne in nepopolne specifikacije
• Popolne specifikacije že za nekoliko
kompleksnejše probleme je skoraj nemogoče
podati
• Naročnik predvideva, da programer pozna
področje problema do potankosti –
“samoumevne” zahteve
• Programer misli, da zna uporabnik razmišljati
na “računalniški” način
Dvoumne in nepopolne specifikacije
• Naloga iz ankete:
– Napišite program, ki bo na zaslon izpisal prvih
deset parnih števil. Pri tem naj izpusti števili 4 in 5.
2, 6, 8, 10, 12, 14, 16, 18, 20
• Ali je 22 tudi del rešitve?
• Kakšen pomen ima število 5?
Spremenljive specifikacije
• Uporabnik ugotovi, da ni podal vseh zahtev
• Uporabnik sproti spoznava dodatne zmožnosti
ponujene rešitve in možne razširitve
funkcionalnosti aplikacije
• Spremembe zakonodaje
• …
“Edina nespremenljiva lastnost specifikacij je,
da se bodo spreminjale.”
Kako priti do popolnejših specifikacij
zahtev?
• Z dobrim poznavanjem področja problema, ki
ga rešujemo
• Z intervjuji z uporabnikom
• Z zbiranjem informacij o obstoječih postopkih
dela, dokumentih, ki pri tem nastajajo,
predpisih in zakonskih odločbah, … (posnetek
stanja)
• …
Prototipiranje
• Ena izmed možnosti, da pridemo do ustreznih
specifikacij zahtev je, da izdelamo model
(prototip) končne aplikacije in jo uporabimo za
komunikacijo z uporabnikom
• Prototip lahko nadgradimo do polne aplikacije
ali pa ga zavržemo in aplikacijo
implementiramo od začetka
Analiza problema
• Z analizo lahko ugotovimo ali problem sploh
lahko rešimo v podanih časovnih (in denarnih)
okvirjih – projekt lahko tudi zavrnemo
• Z analizo določimo grob časovni plan in
resurse, ki jih bo potrebno angažirati za
izpeljavo projekta
• Z analizo določimo osnovno idejo rešitve
problema
Načrtovanje rešitve problema
• V tem koraku naderimo načrt kako bomo
problem rešili
• Določijo se osnovni sklopi (segmenti)
aplikacije
• Določi se podatkovni model (načrt baze
podatkov)
• Določi se splošna oblika uporabniških
vmesnikov, povezave z drugimi obstoječimi
aplikacijami, …
Implementacija
•
•
•
•
•
•
Izdelava programske kode – kodiranje
Izdelava poročil
Implementacija podatkovne baze
Izdelava tehniške dokumentacije
Izdelava uporabniških priročnikov
…
Testiranje in validacija
• Preverimo pravilnost delovanja programov
• Preverimo skladnost delovanja programov z
osnovnimi specifikacijami zahtev
• Preverimo in ocenimo zmogljivosti
(performanse) delovanja
Namestitev in predaja
• Namestitev programske opreme v okolju
naročnika (preko namestitvenih programov)
• Uvajanje uporabnikov
• Prevzemno testiranje
Vzdrževanje in nadgradnja
• Nameščena programska oprema je le redko
statična:
– Odkrijejo se nove napake
– Pride do spremembe zakonodaje
– Pojavijo se potrebe po izboljšavah