Ingineria programrii
2. Limbajul unificat de modelare, UML
Florin Leon
Universitatea Tehnic Gheorghe Asachi din Iai Facultatea de Automatic i Calculatoare
http://florinleon.byethost24.com/curs_ip.htm
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Limbajul unificat de
modelare, UML
1. Modelarea
2. Limbajul unificat de modelare
3. Clasificarea diagramelor UML 2.0
4. Diagramele UML 2.0
5. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Limbajul unificat de
modelare, UML
1. Modelarea
2. Limbajul unificat de modelare
3. Clasificarea diagramelor UML 2.0
4. Diagramele UML 2.0
5. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Modelarea
Un model este o simplificare a unui anumit sistem, care
permite analizarea unora dintre proprietile acestuia
Reine caracteristicile necesare
Folosirea de modele poate nlesni abordarea problemelor
complexe, facilitnd comunicarea i nelegerea
Divide et impera
Exemple:
Formalismul matematic
Reprezentrile din fizic
Orice limbaj intern poate fi folosit pentru modelare, ns ntr-un context formal este nevoie de standardizare
4
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Limbajul unificat de
modelare, UML
1. Modelarea
2. Limbajul unificat de modelare
3. Clasificarea diagramelor UML 2.0
4. Diagramele UML 2.0
5. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
6
Scurt istoric (I)
ntre 1989 i 1994 erau folosite mai mult de 50 de limbaje de modelare software, fiecare cu propriile notaii
Utilizatorii doreau un limbaj standardizat, o lingua franca a
modelrii
La mijlocul anilor 90 trei metode s-au dovedit mai eficiente:
Booch (Grady Booch): potrivit mai ales pentru proiectare i implementare, cu dezavantajul unor notaii complicate
OMT, Object Modeling Technique (Jim Rumbaugh): potrivit pentru analiz i sisteme informaionale cu multe date
OOSE, Object Oriented Software Engineering (Ivar Jacobson):
aceast metod a propus aa-numitele cazuri de utilizare, care ajut la nelegerea comportamentului sistemului n ansamblu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
7
Precursorii UML
Booch
OMT
OOSE
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
8
Scurt istoric (II)
1994: Jim Rumbaugh, creatorul OMT, a prsit General Electric, alturndu-se lui Grady Booch la Rational Corp.
1995: Ivar Jacobson, creatorul OOSE, a venit la Rational
iar ideile lui, n special conceptul de cazuri de utilizare,
au fost adugate Metodei unificate
Metoda rezultat a fost numit Limbajul unificat de modelare, UML
1996: Formarea de ctre Rational a consoriului Partenerilor UML din care fceau parte gigani precum Hewlett-Packard, Microsoft i Oracle
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
9
UML
Limbaj pentru specificarea, vizualizarea,
construirea i documentarea elementelor sistemelor software
Un limbaj grafic care ne permite s reproducem pe hrtie ceea ce este produs n procesul de dezvoltare a unui sistem software
Poate fi folosit i pentru alte sisteme, cum ar fi procesele de afaceri (business processes)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
10
Versiuni i standardizare
Ianuarie 1997: UML 1.0 a fost propus spre standardizare
n cadrul OMG (Object Management Group)
Noiembrie 1997: versiunea UML 1.1 a fost adoptat ca standard de ctre OMG
Martie 2003: a fost lansat versiunea 1.5
Octombrie 2004: versiunea 2.0
August 2011: versiunea 2.4.1
UML este standardul ISO/IEC 19501:2005
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
11
UML
Ca orice limbaj, UML are:
Notaii (alfabetul de simboluri)
Sintax i gramatic (reguli pentru combinarea simbolurilor)
UML este un instrument de comunicare
UML nu este o metodologie de dezvoltare
Dar este determinat de cele mai bune practici n
domeniu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Limbajul unificat de
modelare, UML
1. Modelarea
2. Limbajul unificat de modelare
3. Clasificarea diagramelor UML 2.0
4. Diagramele UML 2.0
5. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
13
Clase de diagrame
Diagrame de structur
Prezint elementele unei specificaii independent de timp
Includ: diagramele de clase, structuri compuse, componente,
desfurare (deployment), obiecte i pachete
Diagrame de comportament
Prezint trsturile comportamentale ale sistemului
Includ: diagramele de activiti, maini de stare i cazuri de utilizare, precum i cele 4 diagrame de interaciune
Diagrame de interaciune
Scot n eviden interaciunile dintre obiecte
Includ: diagramele de secvene, comunicare, interaciuni generale (interaction overview) i cronometrare (timing)
Legend: utilitate practic mare, medie, mic
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
14
Diagramele UML 2.0 (I)
Diagrame de structur: ce conine sistemul
Clase
Structuri compuse
Componente
Desfurare
Obiecte
Pachete
Diagrame de comportament:
ce se ntmpl n sistem
Activiti
Maini de stare
Cazuri de utilizare
Diagrame de interaciune: fluxurile de control i date dintre componentele sistemului
Secvene
Comunicare
Interaciuni generale
Cronometrare Diagrame introduse n UML 2.0
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
15
Diagramele UML 2.0 (II)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Limbajul unificat de
modelare, UML
1. Modelarea
2. Limbajul unificat de Modelare
3. Clasificarea diagramelor UML 2.0
4. Diagramele UML 2.0
5. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
17
1. Diagrama cazurilor de utilizare
Descrie interaciunile dintre utilizatori i sistem
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
18
Actori i cazuri multiple
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
19
Granularitatea
Un caz de utilizare trebuie s satisfac un scop pentru actor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
20
Avantaje
Suma cazurilor de utilizare este ntregul
sistem
Permit comunicarea cu persoane fr cunotine tehnice IT
Partiioneaz funcionalitatea, ghideaz dezvoltarea iterativ
Ajut planificarea i testarea
Ajut la crearea manualurilor de utilizare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
21
Determinarea cazurilor de
utilizare
Interviuri cu utilizatori poteniali
ntlniri cu prile interesate (stakeholders)
Facilitator, asistent (scribe), modelare CASE
Brainstorming
Mai nti actorii
Apoi posibilele cazuri de utilizare
Justificarea fiecrui caz de utilizare
Descriere simpl, de o linie sau un paragraf
Toate ideile trebuie documentate
Cazurile de utilizare nu trebuie s fie perfecte de prima dat, se vor rafina ulterior
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
22
Actori primari i secundari
beneficiaz ia parte
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
23
Identificarea actorilor
Exemplu: timpul poate fi un actor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
24
Generalizarea actorilor
note (comentarii)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
25
Relaiile dintre cazurile de utilizare (I)
Include: pentru reutilizare
Doar Check Identity
este conectat cu
Author Credentials
Database
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
26
Relaiile dintre cazurile de utilizare (II)
Generalizarea cazurilor de utilizare:
reutilizare cu modificri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
27
Relaiile dintre cazurile de utilizare (III)
Extend: comportament
opional, depinznd de o decizie (de implementare
sau din timpul execuiei)
Diferit de incluziune i generalizare!
O relaie mai puin intuitiv
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
28
Specificarea cazurilor
de utilizare (I)
Pre-condiii
Utilizatorul s-a logat
i s-a autentificat ca administrator
Post-condiii
Participantul a fost
eliminat de la curs
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
29
Specificarea cazurilor
de utilizare (II)
Fluxuri de extensie (fluxuri alternative sau fluxuri de excepie)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
30
Storyboard (tabl de naraiune)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
31
2. Diagrama de clase
Clasa
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
32
Vizibilitatea trsturilor
Public
Protejat
Pachet
Privat
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
33
Vizibilitatea n C# i Java
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
34
Reprezentarea atributelor
Inline (n interiorul clasei)
Prin asociere
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
35
Vizibilitatea atributelor
De obicei private sau protejate
Nu se recomand atribute publice, dect:
Pentru constante
Atribute read-only
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
36
Operaiile
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
37
Parametrii i tipurile de return
Constructor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
38
Trsturi statice
Trsturi (features) = atribute i operaii
Trsturile statice se subliniaz
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
39
Relaii ntre clase
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
40
Dependena
O clas folosete pentru scurt timp o alt clas: trimiterea unui mesaj, trimiterea ca parametru
Exemplu: metodele clasei Math
Din punct de vedere al implementrii:
Instanierea unei clase ntr-o metod
Primirea unui obiect ca parametru ntr-o metod
Crearea i returnarea unui obiect dintr-o metod
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
41
Asocierea
De obicei, o clas are un cmp instaniat din cealalt clas
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
42
Direcia de citire
Direcia de citire este de obicei de la stnga la dreapta i de sus n jos
Direcia de citire se poate indica explicit
Sgeata care indic direcia de citire nu trebuie pus pe linia de asociere!
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
43
Validarea asocierilor
Fiecare. Obiect. Este predat ca. 0 sau mai multe. Cursuri.
Fiecare. Curs. Este pentru. Unul i numai unul. Obiect.
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
44
Asociere complex
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
45
Asociere unidirecional
Numai o clas tie de cealalt
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
46
Cardinalitatea (multiplicitatea)
asocierii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
47
Asocieri multiple (I)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
48
Asocieri multiple (II)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
49
Agregarea
O clas are dar partajeaz obiecte din cealalt clas
Este o relaie de tip ARE-UN / ARE-O
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
50
Compunerea
Atributele compun clasa
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
51
Implementarea
Din punct de vedere al implementrii, asocierea, agregarea i compunerea sunt identice
Presupun introducerea unui atribut (cmp)
Dac nu sunt evidente sau foarte importante distinciile privind agregarea sau compunerea, este mai simplu s se foloseasc numai relaiile de asociere
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
52
Motenirea (generalizarea)
Este o relaie de tip ESTE-UN / ESTE-O
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
53
Regula 100%
Toate definiiile clasei de baz trebuie s se aplice tuturor claselor derivate
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
54
Corectitudinea generalizrilor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
55
Motenire multipl
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
56
Recomandare
Compunerea ar trebui preferat motenirii
Motenirea este cea mai puternic form de cuplare
n general, compunerea este mai uor de gestionat
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
57
Clase i operaii abstracte
virtual
abstract
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
58
Interfee
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
59
Template-uri
De exemplu: List tipul este specificat n implementare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
60
Constrngeri
Tipuri de constrngeri: Invariante
Pre-condiii Post-condiii
OCL (Object Constraint Language) parte din UML 2.0
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
61
Recomandri
Nu introducei prea multe informaii n diagram
Ignorai atributele i operaiile necritice
Artai ntr-o diagram numai clasele relevante pentru un caz de utilizare
Nu includei clasele sistem (string, Hashtable etc.)
Nu includei prea devreme informaii despre implementare (navigabilitate, vizibilitate)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
62
3. Diagrama de obiecte
Arat cum se comport obiectele ntr-un anumit
scenariu, cum interacioneaz
Asocierile corespund
asocierilor dintre clase
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
63
Template-uri
De exemplu: List tipul este specificat n momentul execuiei
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
64
4. Diagrama de activiti
merge = mbinare
Aceste diagrame descriu logica
procedural, procesele
Sunt asemntoare schemelor logice, dar suport i paralelismul
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
65
Activiti i aciuni
Activitatea este procesul modelat
O aciune este un pas din activitate
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
66
Decizii i mbinri
Condiiile trebuie s fie complete i mutual exclusive Pasul urmtor trebuie s fie unic determinat
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
67
Teste incomplete
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
68
Procese paralele
fork = ramificaie join = reunire
Se folosesc pentru procese sau fire de execuie multiple La reunire, se ateapt terminarea tuturor aciunilor incidente
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
69
Evenimente de timp
Perioad de ateptare
Eveniment de timp recurent
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
70
Apelarea altor activiti
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
71
Semnale
Ateapt tot timpul
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
72
ntreruperi i terminri de flux
Un flux se poate termina fr a termina ntreaga activitate
Dac se mai poate mbunti soluia n 2 secunde, este foarte bine, dac nu, se returneaz rezultatul existent Dup 2 secunde, se returneaz orice rezultat disponibil, mbuntit sau nu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
73
Partiii (culoare)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
74
Adnotri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
75
Conectori
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
76
Exemple
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
5. Diagrama de secvene
Arat modul cum lucreaz sistemul
Greu de neles doar din descrierea structurii
O diagram corespunde unui singur scenariu
Include n principal obiecte i mesaje
Un mesaj poate fi un apel de metod
Indic ordinea evenimentelor
Timpul reprezint aici ordinea, nu durata
Pentru durat, se folosete diagrama de cronometrare
77
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
78
Participani
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
79
Mesaje imbricate
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
80
Tipuri de mesaje
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
81
Diagram complex
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
82
Fragmente
Controlul secvenial natural poate fi extins cu ajutorul fragmentelor de interaciune
Fragmentele sunt asemntoare structurilor de control care exist ntr-un limbaj de programare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
83
Fragmente opionale
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
84
Fragmente alternative
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
85
Referine
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
86
6. Diagrame de comunicare
Mesaje imbricate
Mesaje concurente
Similare diagramelor de
secvene, dar se concentreaz pe legturile dintre participani
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
87
Alte tipuri de mesaje
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
88
Diagram complex
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
7. Diagrama mainilor de stare
Obiectele pot reaciona diferit n funcie de stare
Diagramele mainilor de stare se realizeaz pentru un singur obiect
Pot descrie comportamentul unui obiect de-a lungul mai multor
cazuri de utilizare
Nu sunt potrivite pentru a descrie colaborarea mai multor obiecte
Sunt folosite intens n anumite tipuri de aplicaii software i hardware, precum:
Sisteme critice de timp real
Bancomate
Jocuri (de exemplu first person shooter)
89
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
90
Stri, tranziii, declanatoare, condiii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
91
Semnale
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
92
Stri compuse (I)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
93
Stri compuse (II)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
8. Diagrama de componente
Pentru proiectele mai complexe, este greu de
trecut de la analiz direct la definirea claselor
O component este o parte ncapsulat, reutilizabil i nlocuibil a sistemului
Componentele comunic prin interfee, pentru a asigura cuplarea slab
94
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
95
Notaii pentru componente
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
96
Notaii pentru interfee
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
97
Accent pe interfee
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
98
Accent pe dependene
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
99
Clasele componentelor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
9. Diagrama de pachete
Sistemele software pot avea sute de clase
Pachetele modeleaz grupuri de clase
Majoritatea limbajelor de programare importante au un
corespondent al pachetelor
C#: namespace
Java: package
Deseori diagramele sunt folosite pentru a indica dependenele dintre pachete
Pachetele pot cuprinde orice element UML, nu doar clase
De exemplu: cazuri de utilizare
Componentele corespund nivelului conceptual (mai generale)
Pachetele corespund nivelului logic, n coresponden cu faza de implementare
100
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
101
Pachete
Organizarea logic
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
102
Clase n pachete
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
103
Dependene
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
10. Diagrama de desfurare
Corespunde nivelului fizic: modeleaz elemente fizice ale sistemului
Fiiere executabile
Entiti hardware
Arat cum sunt atribuite entitile software ctre cele hardware i cum comunic acestea
Poate include hardware, firmware, sistem de
operare, medii de execuie, drivere etc.
Dar trebuie s cuprind doar detaliile importante pentru audien
104
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
105
Artefacte
Organizarea fizic
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
106
Instane de noduri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
107
Comunicaia ntre noduri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
108
Exemplu de utilizare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
109
11. Diagrama
structurilor compuse
Arat cum lucreaz obiectele, cum i ndeplinesc scopurile
Un port reprezint utilizarea distinct a unei clase
Porturile pot grupa
interfee nrudite
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
110
12. Diagrama de cronometrare
Folosit mai ales pentru sisteme de timp real sau
ncorporate
Arat strile unui obiect i cnd se afl obiectul n aceste stri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
111
Constrngeri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
112
Notaie alternativ
Recomandat pentru puine stri
Recomandat pentru multe stri
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
113
13. Diagrama
interaciunilor generale
Arat cum interacioneaz mai multe entiti pentru a realiza un caz de utilizare
(sau un scop)
Poate fi vzut ca o diagram de activiti, dar fiecare aciune este o interaciune complet descris de o diagram distinct
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
114
Diagramele UML i ciclul de dezvoltare software
Faza modelrii cazurilor de utilizare
Faza modelrii domeniului
Diagrame statice de structur, diagrame de secvene
Faza modelrii proiectrii
Diagrame de clase, de maini de stare, de activiti
Faza modelrii implementrii
Diagrame de componente, de desfurare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
115
Diagramele UML i ciclul de dezvoltare software
Modelul vizualizrii 4+1 Perspectiva logic Clase, maini de stare,
secvene .a.
Perspectiva de proces Activiti
Perspectiva de dezvoltare Pachete, componente
Perspectiva fizic Desfurare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
116
Concluzii
UML este un limbaj pentru specificarea, vizualizarea, construirea i documentarea elementelor sistemelor software
Este un standard de facto pentru modelarea software
UML 2.0 are 13 diagrame, clasificate n:
Diagrame de structur
Diagrame de comportament
Diagrame de interaciune
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
117
Referine
Majoritatea diagramelor incluse n acest curs
au fost preluate din urmtoarele surse:
Hamilton, K., Miles, R. (2006). Learning UML 2.0,
O'Reilly
Ariadne Training. UML Applied, 2nd edition, http://ariadnetraining.com/software-courses/images/stories/YesNo/
ariadne/file/UML_Applied\_Second\_Edition.pdf
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm