Oblikovanje programske potpore Arhitektura programske potpore i UML
Oblikovanje programske potpore Arhitektura programske potpore i UML (2. dio) Izvori: n n n Sommerville, I. , Software engineering, 8 th ed. , Addison-Wesley, 2007. G. Booch, J. Rumbaugh, I. Jacobson: Unified Modeling Language User Guide, 2 nd Ed. , 2005. Simon Bennett, John Skelton, Ken Lunn: Schaum's Outline of UML, 2 nd 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: n Dijagram je pogled u model predstavljen s aspekta određenog dionika. n Dijagram je djelomičan opis sustava. n 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): n dijagram obrazaca uporabe, dijagram razreda, dijagram objekata, dijagram komponenata, dijagram razmještaja Dinamički pogledi (4 dijagrama): n sekvencijski dijagram, komunikacijski (kolaboracijski) dijagram, dijagram stanja (“statechart”), dijagram aktivnosti 2
UML dijagrami U UML v 2. 2 postoji 14 dijagrama: n n n 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 Diagrams Sequence Diagrams Scenario Komunikacijski Scenario Diagrams Collaboration Diagrams Scenario Diagrams Statechart Diagrams Dijagrami interakcija Use Case Diagrams State Diagrams Class Diagrams Models State Diagrams Object Diagrams State Diagrams Component Diagrams Deployment Diagrams Activity Diagrams Dinamički pogledi 4
UML dijagrami Dijagrami interakcija (dijagrami uzajamnog djelovanja) Sekvencijski dijagrami Komunikacijski dijagrami 5
Dijagrami interakcija n n • 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 15
Modeli, pogledi i dijagrami Statički pogledi Razmatrano ranije Use Case Diagrams Sequence Diagrams Scenario Komunikacijski Scenario Diagrams Collaboration Diagrams Scenario Diagrams Statechart Diagrams Dijagrami interakcija Use Case Diagrams State Diagrams Class Diagrams Models State Diagrams Object Diagrams State Diagrams Component Diagrams Deployment Diagrams Activity Diagrams Dinamički pogledi 16
UML dijagrami Dijagrami stanja (UML naziv: Statecharts) 17
Dijagrami stanja – Stroj stanja n n 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 n 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 n n 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: n n Skupom n n n ulaznih signala (ulazni alfabet) izlaznih signala (izlazni alfabet) stanja prijelaza (tranzicija) Signalima okidanja Akcijama koje se izvode 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 prijelazu 22
Dijagrami stanja n n 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 je vrsta vidljive pojave. Mogući su događaji: n Interakcija n n n Pojava vremenskih događaja n n n 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) 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"). n Akcije pri ulazu u stanje (ulazne akcije, engl. entry) izvode se nakon akcija prijelaza. Npr. entry/lamp. off(). Primjer: pojavi se događaj “off”: n Ako je bio u Lamp. Off 26
Dijagrami stanja – uvjetno izvođenje prijelaza n 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 Lamp. Off događaj flash inicira ulaz u stanje Lamp. Flashing dekomponirano u stroj s dva interna podstanja Ako je stanje Lamp. Flashing događaj on inicira Izlaz iz bilo kojeg podstanja od stanja Lamp. Flashing 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 S 11, odredi redoslijed zbivanja nakon pojave događaja E: Pretpostavka: akcija en. S 2 generira događaj init. S 2. 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 “rob. Bank”) 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 n Unos valjanog broja socijalnog osiguranja (SSN) i unos valjanog osobnog identifikacijskog broja (PIN). n događaj uvjet akcija Zatim provjera (validacija) upisane informacije. početno stanje završna stanja događaj aktivnost prijelaz 40
Dijagrami stanja – sažetak n n 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: n n n 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 Diagrams Sequence Diagrams Scenario Komunikacijski Scenario Diagrams Collaboration Diagrams Scenario Diagrams Statechart Diagrams Dijagrami interakcija Use Case Diagrams State Diagrams Class Diagrams Models State Diagrams Object Diagrams State Diagrams Component Diagrams Deployment Diagrams Activity Diagrams Dinamički pogledi 42
UML dijagrami Dijagrami aktivnosti (UML naziv: Activity diagrams) 43
Dijagrami aktivnosti - proširenje klasičnih “flow dijagrama” n n n n 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. n Temeljni elementi u dijagramu aktivnosti su aktivnosti (akcije). n Realizacija neke aktivnosti može se opisati s jednom ili više podaktivnosti na nižoj hijerarhijskoj razini. n Podaktivnost se koristi za funkcionalnu dekompoziciju. Temeljne oznake za aktivnost: Bez oznaka pre i post uvjeta: S tekstom o pre i post uvjetima: n 45
Dijagrami aktivnosti u objektnom okruženju Primjer: Objekt iz razreda POEmployee izvodi operacije sort. Mail() i deliver. Mail() Operacije opisujemo slijedom dviju aktivnosti: ima podaktivnosti Aktivnost Deliver Mail ima podaktivnosti koje se razjašnjavaju novim dijagramom: ima daljnje podaktivnosti 46
Dijagrami aktivnosti – n n n 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 deliver. Mail(). Pokazuje se povezivanje dijagrama razreda i dijagrama aktivnosti. 47
Dijagrami aktivnosti – dinamički paralelizam n n 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 n n 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 n n 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. n n 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 n 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 n n n 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 v 1. 3 nisu bili posebno deklarirani, u UML v 2. 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 Diagrams Sequence Diagrams Scenario Komunikacijski Scenario Diagrams Collaboration Diagrams Scenario Diagrams Statechart Diagrams Dijagrami interakcija Use Case Diagrams State Diagrams Class Diagrams Models State Diagrams Object Diagrams State Diagrams Component Diagrams Deployment Diagrams Activity Diagrams Dinamički pogledi 61
UML dijagrami Dijagrami komponenata (UML naziv: Component diagrams) 62
Dijagrami komponenata n n n 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: n Izvorni kod n Binarni (objektni) kod n Statičke ili dinamičke knjižnice programskih komponenata n Izvršne (aka “also known as” exe) komponente programske potpore. n Tablice, druge datoteke, baze podataka … Ovisnost komponenata označuje se crtkanom strelicom. 63
Dijagrami komponenata izvršna datoteka ovisnost (engl. dependency) – strelica prema entitetu o kome promatrani entitet ovisi. Npr. : find. exe ovisi o dvije dll komponente. 64
65
Dijagrami komponenata - UML 2. 0 n n 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 Diagrams Sequence Diagrams Scenario Komunikacijski Scenario Diagrams Collaboration Diagrams Scenario Diagrams Statechart Diagrams Dijagrami interakcija Use Case Diagrams State Diagrams Class Diagrams Models State Diagrams Object Diagrams State Diagrams Component Diagrams Deployment Diagrams Activity Diagrams Dinamički pogledi 69
UML dijagrami Dijagrami razmještaja (UML naziv: Deployment diagrams) 70
Dijagrami razmještaja n n n 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: n Čvorove (engl. nodes), koji pokazuju sklopovske naprave. n Vezice (engl. connections), koje pokazuju kako čvorovi komuniciraju. Programske komponente n Predstavljaju implementacijske module n 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: a. PC 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: n Opisuju odnose (ovisnosti) između paketa koji čine model. n Paket omogućuje grupiranje elemenata modela (npr. dijagrama) ali i drugih paketa (hijerarhija !). 76
UML dijagrami = "nešto posebno" Dijagrami profila: n Dijagrami profila su pomoćni UML dijagrami koji omogućuju definiranje novih i specifičnih stereotipova, oznaka i ograničenja. n 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) n Koriste oznaku kao i paket. n Profili mogu definirati razrede, stereotipove, tipove podataka, primitivne tipove, enumeracije i sl. n 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): n Opisuju internu strukturu razreda ili komponente i kolaboracije koje ta struktura omogućuje. n 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) n Opisuju ponašanje jednog ili više objekata kroz određen vremenski razmak. n To je poseban oblik sekvencijskih dijagrama (osi dijagrama su invertirane). Diskretna stanja objekta 80
UML dijagrami Pregledni interakcijski (engl. interaction overview) dijagrami n To je varijanta UML dijagrama aktivnosti s umetnutim dijelovima sekvencijskih, komunikacijskih ili vremenskih dijagrama. n 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 v 1. 3 Use Case Diagrams Sequence Diagrams Scenario Komunikacijski Scenario Diagrams Collaboration Diagrams Scenario Diagrams Statechart Diagrams Use Case Diagrams State Diagrams Class Diagrams Models State Diagrams Object Diagrams State Diagrams Component Diagrams Deployment Diagrams Activity Diagrams 82
- Slides: 82