diagramele uml
Embed Size (px)
TRANSCRIPT

Diagramele UML
A. Diagrame structurale
B. Diagrame comportamentale

Diagrame structurale
Diagrame de clase
Diagrame de obiecte
Diagrame de componente
Diagrame de amplasare

Diagrame comportamentale
Diagrame de cazuri de utilizare
Diagrame de secvenţă.
Diagrame de colaborare.
Diagrame de tranziţie a stărilor –
Diagrame de activitate

DIAGRAMA DE CLASE (DC)
Diagramele de clase UML permit si reprezentarea
• Claselor oarecare
• claselor abstracte
• claselor template
• claselor utilitare

Clasele abstracte
• Clase care nu pot avea instanţe directe putand fi instanţiaţi numai descendenţii lor
• Numele lor este trecut in italic
• Pentru o clasă, se pot specifica următoarele: Clasa nu poate avea părinţi ( este
rădăcina unei ierarhii de clase ); Clasa nu poate avea descendenţi ( este
frunză );
• Aceste proprietăţi se indică prin notaţiile {root} şi {leaf} sub numele clasei.
Client
NumeAdresă
RatăClient()…

Clasele template
Asociere
Articol, Valoare
Asociază ( i : Articol, v : Valoare ) : Boolean
AsociereComandă
<< bind >>( Client, Comandă )
Fig. 9.3 Reprezentarea unei clase template.
Clasă template
Parametrii clasei template
Clasă care instanţiază clasa templete folosind parametrii
actuali

Clasă utilitară
<<utility>>
Clasă_utilitară

Interfaţa
In UML interfetele se pot reprezenta in doua moduri :
Un mic cerc conectat printr-o linie la elementul care furnizează serviciile descrise de interfaţă
O clasă stereotipizată <<interface>>
Clasă <<interface>>Clasă
Op1()Op2()…
a) b)

Atribute şi operaţii Sintaxa folosita pentru descrierea atributelor are urmatoarea forma:
nume_atribut : tip_atribut = valoare_initiala
Sintaxa folosita pentru descrierea operatiilor are urmatoarea forma:
Nume_operatie ( lista_argumente ) : tip_returnat
“lista_argumente” reprezinta lista argumentelor operatiei, fiecare argument fiind descris astfel :
nume_argument : tip_argument = valoare_implicita.
Pentru atributele si operaţiile unei clase se specifică vizibilitatea:
O operaţie sau un atribut pot fi publice ( + ) – orice alta clasă poate folosi proprietatea sau poate invoca operaţia;
O operaţie sau un atribut pot fi protejate ( # ) – sunt vizibile numai pentru descendenţii clasei respective;
O operaţie sau un atribut pot fi private ( - )– numai clasa respectivă poate folosi proprietatea sau operaţia.

Operaţiile pot fi:
Abstracte (sunt specificate cu caractere italice);
Operaţii de tip frunză ({leaf});
PolimorficeClient
persoană fizică{leaf}
Client{root}
#Nume…
+RataCredit()…
…
+Ratacredit() {leaf}…

Relaţiile care apar in diagramele de clase
Asocieri; Relaţii de generalizare; Relaţii de dependenţă; Relaţii de realizare;

•Navigarea intr-o singura directie
• Asociere calificată.
•Clasă a asocierii.
•Agregarea. simplă
•Agregare compoziţie
Clasă 1 Clasă 2
Clasă 1calificator
Clasă 2
Companie Persoanăangajator angaja
t
Job
descrieresalariu
…
Clasă a asocierii
companie Departament
a) agragare simplă
Fereastră Cadru
b) compozţie

Exemplu - ENUNT
Se consideră cazul unui sistem ce permite utilizatorilor să comande prin Internet articolele pe care doresc să le cumpere. Principalele funcţii ale sistemului sunt :
1. Administrarea bazei de date cu articolele disponibile.
2. Tratarea cererilor clienţilor.
Un astfel de sistem constă, în principal, din trei părţi :
Serverul de baze de date – stochează informaţii despre articolele disponibile.
Aplicaţia care se execută pe server – tratează cererile venite de la clienţi, interoghează şi actualizează baza de date;
Programele client care se execută pe browser-ele clienţilor.

Exemplu – DIAGRAMA DE CLASEUtilizatorManager login
1 *
login(in user, in parola)valideaza()introduce_mail(in adresa_mail)
userparolaadresa_mail
Cont_utilizator
1
*
Adauga_articol(in articol_id)Sterge_articol(in articol_id)Numar_articole()
Cos_comenzi
Verifica_stoc(in articol_id)
Stoc_articole
*
1
detalii_articol()
ID
Articol
Carte Revistacauta_in_catalog()detalii_articol(in articol_id)
Catalog_articole
*
1 1
*
*
*
11

DIAGRAME DE OBIECTE (DO)
Nume_obiect Nume_obiect : nume_clasă : Nume_clasăReprezentarea obiectului
Pot apărea stereotipurile claselor cărora le aparţin obiectele respective.
<<exception>>
ÎmpărţireCuZero
Reprezentarea poate include si valorile atributelor.
Linie_comandă
Cantitate = 45

Exemplu de DIAGRAMĂ DE OBIECTE
c : Utilizator
Nume = “Popescu”Adresa = “str. Roma, nr. 5”Telefon = “643 34 56”Nr_card = “987657896”
c_util : Cont_utilizator
user = “pop”parola = ”pop123”adresa_mail = “[email protected]”
com_1 : Comandă
ID = 125634cod_articol = 23Dată_comandă = “07 / 23 / 2001”
a : Carte
s : Coş_comenzi
Cod_articol = 23Titlu = “ … “Autor = “ … ”

PACHETE ŞI DIAGRAME DE PACHETE
Între pachete pot exista următoarele relaţii :
Pachet A
Pachet B
Import / export – presupunând două pachete, A şi B, dacă pachetul A importă pachetul B, atunci elementele din A vor vedea elementele publice din B. Partea publică a lui B reprezintă exportul pachetului B. Grafic se reprezintă printr-o relaţie de dependenţă stereotipizată <<import>>.
Generalizare – este asemănătoare cu generalizarea claselor. Pachetele mai specializate moştenesc elementele publice şi protejate de la pachetul mai general. La fel ca şi în cayul claselor, pachetele mai specializate pot înlocui pachetele mai generale oriunde acestea sunt folosite.
Pachet A
Pachet B Pachet C

Exemplu – DIAGRAMA DE PACHETE
Pachte de clase pentru interfaţa grafică
Selectare şi comandă articole Administrare bază de date
Pachete de clase pt. acces la baza de date.
Client
Fig. 9.8 Diagrama de pachete

DIAGRAMA CAZURILOR DE UTILIZARE (DIAGRAMA USE CASE)
Plasare comandă
Prelucrare comandă
colaborare
Fig. 9.9 Caz de utilizare prin colaborare
Actor 2
Actor 1Caz de utilizare 1
Caz de utilizare 2
Caz de utilizare 3
Fig. 9.10 Diagrama cazurilor de utilizare

Exemplu – DIAGRAMA CAZURILOR DE UTILIZARE
Fig. 9.11 Diagrama cazurilor de utilizare
Sistem
Login / Logout
Comandă articole
Administrare
Actualizare bază de date
<< extends >>
<< extends >>
UtilizatorAdministrator

DIAGRAMA DE INTERACTIUNE (DI)
Exista două tipuri de diagrame de interacţiune şi anume
• diagrama de secvenţă (DS)
• diagrama de colaborare (DC).

DIAGRAMA DE SECVENŢĂ (DS)
[ Condiţie ]executa ()
* [ pentru ... ]executa ()
Distrugere
Obiect 1 Obiect 1
Creare
Mesaj 1
Obiect 2
ÎntoarcereMesaj 3
Mesaj 4
Iterare
Condiţie
Autoapelare
Creare
Punct de control

Exemplu - DIAGRAMA DE SECVENŢĂ (DS)
: Utilizator
: Cont_utilizator : Catalog_articole: Coş_comenzi
Login ( user, parola )
Validează ()
: Articol
Caută_în_catalog ()
* [ pentru fiecare articol din listă ] Detalii_articol ( articol_id ) Detalii_articol ()
return ( listă_articole )
return ( info_articol )return ( info_articol )
Adaugă_articol ( articol_id )
return ( ok )

