Documente Academic
Documente Profesional
Documente Cultură
scenariu.
Colaborarea
evideniaz
obiectele
domeniului,
Obiecte
Un obiect este un concept, o abstracie sau un lucru avnd 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 coninnd numele
obiectului si clasa din care face parte sau numai numele obiectului, subliniat(e).
De exemplu:
Mihai : Persoana
Mihai
IBM: Calculator
1
:Profesor
Diagramele de secventa
Diagramele de secven ilustreaz interaciunile dintre obiecte sau actori si
obiecte din
:Apelant
:Linie telefonica
:Apelat
Deschide telefonul
Ton
Formeaz numar
Indicator de sonerie
Sun
Deschide telefonul
Alo
Diagram de secven
:Obiect2
:Obiect1
:Obiect3
Apel operatie Obiect2
<<creaza>>
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, comunicaia prin pot corespunde unei trimiteri asincrone.
Mihai
Monica
Scrisoare prin pot
Control centralizat
Control descentralizat
Pentru a indica bucle i salturi se pot aduga notaii de tip pseudocod pe partea
stng a diagramei:
A
while [X] loop
end loop
Iteraie.
A
if X
mesaj 1
else
mesaj 2
end if
sau
[X]
[not X]
Decizie.
Diagrame de colaborare
Diagramele de colaborare sunt n particular indicate pentru faza exploratorie,
care corespunde cutrii obiectelor. Ele ilustreaz n acelai timp interaciuni ntre
obiecte i relaiile structurale care permit aceste interaciuni.
1:X
3:Z
2:Y
{nou}
A
C
{tranzitoriu}
D
{distrus}
Obiectele i legturile create sau distruse n cursul unei interaciuni pot purta
constrngerile {nou}, respectiv {distrus}. Obiectele care sunt create i distruse n
cursul aceleiai interaciuni sunt identificate prin constrngerea {tranzitoriu}.
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 ctre toate obiectele unei clase, existente la un moment dat:
:X
*: mesaj
:Y
:Ascensor
:Cabina
utilizatorul
completeaza
datele
necesare
imprumutului,
Sistem-
10
Diagrama de colaborare
11
o1:Observer
o2:Observer
1: attach(o1)
2: attach(o2)
3: Notify
4: update()
5: getState()
6: update()
7: getState()
3: Notify
s:Subject
4: update()
o1:Observer
5: getState()
1: attach(o1)
6: update()
7: getState()
2: attach(o2)
o2:Observer
12
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.
13
Diagrame de secventa
Diagrama de comunicare
15
16
17
18