Documente Academic
Documente Profesional
Documente Cultură
Este de mult stiut faptul ca n trecut programatorii dezvoltau programe fara o buna
analiza si o buna proiectare a respectivelor programe. Faza de analiza si proiectare a unui
proiect trebuie sa fie gata nainte de realizarea codului, pentru a obtine o atentie marita
din partea diversilor dezvoltatori. Aceste etape au fost ignorate n trecut, dar n prezent
orice dezvoltator recunoaste importanta acestor faze deoarece s-a dovedit ca de acestea
depinde producerea si refolosirea de software. Pentru analiza si proiectarea programelor
s-au creat limbajele de modelare. Unul din aceste limbaje de modelare este limbajul de
modelare unificat - UML (The Unified Modeling Language).
Diagramelecazurilordeutilizare(prezentare)
Odiagramaacazurilordeutilizareprezintaocolectiedecazurideutilizaresiactorisi
estefolositangeneralpentruaindicasaucaracterizafunctionalitatilesicomportamentul
ntregiiaplicatieisistemuluiinteractionndcuunulsaumaimultiactori.Utilizatoriisi
oricesistemcepoateinteractionacusistemulsuntactori.
Atttimpceactoriireprezintautilizatorii,eiajutaladelimitareasistemuluisioferao
imagineclaraaceeaceseasteaptaasentmplansistem.Cazuriledeutilizaresunt
construitepebazanevoilorpecareleauactorii(utilizatorii).Aceastaasigurafaptulca
sistemulvaproduceceeacesadorit.
Diagramelecazurilordeutilizarecontinelementecepotreprezentaactori,relatiide
asociere,relatiidegeneralizare,pachetesicazurideutilizare.Sepoatecreaodiagramaa
cazurilordeutilizaredenivelnalt,pentruavizualizalimitelesicomportamentul
sistemului.Deasemenea,sepotcreaunasaumaimultediagramepentruadescrieoparte
aaplicatieisistemului.Cazuriledeutilizarepotincludealtecazurideutilizarecaopartea
comportamentuluisau.Odiagramaacazurilordeutilizareindicaunsetdeactoriexterni
sicazuriledeutilizarealesistemuluincareparticiparespectiviiactori.
Cazuri de utilizare
reprezentare grafica
Fiecare aparitie a unui caz de utilizare in diagrama indica un subset de informatii ale
modelului despre cazul de utilizare; toate aceste informatii ale modelului pot vizualizate
in specificatiile cazului de utilizare.
Actori
definitie
Un actor este un stereotip al unei clase. Utilizatorii si orice sistem care poate interactiona
cu sistemul in chestiune sunt actori. Astfel, un actor reprezinta un rol jucat de o persoana
sau o entitate care interactioneaza cu sistemul.
Aceeasi persoana fizica poate juca rolul mai multor actori, asa cum si mai multe persoane
pot juca acelasi rol, si astfel interactiona ca acelasi actor.
reprezentare grafica
Actorii se reprezinta sub forma unor mici personaje avand propriul sau nume ca in figura:
Fiecare actor trebuie sa aiba un nume, iar numele acestuia descrie rolul jucat de catre
actor.
Asocieri
definitie
reprezentare grafica
O asociere poate avea nume si un stereotip care sa identifice tipul sau semnificatia
relatiei.
Relatiile de asociere se pot desena intre cazuri de utilizare si actori. Fiecare aparitie a unei
asocieri in diagrama etaleaza un set de informatii ale modelului despre relatia de asociere
in cauza, aceste informatii fiind cuprinse in sp
Generalizare
O generalizare intre doua cazuri de utilizare indica faptul ca cazul de utilizare poate
impartasi comportamentul definit in unul sau mai multe cazuri de utilizare. Deasemenea,
generalizarea suporta utilizatori si extinde stereotipuri.
reprezentare grafica
Se pot desena relatii de generalizare intre cazuri de utilizare si actori. Aparitia unei
generalizari in cadrul unei diagrame indica un set de informatii ale modelului despre
relatia de generalizare. Aceste informatii reprezinta specificatiile generalizarii.
Cazuri de utilizare
reprezentare grafica
Fiecare aparitie a unui caz de utilizare in diagrama indica un subset de informatii ale
modelului despre cazul de utilizare; toate aceste informatii ale modelului pot vizualizate
in specificatiile cazului de utilizare.
Notele
definitie
ancora notei
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
exemplu1:
Diagramele de colaborare contin elemente reprezentnd obiecte. Se pot crea una sau mai
multe diagrame de colaborare care sa prezinte interactiunile pentru fiecare pachet logic
din model; de asemenea, diagramele de colaborare sunt continute la rndul lor de pachete
logice care cuprind obiectele prezente n diagrame.
Obiecte
definitie
Daca intr-o diagrama de colaborare apar diferite obiecte cu acelasi nume, ele se considera
a reprezenta acelasi obiect; altfel se considera ca fiecare simbol grafic al obiectelor din
diagrama reprezinta obiecte distincte, obiectele ce apar in diagrame diferite sunt distincte,
chiar daca numele lor sunt identice.
reprezentare grafica
Simbolul grafic pentru un obiect este similar cu cel al unei clase cu diferenta ca numele
obiectului este subliniat:
Legaturi
definitie
O legatura trebuie sa existe intre doua obiecte, incluzand utilitatile clasei, doar daca este o
relatie intre clasele care corespund respectivelor obiecte. Existenta unei relatii intre doua
clase simbolizeaza o cale de comunicatie intre instantele claselor: un obiect poate trimite
mesaje spre alt obiect.
reprezentare grafica
Intr-o diagrama de colaborare legaturile se reprezinta printr-o linie intre obiecte sau intre
obiecte si instante de clase. Pot exista si legaturi de la un obiect la el insusi.
Mesaje
definitie
Unitatea de comunicatie intre obiecte se numeste mesaj. Mesajul este suportul unei relatii
de comunicatie care leaga, in mod dinamic, obiectele care au fost separate prin procesul
de descompunere. Ele permit interactiunea flexibila, fiind in acelasi timp agent de cuplaj
si agent de decuplare.
apel de procedura;
eveniment discret;
intrerupere;
datagrama UDP;
cautare dinamica, etc.
reprezentare grafica
In diagramele de secventa mesajele se reprezinta prin sageti plasate intre liniile de viata
ale obiectelor in ordinea lor cronologica.
sincronizarea mesajelor
Notiunea de sincronizare are obiect atunci cand mai multe obiecte sunt active simultan si
este necesara protejarea accesului la obiecte partajat.
simplu,
sincron,
conditional,
intarziat,
asincron.
Notele se comporta ca niste etichete. Ele se pot folosi in orice fel de diagrama. Notele
sunt doar explicatii oferite acolo unde apar in diagrama. Ele nu sunt considerate ca facand
parte din model. Ele pot fi sterse ca orice alta componenta a diagramei.
ancora notei
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
Diagramele de secventa prezinta interactiunile ntre obiecte din punct de vedere temporal,
contextul obiectelor, nefiind reprezentat n mod explicit ca n diagramele de colaborare,
reprezentarea concentrndu-se pe exprimarea interactiunilor.
Obiecte
definitie
reprezentare grafica
Simbolul grafic pentru un obiect este similar cu cel al unei clase cu diferenta ca numele
obiectului este subliniat:
Linii de viata
definitie
Astfel, ordinea cronologica a expedierii mesajelor este data de pozitionarea lor pe aceste
axe (linii de viata).
reprezentare grafica
In diagramele de secventa fiecare obiect este insotit de o linie verticala punctata. Aceste
linii reprezinta de fapt liniile de viata ale obiectului.
Mesaje
definitie
Unitatea de comunicatie intre obiecte se numeste mesaj. Mesajul este suportul unei relatii
de comunicatie care leaga, in mod dinamic, obiectele care au fost separate prin procesul
de descompunere. Ele permit interactiunea flexibila, fiind in acelasi timp agent de cuplaj
si agent de decuplare.
apel de procedura;
eveniment discret;
intrerupere;
datagrama UDP;
cautare dinamica, etc.
reprezentare grafica
In diagramele de secventa mesajele se reprezinta prin sageti plasate intre liniile de viata
ale obiectelor in ordinea lor cronologica.
sincronizarea mesajelor
simplu,
sincron,
conditional,
intarziat,
asincron.
Mesaje
definitie
Unitatea de comunicatie intre obiecte se numeste mesaj. Mesajul este suportul unei relatii
de comunicatie care leaga, in mod dinamic, obiectele care au fost separate prin procesul
de descompunere. Ele permit interactiunea flexibila, fiind in acelasi timp agent de cuplaj
si agent de decuplare.
apel de procedura;
eveniment discret;
intrerupere;
datagrama UDP;
cautare dinamica, etc.
reprezentare grafica
sincronizarea mesajelor
Notiunea de sincronizare are obiect atunci cand mai multe obiecte sunt active simultan si
este necesara protejarea accesului la obiecte partajat.
simplu,
sincron,
conditional,
intarziat,
asincron.
Notele
definitie
Notele se comporta ca niste etichete. Ele se pot folosi in orice fel de diagrama. Notele
sunt doar explicatii oferite acolo unde apar in diagrama. Ele nu sunt considerate ca facand
parte din model. Ele pot fi sterse ca orice alta componenta a diagramei.
ancora notei
Ancora notei conecteaza o nota la un element pe care il simuleaza.Aceste elemete pot
lega o nota de un element sau mai multe elemente ale diagramei respective.
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
diagrama de secventa pentru cazul de utilizare al unui apel telefonic prin centrala:
Diagrame de clase (prezentare)
Diagramele de clase exprima la modul general structura statica a unui sistem, n termeni
de clase si de relatii ntre aceste clase. Asa cum o clasa descrie un ansamblu de obiecte, o
asociere descrie un ansamblu de legaturi: obiectele sunt instante ale claselor, legaturile
sunt instante ale asocierilor.
Diagramele de clasa sunt mult mai relevante dect cele de obiecte. De obicei, se
construiesc diagramele de clase si ocazional diagrame de obiecte pentru a ilustra structuri
de date complicate ori transmiteri de mesaje.
Diagramele de clase contin simboluri grafice pentru clase. Se pot crea una sau mai multe
clase pentru a reprezenta clasele din nivelul de vrf al modelului curent. De asemenea, se
pot crea una sau mai multe diagrame de clase pentru a reprezenta fiecare pachet din
model, clase care sunt , ele nsele continute n pachetul ce cuprinde clasele de reprezentat.
Daca se modifica proprietatile sau relatiile unei clase prin editarea specificatiilor sale,
diagramele de clase ce contin aceste clase se actualizeaza conform acestor modificari.
Daca modificarile au loc n cadrul unei diagrame de clase, se vor actualiza specificatiile
clasei si celelalte diagrame de clase care contin aceasta clasa.
Clase
definitie
O clasa contine structura si comportamentul comune unui set de obiecte. O clasa este o
abstractie a entitatilor lumii reale. Cand acestea exista in lumea reala, ele sunt instante ale
clasei, si atribuite obiectelor. Pentru fiecare clasa care are un comportament temporal
semnificativ, putem creea a diagrama de stare sa descrie acest comportament.
reprezentarea grafica
Compartimentele in care gasim atributele si operatiile pot fi ascunse (in cazul in care
continutul acestora nu este semnificativ pentru contectul diagramei) pentru a reduce
detaliile. Ascunderea compartimentelor nu face nici o declaratie despre absenta
atributelor sau operatiilor, dar desenand compartimentele goale se exprima explicit ca nu
exista elemente in acele parti (atribute si operatii).
numele claselor
Fiecare clasa trebuie sa aiba un nume. In diagramele de clase, toate simbolurile de clase
cu acelasi nume se considera a reprezenta aceeasi clasa, indiferent de diagrama de clase
in care apare.
O clasa poate contine si un stereotip cu propietatile sale. UML defineste urmatoarele
stereotipuri de clase:
Asocierile
Majoritatea asocierilor sunt binare, conectand 2 clase. Asocierile sunt reprezentate prin
linii care unesc clasele asociate. Asocierile pot fi reprezentate prin trasee rectilinii sau
oblice, in functie de preferintele utilizatorului. Experienta recomanda utilizarea unui
singur stil de reprezentare a traseelor pentru simplificarea citirii diagramelor unui proiect.
asocieri multiple
Majoritatea asocierilor sunt binare, adica sunt relatii intre doua clase. Totusi pot exista
asocieri multiple reprezentate prin intermediul unui romb catre care vin trasee de la
diferitele componente ale asocierii.
Ca si la asocierile binare, extremitatile unei asocieri multiple sunt denumite roluri si pot
purta un nume. Dificultatea de a gasi un nume diferit fiecarui rol al unei asocieri multiple
este adesea semnul unei asocieri de multiplicitate inferioara.
Numele asocierilor
Asocierile pot fi numite, numele asocierii fiind figurat cu litere italice ( inclinate ) la
mijlocul liniei care simbolizeaza asocierea.
activa ;
pasiva.
In ambele cazuri, sensul citirii numelui poate fi precizat prin intermediul unui mic
triunghi cu un varf de unghi indreptat catre clasa indicata prin fauna verbala si plasat in
apropierea asocierii.
Pentru simplitate triunghiul poate fi inlocuit cu semnele < sau > disponibile tuturor font-
urilor.
Asocierile intre clase exprima in primul rand structura statica, fapt pentru care numele
sub forma verbala, care evoca mai degraba comportamentul, se gasesc un pic in afara
spiritului general al diagramelor de clase. De aceea, numirea extremitatilor relatiilor
permite clasificarea diagramelor ca si numirea asocierilor, dar intr-o forma mai pasiva,
mai potrivita orientarii statice a diagramelor de clase.
Numele rolurilor
O extremitate a unei asocieri poarta numele de rol, astfel incat asocierile binare cu 2
roluri, la fiecare extremitate cate unul. Rolul descrie modul in care o clasa vede o alta
clasa dincolo de o asociere. Rolul este numit prin intermediul unei forme nominale,
vizual deosebindu-se de asociere prin faptul ca este figurat cu litere obisnuite si este
plasat la una din extremitatile unei asocieri.
Atunci cand doua clase sunt legate printr-o singura asociere, numele claselor este adesea
suficient pentru a caracteriza rolul, urmele rolurilor avand eficienta atunci cand mai multe
asocieri leaga 2 clase, fiecare exprimand un concept distinct.
Prezenta unui numar mare de asocieri intre 2 clase poate fi suspecta. Fiecare asociere
adauga un cuplaj intre cele 2 clase, iar cuplajul puternic indica o descompunere gresita.
Pe de alta parte, acesta poate fi sensul figurarii de mai multe ori a aceleiasi asocieri,
numind fiecare asociere cu numele mesajelor care circula intre obiectele instanta ale
claselor asociate.
Agregarea
definitie
Relatia de agregare se foloseste pentru a indica o relatie de tip parte - intreg intre doua
clase. Astfel, o agregare este o asociere asimetrica in care una dintre extremitati joaca un
rol predominant (clasa agregat) in raport cu celelata extremitate (clasa
componenta).Oricare ar fi multiplicitatea, agregarea nu priveste decat un singur rol al
unei asocieri.
reprezentare grafica
O agregare se reprezinta printr-o linie intre doua clase avand un mic romb gol la capatul
in care se afla clasa agregat:
compunere
Atributele constituie un caz particular de agregare realizata prin valoare: ele sunt fizic
continute de agregat. Notatia prin compunere e utilizata prin diagrame de clase in care un
atribut participa la alte relatii in cadrul modelului.
Clasele obtinute prin compunere sunt denumite si clase compozite . Ele ofera o abstractie
a componentelor lor .
Fiecare rol al unei asocieri detine o indicatie asupra multiplicitatii care arata cate dintre
obiectele clasei plasate la extremitatea respectiva, a asocierii, pot fi legate de un obiect al
clasei aflate la celalalt rol al asocierii. Multiplicitatea este o informatie detinuta de rol sub
forma unei expresii naturale limitate.
Determinarea valorilor optime ale multiplicitatii este foarte importanta pentru gasirea
echilibrului intre:
Pentru analiza este importanta doar valoarea multiplicitatii, pe cand proiectarea trebuie sa
selecteze structurile de date ( stive, cozi, fisiere, tablouri ) pentru implementarea
multimilor care corespund valorilor multiplicitatii de tipul 1..*, 0..* sau *. Supraestimarea
valorilor multiplicitatii conduce la cresterea cerintelor de stocare si a timpului de cautare.
Asocierile descriu reteaua de relatii structurale care exista intre clase si care dau nastere
legaturilor intre obiecte, instante ale acestor clase. Legaturile pot fi vazute ca niste canale
de navigatie intre obiecte. Aceste canale permit deplasarea in modele si realizarea
formelor de colaborare care corespund diferitelor scenarii. Implicit , asocierile sunt
navigabile in doua directi . In anumite cazuri, doar o directie de navigatie este utila, ceea
ce reprezinta printr-o sageata orientata catre rolul care este posibila. Absenta sagetii
inseamna ca asocierea este navigabila in ambele sensuri . Mai jos, obiectele instantei ale
clasei A permit deplasarea catre obiectele instantei ale clasei B, dar obiectele instante ale
clasei B nu permit deplasarea catre obiectele instantei ale clasei A .
O asociere navigabila doar intr-un singur sens poate fi vazuta ca o semiasociere, distinctie
care apare in special in faza de proiectare, dar care poate fi sesizata si in faza de analiza
Structura si comportament
Atribute si operatii
Totusi, dat fiind ca lungimea specificatiei poate fi mare, argumentele operatiilor pot fi
suprimate n forma grafica.
public - element vizibil tuturor clientilor clasei (interfata pura) (simbol +);
protected - element vizibil subclaselor clasei (simbol #);
private - element vizibil n interiorul clasei (implementare pura) (simbol -).
Informatia privind vizibilitatea, chiar daca este definita n model, poate sa nu fie
ntotdeauna figurata n mod explicit. Implicit, nivelul de vizibilitate este simbolizat prin
caracterele: +,#,- .
Anumite atribute si operatii pot fi vizibile global, n toate expresiile lexicale ale clasei.
Aceste elemente denumite variabile si operatiile de clasa, sunt reprezentate ca si obiectele
prin sublinierea numelor. Notatia se justifica prin faptul ca o variabila de clasa apare ca
un obiect partajat de instantele clasei. Prin extensie, operatiile de clasa sunt de asemenea
subliniate.
reprezentare grafica
Amplasarea atributelor si
Reprezentarea atributelor si operatiilor din
operatiilor in reprezentarea unei
punct de vedere al vizibilitatii acestora
clase
Generalizarea
definitie
In cazul claselor, relatia de generalizare exprima faptul ca elementele unei clase sunt
descrise de asemenea si de alta clasa (de fapt prin titlul unei alte clase). Relatia de
generalizare specifica este un sau este un tip de. O pisica este un animal, ceea ce este o
generalizare. O pisica are doua urechi, ceea ce nu e generalizare, ci compunere .
reprezentare grafica
Relatia de generalizare se reprezinta prin intermediul unei sageti care indica (atinge) clasa
mai generala pornind de la clasa mai specializata. Varful sagetii este un triunghi gol, ceea
ce permite deosebirea fata de triunghiul deschis (unghiul) caracteristic navigarii
unidirectionale a asocierilor.
In analiza, este mai bine sa se vorbeasca despre generalizare sau despre clasificare, si sa
se trateze mai tarziu, in faza de proiectare, modalitatea de implementare a generalizarii.
mostenire multipla
Clasele pot avea mai multe superclase, in acest caz generalizarea purtand numele de
mostenire multipla, si mai multe sageti pleaca de la o subclasa catre diferite superclase.
Generalizarea multipla consta din regruparea mai multor clase intr-una singura.
Superclasele nu au in mod obligatoriu stramosi comuni (ascendenti comuni).
O clasa poate fi specializata in functie de mai multe criterii simultan. Fiecare criteriu al
generalizarii este indicat in diagrama prin asocierea unui simbol al relatiei de
generalizare, atunci cand sagetile sunt agregate simbolul aparand o singura data
Notele
definitie
Notele se comporta ca niste etichete. Ele se pot folosi in orice fel de diagrama. Notele
sunt doar explicatii oferite acolo unde apar in diagrama. Ele nu sunt considerate ca facand
parte din model. Ele pot fi sterse ca orice alta componenta a diagramei.
ancora notei
Ancora notei conecteaza o nota la un element pe care il simuleaza.Aceste elemete pot
lega o nota de un element sau mai multe elemente ale diagramei respective.
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
Diagrame de clase.Exemplu
diagrame de clase pentru retea in cadrul MFC 4.21 (Microsoft Foundation Class) din
MSVC++ 5 (Microsoft Visual C):
Diagrame de stare (prezentare)
Diagramele de stari reprezinta vizual automatele cu numar finit de stari, din punctul de
vedere al starilor si tranzitiilor.
O diagrama de stare este utilizata pentru a reprezenta starile unei clase date, evenimentele
ce cauzeaza tranzitiile de la o stare la alta, si actiunile care rezulta din schimbarile
starilor.
Fiecare diagrama este asociata unei clase sau unui nivel mai nalt de diagrama de .stare O
diagrama de stare este un graf bazat pe stari conectate prin tranzitii. O diagrama de stare
descrie o istorie a vietii obiectelor sau clasei date.
O diagrama de stare prezinta o singura stare initiala, una sau mai multe stari, una sau mai
multe stari finale si tranzitiile ntre stari. Fiecare clasa din modelul curent ce are un
comportament semnificativ n ceea ce priveste evenimentele ordonate, poate contine o
singura diagrama de stare pentru a descrie acest comportament.
O specificatie de stare poate indica si modifica propritatile unei stari. Informatiile privind
specificatiile starii sunt prezentate textual si n plus, pot aparea n desenul respectivei stari
n reprezentarea diagramei de stare. Daca modificam n cadrul specificatiilor, proprietatile
starii, atunci diagramele de stare se vor actualiza reflectnd aceste schimbari.
Stari
definitie
numele starilor
Numele unei stari trebuie sa fie unic in clasa pe care o descrie, sau daca este imbricata
unei stari, in interiorul acesteia.
actiuni
Actiunile dintr-o stare pot exista la unul din cele patru momente:
simple: sunt texte simple. Textul reprezinta tot ce dorim sa se intample cand se
produce un eveniment.
care trimit evenimente: sunt actiuni care declanseaza alt eveniment.
reprezentare grafica
Stare initiala
definitie
O stare initiala este o stare speciala ne indica in mod explicit initializarea masinii cu stari.
Starea iniala se conecteaza primei stari normale printr-o tranzitie neetichetata. Intr-o
diagrama de stare putem avea exact o stare initala. Cand folosim stari imbricate, trebuie
sa definim cate o stare initiala in fiecare context. In general, doar o tranzitie poate pleca
din starea initiala. Totusi, tranzitiile multiple pot fi atasate starii initiale daca macar una
dintre ele este etichetata cu o conditie. Nu se admit tranzitii care nu vin dintr-o stare.
Sarile initiale se pot eticheta daca se doreste. Specificatiile stariilor sunt asociate fiecarei
stari initiale.
reprezentare grafica
O stare initiala se reprezinta in diagrama de stare printr-un mic cerc plin.
Stare finala
definitie
O stare finala reprezinta stare de final (terminala) a unui sistem. Aceasta se foloseste in
diagrama de stare cand vrem sa aratam explicit finalul masinii cu stari. Tranzitiile pot
doar sa existe in starea finala; odata ce masina cu stari se sfarseste, ea dispare. In mod
normal, ne putem asigura ca masina cu stari asociata unei clase nu va mai exista atunci
cand obiectul referit in aceasta este distrus si, de aceea, niciodata nu ajunge intr-o stare
finala. Totusi, putem folosi o stare finala pentru a arata explicit finalul, daca este necesar.
Intr-un context pot exista un numar nedefinit de stari finale.
reprezentare grafica
O stare finala se reprezinta grafic printr-un cerc plin concentric altui cerc gol:
In diagrama de stare, pentru a construi o stare ca stare finala ii atasam printr-o sageata
simbolul de stare finala.
Putem eticheta starile finale daca dorim; specicatiile starii sunt asociate fiecarei stari
finale.
Stari imbricate
definitie
Diagramele de stari pot deveni destul de dificil de citit atunci cand, datorita exploziei
combinatorii, numarul de conexiuni intre stari devine ridicat.
Solutia pentru a rezolva aceatsa situatie consta imbricarea starilor, utilizand principiul
generalizarii starilor. Astfel, vom crea stari mai generale denumite superstari. Starile mai
specifice (imbricate) poarta numele de substari, iar numarul lor nu este limitat.Substarile
mostenesc caracteristicile superstarilor lor, in particular variabilele de stare si tranzitiile
externe.
Se poate efectua si operatia inversa de a descompune in substari, aceasta munindu-se
descompunere disjunctiva (de tip sau - exclusiv). Aici tranzitiile pot fi mostenite cu
exceptia cazului in care descompunerea in substari are ca scop definirea unei stari
particulare pentru tratarea unei tranzitii interne.
reprezentare grafica
Tranzitii
definitie
O tranzitie intre stari reprezinta schimbarea unei stari cauzata de un eveniment. Intr-o
diagrama de stari, tranzitiile sunt folosite pentru a lega doua stari sau indica o tranzitie a
unei stari in ea insasi. Poti introduce in diagrama una sau mai multe tranzitii dintr-o stare
atat timp cat fiecare tranzitie este unica. Tranzitiile dintr-o stare nu pot avea acelasi
eveniment, doar in cazul cand exista conditii pentru acel eveniment.
reprezentare grafica
numele tranzitiilor
Trebuie etichetata fiecare tranzitie cu un nume, care sa reprezinte numele a cel putin un
eveniment care cauzeaza tranzitia intre starile respective. Nu este obligatoriu sa se
foloseasca nume unice pentru etichetarea tranzitiilor, deoarece acelasi eveniment poate
declansa tranzitia intre mai multe stari diferite. O eticheta a unui eveniment este un nume
simbolic.
Tranzitiile sunt etichetate cu urmatoarea sintaxa: event (arguments)
[condition] / action ^ target.sendEvent (arguments)
Notele
definitie
Notele se comporta ca niste etichete. Ele se pot folosi in orice fel de diagrama. Notele
sunt doar explicatii oferite acolo unde apar in diagrama. Ele nu sunt considerate ca facand
parte din model. Ele pot fi sterse ca orice alta componenta a diagramei.
ancora notei
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
Diagrame de stari
exemplu1.
Diagrama de stari pentru citire / verificare parola in cadrul unui sistem de control al
accseului:
Diagrame de componente
subsisteme;
componente:
o programe principale,
o module,
o subprograme,
o procese;
dependente.
Se pot creea una sau mai multe diagrame de componente pentru a descrie subsistemele si
componentele la nivelul de top al modelului curent; unele diagrame de componente sunt
continute chiar ele in nivelul de top al modelului. De asemenea, se pot creea diagrame de
componente pentru a arata subsistemele si componentele continute in fiecare subsistem al
modelului curent; unele diagrame de componente pot fi chiar ele continute de
subsistemele care cuprind subsistemele si componentele care le descriu.
Specificatiile subsistemelor si cele ale componentelor permit prezentarea si modificarea
proprietatilor acestora. Informatia in aceste specificatii este prezentata textual, o parte din
aceasta informatie putand aparea in simboluirle grafice ale subsistemelor sau
componentelor.
Module
definitie
Modulelereprezintatoatetipuriledeelementefizicecareintrainconstructiaaplicatiilor
informatice.Elesuntconstituitedintrunmodulspecificatie(interfata)siunmodul
implementare;modululimplementareesteadeseareferitcauncorp.
Oclasaestedeclaratainpachet.
numelemodulelor
Fiecaremodultrebuiesaaibaunnume.Deobicei,numelemodeluluiesteunnume
simpludefisier.modulelecuacelasinumesideacelasitipreprezintaaceeasicomponenta
amodelului,indiferentdediagramadecomponenteincareapare.Deexemplu,doua
modulespecificatiecuaceasinumereprezintadefaptacelasimodul,intimpceunmodul
corpavandacelasinumecuceledouaspecificatiereprezintaocomponentaamodelului
separata.
reprezentareamodulelor
module generice:
definitie
reprezentare grafica
Relatiile de dependenta sunt reprezentate prin intermediul unei sageti punctate care de la
utilizator catre furnizor:
In diagrama de componente, relatiile de dependenta reprezinta in general dependente de
compilare, ordinea compilarii fiind data de graful relatiilor de dependenta.
Procese
definitie
Procesele corespund componentelor care detin propiul lor flux de control. Daca procesele
sunt compilate diferit decat modulele obisnuite, se poate aloca definirea unei clase, unui
proces.
numele proceselor
Fiecare proces trebui sa aiba un nume. In general, numele unui proces este un simplu
nume de fisier. Procesele cu acelasi nume si acelasi tip reprezinta aceeasi componenta din
model indiferent de diagrama de componente in care apare. De exemplu, doua procese
specificatie cu acelasi nume reprezinta acelasi proces specificatie, in schimb ce un proces
corp avand de asemenea acelasi nume reprezinta o componenta separata din model.
reprezentare grafica
procese specificatie:
procese corp:
Programe principale
definitie
Fiecare program principal trebuie sa aiba un nume unic in model. De obicei, numele
programului principal este un nume simplu de fisier. Programele cu acelasi nume
reprezinta acelasi program principal, indiferent de diagrama de componente in care apare.
reprezentare grafica
Subprograme
numele subprogramelor
reprezentare grafica
Exista doua reprezentari grafice: una pentru specificatia subprogramelor si alta pentru
implementarea lor.
subrograme specificatie:
subprograme corp:
subprograme generice:
Subsisteme
definitie
numele subsistemelor
Orice subsistem trebuie sa aiba un nume unic in model. De obicei, numele subsistemului
este numele unui fisier sistem. Subsistemele cu acelasi nume reprezinta acelasi subsistem,
indiferent de diagrama de componente in care apare
reprezentare grafica
Notele
definitie
Notele se comporta ca niste etichete. Ele se pot folosi in orice fel de diagrama. Notele
sunt doar explicatii oferite acolo unde apar in diagrama. Ele nu sunt considerate ca facand
parte din model. Ele pot fi sterse ca orice alta componenta a diagramei.
ancora notei
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
Diagrame de constructie
Daca se modifica proprietatile unui nod sau ale unei conexiuni in cadrul specificatiei,
diagrama de constructie se actualizeaza reflectand aceste modificari. Daca modificarile se
realizeaza in cadrul diagramei, actualizarea se face in cadrul specificatiilor
componentelor.
Noduri
Dispozitive
Un dispozitiv este o componenta hardware care, in sistemul din care face parte, nu are
putere de calcul. Fiecare dispozitiv trebuie sa aiba un nume; acesta poate fi generic cum
ar de exemplu "modem" sau "terminal"
reprezentare grafica
Procesor
reprezentare grafica
Conexiuni
definitie
O conexiune reprezinta un tip de hardware care realizeaza cuplarea intre doua entitati. O
entitate este de obiecei un nod (procesor sau un dispozitiv). Cuplarea hardware-ului se
poate face direct, cum ar fi un cablu, sau indirect, ca de exemplu comunicarea prin
satelit .
Conexiunile sunt de obicei bidirectionale. Optional ele pot fi etichetate cu un nume.
reprezentare grafica
Notele
definitie
Notele se comporta ca niste etichete. Ele se pot folosi in orice fel de diagrama. Notele
sunt doar explicatii oferite acolo unde apar in diagrama. Ele nu sunt considerate ca facand
parte din model. Ele pot fi sterse ca orice alta componenta a diagramei.
ancora notei
O nota poate sa nu fie conectata, caz in care aceasta se refera la intreaga diagrama.
reprezentare grafica
Forma grafica a unei note este un dreptungi care are un colt indoit:
In diagrama daca nota da explicatii asupra unor anumite elemente, atunci folosim si
ancore ale notei care se reprezinta printr-o linie punctata ce face legatura intre element si
nota:
Diagrame de constructie
Diagrame de activitati
reprezentarea activitatilor
O diagrama de activitati reprezinta starea de executie a unui mecanism, sub forma unei
derulari de etape regrupate secvential in ramificatii paralele de fire de executie (fluxuri de
control). O diagrama de starii poate reprezenta o astfel de derulare de etape, dar data fiind
natura procedurala a implementarii operatiilor, n care cea mai mare parte a
evenimentelor corespunde pur si simplu sfrsitului activitatii precedente, nu este necesara
separarea sistematica a starilor, activitatilor si evenimentelor. Este atunci interesata
disponibilitatea unei reprezentari simplificate pentru vizualizarea directa a activitatilor. n
acest context, o activitate apare ca un stereotip de stare. O activitate este reprezentata
printr-un dreptunghi rotunjit, ca si starile, dar sub forma de semicerc n lateral.
tranzitii
reprezentarea sincronizarilor
culoare de activitati
Diagramele de activitati pot fi decupate n culoare de activitati, asa cum o piscina este
decupata n culoare de natatie, pentru a arata diferitele responsabilitati n cadrul unui
mecanism sau a unei organizatii. Fiecare responsabilitate este repartizata uneia sau mai
multor obiecte si fiecare activitate este alocata unui culoar dat. Pozitia relativa a
culoarelor nu are nici o semnificatie, tranzitiile fiind libere sa tranverseze culoarele la
care nu se refera.
Diagrame de activitati
reprezentarea activitatilor
O diagrama de activitati reprezinta starea de executie a unui mecanism, sub forma unei
derulari de etape regrupate secvential in ramificatii paralele de fire de executie (fluxuri de
control). O diagrama de starii poate reprezenta o astfel de derulare de etape, dar data fiind
natura procedurala a implementarii operatiilor, n care cea mai mare parte a
evenimentelor corespunde pur si simplu sfrsitului activitatii precedente, nu este necesara
separarea sistematica a starilor, activitatilor si evenimentelor. Este atunci interesata
disponibilitatea unei reprezentari simplificate pentru vizualizarea directa a activitatilor. n
acest context, o activitate apare ca un stereotip de stare. O activitate este reprezentata
printr-un dreptunghi rotunjit, ca si starile, dar sub forma de semicerc n lateral.
tranzitii
reprezentarea sincronizarilor
culoare de activitati
Diagramele de activitati pot fi decupate n culoare de activitati, asa cum o piscina este
decupata n culoare de natatie, pentru a arata diferitele responsabilitati n cadrul unui
mecanism sau a unei organizatii. Fiecare responsabilitate este repartizata uneia sau mai
multor obiecte si fiecare activitate este alocata unui culoar dat. Pozitia relativa a
culoarelor nu are nici o semnificatie, tranzitiile fiind libere sa tranverseze culoarele la
care nu se refera.
Diagrame de obiecte
reprezentarea obiectelor
Fiecare obiect este reprezentat printr-un dreptunghi care contine fie numele obiectului, fie
numele si clasa obiectului (separate prin doua puncte ":"), fie doar clasa obiectului (caz n
care obiectul este denumit anonim).
Numele singur corespunde unei modelari incomplete n care clasa obiectului nu a fost
nca decisa (precizata). Clasa singura evita introducerea de nume inutile n diagrame,
permitnd exprimarea mecanismelor generale, valabile pentru mai multe obiecte.
reprezentarea legaturilor
Obiectele sunt legate prin legaturi care sunt instante ale relatiilor ntre clasele obiectelor
considerate. Reprezentarea concreta a unei structuri prin obiecte este adesea mai
sugestiva dect cea abstracta prin clase, n special n cazul structurilor recursive.
Legaturile instante ale asocierilor reflexive pot lega un obiect de el nsusi, caz n care
legatura este reprezentata printr-o bucla atasata unui singur obiect.
Majoritatea legaturilor sunt binare, dar exista si anumite legaturi multiple, de exemplu
cele care corespund relatiilor ternare.
Obiectele compuse din subobiecte pot fi reprezentate prin intermediul unui obiect
compozit, pentru reducerea complexitatii diagramelor. Obiectele compozite sunt figurate
ca si obiectele clasice, cu diferenta ca atributele sunt nlocuite de obiecte, fie sub forma
textuala subliniata, fie sub forma grafica.
Obiectele compozite sunt instante ale claselor compozite, adica a claselor construite
pornind de la alte clase prin cea mai puternica forma de agregare.