Sunteți pe pagina 1din 55

Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr.

Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Cur s 6 – Analiza sistemelor informatice

Cuprins
 Analiza orientată obiect a sistemelor informatice
 Diagrama de clase
 Diagrama de obiecte
 Diagrama de activitate
 Diagrama de secvenţă
 Diagrama de comunicare
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Analiza orientată obiect a sistemelor informatice


În etapa de analiză a sistemului sunt analizate specificaţiile şi cazurile
de utilizare, identificându-se cele mai importante concepte cu care
lucrează sistemul, împreună cu relaţiile dintre acestea. Se reprezintă
grafic printr-o diagramă structura domeniului claselor pentru sistemul
analizat.
1. Se iniţiază reprezentarea diagramei de clase, care va fi finisată şi în
etapele următoare. Diagrama claselor reprezintă grafic structura statică
a sistemului, prin includerea claselor identificate, a pachetelor şi a
relaţiilor dintre acestea. Un pachet poate conţine clase, interfeţe,
componente, noduri, colaborări, cazuri de utilizare, diagrame sau alte
pachete.
2. Se iniţiază construirea diagramei obiectuale care modelează instanţele
elementelor conţinute în diagramele de clase. Aceste diagrame cuprind
un set de obiecte şi relaţiile dintre acestea la un anumit moment.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Analiza orientată obiect a sistemelor informatice


3. Pentru a evidenţia stările prin care poate trece un obiect sau un eveniment
(mesaje primite, erori, condiţii de realizare) sunt reprezentate diagramele
de stare, care reprezintă ciclul de viaţă al obiectelor, subsistemelor şi
sistemelor. Stările obiectelor se schimbă la recepţionarea evenimentelor sau
semnalelor.
4. Diagrama de activitate este realizază cu scopul de a evidenţia acţiunile şi
rezultatul acestor acţiuni şi pentru a scoate în evidenţă fluxurile de lucru.
5. Pentru a evidenţia interacţiunile dintre obiecte se construiesc diagramele de
interacţiune: diagramele de secvenţă şi, respectiv, diagramele de
comunicare.
 Diagramele de secvenţă descriu modul în care interacţionează şi comunică
obiectele, prin focalizare pe mesajele care sunt transmise şi recepţionate.
 Diagramele de comunicare permit reprezentarea atât a interacţiunilor, cât şi a
legăturilor dintre un set de obiecte care colaborează. Se utilizează când este utilă
vizualizarea coordonatei spaţiale.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de clase
 Diagrama claselor este cea mai importantă diagramă în cadrul
analizei şi proiectării orientate obiect. Scopul diagramei claselor este
de a prezenta natura statică a claselor punand in evidenţă atributele,
operaţiile şi asocierile.
 Majoritatea instrumentelor de modelare orientate obiect generează
codul sursă numai din diagrama claselor.
 Celelalte diagrame UML furnizează diferite puncte de vedere din care
să fie identi­ficate atributele, operaţiile şi asocierile dintre clase. Ele
ajută la validarea diagramei claselor, putând servi la clarificarea unei
probleme specifice .
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Definirea unei clase


 Ansamblu de obiecte care au aceleaşi caracteristici şi contrângeri.
 Caracteristicile unei clase sunt atributele şi operaţiile.
 Clasele abstracte nu pot fi instanţiate. Rolul lor este de a permite altor clase
să le moştenească, în vederea reutilizării caracteristicilor.
 O interfaţă descrie un set de caracteristici şi obligaţii publice. Specifică, de
fapt, un contract. Orice instanţă care implementează interfaţa trebuie să
ofere serviciile furnizate prin contract.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Exemple de clase stereotipe uzuale


 entitate (<<entity>>) – o clasă pasivă, care nu iniţiază
interacţiuni;
 control (<<control>>) – iniţiază interacţiuni, conţine o
componentă tranzacţională şi este separator între entităţi şi
limite;
 limită (<<boundary>>) – este aflată la periferia sistemului, dar în
