RUP-Rational Unified Process
RUP-Rational Unified Process
, 2020
Sadržaj:
1. RUP - Rational Unified Process.......................................................................................2
3. Faza elaboracije.............................................................................................................10
4. Faza konstrukcije...........................................................................................................12
5. Faza Tranzicije..............................................................................................................13
7. Literatura.......................................................................................................................18
1
1. RUP - Rational Unified Process
RUP je framework (radni okvir) koji je moguće prilagođavati potrebama organizacije koja
ga usvaja. On sadrži skup dobro definisanih preporuka i uputstava za uspešan raz-voj
softverskog proizvoda. Upravo radi toga se kod navođenja definicije RUP-a izbe-gava izraz
metodologija, koji predstavlja znatno čvršći set pravila od navedenog izraza framework.
Međutim pojedinačnim podešavanjem RUP-a organizacija može da kreira svoj metodološki
okvir, a u okviru njega i čvrsta pravila izgrađena na osnovu datih pre-poruka i uputstava.
U izgradnji informacionog sistema, RUP preporučuje korišćenje raznih metoda i tehnika, ali
su svakako najdominantnije tehnike modelovanja korišćenjem Unified Mo-deling
Language-a (u nastavku UML) tj. jedinstvenog jezika za modelovanje. Za RUP se čak može
reći da predstavlja uputstvo za korišćenje UML-a.
RUP je inicijalno zamišljen za razvoj velikih projekata, ali je svoju primenu našao i u
srednjim i malim softverskim projektima. Softverski timovi, naročito veliki, znatno u-
napređuju svoju produktivnost korišćenjem RUP-a. RUP omogućuje svakom članu raz-
vojnog tima lak uvid u bazu znanja, zasnovanu na uputstvima, templejtima i uputstvima za
korišćenje alata, što predstavlja podršku u svim kritičnim razvojnim aktivnostima. To
doprinosi da svi članovi razvojnog tima, bez obzira na aktivnosti koje obavljaju, ko-riste
zajedničku metodologiju, jezik i pogled na to kako treba razvijati softverski proiz-vod.
2
1.1. Principi na kojima je zasnovan RUP
Klasični proces razvoja softvera se zasniva na modelu vodopada, koji je ranije opisan.
Alternativa modelu vodopada jeste iterativno-inkrementalni model razvoja softvera.
Korišćenjem ovoga modela dolazi se do relativno brze realizacije početne verzije sof-
tvera koja se razvija dodatnim iteracijama. Takođe, integrisanje i testiranje softvera se
obavlja češće, te se na taj način postiže smanjenje rizika. Što je razlika između trenutka
otkrivanja greške i trenutka nastanka greške veća, to je njeno otkrivanje i otklanjanje
teže i skuplje. Kao što se vidi na slici 1., iterativni proces se sastoji iz više sekvencijal-
nih procesa zasnovanih na modelu vodopada. Time je vremenska dimenzija izmeštena
u odnosu na sadržajnu dimenziju, pa je vreme između potencijalnog nastanka i otkri-
vanja grešaka značajno skraćeno.
3
Nepravilnosti učinjene tokom analize zahteva, dizajna i
implementacije otkri-vaju se ranije;
Slika 1.
4
jući navedenim podacima činjenicu, da su troškovi otklanjanja grešaka nastalih u obla-
sti zahteva izuzetno visoki, iako ih iterativan pristup značajno umanjuje, nameće se za-
ključak da se zahtevima ne posvećuje dovoljna pažnja, u procesu razvoja informacionih
sistema.
Arhitektura je prevashodno bitna za razvojni tim koji realizuje projekat, ali indirektno utiče i
na zadovoljstvo krajnjeg korisnika. Arhitektura sistema obuhvata grupu značaj-nih odluka o:
5
Organizaciji softverskog sistema
Izboru gradivnih elemenata i njihovih interfejsa, od kojih je sistem sastavljen
Ponašanju gradivnih elemenata, određenom upravo njihovom saradnjom
Kompoziciji strukturalnih i bihevioralnih elemenata u veće rastuće podsi-steme
Arhitektonskom stilu, koji objedinjuje gore navedene odluke u jednu cjelinu.
Činjenica da jedna slika govori više nego hiljadu reči je poznata odavno. Međutim, ono što je
nedostajalo jeste standardizacija. UML kao jedinstveni jezik za modelovanje je prihvaćen od
strane vodećih svetskih IT kompanija i nametnut kao standard u softver-skoj industriji. On
služi za vizuelizaciju, specifikaciju, konstrukciju i dokumentaciju sistema koji se izgrađuje.
UML je omogućio svim članovima razvojnog tima da razgova-raju istim jezikom.
6
Standardizacija je dovela do toga da se UML izučava u školama i fakultetima širom sveta, pa
je time zamenjivost bilo kojeg člana razvojnog tima zna-čajno olakšana. RUP i UML
predstavljaju nerazdvojivu celinu.
Vizuelno modelovanje podiže kvalitet procesa razvoja softverskog proizvoda, što je lako
uočljivo preko sledećih karakteristika:
Kao što slika br. 2. ilustruje, softverski problemi su 100 do 1000 puta skuplji kada se
pronalaze i otklanjaju nakon uvođenja nego pre toga. Upravo zato, važno je kontinui-rano
proveravati kvalitet sistema sa posebnim akcentom na njegovu funkcionalnost, pouzdanost,
aplikativne performanse i sistemske performanse.
7
2
Slika 2.
Provera kvaliteta softvera pruža brojna rešenja ključnim uzrocima problema razvoja
softvera:
Ključni izazov prilikom razvoja softverskih sistema je usklađivanje rada razvojnih inžinjera,
organizovanih u razvojne timove koji zajedno rade na više iteracija stvarajući softverski
proizvod. Tokom razvoja novonastajući sistem se menja i razvija, a kontrola tih razvojnih
promena je nužna za sprečavanje haosa u procesu razvoja.
2
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
8
Usklađivanje aktivnosti, artifakta i uloga predstavlja ponovljivi workflow koji prati raz-voj
softvera kroz promene u procesu razvoja. Standardizacija workflow-a, sastavljenih od
aktivnosti, artifakta i uloga, u procesu razvoja omogućuje praćenje promena, rano otkrivanje
problema i brzo reagovanje u cilju njihovog otklanjanja.
RUP razvoj informacionih sistema postavlja između dve dimenzije, vremenske i sadr-žajne.
Vremenska dimenzija je podeljena u četiri faze: uvođenje, elaboracija, konstruk-cija i
tranzicija. Sadržajna dimenzija je podeljena u šest osnovnih i tri pomoćne disci-pline. U
osnovne spadaju disciplina poslovnog modelovanja, disciplina zahteva, disci-plina analize i
dizajna, disciplina implementacije, disciplina testiranja i disciplina ra-spoređivanja. Pomoćne
discipline su konfigurisanje i upravljanje promenama, uprav-ljanje projektom i okruženje.
Svaki element matrice RUP-a predstavlja kombinaciju e-lemenata statičke strukture RUP-a i
vremenskog rasporeda istih.
RUP je moguće posmatrati kroz dve dimenzije, kroz dinamičku u kojoj se proces opi-suje kroz
životni ciklus razvoja proizvoda i statičku u kojoj se opisuju aktivnosti i re-zultati aktivnosti
podeljeni na uloge.
Slika 3.
RUP razvojni proces predstavlja kroz ciklus od četiri faze. Kao krajnji proizvod ovog ciklusa
dobija se gotov softverski proizvod.
Uvođenje predstavlja prvu fazu RUP-a. Krajnja svrha ove faze jeste stvaranje pretpo-stavki
za potpunu saradnju svih stejkholdera budućeg projekta, kao i presretanje i stav-ljanje pod
9
kontrolu većine rizika pre započinjanja razvojnih aktivnosti. U skladu sa na-vedenom
svrhom kao najznačajniji ciljevi se nameću:3
U ključnoj tački faze Uvođenja, a nakon ispunjenja postvaljenih ciljeva, potrebno je znati
odgovore na sledeća pitanja:
Da li je projekat izvodljiv?
Da li je nivo rizika prihvatljiv?
Da li je projekat finansijski isplativ?
3
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
10
U prethodnom pasusu uvedeno je nekoliko novih pojmova koji će u kasnijem izlaganju biti
često upotrebljavani. To su sledeći pojmovi:
11
2. Koraci u fazi uvođenja
Slika 4.
4
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
9
3. Faza elaboracije
Faza Elaboracije predstavlja drugu fazu životnog ciklusa razvoja proizvoda po RUP-u.
Krajnja svrha faze Elaboracije jeste obezbeđivanje takve arhitekturalne osnove koja će
obezbediti stabilno i neometano sprovođenje aktivnosti u fazama Konstrukcije i Tran-
zicije. Na ovakav način se vrši značajna mitigacija rizika u tehničko tehnološkom do-
menu razvojnog projekta. Do stabilnosti arhitekture se dolazi kroz ocenjivanje jedne ili
više arhitekturalnih alternativa, uvažavajući pri tome ključne zahteve, čije zadovoljenje
zavisi od arhitekturalne osnove budućeg rešenja. Do postizanja krajnje svrhe faze Ela-
boracije se dolazi kroz dostizanje primarnih ciljeva:
10
Saglasnost ključnih stejkholdera da je definisanu Viziju moguće postići ukoliko postojeći
planovi budu uspešno sprovedeni, posmatrano u kontekstu razvijene arhitekture.
Stvarni utrošak resursa postavljen u odnos sa planiranim utroškom resursa treba da je
prihvatljiv.
Slika 5.5
Koraci koji se sprovode u fazi uvođenja su:
5
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
11
4. Faza konstrukcije
Krajnja svrha faze Konstrukcije jeste dostizanje potpune razumljivosti zahteva i kom-
pletiranje razvoja sistema, poštujući unapred definisanu arhitekturu sistema. Faza
Konstrukcije se može posmatrati kao proizvodna faza u kojoj se na osnovu dobro raz-
rađenog modela (dobijenog kroz prethodne faze) izrađuje u potpunosti upotrebljiv
proizvod, koji će biti završen kroz faze Konstrukcije i Tranzicije.
Slika 6.
Na slici 6. je prikazan workflow faze Konstrukcije. Koraci koje je potrebno realizovati uovoj fazi su
sledeći:
6
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
12
3. Izrada materijala za podršku;
4. Tekuće održavanje i podrška;
5. Integracija i testiranje;
6. Planiranje naredne iteracije i
7. Generisanje paketa za raspoređivanje.
5. Faza Tranzicije
Glavni zadatak faze Tranzicije jeste da se softverski proizvod koji se razvija učini
dostupnim za korišćenje krajnjim korisnicima. Kroz fazu Tranzicije potrebno je spro-vesti
i testiranje proizvoda kao obaveznu aktivnost u pripremi za isporuku. Povratne informacije
koje se dobiju kroz takav vid testiranja mogu poslužiti za manje korekcije proizvoda. Na
kraju ove faze proizvod treba da je isporučen krajnjem korisniku, a pro-jekat treba da je u
potpunosti spreman za zatvaranje. U nekim slučajevima kada proiz-vod nije razvijen u
skladu sa zahtevima korisnika, a kada korekcije potrebne da se do-vede u željeno stanje
nisu male, neophodno je pokretanje novog životnog ciklusa za razvoj proizvoda (slika 7.).
Slika 7.
7
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
13
Faza Tranzicije može da bude vrlo jednostavna, najčešće kod projekata koji su se bavili
razvojem nove verzije postojećeg proizvoda, ili vrlo kompleksna, kod velikih i sigurno-sno
zahtevnih sistema. Međutim, postoje operativni ciljevi koji se moraju zadovoljiti u svakom od
navedenih slučajeva:
Faza Tranzicije se, kao što je prikazano na slici 8., sprovodi u jednoj ili više iteracija. Kada se
sprovedu sve planirane iteracije stanje artifakta bi trebalo biti u skladu sa pla-niranim. Stanje u
ključnoj tački u ovoj fazi je najprepoznatljivije, jer svi artifakti treba da su kompletirani i
proizvod treba da je isporučen.
Slika 8.
8
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
14
5.1. Koraci u fazi tranzicije
Slika 9.
9
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-
ukratko.pdf
15
6. Jedinstveni jezik za modelovanje UML (Unified Modeling Language)
Jezik za modelovanje može biti bilo koji opis koji pomaže izgradnji sistema. Taj opis, govoreći o
softverskim proizvodima, može biti predstavljen pseudo kodom, dijagra-mima, slikama,
tekstualnim opisima, itd. Elementi kojima se vrši modelovanje čine no-taciju za modelovanje.
Ukoliko se kao elementi koriste grafički simboli jezik za mode-lovanje je grafičkog tipa, tj.
grafički jezik za modelovanje. UML poseduje grafičku nota-ciju, te se može kategorizovati kao
grafički jezik za modelovanje.
Grafički jezici poput UML-a koriste se već dugo u softverskoj industriji. Međutim ono što je
specifično za sve te grafičke jezike, preteče UML-a, jeste njihova neusaglašenost. Upravo ta
neusaglašenost je bila inicijalna kapsula koja je uticala na nastanak UML-a i koja pomaže da se
razumeju kvaliteti koje je UML doneo svojim nastankom softverskoj industriji.
UML je nastao kao posledica saradnje Grady Booch-a, Jamesa Rumbaugh-a i Ivar Jacob-son-a.
Svako od njih se bavio razvojem sopstvenih notacija, a njihovim ujedinjenjem, pod okriljem
kompanije „Rational Software“, nastao je UML. Popularan naziv za trojicu idejnih tvoraca UML
je „tri amigosa“. Danas kompanija „Rational Software“ posluje kao deo IBM-a.
UML danas predstavlja relativno otvoren standard, kontrolisan od strane Object Mana-gement
Group (u nastavku OMG), nezavisnog konzorcijuma kompanija koji upravlja standardima u
objektno orijentisanom razvoju. Najnovije specifikacije UML je moguće pronaći na sajtu OMG-
a, www.omg.org. Istorijski posmatrano UML je nastao ujedinjenjem sledećih pristupa:
10
https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf
16
Probrane objektno orijentisane tehnike, dodatne tehnike koje su se inicijalno našle u
UML-u.
Inicijativa za stvaranje UML-a je krenula još 1996. godine, kao pokušaj da se prevaziđe rat
objektnih notacija, te da se jedna notacija nametne kao standard. Kao kompanija za realizaciju
ovoga projekata nametnula se „Rational Software“ korporacija. To nije bilojednostavno, te je za
ovakav izbor bila potrebna saglasnost velikih softverskih giganata poput IBM-a ili Microsoft-a.
Zajednički interes je doneo prevagu, te „Rational Software“ korporacija ujedinjuje Boocha-a,
Jacobson-a i Rumbaugh-a, te izbacuje UML kao jedin-stveni jezik za modelovanje. U saradnji sa
OMG-om UML se 1997. godine nameće kao standard, a njegov munjevit razvoj dokazuje
opravdanost političkog delovanja na raz-voju UML-a. Trenutno aktuelna verzija UML-a je 2.0.
17
7. Literatura
Wikipedia11
Rational Team, 200512
IBM Developer – Rational - Library13
11
https://en.wikipedia.org/wiki/Rational_Unified_Process
12
http://www.ef.uns.ac.rs/predmeti/oas/procesi-razvoja-softvera/Beleske-sa-predavanja-RUP-UML-ukratko.pdf
13
https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf
18