Diagrame de interactiune - Home - Cursuri Automatica...

23

Click here to load reader

Transcript of Diagrame de interactiune - Home - Cursuri Automatica...

Page 1: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Diagrame de interactiune

Cazurile de utilizare constituie o descriere funcţională a cerinţelor,

structurată în raport cu unul sau mai mulţi actori.

Trecerea către o structurare obiect se realizează asociind o "colaborare"

fiecărui scenariu. Colaborarea evidenţiază obiectele domeniului,

conexiunile dintre aceste obiecte şi mesajele schimbate de către obiecte în

cadrul scenariului.

Scenariile, care au fost întocmite la începutul etapei de analiză, sunt

reprezentate în continuare prin diagrame de interacţiune: diagrame de

colaborare şi diagrame de secvenţă.

o Diagramele de colaborare redau relatiile structurale dintre obiecte

si mesajele prin care ele comunica.

o Diagramele de secventa evidentiaza ordonarea in timp a mesajelor.

Diagramele de interactiune includ actori, obiecte sau componente implicate intr-o

interactiune si redau mesajele schimbate in cursul interactiunii.

Obiecte

Un obiect este un concept, o abstracţie sau un lucru având limite foarte clare şi

un sens precis în contextul problemei studiate. Fiecare obiect are o identitate şi

poate fi distins de celelalte.

In UML, un obiect se reprezintă sub forma unui dreptunghi conţinând numele

obiectului si clasa din care face parte sau numai numele obiectului, subliniat(e).

De exemplu:

Mihai : Persoana Mihai IBM: Calculator

1

Page 2: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Notaţia permite de asemenea desemnarea de obiecte anonime, specificand

numai numele clasei din care face parte. De exemplu:

:Student :Profesor

Comportamentul unui obiect, ca urmare a unei stimulări externe, este

reprezentat prin operaţii.

Operaţiile unui obiect sunt declanşate prin mesaje trimise de alte obiecte.

Diagramele de secventa

Diagramele de secvenţă ilustrează interacţiunile dintre obiecte sau actori si

obiecte din punct de vedere temporal. Un obiect este reprezentat printr-un

dreptunghi şi o bară verticală numită linia de via ţă a obiectului . Mesajele sunt

reprezentate prin săgeţi orizontale orientate de la emiţătorul mesajului către

destinatar. Ordinea de trimitere este dată de poziţia pe axa verticală. Timpul se

scurge de sus în jos. Axa verticală poate fi gradată în scopul exprimării mai

exacte a constrângerilor temporale în cazul modelării unui sistem de timp real.

Deschide telefonul

Ton

Formează numar

Indicator de sonerie Sună

Deschide telefonul

Alo

Diagramă de secvenţă

2

:Apelant :Linie telefonica :Apelat

Page 3: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Diagramele de secven ţă se construiesc plecand de la cazurile de utilizare . Ele se

pot folosi în două scopuri, care corespund la doua nivele diferite ale procesului

de dezvoltare:

1) Ca mijloc de documentare a cazurilor de utilizare ; interacţiunea este descrisă

în termeni apropiaţi utilizatorului şi fără a intra în detalii de sincronizare.

Săgeţile corespund evenimentelor care survin în domeniul aplicaţiei. De

exemplu, diagrama din figura anterioara reprezintă începutul unei comunicaţii

telefonice.

2) Ca mijloc de reprezentare exact ă a mesajelor schimbate î ntre obiecte .

Perioada de activitate a unui obiect este reprezentat ă cu ajutorul unei benzi

rectangulare suprapuse pe linia de via ţă a obiectului.

In exemplul din figura urmatoare, obiectul 1 apeleaza o operatie a obiectului

2. Obiectul 2 creaza obiectul 3 care exista pana cand este distrus tot de

obiectul 2. Obiectul 3 apeleaza o operatie proprie.

Apel operatie Obiect2 <<creaza>>

intoarcere dupa exec. operatie

Apeluri de operatii, crearea si distrugerea obiectelor.

3

:Obiect1 :Obiect2

:Obiect3

Page 4: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Sagetile se folosesc pentru a reprezenta mesaje care corespund unui apel de

proceda intr-un flux de executie cu un singur fir de executie.

UML permite si reprezentarea de mesaje intre obiecte care sunt active in

fire de executie diferite. Intre astfel de obiecte pot fi trimise mesaje

sincrone sau asincrone.

Atunci cand un obiect trimite un mesaj sincron, el ramane in asteptare pana cand