interiorul său. Reprezintă limita de legătură cu actorul sau cu alte
sisteme informatice;
 enumerare (<<enumeration>>) ­ este folosită pentru definirea
tipurilor de date ale căror valori sunt enumerate.
 primitivă (<<primitive>>) ­ o formă de clasă care reprezintă tipuri
de date predefinite, cum ar fi tipul Boolean.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Atribute -1
 Fiecare atribut este descris cel puţin prin numele său.
 Se pot adăuga şi informaţii adiţionale, iar forma generală a
unui atribut este:
[vizibilitate][/]nume[:tip][multiplicitate][=valoare implicită] [{proprietate}]
 Vizibilitatea poate fi:
 + public: poate fi văzută şi folosită de oricine
 ­ private: numai clasa însăşi poate avea acces
 # protected: au acces clasa şi subclasele acesteia
 ~ package: numai clasele din acelaşi pachet pot avea acces

 / simbolizează un atribut derivat


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Atribute -2
 UML permite specificare multiplicităţilor pentru atribute, atunci când dorim să
definim mai mult de o valoare pentru un atribut. Au următoarea semnificaţie:

Multiplicitate Sens
1 Exact 1 (implicit)
2 Exact 2
1..4 De la 1 la 4 (inclusiv)
3, 5 3 sau 5
1..* Cel puţin unul sau mai mulţi
* Nelimitat (inclusive 0)
0..1 0 sau 1

 Proprietate indică o proprietate suplimentară care se aplică atributului:


 {readonly}: atributul poate fi citit, dar nu modificat
 {ordered}, {unordered}: o mulţime ordonată sau neordonată
 {unique}, {nonunique}: mulţimea poate conţine sau nu elemente identice
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

OperaŃii
 Forma generală a unei operaţii este:
[vizibilitate] nume ([direcţie] lista parametri) [:tip returnat] [{proprietate}]
 Vizibilitatea – aceeaşi ca şi la clase
 Direcţie ­ 'in' | 'out' | 'inout' | 'return'
 Tip returnat – dacă operaţia returnează ceva, adică este o funcţie
 Un exemplu de proprietate a unei operaţii: {query} ­ nu are efecte secundare,
nu schimbă starea unui obiect sau a altor obiecte, exemplu operaţiile de tip
“get”.

Exemple de atribute: Exemple de operaţii:


• ­ varsta: Integer {varsta>18} • + setVarsta (out varsta: Integer)
• # nume:String[1..2]=“Ioana” • + getVarsta(in Id:String): Integer {query}
• ~ Id:String {unique} • ­ schimbaNume(inout nume:String)
• / sumaTotala:Real=0
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Constrângeri
 O constrângere este o expresie care restricţionează un anumit element al
diagramei de clase.
 Aceasta poate fi o expresie formală (scrisă în Object Constraint Language
­ OCL) sau o formulare semi­formală sau informală.
 Acestea sunt reprezentate între acolade.
 Pot fi scrise imediat după definirea elementului sau ca un comentariu.
 O constrângere poate avea şi un nume, astfel:
 {nume : expresie booleană }

Exemple de constrângeri OCL:


context Organizatie
inv: self. departamente→isUnique (nume)
inv: departamante.angajati→isUnique (cod)
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -1


1. Relaţia de asociere implică stabilirea unei relaţii între clase.
 Este caracterizată prin:
 denumire (opţională)
 multiplicităţi – se trec la cele 2 capete ale asocierii;
 roluri ale asocierii: se trec la fiecare capăt al asocierii şi conţin o
descriere scurtă şi reprezentativă de (1 – 2 substantive)
 direcţie de navigare
 tipuri de asocieri:
 unare
 binare
 ternare
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -2


