Documente Academic
Documente Profesional
Documente Cultură
ION LUNGU
Ce este UML-ul?
Tendina actual din industria software impune dezvoltarea de sisteme extrem de
complexe i n cel mai scurt timp posibil. Se impune cu necesitate adaptarea procesului de
dezvoltare a sistemelor informatice la cerinele din ce n ce mai complexe a produselor
informatice.
n plus, odat cu impunerea pe pia a limbajelor orientate obiect i a mediilor vizuale
de programare, au aprut n ultimii ani mai multe propuneri de procese de dezvoltare orientat
obiect a sistemelor informatice.
n aceste condiii, trei dintre cei mai importani autori din domeniul proiectrii de
software orientat obiect Ivar Jacobson, Grady Booch i James Rumbaugh au conlucrat
pentru realizarea unui limbaj de modelare standard i a unui proces standard de dezvoltare a
produselor informatice. Limbajul pus la punct de acetia UML (Unified Modeling
Language) nregistreaz un mare succes, fiind adoptat ca standard de Object Management
Group (OMG), organismul de standardizare pentru comunitatea orientat obiect.
n 1996, Object Management Group (OMG) a emis o cerere de ofert pentru un model
semantic i notaii standard pentru analiza orientat obiect. Versiunea UML 1.0 a fost trimis
ca rspuns la aceast cerere n ianuarie 1997. Au existat i alte cinci proiecte concurente. n
cursul anului 1997, toi cei ase rivali s-au unit i au prezentat o versiune revizuit
organizaiei OMG, cunoscut ca UML versiunea 1.1. Acest document a fost aprobat de OMG
n noiembrie 1997 sub denumirea OMG UML versiunea 1.1.
UML-ul reprezint o sintez a celor mai multe notaii i concepte utilizate n
proiectarea orientat obiect. Apariia acestui standard reprezint un mare avantaj dac ne
gndim la multitudinea de notaii i metode utilizate pn nu de mult n proiectarea orientat
obiect i pe care UML le substituie cu succes. n prezent este suficient ca proiectanii s
cunoasc acest unic sistem de notaii.
M O D ELA R EA PR O C ESELO R D E A FA C ER I
D i a g r a m a c a z u r i l o r d e u til i z a r e
M O D E L A R E A S T R U C T U R II S T A T IC E
D ia g ra m a c la s e lo r
D i a g r a m a o b i e c te l o r
M O D E L A R E A D IN A M IC II
D ia gra m a d e s e c v e n
D ia g ra m a d e c o la b o ra re
D ia g r a m a d e s ta r e
D i a g r a m a d e a c ti v i ta te
IM P L E M E N T A R E A
D i a g r a m a c o m p o n e n te l o r
D ia g r a m a d e d e s f u r a r e
D i a g r a m a p a c h e te l o r
Diagrama claselor
Diagrama claselor este cea mai important diagram n cadrul analizei i proiectrii
orientate obiect. Scopul diagramei claselor este de a prezenta natura static a claselor punand
in evidenta atributele, operaiile i asocierile (figura 4).
Majoritatea instrumentelor de modelare orientate obiect genereaz codul surs numai
din diagrama claselor.
Celelalte diagrame UML furnizeaz diferite puncte de vedere din care s fie identificate atributele, operaiile i asocierile dintre clase. Ele ajut la validarea diagramei claselor,
putnd servi la clarificarea unei probleme specifice .
Diagrama claselor conine clase i asocieri ntre clase. O clas este un model pentru
obiecte cu structur, comportament i relaii similare. Fiecare clas are un nume, atribute i
operaii. n general numele claselor se scriu cu litere mari.
Nod (node) - elementul fizic care exist la execuie i care reprezint o resurs de
calcul, de obicei avnd memorie i procesor.
Cazuri de utilizare - descrierea unui set de secvene a aciunilor.
Subsistem - un grup de elemente care constituie specificaia comportamental.
Direcia poate fi: in (parametru de intrare), out (parametru de ieire), in-out (parametru
de intrare care poate fi modificat).
Exist patru proprieti care pot fi folosite pentru operaii:
isQuery, starea sistemului rmne neschimbat;
sequential, trebuie coordonat apelul operaiei astfel nct s se execute doar una la un
moment dat,
guarded, semantica i integritatea obiectu1ui este garantat n prezena mai multor
fluxuri (operaii executate n acelai timp), este redus la un ape1 secvenial
executndu-se cte una pe rnd,
concurrent se pot apela de mai multe ori din fluxuri concurente.
Ultimele trei proprieti sunt relevante doar n prezena obiectelor active, proceselor i
fluxurilor de execuie (threads).
Clasele template sunt elemente parametrizate (figura 5). Rezultatul instanierii unei
clase template este o clas care poate fi folosit ca orice alt clas.
Figura 5 indic modul de scriere n UML a claselor template. Clasele template se pot
specifica implicit prin nume sau utiliznd bind care arat c sursa instaniaz template-ul
pentru parametrii actuali.
Diagrama obiectelor
Cele mai multe instane modelate cu UML sunt instane ale claselor (i se numesc
obiecte), dei exist i instane de componente, noduri, cazuri de utilizare, asocieri. Instanele
modelate se plaseaz n diagrame obiectuale.
Operaiile care se fac asupra unui obiect sunt definite n abstractizarea obiectului. n
funcie de motenire operaiile pot fi sau nu polimorfe.
Un obiect are o stare care reprezint proprietile obiectului (cele statice de obicei) i
valorile curente (dinamice) ale acestor proprieti. Aceste proprieti includ atributele
obiectului i prile lui agregate. Deci, starea unui obiect este dinamic.
UML definete dou stereotipuri standard care se aplic relaiilor de dependen ntre
obiecte i ntre clase:
instanceOf - obiectul client este o instan a clasificatorului furnizor;
instantiate - clasa client creeaz o instan a clasei furnizor.
Exist dou stereotipuri relative la obiecte, care se aplic la mesaje i tranziii:
become clientul este acelai obiect cu furnizorul, dar la un moment ulterior i cu
valori, stri sau roluri diferite;
copy obiectul client este o copie exact, dar independent a obiectului furnizor.
UML definete restricii standard care se aplic obiectelor:
tranzient o instan a unui rol este creat n timpul execuiei, dar e distrus naintea
terminrii execuiei.
Diagramele obiectuale conin obiecte i legturi. Ca i celelalte diagrame, pot conine
note i restricii. Mai pot conine anumite pachete sau subsisteme, fiecare fiind folosit pentru a
grupa elementele modelului.
Aceste diagrame se folosesc pentru modelarea static a unui sistem, ca diagramele de
clase, dar din perspectiva unor instane reale sau prototip.
Diagrama de secven
Scenariile cazurilor de utilizare se dezvolt n mod natural din diagrama de secven.
Diagramele de secven transform evenimentele identificate n scenariile cazurilor de
utilizare , ntr-o reprezentare grafic a utilizrilor sistemului de ctre actor (figura 6). Fiecare
eveniment are ca rezultat un mesaj trimis unui obiect cu perspectiva c acel obiect va realiza o
10
Diagrama de stare
Modeleaz starea dinamic a unui obiect specific. Diagrama de stare const din stri,
aciuni, activiti i tranziii (figura 7).
11
semntura unui eveniment, care include un nume i argumentele separate de virgule care se
afl ntre paranteze;
Diagrama de colaborare
Diagrama de colaborare descrie o examinare nonsecvenial a modului n care interacioneaz
obiectul. Diagrama de colaborare suport multiple modaliti de modelare a obiectului. O modalitate
arat modul n care obiectele colaboreaz n cadrul unui singur scenariu al cazurilor de utilizare
similar cu diagrama de secven.
O interaciune interesant se produce ntre diagramele de secven i diagramele de colaborare,
rezultnd operaiuni noi i descoperirea unor atribute adiionale. Ambele diagrame furnizeaz puncte
de vedere diferite ale aceleiai informaii. Ambele arat implementarea unui scenariu al cazului de
utilizare.
Diagrama permite studiul asocierilor statice i comportamentelor dinamice ale obiectelor
implicate n interaciune. Avem tendina s gndim secvenial, dar, cteodat, procesele nu sunt att de
procedurale cum ni le imaginm. Utilizarea diagramei de colaborare poate ajuta la clarificarea
contextului.
12
Deoarece permite focalizarea asupra unei anumite clase, diagrama de colaborare ajut
la rafinarea diagramei claselor, adugnd atribute i operaii.
Furnizeaz, de asemenea, informaii cu privire la ceea ce face o clas atunci cnd
valideaz codul asociat acesteia.
Notaia UML a diagramei de colaborare este asemntoare cu diagrama de secven cu
obiecte, mesaje i semnturi.
Fiecare mesaj poate include un numr secvenial care s ordoneze etapele colaborrii.
Virgulele separ secvenele i se termin cu un slash . Un predecesor n numrul secvenei
indic faptul c alt mesaj trebuie completat naintea transmiterii acestui mesaj.
Diagrama de colaborare poate arta un comportament repetat cu un asterisc, , urmat de numrul
de iteraii i de condiia de ieire ncadrat ntre paranteze, de exemplu, [i:= 1..n].
Diagrama de activitate
O diagram de activitate permite o mai bun nelegere a operaiilor, n special a celor
foarte complexe, o mai bun nelegere a detaliilor din cadrul unei operaii a unei clase.
Diagramele de secven i de colaborare nu prezinta acest nivel de detaliere suficient de exact
pentru c ele arat doar mesajele schimbate ntre obiecte, nu i detaliile asociate acestor
obiecte.X
Diagrama de activitate este un tip de grafic de stare care specific activitatea unei
anumite clase (figura 9).Diferena consta n faptul c un grafic de stare reprezint ntregul
obiect, n timp ce o diagram de activitate reprezint n mod tipic doar o operaie n cadrul
unui obiect. Terminologia diagramei de activitate este uor confundat cu terminologia
diagramei de stare, ntruct ambele utilizeaz termenul stri. Starea din cadrul diagramei de
activitate este starea unei aciuni, noiune distinct de stare a obiectului.
Starea aciunii reprezint starea unei activiti n cadrul unei operaii. Descrie
descompunerea strii de aciune i tranziiile n cadrul unei anumite stri a obiectului, mai
mult dect de la o stare la alta. Descompunerea strii nu nseamn c obiectul i modific
starea. O aciune a strii reprezint, mai degrab, prelucrarea intern care intervine n timpul
aciunii sau activitii surs. Procesarea intern, mai mult dect un eveniment extern,
declaneaz tranziia de la o stare a aciunii la alta. Diagrama de activitate este utilizat pentru
a arata aceast prelucrare intern.
13
Diagrama componentelor
Diagrama componentelor adun informaiile din diagrama claselor pentru a crea
componente (figura 10).
14
Notaia UML pentru componente este dreptunghiul cu dou dreptunghiuri mai mici
scoase n afar, pe una din pri. O component are un nume i opional un tip, separate prin
:. Componenta poate include obiectele pe care le conine.
Un vrf de sgeat deschis de la o component la alta indic o dependen a sursei de
int. O relaie de dependen reprezentat de un cerc deschis i o etichet de interfa pot fi
trasate ctre interfaa obiectului( aceasta este iniierea dependenei). O dependen poate fi, de
asemenea, trasat direct ctre component fr trecerea printr-o interfa( aceasta este o
dependen de compilare).
Diagrama de desfurare
Componentele sunt plasate pe echipamente hardware prin intermediul diagramei de
desfurare (figura 11).
15
Diagrama pachetelor
UML furnizeaz mijloace de grupare a elementelor din cadrul diagramelor, numite
pachete. ntr-un pachet pot fi incluse alte pachete, clase, cazuri de utilizare, colaborri etc. Un
pachet arat doar structurile pe care le conine (figura 12).
Un pachet nu arat comportamentul elementelor sale. Un element de modelare
aparine unui singur pachet, dar alte pachete pot consulta acest element. Dac se arat explicit
coninutul pachetului, atunci numele pachetului se trece pe etichet.
Un pachet este un mecanism destinat unor scopuri generale, care organizeaz
elementele n grupuri. Fiecare pachet are un nume care poate fi simplu sau cu cale (path
name).
16
Toate procesele care trebuie executate de sistem se regsesc ntr-un caz de utilizare.
Procesele sunt descrise apoi textual sau printr-o succesiune de pai. Pentru modelarea grafic
a scenariilor poate fi utilizat diagrama de activitate. Odat ce comportamentul sistemului a
fost astfel surprins, cazurile de utilizare sunt mai departe analizate pentru a identifica cum
interacioneaz obiectele pentru a modela acest comportament. Diagramele de secven i de
colaborare sunt utilizate pentru a modela aceast interaciune ntre obiecte.
17
18
19