Professional Documents
Culture Documents
1. Aparitie si evolutie
UML este un limbaj vizual de modelare.El nu este încă un limbaj vizual de programare,
deoarece nu dispune de întreg sprijinul semantic şi vizual pentru a înlocui limbajele de
programare. Limbajul este destinat vizualizării, specificării, construirii şi documentării
sistemelor de aplicaţii, dar are limitări în ceea ce priveşte generarea codului. UML reuneşte
cele mai bune tehnici şi practici din domeniul ingineriei programării, care şi-au dovedit
eficienţa în construirea sistemelor complexe.
UML este un element fundamental pentru Model-Driven Architecture ®, care reprezinta legaturile
dintre mediul de afaceri si mediul de programare, prin modelarea arhitecturala şi aplicarea lor in
dezvoltare, implementare, întreţinere şi evoluţie.
• Diagramele – sunt grafuri care descriu conţinutul unui view. UML are nouă tipuri de
diagrame, care pot fi combinate pentru a forma toate view-urile sistemului.
Aşadar pentru descrierea unui sistem sunt necesare un număr de view-uri, fiecare
reprezentând o proiecţie a descrierii intregului sistem şi care reflectă un anumuit aspect al sau.
Fiecare view este descris folosind un număr de diagrame care conţin informaţii relative
la un anumit aspect particular al sistemului. Aceste view-uri se acoperă unele pe altele, deci
este posibil ca o anumită diagramă să facă parte din mai multe view-uri.
1
Figura 1 View-urile din UML.
2.2 Diagrame
Diagramele sunt grafuri care prezintă simboluri ale elementelor de modelare aranjate astfel încât
să ilustreze o anumită parte sau un anumit aspect al sistemului. Un model are de obicei mai multe
diagrame de acelaşi tip. O diagramă este o parte a unui view specific, dar există posibilitatea ca o
diagramă să facă parte din mai multe view-uri, în funcţie de conţinutul ei. În UML sunt nouă
tipuri de diagrame pe care le vom prezenta în cele ce urmează.
3
Diagrama claselor (Class Diagram)
O diagramă a claselor prezintă structura fizică a claselor identificate în sistem. Clasele
reprezintă “obiecte” gestionate de sistem; clasele pot fi legate în mai multe moduri: asociate
(conectate între ele), dependente (o clasa depinde/foloseşte o altă clasă), specializate (o clasă
este specializarea altei clase) sau împachetate (grupate împreună în cadrul unei unitaţi). Toate
aceste relaţii se materializează în structura internă a claselor în atribute şi operaţii.
Diagrama este considerată statică, în sensul că este validă în orice moment din ciclul de
viaţă al aplicatiei. Un exemplu de diagramă a claselor este prezentat în figura 3.
4
prezintă mai multe instanţe ale ei. Diagrama obiectelor foloseşte aproape aceleaşi notaţii ca şi
diagrama claselor cu două mici diferenţe: obiectele sunt scrise subliniat şi sunt vizualizate
toate instantele relaţiei (vezi figura 4).
Deşi nu este la fel de importantă ca diagrama claselor, cea o obiectelor este folosită
pentru exemplificarea unei diagrame a claselor de complexitate mare, permiţând vizualizari
ale instanţelor actuale şi a relaţiilor exact aşa cum sunt ele realizate. Mai poate fi folosită ca o
parte a diagramelor de colaborare, în care sunt vizualizate colaborările dinamice existente în
cadrul unui set de obiecte.
5
Figura 5 O diagrama de stare pentru un ascensor.
Nu vom construi diagrame de stare pentru toate clasele din sistem ci numai pentru
acelea care au un număr de stări bine definit iar comportamentul clasei este afectat şi
modificat de acestea.
6
Figura 6 Diagrama de secventa pentru un server de imprimanta.
Diagrama de colaborare (Collaboration Diagram)
Această diagramă surprinde colaborarea dinamică între obiecte, într-o manieră similară
cu a diagramei de secvenţă, dar pe lângă schimbul de mesaje (numit şi interacţiune) prezintă
obiectele şi relaţiile dintre ele (câteodată referite ca şi context).
Cum decidem ce tip de diagramă să folosim? Dacă cel mai important aspect este timpul
sau secvenţa de mesaje vom folosi diagrama de secvenţă, dar dacă trebuie scos în evidentă
contextul, vom apela la o diagramă de colaborare.
Desenarea unei diagrame de colaborare se face similar cu a unei diagrame a obiectelor.
Mesajele vor fi reprezentate prin săgeţi între obiectele implicate în mesaj şi pot fi însoţite de
etichete care specifică ordinea în care acestea vor fi transmise. De asemenea se pot vizualiza
condiţii, iteraţii, valori returnate, precum şi obiectele active care se execută concurent cu alte
obiecte active (vezi figura 7).
7
Figura 7 O diagrama de colaborare pentru un server de imprimanta.
Diagrama de activitate (Activity Diagram)
O diagramă de activitate prezintă fluxul secvenţelor de activitaţi, ca în figura 8, şi este
de obicei folosită pentru a descrie activitaţile realizate în cadrul unei operaţii, folosind dacă
este cazul decizii şi condiţii.
Diagrama conţine stări de acţiune (action states), şi mesaje care vor fi trimise sau
recepţionate ca parte a acţiunii realizate.
8
Figura 9 O diagrama a componentelor.
Diagrama de desfăşurare (Deployment View)
Arhitectura fizică pe care va fi implementat sistemul, calculatoarele, device-urile
(referite ca nodurile sistemului), împreună cu conexiunile dintre ele, vor putea fi prezentate în
cadrul unei diagrame de desfaşurare. Componentele şi obiectele executabile sunt alocate în
interiorul nodurilor, ceea ce ne va permite o vizualizare a unitaţilor care se vor executa pe
fiecare nod.
Diagrame de secventa:
Modificarea cea mai importanta este notatia cadrelor de interactiune, care permite
gestionarea structurilor interative, conditionale si a altor structuri de control a
comportamentului. Puteti exprima aproape in intregime algoritmii in diagramele
de secventa. Vechile marcaje de iteratii si notatiile lor au fost abandonate. Antetele
de linii de viata nu mai sunt instante, acestea fiind definite prin termenul
participant. Diagramele de colaborare se numesc acum diagrame de comunicare.
Diagramele de stare
Daca UML 1 facea distinctia intre actiuni si activitati, UML 2 numeste cele doua
10
activitati si utilizeaza acest termen in toate cazurile.
Diagramele de activitati
• Freeware (soft gratuit) - care sunt puse la dispozitia tuturor utilizatorilor. Ex.: StarUML,
UMLet, ArgoUML .
• Commercialware (contra cost) – profesionale, prezinta un set mai mare de optiuni pentru
realizarea diagramelor. Ex.: Altova Umodel, Edraw UML Diagram.
11
• Pluginuri pentru IDE. Ex.: MaintainJ Plugin, SDE IntelliJ IDEA.
13
4. In continuare vom selecta proiectul a carui diagram o vom realiza.
5. Selectam noul fisier .uml creat. Din cadrul sectiunii palette vom selecta tipul de element pe
care dorim sa il cream: clase, interfete, variabile, etc.
14
6. In continuare se pot realiza diagramele dorite cu ajutorul elemetelor puse la dispozitie de
meniul “Palette”.
15
2. Creeare proiect nou utilizand optiunea File -> New din meniu
3. Importarea fisierelor ce contin codul aplicatiei dupa care se vor genera diagramele.
(utilizand meniul Project -> Import Binary Tipes )
16
Se adauga fisierele necesare.
17
4. Dupa adaugarea fisierelor din fereastra Model Tree se pot genera diagramele dorite.
(click dreapta pe numele pachetului ce contine fisierele aplicatiei -> Show in new
diagram -> content).
18
Selctarea tipului de diagrama dorit.
19
5. Exemplu de diagrame generate:
-Diagrama de clase
-Analog in cazul in care aplicatia are mai multe pachete (diagrama de pachete).
20
5. Diagrame statice vs. Dinamice
• Diagrame statice: Prezinta structura statica a unui model, cu alte cuvinte elementele care
exista (clasele, atributele, metodele, etc.), structura interna a elementelor si relatiile dintre
ele. Sunt utilizate pentru a creea diagrame care reprezinta concepte din lumea reala si
relatiile dintre ele sau diagrame de clase care descompun un sistem software in partile
sale componente.
• Diagrame dinamice: Sunt diagrame realizate la un moment dat in timpul rularii unui
program. Acestea descriu obiectele active la un moment dat si relatiile dintre ele si difera
21
in functie de momentul in care este surprins programul in timpul rularii (Ex. diagrame de
secventa, diagrame de stare, diagrame de activitate).
6. Notatii UML:
22
Figura 15 Reprezentarea grafică în UML a unei relaţii de derivare
23