Software Architecture
Download
Report
Transcript Software Architecture
Oblikovanje programske potpore
Arhitektura programske potpore i UML (2.dio)
Izvori:
Sommerville, I., Software engineering, 8th ed., Addison-Wesley,
2007.
G. Booch, J. Rumbaugh, I. Jacobson: Unified Modeling Language
User Guide, 2nd Ed., 2005.
Simon Bennett, John Skelton, Ken Lunn: Schaum's Outline of UML,
2nd Ed., 2005.
RATIONAL Software (IBM) – prezentacija.
OMG Tutorial Series – prezentacija.
Gunnar Overgaard, Bran Selic, Conrad Bock, Cris Kobryn –
prezentacija.
1
Modeli i dijagrami
Model je pojednostavljeni opis sustava iz određene perspektive.
Dokumentira se dijagramima.
Obilježja dijagrama:
Dijagram je pogled u model predstavljen s aspekta određenog
dionika.
Dijagram je djelomičan opis sustava.
Dijagram mora biti semantički konzistentan s ostalim pogledima.
U okviru UML standarda (v 1.3) postoji
devet standardnih dijagrama:
Statički pogledi (5 dijagrama):
dijagram obrazaca uporabe, dijagram razreda, dijagram objekata,
dijagram komponenata, dijagram razmještaja
Dinamički pogledi (4 dijagrama):
sekvencijski dijagram, komunikacijski (kolaboracijski) dijagram,
dijagram stanja (“statechart”), dijagram aktivnosti
2
UML dijagrami
U UML v 2.2 postoji 14 dijagrama:
Statički pogledi:
obrasci uporabe, razredi, objekti, komponente, razmještaj,
profili, složeni (engl. composite), paketi
Dinamički pogledi:
sekvencijski, komunikacijski, stanja, aktivnosti
pregledni interakcijski (engl. interaction overview),
vremenski (engl. timing)
(5 dodatnih dijagrama iz UML 2.2 nije potrebno detaljno poznavati)
3
Modeli, pogledi i dijagrami
Statički pogledi
Razmatrano ranije
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Komunikacijski
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Dijagrami
interakcija
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
Dinamički pogledi
4
UML dijagrami
Dijagrami interakcija
(dijagrami uzajamnog djelovanja)
Sekvencijski dijagrami
Komunikacijski dijagrami
5
Dijagrami interakcija
Pokazuju interakcije između instanci razreda u objektno
usmjerenom modelu sustava.
Mogu se koristiti i za prikaz interakcija između entiteta u drugim
modelima arhitekture programske potpore.
•
To su grafovi instanci (vjerojatno s međuvezama) i izvorima
poruka (podražaji).
•
Pokazuju postojeće instance.
•
Pokazuju stvaranje i brisanje instanci.
Vrste dijagrama interakcija (sintaksno i semantički povezani):
•
•
Sekvencijski dijagrami (fokus na vremenske odnose).
Komunikacijski (kolaboracijski) dijagrami (fokus na
strukturne odnose). Oba naziva su u uporabi.
6
Dijagrami interakcija
Interakcije se modeliraju ako se želi:
•
specificirati kako instance uzajamno djeluju.
•
identificirati sučelja (engl. interfaces).
raspodijeliti zahtjeve (engl. distribute requirements).
Sekvencijski dijagrami:
•
•
pokazuju eksplicitnu vremensku uređenost između
podražaja.
nužni u modeliranju npr. sustava za rad u stvarnom vremenu
(engl. real time).
Komunikacijski dijagrami:
•
•
pokazuju strukturu interakcija.
•
fokusiraju se na djelovanje pojedinih instanci.
7
Interakcijski dijagrami
Sekvencijski
(analizirano ranije)
Stari naziv
Komunikacijski
(kolaboracijski)
Instance
(objekti)
Odgovaraju na pitanje:
Kada poruke ?
Tko kome šalje poruke ?
8
Komunikacijski dijagram
Prikazuje dinamičko ponašanje (usredotočenost na poruke).
Prikazuje “tko šalje kome” poruke. Uređen redoslijed.
Ne prikazuje “kada” se šalje pojedina poruka. To je uloga
sekvencijskog dijagrama.
Objekt: c
Razred:
Client
veza
poruka
Anoniman
objekt
redoslijed u
sekvenci poruka
9
Primjer_1: Promjena plana leta
(engl. Change flight itinerary)
Funkcionalni zahtjevi:
Obrazac uporabe (tekstni oblik):
Aktori:
putnik, račun klijenta u bazi, rezervacijski sustav.
Preduvjeti:
putnik se prijavio na sustav.
Temeljni tijek:
•
Putnik odabire opciju “promjena plana leta”.
•
Sustav dohvaća putnikov račun i plan leta iz baze.
•
•
…
Sustav pita putnika da odabere segment leta koji želi
promijeniti; putnik to i učini.
Sustav pita putnika da odredi novu polaznu i krajnju točku
leta; putnik to i učini.
Alternativni tijek :
...
10
Primjer_1: Promjena plana leta
(engl. Change flight itinerary)
Sekvencijski dijagram:
11
Primjer_1: Promjena plana leta
(engl. Change flight itinerary)
Komunikacijski dijagram:
(najviša razina apstrakcije)
12
Primjer_1: Promjena plana leta
(engl. Change flight itinerary)
Komunikacijski dijagram:
(niža razina apstrakcije)
13
Primjer_2: Rezervacija hotela
Sekvencijski dijagram:
14
Primjer_2: Rezervacija hotela
Komunikacijski dijagram:
objekt
poruka
objekt
redoslijed u
sekvenci poruka
refleksivna veza
iteracija
objekt
objekt
objekt
15
Modeli, pogledi i dijagrami
Statički pogledi
Razmatrano ranije
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Komunikacijski
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Dijagrami
interakcija
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
Dinamički pogledi
UML dijagrami
Dijagrami stanja
(UML naziv: Statecharts)
17
Dijagrami stanja – Stroj stanja
Automat je stroj čije ponašanje ne ovisi samo o trenutnom
ulaznom poticaju već i o nekoj prošlosti ulaza.
Automat je karakteriziran internim stanjem koje predstavlja
njegovu prošlost. Automat ima memoriju.
Automat mijenja stanje na poticaj ulaznih signala okidanja.
Grafički prikaz
Stanje označujemo pravokutnikom
ponašanja automata
ali zaobljenih kutova.
Npr. paljenje žarulje:
stanje
ulazni
signal
Početno stanje
prijelaz
18
Dijagrami stanja – Izlazi i akcije
Kako Automat mijenja stanje, može generirati izlazne akcije,
na slici označeno print(“on”).
izlaz je funkcija ulaza i stanja
izlaz je funkcija stanja
19
Dijagrami stanja – Prošireni stroj stanja
Stanje se proširuje dodatnim varijablama (npr. ctr: Integer).
Promjena vrijednosti varijable: ctr := ctr + 1.
Prijelazom u stanje Lamp On, izlazna akcija: varijabla ctr se
inkrementira.
20
Dijagrami stanja – Prošireni stroj stanja
Prošireni Mealy stroj stanja je definiran:
Skupom
Skupom
Skupom
Skupom
ulaznih signala (ulazni alfabet)
izlaznih signala (izlazni alfabet)
stanja
prijelaza (tranzicija)
Signalima okidanja
Akcijama koje se izvode pri prijelazu
Skupom proširenih varijabli stanja
Početnim stanjem
Skupom konačnih stanja (ako je terminirajući automat)
21
Dijagrami stanja – UML grafički izgled
Stanje više razine naziva “top”
Stanje niže razine
Početno
pseudo
stanje
Prijelaz
Završno stanje
Poticaj, okidač,
ulazni signal
Akcija
koja se
izvodi pri
prijelazu22
Dijagrami stanja
Dijagram stanja modelira ponašanje sustava (engl. behavior)
Ponašanje je upravljano događajima (engl. event driven).
Dijagram stanja nije pogodan za opis kontinuiranog ponašanja. UML
nema (za sada) mogućnost modeliranja kontinuiranog ponašanja.
Dijagram stanja se odnosi u najvećem broju slučajeva na ponašanje
objekta.
Događaj
Događaj je vrsta vidljive pojave. Mogući su događaji:
Interakcija
Pojava vremenskih događaja
Sinkroni poziv operacije objekta (događaj poziva).
Asinkroni prihvat signala (događaj signala).
Istek vremenskog intervala.
Vremenski događaj takta ili unaprijed definiranog trenutka.
Promjena vrijednosti nekog entiteta u sustavu
Instanca događaja – pojavljuje se u određenom trenutku i nema
trajanje.
23
Dijagrami stanja
Preslikavanje stroja stanja u tijek ponašanja objekta
(događaj)
(događaj)
(događaj)
24
Dijagrami stanja
Na vanjski poticaj neki objekt može inicirati i
dijagramom predstaviti vlastitu nit izvođenja:
objekt
poruka,
događaj
ponašanje
objekta
opisano
strojem stanja
poruka,
događaj
25
Dijagrami stanja – slijed akcija
Akcije pri izlazu iz stanja (izlazne akcije, engl. exit) izvode se
prije akcije prijelaza. Npr.: exit/print("exiting").
Akcije pri ulazu u stanje (ulazne akcije, engl. entry) izvode se
nakon akcija prijelaza. Npr. entry/lamp.off().
Primjer: pojavi se događaj “off”:
Ako je bio u
LampOn
Ako je bio u
LampOff
26
Dijagrami stanja – uvjetno izvođenje prijelaza
Uvjeti za izvođenje akcija (engl. guards) su Booleovi predikati
(mogu biti samo istiniti ili lažni) bez popratnih efekata.
događaj
akcija
U uglatoj zagradi
uvjeti povezani
logičkim vezicama
27
Dijagrami stanja
Statičko uvjetovanje grananja - crni krug
– grafički prikaz odlučivanja
- uvjeti su poznati prije grananja
događaj
statičko
grananje
nakon bid
(koji ne
potiče neki
izračun)
28
Dijagrami stanja
Dinamičko uvjetovanje grananja – bijeli krug
• Uvjeti se izračunavaju pri izlasku iz stanja.
• Uvjeti nisu poznati unaprijed.
izračunavanje
dinamičko
grananje
29
Dijagrami stanja – hijerarhija stanja
UML dijagram stanja omogućuje prikaz hijerarhije stanja. To je
proširenje klasičnog FSM (engl. finite state machine) stroja stanja.
Ako je stanje LampOff
događaj flash inicira ulaz u
stanje LampFlashing
stanje LampFlashing
dekomponirano u stroj s
dva interna podstanja
Ako je stanje LampFlashing događaj on inicira Izlaz iz
bilo kojeg podstanja od stanja LampFlashing
30
Dijagrami stanja – prijelaz završetka
•
UML dijagram stanja omogućuje označavanje prijelaza u
završno stanje nakon što na nižoj hijerarhijskoj razini stroj
stanja završi u krajnjem stanju.
•
Taj prijelaz nije iniciran nekim asinkronim događajem
(engl. trigger) već se događa automatski pri ulazu u završno
podstanje.
početno
podstanje
završno
podstanje
nema posebnog
okidača za prijelaz
31
Dijagrami stanja – redoslijed prijelaza
•
Jedan događaj (na slici “on”) može inicirati više prijelaza:
unutar stanja (na nižoj hijerarhijskoj razini) i prijelaze na
višoj hijerarhijskoj razini.
•
Prednost imaju prijelazi na najnižoj, unutarnjoj
hijerarhijskoj razini.
32
Dijagrami stanja – redoslijed akcija
Ako je sustav u unutarnjem stanju S11, odredi redoslijed
zbivanja nakon pojave događaja E:
Pretpostavka: akcija enS2 generira događaj initS2.
33
Dijagrami stanja – paralelna stanja
(ortogonalnost)
•
UML dijagram stanja omogućuje prikaz paralelnih stanja.
•
To je još jedno proširenje klasičnog FSM (engl. finite state
machine) stroja stanja.
Primjer strojeva stanja istog entiteta iz dvije različite
(ortogonalne) perspektive (dob i financijski status):
34
Dijagrami stanja – paralelna stanja
Dva simultana opisa mogu se kombinirati u jedan dijagram:
35
Dijagrami stanja – paralelna stanja
•
Regije mogu detektirati isti zajednički događaj (na slici
“robBank”) i reagiraju na njega simultano.
•
To najčešće rezultira u ispreplitanju akcija.
36
Dijagrami stanja – interakcija paralelnih stanja
Interakcija između paralelnih stanja odvija se preko
zajedničkih (dijeljenih) varijabli.
zajedničke
varijable
Ovaj događaj
(zahtjev) znači
da si zdrav
37
Dijagrami stanja – račvanje i skupljanje
Prikaz račvanja i skupljanja paralelnih prijelaza koristi se za
opis prijelaza u i iz paralelnih regija.
38
Dijagrami stanja – pogrešno modeliranje
•
Pogrešno je modelirati neovisne objekte ortogonalnim
regijama.
•
Paralelna stanja koristimo u modeliranju istog objekta ali
promatrano iz različitih (ortogonalnih) perspektiva.
39
Dijagrami stanja – primjer
Prijava na bankarski sustav – događaji i akcije
događaj
uvjet
akcija
Unos valjanog broja socijalnog osiguranja (SSN) i unos valjanog
osobnog identifikacijskog broja (PIN).
Zatim provjera (validacija) upisane informacije.
početno
stanje
završna
stanja
događaj
aktivnost
prijelaz
40
Dijagrami stanja – sažetak
UML koristi varijantu “statechart” dijagrama (David Harel,
1980) prilagođenu modeliranju programske potpore.
Dijagrami stanja koriste se za modeliranje događajima
poticanog ponašanja sustava (engl. event driven behavior).
U objektno usmjerenoj arhitekturi dijagrami stanja pogodni su
za opis ponašanja aktivnih objekata. Sustavi se prikazuju
kao mreža međusobnog djelovanja (kolaboracije) strojeva
stanja.
U okviru UML sustava dijagrami stanja sadrže napredne
značajke:
Hijerarhijsko modeliranje stanja.
Modeliranje paralelnih (ortogonalnih) stanja.
Aktivnosti u stanjima.
Akciju pri ulasku/izlasku iz stanja.
Statičko i dinamičko uvjetno grananje.
41
Modeli, pogledi i dijagrami
Statički pogledi
Razmatrano ranije
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Komunikacijski
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Dijagrami
interakcija
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
Dinamički pogledi
UML dijagrami
Dijagrami aktivnosti
(UML naziv: Activity diagrams)
43
Dijagrami aktivnosti - proširenje klasičnih “flow dijagrama”
Primjenjuju se za opis modela toka upravljanja (engl. control flow) ili
toka podataka (objekata).
Ne primjenjuju se za modeliranje događajima poticanog ponašanja.
Tipična primjena: opis poslovnog modela u kojem želimo modelirati tijek
zadataka i poslova.
Temeljna razlika između dijagrama aktivnosti i komunikacijskih dijagrama
te dijagrama stanja je način iniciranja pojedinog koraka a posebice
kako koraci dobivaju ulazni signal ili podatke (u komunikacijskom
dijagramu to su poruke, u dijagramu stanja to su događaji).
U modeliranju toka upravljanja svaki novi korak poduzima se nakon
završenog prethodnog (neovisno da li su ulazi dostupni, ispravni ili
potpuni u tom času). To je tzv. “pull” način djelovanja (povlačenje).
U modeliranju toka podataka (objekata) sljedeći korak se poduzima kada
su svi ulazni podaci dostupni. To je tzv. “push” način djelovanja
(guranje).
Dijagrami aktivnosti vrlo su slični dijagramima stanja, ali s drugačijom
semantikom elemenata s kojima se modelira.
44
Dijagrami aktivnosti
Koraci u dijagramu aktivnosti slični su stanjima u dijagramu stanja osim
što se prijelazi izvode nakon završetka prethodnog koraka.
Temeljni elementi u dijagramu aktivnosti su aktivnosti (akcije).
Realizacija neke aktivnosti može se opisati s jednom ili više
podaktivnosti na nižoj hijerarhijskoj razini.
Podaktivnost se koristi za funkcionalnu dekompoziciju.
Temeljne oznake za aktivnost:
Bez oznaka pre i post uvjeta:
S tekstom o pre i post uvjetima:
45
Dijagrami aktivnosti u objektnom okruženju
Primjer:
Objekt iz razreda POEmployee izvodi operacije
sortMail() i deliverMail().
deliverMail()
Operacije opisujemo slijedom dviju aktivnosti:
ima
podaktivnosti
Aktivnost Deliver Mail ima podaktivnosti koje se razjašnjavaju novim
dijagramom:
ima daljnje
podaktivnosti
46
Dijagrami aktivnosti –
dijagram aktivnosti kao “metoda”
Programska potpora opisana dijagramima aktivnosti je potpuno
objektno usmjerena ako svi dijagrami aktivnosti realiziraju metode
(procedure) kao implementaciju pojedinih operacija.
Na slici dijagram aktivnosti realizira (oznaka «realize») operaciju
deliverMail().
Pokazuje se povezivanje dijagrama razreda i dijagrama aktivnosti.
47
Dijagrami aktivnosti – dinamički paralelizam
Neka aktivnost ili podaktivnost može se izvoditi više puta.
Broj izvođenja ovisi o rezultatu evaluacije nekog izraza tijekom
izvođenja.
Unutar simbola aktivnosti/podaktivnosti može se umetnuti UML
oznaka brojnost koja određuje dopustiv maksimalan broj
paralelnog izvođenja (npr. osiguranje od beskonačne petlje).
Nakon završetka svih paralelnih aktivnosti inicira se prijelaz na
novi korak.
ovdje 0..*, odnosno *
48
Dijagrami aktivnosti – objekt kao uvjet prijelaza
Katkad je potrebno prijelaz s jedne aktivnosti na drugu aktivnost
uvjetovati postojanjem određene vrste objekta (npr.
ulazno/izlaznih parametara). U prijelaz se umeće simbol:
U tom stanju nema nikakve aktivnosti. Tok se nastavlja do
sljedećeg koraka nakon zadovoljenja uvjeta.
Npr. aktivnost Take Order mora generirati izlazni parametar
(objekt određenog tipa), a aktivnost Fill Order mora imati
ulazni parametar (objekt određenog tipa).
U modeliranju uvjetnog prijelaza koriste se crtkane oznake.
49
Dijagrami aktivnosti – koordiniranje koraka
Za opis koordinacije koraka preuzete su oznake iz dijagrama stanja.
Početno stanje
Završno stanje
Račvanje i skupljanje
(engl. fork and join)
Točka odlučivanja
Stanje u kojem se
odvija sinkronizacija
paralelnih aktivnosti
ova se oznaka ne
uporablja često
50
Dijagrami aktivnosti – koordiniranje koraka
Primjer dijagrama aktivnosti gradnje kuće.
Označena su početna stanja, završna stanja, dvije paralelne
sekvence aktivnosti, točke račvanja i skupljanja te sinkronizacije
(čekanje na završetak neke aktivnosti.
paralelne
aktivnosti
U ovom dijagramu aktivnosti preuzeta je sintaksa dijagrama
stanja.
51
Dijagrami aktivnosti – koordiniranje koraka
U koordinaciji koraka mogu sudjelovati i neki objekti (vidi objekt
kao uvjet prijelaza):
52
Dijagrami aktivnosti – koordiniranje koraka
Uvjetovanje toka aktivnosti može se izvesti na dva načina: u
točkama odlučivanja ili na račvanju. Prikazana su dva dijagrama
aktivnosti koji imaju jednako značenje. Prvi je opširniji, a drugi
sažetiji.
točka odlučivanja
53
Dijagrami aktivnosti – particije
Particije su mehanizam grupiranja aktivnosti.
Particije se odjeljuju “plivačkim stazama” (engl. swimlanes).
Plivačke staze ne nose nikakvu posebnu semantiku osim
organizacijske, gdje se ističe koji dio sustava izvodi koje aktivnosti.
Uobičajeno je plivačke staze označiti.
54
Dijagrami aktivnosti – izlaz i ulaz signala
U dijagramu aktivnosti
katkada je potrebno poslati
ili primiti signal.
Pošalji (engl. send) signal
preslikava se u prijelaz i
akciju slanja signala.
Primi (engl. receive) signal
preslikava se u stanje
čekanja na signal bez akcije.
55
Dijagrami aktivnosti – Primjer: povrat kupljene robe
kupac
prodavatelj
računovodstvo skladište
56
Dijagrami aktivnosti – Primjer: gradnja kuće
početno stanje
stanja
aktivnosti
točka
odlučivanja
račvanje
skupljanje
završno stanje
tok objekta (kreiranje)
57
Dijagrami aktivnosti – Primjer: bankomat
58
Dijagrami aktivnosti – savjeti u modeliranju
Dijagrami aktivnosti naslijedili su iz dijagrama stanja potrebu za dobrom
strukturom i ugnježđivanjem složenih stanja.
Dobro ugnježđivanje:
Loše ugnježđivanje:
59
Dijagrami aktivnosti – sažetak
Dijagrami aktivnosti koriste se za modeliranje ponašanja koje nije jako
ovisno o vanjskim događajima. Primarno za modeliranje poslovnog
procesa (a ne na npr. oblikovanje ugrađenih sustava zasnovanih na
računalima).
Dijagrami aktivnosti slični su dijagramima stanja (do UML v1.3 nisu bili
posebno deklarirani, u UML v2.0 potpuno su odvojeni).
Dijagrami aktivnosti posjeduju korake koji se izvode do završetka (nisu
prekidani događajima).
Dijagrami aktivnosti izrađuju se u slučaju kad je usredotočenost
ponašanja na pojedinim aktivnostima i njihovom slijedu a ne na to koji
objekti su odgovorni za te aktivnosti.
Između koraka postoji tok objekata.
Upravljački tok i podatkovni/objektni tok nemaju različitu već jedinstvenu
semantiku.
60
Modeli, pogledi i dijagrami
Statički pogledi
Razmatrano ranije
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Komunikacijski
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Dijagrami
interakcija
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
Dinamički pogledi
UML dijagrami
Dijagrami komponenata
(UML naziv: Component diagrams)
62
Dijagrami komponenata
Dijagrami komponenata predstavljaju statički pogled na sustav.
Opisuju organizaciju i međuovisnost (fizičku strukturu) između
implementacijskih komponenata programske potpore.
Dijagrami komponenata dio su specifikacije arhitekture programske
potpore.
Dijagrame komponenata oblikuju arhitekti programske potpore i
programeri.
Vrste komponenata:
Izvorni kod
Binarni (objektni) kod
Statičke ili dinamičke knjižnice programskih komponenata
Izvršne (aka “also known as” exe) komponente programske
potpore.
Tablice, druge datoteke, baze podataka …
Ovisnost komponenata označuje se crtkanom strelicom.
63
Dijagrami komponenata
izvršna datoteka
ovisnost
ovisnost (engl. dependency) – strelica prema entitetu o kome promatrani entitet
ovisi. Npr.: find.exe ovisi o dvije dll komponente.
64
Dijagrami komponenata - UML 2.0
Osim ovisnosti komponenta uobičajeno ima sučelje preko koje definira
svoje ponašanje i preko kojega se povezuje s drugim komponentama.
Sučelje je samo definicija skupa operacija.
Preko sučelja komponenta daje (engl. provides) ili traži (zahtijeva) (engl.
requires) uslugu od drugih komponenata.
Postoje dva načina predstavljanja komponente i sučelja:
oznaka izvršne
komponente
66
Dijagrami komponenata - UML 2.0
Primjer:
•
•
•
•
•
Program za rukovanje studentskom anketom o predmetima.
Student može: čitati, upisivati, unositi izmjene i zaključati
podatke.
Studentski program je instaliran kao klijent na osobnom
računalu.
Prodekanski (manager) program je instaliran kao klijent na
osobnom računalu u njegovom uredu.
Postoji jedan ili više poslužitelja s bazom podataka i
komponentama za upravljanje pojedinim predmetima.
67
Dijagrami komponenata - UML 2.0
68
Modeli, pogledi i dijagrami
Statički pogledi
Razmatrano ranije
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Komunikacijski
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Dijagrami
interakcija
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
Dinamički pogledi
UML dijagrami
Dijagrami razmještaja
(UML naziv: Deployment diagrams)
70
Dijagrami razmještaja
Dijagrami razmještaja prikazuju topologiju sustava i
usredotočeni su na odnos sklopovskih i programskih dijelova.
Dijagrami razmještaja pripadaju statičkom pogledu na sustav.
Posebice su značajni u raspodijeljenim sustavima gdje je naročito
važno prikazati razmještaj komponenata.
Sklopovske komponente sadrže:
Čvorove (engl. nodes), koji pokazuju sklopovske naprave.
Vezice (engl. connections), koje pokazuju kako čvorovi
komuniciraju.
Programske komponente
Predstavljaju implementacijske module
Ovisnosti opisuju odnose između tih komponenata
Vezice i ovisnosti označuju se na dijagramu razmještaja različito
(vezice punom crtom a ovisnost crtkanom strelicom).
71
Dijagrami razmještaja sklopovskih elemenata
vezica
čvor
72
Dijagrami komponenata – sklopovlje i programske komponente
Primjer: kupnja nekretnine
čvor
sklopovska komponenta:
Real Estate Server
ovisnost
baza
podataka
programska
komponenta
vezica
sučelje
komponente
sklopovska
komponenta: aPC
ovisnost (engl. dependency) – strelica prema entitetu
o kome promatrani entitet ovisi.
73
UML dijagrami (v 2.2)
•
Taksonomija dijagrama.
•
Dijagrami paketa.
•
Dijagrami profila.
•
Dijagrami složene strukture.
•
Vremenski dijagrami.
•
Pregledni interakcijski dijagrami.
74
UML dijagrami (v 2.2)
75
UML dijagrami
Dijagrami paketa:
Opisuju odnose (ovisnosti) između paketa koji čine model.
Paket omogućuje grupiranje elemenata modela (npr. dijagrama)
ali i drugih paketa (hijerarhija !).
76
UML dijagrami
= "nešto posebno"
Dijagrami profila:
Dijagrami profila su pomoćni UML dijagrami koji omogućuju
definiranje novih i specifičnih stereotipova, oznaka i ograničenja.
Profili omogućuju da se izvorni model prilagodi za različite
platforme (npr. .NET, Java) i domene primjene (npr. sustavi za rad
u stvarnom vremenu, modeliranje poslovnih procesa)
Koriste oznaku kao i paket.
Profili mogu definirati razrede,
stereotipove,
tipove podataka, primitivne
tipove, enumeracije i sl.
Metaclass je razred profila koji
se može proširiti sa specifičnim,
jednim ili više, stereotipom
77
UML dijagrami
Dijagrami složene strukture razreda ili komponente (engl.
composite):
Opisuju internu strukturu razreda ili komponente i kolaboracije
koje ta struktura omogućuje.
Uključuju interne dijelove i vrata (engl. ports) za međusobnu
interakciju dijelova i interakciju s vanjskim svijetom, te sučelja.
Sučelje koje
pruža uslugu
78
UML dijagrami
Dijagrami složene strukture komponenata
Primjer: komponenta Store sadrži druge komponente.
sučelje:
daje
uslugu
sučelje:
traži ili
prihvaća
uslugu
vrata (engl.
port)
79
UML dijagrami
Vremenski dijagrami (engl. timing)
Opisuju ponašanje jednog ili više objekata kroz određen
vremenski razmak.
To je poseban oblik sekvencijskih dijagrama (osi dijagrama su
invertirane).
Diskretna
stanja
objekta
80
UML dijagrami
Pregledni interakcijski
(engl. interaction overview) dijagrami
To je varijanta UML dijagrama
aktivnosti s umetnutim dijelovima
sekvencijskih, komunikacijskih ili
vremenskih dijagrama.
Omogućuje na višoj razini
hijerarhije prikaz puta izvođenja
programa (razbijanje složenog
scenarija na manje dijelove).
81
Modeli, pogledi i dijagrami, UML v1.3
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Komunikacijski
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
82