Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Diagrame de interactiune

Informatica


Diagrame de interactiune

Cazurile de utilizare constituie o descriere functionala a cerintelor, structurata n raport cu unul sau mai multi actori.



Trecerea catre o structurare obiect se realizeaza asociind o "colaborare" fiecarui scenariu. Colaborarea evidentiaza obiectele domeniului, conexiunile dintre aceste obiecte si mesajele schimbate de catre obiecte n cadrul scenariului.

Scenariile, care au fost ntocmite la nceputul etapei de analiza, sunt reprezentate n continuare prin diagrame de interactiune: diagrame de colaborare si diagrame de secventa

o       Diagramele de colaborare redau relatiile stru 929e43j cturale 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 abstractie sau un lucru av nd limite foarte clare si un sens precis n contextul problemei studiate. Fiecare obiect are o identitate si poate fi distins de celelalte.

In UML, un obiect se reprezinta sub forma unui dreptunghi contin nd numele obiectului si clasa din care face parte sau numai numele obiectului, subliniat(e). De exemplu:

Mihai : Persoana Mihai IBM: Calculator

Notatia 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 stimulari externe, este reprezentat prin operatii.

Operatiile unui obiect sunt declansate prin mesaje trimise de alte obiecte

Diagramele de secventa

Diagramele de secventa ilustreaza interactiunile dintre obiecte sau actori si obiecte din  punct de vedere temporal. Un obiect este reprezentat printr-un dreptunghi si o bara verticala numita linia de viata a obiectului. Mesajele sunt reprezentate prin sageti orizontale orientate de la emitatorul mesajului catre destinatar. Ordinea de trimitere este data de pozitia pe axa verticala. Timpul se scurge de sus n jos. Axa verticala poate fi gradata n scopul exprimarii mai exacte a constr ngerilor temporale n cazul modelarii unui sistem de timp real.

:Apelant

 
:Linie telefonica

  :Apelat

 


Deschide telefonul

Ton

Formeaza numar

Indicator de sonerie Suna

Deschide telefonul

Alo


Diagrama de secventa

Diagramele de secventa se construiesc plecand de la cazurile de utilizare. Ele se pot folosi n doua scopuri, care corespund la doua nivele diferite ale procesului de dezvoltare:

Ca mijloc de documentare a cazurilor de utilizare; interactiunea este descrisa n termeni apropiati utilizatorului si fara a intra n detalii de sincronizare. Sagetile corespund evenimentelor care survin n domeniul aplicatiei. De exemplu, diagrama din figura anterioara reprezinta nceputul unei comunicatii telefonice.

Ca mijloc de reprezentare exacta a mesajelor schimbate ntre obiecte. Perioada de activitate a unui obiect este reprezentata cu ajutorul unei benzi rectangulare suprapuse pe linia de viata 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.

:Obiect2

  :Obiect1

 

:Obiect3

 


Apel operatie Obiect2 <<creaza>>


intoarcere dupa exec. operatie

Apeluri de operatii, crearea si distrugerea obiectelor.

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 executia expeditorului. Expeditorul trimite mesajul fara sa stie c nd, nici chiar daca mesajul va fi tratat de catre destinatar. In figura urmatoare este redata si confirmarea destinatarului dupa tratarea mesajului.

 

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 regula n etapa de proiectare, pentru a realiza de exemplu o excludere mutuala n utilizarea unei resurse critice. Forma de sincronizare poate fi importanta de asemenea n etapa de analiza. De exemplu, comunicatia prin posta corespunde unei trimiteri asincrone.


Mihai Monica

Scrisoare prin posta

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



Control centralizat

A

  B

  C

  D

 


Control descentralizat

Pentru a indica bucle si salturi se pot adauga notatii de tip pseudocod pe partea st nga a diagramei:


while [X] loop


end loop

Iteratie.

A

  B

  C

 


if X mesaj 1

else mesaj 2

end if

sau


[X]


[not X]

Decizie.

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 cautarii obiectelor. Ele ilustreaza n acelasi timp interactiuni ntre obiecte si relatiile structurale care permit aceste interactiuni.

Relatiile structurale sunt reprezentate prin "legaturi" - linii care conecteaza obiectele.

Mesajele schimbate ntre obiecte sunt reprezentate de-a lungul legaturilor

Ordinea de trimitere a diferitelor mesaje este indicata printr-un numar amplasat in fata mesajului, ca n figura urmatoare:

1:X

A

  B

  3:Z

C

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

B

  A

 

C

  D

 


Obiectele si legaturile create sau distruse n cursul unei interactiuni pot purta constr ngerile , respectiv . Obiectele care sunt create si distruse n cursul aceleiasi interactiuni sunt identificate prin constr ngerea .

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 catre toate obiectele unei clase, existente la un moment dat:

X

 

:X *: mesaj

 
:Y

In diagramele de colaborare pot fi introdusi actori, pentru a reprezenta declansarea interactiunilor de catre un element extern sistemului. Datorita acestui artificiu, interactiunea poate fi descrisa ntr-o maniera mai abstracta, fara a se intra n detaliile obiectelor de interfata utilizator. Primul mesaj de interactiune este trimis de actor. Un exemplu este prezentat in figura urmatoare:

:Ascensor

 
1: Apel la al doilea etaj

:Cabina

 

2: Adauga destinatia 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 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.

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:

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.

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

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.

Diagrama de comunicare

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.

UML 2 Timing diagram


Document Info


Accesari: 3983
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )