Curs 2 - Concepte UML

Download Report

Transcript Curs 2 - Concepte UML


O metoda este un set integrat de tehnici si proceduri aplicate
într-o anumită ordine ce au ca rezultat documentarea
aplicatiei

Proces, notaţie, metodă, metodologie

Metodele de APOO au apărut ulterior programării OO

Dar şi când au început să apară ....

fiecare metodă folosea propriul limbaj grafic

De aici nevoia de unificare a limbajului grafic

Unificarea MPA nu a avut acelasi succes ca unificarea
limbajului grafic: Rational Unified Process (RUP), DMR
Macroscope, IBM Global Services Method şi Fujitsu SDEM


Un limbaj de modelare, privit la modul general,
poate fi definit ca o serie de concepte, principii,
procedee şi mecanisme de extensie utilizabile
pentru abstractizarea unor probleme din
anumite domenii
Limbajul de modelare poate fi independent şi
de metoda de AP şi de limbajul de programare

Nu este o metodă de analiză şi proiectare

Este un limbaj universal de reprezentare a unui sistem
informatic în oricare fază a dezvoltării

este un limbaj vizual pentru specificarea, construirea şi
documentarea elementelor sistemelor (OMG)

Poate fi folosit:
◦ În orice domeniu de aplicaţii
◦ Cu orice metodă de analiză şi proiectare
◦ Pentru toate platformele de implementare (J2EE, .NET)

Nu trebuie folosite toate posibilităţile de modelare
UML presupune aplicarea unui proces iterativ şi incremental, condus
prin cazuri de utilizare şi centrat pe o arhitectură
 iterativ - procesul este împărţit în mai multe iteraţii, iar în cadrul
fiecăreia se vor parcurge fazele ciclului de viaţă
 incremental – fiecare iteraţie va avea ca rezultat un increment,
adică o versiune nouă a sistemului ce conţine funcţionalitate
sporită
 condus prin cazuri de utilizare – CU (cerinţe funcţionale) stau la
baza definirii conţinutului unei iteraţii
 centrat pe o arhitectură – preocuparea pentru definirea modului
de organizare generală a sistemului încă de la începutul proiectului
 arhitectură = organizarea de bază a sistemului ca un tot
 ultima versiune – 2.5.1 (octombrie 2012)
 specificaţiile UML – 4 părţi:
 Superstructură – defineşte notaţia şi semantica elementelor
din diagrame
 Infrastructura – defineşte metamodelul pe care se bazează
superstructura
 OCL (Object Constraint Language) – pentru descrierea
restricţiilor asociate elementelor din model
 UML diagram interchange – descrie modul de transfer a
diagramelor dintr-un mediu în altul
 Elemente
 Relaţii
(între elemente)
 Extensii (aplicabile elementelor
şi relaţiilor)
 Diagrame (alcătuite din
elemente şi relaţiile dintre
acestea)
 Elemente
structurale
 Elemente comportamentale
 Elemente de grupare
 Elemente explicative




sunt substantivele din modelele UML
principalele elemente structurale UML sunt
clasele.
Tot elemente: interfeţele, colaborările,
cazurile de utilizare, actorii, clasele active,
componentele şi nodurile
Clasele se reprezintă cu un dreptunghi în care
sunt evidenţiate trei componente: numele
clasei, atributele şi operaţiile clasei
«Stereotip»
Nume_MetaClasa::Nume_Clasa
+Atribut public : Tip_Data = Valoare_Initiala
#Atribut protejat : Tip_Data = Valoare_Initiala
-Atribut privat : Tip_Data = Valoare_Initiala
+Operatie publica(in Parametru_1 : Tip_Data = Valoare_implicita, out Parametru_N : Tip_Data) : Tip_Data
#Operatie protejata(in Parametru_1 : Tip_Data, inout Parametru_i : Tip_Data, out Parametru_N : Tip_Data) : Tip_Data
-Operatie privata() : Tip_Data













clasă este abstractă -> numele ei se scrie cu caractere italice;
deasupra numelui clasei, se scrie stereotipul acesteia între caracterele „<< >>”;
în faţa numelui clasei se scrie, metaclasa specializată prin aceasta;
în faţa numelor atributelor şi a operaţiilor se scrie simbolul de vizibilitate;
numele fiecărui atribut este urmat de tipul de dată al acestuia;
multiplicitatea unui atribut: data_receptie[0..1] : Date
tipurile de dată ale atributelor pot fi precedate de valorile iniţiale ale acestora;
dacă o operaţie este abstractă, toate proprietăţile ei se scriu cu caractere italice;
operaţiile sunt urmate de lista de parametri, prezentată între paranteze rotunde
„( )”;
în lista de parametri se specifică: tipul (intrare, ieşire, intrare/ieşire), numele,
tipul de dată şi o eventuală valoare implicită;
după numele fiecărui parametru se scrie caracterul două puncte „:” şi tipul de
dată al acestuia;
chiar dacă o operaţie nu are nici un parametru, după numele acesteia, tot se scriu
parantezele rotunde;
dacă o operaţie întoarce o valoare, după închiderea parantezei rotunde, destinate
specificării parametrilor, se scrie caracterul două puncte şi tipul de dată al valorii
întoarse.

