Projektovanje softvera Dijagrami interakcije 29 10 2006 Dijagrami

  • Slides: 27
Download presentation
Projektovanje softvera Dijagrami interakcije 29. 10. 2006. Dijagrami interakcije

Projektovanje softvera Dijagrami interakcije 29. 10. 2006. Dijagrami interakcije

Uvod l l Interakcija je ponašanje koje obuhvata skup poruka koje se razmenjuju između

Uvod l l Interakcija je ponašanje koje obuhvata skup poruka koje se razmenjuju između skupa objekata u nekom kontekstu sa nekom namenom Poruka je specifikacija komunikacije između objekata koja prenosi informaciju – poruka može biti l l – l 2 od poruke se očekuje da će uslediti aktivnost UML 2. 0: interakcija je specifikacija slanja stimulusa između objekata sa ciljem obavljanja nekog zadatka – l asinhrona (slanje signala) sinhrona (poziv operacije ) definiše se u kontekstu neke saradnje (kolaboracije) Interakcija se koristi za modeliranje dinamičkih aspekata modela Dijagrami interakcije 29. 10. 2006.

Vrste dijagrama interakcije l Dijagrami interakcije mogu biti: – – l l Dijagrami sekvence

Vrste dijagrama interakcije l Dijagrami interakcije mogu biti: – – l l Dijagrami sekvence naglašavaju vremensko uređenje interakcije Dijagrami komunikacije naglašavaju strukturu veza između učesnika u interakciji – – l u okviru toka kontrole, blokovi (čvorovi) se opisuju interakcijama Vremenski dijagrami prikazuju promenu stanja jednog objekta (ili uloge) u vremenu – 3 ove dve vrste dijagrama vizuelizuju na različit način iste informacije semantički su ekvivalentni (izomorfni) i mogu se automatski konvertovati jedan u drugi Dijagrami pregleda interakcije kombinuju dijagram aktivnosti sa dijagramima sekvence – l dijagrami sekvence dijagrami komunikacije (u UML 1: dijagrami saradnje, odnosno kolaboracije) dijagrami pregleda interakcije (UML 2) vremenski dijagrami (UML 2) promena stanja se dešava kao posledica prijema stimulusa i dešavanja događaja Dijagrami interakcije 29. 10. 2006.

Kontekst l Kontekst može biti: – – l Kontekst – sistem ili podsistem kao

Kontekst l Kontekst može biti: – – l Kontekst – sistem ili podsistem kao celina – – l – – atributi klase mogu sarađivati međusobno kao i sa globalnim objektima i parametrima operacija interakcija se koristi da opiše semantiku klase Kontekst – slučaj korišćenja – 4 interakcije su među objektima koji implementiraju operaciju parametri operacije, lokalni i globalni objekti mogu interagovati da izvrše algoritam operacije Kontekst – klasa – l interakcije su u kolaboraciji objekata koji postoje u sistemu ili podsistemu primer: sistem za e-trgovinu: sarađuju objekti na strani klijenta sa objektima na strani servera Kontekst – operacija – l sistem ili podsistem operacija klasa slučaj korišćenja interakcija reprezentuje scenario za slučaj korišćenja Dijagrami interakcije 29. 10. 2006.

Učesnici i njihove uloge l l Učesnik – konkretna manifestacija apstrakcije na koju se

Učesnici i njihove uloge l l Učesnik – konkretna manifestacija apstrakcije na koju se može primeniti skup operacija i koja ima stanje Učesnici u jednoj interakciji mogu biti: – konkretne stvari – stvari iz realnog sveta l – prototipske stvari – označavaju proizvoljnu stvar nekog tipa l l – objekti su prototipske stvari koje igraju specifične uloge objekti nisu specifične instance iz realnog sveta U interakciji se mogu pojaviti "instance" apstraktnih klasa i interfejsa – – 5 na primer, o kao instanca klase Osoba može reprezentovati proizvoljnu osobu U saradnjama – l na primer, o kao instanca klase Osoba može označavati konkretnu osobu ovde instance ne označavaju konkretne stvari (nemoguće su direktne instance) ovde instance reprezentuju prototipske stvari (instance subklasa) Dijagrami interakcije 29. 10. 2006.