Tipuri de asocieri:
 Unare: conectează o clasă cu sine însăşi.

 Binare: se realizează între două clase.

 Ternare: sunt transformate, de obicei, în asocieri binare.


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -3


 Asocierea modelată ca o clasă permite relaţiei de asociere să
aibă artibute şi operaţii.

2. Relaţia de agregare este o formă de asociere binară


reprezentând o relaţie de tip parte/întreg.
• Poate fi de doua tipuri:
• Agregare partajată (agregare)
• Agregare compusă (compunere)
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -4


 Agregarea partajată este o formă slabă de agregare în care
instanţele părţilor sunt independente de întreg, astfel:
 Aceleaşi părţi partajate pot fi incluse în mai multe clase întreg.
 Dacă clasa întreg se şterge, clasele parte vor exista în
continuare.
 Se reprezintă sub forma unui romb gol plasat la capătul clasei
întreg.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -5


 Agregarea compusă este o formă puternică de agregare în care
instanţele părţilor sunt independente de întreg, astfel:
 Dacă clasa întreg se şterge, clasele parte vor vor fi şterse şi ele.
 Se reprezintă sub forma unui romb plin plasat la capătul clasei
întreg.
 Atunci când se foloseşte pentru modelarea obiectelor dintr­un
anumit domeniu, ştergerea poate fi interpretată la figurativ, ca
“terminare”, şi nu ca o distrugere fizică.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -6


Asociere
Obiectele ştiu unele de existaţa celorlalte şi pot lucra împreună.

Agregare
1. Protejează integritatea configuraţiei.
2. Funcţionează ca un tot unitar.
3. Control prin intermediul unui singur obiect.

Compunere
Fiecare parte poate fi membră a unui singur obiect agregat.

Relaţii între asociere, agregare şi compunere


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -7


3. Relaţia de generalizare este folosită pentru a indica moştenirea
dintre o clasă generală (superclasă) şi o clasă specifică (subclasă).
• Se mai numeşte informal şi relaţie de genul “este un tip de”.
• Se reprezintă sub forma unui tringhi gol plasat la capătul
superclasei.
• Subclasele moştenesc caracteristicile şi constrângerile superclasei.
• Este permisă moştenirea multiplă.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -8


4. Relaţia de dependenţă este folosită pentru a arăta o gamă largă de
dependenţe între elementele unui model.
• În atapa de analiză, tipul de dependenţă poate să nu fie specificat.
• În proiectare, dependenţele vor fi personalizate cu stereotipuri sau vor
fi înlocuite cu conectori specifici tehnologiei folosite.
• Se reprezintă sub forma unei linii punctate de la clasa dependentă
“client,” pană la clasa “furnizor”, cu o săgeată la capătul clasei
“furnizor”.
• În diagramele de clase, cele mai importante dependenţe sunt relaţiile
de utilizare şi de abstractizare.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃii între clase -9


• Dependenţa de utilizare (<<use>>, <<create>>, <<call>> etc.) este o relaţie în care
clasa client are nevoie de altă clasă sau set de clase (furnizor) pentru a funcţiona.
• Dependenţa de abstractizare pune în relaţie două elemente sau seturi de elemente
(numite client şi furnizor), reprezentând acelaţi concept, dar la niveluri diferite de
abstractizare sau din puncte de vedere diferite.
• Relaţia de realizare este o formă de abstractizare, în care un element de
modelare (furnizorul) reprezintă specificaţia, iar celălat element (clientul)
reprezintă implementarea specificaţiei. Se reprezintă sub forma unei linii
punctate cu o săgeată la capătul clasei furnizor.
Copyright © 2015,
Ion prof.dr.
Ion Lungu,
Ancaconf.dr.
Anca lect.dr.
Andreescu, lect.dr. Alexandra Florea
Autori: prof.dr. Lungu, conf.dr. Andreescu, Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Exemplu de diagramă de clase


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de obiecte
 Constă din obiecte şi legăturile dintre acestea.
 Are rolul de a valida diagrama de clase.
 O legătură reprezintă o relaţie între două obiecte.