Simbolul folosit în UML pentru reprezentarea
unui obiect instanţiat dintr-o anumită clasă
este tot un dreptunghi în care sunt
evidenţiate doar două din cele trei părţi:
identitatea şi starea. A treia parte,
comportamentul, nu se reprezintă şi în
simbolul fiecărui obiect, deoarece acesta este
comun tuturor obiectelor instanţiate din
aceeaşi clasă.
Angajat
Popescu Ion : Angajat
-Marca : Char
-Nume : Char
-Prenume : Char
-Functia : Char
-CNP : Char
+Informeaza(in Raport : Char)
Marca : Char = 1001
Nume : Char = Popescu
Prenume : Char = Ion
Functia : Char = agent vânzari
CNP : Char
«interface»
Interfata
+Operatie1()
+Operatie2()





desemnează serviciile (grupurile de operaţii)
oferite de clase sau componente.
descriu comportarea vizibilă din exterior a
claselor
nu specifică niciodată implementarea acestor
operaţii
separă structura unui obiect de implementarea sa
o clasă poate implementa una sau mai multe
interfeţe




sunt verbele unui model
ajung să fie implementate printr-un schimb
de mesaje (apelările de metode)
O interacţiune este un set de mesaje
schimbat într-un grup de obiecte pentru
atingerea unui anumit obiectiv.
O stare de tranziţie este starea prin care trece
un obiect ca răspuns la apelări ale anumitor
metode.
Pachet


Spre deosebire de componente (care există în
momentul rulării), pachetele sunt doar
elemente conceptuale (există doar în timpul
dezvoltării), neconcretizându-se obligatoriu
în fişiere.
Într-un pachet pot fi introduse elemente
structurale, elemente comportamentale şi
chiar alte pachete.

Comentarii (note explicative)
Nota explicativa:

Tagged values (etichete) = perechi etichetă valoare




Asocieri
Dependenţe
Derivări
Realizări





Asociere: „un mijloc fix este în gestiunea unui
anumit gestionar”
Instanţă a unei asocieri: „Mijlocul fix cu
numărul de inventar 331265 este în
gestiunea lui Popescu”
O asociere poate fi între două sau mai multe
clase
Între două clase pot exista mai multe asocieri
Au cardinalităţi









- 1 – unul şi doar un obiect;
- 0..1 – nici unul sau maxim un obiect;
- 0..* - nici unul sau mai multe obiecte;
- * - tot zero sau mai multe obiecte;
- 1..* - unul sau mai multe obiecte;
- 1..n - unul sau maxim n obiecte;
- 0..n sau n – nici unul sau maxim n obiecte;
- nl, n2, n3 - înşiruire de numere, care exprimă
numărul de obiecte;
- n - m - număr de obiecte cuprins între n şi
m.

binare
1
*
*
n-are
*

*
0..1

reflexive
Doc_insotire
-Numar : Char
-Data : Date
-Doc_anterior : Doc_insotire
+Get_Valoare_fara_TVA() : Decimal
+Get_TVA() : Decimal
+Get_Valoare_cu_TVA() : Decimal
-corespunde
0..1





Un tip aparte de asociere
o clasă poate fi modelată, ca fiind parte a
unei alte clase
Pot fi: fixe, variabile, recursive
Compoziţie
Agregarea partajată


schimbările într-un element sursă pot
determina schimbări în elementul destinaţie
sunt unidirecţionale, un element fiind
considerat independent, iar celălalt,
dependent.



=specializare, generalizare, moştenire
obiectele unei clase derivate moştenesc
atribute şi metode ale clasei de bază la care
se adaugă membrii clasei proprii
moştenire multiplă



o relaţie semantică între două părţi în care
una din ele defineşte o funcţionalitate, iar
cealaltă o execută
între interfeţe şi clase
Între elemente de analiză (cazuri de utilizare)
şi elemente de proiectare (colaborări)
 Etichetele (tag)
 Restricţiile – (constraints)
 Stereotipuri
1) Etichetele asigură o formă de definire a noi proprietăţi unor
elemente deja existente
 permit asocierea de date unui element din model
 este sub forma unei perechi “nume-valoare”
 etichete predefinite – Documentation, Location, Semantics
 exemple de etichete ce pot fi adăugate: autor, data creare, data
ultimei modificări etc.
 pot fi folosite şi pentru adăugarea informaţiilor necesare
generatoarelor de cod
2) Restricţiile extind semantica elementelor UML prin adăugarea de
noi reguli
 este reprezentată ca o expresie de tip text
 fiecare expresie are un limbaj de interpretare implicit
notaţie formală matematică
 limbaj natural
 limbaj de programare
 OCL – Object Constraint Language


restricţii predefinite – Complete, Incomplete, XOR, Disjoint,
Overlapping
3) Stereotipurile asigură completarea semanticii unor elemente
deja existente
 apar sub forma <<numeStereotip>>
 sunt folosite de regulă pentru a evidenţia diferite tipuri de clase
(<<Interface>>) sau relaţii (<<Become>>)
Ce sunt profilele UML?
Diagramă
Diagramă de
structură
Diagramă
de clase
Diagramă de
comportament
Diagramă de
componente
Diagramă
de structură
compozită
Diagramă
de obiecte
Diagramă de
amplasare
Diagramă de
activitate
Diagramă
de pachete
Diagramă de
cazuri de
utilizare
Diagramă de
interacţiune
Diagramă
de secvenţă
Diagramă de
comunicare
Diagrama de timp
Diagramă a
stărilor de
tranziţie
ReviewUML.pdf




http://ima.udg.edu/~sellares/EINFES2/uml2_diagrams.pdf
http://www.uml.org/
http://ima.udg.edu/~sellares/EINFES2/uml2_diagrams.pdf
http://www.omg.org/news/meetings/worksh
ops/MDA-SOA-WS_Manual/00T4_Matthews.pdf