Professional Documents
Culture Documents
PIS Vjezbe 01
PIS Vjezbe 01
4
Modelovanje
Razvoj informacionih sistema je suviše kompleksan da bi ga
mogli planirati iz glave
Kao proizvod faze analize i dizajna dobijaju se modeli
U razvoju informacionih sistema, modeli su:
Abstraktni /ne-fizički
5
Modelovanje
Ciljevi modelovanja:
1. pomaže u vizuelizaciji sistema onakvog kakav jeste ili onakvog
kakav želimo da bude,
2. omogućava specifikaciju strukture i ponašanja sistema,
6
Performanse UP
Akronim 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 sistema, makar je
primjenjiv i na druge sisteme.
Predstavlja labaviju “public domain” verziju komercijalne
metodologije RUP (Rational Unified Process).
7
Veza između UML i UP
Iako 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 sistema.
8
Historijat UML i UP (1)
Prije 1994. godine postojalo je više vizualnih jezika za
Modeliranje, te više metoda za razvoj OO sistema.
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
kompaniji 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.
Rational prijavljuje OMGu svoj UML.
1997. godine OMG prihvaća UML kao prvi otvoreni
industrijski standard za vizualno modeliranje. 9
Historijat 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 (object constraint language) za
specificiranje ograničenja, te precizni UML metamodel.
Aktualni standard za UML je UML 2.5 iz 2015. godine. 10
Osobe vezane uz UML i UP
Grady Booch
James Rumbaugh
“tri amigosa”
Ivar Jacobson
11
Građa UML modela
Kao rezultat modeliranja nastaje UML model sistema koji je
sastavljen od sljedećih dijelova:
Stvari (things). To su elementi modela, na primjer klase,
interfejs, komponente, računarski čvorovi, …
Veze (relationships). One povezuju stvari i određuju kao 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 sistema.
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.
12
Vrste UML dijagrama
U UML 2.0 postoji 13 vrsta dijagrama (slika ispod).
Vrste koje nisu postojale u UML 1 su osjenčane.
Dijagrami se općenito dijele na one koji prikazuju statičku strukturu
sistema, te one koji opisuju dinamičko ponašanje sistema.
13
Primjeri UML dijagrama (1)
Use case dijagram (ponašanje, također kontekst)
14
Primjeri UML dijagrama (2)
Class dijagram (struktura)
15
Primjeri UML dijagrama (3)
Sequence dijagram (ponašanje)
16
Struktura UP (1)
Proces razvoja softvera u skladu s UP prikazan je
sljedećom slikom.
**Iteracija - Uzastopno ponavljanje nečega
17
Struktura UP (2)
19
Faze u UP (1)
Inception - početak
Ciljevi: dokazati izvedivost i isplativost projekta, utvrditi ključne zahtjeve da
bi se vidio kontekst (doseg) sistema, prepoznati rizike.
Naglasak: zahtjevi i analiza.
Kamen temeljac: Life Cycle Objectives.
Elaboration - izrada
Ciljevi: stvoriti izvršivu jezgru arhitekture sistema. Profiniti procjenu rizika,
definirati atribute kvalitete, evidentirati use caseove koji pokrivaju 80%
funkcionalnih zahtjeva, stvoriti detaljni plan za fazu
konstrukcije.
Naglasak: zahtjevi , analiza, oblikovanje.
Kamen temeljac: Life Cycle Architecture.
20
Faze u UP (2)
Construction – izgradnja
Ciljevi: dovršiti zahtjeve, analizu i oblikovanje, te dograditi jezgru arhitekture
do konačnog sistema. Pritom treba očuvati integritet arhitekture i oduprijeti
se pritiscima da se sistem dovrši na brzinu. Obaviti beta test i pokrenuti
sistem.
Naglasak: oblikovanje, implementacija.
Kamen temeljac: Initial Operational Capability.
Transition - prelaz
Ciljevi: popraviti uočene greške, prirediti sistem 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.
Kamen temeljac: Product Release.
21
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).
22
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.
23
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 performansa 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.
24
Podaktivnosti unutar implementacije
Napiši programski kod u odabranom programskom jeziku
na temelju modela dobivenog oblikovanjem (klase,
performanse, 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 sistema 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 sistem.
25