DIAGRAMA DE COLABORARE (DC).
Obiect 1
Obiect 2Obiect 3
1:<<creare>>
2: mesaj
3:<<distrugere>>
<<local>><<global>>
2.1: mesaj
2.2: [condiţie] mesaj]
Legatura
MesajNumăr de secvenţă
Autoapelare

Exemplu - DIAGRAMA DE COLABORARE (DC).
: Utilizator
: Cont_utilizator : Coş_comenzi
: Catalog_articole
1. Login ( user, parola )9. Adauga_articol ( articol_id )
: Articol
2. Validează ()
3. Caută_în_catalog ()5. detalii_articol ( art_id )
4. return ( listă_art )8. return ( info_art )
6.detalii_articol ()
7. return ( info_art )

DIAGRAMA DE ACTIVITATI (DA)
[ condiţie 1]
[ condiţie 2]
Activitate Activitate
ActivitateActivitate
Activitate
sincronizare
[ condiţie de sincronizare]
culoar
Ramură secvenţială
[ condiţie 4]
[ condiţie 3]
Obiect
Flux de obiecte

Exemplu - DIAGRAMA DE ACTIVITATI (DA)Utilizator Aplicaţie server Mangement articole
Afişează pagină logare
Introduce utilizator şi parolă
Validează utilizator
Afişare “Home page”
[ utilizator valid ]
Verifică dacă articolelele comandate
sunt în stoc
Adaugă articole la comandă
eroare
[ utilizator invalid ]
Cere listă articole disponibile
Construieşte listă articole
Afişare listă articoleAlege articole şi cantitatea
[ articolele sunt disponibile ]

DIAGRAME DE TRANZITIE A STARILOR
Stare Stare Stare
Stare Stare
eveniment
contact
after (2 sec)/ send c.isAlive
targetAt(p) [isThreat]/
t.addTarget(p)
eveniment timp semnal send
eveniment declansator tranzitie fara declansare
actiune
eveniment declansator cu
parametrii
conditie guard
Fig. 9.18 Diagrama de stare

Stari si tranzitii avansate
Nume stare
entry/ acţiune(parametru)
exit/ acţiune(parametru)
acţiune/ defer
do/
acţiune/ acţiune()
actiune de intrare
actiune de iesire
tranzitie interna
activitate
eveniment amanat
Fig. 9.19 Reprezentarea stărilor şi tranzacţiilor avansate

Starea compusă
tranzitie din substare
Stare
stare
Stare compusă
entry/ acţiuneexit/ acţiune
tranziţie
cancel
tranzitie din/in stare compusa
substare
substare substare
substare
[condiţie]
[ condiţie]

Exemplu - DIAGRAME DE TRANZITIE A STARILOR – Clasa “Cos_comenzi”
Adăugare
entry / verifică_articol ( )
articol nou / adaugă_articol ( )
Eroare
do / trimite_mesaj_eroare ( )
Articolul nu este disponibil în stoc
Validare comandă
do / înregistrează_comanda ( )
Aşteaptare comandă
articol nou / adaugă_articol ( )
validează

DIAGRAME DE DESFĂŞURARE (DD)
Internet
Server cache Server cache
Server principal
Server Server Server
conexiune
nod
nod
modem
Retea locala

Exemplu - DIAGRAMA DE DESFĂŞURARE (DD)
Server central
Server de Web
Server de baze de date
<< tcp / ip >>
Calculator local << tcp / ip >>
Fig. 9.23 Diagrama de desfăşurare pentru un sistem distribuit

DIAGRAME DE COMPONENTE (DC)
Nume fişierNume fişier Nume fişier
Nume fişierNume fişier
Nume fişier Nume fişier
Componentă

Etape şi activităţii
1. Modelarea realizarii unui caz de utilizare
2. Modelarea produselor executabilele şi a bibliotecilor
3. Modelarea fisierelor, tabelelor şi documentelor
4. Modelarea unei interfeţe de programare a aplicaţiei (API)
5. Modelarea codului sursă
6. Modelarea procesoarelor şi dispozitivelor
7. Modelarea distribuţiei componentelor
8. Modelarea implementării unei operaţii
9. Modelarea unui mecanism
10. Modelarea unui pattern de proiectare
11. Modelarea unui pattern arhitectural
12. Modelarea unui pattern arhitectural