Diagrama de obiecte Diagrama de clase
Modelează fapte despre anumite entităţi. Modelează reguli pentru tipuri de entităţi.

Reprezintă obiecte reale. Reprezintă abstractizări ale conceptelor.

Leagă între ele obiecte. Asociază entităţi.


 Un obiect este denumit folosind numele acestuia, semnul “:” urmat de
numele clasei căreia îi aparţine: nume obiect : nume clasa .
 Pot exista şi obiecte anonime, denumite doar prin numele clasei.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

NotaŃiile diagramei de clase şi obiecte - comparaŃie


Diagrama de clase Diagrama de obiecte
Clasa are trei compartimente: nume, Obiectul are numai două compatrimente:
atribute şi operaţii. nume şi atribute.
Numele clasei este specificat singur în primul Formatul numelui unui obiect include şi
compartiment. numele clasei, toată expresia fiind subliniată.
Aceste notaţii vor fi întâlnite şi în alte
diagrame care reprezintă obiecte.
Al doilea compartiment descrie proprietăţi Al doilea compartiment defineşte valori
sub forma atributelor. pentru fiecare atribut, pentru testarea
modelului.
Operaţiile apar în descrierea clasei. Operaţiile nu sunt incluse în obiecte,
deoarece ele sunt identice pentru fiecare
obiect al clasei.
Clasele sunt conectate prin asocieri, având Obiectele sunt conectate printr­o legătură,
un nume, multiplicitate, constrângeri şi care poate avea un nume, roluri, dar nu şi
roluri. Clasele sunt o abstractizare a multiplicităţi. Obiectele reprezintă entităţi
obiectelor, deci este necesar să specificăm singulare, toate legăturile sunt unu­la­unu,
câte clase participă într­o asociere. iar multiplicităţile sunt irelevante.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de obiecte în Visual Paradigm


 Se defineşte diagrama de clase în care clasele au specificate atribute.

 Se defineşte un obiect în diagrama de obiecte (Instance Specification).


 Se selectează clasa căreia îi aparţine obiectul: Click dreapta pe obiect ->
Select Classifier-> se bifează şi selectează clasa corespunzătoare
 Opţional, se dă un nume obiectului.
 Se definesc valorile pentru atribute: Click dreapta pe obiect -> Slots,
Define Slots (pentru atributele cărora vrem să le dăm valori) ->Edit
Values-> Add -> Text (se introduce valoarea dorită).
 Se creează legături (Link) între obiecte.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de obiecte în Visual Paradigm - exemplu


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de activitate
 Ajută la reprezentarea vizuală a secvenţelor de acţiuni prin
care se doreşte obţinerea unui rezultat.
 Se pote realiza pentru unul sau mai multe cazuri de utilizare
sau pentru descrierea unor operaţii complexe.
 Nu se construieşte pentru fiecare caz de utilizare şi scenariu,
deoarece nu este necesar, ci numai pentru cele importante.
 Descrie fluxul de lucru dintr­un punct de plecare până într­un
punct de terminare, detaliind căile de decizie care pot apărea
într­o activitate.
 Poate fi folosită pentru a descrie procesare paralelă.
 Este importantă în modelarea proceselor de afaceri.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Activitate/ AcŃiune
 Activitatea ­ un comportament parametrizat reprezentat sub
forma unui flux coordonat de acţiuni.
 Acţiunea – reprezintă un singur pas în cadrul unei activităţi.
 Acţiunea poate fi fizică, realizată de un factor uman sau
electronică.
 Activitate/acţiune, reprezentată printr­un dreptunghi cu
margini rotunjite.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Constrângeri
 Constrângerile pot fi ataşate unei acţiuni, spre exemplu, sub
forma unor pre­ şi post­condiţii.
 Se folosesc cuvintele cheie <<precondition>> şi
<<postcondition>>.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Noduri
 Nod iniţial ­ reprezintă punctul de început al
