Download - Concepte UML
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
Metodele de analiză şi proiectare
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
Limbajele de modelare
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
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
UML
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
UML
ElementeRelaţii (între elemente)Extensii (aplicabile elementelor şi relaţiilor)
Diagrame (alcătuite din elemente şi relaţiile dintre acestea)
Vocabularul UML
Elemente structuraleElemente comportamentaleElemente de grupareElemente explicative
Elemente UML
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
Elemente structurale
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.
+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
+Atribut public : Tip_Data = Valoare_Initiala#Atribut protejat : Tip_Data = Valoare_Initiala-Atribut privat : Tip_Data = Valoare_Initiala
«Stereotip»Nume_MetaClasa::Nume_Clasa
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ă.
Marca : Char = 1001Nume : Char = PopescuPrenume : Char = IonFunctia : Char = agent vânzariCNP : Char
Popescu Ion : Angajat
+Informeaza(in Raport : Char)
-Marca : Char-Nume : Char-Prenume : Char-Functia : Char-CNP : Char
Angajat
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
Interfaţă+Operatie1()+Operatie2()
«interface»Interfata
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.
Elemente comportamentale
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.
Elemente de grupare Pachet
Comentarii (note explicative)
Tagged values (etichete) = perechi etichetă - valoare
Elemente explicative
Nota explicativa:
Asocieri Dependenţe Derivări Realizări
Relaţii UML
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
Asocieri
- 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.
Cardinalităţi ale asocierilor
binare
n-are
reflexive
În funcţie de numărul de elemente pe care le leagă
1 *
* *
*
+Get_Valoare_fara_TVA() : Decimal+Get_TVA() : Decimal+Get_Valoare_cu_TVA() : Decimal
-Numar : Char-Data : Date-Doc_anterior : Doc_insotire
Doc_insotire
-corespunde
0..1
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ă
Agregarea
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.
Dependenţe
=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ă
Derivări
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)
Realizări
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
Extensii UML Etichetele (tag)
Restricţiile – (constraints)
Stereotipuri
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>>)
Extensii UML
Ce sunt profilele UML?
Întrebări care caută răspuns!!!!
Diagramă
Diagramă de structură
Diagramă de comportament
Diagramă de clase
Diagramă de componente
Diagramă de obiecte
Diagramă de structură compozită
Diagramă de amplasare
Diagramă de pachete
Diagramă de activitate
Diagramă de cazuri de utilizare
Diagramă a stărilor de tranziţie
Diagramă de interacţiune
Diagramă de comunicare
Diagramă de secvenţă
Diagrama de timp
ReviewUML.pdf
http://ima.udg.edu/~sellares/EINF-ES2/uml2_diagrams.pdf
http://www.uml.org/
http://ima.udg.edu/~sellares/EINF-ES2/uml2_diagrams.pdf
http://www.omg.org/news/meetings/workshops/MDA-SOA-WS_Manual/00-T4_Matthews.pdf
Webografie