uml 2_v1.3

Upload: marcelmilea

Post on 14-Jul-2015

245 views

Category:

Documents


0 download

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 fi folosite pentru a grupa componente software. Faptul c pachetele pot conine alte pachete permite organizarea modelelor n ierarhii. Se spune c pachetele sunt proprietarii elementelor pe care le conin. Acest tip de relaie este prin definiie o compoziie. Dac pachetul este distrus atunci i coninutul lui este distrus. Prin definiie, elementele plasate ntr-un pachet sunt vizibile doar n acel pachet. Totui, vizibilitatea unui element individual din pachet se poate defini public, privat sau protejat. Orice pachet trebuie s aib cel puin o interfa public, cel puin o clas cu o interfa public. Denumirea elementelor din pachet trebuie s specifice i tipul ei. Numele sunt unice pentru elemente de acelai tip n acelai pachet. Pot exista elemente cu acelai nume n pachete diferite. Pentru a le folosi trebuie s calificm numele lor cu numele pachetului :: (scope resolution). Pachete Java, spaii de nume n C++ i .NET.

DV1.3 - 11112010

21

UML 2

2010 memIQ

Dependene:

DV1.3 - 11112010

22

UML 2 Implementarea pachetelor

2010 memIQ

Dependena unui pachet de alte pachete:

DV1.3 - 11112010

23

UML 2

2010 memIQ

Se folosete de obicei n sisteme mari pentru a arta dependenele dintre elementele majore ale sistemului. Exist stereotipul subsystem sau system pentru a desemna pachetul ca avnd aceast semnificaie.

DV1.3 - 11112010

24

UML 2

2010 memIQ

6 Diagrame de instalare (deployment)Arata structura fizic a sistemului, arat ce (artifact) ruleaz pe fiecare nod hardware.

Exemplu: UML 1.4; combinare cu componente

DV1.3 - 11112010

25

UML 2

2010 memIQ

7 Cazuri de folosire (Use Cases)Se folosesc pentru a capta cerinele funcionale ale sistemului. Ele descriu interaciunea dintre utilizatori i sistem, descriu modul de folosire a sistemului. Un caz de folosire cuprinde un set de scenarii nrudite prin obiectivul lor comun. Exemplu: plata unui serviciu prin diferite metode. Actor rol fata de sistem. Nu exist un mode standard de a scrie coninutul unui UC. Exemplu scenariu principal i extensii:

Exemplu descriere caz de folosire: Nume Retragere Numerar Versiune 2.0 Autor JJ Ultima modificare 10.09.2010 Presupuneri Utilizatorul a furnizat un card valid i parola Pre-condiii Utilizatorul a specificat o sum valid Descriere Iniializare Cazul de folosire pornete la cerere (alternative sunt detecia unei condiii, condiii legate de timp) Dialog Sistemul cere suma ce se dorete a fi retras Utilizatorul specific suma ATM-ul verific c suma respect politica predefinit relativ la limitele permise i c suma este divizibil cu o sum fixat (de exemplu 10 lei). Dac suma nu respect aceste cerine, DV1.3 - 11112010 26

UML 2

2010 memIQ utilizatorul va primi un mesaj de eroare. Altfel: ATM-ul ncearc s se conecteze la banc Dac nu se stabilete legtura utilizatorul primete un mesaj de eroare Dac suma este disponibil n cont utilizatorul primete banii i o chitan Dac suma nu este disponibil utilizatorul primete un mesaj de eroare. 1. sistemul elibereaz suma i tiprete chitana 2. sistemul afieaz mesajul c suma este invalid 3. sistemul afieaz mesajul c nu se poate conecta la banc 4. utilizatorul anuleaz tranzacia

Terminare

Post-condiii

La terminare: 1. sistemul tiprete suma rmas n cont pe chitan, contul din banc este actualizat, tranzacia este nregistrat 2. Dup orice eroare ATM-ul se ntoarce la starea iniial 3. Dupa comanda de anulare ATM-ul se ntoarce la starea iniial

Fiecare UC are un actor principal. UC precede proiectarea interfeei utilizator. Un UC poate include alte UC; de exemplu pasul 1 din exemplul anterior. Un UC poate specifica: Precondiii condiiile ce trebuie s fie ndeplinite nainte de a ncepe UC Rezultate garantate ce realizeaz UC Trigger evenimentul ce declaneaz UC

DV1.3 - 11112010

27

UML 2

2010 memIQ

Relatii intre UC: include Mostenire specializari de UC extent includere optionala Niveluri UC: Sistem Business rspunsul pentru un client sau eveniment UC i feature din XP (user stories). Cerinte nefunctionale performanta, securitate, robustete UC sunt baza pentru testele functionale.

Exemplu: cumprarea de produse (de ex. carti) din magazine virtuale cumpararea unei cafele de la un automat programarea la un consult medical weblogs (blogs)

DV1.3 - 11112010

