Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 27

Projektovanje softvera

Dijagrami interakcije

Uvod

Interakcija je ponaanje koje obuhvata skup poruka


koje se razmenjuju izmeu skupa objekata
u nekom kontekstu sa nekom namenom
Poruka je specifikacija komunikacije izmeu objekata
koja prenosi informaciju

poruka moe biti

od poruke se oekuje da e uslediti aktivnost

UML 2.0: interakcija je specifikacija slanja stimulusa


izmeu objekata sa ciljem obavljanja nekog zadatka

asinhrona (slanje signala)


sinhrona (poziv operacije )

definie se u kontekstu neke saradnje (kolaboracije)

Interakcija se koristi za modeliranje dinamikih aspekata modela


Dijagrami interakcije

29.10.2006.

Vrste dijagrama interakcije

Dijagrami interakcije mogu biti:

Dijagrami sekvence naglaavaju vremensko ureenje interakcije


Dijagrami komunikacije naglaavaju strukturu veza izmeu uesnika u interakciji

u okviru toka kontrole, blokovi (vorovi) se opisuju interakcijama

Vremenski dijagrami prikazuju promenu stanja jednog objekta (ili uloge) u vremenu

ove dve vrste dijagrama vizuelizuju na razliit nain iste informacije


semantiki su ekvivalentni (izomorfni) i mogu se automatski konvertovati jedan u drugi

Dijagrami pregleda interakcije kombinuju dijagram aktivnosti


sa dijagramima sekvence

dijagrami sekvence
dijagrami komunikacije (u UML 1: dijagrami saradnje, odnosno kolaboracije)
dijagrami pregleda interakcije (UML 2)
vremenski dijagrami (UML 2)

promena stanja se deava kao posledica prijema stimulusa i deavanja dogaaja

Dijagrami interakcije

29.10.2006.

Kontekst

Kontekst moe biti:

Kontekst sistem ili podsistem kao celina

atributi klase mogu saraivati meusobno


kao i sa globalnim objektima i parametrima operacija
interakcija se koristi da opie semantiku klase

Kontekst sluaj korienja

interakcije su meu objektima koji implementiraju operaciju


parametri operacije, lokalni i globalni objekti mogu interagovati da izvre algoritam operacije

Kontekst klasa

interakcije su u kolaboraciji objekata koji postoje u sistemu ili podsistemu


primer: sistem za e-trgovinu: sarauju objekti na strani klijenta sa objektima na strani servera

Kontekst operacija

sistem ili podsistem


operacija
klasa
sluaj korienja

interakcija reprezentuje scenario za sluaj korienja

Dijagrami interakcije

29.10.2006.

Uesnici i njihove uloge

Uesnik konkretna manifestacija apstrakcije na koju se moe


primeniti skup operacija i koja ima stanje
Uesnici u jednoj interakciji mogu biti:

konkretne stvari stvari iz realnog sveta

objekti su prototipske stvari koje igraju specifine uloge


objekti nisu specifine instance iz realnog sveta

U interakciji se mogu pojaviti "instance" apstraktnih klasa i interfejsa

na primer, o kao instanca klase Osoba moe reprezentovati proizvoljnu osobu

U saradnjama

na primer, o kao instanca klase Osoba moe oznaavati konkretnu osobu

prototipske stvari oznaavaju proizvoljnu stvar nekog tipa

objekat

ovde instance ne oznaavaju konkretne stvari


(nemogue su direktne instance)
ovde instance reprezentuju prototipske stvari (instance subklasa)

Dijagrami interakcije

29.10.2006.

Objektni dijagram

Objektni dijagram specificira objekte koji sarauju i veze izmeu njih


Objektni dijagram je reprezentacija statikih aspekata interakcije
Interakcija uvodi dinamiki aspekat
specificirajui sekvencu poruka koje razmenjuju objekti
Slanje poruke objektu najee predstavlja poziv adekvatne operacije
o1

o2

o3

Dijagrami interakcije

29.10.2006.

Veze

Veza (link) je semantika sprega izmeu objekata


Veza je instanca relacije asocijacije izmeu odgovarajuih klasa
Primer:
Osoba
definisiPlatu()
pridruzi()

