uml 2_v1.3
Post on 14-Jul-2015
228 views
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