Sunteți pe pagina 1din 7

Analiza orientat obiect a aplicaiilor utiliznd UML

Analiza unei aplicaii implic realizarea mai multor categorii de modele, dintre care cele mai importante sunt: 1. Modelul de utilizare. realizeaz modelarea problemelor i a soluiilor acestora n maniera n care le percepe utilizatorul final al aplicaiei. Diagram asociat: diagram de cazuri de utilizare Modelul structural: se realizeaz pe baza analizei statice a problemei i descrie proprietile statice ale entitilor care compun domeniul problemei. Diagrame asociate: diagram de module, diagram de clase. Modelul comportamental: privete descrierea funcionalitiilor i a succesiunii n timp a aciunilor realizate de entitile domeniului problemei. Diagrame asociate: diagrama (harta) de stri, diagrama de colaborare, diagrama de interaciune

2.

3.

1.1. Modelul de utilizare


Diagramele de cazuri utilizare descriu funcionalitatea unui sistem. Aceste diagrame conin urmtoarele tipuri de elemente: Actori: sunt reprezentate grafic prin intermediul unui omule i reprezint utilizatorii uni sistem (utilizatori umani sau alte sisteme) Cazuri de utilizare: sunt prezentate grafic prin intermediul unor elipse etichetate, i reprezint funcionaliti sau servicii furnizate utilizatorilor de ctre un sistem.

Figura 1 prezint un ef de proiect care comunic cu cazul de utilizare Gestioneaz proiecte (sau cu alte cuvinte care utilizeaz funcionalitatea sistemului de a gestiona proiecte). Linia care conecteaz actorul i cazul de utilizare indic faptul c actorul particip la funcionalitatea furnizat de ctre cazul de utilizare.

Figura 1. Figura 2 ilustreaz detalierea cazului de utilizare Gestioneaz proiecte

Figura 2.

1.1. Modelul structural


Modelul structural descrie structura sistemului (prin diagrame de module) i a obiectelor care fac parte dintr-un sistem: identitatea lor, relaiile cu celelalte obiecte, atributele i operaiile lor (numit i model obiect) prin intermediul diagramelor de clase).

Prezentare general a modelului obiect


Cteva dintre conceptele importante folosite n construirea modelului obiect sunt: obiect, clas, legtur, asociere, agregare i generalizare. Scopul modelrii obiect este de a descrie obiecte. Un obiect se definete ca fiind un concept, abstracie sau lucru cu neles i limite bine definite pentru problema n lucru. Descompunerea unei probleme n obiecte nu este unic i ea depinde de natura problemei. O clas descrie un grup de obiecte cu proprieti similare ( atribute ), comportament comun ( operaii ) i relaii similare cu celelalte obiecte. Gruparea obiectelor n clase realizeaz o abstractizare a problemei. Abstractizarea permite generalizarea anumitor cazuri specifice la o mulime de cazuri similare. Un atribut este o informaie inut de obiectele dintr-o clas. Fiecare atribut are o anumit valoare pentru fiecare instan. Fiecare nume de atribut este unic n cadrul unei clase, dar nu este neaprat unic de-a lungul tuturor claselor. O operaie este o funcie sau o transformare care poate fi aplicat unor sau de ctre obiectele unei clase. Fiecare operaie are ca argument implicit obiectul int. Aceeai operaie poate fi aplicat n clase diferite i de aceea poate avea forme diferite n clase diferite. O metod este implementarea unei operaii ntr-o clas. O legtur este o conexiune fizic sau conceptual ntre dou sau mai multe instane. O asociere descrie un grup de legturi cu semantic i structur comun.