klasa

zaposleni

poslodavac

1..*

asocijacija

: Kompanija

o : Osoba

Kompanija

veza

pridruzi()

klasa

imenovani
objekat

poruka

anonimni
objekat

Veza specificira putanju du koje jedan objekat


moe da upuuje poruke drugom
Poruka se prikazuje kao strelica
(razne vrste strelica odgovaraju vrstama poruka)
Dijagrami interakcije

29.10.2006.

Ukrasi veza

Veza se moe ukrasiti veinom ukrasa asocijacije


(ime, uloge, navigabilnost, agregacija)
Izuzetak je multiplikativnost

Ukrasi naina pristupa drugoj strani veze (UML 1, izbaeno iz UML 2)


Specificiraju nain na koji objekat koji alje poruku "vidi" objekat sa druge strane veze
Tekstualni ukrasi koji se piu kao stereotipovi na udaljenom kraju veze (kod primaoca)
Ukrasi:

jer u vezi uvek uestvuju samo po 1 objekat sa svake strane

association
self
global
local
parameter

objektu se pristupa preko instance asocijacije izmeu klasa


objekat sam sebi alje poruku
objekat je u nekom okruujuem dosegu
objekat je u lokalnom dosegu
objekat je argument operacije

Dijagrami interakcije

29.10.2006.

Slanje i prijem poruke (1)

Prijem jedne poruke se moe smatrati instancom jednog dogaaja


Kada se poalje poruka, sledi akcija

UML predvia sledee vrste poruka:

operacija()

poziv (call) pokree operaciju objekta primaoca (moe biti i poziv sebi)
povratak (return) vraa vrednost pozivaocu
operacija()
slanje (send) asinhrono se alje signal primaocu
<<create>>
kreiranje (create) kreira se objekat
<<destroy>>
unitavanje (destroy) unitava se objekat
pronaena poruka (found) poznat primalac, slanje nije opisano
izgubljena poruka (lost) poznat poiljalac, prijem se nije dogodio
<<become>>
postajanje (become) objekat menja prirodu (na obe strane veze je isti objekat)

Poruke su horizontalne, jer se podrazumeva atominost stimulusa


koji predstavlja poruka

izvrenje naredbe koja predstavlja apstrakciju metoda

ako se stimulus ne moe smatrati atominim poruka moe biti crtana i ukoso
nanie

Dijagrami interakcije

29.10.2006.

Slanje i prijem poruke (2)

Kod poruke vrste poziva (call) podrazumeva se "sinhronost":

pozivalac ne napreduje dok pozvani objekat ne zavri obradu poziva


cela sekvenca ugnedenih poziva se zavrava
pre nego to se spoljanji nivo izvrenja nastavi
koristi se za proceduralne pozive u jednoj niti,
ali i za sinhrone pozive u vieprocesnom okruenju
(pozivalac eka da pozvani objekat obradi poziv)

Primer dijagrama sekvence i raznih vrsta poruka


kreiranje objekta

f: Fabrika

objekat

<<create>>

poiziv
vraanje rezultata

o:Objekat

linija ivota

postavi()
vrednost

kraj ivotnog veka

unitavanje objekta
<<destroy>>

10

objekat

Dijagrami interakcije

29.10.2006.

Sekvenciranje poruka

Unutar svakog toka kontrole neke procesne niti poruke su urene u vremensku sekvencu
U dijagramima komunikacije sekvenca se modelira rednim brojem poruke ispred imena
5:uradi()
Grafika notacija:
U dijagramima sekvence sekvenca se modelira implicitno reanjem poruka odozgo-nanie
Proceduralni (ugnjedeni) tok kontrole se prikazuje strelicama sa popunjenom glavom

Ravni (flat) tok kontrole se prikazuje obinim strelicama

redni brojevi poruka nemaju hijerarhisku strukturu


primer: 5:op()
1. otvori()

2. aktiviraj()

Primer ravne sekvence

Identifikacija niti
iz koje se izdaje poruka se pie ispred rednog broja poruke u sekvenci
D5:uradi()

11

