Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
Procesi razvoja
softvera
Prof. dr Pere TumbasProf. dr Predrag Matković
2
Struktura softverskog inženjeringaRazvojni principi,
Metodi,
Sredstva (alati) i
Procedure.
Izbor elemenata strukture uslovljen:
individualnim i kreativnim postupkom razvoja,
različitošću sistema i
različitošću okruženja.
3
Razvojni principi - određuju način izvršenja rada.
Opšti principi - modelovanja, iteracija,
dokumentovanja, ..
Metodološki koraci - modeli razvoja softvera
(model životnog ciklusa, model vodopada,
spiralni model, model prototipskog razvoja, RAD
model, inkrementalni model, kombinovani
model).
Metodi - propisani sistematski načini u izvršavanju
pojedinih aktivnosti razvoja softvera.
Mogu se kombinovati i ne postoji najbolji.
Strukturiraju se po različitim kriterijumima.
Pravilan izbor podrazumeva minimalne troškove i
visoki kvalitet proizvoda.
4
Alati - automatizovana ili poluautomatizovana
podrška metodima.
CASE tehnologije,
UML.
Procedure - sistemi metoda i alata u realizaciji
razvoja.
Opredeljuje ih - priroda problema i očekivanje
korisnika.
Definišu - redosled metoda/koraka, rezultate -
izlaze koraka, kontrole aktivnosti radi
obezbeđenja kvaliteta.
5
Metodologije - jedinstveni sistemi metoda.
SADT,
ISAC,
James Martin,
Gane and Sarson,
SSADM,
De Marco,
SDM- Pandata,
Lorensen,
Martin and Odell,
Rational Unified Process,
Agilne metodologije (Exteme Programming, SCRUM,
FDD, DSDM, Crystal, ..).
6
Životni ciklus razvoja
Prilikom idealnog razvoja softvera, proces je linearan.
Identifikacija i izbor projekata
Inicijalizacija projekata
i planiranje
Analiza sistema
Dizajn sistema
Implemen-tacija
sistema
Održavanjesistema
7
Životni ciklus:
Nakon implementacije prve verzije javljaju se – novi ili
izmenjeni zahtevi korisnika, potrebe za algoritmima koji će
ubrzati rad softvera, okruženje postavlja svoje zahteve za
promenama, tehnološki razvoj nameće potrebu za daljim
izmenama, ...
Ciklus se ubrzo ili za godinu-dve ponavlja.
8
U zavisnosti od značaja koji se pridaje pojedinim fazama razvoja softvera, forme organizacije i upravljanja razvojem softvera, iskustva zaposlenih i prirode softverskih proizvoda, razlikuju se:
Preskriptivni procesni modeli razvoja –konvencionalni procesni modeli sa delimično različitim tokom procesa razvoja ali sa istim generičkim aktivnostima;
Model vodopada i njegove različite varijacije,
Inkrementalni procesni modeli razvoja
Inkrementalni model,
RAD model,
9
Razvojni procesni modeli:
Model prototipskog razvoja,
Spiralni model,
Specijalizovani procesni modeli:
Model zasnovan na komponentama,
Procesni model sjedinjenog procesa
Kombinovani procesni modeli
10
Procesni modeli agilnog razvoja:
Extreme Programming (XP)
Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
Scrum
Crystal
Feature Driven Development (FDD)
Agile Modeling (AM)
11
Model vodopada
12
Karakteristike modela:
Sačinjavaju ga aktivnosti koje se sukcesivno
obavljaju;
Iterativne interakcije između susednih aktivnosti;
Svaka aktivnost poseduje strogo definisane ulaze i
izlaze;
Pretpostavka realizacije naredne aktivnosti su
obezbedjeni rezultati realizacije prethodne aktivnosti;
Realizacija softvera je posledica obavljenih svih
aktivnosti razvoja bez izuzetaka;
13
Karakteristike modela:
Najstariji model koji je najšire i najviše primenjivan
do danas;
Kombinuje se sa ostalim modelima, i većini čini
osnovu;
Obezbeđuje solidnu dokumentaciju i lakše
održavanje;
14
Prednosti modela:
Strogo definisani i kontrolisani proces, kojeg
karakterišu standardizovane i detaljno opisane
aktivnosti u svim fazama razvoja,
Uključeno testiranje odnosno verifikacija izvršenih
aktivnosti i dobijenih rezultata na kraju svake faze
razvoja,
Detaljna i kvalitetna dokumentacija, koja se
generiše u svim fazama razvoja, paralelno odnosno
istovremeno kada se izvršavaju pojedine aktivnosti i
Relativno laka zamena izvršilaca aktivnosti u
procesu razvoja.
15
Nedostaci modela:
Nefleksibilna podela aktivnosti razvoja u posebne
faze i nedostatak povratne sprege između faza,
Greške koje se ne otklone u pojedinim fazama
razvoja kada se vrši testiranje ili verifikacija
proizvoda, mogu imati distorziono dejstvo na razvoj
u celini,
Nemogućnost obavljanja iteracija tokom realizacije
razvoja jer iste izazivaju ozbiljne probleme i
konfuziju u primeni modela,
Teška prilagodljivost neizvesnosti koja uglavnom
egzistira na startu projekta, kada je korisniku veoma
teško da eksplicitno navede sve svoje zahteve
prema softveru,
16
Nedostaci modela:
Dugotrajan proces razvoja te korisnik mora biti
veoma strpljiv i istrajan jer su mu radne verzije
softvera dostupne tek na kraju aktivnosti razvoja, a
do tada postoji samo pisana specifikacija
funkcionalnosti budućeg softvera,
Samo potpuno gotov proizvod je upotrebljiv od
korisnika,
Visoki razvojni troškovi.
17
Modifikovani model vodopada
Analiza zahteva
Verifikacija
Promene u zahtevima
Verifikacija
Specifikacija zahteva
Verifikacija
Projektovanje
Verifikacija
Implementacija
Verifikacija
Integracija
Verifikacija
Funkcionisanje i
održavanje
Isporuka
proizvoda
Razvoj
Održavanje
18
Inicijalni koncept
funkcionalnosti
Analiza zahteva
Projektovanje
arhitekture
Faza 1: Detaljni dizajn, kodiranje,
testiranje i distribucija
Faza 2: Detaljni dizajn, kodiranje,
testiranje i distribucija
Faza n: Detaljni dizajn, kodiranje,
testiranje i distribucija
Inkrementalni model
19
Karakteristike modela:
Model u osnovi uključuje model vodopada pošto
svaki inkrement predstavlja pojedinačno primenjen
model vodopada;
Potpuno se razvija inicijalni podskup softvera, a
zatim u sekcesivnim koracima kao nadgradnja stalno
novije i komplikovanije verzije;
Svaki inkrement je kvalitetan ali zadovoljava samo
podskup korisničkih zahteva;
Inkrementi su mali dodaci kojima se upotpunjuju
funkcije softvera;
20
Prednosti modela:
Obezbeđuje transparentan razvoj proizvoda, sa
stalno vidljivim razultatima,
Uvek raspoloživ funkcionalno upotrebljiv proizvod,
koji zadovoljava određeni podskup korisničkih
zahteva,
Lako razumevanje i testiranje novorazvijenih
inkremenata proizvoda jer oni samo dodaju nove
funkcionalnosti postojećem upotrebljavanom
softveru i na taj način premošćava traumatske
efekte uvođenja kompletno novog proizvoda
odjednom,
21
Prednosti modela:
Postojanje povratne sprege i permanentne
mogućnosti ugradnje bogatog korisničkog iskustva
u redefinisani proizvod na manje skup način, putem
novih inkremenata odnosno novih funkcionalnosti
proizvoda,
Umanjeni rizik od neuspeha razvoja celine, jer se
problemi uglavnom uočavaju u pojedinim
inkrementima,
Skromniji obim kapitalnih ulaganja u razvoj
proizvoda i brži povrat investicija,
Manji broj angažovanih osoba u procesu razvoja.
22
Nedostaci modela:
Dekompozicija proizvoda na inkremente, da bi se
oni mogli integrisati, nije trivijalan zadatak, kao ni
sam proces integracije, a da se pri tome ne ugrozi
kvalitet već postojećeg proizvoda,
Specifikacija detaljnih korisničkih zahteva se kod
svakog inkrementa izrađuje neposredno pre nego
što se on razvija,
Integracija može uvek doneti neočekivane probleme
i potrebe za reorganizacijom, koja može imati
posledice po efikasnost i održavanje,
Korisnici imaju stalnu želju da menjaju svoje
zahteve.
23
RAD model
Modelovanje
organizacije
Planiranje
zahteva
Dizajn
aplikacija
Konstrukcija
Implementacija
Tim #2
Modelovanje
organizacije
Planiranje
zahteva
Dizajn
aplikacija
Konstrukcija
Implementacija
Tim #1
Modelovanje
organizacije
Planiranje
zahteva
Dizajn
aplikacija
Konstrukcija
Implementacija
Tim #3
24
Karakteristike modela:
Model podrazumeva inkrementalni razvoj sa veoma
kratkim vremenskim ciklusom od 60-90 dana.
Brza modifikacija modela vodopada u kojem svaki
ciklus rezultira potpuno funkcionalnim sistemom.
Razvoj se odvija u malim integrisanim timovima sa
korisnicima, neformalnih komunikacija.
RAD model čine sledeće faze: modelovanje
organizacije, planiranje zahteva, dizajn aplikacija,
konstrukcija, implementacija.
25
Prednosti modela:
Povećana brzina razvoja primenom metoda
prototipskog razvoja,
Umanjena funkcionalnost za korisnika i umanjena
kompleksnost,
Veći naglasak na jednostavnost i upotrebljivost
dizajna korisničkog interfejsa.
26
Nedostaci modela:
Skromnije karakteristike proizvoda u ranijim
ciklusima razvoja,
Ubrzanje procesa razvoja dovodi do gubitka
pregleda nad celinom sistema,
Brzina može postati sama sebi svrha pa se izrađuju
privremena i priručna rešenja,
Veliki projekti pri razvoju ovim modelom zahtevaju
dosta resursa da bi se kreirao odgovarajući broj RAD
timova,
Teška i problematična gradnja komponenti sistema
ukoliko se sistem ne može razložiti na module,
RAD je neodgovarajući model ukoliko je tehnički rizik
razvoja visok.
27
Hvala na pažnji!