uml 2_v1.3

Download UML 2_V1.3

Post on 14-Jul-2015

228 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

UML 2

2010 memIQ

Cuprins1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Introducere Diagrame de clase Diagrame secven Diagrame de obiecte Diagrame de pachete Diagrame de instalare (deployment) Cazuri de folosire (Use Cases) Diagrame State Machine Diagrame de activitate Diagrame de comunicare Structuri composite Diagrame de componente Colaborri Diagrame sintetice de interaciune (Interaction Overview Diagrams) Diagrame de timp Bibliografie 2 7 15 19 21 25 26 29 33 38 39 41 42 44 45 46

DV1.3 - 11112010

1

UML 2

2010 memIQ

1 IntroducereUML Unified Modeling Language; curent - versiunea 2.3. Three amigos: Grady Booch, James Rumbaugh, Ivar Jacobson UML este limbajul standard de modelare vizual pentru modelarea de busines, aplicaii software i arhitecturi de aplicaii. Este un standard gestionat de OMG Object Management Group (http://www.omg.org/). A fost conceput pentru a fi flexibil i personalizabil. Este un limbaj, nu o metodologie (cum se rezolv o problem), poate fi folosit i n afara OO.

Modelarea se face pentru a gestiona complexitatea, pentru a exprima structura i comportarea unui sistem. Un model este o abstracie a unui obiect real, este o simplificare a lui pentru a permite nelegerea unui design.

Perspective (view) ale modelarii: - Vederea proiectarii diagrame clasa, de obiecte, state machine, de interactiuneDV1.3 - 11112010

2

UML 2 Vederea interactiunilor diagrame de activitate Vederea implementarii diagrame package si de component Vederea instalarii (deployment) diagrame de instalare Vederea cazurilor de folosire diagram cazurilor de folosire

2010 memIQ

Folosire: Pentru schiarea unor aspecte legate de un sistem (idei) o Forward engineering o Reverse engineering Blueprint plan detaliat, complet; CASE (Computer Aided Software Engineering); round-trip tools UML ca i limbaj de programare, UML devine cod surs; MDA Model Driven Architecture: PIM Platform Independent Model, PSM Platform Specific Model. Executable UML compilator.

UML definete o notaie i un metamodel. Notaia este format din simbolurile grafice folosite; metamodelul definete conceptele limbajului.

UML 2.2 descrie 14 tipuri oficiale de diagrame:

Profile UML subseturi UML pentru zone particulare de aplicare: - Data distribution - Integrarea sistemelor enterprise - Analiza si design a sistemelor real-time si embedded - Testare - Etc.DV1.3 - 11112010

3

UML 2

2010 memIQ

Observaii: Nu exist reguli clare de cum se mapeaz UML pe un limbaj de programare particular. Se folosesc i alte feluri de diagrame; Exemple: o Diagrame ce descriu cum se leag formele prezentate utilizatorului (UI flow diagrams):

o Tabele de decizie Conditions 1. Divisible by 4 2. Divisible by 100 3. Divisible by 400 Actions 1. Leap Year 2. Not Leap Year 3. Impossible 1 2 3 4 5 67 8 YYYYNNNN YYNNYYNN YNYNYNYN X X X XXX X X

DV1.3 - 11112010

4

UML 2

2010 memIQ

Procese de dezvoltare software context pentru modelare UML. Iterative, time boxing; automated regression testing, refactoring, continuous integration Predictive & adaptive planning Procese agile (XP, Scrum, Feature Driven Development, Crystal, Dynamic Systems Development Method), lightweight Rational Unified Process; faze: inception, elaboration, construction, transition; principii: o Condus de cazurile de folosire o Centrat pe arhitectura o Gestionarea riscurilor o Bazat pe component si interfete o Iterative si incremental

UML se folosete la: Analiza cerinelor: o Use cases pentru descrierea interaciunii cu sistemul o Diagrama de clas din perspectiva conceptual (vocabularul domeniului) o Diagrama de activitate pentru a arta cum interacioneaz activitile umane i software o Diagrame de stare pentru concepte ce au cicluri de via mai interesante. Design: o Diagrame de clase din perspectiva software-ului o Diagrame de secven pentru diferite scenarii o Diagrame pachet pentru a arta organizarea software o Diagrame de stare pentru clase cu cicluri de via complexe DV1.3 - 11112010 5

UML 2

2010 memIQ o Diagrame de instalare (deployment) pentru a arta distribuia fizic a software-ului. Documentaie nelegerea codului motenit (legacy)

DV1.3 - 11112010

6

UML 2

2010 memIQ

2 Diagrame de claseDescrie tipuri de obiecte din sistem i relaiile statice dintre ele.

Proprieti reprezint caliti structurale ale clasei: 1. Atributevisibility name: type multiplicity = default {property-string}

2. Asocieri Reprezentare proprieti ca i atribute sau asocieri:

DV1.3 - 11112010

7

UML 2

2010 memIQ

Multiplicitate; constrangeri: ordered, unique, bag, etc. Exerciiu: implementare ntr-un limbaj Asocieri bidirecionale

Exerciiu: implementare, sincronizarea informaiei Operaii visibility name (parameter-list) : return-type {property-string} parametrii: direction name: type = default value Operaii: query (proprietate {query}) i modificatori; getting i setting method Operaii (semnatura) i metode (implementare) Generalizare; subtyping, subclassing Note i comentarii; comentarii inline -DV1.3 - 11112010

8

UML 2

2010 memIQ

Dependene: modificri ntr-o parte duc la modificri n cealalt parte

Nu e tranzitiv Tipuri de dependene: 1. - sursa apeleaz operaii din int 2. - sursa creeaz instane de int 3. - sursa este derivat din int 4. - sursa este o instan a intei 5. - inta permite sursei s acceseze elementele private ale intei 6. - implmentare de interfa 7. - sursa este clasa de la design a clasei de la analiz 8. - sursa poate nlocui inta 9. - pentru a indica urmele pe care le las cerinele n clase 10. - sursa are nevoie de int pentru implementare Constrngeri {} Se poate folosi limbaj natural Limbaj de programare Object Constraint Language - OCL Responsabilitile clasei se arat ca i comentarii:

DV1.3 - 11112010

9

UML 2 Operaii i atribute statice:

2010 memIQ

Agregare i compoziie

Proprieti derivate se pot calcula din alte valori

DV1.3 - 11112010

10

UML 2 Interfee i clase abstracte

2010 memIQ

Notaie mai compact:

Constrngeri Read-only i Frozen (imutabil) Reference Objects / value objects Asocieri calificate

DV1.3 - 11112010

11

UML 2 Clasificri (obiect - clas) i generalizare (clas - clas) (is a) Clasificri multiple

2010 memIQ

Clasificri dinamice (delegare) i statice (motenire) Clasa de asociere

Exerciii: relaie Person - Skill (level); Company - Contract (Role); Person Company (Employment, period)

DV1.3 - 11112010

12

UML 2 Clasa template (parametrizat)

2010 memIQ

Enumerri

Clase active

DV1.3 - 11112010

13

UML 2 Vizibilitate: *, +, ~, #

2010 memIQ

Teme: Modelare sistem de planificare cursuri (orar): curs, student, sala, profesor, programare Modelare entiti implicate ntrun sistem de gestiune a unei biblioteci Modelare sistem de vnzare cri prin internet Sistem de gestiune a unei magazii: magazie, nomenclator produse, recepie, livrare

DV1.3 - 11112010

14

UML 2

2010 memIQ

3 Diagrame secvenDiagramele de interaciune descriu colaborarea obiectelor pentru a realiza o anumit comportare. Cea mai folosit diagram de interaciune este diagrama de secven. Exemplu:

Variant (control distribuit):

DV1.3 - 11112010

15

UML 2 Crearea i tergerea participanilor

2010 memIQ

Cicluri, condiii (frame-uri de interaciune):

procedure dispatch foreach (lineitem) if (product.value > $10K) careful.dispatch else regular.dispatch end if DV1.3 - 11112010

16

UML 2end for if (needsConfirmation) messenger.confirm end procedure

2010 memIQ

Operatori pentru frame-uri de interaciune: alt fragmente multiple alternative, doar cea cu condiia adevrat se execut opt opional, se execut doar dac condiia este true par paralel, toate fragmentele se execut n paralel loop ciclu, fragmentul se execut de mai multe ori region regiune critic, se execut doar de ctre un thread neg negativ, fragmentul arat o interaciune invalid ref referin, fragment definit n alt diagram sd diagram de secven, cuprinde opional ntreaga diagram Apeluri sincrone i asincrone

Exemplu:

DV1.3 - 11112010

17

UML 2

2010 memIQ

Observaie: Carduri CRC (Class-Responsibility-Collaboration) n analiza cerinelor pentru a descoperi interaciunea dintre obiecte

Exerciii: descrierea unui UC prin diagrama de secventa reprezentarea tratrii comenzilor sincrone n WS funcionare observator (publisher/subscriber) proxy (virtual)

DV1.3 - 11112010

18

UML 2

2010 memIQ

4 Diagrame de obiecteReprezint un ansamblu de obiecte din sistem la un moment dat. Se mai numete diagram instan.

Se folosete de obicei pentru a exemplifica organizri particulare de obiecte.

Exemplu:

DV1.3 - 11112010

19

UML 2

2010 memIQ

Se observ c: un obiect Point poate s fie folosit n mai multe obiecte Triangle un obiect Point poate s fie folosit de un obiect Triangle sau nu punctele ce definesc un triunghi nu pot fi coliniare

Modificai diagrama de clase pentru a include aceste observaii.

DV1.3 - 11112010

20

UML 2

2010 memIQ

5 Diagrame de pachetePachetul grupeaz elemente n uniti. De obicei se grupeaz clase. Pachetele sunt containere de uz general, sunt o unealt flexibil pentru a organiza elementele modelului cnd acesta devine mare sau complex.

Pachetele pot conine orice element din modelul logic, ca de exemplu clase, interfee, diagrame, alte pachete. Ele pot

View more