Objektni dijagram l l 6 Objektni dijagram specificira objekte koji sarađuju i veze između

Objektni dijagram l l 6 Objektni dijagram specificira objekte koji sarađuju i veze između njih Objektni dijagram je reprezentacija statičkih aspekata interakcije Interakcija uvodi dinamički aspekat specificirajući sekvencu poruka koje razmenjuju objekti Slanje poruke objektu najčešće predstavlja poziv adekvatne operacije Dijagrami interakcije 29. 10. 2006.

Veze l l l Veza (link) je semantička sprega između objekata Veza je instanca

Veze l l l Veza (link) je semantička sprega između objekata Veza je instanca relacije asocijacije između odgovarajućih klasa Primer: veza : Kompanija o : Osoba pridruzi() klasa l l 7 asocija klasa imenovani objekat poruka anonimni objekat Veza specificira putanju duž koje jedan objekat može da upućuje poruke drugom Poruka se prikazuje kao strelica (razne vrste strelica odgovaraju vrstama poruka) Dijagrami interakcije 29. 10. 2006.

Ukrasi veza l l Veza se može ukrasiti većinom ukrasa asocijacije (ime, uloge, navigabilnost,

Ukrasi veza l l Veza se može ukrasiti većinom ukrasa asocijacije (ime, uloge, navigabilnost, agregacija) Izuzetak je multiplikativnost – l l Ukrasi načina pristupa drugoj strani veze (UML 1, izbačeno iz UML 2) Specificiraju način na koji objekat koji šalje poruku "vidi" objekat sa druge strane veze Tekstualni ukrasi koji se pišu kao stereotipovi na udaljenom kraju veze (kod primaoca) Ukrasi: – – – 8 jer u vezi uvek učestvuju samo po 1 objekat sa svake strane association self global local parameter – objektu se pristupa preko instance asocijacije između klasa – objekat sam sebi šalje poruku – objekat je u nekom okružujućem dosegu – objekat je u lokalnom dosegu – objekat je argument operacije Dijagrami interakcije 29. 10. 2006.

Slanje i prijem poruke (1) l l Prijem jedne poruke se može smatrati instancom

Slanje i prijem poruke (1) l l Prijem jedne poruke se može smatrati instancom jednog događaja Kada se pošalje poruka, sledi akcija – l UML predviđa sledeće vrste poruka: – – – – l poziv (call) – pokreće operaciju objekta primaoca (može biti i poziv sebi) operacija() povratak (return) – vraća vrednost pozivaocu operacija() slanje (send) – asinhrono se šalje signal primaocu <<create>> kreiranje (create) – kreira se objekat <<destroy>> uništavanje (destroy) – uništava se objekat pronađena poruka (found) – poznat primalac, slanje nije opisano izgubljena poruka (lost) – poznat pošiljalac, prijem se nije dogodio <<become>> postajanje (become) – objekat menja prirodu (na obe strane veze je isti objekat) Poruke su horizontalne, jer se podrazumeva atomičnost stimulusa koji predstavlja poruka – 9 izvršenje naredbe koja predstavlja apstrakciju metoda ako se stimulus ne može smatrati atomičnim – poruka može biti crtana i ukoso naniže Dijagrami interakcije 29. 10. 2006.

Slanje i prijem poruke (2) l Kod poruke vrste poziva (call) podrazumeva se "sinhronost":

Slanje i prijem poruke (2) l Kod poruke vrste poziva (call) podrazumeva se "sinhronost": – – – l pozivalac ne napreduje dok pozvani objekat ne završi obradu poziva cela sekvenca ugneždenih poziva se završava pre nego što se spoljašnji nivo izvršenja nastavi koristi se za proceduralne pozive u jednoj niti, ali i za sinhrone pozive u višeprocesnom okruženju (pozivalac čeka da pozvani objekat obradi poziv) Primer dijagrama sekvence i raznih vrsta poruka kreiranje objekta f: Fabrika objekat <<create>> poiziv vraćanje rezultata o: Objekat linija života postavi() vrednost kraj životnog veka uništavanje objekta <<destroy>> 10 objekat Dijagrami interakcije 29. 10. 2006.

Sekvenciranje poruka l l l Unutar svakog toka kontrole neke procesne niti poruke su

Sekvenciranje poruka l l l Unutar svakog toka kontrole neke procesne niti poruke su urđene u vremensku sekvencu U dijagramima komunikacije sekvenca se modelira rednim brojem poruke ispred imena Grafička notacija: 5: uradi() U dijagramima sekvence sekvenca se modelira implicitno ređanjem poruka odozgo-naniže Proceduralni (ugnježdeni) tok kontrole se prikazuje strelicama sa popunjenom glavom – – l Ravni (flat) tok kontrole se prikazuje običnim strelicama – – redni brojevi poruka nemaju hijerarhisku strukturu primer: 5: op() l Primer ravne sekvence l Identifikacija niti iz koje se izdaje poruka se piše ispred rednog broja poruke u sekvenci – – 11 redni brojevi poruka imaju hijerarhijsku strukturu (nivoi hijerarhije se razdvajaju tačkom) primer: 2. 1. 3: op() primer: D 5: uradi() 1 a. 5: uradi() 5. poruka u toku kontrole koji pripada niti D 1. poruka ima konkurentno grananje, pa se posmatra 5. poruka u niti a Dijagrami interakcije 29. 10. 2006.

Sintaksa poruke (pojednostavljena) l Na poruci se osim imena mogu prikazati i – –

Sintaksa poruke (pojednostavljena) l Na poruci se osim imena mogu prikazati i – – l Argumenti se mogu pisati i sa imenom – 12 njeni argumenti vraćena vrednost pridruživanje vraćene vrednosti promenljivoj primer: 1. 2: starost=godine("Petar Petrović"): 25 primer: ime="Petar Petrović" Dijagrami interakcije 29. 10. 2006.

Životni vek objekata i veza l l l Po nekad se životni vek objekta

Životni vek objekata i veza l l l Po nekad se životni vek objekta ili veze ne poklapa sa trajanjem interakcije Objekti i veze mogu nastajati i nestajati u toku interakcije Sledeća ograničenja se mogu pripisati na objektu i/ili vezi (UML 1) – – – l l – objekat/veza se kreira za vreme izvršenja interakcije – objekat/veza se uništava pre završetka interakcije – objekat/veza se kreira i uništava za vreme interakcije Uništavanje objekta se označava sa X na liniji života Promena stanja ili uloge objekta na dijagramu interakcije se naznači njegovom replikacijom (UML 1) – – 13 {new} {destroyed} {transient} na dijagramu sekvence sve varijante jednog objekta se smeštaju na istu vertikalnu liniju na dijagramu kolaboracije varijante se povezuju porukom <<become>> Dijagrami interakcije 29. 10. 2006.

Fokus kontrole (događanje izvršenja) l l l Fokus kontrole se može naznačiti samo na

Fokus kontrole (događanje izvršenja) l l l Fokus kontrole se može naznačiti samo na dijagramima sekvence Fokus kontrole definiše period za vreme kojeg objekat obavlja jednu akciju direktno ili indirektno kroz podređene operacije Moguće je i ugneždavanje fokusa kontrole iz sledećih razloga: – – l (A) zbog rekurzije ili poziva sopstvene (druge) operacije (B) zbog povratnog poziva (call back) od pozvanog objekta Grafička notacija: A 14 B Dijagrami interakcije 29. 10. 2006.

Primer dijagrama sekvence k: Klijent p: ODBCProxy {transient} <<create>> : Transakcija fokus kontrole postavi(3.

Primer dijagrama sekvence k: Klijent p: ODBCProxy {transient} <<create>> : Transakcija fokus kontrole postavi(3. 4, "AB") postavi(3. 4) postavi("AB") <<destroy>> 15 Dijagrami interakcije 29. 10. 2006.

Primer dijagrama komunikacije k: Klijent <<local>> 1: <<create>> 2: postavi(3. 4, "AB") 3: <<destroy>>

Primer dijagrama komunikacije k: Klijent <<local>> 1: <<create>> 2: postavi(3. 4, "AB") 3: <<destroy>> : Transakcija {transient} 16 <<global>> p: ODBCProxy 2. 1: postavi(3. 4) 2. 2: postavi("AB") Dijagrami interakcije 29. 10. 2006.

Primer dijagrama sekvence : Mreza s: Pretplatnik r: Pretplatnik slusalica. Podignuta ton. Biranja *biranje.

Primer dijagrama sekvence : Mreza s: Pretplatnik r: Pretplatnik slusalica. Podignuta ton. Biranja *biranje. Cifre(d) {biranje. vreme. Izvrsenja<30 s} ogranicenje rutiraj. Poziv(s) biranje {new} vremenska oznaka c: Konverzacija zvono() povezani(r, s) povezi(r) 17 slusalica. Podignuta povezi(s) Dijagrami interakcije 29. 10. 2006.

Primer dijagrama komunikacije 2: dodaj. Studenta(s) r: Agent. Za. Registraciju 1: <<create>> 3: registruj()

Primer dijagrama komunikacije 2: dodaj. Studenta(s) r: Agent. Za. Registraciju 1: <<create>> 3: registruj() <<local>> <<association>> 3. 1: dohvati. Obaveze() {new} 3. 2: dodaj(s) 3. 4: <<become>> s: Student registration=true 3. 3: dodaj(s) c 1: Kurs c 2: Kurs <<association>> 18 <<self>> s: Student registration=false {new} : Skola <<association>> Dijagrami interakcije 29. 10. 2006.

Iteracije i grananje l l Dijagrami aktivnosti pogodniji za kontrolu toka Iteracije se modeliraju

Iteracije i grananje l l Dijagrami aktivnosti pogodniji za kontrolu toka Iteracije se modeliraju tako što se iteracioni izraz piše iza broja ili slova za sekvenciranje poruke: – l l Poruka se ponavlja u skladu sa izrazom Grananje se modelira tako što se uslovni izraz piše iza broja ili slova za sekvenciranje poruke: – l 19 *[i: =1. . n] ili samo * [x>0] Dve ili više poruka u interakciji mogu imati isti redni broj, ali disjunktne uslove Dijagrami interakcije 29. 10. 2006.

Fragment (okvir) interakcije l l l 20 Uvedeni u UML 2 Fragment interakcije je

Fragment (okvir) interakcije l l l 20 Uvedeni u UML 2 Fragment interakcije je najopštija jedinica interakcije Opisuje deo interakcije i konceptualno je isti kao i sama interakcija Dijagrami interakcije 29. 10. 2006.

Operatori kombinovanih fragmenata l Opšti – – – l – – – opt alt

Operatori kombinovanih fragmenata l Opšti – – – l – – – opt alt break loop - opcioni fragment – izvršava se samo ako je ispunjen uslov - alternativni izbor između više fragmenata - scenario se izvršava umesto ostatka okružujućeg fragmenta - petlja – fragment se izvršava više puta Kontrola paralelnih tokova – – 21 - dijagram sekvence (uokviruje ceo dijagram sekvence) - negativno – fragment prikazuje pogrešnu interakciju - referenca – interakcija je definisana na drugom dijagramu (mogu se definisati parametri i rezultat) Kontrola sekvencijalnog toka – l sd neg ref par region - paralelno se izvršavaju fragmenti - kritični region – u fragmentu se ne može istovremeno izvršavati više niti Dijagrami interakcije 29. 10. 2006.

Primer operatora okvira interakcije (1) l Distribucija porudžbina procedure slanje foreach (stavka) if (vrednost<=1000)

Primer operatora okvira interakcije (1) l Distribucija porudžbina procedure slanje foreach (stavka) if (vrednost<=1000) redovni. Distributer. isporuci() else specijalni. Distributer. isporuci() endif endfor if (potrebna. Potvrda) kurir. potvrdi() end procedure 22 Dijagrami interakcije 29. 10. 2006.

Primer operatora okvira interakcije (2) 23 Dijagrami interakcije 29. 10. 2006.

Primer operatora okvira interakcije (2) 23 Dijagrami interakcije 29. 10. 2006.

Modeliranje toka kontrole pomoću vremenskog redosleda l Definisati kontekst interakcije kao: – – l

Modeliranje toka kontrole pomoću vremenskog redosleda l Definisati kontekst interakcije kao: – – l Identifikovati koji objekti igraju ulogu u interakciji – l l – l 24 poređati objekte sleva udesno počevši od važnijih objekata Definisati linije životnih vekova za svaki objekat Za objekte koji se kreiraju i/ili uništavaju za vreme interakcije – l ponašanje sistema, podsistema, operacije, klase ili operacija scenario slučaja korišćenja ili kolaboracije skratiti linije života eksplicitno naznačiti njihovo rađanje i umiranje sa odgovarajućim stereotipima porukama Počevši od poruke koja inicira interakciju, povlačiti horizontalne linije za poruke između životnih linija objekata, sledeći njihov redosled odozgo-naniže Prikazati osobine poruka kao što su parametri, ako je neophodno da se objasni semantika Dijagrami interakcije 29. 10. 2006.

Modeliranje toka kontrole pomoću vremenskog redosleda l Ako je potrebno vizuelizovati ugnežđivanje poruka ili

Modeliranje toka kontrole pomoću vremenskog redosleda l Ako je potrebno vizuelizovati ugnežđivanje poruka ili tačaka u vremenu kada počinju obrade – l Ako je potrebno specificirati vremenska ili prostorna ograničenja – l 25 ukrasiti poruke vremenskim oznakama i prikačiti odgovarajuća vremenska/prostorna ograničenja Ako je potrebno specificirati tok kontrole na formalniji način – l uvesti fokuse kontrole na linije života objekata pridružiti pred- i post-uslove svakoj poruci Jedan dijagram – jedan tok kontrole (uz selekcije i cikluse) Dijagrami interakcije 29. 10. 2006.

Modeliranje toka kontrole pomoću organizacije l l Definisati kontekst interakcije Identifikovati koji objekti igraju

Modeliranje toka kontrole pomoću organizacije l l Definisati kontekst interakcije Identifikovati koji objekti igraju ulogu u interakciji – l Definisati inicijalne osobine objekata – l ako se osobine (vrednosti atributa, obeležene vrednosti, stanje ili uloga) značajnije menjaju za vreme interakcije – replicirati objekat i povezati ga sa originalom <<become>> porukom Specificirati veze između objekata preko kojih se mogu razmenjivati poruke – – 26 poređati objekte kao temena u grafu, stavljajući značajnije objekte u centar dijagrama prvo prikazati veze asocijacije, jer su najvažnije (predstavljaju strukturne konekcije) prikazati ostale veze i ukrasiti ih streotipovima putanja (<<global>>, <<local>>, . . . ) Dijagrami interakcije 29. 10. 2006.

Modeliranje toka kontrole pomoću organizacije l Počevši od poruke koja inicira interakciju, pridružiti poruke

Modeliranje toka kontrole pomoću organizacije l Počevši od poruke koja inicira interakciju, pridružiti poruke vezama, definišući broj poruke – l Ako je potrebno specificirati vremenska ili prostorna ograničenja – l ukrasiti poruke vremenskim oznakama i prikačiti odgovarajuća vremenska/prostorna ograničenja Ako je potrebno specificirati tok kontrole na formalniji način – 27 za prikazivanje ugnježdavanja primeniti hijerarhijsku brojnu šemu (notacija sa tačkom) pridružiti pred- i post-uslove svakoj poruci Dijagrami interakcije 29. 10. 2006.