Asocierile sunt adesea implementate n limbajele de programare ca pointeri de la un obiect la altul. Asocierile sunt importante deoarece pot modela foarte bine informaiile care nu sunt subordonate unei singure clase dar depind de dou sau mai multe clase. O noiune care apare legat de asocieri este multiplicitatea care specific faptul c zero, una sau mai multe instane ale unei clase pot avea legturi cu o singur instan a clasei asociate. Motenirea este o abstractizare puternic pentru factorizarea similaritilor ntre clase. Generalizarea este o relaie ntre o clas i una sau mai multe versiuni rafinate ale ei. Clasa care este rafinat se numete superclas, iar versiunile rafinate ale ei subclase. Atributele i operaiile comune unui grup de subclase sunt ataate superclasei i sunt partajate de fiecare subclas; spunem c subclasele motenesc trsturile superclasei. Generalizarea este util att la modelare ct i la implementare. Ea faciliteaz modelarea prin structurarea claselor i capturarea succint a ceea ce este similar i aceea ce este diferit ntre clase. Agregarea este o form puternic a asocierii, n care un obiect agregat este construit din componente, care sunt pri ale agregatului. Un agregat poate avea mai multe pri; fiecare relaie parte-ntreg este tratat ca agregare separat. Prile pot s apar n mai multe agregate. Agregarea este inerent tranzitiv: un agregat are pri care, la rndul lor, pot avea pri etc.. Agregarea nu este un concept individual ci o form special a asocierii. Dac dou obiecte sunt strns legate printr-o relaie parte-ntreg atunci avem o agregare. n schimb, dac dou obiecte sunt considerate independente, chiar dac ntre ele poate exista uneori o relaie, atunci avem o asociere. Diagrama folosit n modelarea obiect se numete diagram de clase i ea ofer o notaie grafic pentru reprezentarea claselor i relaiilor dintre ele. Diagramele de clase descriu cazuri generale n modelarea sistemului. Clasele sunt reprezentate de dreptunghiuri mprite n trei compartimente i care conin numele clasei (n compartimentul superior), lista de atribute ale clasei (opional) i lista de operaii (opional) cu argumentele lor i tipul returnat. Cele trei compartimente vor fi separate ntre ele prin cte o linie orizontal. Valorile iniiale ale atributelor pot fi specificate astfel: nume:tip=expresie.

Figura 1. Exemplu de clas Toate relaiile din cadrul diagramei de clase sunt reprezentate grafic printr-o succesiune de segmente orizontale sau verticale care leag o clas de alta. Asocierea poate avea sau nu un nume care se va afla tiprit n vecintatea sa i va conine o sgeat care precizeaz modul de citire al acestuia. O asociere poate avea nume diferite pentru fiecare direcie. Fiecare capt al asocierii este un rol i

fiecare rol poate avea un nume ( nume de rol ) care arat cum este vzut clasa asociat lui de alta. Fiecare rol indic multiplicitatea clasei sale ( cte instane ale clasei pot fi asociate cu o instan a altei clase ). Multiplicitatea poate fi 1 ( nu se marcheaz ), 0-1 ( marcat printr-un cerc alb ) 0 sau mai multe ( marcat printr-un cerc negru ), sau alte intervale de valori ntregi care se indic prin expresii de tipul 1+ ( mai mult de o instan ), 3 ( exact trei instane ) sau 2-4 ( ntre 2 i 4 instane inclusiv ).

Figura 2. Relaii de asociere Este posibil asocierea ntre o clas i ea nsi sau mai multe asocieri la aceeai pereche de clase. Dac multiplicitatea este mai mare ca 1 atunci lng rol poate apare adnotarea {ordered} care indic faptul c elementele au o ordine explicit; n caz contrar elementele nu au o ordine predefinit. Agregarea este o form special de asociere cu nelesul de relaie partentreg. Ea se indic prin plasarea unui mic romb la captul corespunztor clasei care semnific ntreg. Multiplicitatea unei agregri precum i calificarea se reprezint analog ca la asocieri.

Figura 3. Relaia de agregare Generalizarea se reprezint grafic sub forma unui triunghi echilateral cu o linie ( frnt ) de la un vrf al acestuia ( vrf care trebuie s fie ndreptat spare supeclas ) la superclas i o linie frnt de la baza triunghiului opus vrfului la fiecare subclas. Generalizare este o relaie n-ar. Din punct de vedere grafic simbolul de generalizare ( triunghiul ) poate fi considerat ca un nod al diagramei. Deci n reprezentarea unei relaii de generalizare sunt implicate un nod (triunghiul ) i dou arce (unul care unete o clas de vrful triunghiului, i altul care unete o clas de baza triunghiului ).

n general subclasele sunt disjuncte, ceea ce este reprezentat prin culoarea alb a triunghiului; exist ns situaii cnd acestea nu respect acest proprietate, fapt care se reprezint printr-un triunghi negru.

