Upload
others
View
17
Download
1
Embed Size (px)
Citation preview
SOFTVERSKO INŽENJERSTVO
Vježbe 1: Uvod u UML i UP
Robert Manger
Sveučilište u Zagrebu
PMF-Matematički odsjek
Akademska godina 2019/2020.
V-01 Softversko inženjerstvo 2
Sadržaj Vježbi 1
Svojstva UML
Svojstva UP
Veza između UML i UP
Povijest UML i UP
Građa UML modela
Vrste UML dijagrama
Primjeri UML dijagrama
Struktura UP
Temeljne aktivnosti u UP
Faze u UP
Podaktivnosti unutar temeljnih aktivnosti
V-01 Softversko inženjerstvo 3
Svojstva UML
Kratica znači Unified Modeling Language. Riječ je o
vizualnom jeziku za modeliranje sustava.
UML se oslanja na dijagrame sa strogo definiranom
sintaksom i semantikom.
Obično se koristi za modeliranje objektno orijentiranih
softverskih sustava, makar je primjenjiv i na druge
sustave.
Ne implicira nikakvu metodologiju za modeliranje, već
samo omogućuje da se rezultati modeliranja
dokumentiraju na razumljiv način.
V-01 Softversko inženjerstvo 4
Svojstva UP Kratica znači Unified Process. Riječ je o metodologiji koja
određuje kako se treba odvijati proces razvoja softvera.
UP zahtijeva da se softverski proces sastoji od određenih
faza, s time da se svaka faza realizira kroz simultano
izvršavanje određenih temeljnih aktivnosti.
UP propisuje rezultate koje pojedine faze odnosno
aktivnosti trebaju proizvesti, no ne određuje način kako
se ti rezultati trebaju dokumentirati.
Obično se koristi za razvoj objektno orijentiranih sustava,
makar je primjenjiv i na druge sustave.
Predstavlja labaviju “public domain” verziju komercijalne
metodologije RUP (Rational Unified Process).
V-01 Softversko inženjerstvo 5
Veza između UML i UP Makar su formalno nezavisni jedan od drugog, UML i UP
su u bliskoj vezi i skladno se nadopunjuju.
UP određuje kako će se odvijati proces razvoja softvera, a
UML omogućuje da se rezultati tog razvoja dokumentiraju.
UML i UP su zapravo nastali zajedno, u okviru istog
projekta, s namjerom da budu komplement jedan drugom.
Ono što danas zovemo UML zapravo je dio tog projekta
koji se odnosi na vizualni jezik, a ono što zovemo UP je
dio projekta koji se odnosi na proces.
Ipak, postoji jedna razlika: UML je prihvaćen kao svjetski
standard, a UP nije.
Većina softverskih inženjera doživljava UML i UP kao
cjelinu i primjenjuju ih na razvoj OO sustava.
V-01 Softversko inženjerstvo 6
Povijest UML i UP (1) Prije 1994. godine postojalo je više vizualnih jezika za
modeliranje te više metoda za razvoj OO sustava.
Ti jezici i metode su se natjecali za primat, te su imali svoje
prednosti i mane, pobornike i protivnike.
Najvažnije jezike razvili su Grady Booch odnosno James
Rumbaugh, a najozbiljniju metodu razvio je Ivar Jacobson.
1994. godine Booch, Rumbaugh i Jacobson zajedno rade
u tvrtci Rational Corporation na objedinjavanju svojih
jezika i metoda. Tako nastaju prve verzije UML i UP.
1996. godine udruga Object Management Group (OMG)
izdaje “request for proposal” za OO vizualni jezik za
modeliranje. Tvrtka Rational prijavljuje OMGu svoj UML.
1997. godine OMG prihvaća UML kao prvi otvoreni
industrijski standard za vizualno modeliranje.
V-01 Softversko inženjerstvo 7
Povijest UML i UP (2) 1999. godine Jacobson objavljuje knjigu u kojoj opisuje UP.
U isto vrijeme tvrtka Rational razvija svoju dorađenu verziju
UP pod nazivom RUP i implementira je u obliku softverskog
paketa Rational ROSE.
2000. godine donosi se standard UML 1.4 koji uvodi tzv.
semantiku za akcije. To je omogućilo da UML-modeli
postanu izvršivi, dakle da ih se može softverski simulirati.
2003. godine IBM preuzima Rational Corporation, tako da
RUP danas predstavlja IBM-ov proizvod.
2005. godine dovršava se standard UML 2.0 koji donosi
nekoliko novih tipova dijagrama, jezik OCL za specificiranje
ograničenja, te precizni UML metamodel.
Aktualni standard za UML je UML 2.5.1 iz 2017. godine.
V-01 Softversko inženjerstvo 8
Osobe vezane uz UML i UP
Grady Booch
James Rumbaugh
Ivar Jacobson
“tri amigosa”
V-01 Softversko inženjerstvo 9
Građa UML modela
Kao rezultat modeliranja nastaje UML model sustava
koji je sastavljen od sljedećih dijelova.
Stvari (things). To su elementi modela, na primjer klase,
sučelja, komponente, računalni čvorovi, …
Veze (relationships). One povezuju stvari i određuju kako se
stvari semantički odnose jedne prema drugima.
Dijagrami. To su pogledi na model. Na njima su nacrtane neke
stvari (kućice) i neke veze (spojnice). Služe za vizualizaciju
strukture ili ponašanja sustava.
Dijagram ili skup dijagrama nije isto što i model, makar
to ljudi često tako doživljavaju, te makar se model
obično implicitno stvara baš crtanjem dijagrama.
V-01 Softversko inženjerstvo 10
Vrste UML dijagrama
U UML 2 postoji 13 vrsta dijagrama – vidi sliku. Vrste koje
nisu postojale u UML 1 su osjenčane.
Dijagrami se općenito dijele na one koji prikazuju statičku
strukturu sustava, te one koji opisuju dinamičko ponašanje
sustava.
V-01 Softversko inženjerstvo 11
Primjeri UML dijagrama (1)
Use case dijagram (ponašanje, također kontekst)
V-01 Softversko inženjerstvo 14
Struktura UP (1) Proces razvoja softvera u skladu s UP prikazan je
sljedećom slikom.
V-01 Softversko inženjerstvo 15
Struktura UP (2) Dakle proces se sastoji od 4 faze (phases) koje se
realiziraju u vremenskom slijedu jedna iza druge.
Pojedina faza završava onda kad se dosegne njezin
međaš (milestone - skup uvjeta koje treba zadovoljiti),
dakle kad se postignu njezini ciljevi.
Svaka od faza realizira se kroz istovremeno i neprestano
odvijanje 5 temeljnih aktivnosti (core workflows).
Ipak, u svakoj fazi postoji jedna ili dvije aktivnosti na koje
je stavljen posebni naglasak i koje se obavljaju s
povećanim intenzitetom.
Kod manjih projekata faze možemo poistovjetiti s
odgovarajućim dominantnim aktivnostima – dobivamo
model sličan vodopadu.
V-01 Softversko inženjerstvo 16
Temeljne aktivnosti u UP
Zahtjevi (requirements). Utvrđuje se što sustav treba
raditi.
Analiza (analysis). Zahtjevi se analiziraju, profinjuju i
strukturiraju.
Oblikovanje (design). Predlaže se građa sustava koja
će omogućiti da se zahtjevi realiziraju.
Implementacija (implementation). Stvara se softver
koji realizira predloženu građu.
Testiranje (test). Provjerava se da li stvoreni softver
zaista radi onako kako bi trebao.
V-01 Softversko inženjerstvo 17
Faze u UP (1)
Inception.
Ciljevi: dokazati izvedivost i isplativost projekta, utvrditi ključne
zahtjeve da bi se vidio kontekst (doseg) sustava, prepoznati rizike.
Naglasak: zahtjevi i analiza.
Međaš: Life Cycle Objectives.
Elaboration.
Ciljevi: stvoriti izvršivu jezgru arhitekture sustava. Profiniti procjenu
rizika, definirati atribute kvalitete, evidentirati use caseove koji
pokrivaju 80% funkcionalnih zahtjeva, stvoriti detaljni plan za fazu
konstrukcije.
Naglasak: zahtjevi , analiza, oblikovanje.
Međaš: Life Cycle Architecture.
V-01 Softversko inženjerstvo 18
Faze u UP (2) Construction.
Ciljevi: dovršiti zahtjeve, analizu i oblikovanje, te dograditi jezgru
arhitekture do konačnog sustava. Pritom treba očuvati integritet
arhitekture i oduprijeti se pritiscima da se sustav dovrši na brzinu.
Obaviti beta test i pokrenuti sustav.
Naglasak: oblikovanje, implementacija.
Međaš: Initial Operational Capability.
Transition.
Ciljevi: popraviti uočene greške, prirediti sustav za rad u
korisničkoj okolini, distribuirati ga na korisnička radna mjesta,
stvoriti korisničku dokumentaciju, organizirati podršku korisnicima,
napraviti “post-project review”.
Naglasak: implementacija, test.
Međaš: Product Release.
V-01 Softversko inženjerstvo 19
Podaktivnosti unutar utvrđivanja zahtjeva
Pronađi i zapiši funkcionalne i nefunkcionalne
zahtjeve (proučavanje postojećih dokumenata,
radnih procesa, softvera, zakona i propisa; razgovori
s korisnicima).
Organiziraj zahtjeve u taksonomiju, odredi njihov
prioritet (obavezni, važni, neobavezni, … ).
Funkcionalne zahtjeve pretvori u use caseove
(nacrtaj use case dijagram, napiši detaljnu
specifikaciju svakog use casea u obliku tablice).
V-01 Softversko inženjerstvo 20
Podaktivnosti unutar analize
Prepoznaj i grubo opiši klase (gledaju se zahtjevi,
pogotovo use caseovi).
Ugrubo odredi veze među klasama (opet gledanjem
zahtjeva i use caseova).
Nacrtaj class dijagrame.
Grupiraj klase u pakete, nacrtaj package dijagrame.
Analiziraj kako se svaki pojedini use case može
realizirati interakcijom objekata iz uočenih klasa.
Nacrtaj sequence ili communication dijagrame.
Analiziraj složenije procese i nacrtaj activity
dijagrame.
V-01 Softversko inženjerstvo 21
Podaktivnosti unutar oblikovanja Detaljno oblikuj klase (tipovi atributa, signature metoda).
Precizno odredi vrstu (nasljeđivanje, agregacija,
kompozicija…) i multiplicitet (jedan-jedan, jedan-mnogo,
mnogo-jedan, mnogo-mnogo) za svaku vezu među
klasama.
Ažuriraj i profini class dijagrame.
Oblikuj sučelja i komponente, nacrtaj odgovarajuće
dijagrame.
Ažuriraj i profini sequence i communication dijagrame
koji prikazuju realizaciju pojedinih use caseova.
Modeliraj ponašanje složenijih objekata te nacrtaj
odgovarajuće state machine dijagrame.
V-01 Softversko inženjerstvo 22
Podaktivnosti unutar implementacije
Napiši programski kod u odabranom programskom
jeziku na temelju modela dobivenog oblikovanjem
(klase, sučelja, realizacija use case-ova, …).
Gdje je moguće uključi gotove komponente, uz
odgovarajuće prilagodbe koda kojeg sami pišemo.
Napravi plan rasporeda dijelova sustava po
računalima (čvorovima u mreži), nacrtaj odgovarajući
deployment dijagram.
Fizički stvori sve dijelove, rasporedi ih u skladu s
planom rasporeda, pokreni i testiraj sustav.