Uvod u dijagram stanja Prof dr Angelina Njegu
- Slides: 64
Uvod u dijagram stanja Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum. ac. rs Beograd, 2019/2020.
Notacije modelovanja UML Class Diagrams • information structure • relationships between data items • modular structure for the system UML Package Diagrams Use Cases user’s view Lists functions visual overview of the main requirements (UML) Statecharts Overall architecture • responses to events Dependencies between components • dynamic behavior UML Sequence Diagrams • event ordering, reachability, deadlock, etc Activity diagrams individual scenario business processes; interactions between users and system concurrency and synchronization; Sequence of messages dependencies between tasks;
Šta je dijagram stanja? § Dijagram stanja se koristi za predstavljanje ponašanja aplikacije. § Konkretno, dijagram stanja modeluje dinamičko ponašanje jedne klase. § Dijagrami stanja se koriste za dizajniranje interaktivnih sistema koji reaguju na unutrašnje ili spoljne uslove ili događaje.
Stanja objekta § Objekat, kao instanca klase, tokom svog životnog veka prolazi kroz različita stanja. § Životni vek objekta traje sve dok se program ne prekine. § U zavisnosti od događaja koji mogu da se dogode, objekat prelazi iz jednog u drugo stanje. § Svako stanje predstavlja jedinstvene informacije o objektu. § Dijagram stanja predstavlja stanje objekta od njegovog kreiranja do uništavanja ili prekidanja. § Ne prikazuju se sve klase dijagramom stanja, već samo one koje imaju više od tri stanja.
Elementi dijagrama stanja § § § Dijagram stanja (statechart) je usmereni graf stanja (čvorova) povezanih vezama (tranzicijama – usmerenim strelicama) Stanje (state) je stanje u životu objekta. Stanje objekta određuje njegov odziv na različite događaje. Događaj (event) je određeno dešavanje (u vremenu i mestu) koje povlači za sobom tranziciju stanja Tranzicija (transition) je promena iz jednog stanja u naredno stanje Uslov (Guard condition) je Boolean izraz vrednosti atributa koji omogućava tranziciju jedino kada se ispuni uslov Akcija (Action) rezultat izmene stanja ili povraćaj vrednosti
Identifikovanje i definisanje stanja § Stanja se mogu pronaći posmatrajući atribute klasa i relacija sa drugim klasama § Značajni su dinamički atributi § Postojanje ili nepostojanje veza
Identifikovanje događaja § Odrediti događaje na koje se objekti odazivaju – mogu se pronaći u interfejsima objekata ili protokolima
Identifikovati tranzicije § Za svako stanje odrediti koji događaji prouzrokuju tranzicije i ka kojim stanjima, uključiti i uslove (guard conditions) ukoliko postoje više tranzicija § Tranzicije opisuju šta se dešava kao odziv na događaj
Dodavanje aktivnosti i akcija § Aktivnosti: Pridruženi su stanju Započinju kada se unese stanje § Akcije: Pridružena je tranziciji
Primer jednostavnog dijagram stanja
Primer dijagrama stanja: ATM sistem § Klijent treba da se autentifikuje pre podizanja novca
Primer dijagrama stanja: ATM sistem § Autentikacija se obavlja proverom PINa
Primer dijagrama stanja: ATM sistem § PIN može biti ispravan ili ne
Primer dijagrama stanja: ATM sistem § Neuspešni pokušaji se broje
Primer dijagrama stanja: ATM sistem § Kada brojač dostigne limit, autentikacija nije uspela i dalji pokušaji se odbijaju.
Dijagram stanja: ATM sistem
Vežba: Student § Student treba da završi osnovni nivo kursa kako bi prešao na napredni nivo. § Koliko stanja uočavate?
Vežba: Student § Student treba da završi osnovni nivo kursa kako bi prešao na napredni nivo. § Koliko stanja uočavate?
Vežba: Student § Nakon položenih 5 ispita student prelazi sa osnovnog na napredni nivo i nakon položenih 5 ispita u naprednom nivou, student je diplomirao.
Vežba: Student § Nakon položenih 5 ispita student prelazi sa osnovnog na napredni nivo i nakon položenih 5 ispita u naprednom nivou, student je diplomirao.
Vežba: Student § Ispit može da se ponavlja maksimalno dva puta. § Posle trećeg pokušaja, registracija studenta se poništava.
Vežba: Student § Ispit može da se ponavlja maksimalno dva puta. § Posle trećeg pokušaja, registracija studenta se poništava.
Dodatni elementi dijagram stanja § § Definisanje internih događaja i aktivnosti unutar stanja Vrste događaja Kompozitna stanja Istovremena kompozitna stanja
Definisanje internih događaja i aktivnosti § Interno stanje ukazuje na to šta objekat može da radi dok je u datom stanju § Do sada smo akcije pridruživali događajima, ovde se govori o istim akcijama jedino što su dokumentovane kao ulazne i izlazne akcije u stanju § Aktivnosti su procesi koji se izvršavaju u stanju. Aktivnost može biti grupa zadataka. Aktivnosti mogu biti prekinute ukoliko ne utiču na stanje objekta § Da bi modelovali aktivnosti u stanju, koristi se ključna reč Do: koju prati jedna ili više aktivnosti. Ove aktivnosti će se izvršavati od trenutka kada objekat uđe u ovo stanje do trenutka kada ga napusti.
Definisanje ulaznih i izlaznih aktivnosti § UML nudi dve akcije: ulazne (entry) i izlazne (exit) Na primer, stanje porudžbine može da pređe iz probne (Tentative) u postavljenu (Placed) i to bilo da se primi uplata ili da se dobije autorizacija. Oba događaja zahtevaju istu akciju, a to je izdavanje potvrde porudžbine (issue. Conf()).
Definisanje ulaznih i izlaznih aktivnosti - nastavak § Ukoliko otkrijete da se jedna akcija izvršava sa svakim događajem koji prevodi u isto stanje, te akcije možete napisati samo jedanput i to kao ulazne akcije.
Definisanje ulaznih i izlaznih aktivnosti - nastavak § § Isto se može primeniti i na akcije koje su pridružene događajima koji napuštaju stanje – izlazne (exit) akcije Ukoliko postoji makar jedan izuzetak kada može da se desi da se ta akcija ne odigra onda je ne treba staviti kao ulaznu ili izlaznu akciju stanja
Primer: login stanje
Vrste događaja: Događaji poziva (Call event) § Događaj poziva je najopštiji tip događaja § Sam događaj je instrukcija izvršavanja jedne operacije Na slici se prikazuje tranzicija iz Postavljen u Otkazan. Tranzicija se dešava kada se okine (trigger) događaj cancel(datetime) što ustvari predstavlja jednu od operacija porudžbine.
Time event (npr. after (1 second)) § § Vremenski događaj (time event) predstavlja događaj koji se odigrava nakon isteka određenog vremena Koristite ključnu reč after kako bi se ukazalo na vremenski uslov Na primer, Porudžbina u stanju Spakovana čeka da bude isporučena. Ukoliko nije isporučena u toku tri dana, prioritet isporuke mora da se poveća
Change event (npr. when (x>y)) § Događaj promene (change event) proverava izmene u objektu. § Koristite ključnu reč when pridruženu odgovarajućom proverom stanja Na primer, stanje porudžbine se proverava u odnosu na vreme poslednje izmene + 90 dana
Conditional events (događaj [uslov]) § Događaji stanja (Conditional events) kontrolišu odzive na događaje – kada se događaj desi, proverava se stanje i ukoliko je true, odigrava se odgovarajuća tranzicija; inače se događaj ignoriše Na primer, porudžbina prelazi u stanje Postavljena, samo ukoliko je privaćeno plaćanje tačnog iznosa
Send event § Na dijagramu stanja, modeluje se kada i zašto objekat izvršava određene interakcije – događaj slanja (send event) modeluje činjenicu kada objekat govori drugom objektu šta treba da radi Na primer, kada se odigra događaj isporučen shipped(carrier, datatime), povlače (trigger) se dve akcije: set. Shipped() koja menja stanje i poruka ka objektu Klijent koja šalje obaveštenje realnom klijentu da je njegova pošiljka poslata.
Modelovanje nadstanja i podstanja § § Hijerarhijska organizacija stanja je standardan način kako da se kontroliše kompleksnost objekta. Kompozitna (složena) stanja su stanja koja sadrže druga stanja.
Tranzicije od nadstanja i podstanja
Modelovanje nadstanja i podstanja: Termostat § Termostat istovremeno radi dva posla: nadgleda uređaj za hlađenje (proces hlađenja) i nadgleda druge probleme koje mogu da se dese na uređaju
Paralelna stanja § Složeni sistemi obično imaju paralelna stanja § Neki podsistemi se mogu odvijati nezavisno od drugih. § Na primeru, aparata za monitoring srca, jedno stanje nadgleda rad srca, a drugo rad aparata
Podsistemi aparata za monitoring rada srca
Paralelna kompozitna (složena) stanja
Dijagram stanja izvučen iz dijagrama sekvenci § § Vertikalna kolona na dijagramu sekvenci predstavlja životni vek jednog objekta § Prostor između događaja na životnoj liniji objekta pokazuje vremenski period kada se objekat nalazi u istom stanju. Svaki događaj usmeren na liniju života objekta predstavlja događaj koji može da dovede do promene stanja tog objekta
Primena na studiji slučaja Objekat Proizvod
Scenario 2
Scenario 3
Scenario 4
Scenario 5 i 6
Kompletan dijagram stanja
Vežba 1. Kreirati dijagram stanja koristeći RSA § Pre nego što počnete, podesite da se na stanju vidi deo za prikaz aktivnosti: § Window > Preferences: Proširiti > Modeling Proširiti > UML Diagrams Selektovati State Machine Čekirati Show Activity Compartment
Kreirajte UML projekat § File > New > Project
Kreirati UML projekat § Kliknuti na UML Project § Kliknuti na Next
Imenujte projekat § Project name: projekat. Dijagrama. Stanja § Next
Imenujte paket u okviru koga će se nalaziti dijagram stanja: § Pod Categories, selektovati General § Pod Templates, selektovati Blank Package § Pod File name: napisati ime paketa, npr. Paket. Dijagrama. Stanja 1 § Finish.
Kreirati dijagram stanja § Proširiti Projekat dijagrama stanja § Proširiti Models § Desni klik na Paket. Dijagrama Stanja § Kliknuti na Add Diagram § Kliknuti na State Machine Diagram
Imenovati dijagram § Umesto difoltnog naziva napisati naziv dijagrama, npr. sm. Vezba
Vrste stanja u RSA § § State Composite State Orthogonal State Submachine State
Vrste stanja u RSA § Simple state Stanje koje nema podstanja § Composite state Stanje sa jednim ili više regija (kontejnera za podstanja) Svaka regija izvršava stanja paralelno. § Submachine state Odnosi se na čitav dijagram stanja koji se može ponovo koristiti.
Vrste stanja u RSA § Orthogonal State Stanja koja se paralelno izvršavaju
Tipovi pseudostanja (pseudostate types) u RSA § Inicijalno stanje (Initial state) § Tačka izbora (Choice point) § Tačka spajanja (Junction point) § Duboka istorija (Deep history) § Površna istorija (Shallow history) § Pridruživanje (Join) § Račvanje (Fork) § Tačka ulaska (Entry point) § Tačka izlaza (Exit point) § Prekinuti (Terminate)
Tipovi pseudostanja: Shallow History § Shallow History – poslednje aktivno stanje. Kompozitno stanje može imati samo jedan Shallow. History. Tranzicija koja dolazi u Shallow. History podrazumeva da dolazi do poslednjeg aktivnog stanja.
Tipovi pseudostanja: Deep History § Deep History - predstavlja poslednju aktivnu konfiguraciju kompozitnog stanja npr. konfiguracija stanja koja je bila aktivna kada se poslednji put izašlo iz kompozitnog stanja
Nacrtati jednostavan dijagram klasa za dva stanja računara (upaljen, isključen)
Osobine tranzicije § Properties (Osobine): Name: Naziv tranzicije Kind (vrsta): eksterna, interna, lokalna. Effect (efekat): opciono ponašanje koje će se izvršiti kada se tranzicija dogodi. Guard (uslov): kada se događaj dogodi, onda se proverava uslov. Ukoliko je uslov ispunjen, tranzicija će se dogoditi. Triggers: okidači koji aktiviraju tranziciju.
Vežba 2: U RSA alatu nacrtati sledeći dijagram stanja
Vežba 3: Kreirati dijagram stanja za stanja klase student § § Student može biti u stanju Upisan Kada počne semestar, može biti u stanju Obučavan Kada se završi semestar može biti u stanju Testiran Ukoliko položi test (uslov je da ima više od 50 poena) prelazi u stanje Sertifikovan Pri izlasku iz stanja Sertifikovan izvršava se akcija Izdavanje sertifikata. § U suprotnom (ukoliko ima manje ili jednako 50 poena) ide na stanje Upisan, gde čeka da počne semestar, kako bi mogao opet da prođe obuku.
Rezultat:
- Dijagram stanja
- Golden rato
- Angelina jolie born
- Servisno orijentisana arhitektura
- Unset message angelina
- Sarah and angelina grimke apush
- Angelina what
- Donna angelina
- Angela varone
- Angelina pillai
- Angelina daniel
- Brad pitt shrek
- Angelina njegus
- Angelina fabbro
- Angelina lu
- Sumiranje
- Angelina baiden-amissah
- Angelina njegus
- Angelina njegus
- Aristides de sousa mendes angelina ribeiro
- Anna garcia timeline
- Valmon unife
- Pocetni bilans stanja primer
- Aktiva i pasiva tabela
- Dovršni glagolski vid
- Aktiva - pasiva
- Gustina gasa
- Hitna stanja u ginekologiji
- Aktiva i pasiva
- Marmorizovana koza
- Bit ili bajt
- Prostor stanja
- Rečenice u imperativu
- Bilanca stanja aktiva pasiva
- Bilans stanja primjer
- Izotermna promjena
- Bilans stanja
- Uginuli plod u materici
- Glagolski vid primeri
- Bilans uspjeha primjer
- Izohorna promjena stanja plina
- Ekonomska analiza privrednih subjekata
- Recenice sa glagolima
- Ego stanja
- Princip likvidnosti bilans stanja
- Izkaz poslovnega izida
- Glagoli prema vidu
- Bilans stanja aktiva i pasiva
- Gramaticke kategorije glagola
- Bilans stanja primer
- Putrifikacija
- Prostor stanja
- Uvod u informacione sisteme fon
- Kraljevic i prosjak lektira analiza
- Strah u ulici lipa uvod zaplet vrhunac rasplet
- Uvod u laboratorijski rad
- Pravila ponasanja u laboratoriji
- Trojica u trnju pdf kratki sadržaj
- Uvod u teoriju računarstva fer
- Tehnicko pismo
- Vrste formula u hemiji
- Programski jezik r
- Obilježja lirike epike i drame
- Uvod u rehabilitaciju
- Pravila ponasanja u laboratoriji