diagramei.
 Nodul final ­ există două tipuri de noduri finale:
 Nod final al activităţii: reprezintă sfârşitul tuturor
fluxurilor de control dintr­o diagramă.
 Nod final al fluxului: arată că procesul se opreşte în acel
punct. Acesta denotă sfârşitul unui singur flux de
control.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Fluxuri şi obiecte
 Flux de control – este un arc pe diagramă care descrie modul de transfer al
controlului de la o acţiune la alta.
 Flux de obiecte ­ este un flux de­a lungul căruia sunt transferate obiecte sau
date.
 Trebuie să aibă un obiect la cel puţin unul din capete.
 Există şi o notaţie prescurtată în care se pot folosi calificatori (engl. pins)
de intrare şi de ieşire.
 Condiţie tranzitorie ­ un text pe un flux ce defineşte o condiţie care trebuie să
fie adevărată pentru a produce tranziţia către următoarea acţiune.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Noduri decizionale şi de îmbinare


 Ambele se reprezintă sub forma unui romb şi pot fi
denumite.
 Nod decizional (decision):
 nod în care intră un flux şi ies mai multe.
 fluxurile de ieşire trebuie să fie însoţite de condiţii mutual
exclusive.
 Nod de imbinare (merge):
 nod în care intră mai multe fluxuri şi iese unul singur.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Noduri de bifurcaŃie şi joncŃiune


 Ambele se reprezintă printr­o linie neagră îngroşată.
 Nod de bifurcaţie (fork):
 nod în care intră unul singur flux şi ies mai multe.
 denotă începutul unor acţiuni paralele.
 Nod de joncţine (join):
 nod în care intră mai multe fluxuri şi iese doar unul singur.
 toate fluxurile care intră în joncţiune trebuie să ajungă în punctul
de joncţiune înainte ca procesarea să continue.
 denotă sfârşitul unei procesări paralele.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Noduri - exemple

Un nod de joncţiune este diferit de un nod de îmbinare deoarece


sincronizează două fluxuri de intrare şi produce un singur flux de ieşire. Un
un nod de îmbinare transmite mai departe orice flux de control ajunge la el.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

PartiŃii
 Sunt culoare care arată cine sau ce execută acţiunile într­o diagramă de
activitate.
 Pot fi orizontale sau verticale.
 Separarea pe partiţii poate fi făcută în funcţie de unitaţile organizaţionale,
responsabilităţi etc.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Exemplu de diagramă
de activitate
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de stare
 Modelează starea dinamică a unui obiect specific.
 Conform UML, o stare este „o condiţie sau o situaţie din
momentul existenţei unui obiect care satisface în acel
moment anumite condiţii, efectuează anumite activităţi
sau aşteaptă anumite evenimente“.
 Identifică evenimentele care fac tranziţia unui obiect
dintr­o stare în alta.
 Nu toate evenimentele sunt aplicabile în contextul
tuturor stărilor. Pot exista condiţii care să condiţioneze
apariţia unui anumit eveniment.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de stare
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Stări
 Stare: o condiţie sau o situaţie din momentul existenţei unui
obiect care satisface în acel moment anumite condiţii,
efectuează anumite activităţi sau aşteaptă anumite
evenimente. Este reprezentată ca un dreptunghi cu colţuri
rotunjite.
 Stare iniţială şi finală – au aceleaşi notaţii ca şi în diagramele
de activitate. Semnifică începutul şi sfârşitul vieţii unui obiect.
 Stare compusă – este o stare care conţine substrări (stări
imbricate).
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

TranziŃii
 Obiectul tranzitează dintr­o stare în alta când apare un eveniment
şi când sunt îndeplinite anumite condiţii.
 Tranziţia este reprezentată ca o săgeată de la o stare existentă
către o stare de intrare / ţintă.
 Tranziţia poate conţine:
 Declanşator: este cauza unei tranziţii care poate fi un de eveniment, o
