Bazirano na materijalima iz [Fowler,...

Preview:

Citation preview

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Dijagram sekvenceInformacioni sistemi - mini seminarski rad

Nemanja Mićovićnmicovic@outlook.com

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.

Recommended