You are on page 1of 29

Tema 11: OO metodologija razvoja

softvera (RUP) softvera (RUP)


dr Vladislav Mikovic
Fakultet za raunarstvo i informatiku
PROJEKTOVANJE INFORMACIONIH SISTEMA
2013/2014
1
Sadraj predavanja
1. Uvod
2. Objektno orijentisane metodologije razvoja
3. RUP metodologija
4. Ostale objektno orijentisane metodologije 4. Ostale objektno orijentisane metodologije
5. Primer
2
1. Uvod
Metodologija razvoja
OO Metodologija
Metodologija razvoja
Metodologija razvoja (system development methodology) je
standardizovani proces razvoja, koji definie skup aktivnosti,
metoda, iskustava, preporuka i automatizovanih alata koji se
koriste za razvoj i neprekidno usavravanje informacionog
sistema
klasine metodologije: SSAD klasine metodologije: SSAD
novije metodologije: spiralna, iterativna, inkrementalna, kombinovane
metodologije
objektno orijentisame: RUP, XP
Drugi naziv za metodologiju razvoja je proces razvoja sistema
4
Objektno orijentisana metodologija razvoja
Objektno orijentisana metodologija razvoja (object oriented
system development methodology) uzima objekte kao osnovu
(1) posmatra se i analizira budui sistemi definiu zahtevi, kao u
drugimnainima razvoja sistema (2) identifikuju se objekti u sistemu i
njihove meusobne relacije (3) vri se kodiranje sistema
Objektno modeliranje je donekle slino tradicionalnim Objektno modeliranje je donekle slino tradicionalnim
pristupu projektovanju sistema, jer prati sekvencijalni proces
projektovanja, ali sa razliitim pristupom
Osnovni koraci za projektovanje sistema korienjem
objektnog modeliranja su: (1) Analiza sistema (2) Dizajn
sistema (3) Dizajn objekata (4) Implementacija
5
2. Objektno orijentisane metodologije
razvoja
1. Objektno orijentisana analiza i projektovanje
2. Objedinjeni proces razvoja (UP)
2.1 Objektno orijentisana analiza (OOA) i
projektovanje (OOP)
Analiza je proces usmeren na
ispitivanje problema i zahteva, a
ne na njihovo reavanje
pronalaze se i opisuju objekti iz
domena problema, npr. koncepti-
objekti Plane, Flight u Pilot objekti Plane, Flight u Pilot
Projektovanje je proces kreiranja
konceptualnog reenja koje
zadovoljava zahteve, a ne njegove
implementacije
definiu se softverski objekti i
nain njihove saradnje radi
zadovoljenja zahteva, npr.
softverski objekt Plane ima atribut
tailNumber i metod
getFlightHistory
2.3 Objedinjeni proces razvoja
(Unified Process, UP)
Proces razvoja softvera je pristup izgradnji, isporuci i
odravanju softvera
proces razvoja predstavlja parcijalno ureeni niz koraka usmerenih ka
cilju
cilj je efikasna i predvidiva isporuka softverskog sistema, koji
zadovoljava zahteve poslovanja zadovoljava zahteve poslovanja
Objedinjeni proces (Unified Process, UP) je proces razvoja
objektno orijentisanih sistema
cilj objedinjenog procesa je omoguavanje izrade visokokvalitetnog
softvera, koji zadovoljava korisnike zahteve za predvidivo vreme i
budet
za kompleksne sisteme, objedinjeni proces predvia iterativni razvoj,
koji se sastoji od niza ciklusa, od kojih svaki rezultuje izvrnom verzijom
sistema
Faze objedinjenog procesa
Inception Elaboration Construction Transition
vreme
Objedinjeni proces organizuje rad i iteracije u etiri osnovne
vremenske faze:
1. Inception - poetna faza, definisanje obima projekta
2. Elaboration - faza razrade, planiranje, izrada specifikacija i osnovna
arhitektura
3. Construction - faza izgradnje sistema
4. Transition - faza prenosa sistema krajnjim korisnicima
Iteracije i preseci (milestones)
Preliminarna
Iteracija
Iteracija 1 Iteracija 2
Inception Elaboration Construction Transition
Kontrolna taka/presek
Verzija
Konana verzija
Svaka faza i iteracija nosi odreeni rizik i vremenski zavrava u nekoj
kontrolnoj taki
Pregled projekta u kontrolnoj ili presenoj taki ocenjuje stepen
zadovoljenja korisnikih zahteva i potrebu za eventualnim
prestrukturiranjem projekta
Svaka iteracija proizvodi novu verziju, stabilni izvrni podskup konanog
sistema
Kontrolna taka/presek
Verzija
Konana verzija
Discipline objedinjenog procesa
Poslovno modeliranje (Business Modeling)
Implementation
Analiza i projektovanje (Analysis&Design)
Faze procesa razvoja
Discipline procesa razvoja
Specifikacija zahteva (Requirements)
Elaboration Transition Inception Construction
Management
Environment
Implementation
Test
Preliminarne
Iteracije
Iter.
#1
Iteracije
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Configuration Menagment
Pomone discipline
predmet Projektovanje
informacionih sistema
Discipline i faze
Sve iteracije podrazumevaju vremenski promenljiv rad na
veini disciplina
prve iteracije se preteno bave zahtevima i projektovanjem, a naredne
u sve manjoj meri
Aktivnosti i rezultati nisu obavezni u svakom projektu, osim Aktivnosti i rezultati nisu obavezni u svakom projektu, osim
kda
rezultati razvoja se odreuju prema konkretnim potrebama projekta
1. Poetna faza (Inception):ta treba razviti
Odgovara na vei broj pitanja/dilema:
vizija poslovnog reenja
ocena izvedivosti projekta
odluka o samostalnom razvoju ili kupovini
gruba procena trokova gruba procena trokova
odluka o nastavku projekta razvoja
Poetna faza obuhvata rad na ustanovljavanju poetnih optih
ciljevi projekta, odreivanju izvedivosti i odluivanje o daljem
radu na razradi projekta
Rezultati poetne faze
Definisani opti ciljevi i ogranienja projekta
Opis funkcionalnih i nefunkcionalnih zahteva - Use Case model
Dopunske specifikacije - opis ostalih zahteva
Renik - najvaniji pojmovi iz razmatrane problematike
Lista rizika i plan upravljanja rizicima (poslovni, tehniki i planski rizici,
postupci prevazilaenja) postupci prevazilaenja)
Prototipovi i ogledni projekti (proof-of-concepts)
Plan iteracija, za naredne faze i plan razvoja po fazama - procena trajanja
faze razrade i potrebnih resursa (softverski alati, ljudi, obuka i dr.)
Opis toka projekta po fazama objedinjenog procesa
Svi rezultati se delimino realizuju i dopunjavaju u narednim iteracijama
Dijagrami sluajeva korienja (Use-Case)
Pomau u reavanju osnovnog problema u procesu
projektovanja sistema: izvlaenju tanih i neophodnih
projektnih zahteva od uesnika u razvoju i njihovo
predstavljanje na nain razumljiv onima koji ih verifikuju i
odobravaju odobravaju
podaci i modeli procesa, prototipovi, specifikacije zahteva
razumljivi projektantima, ali ne i korisnicima
dolazi do nerazumevanja, usporavnja razvoja i prekoraenja trokova
Najtei pojedinani deo procesa razvoja softvera je precizno
definisanje onog to treba uraditi
2. Faza razrade (Elaboration):kako razviti
sistem
Detaljna razrada korisnikih zahteva (najvei deo, oko 80%)
Odreivanje izvrne i stabilne arhitekture
definisanje, implementacija i testiranje interfejsa glavnih komponenti
identifikacija zavisnosti spoljnih komponenti i sistema
delimina implementacija kljunih komponenti
delimina implementacija koda (oko 10%) delimina implementacija koda (oko 10%)
Arhitektura sa kljunim sluajevima korienja
manji deo sluajeva korienja nosi 80% arhitekture
projektovanje, implementacija i testiranje vanih sluajeva korienja
Verifikacija arhitekture
testovi optereenja, za proveru ponaanje sistema kada je na granici resursa ili
ih mora konkurentno obezbediti
testovi punjenja, performanse i skalabilnost
Stalna procena poslovnih sluajeva korienja, rizika i plana razvoja
3. Faza izgradnje (Construction): izrada
sistema
Zavretak modela zahteva i projekta
Projektovanje, implementacija i testiranje komponenti
prototip sistema za prikaz korisniku
inkrementalno ukljuivanje izvrne arhitekture radi zavretka sistema
Razvija se dnevno ili nedeljno (automatizovano)
Testiranje svake verzije Testiranje svake verzije
Automatsko regresivno testiranje (potvrda se da su ostali delovi sistema ostali
stabilni posle zavretka iteracije)
Test punjenja i stresa kako bi se osigurao integritet arhitekture
Isporuka funkcionalnog softvera (beta verzija)
dokumentaciju uvoenja reenja u sistem, korisnika dokumentacija i materijali
za obuku
Izrada opisa verzije
4. Faza prenosa (Transition): isporuka
sistema
Potvrda da realizovani sistem zadovoljava traene funkcionalnosti i
performanse
Uvoenje inkrementalne programski korektne verzije
Auriranje korisnikih prirunika i dokumentacije uvoenja
Auriranje verzije
Voenje analize projekta u toku perioda zatija Voenje analize projekta u toku perioda zatija
3. RUP metodologija
Specijalizacija UP procesa ...
Ima sopstvene licencirane razvojne alate
4. Ostale objektno orijentisane
metodologije
1. Agilne metodologije
2. Ekstremno programiranje (XP)
3. SCRUM
4. MSF 4. MSF
4.1 Agilne metodologije
Problemi u razvoju softvera korienjem strogih metodologija,
(npr. metod vodopada), krajem 20. veka prouzrokuju pojavu
manje strogih metodologija (lightweight, agile)
Osnovna ideja je da manje projekte (i timove) treba manje
optereivati brirokratijom, ve treba nai razuman kompromis optereivati brirokratijom, ve treba nai razuman kompromis
Principi:
isporuka onoga to korisnik trai
to ea isporuka rezultata (iterativni i inkrementalni pristup)
najjednostavnije mogue reenje
prilagoavanje dobroj praksi (iskustvo)
vrednovanje individualnih mogunosti
meusobna saradnja celog razvojnog tima
21
4.2 Ekstremno programiranje (XP)
Agilna metodologija, podrazumeva i prihvata stalne promene
sistema kao injenicu
Realizuje se kroz male ili srednje razvojne timove, koji rade u
tesnoj saradnji s korisnikom
Ne koristi se precizno planiranje, ve se tei brzim, opipljivim
rezultatima, koji se odmah predoavaju korisniku
Ne koristi se precizno planiranje, ve se tei brzim, opipljivim
rezultatima, koji se odmah predoavaju korisniku
Elementi metodologije ekstremnog
programiranja
Planiranje
korisnik pie scenario
razvojni tim procenjuje trajanje i trokove
korisnik donosi odluku o sledeem koraku
jedna razvojna iteracija - nekoliko scenarija, razvoj od nekoliko nedelja jedna razvojna iteracija - nekoliko scenarija, razvoj od nekoliko nedelja
Analiza
sistem se posmatra kao skup korisnikih scenarija
jedan scenario - jedan sluaj korienja
(kao UML Use Case, ali neformalno)
Elementi metodologije
ekstremnog programiranja
Testiranje
testovi se piu pre programiranja sistema
svaki scenario je jedan skup testova
svi testovi se moraju izvravati sve vreme
Kodiranje
potuju se standardi kodiranja potuju se standardi kodiranja
dobar stil i dokumentacija koda
kodiraju se najjednostavnije celine koje mogu da funkcioniu
Programiranje u parovima
sav kod se pie u parovima
neprekidna komunikacija, programiranje i analiza koda
zamena uloga, vie puta u toku dana
4.3 Scrum
Naziv po ragbi formaciji od osam igraa, koji kao grupa
(jedinstvena celina) pomeraju loptu po terenu u zajednikom
cilju
Iterativna metodologija, koja podrazumeva da nisu svi zahtevi
odmah jasni i poznati, ve se iskustveno otkrivaju u toku odmah jasni i poznati, ve se iskustveno otkrivaju u toku
razvoja
Agilna metodologija, bliska XP, podrazumeva dnevne sastanke
na kojima programeri iznose probleme koji utiu na
napredovanje, koje razreava tzv. Scrum Master
Povratna veza prema svim uesnicima preko dnevnika
mesenih zadataka Backlog
Nije pogodna za velike projekte
25
Scrum
Obuhvata upravljanje
zahtevima, formiranje
iteracija (planiranje sprinta),
kontrole implementacije i
isporuke klijentu isporuke klijentu
empirijski metod i tehnike
menadment drugih projekta
Dnevni sastanci, 30-dnevne
iteracije
1. ta je uraeno jue?
2. ta e se raditi danas?
3. Kakve se danas prepreke
oekuju?
26
4.4 Microsoft Framework (MSF)
Principi, modeli, discipline,
koncepti i preporuke za isporuku
IT reenja kompanije Microsoft
Opti principi visokog nivoa, samo
okvir (framework)
doputa izbor metodologije doputa izbor metodologije
(klasine ili agilne)
koncentrie se na rezultate
Modeli
model organizovanja (team)
uloge lanova tima (menadment,
arhitektura, razvoj, testiranje, isporuka,
podrka)
model upravljanja (governance)
faze procesa razvoja (vizija, planiranje,
razvoj, verifikacija i isporuka)
27
Literatura
1. Mikovic V., Projektovanje informacionih sistema (predavanja), Univerzitet
Sinergija, 2013
2. Kroll P., P. Kruchten, Rational Unified Process Made Easy A Practitioners
Guide to RUP, John Waley, 2003
3. Kurbel K. E., The Making of Information Systems: Software Engineering
and Management in a Globalized World, Springer, 2008
4. Sommerville I., Software Engineering, 9thEd, Addison Wesley, 2011 4. Sommerville I., Software Engineering, 9thEd, Addison Wesley, 2011
5. Pressman C., Software Engineering: A Practitioners Approach, 5thEd,
McGrow-Hill, 2001
6. IBM Rational Product Training: DEV475 Mastering Object-Oriented
Analysis and Design with UML
7. Prirunici za programske alate i Web reference
28
dr Vladislav Mikovic
Projektovanje informacionih sistema
Tema 11: OO metodologija razvoja softvera (RUP)
Pitanja?
29

You might also like