Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Dijagram sekvenceInformacioni sistemi - mini seminarski rad
Nemanja Mićović[email protected]
Matematički fakultet, Univerzitet u Beogradu
21. decembar 2017
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
▶ Bazirano na materijalima iz [Fowler, 2003]
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
UML dijagrami
Slika: Shema UML dijagrama
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Dijagrami interakcije
▶ Opisuju kako grupa objekata sarađuje u nekom procesu/ponašanju▶ Često je to jedan slučaj upotrebe
▶ Pružaju vizuelizaciju interaktivnosti nekih delova sistema
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Dijagram sekvence
▶ Predstavlja jedan od dijagrama interakcije▶ Opisuje redosled razmenjivanja poruka između učesnika▶ Jedan od korisnijih UML dijagrama za fazu implementacije
▶ Poruke se često mogu preslikati u metode klasa▶ (A)sinhronost poruka se takođe preslikava u kod▶ Prikazuje odgovornost objekata (učesnika)▶ Aktivnost učesnika se može preslikati na postojanje metoda klase na steku
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Elementi dijagrama
Osnovni elementi dijagrama su:▶ Poruke
▶ Sinhrone▶ Asinhrone
▶ Linije toka (eng. lifeline)▶ Popularan naziv u engleskoj terminologiji - swim lane
▶ Učesnici (eng. participant) tj. objekti▶ Okviri toka (opt, loop, alt, ...)▶ Aktivnost učesnika (vertikalni pravougaonici na isprekidanim linijama)
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Primer dijagrama - centralizovana kontrola
Slika: Dijagram sekvence
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Primer dijagrama - distribuirana kontrola
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Dijagram sekvence
▶ Primetimo da prethodna dva dijagrama opisuju suštinski isti proces▶ No sa dijagrama je jasno da se interakcija učesnika drastično razlikuje
(centralizovana i distribuirana kontrola)▶ Dijagram sekvence detaljno i jasno opisuje redosled i odgovornost pri interakciji
učesnika
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Centralni protiv distribuiranog dizajna
▶ Martin Fauler1 preferira distribuirani dizajn (DD) [Fowler, 2003]▶ DD lokalizuje efekte promene▶ DD prirodno vodi ka polimorfizmu umesto ka uslovnoj logici
„Generalno, OO stil se ogleda u tome da se koristi veliki broj malih objekata sa punojednostavnih metoda koje nude veliki broj priključaka za nasleđivanje i varijaciju.Ovakav stil ume da bude konfuzan ljudima koji su naviknuti na duge procedure i ovakvapromena predstavlja suštinu pri procesu promenu paradigme u objektnu paradigmu.”
Martin Fauler
1eng. Martin Fowler
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Kreiranje i brisanje učesnika
▶ Učesnike pravimo strelicomkoja ulazi u njihovpravougaonik
▶ Poruka new je opciona▶ Učesnike brišemo koristeći x
▶ Učesnik može da obrišesam sebe ili ga možeobrisati drugi učesnik
Slika: Kreiranje i brisanje učesnika [Fowler, 2003]
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Kreiranje i brisanje učesnika
▶ U nekim jezicima se vrši automatsko oslobađanje memorije▶ To potencira da nije neophodno u dijagramu označavati kada se učesnik briše▶ No dobra je praksa na dijagramu prikazati kada učesnik više nije potreban
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Kontrolna logika - grananje i iteracija
▶ Dijagram sekvenci omogućava prikaz iteracije, opcionog izvršavanja i slično▶ Iako podržava, nije namenjen za vizuelizaciju algoritama ili kontrolne logike▶ Ukoliko je potrebna njihova intenzivna prezentacija bolje je koristiti pseudo kod ili
dijagrame aktivnosti
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Kontrolna logika - grananje i iteracija
def dispatch():for product in lineitem:
if product.value > 10 000:careful.dispatch
else:regular.dispatch
if (needsConfirmation):messenger.confirm
Slika: Uslovi, grananje i petlje
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Kontrolna logika - grananje i iteracija
Operator Opisalt Izvršava se okvir čiji je uslov zadovoljen (eng. alternative)opt Okvir se izvršava ako i samo ako je uslov zadovoljen (eng. optional)par Okvir se izvršava paralelno (eng. parallel)loop Okvir se izvršava dokle god je zadovoljen uslovregion Kritični region - okvir sme biti izvršen istovremeno samo od strane jedne nitineg Fragment ilustruje nevalidnu interakciju (eng. negative)ref Referiše na interakciju definisanu na drugom dijagramu (eng. reference)sd Predstavlja dijagram sekvence i koristi se
da okruži ceo dijagram (eng. sequence diagram)Tabela: Oznake za okvire
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Stara notacija za kontrolnu logiku
Slika: Stara notacija za kontrolnu logiku
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Sinhrone i asinhrone poruke
▶ UML2 definiše poruke kao asinhrone i sinhrone▶ Sinhrone poruke označavamo popunjenom strelicom▶ Asinhrone poruke označavamo nepopunjenom strelicom▶ Kada učesnik emituje sinhronu poruku, mora sačekati na povratnu poruku kako bi
nastavio sa radom▶ Emitovanje asinhrone poruke omogućava da učesnik nastavi sa svojim radom▶ Sinhronost poruka može biti od pomoću u fazi implementacije▶ Asinhronost povećava responzivnost i povećava stepen spregnutosti
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Kada koristiti dijagram sekvence?
▶ Kada posmatramo ponašanje više učesnika unutar slučaja upotrebe▶ Dijagram sekvence je dobar u prikazivanju saradnje između učesnika
▶ Ali nije previše dobar u detaljnom definisanju ponašanja učesnika
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Alternative dijagramu sekvence
▶ Ako je potrebno posmatrati ponašanje jednog objekta u više slučajeva upotreberazmotriti korišćenje dijagram stanja.
▶ Ako je potrebno posmatranje ponašanja u više slučajeva upotrebe ili niti,razmotriti korišćenje dijagram aktivnosti.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Hvala na pažnji!
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
...
.
Bibliography IFowler, M. (2003).UML Distilled: A Brief Guide to the Standard Object Modeling Language.Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 3 edition.