redni brojevi
poruka imaju hijerarhijsku strukturu (nivoi hijerarhije se razdvajaju takom)
2.1.3:op()
primer:

primer:
primer:

1a.5:uradi()

l : Lopov

: Vrata

: Alarm

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)


Na

poruci se osim imena mogu prikazati i

njeni argumenti
vraena vrednost
pridruivanje vraene vrednosti promenljivoj
primer: 1.2: starost=godine("Petar Petrovi"):25

Argumenti

12

se mogu pisati i sa imenom

primer: ime="Petar Petrovi"

Dijagrami interakcije

29.10.2006.

ivotni vek objekata i veza

Po nekad se ivotni vek objekta ili veze ne poklapa sa trajanjem interakcije


Objekti i veze mogu nastajati i nestajati u toku interakcije
Sledea ogranienja se mogu pripisati na objektu i/ili vezi (UML 1)

objekat/veza se kreira za vreme izvrenja interakcije


objekat/veza se unitava pre zavretka interakcije
objekat/veza se kreira i unitava za vreme interakcije

Unitavanje objekta se oznaava sa X na liniji ivota


Promena stanja ili uloge objekta na dijagramu interakcije
se naznai njegovom replikacijom (UML 1)

13

{new}
{destroyed}
{transient}

na dijagramu sekvence sve varijante jednog objekta


se smetaju na istu vertikalnu liniju
na dijagramu kolaboracije varijante se povezuju porukom <<become>>

Dijagrami interakcije

29.10.2006.

Fokus kontrole (dogaanje izvrenja)

Fokus kontrole se moe naznaiti samo na dijagramima sekvence


Fokus kontrole definie period za vreme kojeg objekat obavlja
jednu akciju direktno ili indirektno kroz podreene operacije
Mogue je i ugnedavanje fokusa kontrole iz sledeih razloga:

(A) zbog rekurzije ili poziva sopstvene (druge) operacije


(B) zbog povratnog poziva (call back) od pozvanog objekta

Grafika notacija:
A

14

Dijagrami interakcije

29.10.2006.

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>>

: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

slusalicaPodignuta
tonBiranja
*biranjeCifre(d)

{biranje.vremeIzvrsenja<30s}

ogranicenje

rutirajPoziv(s)

biranje
{new}

vremenska
oznaka

c:Konverzacija
zvono()
povezani(r,s)

povezi(r)

17

slusalicaPodignuta
povezi(s)

Dijagrami interakcije

29.10.2006.

Primer dijagrama komunikacije


2:dodajStudenta(s)

r:AgentZaRegistraciju
1:<<create>>
3:registruj()
<<local>>
<<association>>

3.1:dohvatiObaveze()
{new}

3.2:dodaj(s)

3.4:<<become>>

s:Student
registration=true

3.3:dodaj(s)

c1:Kurs

c2:Kurs
<<association>>

18

<<self>>

s:Student
registration=false

{new}

:Skola

<<association>>

Dijagrami interakcije

29.10.2006.

Iteracije i grananje

Dijagrami aktivnosti pogodniji za kontrolu toka


Iteracije se modeliraju tako to se iteracioni izraz pie
iza broja ili slova za sekvenciranje poruke:

Poruka se ponavlja u skladu sa izrazom


Grananje se modelira tako to se uslovni izraz pie
iza broja ili slova za sekvenciranje poruke:

19

*[i:=1..n] ili samo *

[x>0]

Dve ili vie poruka u interakciji


mogu imati isti redni broj, ali disjunktne uslove
Dijagrami interakcije

29.10.2006.

Fragment (okvir) interakcije

Uvedeni u UML 2
Fragment interakcije je najoptija jedinica interakcije
Opisuje deo interakcije i konceptualno je isti kao i sama
sd primer
interakcija
o1

o2

o3

1 : m1()
2 : m2()
3 : m3()
4 : m4()
5 : m5()

20

Dijagrami interakcije

29.10.2006.

Operatori kombinovanih fragmenata

Opti

opt
alt
break
loop

- opcioni fragment izvrava se samo ako je ispunjen uslov


