Download - UML 2_V1.3
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