schimbare într­o condiţie sau trecerea timpului.
 Condiţie: o condiţie care trebuie să fie adevărată pentru ca
declanşatorul să determine tranziţia.
 Efect: Acţiune care va fi invocată de obiect ca urmare a tranziţiei.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

AcŃiuni
 Cu excepţia stării iniţiale şi a celei finale fiecare stare are un
nume, atributele proprii unei stări, acţiunile şi activităţile
efectuate.
 Acţiunile speciale includ:
 Entry / intrare ­ acţiune efectuată la intrare într­o stare.
 Exit / ieşire ­ acţiune efectuată la ieşirea dintr-o stare.
 Do / acţiune efectuată pe parcursul unei stări;
evenimentele externe pot întrerupe acţiunile Do.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Decizii
 Decizia (Alegerea) – o pseudostare realizează o bifurcaţie
condiţională. Evaluează condiţiile declanşatorilor tranziţiilor
de ieşire pentru a alege o singură tranziţie de ieşire.
Copyright © 2015,
Ion prof.dr.
Ion Lungu,
Ancaconf.dr.
Anca lect.dr.
Andreescu, lect.dr. Alexandra Florea
Autori: prof.dr. Lungu, conf.dr. Andreescu, Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Exemplu de diagramă de stare


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagramele de interacŃiune
 Modelează aspectele dinamice ale sistemului.
 Sunt alcătuite dintr­un set de obiecte şi relaţiile dintre ele,
incluzând şi mesaje pe care obiectele le trimit de la unul la
altul.
 Exista două tipuri de diagrame de interacţiune: diagrama
de secvenţă şi diagrama de comunicare ( în UML 1.4
numită de colaborare).
 Cele două diagrame sunt echivalente din punct de vedere
semantic şi se pot transforma una din alta.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de secvenŃă
 Este o diagramă de interacţiune formată din obiecte,
mesajele care se schimbă între acestea şi dimensiunea
temporală reprezentată progresiv pe verticală.
 Subliniază ordinea mesajelor în funcţie de timp.
 Obiectele sunt plasate în marginea de sus a diagramei,
de­a lungul axei OX, de la stânga la dreapta.
 Ele sunt aranjate în orice ordine care permite simplificarea
diagramei.
 De obicei, obiectele care încep interacţiunea se aşează la
stânga iar obiectele care urmează în partea dreaptă.
 Existenţa obiectelor este reprezentată prin liniile de viaţă
ale acestora.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de secvenŃă - obiecte


 Linia de viaţă a obiectelor: linie verticală care reprezintă existenţa unui
obiect de­a lungul unei perioade de timp. Majoritatea obiectelor care
apar în diagramă există pe toată durata interacţiunii, având linia de viaţă
trasată de la vârful diagramei până la bază. Alte obiecte pot fi create pe
parcursul interacţiunii.
 Activare (Punct de control): un dreptunghi înalt şi subţire care indică
perioada de timp în care obiectul realizează o acţiune. Capătul de sus al
dreptunghiului este aliniat la începutul acţiunii iar capătul de jos la
sfârşitul acţiunii.
 Obiectele pot fi reprezentate folosind stereotipurile actor, limită, entitate
şi control.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de secvenŃă - mesaje


 Mesajele sunt reprezentate sunt forma unor arcuri. Acestea pornesc de la linia de
viaţă a unui obiect şi se opresc la linia de viaţă a altui obiect. Mesajele pot fi de
mai multe tipuri şi pot include şi condiţii, ca în diagramele de stare.
 Un mesaj de tip apel (call) reprezintă o cerere a obiectului care trimite mesajul
către obiectul care primeşte mesajul. Cererea implică faptul că receptorul va
executa una dintre operaţiile sale.
 Emiţătorul aşteaptă ca receptorul să execute operaţia şi să primească un răspuns