28

UML 2

2010 memIQ

8 Diagrame State MachineEste o tehnic pentru descrierea comportarii sistemului. n OOP se descrie ciclul de via al obiectelor. Exemplu:

Stri, tranziii: trigger-signature [guard]/activity Activiti interne

Stri de activitate (do):

DV1.3 - 11112010

29

UML 2 Activitile do pot fi intrerupte.

2010 memIQ

Superstri

Stri concurente

Modaliti de implementare a strilor: Switch-uri imbricate Pattern state Tabele de stri

DV1.3 - 11112010

30

UML 2 Exemplu:1. public void HandleEvent (PanelEvent anEvent) { switch (CurrentState) { case PanelState.Open : switch (anEvent) { case PanelEvent.SafeClosed : CurrentState = PanelState.Wait; break; } break; case PanelState.Wait : switch (anEvent) { case PanelEvent.CandleRemoved : if (isDoorOpen) { RevealLock(); CurrentState = PanelState.Lock; } break; } break; case PanelState.Lock : switch (anEvent) { case PanelEvent.KeyTurned : if (isCandleIn) { OpenSafe(); CurrentState = PanelState.Open; } else { ReleaseKillerRabbit(); CurrentState = PanelState.Final; } break; } break; } } }

2010 memIQ

2.

DV1.3 - 11112010

31

UML 23.

2010 memIQ

Exerciiu: construii diagrama de stare pentru a modela starea clienilor dup urmtorul text: Toi clienii sunt considerai ca fiind clieni poteniali, cnd fac prima comand devin clieni activi. Dac nu pltesc la timp sunt inclui n categoria cu probleme. Dac pltesc la timp i au comenzi mai mari de 100 de milioane n ultimele ase luni ei trec n categoria prefereniali. Acetia pot iei din aceast stare dac ntrzie cu cel puin dou pli. Ei se ntorc atunci n grupa clienilor activi.

Tem: Modelarea strilor unui ATM

DV1.3 - 11112010

32

UML 2

2010 memIQ

9 Diagrame de activitateEste o tehnic pentru a descrie logic procedural, process de business i workflow. Poate descrie paralelismul.

Descompunerea unei aciuni n subactiviti

DV1.3 - 11112010

33

UML 2 Folosire:

2010 memIQ

Partiii:

DV1.3 - 11112010

34

UML 2 Semnale de timp

2010 memIQ

Legturi ntre aciuni:

DV1.3 - 11112010

35

UML 2 Dac dorim s specificm transformri de parametrii:

2010 memIQ

Regiuni de expansiune

Prescurtare:

DV1.3 - 11112010

36

UML 2 Terminare:

2010 memIQ

Specificarea join-ului

Tem: descrierea retragerii de bani de la un ATM prin diagram de activitate (client ATM - banca).

DV1.3 - 11112010

37

UML 2

2010 memIQ

10 Diagrame de comunicareEste un fel de diagram de interaciune.

Echivalena dintre diagram de comunicare i diagrama de secven.

Tem: modelare funcionare cache cu informaii despre o persoan

DV1.3 - 11112010

38

UML 2

2010 memIQ

11 Structuri compositePermite descrierea coninutului unui obiect complex (run time). Exemplu (2 variante):

Descompunere:

DV1.3 - 11112010

39

UML 2 Folosire port-uri:

2010 memIQ

DV1.3 - 11112010

40

UML 2

2010 memIQ

12 Diagrame de componenteComponentele sunt buci relativ independente upgradabile independent.

Exemplu:

Exemplu:

DV1.3 - 11112010

41

UML 2

2010 memIQ

13 ColaborriExemplu licitaie:

Comportare prin diagrama de secven:

- roluri! - participant-name /role-name : class-name

DV1.3 - 11112010

42

UML 2

2010 memIQ

Specificarea colaborrii ntr-o diagrama de clase:

DV1.3 - 11112010

43

UML 2

2010 memIQ

14 Diagrame sintetice de interaciune (Interaction Overview Diagrams)Combin diagrama de activitate i de secven.

DV1.3 - 11112010

44

UML 2

2010 memIQ

15 Diagrame de timp

Alternativ:

Tem: reprezentai metoda de aducere a datelor la BS n reeaua wireless seismograph.

DV1.3 - 11112010

45

UML 2

2010 memIQ

16 Bibliografie1. UML Distilled: A Brief Guide to the standard Object Modeling Language, Third Edition, Martin Fowler, Editura Addison Wesley, 2003, ISBN 0-32119368-7 2. Leraning UML 2.0, Kim Hamilton, Russel Miles, Editura OReilly, 2006, ISBN 0-596-00982-8 3. The Unified Modeling Language User Guide, Second Edition, Grady Booch, James Rumbaugh, Ivar Jacobson, Editura Addison Wesley Professional, 2005, ISBN 0-321-26797-4

DV1.3 - 11112010

46