820 likes | 1.06k Views
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, 2 nd E d . , 2005 .
E N D
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 UserGuide, 2nd Ed., 2005. • Simon Bennett, John Skelton, Ken Lunn: Schaum's Outline of UML, 2ndEd.,2005. • RATIONAL Software (IBM) – prezentacija. • OMG Tutorial Series – prezentacija. • Gunnar Overgaard, Bran Selic, Conrad Bock, Cris Kobryn – prezentacija.
Modeli i dijagrami Modelje 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
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)
Statički pogledi Razmatrano ranije Dijagrami interakcija Dinamički pogledi Modeli, pogledi i dijagrami State Diagrams State Diagrams Class Diagrams Use Case Diagrams Use Case Diagrams State Diagrams Use Case Diagrams State Diagrams Use Case Diagrams Object Diagrams Use Case Diagrams Sequence Diagrams Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Komunikacijski Component Diagrams Collaboration Diagrams Models Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Deployment Diagrams Statechart Diagrams Activity Diagrams
UML dijagrami Dijagrami interakcija (dijagrami uzajamnog djelovanja) Sekvencijski dijagrami Komunikacijski dijagrami
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.
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.
Interakcijski dijagrami SekvencijskiKomunikacijski (analizirano ranije) (kolaboracijski) Stari naziv Instance (objekti) Odgovaraju na pitanje: Kada poruke ? Tko kome šalje poruke ?
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
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 : ...
Primjer_1: Promjena plana leta (engl. Change flight itinerary) Sekvencijski dijagram:
Primjer_1: Promjena plana leta (engl. Change flight itinerary) Komunikacijski dijagram: (najviša razina apstrakcije)
Primjer_1: Promjena plana leta (engl. Change flight itinerary) Komunikacijski dijagram: (niža razina apstrakcije)
Primjer_2: Rezervacija hotela Sekvencijski dijagram:
Primjer_2: Rezervacija hotela Komunikacijski dijagram: objekt poruka redoslijed u sekvenci poruka objekt refleksivna veza iteracija objekt objekt objekt
Statički pogledi Razmatrano ranije Dijagrami interakcija Dinamički pogledi Modeli, pogledi i dijagrami State Diagrams State Diagrams Class Diagrams Use Case Diagrams Use Case Diagrams State Diagrams Use Case Diagrams State Diagrams Use Case Diagrams Object Diagrams Use Case Diagrams Sequence Diagrams Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Komunikacijski Component Diagrams Collaboration Diagrams Models Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Deployment Diagrams Statechart Diagrams Activity Diagrams
UML dijagrami Dijagrami stanja (UML naziv: Statecharts)
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. • Stanje označujemo pravokutnikom ali zaobljenih kutova. Npr. paljenje žarulje: Grafički prikaz ponašanja automata stanje ulazni signal Početno stanje prijelaz
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
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.
Dijagrami stanja – Prošireni stroj stanja Prošireni Mealy stroj stanja je definiran: • Skupom ulaznih signala (ulazni alfabet) • Skupom izlaznih signala (izlazni alfabet) • Skupom stanja • Skupom 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)
Dijagrami stanja – UML grafički izgled Stanje više razine naziva “top” Stanje niže razine Početno pseudo stanje Poticaj, okidač, ulazni signal Prijelaz Akcija koja se izvodi pri prijelazu Završno stanje
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 • Sinkroni poziv operacije objekta (događaj poziva). • Asinkroni prihvat signala (događaj signala). • Pojava vremenskih događaja • 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.
Dijagrami stanja Preslikavanje stroja stanja u tijek ponašanja objekta (događaj) (događaj) (događaj)
Dijagrami stanja Na vanjski poticaj neki objekt može inicirati i dijagramom predstaviti vlastitu nit izvođenja: objekt ponašanje objekta opisano strojem stanja poruka, događaj poruka, događaj
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
Dijagrami stanja – uvjetno izvođenje prijelaza • Uvjetiza 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
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)
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
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 LampOffdogađ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
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
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.
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.
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):
Dijagrami stanja – paralelna stanja Dva simultana opisa mogu se kombinirati u jedan dijagram:
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.
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
Dijagrami stanja – račvanje i skupljanje Prikaz račvanja i skupljanja paralelnih prijelaza koristi se za opis prijelaza u i iz paralelnih regija.
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.
Dijagrami stanja – primjer Prijava na bankarski sustav– događaji i akcije • Unos valjanog broja socijalnog osiguranja (SSN) i unos valjanog osobnog identifikacijskog broja (PIN). • Zatim provjera (validacija) upisane informacije. početno stanje događaj uvjet akcija završna stanja događaj aktivnost prijelaz
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 aktivnihobjekata. 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.
Statički pogledi Razmatrano ranije Dijagrami interakcija Dinamički pogledi Modeli, pogledi i dijagrami State Diagrams State Diagrams Class Diagrams Use Case Diagrams Use Case Diagrams State Diagrams Use Case Diagrams State Diagrams Use Case Diagrams Object Diagrams Use Case Diagrams Sequence Diagrams Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Komunikacijski Component Diagrams Collaboration Diagrams Models Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Deployment Diagrams Statechart Diagrams Activity Diagrams
UML dijagrami Dijagrami aktivnosti (UML naziv: Activity diagrams)
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.
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:
Dijagrami aktivnosti u objektnom okruženju Primjer: Objekt iz razreda POEmployee izvodi operacije sortMail() i deliverMail(). Operacije opisujemo slijedom dviju aktivnosti: Aktivnost Deliver Mail ima podaktivnosti koje se razjašnjavaju novim dijagramom: deliverMail() ima podaktivnosti ima daljnje podaktivnosti
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.
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 *
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.
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 ova se oznaka ne odvija sinkronizacija uporablja često paralelnih aktivnosti