Documente Academic
Documente Profesional
Documente Cultură
Berevoianu Epure Tinta UML
Berevoianu Epure Tinta UML
UML
Berevoianu Adelina
Epure Adriana
Tinta Mihaita
Grupa 443 A
2011
Cuprins
1. Introducere
2. Strategii de formalizare
2.1 Arhitectura UML
2.2 Modele
3. Modelarea cu UML
3.1 View-uri
3.2 Diagrame
3.2.1 Diagrame structurale
3.2.1.1 Diagrama claselor (Class Diagram)
3.2.1.2 Diagrama obiectelor (Object Diagram)
3.2.1.3 Diagrama componentelor (Component Diagram)
3.2.1.4 Diagrama de desfăşurare (Deployment View)
3.2.2 Diagrame comportamentale
3.2.2.1 Diagrama cazurilor de utilizare (Use Case Diagram)
3.2.2.2 Diagrama de activitate (Activity Diagram)
3.2.2.3 Diagrama de stare (State Diagram)
3.2.2.4 Diagrama de interactiune (Interaction Diagram)
3.2.2.4.1 Diagrama de Secventa (Sequence Diagram)
3.2.2.4.2 Diagrama de Colaborare ( Collaboration
Diagram)
4. Concluzii
5. Bibliografie
1. Introducere
UML (Unified Modelling Language) reprezinta un limbaj vizual de modelare folositor
în domeniul software, dedicat construirii sistemelor complexe si realizarii documentelor de
specificaţii, facand referire in mare parte la vizualizarea, specificarea, construirea şi
documentarea sistemelor de aplicaţii. Prezinta si limitări cu privire la generarea codului şi
reprezinta de asemenea un mijloc bun pentru domeniul ingineriei programării.
Scopul unui limbaj de modelare este analiza si proiectarea programelor. UML
reprezinta limbajul universal standard pentru dezvoltatorii software de pretutindeni, si de
asemenea o combinatie excelenta a celor mai bune trei limbaje de modelare anterioare
orientate pe obiecte (Booch, OMT, and OOSE). Asadar limbajul UML reuneşte cele mai bune
tehnici şi practici din domeniul ingineriei programării, care şi-au dovedit eficienţa în
construirea sistemelor complexe, rezultatul avand o expresivitate foarte buna care ajuta la
rezolvarea diverselor probleme de modelare pe care vechile limbaje nu reuseau sa le
indeplineasca foarte bine. UML ar putea indeplini pe langa rolul de limbaj vizual de modelare
si cel de limbaj vizual de programare, dar momentan nu dispune de întreg sprijinul semantic
şi vizual pentru a înlocui limbajele de programare
Limbajul de modelare modificat (UML - The Unified Modeling Language) consta
in arhitecturi de sisteme ce functioneaza pe analiza si proiectarea obiectelor cu un limbaj
corespunzator pentru specificarea, vizualizarea, construirea si documentarea artefactelor
sistemelor software si de asemenea pentru modelarea în întreprinderi. UML este un limbaj
de modelare care ofera o exprimare grafica a structurii si comportamentului software.
Pentru aceasta exprimare grafica se utilizeaza notatiile UML.
UML este un limbaj de modelare vizual, orientat obiect, care descrie proprietăţile
structurale şi dinamice ale unui sistem software. Prin sistem software se întelege o BD sau un
modul de cod în general. Spre deosebire de modelul EAE, UML este o colecţie de tehnici de
modelare, folosite pentru tratarea multor aspecte ale procesului de concepere şi dezvoltare a
software-ului, de la proiectarea BD la interacţiunea modulelor de cod.
Fiecare tehnică de modelare de mai sus dă o vedere diferită, statică sau dinamică, a unei
aplicaţii. Colecţia de vederi se numeşte model. Iată unele din tehnicile de modelare UML:
diagrame de clase, sau diagrame statice de structură, care modelează entităţile unui sistem
prin clase cu atribute şi comportare. Diagramele de clasă descriu, de asemenea, asocierile
dintre clase şi constrângerile asupra acestora. Apoi, alte tehnici: diagrame de obiecte,
diagrame de "caz de utilizare", diagrame de stare, diagrame de secvenţe, diagrame de
activitate, diagrame de colaborare.
Notatiile UML constituie un element esential al limbajului pentru realizarea propriu-zisa
a modelarii si anume partea reprezentarii grafice pe care se bazeaza orice limbaj de modelare.
Modelarea în acest limbaj se realizeaza prin combinarea notatiilor UML în cadrul elementelor
principale ale acestora denumite diagrame. În cadrul UML-ului descoperim 9 tipuri de
diagrame: diagrama cazurilor de utilizare, diagrama de secventa, diagrama de colaborare,
diagrama de clase (cea mai utilizata), diagrama de stari, diagrama de componente, diagrama
de constructie, diagrama de obiecte, diagrama de activitati. În cele ce urmeaza vor fi
prezentate notatiile UML care vor fi grupate dupa diagramele corespunzatoare fiecarei notatii
în parte.
Adoptarea specificaţiei UML ca limbaj standard de modelare a fost semnalată la 17
noiembrie 1997.
În ingineria mecanică pentru a realiza modelul complet al unei piese, inginerul
foloseşte desenul tehnic ca limbaj pentru comunicare, iar ca mod de reprezentare, vederea
în epură. Această vedere în epură înseamnă vizualizarea unei piese din trei puncte (din faţă,
de sus şi din lateral) astfel încât piesa să fie definită complet. Un cititor avizat al desenului
în epură va şti întotdeauna să refacă mental piesa desenată.
Dacă din cauza complexităţii piesei, cele trei „fotografii” nu sunt suficiente, inginerul va
desena şi alte detalii, sau secţiuni ale piesei, dar privite din aceleaşi trei unghiuri. Fiecare dintre
cele trei puncte de vizualizare a piesei (noi le vom zice, view-uri) reprezintă un submodel
capabil să descrie o parte a piesei, dar insuficient pentru a descrie complet piesa. Fiecare
view arată piesa văzută dintr-un anumit punct de vedere iar modelul complet utilizează toate
punctele de vedere relevante.
Aşa cum inginerul proiectant comunică prin desen tehnic, echipei, sau oricărei
alte persoane interesate într-un limbai standard, vizual (adică desenul tehnic), făcut să
permită descrierea completă dar, in acelaşi timp, scutită de detalii inutile, inginerii
software pot comunica cu maximă eficientă Tn limbajul UML.
”
La fel ca oricare limbai acesta trebuie învăţat şi exersat astfel încât fiecare „cuvânt să
”
fie înţeles, să ştim unde şi cum se foloseşte, astfel încât să ne putem exprima în „fraze
coerente, care să „spună" exact ceea ce vrem să comunicăm. Limbajul UML ne permite
realizarea mai multor figuri, ca nişte fotografii din diverse unghiuri, ale unei realităţi, astfel
încât această realitate să fie surprinsă prin toate aspectele ei relevante. In software vom
utiliza două puncte de vedere necesare unei descrieri suficiente a realităţii: (1) structural şi
(2) comportamental.
Nivelul metamodelului - consta din acele elemente care constituie UML, incluzând
concepte din paradigmele orientate obiect si orientate componente. Fiecare concept al
nivelului este o instanta (prin intermediul stereotipurilor) a conceptului meta-
metamodelului 'Thig' Acest nivel de abstractizare este utilizat pentru formalizarea
conceptelor paradigmei si la definirea unui limbaj pentru specificarea modelelor
Nivelul model - consta din modele UML. Acesta este nivelul la care se produce:
modelarea problemelor, solutia sau sistemul. Fiecare concept din acest nivel este o
instanta (prin intermediul stereotipurilor) a unui concept din nivelul metamodelului. Acest
nivel de abstractizare este utilizat la formalizarea conceptelor si la definirea limbajului
pentru comunicarea expresiilor cu privire la un subiect dat. Modelele de pe acest nivel mai
sunt numite clase sau modele ale tipurilor.
Nivelul model utilizator - consta din acele elemente care exemplifica modelele UML.
Fiecare concept din acest nivel este o instanta (prin intermediul clasificarii) a conceptelor
din nivelul model si o instanta (prin stereotipuri) a unui concept din nivelul metamodel.
Acest nivel de abstractizare este utilizat pentru a formaliza expresiile specifice cu privire
la un subiect dat. Modelele din acest nivel sunt numite si obiecte sau instante ale
modelului
2.2 Modele
Modelele capteaza caracteristicile structurale sau statice ale sistemelor si
comportamentul, sau caracteristicile dinamice ale acestuia. Modelele pot fi privite ca prin
intermediul unei multimi de dimensiuni (aspecte) independente care etaleaza calitati
particulare ale modelului. Fundamental, modelele capteaza cunostinte (semantici).
Perspectiva arhitecturala
Perspectiva arhitecturala organizeaza modelele si cunostintele în jurul unei multimi
specifice de interese (focusarea arhitecturala). UML da urmatoarele perspective arhitecturale
cu privire la modele sau probleme si solutii:
modelul utilizator - contine o problema si o solutie ca întelese de elementele individuale
carora li se adreseaza respectiva problema (solutie). Aceasta perspectiva este de asemenea
numita use case sau scenariu;
modelul structural - cuprinde dimensiunea structurala a unei probleme si solutii. Aceasta
perspectiva este cunoscuta ca fiind perspectiva statica sau logica;
modelul comportamental - cuprinde dimensiunea comportamentala a problemei si solutiei.
Aceasta perspectiva este cunoscuta de asemenea ca fiind: dinamica, de proces, concurenta
sau colaborativa;
modelul implementarii cuprinde dimensiunea comportamentala si structurala a realizarii
solutiilor, fiind cunoscuta si ca: de dezvoltare sau de componente;
modelul de mediu - cuprind dimensiunea structurala si comportamentala a domeniului în
care este realizata solutia. Este cunoscuta si ca perspectiva fizica;
Se pot defini si alte perspective, în cazul în care este remarcata necesitatea acestora. O
orientare arhitecturala este definita printr-o multime de continuturi. O perspectiva
arhitecturala este definita prin intermediul unei multimi de elemente dintr -un model care
refera o orientare arhitecturala. De exemplu, securitatea poate fi definita ca o orientare
arhitecturala. O arhitecturalitate a securitatii va include multime a elementelor modelului care
adreseaza securitatea.
Fundamental, perspectiva arhitecturala organizeaza cunostintele în concordanta
cu ghidurile date de exprimarea idiomurilor necesare utilizarii. Diagrame
Diagramele prezinta cunostinte într-o forma comunicabila. UML furnizeaza
urmatoarele diagrame, organizate în jurul perspectivei arhitecturale cu privire la
modelele problemelor si a solutiilor: e perspectiva modelului utilizator
- diagrame de scenarii care descriu functionalitatea
sistemului e perspectiva modelului structural
- clasa de diagrame care descriu structura statica a sistemului
- diagrame obiect care descriu structura statica a sistemului la un
moment particular de timp.
e perspectiva comportamentala
- diagrame de secvente care descriu o interactiune de-a lungul
elementelor sistemului organizat în secventa temporale
- diagrame de colaborare care descriu o interactiune de-a lungul elementelor
unui sistem si a relatiilor acestora, organizate în timp si spatiu
- diagrame de stare care descriu conditiile de stare si raspunsurile
elementelor sistemului
- diagrame de activitate care descriu activitatea elementelor
sistemului. e perspectiva modelului implementare
- diagramele de componente care descriu organizarea elementelor care realizeaza
sistemul e perspectiva modelului de mediu
- diagrame de desfasurare care descriu configuratia elementelor de mediu si
maparea elementelor care realizeaza sistemul peste acestea e alte diagrame pot
fi definite si utilizate dupa necesitati. Mecanismele de modelare
Mecanismele sunt practici pentru abordarea modelarii si a realizarii diagramelor care
valideaza creare de modele din ce în ce mai precise si ceea ce este mai important, din ce în ce
mai comunicabile.
Perspectivele definesc un punct de vedere particular de la care se pot elabora sau citi
diagrame. Acestea valideaza asocierea de puncte de vedere clare cu diagrame si sunt
utilizate pentru eficientizarea comunicarilor;
Dihotomiile definesc modul în care ceva poate fi privit din doua perspective diferite.
Acestea valideaza o privire asupra unei entitati din puncte de vedere multiple si sunt
utilizate (fiind foarte eficiente în acest scop) la depistarea inconsistentelor dintre modele;
Nivelele de abstractizare definesc un nivel particular si stabilesc nivelul de detaliu cu
privire la un subiect (problema sau solutie). Acestea permit orientarea spre comunicare si
sunt utilizate pentru organizarea tuturor diagramelor care apartin unui singur model într-
un singur corp de cunostinte, coerent;
Extensia mecanismelor defineste mijlocul prin care se poate realiza personalizarea si
extinderea UML. Aceasta permite UML sa fie flexibil si adaptiv si este utilizat pentru a
asigura UML evolueaza, solutie mai buna decât redefinirea necesara pentru descrierea
nevoilor de modificare sau a cerintelor. Într-un proces problema - solutie, cunostintele cu
privire la o problema si o solutie sunt captate, organizate în jurul deciziei si descrise utilizând
UML astfel încât pot fi comunicabile si plasate pe diferite nivele.
3. Modelarea cu UML
Conceptele folosite în cadrul diagramelor UML se numesc elemente de modelare. Un
element de modelare are o semantică, o definiţie formală a elementului sau un înţeles exact a
ceea ce reprezintă el într-un anumit context, şi o reprezentare grafică, sau un simbol grafic cu
care se reprezintă în cadrul diagramelor.
Un element poate fi regăsit în mai multe tipuri de diagrame şi pentru fiecare context
există propriile reguli. În figura 1 sunt prezentate câteva exemple de elemente de modelare
împreună cu modul lor de reprezentare.
A modela cu UML înseamnă a construi mai multe modele pentru diferitele faze ale
dezvoltării şi pentru diverse scopuri.
Există mai multe faze ce trebuie parcurse:
■ faza de analiză - surprinde necesităţile sistemului şi modelează clasele de
bază din "lumea reală" şi colaborările dintre acestea;
■ faza de design - se detaliază modelul din faza de analiză şi se formulează o
soluţie tehnică luând în considerare caracteristicile mediului în care acesta va
fi reprezentat;
■ faza de implementare - modelul este transpus în cod iar apoi compilat
în programe;
■ modelul de desfăşurare - se foloseşte o descriere care explică modul cum va fi
adaptat sistemul arhitecturii fizice concrete.
Analiza unei aplicaţii implică realizarea mai multor categorii de modele, dintre
care cele mai importante sunt:
3.1 View-uri
Modelarea unui sistem poate fi o muncă foarte dificilă. Ideal ar fi ca pentru descrierea
sistemului să se folosească un singur graf, însă de cele mai multe ori acesta nu poate să
surprindă toate informaţiile necesare descrierii sistemului. Un sistem poate fi descris luând în
considerare diferite aspecte:
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.
3.2 Diagrame
În UML sunt nouă tipuri de diagrame, care vor fi prezentate pe larg în cele ce
urmează. Diagramele UML pot fi împărţite în: diagrame pentru modelarea structurii statice şi
diagrame pentru modelarea comportamentului.
Diagramele sunt grafuri care prezintă simboluri ale elementelor de modelare (model
element) 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ă.
Scop:
Scopul diagramei de clase este de a modela opinia statica a unei aplicatii. Diagramele de clasă
sunt singurele diagrame care poate fi mapate direct cu limbaje orientate pe obiect şi, astfel,
utilizate pe scară largă în momentul de construcţie.
Diagramele UML ca diagrama de activitate, diagrama de secvenţă pot da doar fluxul de ordine
al aplicatiei, dar diagrama de clase este un pic diferita. Deci, aceasta este cea mai populara
diagrama UML în comunitatea programatorilor.
Compilare si inversa.
Diagrama de clase este de fapt o reprezentare grafică a vederii statice a sistemului şi reprezintă
aspecte diferite ale aplicatiei. Deci, o colectie de diagrame de clase reprezintă întregul sistem.
Ar trebuii sa se tina cont de următoarele puncte în timp ce desenaţi o diagrama de clase:
Numele diagramei de clase ar trebui să fie semnificativ pentru a descrie aspectul
sistemului.
Fiecare element şi relaţiile lor ar trebui să fie identificate în prealabil.
Utilizaţi note oricand este necesar pentru a descrie unele aspecte ale diagramei.
Deoarece la sfârşitul reprezentarii ar trebui să fie înţeles de către dezvoltator /
programator.
În cele din urmă, înainte de a face versiunea finală, diagrama ar trebui să fie elaborata
pe o simpla hârtie şi revizuita de câte ori este posibil pentru a o face corect.
Acum diagrama de mai jos este un exemplu de un Sistem Ordonat al unei aplicatii. Deci,
aceasta descrie un anumit aspect al intregii aplicatii.
Mai întâi de toate, Order şi a Customer sunt identificati ca fiind cele două elemente ale
sistemului şi au o relaţie unu la mai multe, deoarece un client poate avea mai multe
comenzi.
Clasa Order este o clasă abstractă şi are două clase (relaţia moştenire) şi SpecialOrder
si NormalOrder.
Cele două clase au moştenit toate proprietatile ca si clasa Order. În plus, acestea au
funcţii suplimentare, cum ar expediere () şi să primească ().
Astfel, urmatoarea diagrama de clase a fost elaborata luând în considerare toate punctele
menţionate mai sus:
Unde se utilizeaza diagramele de clase?
Diagrama de clase este o diagrama statica şi este folosit pentru a vizualiza modelul static al
unui sistem. Punctul de vedere static descrie vocabularul sistemului.
Diagrama de clase arată în mod clar maparea cu limbaje orientate obiect cum ar fi Java, C + +,
etc. Deci, din experienţa practică diagrama de clase este, în general, utilizata în scopul
construirii.
- operaţiile:
numele operaţiei (parametri) : tipul valorii returnate
Atunci când diagrama este folosită pentru a modela structuri de business se pot folosi tipurile
de date specifice business-ului, nu programării, de exemplu: minut, dată calendaristică, minut
etc.
Moştenirea este o relaţie prin care se indică faptul că o clasă moşteneşte caracteristicile clasei
părinte. În plus, clasa copil poate avea propriile caracteristici.
Asocierea arată existenţa unei relaţii între clase. În exemplul de mai jos, între Persoană şi
Autovehicul următoarea relaţie: o Persoană poate avea zero, unul sau mai multe Autovehicule.
Un tip special de asociere este indicat printr-o clasă de asociere. Altfel spus, relaţia în sine este
o clasă.
În exemplul de mai jos, relaţia dintre Articol şi Lista de preţuri este de tip mai mulţi la mai
mulţi: un Articol poate să apară pe mai multe Liste şi o Listă poate avea mai multe Articole. Pe
Liste diferite Articolele pot avea preţuri diferite.
Dependenţa indică faptul că o clasă depinde de altă clasă, în sensul în care o funcţie oarecare
depinde de un parametru al său.
Agregarea indică faptul că o clasă părinte are elemente de tipul clasei copil. În exemplul de mai
jos.Ţara poate avea mai multe Judeţe dar, în acelaşi timp, un Judeţ poate exista chiar şi în cazul
în care clasa Ţara nu există.
Într-o relaţie de tip compoziţie clasa copil nu poate exista decât dacă există o instanţă a clasei
părinte. În exemplul de mai jos instanţa clasei Comisie există atâta timp cât există instanţa
clasei Examen.
Diagramele obiect sunt derivate din diagramele de clase, astfel diagrame de obiecte sunt
dependente de diagrame de clase; reprezinta o instanta a unei diagrame de clase. Conceptele de
bază sunt similare pentru diagramele de clase şi diagramele obiect. Diagrame obiect reprezintă,
de asemenea, punctul de vedere static al unui sistem, dar acest punct de vedere static este un
instantaneu al sistemului la un moment dat.
Diagramele obiect sunt utilizate pentru a face un set de obiecte şi relaţiile lor ca o instanţă.
Scop:
Scopul unei diagrame ar trebui să fie înţeles în mod clar pentru a putea fi pus în aplicare
practic. Scopul diagramelor de obiect este similar cu cel al diagramelor de clase.
Diferenta este ca o diagrama de clase reprezintă un model abstract format din clase şi relaţiile
lor. Dar un obiect diagramă reprezintă o instanţă la un moment dat, care este concretă în natură.
Aceasta înseamnă că diagrama obiect este mai aproape de comportamentul sistemului actual.
Scopul este de a captura vederea statica a unui sistem la un anumit moment.
Compilare si inversa.
Relaţiile obiectului unui sistem
Deci, ambele diagrame sunt facute din aceleasi elemente de bază, dar în diferite forme. În
diagrama de clase sunt elemente într-o formă abstractă pentru a reprezenta imprimare albastru
şi în diagrama obiect elementele sunt într-o formă concretă pentru a reprezenta obiectul in
lumea reală.
Pentru a captura un anumit sistem, numărul de diagrame de clase sunt limitate. Dar, dacă luăm
în considerare diagramele obiect, atunci putem avea un număr nelimitat de instanţe, care sunt
unice în natură. Deci, sunt luate în considerare numai acele cazuri care au un impact asupra
sistemului.
Din discuţia de mai sus este evident că o singura diagrama obiect nu poate capta toate
instanţele necesare sau, mai degrabă nu poate specifica toate obiectele dintr-un sistem. Deci,
soluţia este:
În primul rând, o analiză a sistemului şi să se decidă care sunt instanţele care au date
importante şi de asociere.
În al doilea rând, se ia în considerare numai acele cazuri care vor acoperi
funcţionalitatea.
În al treilea rând, se fac unele optimizari avand in vedere ca numărul de instanţe sunt
nelimitate.
Înainte de a se desena diagramele unui obiect, trebuie tinut seama de următoarele lucruri :
Acum, după aceasta, trebuie tinuta seama de urmatoarele lucruri care urmează să fie stabilite
înainte de a începe construcţia diagramei:
Diagrama de obiect ar trebui să aibă un nume semnificativ pentru a indica scopul său.
Cele mai importante elemente trebuie să fie identificate.
Valorile unor elemente diferite ar trebui să fie capturate si apoi incluse în diagrama de
obiect.
Customer
Order
SpecialOrder
NormalOrder
Acum obiectul Customer (C) este asociat cu trei obiecte de ordine (O1, O2 şi O3). Aceste
obiecte de ordine sunt asociate cu ordine speciale şi obiecte normale de comandă (S1, S2 şi
N1). Customer are următoarele trei ordine cu numere diferite (12, 32 şi 40) pentru anumite
perioade luate în considerare.
Acum clientul poate creste numarul de Order, în viitor, şi în acest scenariu diagrama obiect va
reflecta acest lucru. Dacă Order, SpecialOrder şi NormalOrder sunt observate, atunci vom găsi
că acestea au anumite valori.
Pentru Orders valorile sunt 12, 32, şi 40 ceea ce implică faptul că obiectele sunt cu aceste
valori pentru un moment anume (aici, momentul particular de timp în cazul în care achiziţia se
face este considerat ca fiind momentul), atunci când instanţa este capturata.
Acelaşi lucru este si pentru SpecialOrder şi NormalOrder, care au numarul de Orders ca 20, 30
şi 60. În cazul în care un alt moment de cumpărare este considerat, atunci aceste valori se vor
schimba în consecinţă.
Asadar, urmatoarea diagrama a fost elaborat luând în considerare toate punctele menţionate
mai sus:
Unde folosim diagramele obiect?
Diagramele obiect pot fi imaginate ca o imagine dintr-un sistem care rulează la un moment dat.
Acum, pentru a se clarifica putem lua un exemplu de un tren in miscare.
Acum, dacă luati un anumit moment din circulaţia trenului, veţi găsi o imagine statică a
acesteia având următoarele:
Un anumit număr de pasageri. care se va schimba în cazul în care momentul este luat
la un alt moment de timp.
Deci, aici ne putem imagina ca momentul de circulaţie al trenului este un obiect având valorile
de mai sus. Şi acest lucru este valabil pentru orice sistem de viaţa reală simplu sau complex.
Mai pe scurt diagramele obiect sunt utilizate pentru:
Scop:
Diagrama Componentelor este un tip special de diagrama în UML. Scopul este, de asemenea,
diferit de toate celelalte diagrame discutate până acum. Ea nu descrie funcţionalitatea
sistemului, dar descrie componentele utilizate pentru a face aceste funcţionalităţi.
Deci, din acest punct de vedere diagrama componentelor este folosita pentru a vizualiza
componentele fizice într-un sistem. Aceste componente sunt biblioteci, pachete, fisiere, etc
Diagrama componentă poate fi, de asemenea, descrisa ca o vizualizare a unei implementari
statice al unui sistem. Implementarea statica reprezinta organizarea de componente la un
anumit moment.
Iniţial, sistemul este proiectat folosind diagrame UML diferite şi atunci când artefactele sunt
gata diagramele componente sunt folosite pentru a obţine o idee de punere în aplicare.
Această diagramă este foarte importanta, deoarece fără ea cererea nu poate fi pusă în aplicare
eficient. O diagramă componentă bine pregătita este, de asemenea, importanta pentru alte
aspecte precum performantele de aplicare, întreţinere etc.
Deci, înainte de elaborarea unei diagrame a componentelor, trebuie sa identificam în mod clar
următoarele artefacte:
Ceea ce urmează este o diagrama componentă pentru sistemul managerial de comandă. Aici
artefactele sunt fişiere. Deci diagrama prezinta fişierele din aplicatie şi relaţiile lor. În realitate
diagrama de componente conţine, de asemenea DLL-uri, biblioteci, foldere, etc
În următoarea diagramă patru fişiere sunt identificate şi relaţiile lor sunt produse. Diagrama de
componente nu poate fi compensată în mod direct cu alte diagrame UML discutate până acum.
Deoarece este întocmită în scopuri complet diferite.
Deci diagrama următoare de componente a fost elaborata luând în considerare toate punctele
menţionate mai sus:
În ce cazuri folosim Diagrama de componente?
Am descris deja că diagramele componentelor sunt folosite pentru a vizualiza implementarea
statica a unui sistem. Diagramele de componente sunt un tip special de diagrame UML folosite
pentru scopuri diferite. Aceste diagrame arată componentele fizice ale unui sistem. Pentru a
clarifica aceasta, putem spune că diagramele de componente descriu organizarea
componentelor într-un sistem.
Organizarea poate fi descrisa în continuare drept locaţia componentelor într-un sistem. Aceste
componente sunt organizate într-un mod special pentru a îndeplini cerinţele unui sistem. Aşa
cum am discutat mai inainte, aceste componente sunt biblioteci, fişiere, executabilele etc.
Acum, înainte de punerea în aplicare a cererii aceste componente vor fi organizate. Această
organizaţie componentă este, de asemenea proiectat separat, ca parte a proiectului de execuţie.
Diagramele de componente sunt foarte importante din punct de vedere al implementarii. Deci,
echipa de implementare a unei aplicatii ar trebui să aibă o cunoaştere corectă a detaliilor
componentei.
Scop:
Numele de „desfăşurare” se descrie pe sine în scopul de diagrama. Diagramele de desfasurare
sunt utilizate pentru a descrie componentele hardware in care componentele software sunt
vizualizate.Aceste diagrame de desfasurare şi diagramele componentelor sunt strâns legate.
Deci, cele mai multe diagrame UML sunt utilizate pentru a manipula componente logice, dar
diagramele de desfăşurare sunt făcute ca să se concentreze asupra topologiei hardware a unui
sistem. Diagramele de desfăşurare sunt utilizate de către inginerii de sistem.
Performanţă
Scalabilitate
Mentenabilitatea
Portabilitate
Noduri
Relaţiile între noduri
Monitor
Modem
Caching server de
Server
Aplicatia se presupune a fi o aplicaţie web care este implementata într-un mediu cluster
folosind serverul 1, 2 şi serverul 3. Utilizatorul se conecteaza la aplicaţie folosind internetul.
Traseul se desfasoara de la serverul de caching catre mediul cu clustere.
Deci, urmatoarea diagrama de desfăşurare a fost elaborata luând în considerare toate punctele
menţionate mai sus:
Aplicaţiile software sunt dezvoltate pentru a modela procesele complexe legate de afaceri.
Doar utilizarea unor aplicaţii software eficiente nu sunt suficiente pentru a satisface cerinţele
unei afaceri. Cerinţele de afaceri pot fi descrise in scopul de a sprijini creşterea numărului de
utilizatori, timp de răspuns rapid, etc. Pentru a satisface aceste tipuri de componente hardware,
cerinţele ar trebui să fie proiectate eficient şi într-un mod rentabil.
Acum, aplicaţiile software sunt foarte complexe în natură; pot fi de sine statatoare, bazate pe
web, distribuite, bazate pe mainframe şi multe altele. Deci, este foarte important sa se
proiecteze componentele hardware intr-un mod eficient.
Compilare si inversa.
Prezentare:
Pentru a modela un sistem, cel mai important aspect este acela de a capta comportamentul
dinamic. Pentru a clarifica in detalii, prin comportamentul dinamic se înţelege comportamentul
sistemului atunci când se execută / opereaza.
Aceşti agenţi interni şi externi sunt cunoscuti drept actori. Deci, diagramele caz de utilizare se
compun din actori, cazuri de utilizare şi relaţiile lor. Diagrama este utilizata pentru a modela
sistemul / subsistem unei cereri. O singura diagrama a unui caz de utilizare capturează o
funcţionalitate specială a unui sistem.
Deci, pentru a modela întregul sistem sunt folosite un anumit numar de diagrame caz de
utilizare.
Scop:
Scopul diagramei caz de utilizare este de a surprinde aspectul dinamic al unui sistem. Dar
această definiţie este prea generica pentru a descrie scopul, deoarece alte patru diagrame
(activitate, secvenţa, colaborare şi stare) au, de asemenea, acelaşi scop. Deci, ne vom orienta
asupra unui scop specific, care o va distinge de celelalte patru diagrame.
Diagramele caz de utilizare sunt folosite pentru a aduna cerinţele unui sistem, inclusiv
influenţe interne şi externe. Aceste cerinţe sunt în general cerinţele de proiectare. Deci, atunci
când un sistem este analizat pentru a aduna funcţionalităţile sale, cazurile de utilizare sunt
pregătite şi actorii sunt identificati.
Cand sarcina iniţială este completa, diagramele caz de utilizare sunt modelate pentru a prezenta
punctul de vedere exterior. Deci, pe scurt, scopul diagramelor caz de utilizare pot fi, după cum
urmează:
Deci, putem spune că aceste cazuri de utilizare nu sunt altceva decat funcţionalităţile
sistemului scrise într-un mod organizat. Acum, alte doua lucrurile care sunt relevante pentru
cazuri de utilizare sunt actorii. Actori pot fi definiti ca ceva care interacţionează cu sistemul;
pot fi utilizatorii umani, unele aplicaţii interne sau poate unele aplicaţii externe. Deci, mai pe
scurt atunci când planificam desenarea unei diagrame caz de utilizare trebuie să tinem cont de
următoarele elemente identificate.
Diagramele caz de utilizare sunt trase pentru a captura cerinţele funcţionale ale unui sistem.
Astfel, după identificarea elementele de mai sus, trebuie să respectam liniile directoare
următoare pentru a desena o eficienta diagrama caz de utilizare.
Numele unui caz de utilizare este foarte important. Deci, numele ar trebui să fie alese în
aşa fel, astfel încât să poată identifica funcţionalităţile efectuate.
Daţi un nume potrivit pentru actori.
Utilizaţi notă atunci când vreodată necesare pentru a clarifica anumite puncte
importante.
Ceea ce urmează este un exemplu al diagramei use case care reprezintă sistemul de gestionare
al comenzilor. Deci, dacă ne uităm în diagramă atunci vom gasi trei use case-uri (Order,
SpecialOrder şi NormalOrder) şi un actor, care este clientul.
Use case-urile SpecialOrder şi NormalOrder sunt extinse de la case-ul Order , deci au o relatie
extinsa.Un alt punct important este de a identifica graniţele sistemului, care este prezentat în
imagine. Actorul Customer se află în afara sistemului deoarece acesta este un utilizator extern
al sistemului.
Deci, pentru a înţelege dinamica unui sistem avem nevoie de a utiliza diferite tipuri de
diagrame. Diagrama use case este una dintre ele şi scopul său specific este de a aduna cerinţele
de sistem şi actori. Diagramele use case specifica evenimentele unui sistem şi fluxurile lor, dar
niciodată nu descrie modul în care acestea sunt implementate. Diagrama use case poate fi
imaginata ca o cutie neagră în care numai intrarea, ieşirea şi funcţia cutiei negre este cunoscuta.
Aceste diagrame sunt utilizate la un nivel foarte ridicat de design, iar acest design de nivel înalt
este rafinat din nou şi din nou pentru a obţine o imagine completă şi practică a sistemului. Un
use case bine structurat descrie, de asemenea, conditia pre, post si excepţiile. Şi aceste
elemente suplimentare sunt folosite pentru a face cazuri de testare atunci când se efectuează
testarea.
Deşi use case-urile nu sunt un bun candidat pentru compilare si decompilare, dar totuşi ele sunt
folosite într-un mod usor diferit pentru acestea. Şi acelaşi lucru este valabil şi pentru
decompilare. În cazul de compilare diagramele use case se utilizează pentru a face cazuri de
testare şi, în cazurile de decompilare sunt utilizare pentru a pregăti detaliile cerinţelor de la
aplicatia existentă.
Deci, acestea sunt următoarele locuri în care diagramele caz de utilizare sunt utilizate:
Decompilarea.
Compilarea..
Între actori şi use case-uri pot să existe relaţii de generalizare / specializare atunci când un
actor sau un use case poate fi asimilat unei clase de actori, respectiv de use case-uri.
Relaţia de tip extensie între use case-uri
Relaţiile de tip extensie (şi implicit use case-urile de extensie) se folosesc atunci când se
modelează un comportament opţional sau excepţional, care nu condiţionează finalitatea use
case-ului de bază. De exemplu, un utilizator poate, în cazuri excepţionale să aleagă să depună o
reclamaţie după efectuarea unei comenzi:
Diagrama de activitate este o diagrama importanta în UML care descrie aspectele dinamice ale
sistemului. Poate fi considerata o diagramă de flux care reprezinta fluxul de control de la o
activitate la alta. . Acest flux poate fi secvenţial, ramificat sau concurent. Diagrama de
activitate se referă la toate tipurile de control al fluxului prin utilizarea diferitelor elemente.
Activitatea poate fi descrisă ca o operaţiune a sistemului.
Scop:
Scopurile de bază ale diagramei de activitate sunt similare cu cele ale celorlalte patru diagrame.
Ea surprinde comportamentul dinamic al sistemului. Celelalte patru diagrame sunt utilizate
pentru a afişa fluxul de mesaje de la un obiect la altul, dar diagrama de activitate este utilizată
pentru a arăta fluxul de mesaje de la o activitate la alta.
Ea nu arată nici un flux de mesaje de la o activitate la alta. Diagrama de activitate este uneori
considerata ca fiind un grafic de flux, si deşi diagrama arata ca un grafic de flux dar nu este. Se
prezinta diverse fluxuri cum ar fi ramificat paralel,concurente şi singure.
Înainte de întocmirea unei diagrame de activitate trebuie să avem o înţelegere clară cu privire
la elementele folosite în diagrama de activitate. Elementul principal al unei diagrame de
activitate este activitatea în sine. O activitate este o funcţie realizată de către sistem. După
identificarea activităţilor avem nevoie să înţelegem modul în care acestea sunt asociate cu
constrângeri şi condiţii.
Activităţi
Asociaţie
Starea
Restrictii
Odata ce parametrii de mai sus sunt identificati avem nevoie pentru a face o imagine mentala a
întregului flux. Aceasta imagine mentala este apoi transformată într-o diagramă de activitate.
Confirmare comandă
Expedierea comandă
După primirea cererii sunt efectuate condiţia de Order pentru a verifica dacă aceasta este
SpecialOrder sau NormalOrder. După ce tipul de ordin este identificat, activitatea de expediere
este efectuată şi acest lucru este marcat de încetarea procesului.
Unde să utilizaţi diagrame de activitate?
Utilizarea de bază a diagramei de activitate este similara cu cea a celorlalte patru diagrame
UML. Uzajul specific este de a modela fluxul de control de la o activitate la alta. Acest flux de
control nu include mesaje.
Acum ne vom uita în aplicaţiile practice ale diagramei de activitate. Din discuţia de mai sus,
este clar că o diagrama de activitate este trasată de la un nivel foarte ridicat. Deci, va da o
vedere de nivel ridicat al unui sistem. Acest punct de vedere la nivel înalt este în principal
pentru utilizatorii de afaceri sau orice altă persoană care nu este o persoană tehnică.
Această diagramă este folosita pentru a modela activităţile care nu sunt altceva decât cerinţele
de afaceri. Deci diagrama are un impact mai mare pe înţelegerea de afaceri mai, decat pe
detaliile de implementare.
Prezentare:
Numele diagramei în sine clarifică scopul de diagramă şi alte detalii. Acesta descrie diferite
stări ale unei componente într-un sistem, aceste stari sunt specifice pentru o componentă /
obiectul unui sistem.
O diagramă Statechart descrie o maşină de stare. Acum, pentru a clarifica aceasta, maşina de
stare poate fi definită ca o maşină care defineşte diferite stări ale unui obiect şi aceste stari sunt
controlate de evenimente externe sau interne. Diagrama de activitate explicata în capitolul
anterior, este un tip special de diagramă Statechart. Deoarece diagrama Statechart defineşte
stari este folosita pentru a modela durata de viata a unui obiect.
Scop:
Diagrama Statechart este una dintre cele cinci diagrame UML utilizate pentru a modela natura
dinamică a unui sistem. Ele definesc diferite stări ale unui obiect în timpul vieţii sale. Şi aceste
stari sunt modificate de evenimente. Deci, diagrame Statechart sunt utile şi pentru sistemele
reactive modelului. Sistemele reactive pot fi definite ca un sistem care răspunde la evenimente
externe sau interne.
Diagrama Statechart descrie fluxul de control de la o stare la alta. Starile sunt definite ca o
conditie in care un obiect există şi se schimbă atunci când un eveniment este declanşat. Deci,
scopul cel mai important al diagramei Statechart este de a modela durata de viaţă a unui obiect
de la creatie pana la terminare.
Pentru a descrie diferite stări ale unui obiect în timpul duratei sale de viaţă.
Înainte de întocmirea unei diagrame Statechart trebuie să avem clarificate următoarele puncte:
Identifica evenimentele.
Următorul este un exemplu de diagramă Statechart în cazul în care starea de obiect Order este
analizata. Prima stare este o starea de repaus, de unde începe procesul. Starile următoare apar
pentru evenimente cum ar fi cerere trimitere, cerere confirmare, şi expediere comanda. Aceste
evenimente sunt responsabile pentru schimbarile starilor ale unor obiecte.
În timpul ciclului de viaţă al unui obiect, se trece prin următoarele stări şi pot exista de
asemenea, niste iesiri anormale. Aceste ieşiri anormale pot să apară din cauza unor probleme în
sistem. Atunci cand întregul ciclu de viaţă este complet, este considerat ca tranzacţia completă
după cum se menţionează mai jos.
Starea iniţială şi finală a unui obiect este, de asemenea, prezentata mai jos.
Cand folosim diagrame Statechart?
Din discuţia de mai sus putem defini aplicaţiile practice ale unei diagrame Statechart.
Diagrame Statechart sunt folosite pentru a modela aspectul dinamic al unui sistem ca alte patru
diagrame dezafectate în acest tutorial. Dar are unele caracteristici distinctive pentru modelarea
natură dinamică.
Diagrama Statechart defineşte stările unei componente şi modificările acestei stari sunt
dinamice în natură. Deci, scopul său specific este de a defini schimbarile de stari declanşate de
evenimente. Evenimentele sunt factori interni sau externi care influenţează sistemul.
Diagramele Statechart sunt utilizate pentru a modela starile şi, de asemenea, evenimentele de
operare pe sistem. Atunci când se implementeaza un sistem este foarte important să se clarifice
diferitele stări ale unui obiect în timpul vieţii sal, iar diagramele statechart sunt folosite în acest
scop. Atunci când aceste stari şi evenimente sunt identificate acestea sunt utilizate pentru a
modela şi aceste modele sunt folosite în timpul punerii în aplicare a sistemului.
Dacă ne uităm la punerea în practică a diagramei Statechart, atunci este folosit în principal
pentru a analiza starile obiectului influenţat de evenimente. Această analiză este utila pentru a
înţelege comportamentul sistemului în timpul execuţiei sale.
Compilare si decompilare.
În afara elementelor specifice enumerate mai sus se pot folosi punctele de decizie şi acţiunile
paralele (asincrone) la Activity diagram.
În figura de mai jos este exemplu de folosire a elementelor specifice statechart diagram, pentru
cazul unei comenzi:
Interpretarea acestei diagrame se găsesc despre Activity Diagram.
Figura5
Prezentare:
Din numele de Interacţiune, este clar faptul că diagrama este utilizata pentru a descrie un
anumit tip de interacţiuni între diferitele elemente ale modelului. Deci, această interacţiune este
o parte a comportamentului dinamic al sistemului.Acest comportament interactiv este
reprezentată în UML de către cele două diagrame cunoscut sub numele de diagrama de
secventa şi diagrama de colaborare. Scopurile de bază ale ambelor diagrame sunt similare.
Scop:
Scopul diagramelor de interacţiune este de a vizualiza comportamentul interactiv al sistemului.
Acum, vizualizarea interacţiunii este o sarcină dificilă. Deci, soluţia este de a utiliza diferite
tipuri de modele pentru a surprinde diferite aspecte ale interacţiunii.
Acesta este motivul pentru care diagramele de secventa si colaborare sunt folosite pentru a
capta natura dinamica, dar dintr-un unghi diferit.
Avem două tipuri de diagrame de interacţiune în UML. Una este diagrama de secvenţă, iar
cealalta este o diagrama de colaborare. Diagrama de secvenţă surprinde secvenţa de timp a
fluxului de mesaj de la un obiect la altul şi diagrama de colaborare descrie organizarea de
obiecte într-un sistem care ia parte la un flux de mesaje.
Deci, lucrurile enumerate mai jos sunt identificate în mod clar înainte de desenarea diagramei
de interacţiune:
Organizarea obiectului
Voi prezenta in urmatoarele randuri două diagrame de interacţiune pentru modelarea sistemului
de management. Prima diagrama este o diagrama secvenţă, iar a doua este o diagrama de
colaborare.
Primul apel este sendOrder (), care este o metodă a obiectului Order. Următorul apel este
confirm (), care este o metodă a obiectului SpecialOrder şi ultima cerere este Dispatch (), care
este o metodă a obiectului SpecialOrder. Deci, aici diagrama descrie în principal, metoda de
apeluri de la un obiect la altul şi acest lucru este, de asemenea, scenariul real atunci când
sistemul este pornit.
Obiectele sunt văzute ca linii verticale distribuite pe orizontală, iar timpul este
reprezentat pe axa verticală de sus în jos. Mesajele sunt reprezentate prin săgeţi între
linile verticale ce corespund obiectelor implicate în mesaj.
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.
Metodele solicitate sunt similare cu cea a unei diagrama secvenţă. Dar diferenţa este că
diagrama de secvenţă nu descrie organizarea obiectelor, in timp ce diagrama de colaborare
prezinta organizarea obiectelor.
Acum, pentru a alege între aceste două diagrame, accentul principal este dat de tipul de cerinţă.
În cazul în care secvenţa de timp este importanta, atunci diagrama de secventa este utilizata şi
în cazul în care organizarea este necesară, atunci diagrama de colaborare este utilizata.
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).
Principalele scopuri ale ambelor diagrame sunt similare, deoarece ambele sunt folosite pentru a
capta comportamentul dinamic al unui sistem. Dar scopurile specifice sunt mai importante
pentru a clarifica şi a intelege.
Diagramele de secventa sunt utilizate pentru a captura ordinea de mesaje care se transmit de la
un obiect la altul. Şi diagramele de colaborare sunt folosite pentru a descrie organizarile
structurale ale obiectelor care iau parte la interacţiune. O singura diagramă nu este suficientă
pentru a descrie aspectul dinamic al unui întreg sistem, astfel este folosit un set de diagrame
pentru a captura tot sistemul ca un întreg.
Diagramele de interacţiune sunt utilizate atunci când vrem să înţelegem fluxul de mesaje şi
organizarea structurală. Acum, flux de mesaje înseamnă secvenţa de debit de la un obiect la
altul şi organizarea structurală înseamnă organizarea vizuala a elementelor într-un sistem.
Pentru compilare.
Pentru decompilare.
4. Concluzii
Cu multi ani in urma, programatorii dezvoltau diverse programe fără o bună analiză şi o
bună proiectare a respectivelor programe. Avand in vedere ca faza de analiză şi proiectare a
unui sistem informatic trebuie să fie gata înainte de realizarea codului, era necesara o atenţie
mărită din partea dezvoltatorilor. Multe dintre aceste etape au fost ignorate în trecut, dar cu
timpul dezvoltatorii au inceput sa recunoasca importanţa acestor faze, deoarece s-a dovedit
că de acestea depinde producerea de software adecvat şi competitiv.
Limbajele de modelare au fost create pentru analiza şi proiectarea sistemelor, iar unul din
aceste limbaje de modelare este limbajul de modelare unificat - UML (The Unified Modeling
Language). El reprezinta limbajul universal standard pentru dezvoltatorii software din toată
lumea. UML este foarte popular si folosit deoarece deţine o expresivitate foarte buna care
ajută la rezolvarea problemelor de modelare pe care vechile limbaje nu o aveau.
UML oferă arhitecturi de sisteme ce funcţionează pe analiza şi proiectarea obiectelor
cu un limbaj corespunzător pentru specificarea, vizualizarea, construirea şi documentarea.
Notaţiile UML constituie un element esenţial al limbajului pentru realizarea propriu-zisă a
modelării şi anume, partea reprezentării grafice pe care se bazează orice limbaj de modelare.
Mai pe scurt, ideea de baza este ca este absolut necesar să cunoaştem principalele
elemente ale unui limbaj de modelare înainte de a iniţia proiectarea şi dezvoltarea unui
sistem.
5.Bibliografie
http://www.techit.ro/tutorial_uml.php
http://www.scribd.com/doc/46196747/Uml
http://www.objectmentor.com/resources/articles/umlClassDiagrams.pdf
http://www.tutorialspoint.com/uml/uml_component_diagram.htm
MasteringUMLwithRationalRose2002
Berevoianu Adelina
3.2.2 Diagrame comportamentale
3.2.2.1 Diagrama cazurilor de utilizare (Use Case Diagram)
3.2.2.2 Diagrama de activitate (Activity Diagram)
3.2.2.3 Diagrama de stare (State Diagram)
3.2.2.4 Diagrama de interactiune (Interaction Diagram)
3.2.2.4.1 Diagrama de Secventa (Sequence Diagram)
3.2.2.4.2 Diagrama de Colaborare ( Collaboration Diagram)
Epure Adriana
3.2.1 Diagrame structurale
3.2.1.1 Diagrama claselor (Class Diagram)
3.2.1.2 Diagrama obiectelor (Object Diagram)
3.2.1.3 Diagrama componentelor (Component Diagram)
3.2.1.4 Diagrama de desfăşurare (Deployment View)
Tinta Mihaita
1. Introducere
2. Strategii de formalizare
2.1 Arhitectura UML
2.2 Modele
3. Modelarea cu UML
3.1 View-uri
4. Concluzii