ingineria programarii: limbajul unificat de modelare, uml

Upload: enrollinfo

Post on 11-Jul-2015

334 views

Category:

Documents


6 download

DESCRIPTION

UML 2.0 DiagramsDiagrame UML 2.0

TRANSCRIPT

Ingineria programrii 2. Limbajul unificat de modelare, UML Florin Leon Universitatea Tehnic Gheorghe Asachi din Iai Facultatea de Automatic i Calculatoare http://florinleon.byethost24.com/curs_ip.htm Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmLimbajul unificat de modelare, UML 1. Modelarea 2. Limbajul unificat de modelare 3. Clasificarea diagramelor UML 2.0 4. Diagramele UML 2.0 5. Concluzii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmLimbajul unificat de modelare, UML 1. Modelarea 2. Limbajul unificat de modelare 3. Clasificarea diagramelor UML 2.0 4. Diagramele UML 2.0 5. Concluzii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmModelarea Un model este o simplificare a unui anumit sistem, care permite analizarea unora dintre proprietile acestuia Reine caracteristicile necesare Folosirea de modele poate nlesni abordarea problemelor complexe, facilitnd comunicarea i nelegerea Divide et impera Exemple: Formalismul matematic Reprezentrile din fizic Orice limbaj intern poate fi folosit pentru modelare,ns ntr-un context formal este nevoie de standardizare 4 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmLimbajul unificat de modelare, UML 1. Modelarea 2. Limbajul unificat de modelare 3. Clasificarea diagramelor UML 2.0 4. Diagramele UML 2.0 5. Concluzii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm6 Scurt istoric (I) ntre 1989 i 1994 erau folosite mai mult de 50 de limbaje de modelare software, fiecare cu propriile notaii Utilizatorii doreau un limbaj standardizat, o lingua franca a modelrii La mijlocul anilor 90 trei metode s-au dovedit mai eficiente: Booch (Grady Booch): potrivit mai ales pentru proiectare i implementare, cu dezavantajul unor notaii complicate OMT, Object Modeling Technique (Jim Rumbaugh): potrivit pentru analiz i sisteme informaionale cu multe date OOSE, Object Oriented Software Engineering (Ivar Jacobson): aceast metod a propus aa-numitele cazuri de utilizare, care ajut la nelegerea comportamentului sistemului n ansamblu Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm7 Precursorii UML Booch OMT OOSE Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm8 Scurt istoric (II) 1994: Jim Rumbaugh, creatorul OMT, a prsit General Electric, alturndu-se lui Grady Booch la Rational Corp. 1995: Ivar Jacobson, creatorul OOSE, a venit la Rational iar ideile lui, n special conceptul de cazuri de utilizare, au fost adugate Metodei unificate Metoda rezultat a fost numit Limbajul unificat de modelare, UML 1996: Formarea de ctre Rational a consoriului Partenerilor UML din care fceau parte gigani precum Hewlett-Packard, Microsoft i Oracle Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm9 UML Limbaj pentru specificarea, vizualizarea, construirea i documentarea elementelor sistemelor software Un limbaj grafic care ne permite s reproducem pe hrtie ceea ce este produs n procesul de dezvoltare a unui sistem software Poate fi folosit i pentru alte sisteme, cum ar fi procesele de afaceri (business processes) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm10 Versiuni i standardizare Ianuarie 1997: UML 1.0 a fost propus spre standardizare n cadrul OMG (Object Management Group) Noiembrie 1997: versiunea UML 1.1 a fost adoptat ca standard de ctre OMG Martie 2003: a fost lansat versiunea 1.5 Octombrie 2004: versiunea 2.0 August 2011: versiunea 2.4.1 UML este standardul ISO/IEC 19501:2005 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm11 UML Ca orice limbaj, UML are: Notaii (alfabetul de simboluri) Sintax i gramatic (reguli pentru combinarea simbolurilor) UML este un instrument de comunicare UML nu este o metodologie de dezvoltare Dar este determinat de cele mai bune practici n domeniu Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmLimbajul unificat de modelare, UML 1. Modelarea 2. Limbajul unificat de modelare 3. Clasificarea diagramelor UML 2.0 4. Diagramele UML 2.0 5. Concluzii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm13 Clase de diagrame Diagrame de structur Prezint elementele unei specificaii independent de timp Includ: diagramele de clase, structuri compuse, componente, desfurare (deployment), obiecte i pachete Diagrame de comportament Prezint trsturile comportamentale ale sistemului Includ: diagramele de activiti, maini de stare i cazuri de utilizare, precum i cele 4 diagrame de interaciune Diagrame de interaciune Scot n eviden interaciunile dintre obiecte Includ: diagramele de secvene, comunicare, interaciuni generale (interaction overview) i cronometrare (timing) Legend: utilitate practic mare, medie, mic Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm14 Diagramele UML 2.0 (I) Diagrame de structur:ce conine sistemul Clase Structuri compuse Componente Desfurare Obiecte Pachete Diagrame de comportament: ce se ntmpl n sistem Activiti Maini de stare Cazuri de utilizare Diagrame de interaciune: fluxurile de control i date dintre componentele sistemului Secvene Comunicare Interaciuni generale Cronometrare Diagrame introduse n UML 2.0 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm15 Diagramele UML 2.0 (II) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmLimbajul unificat de modelare, UML 1. Modelarea 2. Limbajul unificat de Modelare 3. Clasificarea diagramelor UML 2.0 4. Diagramele UML 2.0 5. Concluzii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm17 1. Diagrama cazurilor de utilizare Descrie interaciunile dintre utilizatori i sistem Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm18 Actori i cazuri multiple Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm19 Granularitatea Un caz de utilizare trebuie s satisfac un scop pentru actor Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm20 Avantaje Suma cazurilor de utilizare este ntregul sistem Permit comunicarea cu persoane fr cunotine tehnice IT Partiioneaz funcionalitatea, ghideaz dezvoltarea iterativ Ajut planificarea i testarea Ajut la crearea manualurilor de utilizare Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm21 Determinarea cazurilor de utilizare Interviuri cu utilizatori poteniali ntlniri cu prile interesate (stakeholders) Facilitator, asistent (scribe), modelare CASE Brainstorming Mai nti actorii Apoi posibilele cazuri de utilizare Justificarea fiecrui caz de utilizare Descriere simpl, de o linie sau un paragraf Toate ideile trebuie documentate Cazurile de utilizare nu trebuie s fie perfecte de prima dat, se vor rafina ulterior Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm22 Actori primari i secundari beneficiazia parte Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm23 Identificarea actorilor Exemplu: timpul poate fi un actor Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm24 Generalizarea actorilor note (comentarii) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm25 Relaiile dintrecazurile de utilizare (I) Include: pentru reutilizare Doar Check Identity este conectat cu Author Credentials Database Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm26 Relaiile dintrecazurile de utilizare (II) Generalizarea cazurilor de utilizare: reutilizare cu modificri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm27 Relaiile dintrecazurile de utilizare (III) Extend: comportament opional, depinznd de o decizie (de implementare sau din timpul execuiei) Diferit de incluziune i generalizare! O relaie mai puin intuitiv Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm28 Specificarea cazurilorde utilizare (I) Pre-condiii Utilizatorul s-a logat i s-a autentificat ca administrator Post-condiii Participantul a fost eliminat de la curs Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm29 Specificarea cazurilorde utilizare (II) Fluxuri de extensie (fluxuri alternative sau fluxuri de excepie) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm30 Storyboard (tabl de naraiune) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm31 2. Diagrama de clase Clasa Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm32 Vizibilitatea trsturilor Public Protejat Pachet Privat Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm33 Vizibilitatea n C# i Java Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm34 Reprezentarea atributelor Inline (n interiorul clasei) Prin asociere Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm35 Vizibilitatea atributelor De obicei private sau protejate Nu se recomand atribute publice, dect: Pentru constante Atribute read-only Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm36 Operaiile Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm37 Parametrii i tipurile de return Constructor Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm Trsturi (features) = atribute i operaii Trsturile statice se subliniaz 38 Trsturi statice Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm39 Relaii ntre clase Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm40 Dependena O clas folosete pentru scurt timp o alt clas Exemplu: trimiterea unui mesaj - metodele clasei Math Din punct de vedere al implementrii: Instanierea unei clase ntr-o metod Primirea unui obiect ca parametru ntr-o metod Crearea i returnarea unui obiect dintr-o metod Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm41 Asocierea O clas folosete un timp ndelungat o alt clas De obicei, o clas are un cmp instaniat din cealalt clas Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm42 Direcia de citire Direcia de citire este de obicei de la stnga la dreapta i de sus n jos Direcia de citire se poate indica explicit Sgeata care indic direcia de citire nu trebuie pus pe linia de asociere! Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm43 Validarea asocierilor Fiecare. Obiect. Este predat ca. 0 sau mai multe. Cursuri. Fiecare. Curs. Este pentru. Unul i numai unul. Obiect. Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm44 Asociere complex Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm45 Asociere unidirecional Numai o clas tie de cealalt Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm46 Cardinalitatea (multiplicitatea) asocierii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm47 Asocieri multiple (I) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm48 Asocieri multiple (II) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm49 Agregarea O clas are dar partajeaz obiecte din cealalt clas Este o relaie de tip ARE-UN / ARE-O Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmAgregarea 50 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm51 Compunerea Atributele compun clasa Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htmCompunerea 52 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm53 Implementarea Din punct de vedere al implementrii, asocierea, agregarea i compunerea presupun introducerea unui atribut (cmp) Dac nu sunt evidente sau foarte importantedistinciile privind agregarea sau compunerea, este mai simplu s se foloseasc numai relaiile de asociere Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm54 Motenirea (generalizarea) Este o relaie de tip ESTE-UN / ESTE-O Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm55 Regula 100% Toate definiiile clasei de baz trebuie s se aplice tuturor claselor derivate Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm56 Corectitudinea generalizrilor Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm57 Motenire multipl Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm58 Recomandare Compunerea ar trebui preferat motenirii Motenirea este cea mai puternic form de cuplare n general, compunerea este mai uor de gestionat Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm59 Clase i operaii abstracte virtual abstract Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm60 Interfee Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm61 Template-uri De exemplu: List tipul este specificat n implementare Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm62 Constrngeri Tipuri de constrngeri: Invariante Pre-condiii Post-condiii OCL (Object Constraint Language) parte din UML 2.0 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm63 Recomandri Nu introducei prea multe informaii n diagram Ignorai atributele i operaiile necritice Artai ntr-o diagram numai clasele relevante pentru un caz de utilizare Nu includei clasele sistem (string, Hashtable etc.) Nu includei prea devreme informaii despre implementare (navigabilitate, vizibilitate) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm64 3. Diagrama de obiecte Arat cum se comport obiectele ntr-un anumit scenariu, cum interacioneaz Asocierile corespund asocierilor dintre clase Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm65 Template-uri De exemplu: List tipul este specificat n momentul execuiei Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm66 4. Diagrama de activiti merge = mbinare Aceste diagrame descriu logica procedural, procesele Sunt asemntoare schemelor logice, dar suport i paralelismul Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm67 Activiti i aciuni Activitatea este procesul modelat O aciune este un pas din activitate Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm68 Decizii i mbinri Condiiile trebuie s fie complete i mutual exclusive Pasul urmtor trebuie s fie unic determinat Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm69 Teste incomplete Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm70 Procese paralele fork = ramificaie join = reunire Se folosesc pentru procese sau fire de execuie multiple La reunire, se ateapt terminarea tuturor aciunilor incidente Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm71 Evenimente de timp Perioad de ateptare Eveniment de timp recurent Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm72 Apelarea altor activiti Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm73 Semnale Ateapt tot timpul Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm74 ntreruperi i terminri de flux Un flux se poate termina fr a termina ntreaga activitate Dac se mai poate mbunti soluia n 2 secunde, este foarte bine, dac nu, se returneaz rezultatul existent Dup 2 secunde, se returneaz orice rezultat disponibil, mbuntit sau nu Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm75 Partiii (culoare) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm76 Adnotri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm77 Conectori Un conector este reprezentat de obicei de o singur liter Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm78 Exemple Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm5. Diagrama de secvene Arat modul cum lucreaz sistemul Greu de neles doar din descrierea structurii O diagram corespunde unui singur scenariu Include n principal obiecte i mesaje Un mesaj poate fi un apel de metod Indic ordinea evenimentelor Timpul reprezint aici ordinea, nu durata Pentru durat, se folosete diagrama de cronometrare 79 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm80 Participani Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm81 Mesaje imbricate Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm82 Tipuri de mesaje Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm83 Diagram complex Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm84 Fragmente Controlul secvenial natural poate fi extins cu ajutorul fragmentelor de interaciune, introduse n UML 2.0 Fragmentele sunt asemntoare structurilor de control care exist ntr-un limbaj de programare Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm85 Fragmente opionale Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm86 Fragmente alternative Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm87 Referine Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm88 6. Diagrame de comunicare Mesaje imbricate Mesaje concurente Similare diagramelor de secvene, dar se concentreaz pe legturile dintre participani Diagramele de secvene i cele de comunicare pot fi transformate automat unele n altele Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm89 Alte tipuri de mesaje Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm90 Diagram complex Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm7. Diagrama mainilor de stare Obiectele pot reaciona diferit n funcie de stare Diagramele mainilor de stare se realizeaz pentru un singur obiect Pot descrie comportamentul unui obiect de-a lungul mai multor cazuri de utilizare Nu sunt potrivite pentru a descrie colaborarea mai multor obiecte Sunt folosite intens n anumite tipuri de aplicaii software i hardware, precum: Sisteme critice de timp real Bancomate Jocuri (de exemplu first person shooter) 91 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm92 Stri, tranziii, declanatoare, condiii lift/lower switch = declanatoare (triggers) Stri active ce face (de exemplu prepar cafeaua) Stri pasive cum este (de exemplu becul e stins sau aprins) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm93 Semnale Accentul este pus pe tranziii Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm94 Stri compuse (I) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm95 Stri compuse (II) Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm8. Diagrama de componente Pentru proiectele mai complexe, este greu de trecut de la analiz direct la definirea claselor O component este o parte ncapsulat, reutilizabil i nlocuibil a sistemului Componentele comunic prin interfee, pentru a asigura cuplarea slab Componentele pot fi compuse din cteva clase sau pot reprezenta subsisteme de mari dimensiuni 96 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm97 Notaii pentru componente UML 1.x Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm98 Notaii pentru interfee Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm99 Accent pe interfee Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm100 Accent pe dependene Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm101 Clasele componentelor Notaie compact Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm9. Diagrama de pachete Sistemele software pot avea sute de clase Pachetele modeleaz grupuri de clase Majoritatea limbajelor de programare importante au un corespondent al pachetelor C#: namespace Java: package Deseori diagramele sunt folosite pentru a indica dependenele dintre pachete Pachetele pot cuprinde orice element UML, nu doar clase De exemplu: cazuri de utilizare Componentele corespund nivelului conceptual (mai generale) Pachetele corespund nivelului logic, n coresponden cu faza de implementare 102 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm103 Pachete Organizarea logic Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm104 Clase n pachete Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm105 Dependene Java import C# using Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm10. Diagrama de desfurare Corespunde nivelului fizic: modeleaz elemente fizice ale sistemului Fiiere executabile Entiti hardware Arat cum sunt atribuite entitile software ctre cele hardware i cum comunic acestea Poate include hardware, firmware, sisteme de operare, medii de execuie, drivere etc. Dar trebuie s cuprind doar detaliile importante pentru audien 106 Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm107 Artefacte hardwaresoftware Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm108 Artefacte Organizarea fizic Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm109 Instane de noduri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm110 Comunicaia ntre noduri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm111 Exemplu de utilizare Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm112 11. Diagramastructurilor compuse Arat cum lucreaz obiectele n interiorulunei clase sau cum ndeplinesc un scop Un port reprezint un mod distinct de utilizare a unei clase, de obicei de ctre tipuri diferite de clieni Porturile pot grupa interfee nrudite Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm113 12. Diagrama de cronometrare Folosit mai ales pentru sisteme de timp real sau ncorporate Arat strile unui obiect i momentele de timp cnd se afl obiectul n aceste stri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm114 Interaciuni i constrngeri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm115 Notaie alternativ Recomandat pentru puine stri Recomandat pentru multe stri Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm116 13. Diagramainteraciunilor generale Arat cum interacioneaz mai multe entiti pentru a realiza un caz de utilizare (sau un scop) Poate fi vzut ca o diagram de activiti,dar fiecare aciune esteo interaciune complet descris de o diagram distinct Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm117 Diagramele UML i ciclul de dezvoltare software Faza modelrii cazurilor de utilizare Faza modelrii domeniului Diagrame statice de structur, diagrame de secvene Faza modelrii proiectrii Diagrame de clase, de maini de stare, de activiti Faza modelrii implementrii Diagrame de componente, de desfurare Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm118 Diagramele UML i ciclul de dezvoltare software Modelul vizualizrii 4+1 Perspectiva logic Clase, maini de stare, secvene .a. Perspectiva de proces Activiti Perspectiva de dezvoltare Pachete, componente Perspectiva fizic Desfurare Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm119 Concluzii UML este un limbaj pentru specificarea, vizualizarea, construirea i documentarea elementelor sistemelor software Este un standard de facto pentru modelarea software UML 2.0 are 13 diagrame, clasificate n: Diagrame de structur Diagrame de comportament Diagrame de interaciune Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm120 Referine Majoritatea diagramelor incluse n acest curs au fost preluate din urmtoarele surse: Hamilton, K., Miles, R. (2006). Learning UML 2.0, O'Reilly Ariadne Training. UML Applied, 2nd edition, http://ariadnetraining.com/software-courses/images/stories/YesNo/ ariadne/file/UML_Applied\_Second\_Edition.pdf Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm