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
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
: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
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
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:ZC
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
AC
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
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.
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.
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
|