Cur s 6 –Analizasistemelorinformaticesinf.ase.ro/cursuri/psi/PSI - Curs 5 Analiza sistemelor...• În atapa de analiză, tipul de dependenţă poate să nu fie specificat. • În
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
În etapa de analiză a sistemului sunt analizate specificaţiile şi cazurilede utilizare, identificându-se cele mai importante concepte cu carelucrează sistemul, împreună cu relaţiile dintre acestea. Se reprezintăgrafic printr-o diagramă structura domeniului claselor pentru sistemulanalizat.
1. Se iniţiază reprezentarea diagramei de clase, care va fi finisată şi în
Analiza orientată obiect a sistemelor informatice
1. Se iniţiază reprezentarea diagramei de clase, care va fi finisată şi înetapele următoare. Diagrama claselor reprezintă grafic structura staticăa sistemului, prin includerea claselor identificate, a pachetelor şi arelaţiilor dintre acestea. Un pachet poate conţine clase, interfeţe,componente, noduri, colaborări, cazuri de utilizare, diagrame sau altepachete.
2. Se iniţiază construirea diagramei obiectuale care modelează instanţeleelementelor conţinute în diagramele de clase. Aceste diagrame cuprindun set de obiecte şi relaţiile dintre acestea la un anumit moment.
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 diagramelede stare, care reprezintă ciclul de viaţă al obiectelor, subsistemelor şisistemelor. Stările obiectelor se schimbă la recepţionarea evenimentelor sausemnalelor.
4. Diagrama de activitate este realizază cu scopul de a evidenţia acţiunile şi
Analiza orientată obiect a sistemelor informatice
4. Diagrama de activitate este realizază cu scopul de a evidenţia acţiunile şirezultatul acestor acţiuni şi pentru a scoate în evidenţă fluxurile de lucru.
5. Pentru a evidenţia interacţiunile dintre obiecte se construiesc diagramele deinteracţiune: diagramele de secvenţă şi, respectiv, diagramele decomunicare.
� 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 alegăturilor dintre un set de obiecte care colaborează. Se utilizează când este utilăvizualizarea coordonatei spaţiale.
� Diagrama claselor este cea mai importantă diagramă în cadrulanalizei şi proiectării orientate obiect. Scopul diagramei claselor estede a prezenta natura statică a claselor punand in evidenţă atributele,operaţiile şi asocierile.
� Majoritatea instrumentelor de modelare orientate obiect generează� Majoritatea instrumentelor de modelare orientate obiect genereazăcodul sursă numai din diagrama claselor.
� Celelalte diagrame UML furnizează diferite puncte de vedere din caresă fie identificate atributele, operaţiile şi asocierile dintre clase. Eleajută la validarea diagramei claselor, putând servi la clarificarea uneiprobleme specifice .
� 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 clasesă le moştenească, în vederea reutilizării caracteristicilor.
� O interfaţă descrie un set de caracteristici şi obligaţii publice. Specifică, de� O interfaţă descrie un set de caracteristici şi obligaţii publice. Specifică, defapt, un contract. Orice instanţă care implementează interfaţa trebuie săofere serviciile furnizate prin contract.
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 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.
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, � 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”.
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 semiformală 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:� O constrângere poate avea şi un nume, astfel:� {nume : expresie booleană }
Exemple de constrângeri OCL:context Organizatieinv: self. departamente→isUnique (nume)inv: departamante.angajati→isUnique (cod)
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 dintrun � Atunci când se foloseşte pentru modelarea obiectelor dintrun anumit domeniu, ştergerea poate fi interpretată la figurativ, ca “terminare”, şi nu ca o distrugere fizică.
RelaŃii între clase -73. 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ă.• Este permisă moştenirea multiplă.
NotaŃiile diagramei de clase şi obiecte - comparaŃie
Diagrama de clase Diagrama de obiecte
Clasa are trei compartimente: nume, atribute şi operaţii.
Obiectul are numai două compatrimente:nume şi atribute.
Numele clasei este specificat singur în primul compartiment.
Formatul numelui unui obiect include şi numele clasei, toată expresia fiind subliniată. Aceste notaţii vor fi întâlnite şi în alte diagrame care reprezintă obiecte. diagrame care reprezintă obiecte.
Al doilea compartiment descrie proprietăţi sub forma atributelor.
Al doilea compartiment defineşte valoripentru 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 un nume, multiplicitate, constrângeri şiroluri. Clasele sunt o abstractizare a obiectelor, deci este necesar să specificăm câte clase participă întro asociere.
Obiectele sunt conectate printro legătură,care poate avea un nume, roluri, dar nu şi multiplicităţi. Obiectele reprezintă entităţisingulare, toate legăturile sunt unulaunu, iar multiplicităţile sunt irelevante.
� Ajută la reprezentarea vizuală a secvenţelor de acţiuni princare se doreşte obţinerea unui rezultat.
� Se pote realiza pentru unul sau mai multe cazuri de utilizaresau pentru descrierea unor operaţii complexe.
� Nu se construieşte pentru fiecare caz de utilizare şi scenariu,� Nu se construieşte pentru fiecare caz de utilizare şi scenariu,deoarece nu este necesar, ci numai pentru cele importante.
� Descrie fluxul de lucru dintrun punct de plecare până întrunpunct de terminare, detaliind căile de decizie care pot apăreaîntro activitate.
� Poate fi folosită pentru a descrie procesare paralelă.
� Este importantă în modelarea proceselor de afaceri.
Noduri de bifurcaŃie şi joncŃiune� Ambele se reprezintă printro 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� 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.
Un nod de joncţiune este diferit de un nod de îmbinare deoarecesincronizează două fluxuri de intrare şi produce un singur flux de ieşire. Unun nod de îmbinare transmite mai departe orice flux de control ajunge la el.
� Modelează starea dinamică a unui obiect specific.
� Conform UML, o stare este „o condiţie sau o situaţie dinmomentul existenţei unui obiect care satisface în acelmoment anumite condiţii, efectuează anumite activităţisau aşteaptă anumite evenimente“.sau aşteaptă anumite evenimente“.
� Identifică evenimentele care fac tranziţia unui obiectdintro stare în alta.
� Nu toate evenimentele sunt aplicabile în contextultuturor stărilor. Pot exista condiţii care să condiţionezeapariţia unui anumit eveniment.
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ă anumiteevenimente. Este reprezentată ca un dreptunghi cu colţurirotunjite.
� Stare iniţială şi finală – au aceleaşi notaţii ca şi în diagramelede activitate. Semnifică începutul şi sfârşitul vieţii unui obiect.de activitate. Semnifică începutul şi sfârşitul vieţii unui obiect.
� Stare compusă – este o stare care conţine substrări (stăriimbricate).
TranziŃii� Obiectul tranzitează dintro 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, oschimbare întro condiţie sau trecerea timpului.schimbare întro condiţie sau trecerea timpului.
� Condiţie: o condiţie care trebuie să fie adevărată pentru cadeclanşatorul să determine tranziţia.
� Efect: Acţiune care va fi invocată de obiect ca urmare a tranziţiei.
� Decizia (Alegerea) – o pseudostare realizează o bifurcaţiecondiţională. Evaluează condiţiile declanşatorilor tranziţiilorde ieşire pentru a alege o singură tranziţie de ieşire.
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,� Obiectele sunt plasate în marginea de sus a diagramei,dea lungul axei OX, de la stânga la dreapta.
� Ele sunt aranjate în orice ordine care permite simplificareadiagramei.
� De obicei, obiectele care încep interacţiunea se aşează lastânga iar obiectele care urmează în partea dreaptă.
� Existenţa obiectelor este reprezentată prin liniile de viaţăale acestora.
Diagrama de secvenŃă - obiecte� Linia de viaţă a obiectelor: linie verticală care reprezintă existenţa unui
obiect dea lungul unei perioade de timp. Majoritatea obiectelor careapar î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 peparcursul 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 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.
� Mesajele sunt reprezentate sunt forma unor arcuri. Acestea pornesc de la linia deviaţă a unui obiect şi se opresc la linia de viaţă a altui obiect. Mesajele pot fi demai 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 mesajulcătre obiectul care primeşte mesajul. Cererea implică faptul că receptorul vaexecuta una dintre operaţiile sale.
� Emiţătorul aşteaptă ca receptorul să execute operaţia şi să primească un răspunsde la acesta (return).
� Un obiect poate trimite mesaje şi către sine autoapelare. Un astfel de mesaj� Un obiect poate trimite mesaje şi către sine autoapelare. Un astfel de mesajpoate semnifica apelul recursiv al unei operaţii sau o metodă care apelează altămetodă a aceluiaşi obiect.
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 acestorevenimente.
� Mesajul de distrugere poate genera distrugeri ulterioare ale unorobiecte pe care acesta le conţine prin compunere. După distrugere, unobiecte pe care acesta le conţine prin compunere. După distrugere, unobiect nu mai poate fi creat din nou pe acceaşi linie de viaţă.
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 � 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.
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 pierdeinformaţ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, opţiunea Synctonize to Communication/Sequence diagram, după caz.
� Diagrama de comunicare arată cum sunt legate obiectele întimp ce diagrama de secvenţă pune în evidenţă şi mesajelereturnate, precum şi ordinea temporală a interacţiunilor.