destinatarul trateaza mesajul. De aceea, revenirea dupa tratarea unui mesaj

sincron nu este necesar sa fie reprezentata.

Un apel de procedura este un apel sincron. De aceea nici revenirea dupa

executia unei proceduri nu este reprezentata intotdeauna.

Trimiterea asincrona a unui mesaj nu întrerupe execuţia expeditorului.

Expeditorul trimite mesajul fără sa stie când, nici chiar dacă mesajul va fi tratat de

către destinatar. In figura urmatoare este redata si confirmarea destinatarului

dupa tratarea mesajului.

4

Page 5: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Apel cu timeout.

Trimitere mesaj cu timeout = trimitere sincrona cu blocarea expeditorului pe un

timp limitat (care poate fi specificat). Expeditorul asteapta ca destinatarul sa

primeasca mesajul un timp limitat. Comunicatia nu are loc daca in intervalul de

timp dat destinatarul nu ia in considerare mesajul.

Scopul unui mesaj asincron poate fi:

- Crearea unui obiect nou

- Crearea unui fir de executie

- Comunicarea cu un fir de executie existent

Alegerea formei de sincronizare are loc de regulă în etapa de proiectare, pentru a

realiza de exemplu o excludere mutuală în utilizarea unei resurse critice. Forma

de sincronizare poate fi importantă de asemenea în etapa de analiza. De

exemplu, comunicaţia prin poştă corespunde unei trimiteri asincrone.

Mihai Monica Scrisoare prin poştă

Diagramele de secventa redau modul de transfer al controlului intre obiecte:

5

Page 6: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Control centralizat

Control descentralizat

Pentru a indica bucle şi salturi se pot adăuga notaţii de tip pseudocod pe partea

stângă a diagramei:

6

A B C D

A B C D

Page 7: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

while [X] loop

end loop

Iteraţie.

if X mesaj 1

else mesaj 2

end if

sau

[X]

[not X]

Decizie.

7

A B C

A B

A B C

Page 8: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Diagrama de secventa cu mesaje asincrone

O asistenta medicala trimite 2 mesaje asincrone: catre laboratorul medical, pentru a rezerva o data pentru un test, si catre o societate de asigurari, pentru

aprobarea testului. Ordinea in care sunt trimise cele 2 mesaje nu este

importanta. Daca societatea de asigurari aproba testul, atunci asistenta

planifica testul la data furnizata de laboratorul medical. Reprezentarea

intoarcerii dupa tratarea mesajului asincron nu este obligatorie.

Diagrame de colaborare

Diagramele de colaborare sunt în particular indicate pentru faza exploratorie,

care corespunde căutării obiectelor. Ele ilustrează în acelaşi timp interacţiuni între

obiecte şi relaţiile structurale care permit aceste interacţiuni.

8

Page 9: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Relatiile structurale sunt reprezentate prin “legaturi” – linii care conecteaza

obiectele.

Mesajele schimbate între obiecte sunt reprezentate de-a lungul legăturilor.

Ordinea de trimitere a diferitelor mesaje este indicată printr-un număr

amplasat in fata mesajului, ca în figura urmatoare:

1:X

3:Z

2:Y

“Scenariul incepe cu un obiect A care trimite un mesaj X unui obiect B. Acesta trimite un mesaj Y obiectului C care-si trimite un mesaj Z.”

{nou}

Obiectele şi legăturile create sau distruse în cursul unei interacţiuni pot purta

constrângerile {nou}, respectiv {distrus}. Obiectele care sunt create şi distruse în

cursul aceleiaşi interacţiuni sunt identificate prin constrângerea {tranzitoriu}.

9

A

B

C {tranzitoriu}

B

A

C

D{distrus}

Page 10: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Pentru a indica trimiterea in mod repetat a unui mesaj, se utilizeaza caracterul *

in fata mesajului. De exemplu, in figura urmatoare s-a reprezentat trimiterea unui

mesaj către toate obiectele unei clase, existente la un moment dat:

:X *: mesaj

:Y

In diagramele de colaborare pot fi introduşi actori, pentru a reprezenta

declanşarea interacţiunilor de către un element extern sistemului. Datorită acestui

artificiu, interacţiunea poate fi descrisă într-o manieră mai abstractă, fără a se intra

în detaliile obiectelor de interfaţă utilizator. Primul mesaj de interacţiune este

trimis de actor. Un exemplu este prezentat in figura urmatoare:

1: Apel la al doilea etaj