de la acesta (return).
 Un obiect poate trimite mesaje şi către sine ­ autoapelare. Un astfel de mesaj
poate semnifica apelul recursiv al unei operaţii sau o metodă care apelează altă
metodă a aceluiaşi obiect.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de secvenŃă - mesaje


 Mesajele de creare (create) şi distrugere (destroy) a unui obiect încep
şi respectiv încheie linia de viaţă a unui obiect. Acestea sunt opţionale
şi se folosesc atunci când se doreşte specificarea explicită a acestor
evenimente.
 Mesajul de distrugere poate genera distrugeri ulterioare ale unor
obiecte pe care acesta le conţine prin compunere. După distrugere, un
obiect nu mai poate fi creat din nou pe acceaşi linie de viaţă.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de secvenŃă – obiecte şi mesaje


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Fragmente combinate
 Diagramele de secvenţă nu sunt folosite pentru a reprezenta
logică procedurală complexă, ci pentru a modela fluxuri de
control simple, secvenţiale.
 Cu toate acestea, există mecanisme care permit adăugarea unui
anumit nivel de logică procedurală în diagrame prin fragmentele
combinate.
 Un fragment combinat reprezintă una sau mai multe secvenţe
de procesare incluse într­un cadru şi executate în anumite
circumstanţe.
 Frecvent utilizate sunt fragmente de tip:
 Alternative (Alt) care modelează construcţiile de tipul if..then..else.
 Repetitive (Loop) care conţin o serie de interacţiuni ce se vor
repeta de mai multe ori.
 Paralele (Par) care modelează procesarea concurentă.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Fragmente combinate - exemplu


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Fragmente combinate - exemplu


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de comunicare
 Diagrama de comunicare (colaborare - nume în UML 1.4)
este o diagramă de interacţiune care subliniază organizarea
structurală a obiectelor care trimit şi primesc mesaje.
 Grafic, o diagramă de colaborare este o colecţie de vârfuri şi
arce.
 Reprezintă aceleaşi informaţii ca şi diagrama de secvenţă, dar
subliniază organizarea obiectelor care participă la
interacţiune.
 Obiectele sunt plasate primele, ca vârfuri ale unui graf, se
trasează legăturile care conectează obiecte, ca arcuri în acest
graf, apoi se adaugă acestor legături mesajele pe care
obiectele le primesc sau le trimit.
 Pentru a indica ordinea, mesajul trebuie prefixat cu un număr
începând de la 1 şi crescând.
Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Diagrama de comunicare – obiecte şi mesaje


Copyright © 2015, prof.dr. Ion Lungu, conf.dr. Anca Andreescu, lect.dr. Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

RelaŃia dintre diagramele de interacŃiune


 Cele două diagrame de interacţiune sunt echivalente şi o
diagramă poate fi convertită în cealaltă fără a se pierde
informaţii.
 Pentru a transforma o diagramă în alta, în Visual Paradigm se
face click dreapta pe suprafaţa unei diagrame şi se selectează
opţiunea Synctonize to Communication/Sequence diagram,
după caz.
 Diagrama de comunicare arată cum sunt legate obiectele în
timp ce diagrama de secvenţă pune în evidenţă şi mesajele
returnate, precum şi ordinea temporală a interacţiunilor.
Copyright © 2015,
Ion prof.dr.
Ion Lungu,
Ancaconf.dr.
Anca lect.dr.
Andreescu, lect.dr. Alexandra Florea
Autori: prof.dr. Lungu, conf.dr. Andreescu, Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Exemplu de
diagramă de secveŃă
Copyright © 2015,
Ion prof.dr.
Ion Lungu,
Ancaconf.dr.
Anca lect.dr.
Andreescu, lect.dr. Alexandra Florea
Autori: prof.dr. Lungu, conf.dr. Andreescu, Alexandra Florea
Toate drepturile asupra acestei prezentări sunt rezervate autorilor.

Exemplu de diagramă de comunicare

S-ar putea să vă placă și