- alternativni izbor izmeu vie fragmenata
- scenario se izvrava umesto ostatka okruujueg fragmenta
- petlja fragment se izvrava vie puta

Kontrola paralelnih tokova

21

- dijagram sekvence (uokviruje ceo dijagram sekvence)


- negativno fragment prikazuje pogrenu interakciju
- referenca interakcija je definisana na drugom dijagramu
(mogu se definisati parametri i rezultat)

Kontrola sekvencijalnog toka

sd
neg
ref

par
region

- paralelno se izvravaju fragmenti


- kritini region u fragmentu se ne moe istovremeno
izvravati vie niti

Dijagrami interakcije

29.10.2006.

Primer operatora okvira interakcije (1)

Distribucija porudbina
procedure slanje
foreach (stavka)
if (vrednost<=1000)
redovniDistributer.isporuci()
else
specijalniDistributer.isporuci()
endif
endfor
if (potrebnaPotvrda)
kurir.potvrdi()
end procedure

22

Dijagrami interakcije

29.10.2006.

Primer operatora okvira interakcije (2)

23

Dijagrami interakcije

29.10.2006.

Modeliranje toka kontrole pomou


vremenskog redosleda

Definisati kontekst interakcije kao:

Identifikovati koji objekti igraju ulogu u interakciji

24

poreati objekte sleva udesno poevi od vanijih objekata

Definisati linije ivotnih vekova za svaki objekat


Za objekte koji se kreiraju i/ili unitavaju za vreme interakcije

ponaanje sistema, podsistema, operacije, klase ili operacija


scenario sluaja korienja ili kolaboracije

skratiti linije ivota


eksplicitno naznaiti njihovo raanje i umiranje sa odgovarajuim stereotipima porukama

Poevi od poruke koja inicira interakciju, povlaiti horizontalne linije za poruke


izmeu ivotnih linija objekata, sledei njihov redosled odozgo-nanie
Prikazati osobine poruka kao to su parametri, ako je neophodno da se objasni
semantika

Dijagrami interakcije

29.10.2006.

Modeliranje toka kontrole pomou


vremenskog redosleda

Ako je potrebno vizuelizovati ugneivanje poruka ili taaka u vremenu


kada poinju obrade

Ako je potrebno specificirati vremenska ili prostorna ogranienja

25

ukrasiti poruke vremenskim oznakama i prikaiti odgovarajua


vremenska/prostorna ogranienja

Ako je potrebno specificirati tok kontrole na formalniji nain

uvesti fokuse kontrole na linije ivota objekata

pridruiti pred- i post-uslove svakoj poruci

Jedan dijagram jedan tok kontrole (uz selekcije i cikluse)

Dijagrami interakcije

29.10.2006.

Modeliranje toka kontrole pomou


organizacije

Definisati kontekst interakcije


Identifikovati koji objekti igraju ulogu u interakciji

Definisati inicijalne osobine objekata

ako se osobine (vrednosti atributa, obeleene vrednosti, stanje ili uloga)


znaajnije menjaju za vreme interakcije replicirati objekat i povezati ga sa
originalom <<become>> porukom

Specificirati veze izmeu objekata preko kojih se mogu razmenjivati poruke

26

poreati objekte kao temena u grafu, stavljajui znaajnije objekte


u centar dijagrama

prvo prikazati veze asocijacije, jer su najvanije (predstavljaju strukturne


konekcije)
prikazati ostale veze i ukrasiti ih streotipovima putanja
(<<global>>,<<local>>,...)

Dijagrami interakcije

29.10.2006.

Modeliranje toka kontrole pomou


organizacije

Poevi od poruke koja inicira interakciju, pridruiti poruke vezama,


definiui broj poruke

Ako je potrebno specificirati vremenska ili prostorna ogranienja

ukrasiti poruke vremenskim oznakama i prikaiti odgovarajua


vremenska/prostorna ogranienja

Ako je potrebno specificirati tok kontrole na formalniji nain

27

za prikazivanje ugnjedavanja primeniti hijerarhijsku brojnu emu


(notacija sa takom)

pridruiti pred- i post-uslove svakoj poruci

Dijagrami interakcije

29.10.2006.

You might also like