2: Adaugă destinaţia al doilea etaj

Figura urmatoare reda o posibila diagrama de colaborare, corespunzatoare unui

scenariu al cazului de utilizare „Imprumut”. Scenariul corespunde secventei tipice

de evenimente a cazului de utilizare, adica: utilizatorul este inregistrat ca abonat,

el nu a imprumutat numarul maxim admis de carti, cartea este gasita si

imprumutul inregistrat. Obiectele redate in diagrama sunt: “Fereastra-Abonati”, in

care utilizatorul completeaza datele necesare imprumutului, “Sistem”-

reprezentand modulul central al sistemului, “Fisierul de abonati”, “Fisele

10

:Cabina

:Ascensor

X

Page 11: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

abonatilor”, “Fisierul de carti”, “Fisele cartilor” si “Fereastra-mesaj” in care

sistemul afiseaza datele necesare imprumutului.

Diagrama de colaborare

Echivalenta diagrame de interactiune – diagrame de colaborare

Cele doua categorii de diagrame reprezinta vederi diferite asupra aceleiasi

informatii.

In cazul diagramelor de secventa accentul este pus pe secventialitatea

mesajelor.

In cazul diagramelor de colaborare accentul cade pe colaborarile dintre

obiecte.

Formele grafice utilizate in cadrul fiecarei categorii de diagrame accentueaza

aceste aspecte.

11

Page 12: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Numeroase editoare UML permit conversia automata de la o diagrama de

secventa la cea de colaborare corespunzatoare sau invers.

Figura urmatoare reda sablonul de proiectare „Subiect-observator” printr-o

diagrama de secventa si prin diagrama de colaborare echivalenta:

s:Subject o1:Observer o2:Observer

2: attach(o2)1: attach(o1)

3: Notify

4: update()5: getState()

6: update()

7: getState()

s:Subject

o1:Observer

o2:Observer

1: attach(o1)

2: attach(o2)

3: Notify4: update()

5: getState()

6: update()

7: getState()

12

Page 13: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Un alt exemplu:

Urmatoarea diagrama reda secventa de operatii pentru rezervarea unei camere

de hotel. Obiectul care initiaza secventa de mesaje este o fereastra de rezervare.

Fereastra de rezervare trimite mesajul makeReservation() unui obiect HotelChain, care trimite mesajul makeReservation() unui obiect Hotel. Daca obiectul Hotel are

camere disponibile, atunci el face o Rezervare si o Confirmare.

In aceasta diagrama mesajele sunt reprezentate prin apeluri de operatii din

clasele obiectelor participante.

13

Page 14: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Semnul * din fata apelului propriu available() inseamna iteratie. Expresia dintre []

este o conditie. Diagrama contine si o nota explificativa. Astfel de note pot fi

incluse in orice diagrama UML.

Diagrama de colaborare echivalenta:

Ordinea mesajelor este indicata prin secvente de numere: mesajele de la acelasi

nivel (trimise in timpul aceluiasi apel) au acelasi prefix, sufixele indicand

secventa in care au loc.

Diagramele de interactiune in UML 2 sunt:

- Diagrame de secventa

14

Page 15: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

- Diagrame de comunicare, care corespund diagramelor de colaborare din

versiunile anterioare

- Diagrame de evolutie in timp (Timing diagrams)

- Diagrame de interactiune generale – descriu fluxul controlului intr-o

maniera generala. Utilizeaza notatii specifice diagramelor de activitate

Diagrama de secventa in UML 2.

Diagramele de comunicare, permit specificarea unei comunicari in

descrierea unei alte comunicari, ceea ce conduce la reutilizarea comportarilor.

15

Page 16: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Diagrama de comunicare

16

Page 17: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

Diagrama de comunicare care refera colaborarea “getPerformances”.

O diagrama de evolutie in timp (Timing diagram) reda derularea in timp a unei

activitati cu constrangeri de timp (in care timpul este un element critic). Diagrama

cuprinde: o linie de viata, starile in timp, constrangeri de durata, schimbarile de

stare, mesaje sau evenimente, linia timpului. Figura reda inregistrarea la un curs

intr-o universitate.

17

Page 18: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

UML 2 Timing diagram

18

Page 19: Diagrame de interactiune - Home - Cursuri Automatica …andrei.clubcisco.ro/cursuri/3ip/curs/3.4_UML_Diagrame_…  · Web view2010-10-29 · In UML, un obiect se reprezint ... Diagrama

19