Figura 4. Relaia de generalizare

1.3. Modelul de stari


n UML hrile de stri sunt utilizate n descrierea comportamentului obiectelor aparinnd unui clase. O stare (concret) este caracterizat de valorile proprietilor unui obiect i de mulimea mesajelor care pot fi acceptate de ctre acest obiect la un moment dat. O stare conine descrierea unui invariant de stare (condiie logic adevrat pentru toate obiectele care se afl n starea respectiv), i a trei proceduri speciale: entry, exit i do. Aceste proceduri descriu secvenele de aciuni care vor fi executate n momentul n care un obiect intr (entry), prsete (exit) sau se afl (do) n starea respectiv. O stare se reprezint grafic prin intermediul unui dreptunghi cu colurile rotunjite, afind n partea superioar un nume de stare. n partea inferioar a dreptunghiului opional poate exista un compartiment care conine expresiile ce definesc invariantul de stare i cele trei proceduri speciale. O tranziie exprim o situaie n care un obiect poate trece dintr-o stare n alta. Tranziiile se reprezint grafic prin intermediul unor arce de cerc, linii simple sau linii poligonale orientate i (opional) etichetate care unesc dou stri, numite stare surs, respectiv destinaie. Eticheta unei tranziii este format dintr-o signatur de mesaj, o condiie (expresie logic) i o secven de activiti care au loc n momentul declanarii tranziie. Pentru un obiect oarecare o tranziie este declanat atunci cnd obiectul se afl n starea surs a acesteia, execut operaia corespunztoare mesajului i este ndeplinit condiia specificat n etichet. Hrile de stri permit reprezentarea ierarhic a strilor unui obiect prin intermediul strilor compuse (ntlnite i sub denumirea de XOR-stri, stri abstracte sau superstri). Strile compuse conin un numr finit de stri simple sau compuse. Un obiect aflat ntr-o stare compus se va afla n una i numai una din sub-strile acesteia. Strile compuse se reprezint grafic la fel ca strile simple, la care se adaug un

compartiment special, localizat ntre numele strii i compartimentul destinat afirii invarianilor de stare i a procedurilor speciale. n cadrul acestui compartiment sunt reprezentate grafic toate sub-strile corespunztoare.

Figura 5. Etichetarea tranziiilor n hrile de stri UML Hrile de stri permit modelarea de comportamente paralele ale unui obiect prin intermediul strilor ortogonale (denumite i AND-stri sau stri concurente). Strile ortogonale sunt formate din mai multe componente ortogonale, fiecare dintre acestea coninnd diverse sub-stri. Un obiect aflat ntr-o stare ortogonal se va afla de fapt n cte o stare corespunztoare fiecrei componente ortogonale a acesteia. Reprezentarea grafic a strilor ortogonale este asemntoare reprezentrii strilor compuse, componentele ortogonale ale acestora fiind delimitate prin linii punctate verticale.

Figura 6. Principalele notaii ale hrilor de stri UML

De asemenea, hrile de stri introduc o serie de stri speciale, numite pseudostri. Pseudo-strile sunt stri intermediare care permit conectarea mai multor tranziii n scopul descrierii unor situaii complexe de modificare a strii concrete a unui obiect. Cele mai importante pseudo-stri definite n UML sunt: starea iniial - indic sub-starea implicit n care intr un obiect n cazul declanrii unei tranziii a crei stare destinaie este o stare compus. Se reprezint grafic sub forma unui cerc plin. starea final - indic prsirea contextului unei stri compuse. n cazul n care starea final aparine strii compuse de la cel mai nalt nivel al ierarhiei de stri (este rdcina ierarhiei de stri) intrarea o tranziie spre aceast stare semnific distrugerea obiectului. starea istoric - este utilizat atunci cnd sub-starea iniial a unei stri compuse nu este fixat dect pentru prima tranziie spre aceast stare compus, ea fiind dat mai apoi de ultima sub-stare activ. n figura 6 o prim tranziie spre starea Pornita implic activarea sub-strii Normal, urmtoarele tranziii activnd sub-starea (Normal sau Marsalier) activ n momentul ultimei prsiri a strii Pornita.

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