Documente Academic
Documente Profesional
Documente Cultură
Introducere în UML
Mirel Cosulschi
1
Scop
2
Modelare
Ce este un model?
– simplificarea realităţii
– planul detaliat al unui
sistem (blueprints).
De ce modelăm?
– pentru a înţelege mai bine ce avem de făcut
– pentru a ne concentra pe un aspect la un moment dat.
Unde folosim modelarea?
3
Scopul modelării
Un model este o simplificare a realităţii, fără însă a pierde
legătura cu aceasta.
Principalul motiv pentru care se construieşte un model:
necesitatea de a înţelege sistemul ce urmează a fi dezvoltat.
Cu cât sistemul este mai complex, cu atât importanţa
modelului creşte.
Alegerea modelului influenţează atât modul în care
problema este abordată cât şi soluţia proiectată.
În general, un singur model nu este suficient.
Pentru a scrie un model, e nevoie de un limbaj de
modelare.
4
Modelarea arhitecturii
5
Limbaje de modelare
Analiza şi proiectarea unei aplicaţii software trebuie
efectuată înainte de realizarea codului.
În prezent, se acordă o atenţie deosebită acestei etape,
deoarece de ele depind producerea şi refolosirea
software-ului.
Pentru analiza si proiectarea programelor s-au creat
limbajele de modelare.
Limbaj de modelare este un limbaj artificial ce poate fi
folosit să exprime informaţii sau cunoaştere sau sisteme.
6
Tipuri de limbaje de modelare
7
Limbaje grafice
EXPRESS (modelarea datelor)
8
Limbaje grafice
Modelarea proceselor de business
9
Flowchart
10
ORM (Object Role Modeling)
11
Reţele Petri
12
Diagrame UML
13
UML - Introducere
14
Metoda Booch (Grady Booch)
15
OOSE (Object-oriented software
engineering)
16
OMT (Object-modeling Technique)
17
UML - Introducere
La mijlocul anilor 1990 a început un proces de
omogenizare, prin incorporarea în fiecare limbaj a
caracteristicilor găsite în celelalte limbaje.
Cauze:
– Booch, Rumbaugh şi Jacobson, au ajuns la concluzia ca ar fi
mai bine să conducă evoluţia limbajelor lor pe un acelaşi
drum, pentru a elimina diferenţele gratuite ce nu făceau
decât să încurce utilizatorii.
– industria software avea nevoie de stabilitate pe piaţa
limbajelor de modelare.
– convingerea că prin unirea forţelor se pot aduce îmbunătăţiri
tehnicilor existente.
18
UML - Introducere
Octombrie 1994 - a început în mod oficial dezvoltarea UML prin
unificarea limbajelor Booch şi OMT (Rational Software).
Octombrie 1995 - apare versiunea preliminară 0.8 a Unified
Method.
Iunie 1996 – este publicată versiunea 0.9 a UML (include şi
OOSE).
Pe parcursul anului 1996 multe companii văd în UML o opţiune
strategică pentru dezvoltarea produselor lor.
Companii care au contribuit la crearea UML 1.0: DEC, Hewlet-
Packard, I-Logix, Intellicorp, IBM, MCI Systemhouse, Microsoft,
Oracle, Rational, Texas Instruments etc.
19
UML - Evoluţie
Ianuarie 1997 - UML 1.0 a fost propus spre standardizare
în cadrul OMG.
Noiembrie 1997 - Versiunea UML 1.1 a fost adoptată ca
standard de către OMG.
Actualmente UML este dezvoltat de către OMG Revision
Task Force, condus de Cris Kobryn
(http://www.omg.org/).
2003 – ultima versiune 1.x “definitivă” este UML 1.5.
Iunie 2015 - ultima versiune, UML 2.5.
Resurse oficiale UML: http://www.uml.org
20
Evoluţie UML
21
UML - Definiţie
22
Ce este UML?
Este un limbaj de modelare bazat pe notaţii grafice.
Este folosit pentru a
– specifica,
– vizualiza,
– construi,
– documenta,
componentele unui program (sistem software).
Este un limbaj cu ajutorul căruia se pot construi (descrie) modele.
Un model surprinde un anumit aspect al unui program.
Fiecare model poate fi descris la diferite nivele de abstractizare.
Fiecărui model îi corespunde o diagramă.
23
Diagrame UML < 2.0
Analiză
– Diagrama cazurilor de utilizare (Use Case Diagram)
– Diagrama de activităţi (Activity Diagram)
Proiectare
– Structura: Diagrama de clase (Class Diagram)
Comportament
– Diagrama de stări (Statechart Diagram)
– Diagrame de interacţiuni (Interactions Diagrams)
Diagrama de secvenţă (Sequence Diagram)
Implementare
– Diagrama de componente (Component Diagram)
– Diagrama de plasare (Deployment Diagram)
24
UML 2.0
25
Diagrame de structură
Diagrama de clase: clasele (atributele, metodele)
şi relaţiile dintre clase.
26
Diagrame de structură
Diagrama componentelor: componentele sistemului
şi legăturile între acestea.
27
Diagrame de structură
Diagrama de deployment: modelarea structurii
hardware.
28
Diagrame de structură
Diagrama de obiecte: structura sistemului la un
moment dat.
29
Diagrame de structură
Diagrama de pachete: împărţirea sistemului în pachete
şi relaţiile dintre ele.
30
Diagrame comportamentale
31
Diagrame comportamentale
Diagrama de stare: pentru a prezenta mai multe
sisteme.
32
Diagrame comportamentale
Diagrama Use Case: prezintă funţionalităţile
sistemului folosind actori, use case-uri şi dependenţe
între ele.
33
Diagrame de interacţiuni
Diagrama de comunicare: arată interacţiunile între
obiecte (comportamentul dinamic al sistemului)
(actori: bucătar, aragaz, acţiuni: gătirea, aprinderea,
deconectarea).
34
Diagrame de interacţiuni
Diagrama de secvenţă: prezintă modul în care obiectele
comunică între ele din punct de vedere al trimiterii de
mesaje.
35
Scenarii de utilizare
Folosesc actori (elemente cu care programul
interacţionează):
– utilizatori umani;
– elemente software (de ex., un program ce prelucrează
informaţiile colectate de pe Internet);
– elemente hardware (de ex., un cititor de coduri de bare,
telefoane mobile etc.).
Folosesc scenarii (use case)
– acestea descriu cum interacţionează actorul cu sistemul;
– cum reacţionează sistemul în urma acestor acţiuni;
– care e rezultatul vizibil pentru actori.
36
Scenarii de utilizare
Ce nu conţin acestea:
– diagrame de clase;
– structura modulară a programului;
– tipul datelor de intrare şi de ieşire.
Use Case – Tipuri de conţinut:
– pe scurt – descrie principalul caz de succes;
– cauzal – conţine ce ar trebui făcut în caz că se întâmplă
ceva;
– detaliat – se prezintă pe larg toate situaţiile posibile.
37
Diagrama cazurilor de utilizare
Este o diagramă comportamentală ce captează cerinţele
sistemului.
Delimitează graniţele sistemului.
Punctul de plecare îl constituie scenariile de folosire a sistemului
din fişa cerinţelor.
Poate prezenta:
– specificarea cerinţelor (externe) din punctul de vedere al
utilizatorului;
– specificarea funcţionalităţii sistemului din punctul de vedere
al sistemului.
Conţine:
– Use Case-uri = funcţionalităţi ale sistemului;
– Actori = entităţi externe cu care sistemul interacţionează;
– Relaţii.
38
Diagrama cazurilor de utilizare
Este o descriere a unei mulţimi de secvenţe de acţiuni
(incluzând variante) pe care un program le execută atunci
când interacţionează cu entităţile din afara lui (actori) şi
care conduc la obţinerea unui rezultat observabil.
Poate fi un sistem, un subsistem, o clasă, o metodă.
Reprezintă o funcţionalitate a programului.
Precizează ce face un program sau subprogram.
Nu precizează cum se implementează o funcţionalitate.
Identificarea Use Case-urilor se face pornind de la cerinţele
clientului şi analizând descrierea problemei.
39
Caz de utilizare - Reprezentare
Notaţie
Atribute
– Nume = frază verbală ce denumeste o operaţie
sau un comportament din domeniul problemei.
Restricţii
– Numele este unic.
Nume
40
Actor
Reprezintă un rol pe care utilizatorii unui Use Case îl
joacă atunci când interacţionează cu acesta.
Este o entitate exterioară sistemului.
Interacţionează cu sistemul:
– iniţiază execuţia unor cazuri de utilizare;
– oferă funcţionalitate pentru realizarea unor cazuri de utilizare.
Poate fi:
– Utilizator (uman);
– Sistem software;
– Sistem hardware.
41
Actor - Reprezentare
Notaţie
Atribute
– Nume = indică rolul pe care actorul îl joacă în
interacţiunea cu un Use Case.
Restricţii
– Numele este unic.
* *
-
<>
42
Relaţii
Se stabilesc între două elemente.
Tipuri de relaţii:
– Asociere: Actor – Use Case, Use Case – Use Case;
– Generalizare: Actor – Actor, Use Case – Use Case;
– Dependenţă: Use Case – Use Case (<<include>>,
<<extend>>).
43
Relaţia de asociere
Modelează o comunicare între elementele pe care le
conectează.
Poate sa apară între
– un actor şi un Use Case (actorul iniţiază execuţia cazului de
utilizare sau oferă funcţionalitate pentru realizarea acestuia);
– două Use Case-uri (transfer de date, trimitere de
mesaje/semnale).
Notaţie
44
Relaţia de generalizare
Se realizează între elemente de acelaşi tip ierarhii.
Modelează situaţii în care un element este un caz
particular al altui element.
Elementul particular moşteneşte relaţiile în care este
implicat elementul general.
Notaţie:
45
Exemplu
* *
-
<>
Autentificare
Persoană
Sistem de Logare
* * * *
* *
-
- -
<> <>
<>
Logare Eveniment
Student Profesor
46
Relaţia de generalizare
Desenare Figură
47
Relaţia de dependenţă
Notaţie
48
Exemplu
49
Exemplu
50
Exemplu
Oferă listă
zboruri
<<include>> <<include>>
51
Exemplu
52