Dijagrami sekvenci
Izrada dijagrama sekvenci Dijagram sekvenci koristi se za specifikaciju vremenskih zahteva u opisu složenih scenarija opis toka poruka između objekata kojima se realizuje odgovarajuća operacija u sistemu Koristi se za modelovanje dinamičkih aspekata sistema Identifikuju se sistemski događaji i sistemske operacije za odgovarajući slučaj upotrebe 2
Dijagram sekvenci Dijagram sekvenci je jedan od dijagrama interakcije Interakcija ponašanje koje obuhvata skup poruka koje se razmenjuju između skupa objekata u nekom kontekstu sa nekom namenom Poruka specifikacija komunikacije između objekata koja prenosi informaciju Prijem poruke izaziva akciju izvršenje naredbe 3
Izrada dijagrama sekvenci Ako su dijagrami slučajeva upotrebe prethodno definisani dijagram sekvenci je jedna od njegovih realizacija - pokazuje redosled: Događaja spoljašnji ulazni događaj generiše učesnik Operacija odziv na događaj u sistemu U okviru izrade sekvenci definišu se sledeće aktivnosti: Definisanje objekata Defisanje veza Definisanje poruka 4
Definisanje objekata Dijagrami sekvenci poseduju dve dimenzije: Vreme prikazuje po vertikalnoj dimenziji Kolekciju objekata prikazuje po horizontalnoj dimenziji Objekti predstavljaju vertikalnim linijama Na vrhu linije - naziv i/ili simbol objekta Naziv objekta: Naziv koncepta Aktiviranje objekta uzak pravougaonik na liniji objekta operacija koju objekat obavlja određena dužinom 5
Notacija dijagrama sekvenci Naziv učesnika : učesnik Objekat 1 Objekat 2 Objekat 3 Objekat 4 vreme 1: događaj 2: operacija 1 poruka rekurzivna poruka poruka 4: operacija 3 3: operacija 2 5: operacija 4 linija života aktivnost 6
Definisanje poruka Poruke događaji preko kojih objekti komuniciraju predstavljaju se usmerenim horizontalnim linijama strelicama - tranzicije Poruka definisana nazivom i parametrima Naziv poruke (lista parametara) može se navesti i broj koji definiše redosled izvođenja Mogu se koristiti: rekurzivne poruke poruke koje objekat upućuje sam sebi A B 7
Vrste akcija na osnovu poslatih poruka Poruka Poziv (call) Povratak (return) Opis akcije Pokreće operaciju objekta primaoca Vraća vrednost pozivaocu (opciono) Slanje operacija (send) ili ili <<create>> <<destroy>> <<become>> Asinhrono se šalje signal primaocu Kreira se objekat Uništava se objekat Objekat menja prirodu (na obe strane veze je isti objekat) 8
Primer dijagrama sekvenci objekat stvaranje objekta poziv p: preduzeće <<create>> o: osoba objekat vraćanje rezultata uništavanje objekta postavi() vrednost <<destroy>> linija života kraj životnog veka 9
Primer <<create>> <<create>> 10
Asinhrone poruke na sekvencijalnim dijagramima Poruka je asinhrona ukoliko pošiljalac može da je pošalje kao dodatnu poruku u toku procesiranja originalne poruke Vreme slanja asinhrone poruke je nezavisno od realizacije ostalih poruka Redosled kojim su asinhrone poruke poslate, odnosno kompletirane, je potpuno irelevantan Vrsta komunikacije ima semantiku poštanskog sandučeta - objekti nisu sinhronizovani Pošiljalac šalje signal ili poziva operaciju i nastavlja svojim nezavisnim putem U međuvremenu primalac prihvata signal ili poziv kad god bude spreman i nastavlja svojim putem kada to završi 11
Primer U primeru su prikazane dve asinhrone poruke od strane medicinske sestre Upit u medicinsku laboratoriju radi zakazivanja datuma za test Upit u osiguravajuću kompaniju, radi odobravanja testa 12
Modelovanje vremenskog ograničenja s:agentsistema S:ServerStranice k:kamera {a.periodičnozapočinjanje svake 1ms} a:osveži() b:dajsliku() vremenska oznaka {b.vremeizvršavanja<100ns} vremenski izraz vremenska oznaka {a.periodičnozapočinjanja svake 1ms} vreme periodičnog započinjanja događaja poziva osveži {b.vremeizvršavanja<100ns} maksimalno vreme trajanja poziva akcije dajsliku 13
Primer p1:pretplatnik :Centrala podignislušalicu p2:pretplatnik uspostavitonskobiranje biranje: *pozivnacifra(c) {biranje.vremeizvršavanja<30sec} prosledipoziv(p1,n) <<create>> r:razgovor uspostavivezu(p2) uspostavivezu(p1,p2) zvoni() podignislušalicu uspostavivezu(p1) Pretplatnici Pretplatnici p1 p1 i i p2 p2 mogu mogu da da razmenjuju razmenjuju informacije informacije kada kada je je veza veza uspostavljena uspostavljena 14
Primer UserInterface Order OrderLine StockItem <<create>> ReorderItem <<create>> DeliveryItem 15
Dijagrami sekvenci