Sintaxa UML

23
Sintaxa şi semantica limbajului de modelare UML

Transcript of Sintaxa UML

Page 1: Sintaxa UML

Sintaxa şi semantica limbajului de modelare UML

Page 2: Sintaxa UML

Alfabet şi cuvinte

Alfabetul defineşte cele mai mici părţi ale limbajului; UML este alcătuit din simboluri (dreptunghiuri, linii şi alte elemente grafice) şi din şiruri de caractere. Cuvântul este cea mai mică unitate semantică de limbaj. Un cuvânt este un grup format din elementele alfabetului, care are un înţeles.

În UML, cuvintele sunt grupate în două categorii mari:• entităţi sau concepte – desemnează o serie de abstracţii şi sunt reprezentate prin simboluri etichetate cu nume;• relaţiile dintre entităţi – desemnează tipurile de legături care pot exista între entităţi. Ele sunt reprezentate prin linii de legătură între simboluri şi au un nume. Cuvintele limbajului alcătuiesc vocabularul limbajului.

Page 3: Sintaxa UML

Propoziţii şi paragrafe

Propoziţiile UML sunt fragmente de diagrame sau diagrame simple .

• O companie de asigurări are contract de asigurare cu o persoană.• O persoană are un contract de asigurare cu o companie de asigurare.

Paragrafele UML se numesc diagrame.

Sintaxa limbajului UML implică diagrame.

Semantica limbajului UML se bazează pe paradigma orientării pe obiecte. !

Page 4: Sintaxa UML

În UML, diagramele fac parte din două categorii:

• Diagrame statice sau structurale - descriu structura, responsabilităţile sistemului informatic, componentele executabile ale sistemului, locaţiile fizice de execuţie şi nodurile de stocare a datelor. Din această categorie, fac parte diagrame ale claselor, ale obiectelor, ale cazurilor de utilizare, ale componentelor şi diagrame de exploatare.

• Diagrame dinamice sau comportamentale – descriu comportamentul şi interacţiunile dintre diverse entităţi ale sistemului informatic. Din această categorie, fac parte diagramele de secvenţă, de colaborare, de stare şi de activitate.

Page 5: Sintaxa UML

A) Modelare structurală (modelare statică)

• Se referă la vizualizarea, la specificarea, la construirea şi la documentarea aspectelor statice ale unui sistem, adică la relaţiile invariante dintre componentele unui sistem. Din punct de vedere al modelării sistemelor orientate pe obiecte din perspectiva UML, aspectele statice sunt: clasele şi relaţiile dintre clase, interfeţele, topologia hard necesară execuţiei aplicaţiei.

A1) Diagrama claselor (Class Diagram)• Descrie structura unui sistem în general. În componenţa ei intră clase, stereotipuri şi relaţiile dintre acestea. Acest tip de diagrame este cel mai des întâlnit în modelarea sistemelor orientate pe obiecte.

A2) Diagrama obiectelor (Object Diagram)• Descrie structura unui sistem la un anumit moment. Acest tip de diagramă este o variantă a diagramei claselor, care, în locul unei clase, prezintă mai multe instanţe ale ei şi este formată din obiecte şi relaţiile (legăturile) dintre ele. Este folosită în exemplificarea unei diagrame a claselor de complexitate mare, permiţând vizualizări statice ale instanţelor actuale şi ale relaţiilor.

Page 6: Sintaxa UML

A3) Diagrama cazurilor de utilizare (Use Case Diagram)

• Descrie funcţionalitatea unui sistem.

• Prezintă actorii externi, cazurile de utilizare identificate numai din punct de vedere al actorilor (comportamentul sistemului, aşa cum este perceput de utilizatorii lui), nu şi din interior, precum şi relaţiile dintre actori şi cazurile de utilizare.

• Un actor poate fi orice sau oricine interacţionează cu sistemul (trimite sau recepţionează mesaje de la sistem sau schimbă informaţii cu acesta).

• Actorul are un rol în cadrul unui sistem, nu este un utilizator individual al acestuia, şi din acest motiv, el este o entitate (o clasă), nu o instanţă. Un caz de utilizare este iniţiat mereu de un actor şi furnizează o valoare actorului.

• Diagramele cazurilor de utilizare reflectă modul static de vizualizare a cazurilor de utilizare asupra sistemului (diferite tipuri de relaţii între cazurile de utilizare), dar şi modul de organizare şi de modelare a comportamentului unui sistem.

Page 7: Sintaxa UML

A4) Diagrama componentelor (Component Diagram)

• O diagramă a componentelor, cunoscută şi sub numele de diagramă de implementare, descrie structura fizică a codului în termenii componentelor de cod şi relaţiile dintre acestea.

• Acest tip de diagramă realizează o mapare de la view-ul static (logic) la view-ul componentelor. O componentă poate să conţină un cod sursă sau să fie sub formă binară sau executabilă. O componentă se mapează, de obicei, pe una sau mai multe clase, interfeţe sau colaborări; din această cauză, diagrama componentelor are legătură cu diagrama claselor.

• Diagramele de componente reflectă vederea statică de implementare asupra sistemului.

5) Diagrama de desfăţurare (Deployment Diagram)

• Diagrama de desfăşurare indică arhitectura fizică pe care este implementat sistemul, calculatoarele, device-urile (noduri ale sistemului) şi conexiunile dintre ele.

Page 8: Sintaxa UML

B) Modelare dinamică (modelare comportamentală)B1) Diagrama de interacţiune (Interaction Diagram)• Descrie interacţiunile în timp între obiecte, relaţiile şi mesajele care circulă între acestea. Diagramele de interacţiune reflectă vederea dinamică de design şi de proces.

• Pot fi: a) Diagrama de secvenţă

b) Diagrama de colaborare

a) Diagrama de secvenţă (Sequence Diagram)- Prezintă colaborarea dinamică dintre un număr de obiecte, punând accentul pe secvenţe de mesaje trimise între acestea pe măsura scurgerii timpului. - Au două axe: timpul, pe axa verticală, şi setul de obiecte, pe axa orizontală.

a) Diagrama de colaborare (Collaboration Diagram)- Este o diagramă de interacţiune, dar, pe lângă interacţiunea dintre obiecte (schimbul de mesaje), prezintă şi obiectele şi legăturile dintre ele. Când trebuie să decidem ce tip de diagramă trebuie folosit pentru a ilustra o interacţiune, avem în vedere aspectul cel mai important de evidenţiat.

Obs. Se vor folosi diagramele de secvenţă dacă cel mai important aspect este timpul sau secvenţa de mesaje şi vom folosi diagramele de colaborare când trebuie evidenţiat contextul.

Page 9: Sintaxa UML

B2) Diagrama de stare (State Diagram)• Descrie ciclul de viaţă al unui element (al obiectelor, al subsistemelor şi al sistemelor), prin specificarea stărilor în care se găseşte un element şi a evenimentelor (mesaje, erori, condiţii care devin adevărate) care îi modifică starea (tranziţie).

Obs. Este indicat să se construiască diagrame de stare numai pentru clasele din sistem care au un număr de stări bine definit şi în care comportamentul clasei este influenţat de acestea. Aceste diagrame intră în modurile de vizualizare design şi de proces asupra sistemului.

B3) Diagrama de activitate (Activity Diagram)• Prezintă activităţile şi responsabilităţile elementelor sistemului.

• Diagramele de activitate au ca elemente constitutive stări de acţiune (Action States) şi mesaje care vor fi trimise sau recepţionate ca parte a acţiunii realizate.

• Reflectă vederea dinamică de design şi de proces şi sunt utilizate pentru modelarea funcţiilor sistemului.

Page 10: Sintaxa UML

Secţiuni (Views)Secţiunile UML sunt perspectivele arhitecturale sau modurile de vizualizare(arhitectural views). Din punct de vedere gramatical, ele sunt formate din mai multe paragrafe.

Obs. Un model UML descrie ce trebuie să facă un sistem, nu cum să se implementeze sistemul.

Secţiunile UML sau modurile de vizualizare sunt grupuri de diagrame care se adresează unei anumite mulţimi de concepte (entităţi).

Modelul capturează cunoştinţe şi le comunică sub formă de mod de vizualizare sau, pe scurt, “view” (arhitectural views).

Fiecare view focalizează atenţia echipei de realizatori asupra unui anumit tip de probleme şi de aspecte privind subiectul tratat şi se adresează unei categorii speciale de firme sau de instituţii.

Un sistem poate fi descris luând în considerare următoarele aspecte: • funcţional - este descrisă structura statică şi comportamentul dinamic al sistemului;• non-funcţional - necesarul de timp pentru dezvoltarea sistemului;• organizatoric - organizarea lucrului, maparea modulelor de cod.

Page 11: Sintaxa UML

Elementele care construiesc un view se numesc elemente de vizualizare (view elements).

Fiecare view este descris folosind un număr de diagrame care conţin informaţii referitoare la un anumit aspect particular al sistemului.

Aceste view-uri se acoperă unele pe altele, deci este posibil ca o anumită diagramă să facă parte din mai multe view-uri.

Page 12: Sintaxa UML

V1) Modul de vizualizare cazuri de utilizare (The use-case or user view)

• Acest view surprinde funcţionalitatea sistemului, aşa cum este ea percepută de actorii externi care interacţionează cu sistemul, precum şi de utilizatorii acestuia, de diferiţi membri ai echipei realizatoare sau de alte sisteme.

• În componenţa lui intră diagramele cazurilor de utilizare pentru descrierea statică a aspectului funcţional şi ocazional.

• Se pot folosi şi diagrame de activitate pentru a încapsula latura dinamică a funcţionalităţii.

• Cei interesaţi de această perspectivă sunt clienţii, designerii, dezvoltatorii şi cei care vor testa şi vor valida sistemul realizat.

Page 13: Sintaxa UML

V2) Modul de vizualizare structural sau logic sau design (The structural or logic or design view)

• Se referă la cerinţele funcţionale ale acestuia, adică prezintă serviciile asigurate de sistem utilizatorilor săi.

• Vizualizarea logică tratează din interior sistemul şi descrie atât structura internă a acestuia, formată din clase, obiecte şi relaţii, cât şi colaborările care apar în urma schimbului de mesaje între obiecte, pentru a realiza funcţionalitatea dorită.

• Structura statică este descrisă de diagramele de clasă şi de obiecte, care includ elementele şi relaţiile care alcătuiesc sistemul.

• Pentru modelarea dinamicii sistemului, se vor folosi diagrame de stare, de secvenţă, de colaborare sau de activitate.

• Cei care sunt interesaţi de acest tip de vizualizare a sistemului sunt designerii şi dezvoltatorii.

Page 14: Sintaxa UML

V3) Modul de vizualizare componente sistem sau implementare (The implementation or component view)

• View-ul componentelor se concentrează pe descrierea componentelor care implementează sistemul, dependenţele care există între ele, resursele alocate acestora, precum şi rezolvarea unor probleme legate de reutilizarea, portabilitatea codului, informaţii administrative, cum ar fi un desfăşurător al muncii de dezvoltare.

• Este folosit de dezvoltatorii sistemului, iar în componenţa sa intră diagramele de componente, care descriu cum este implementat sistemul.

V4) Modul de vizualizare comportamental sau dinamic sau proces sau concurenţă (The behavioral or dinamic or process or concurent view)

• Acest mod de vizualizare ia în considerare cerinţele de performanţă, de fiabilitate, de utilitate, etc.• Pentru descrierea comportamentului şi a dinamicii sistemului, se folosesc diagramele de stare, de secvenţă, de colaborare şi de activitate.

• În reprezentarea acestui mod de vizualizare a sistemului, se folosesc şi diagramele de implementare (ale componentelor).

• Cei interesaţi de o astfel de vizualizare a sistemului sunt dezvoltatorii şi interogatorii de sistem.

Page 15: Sintaxa UML

V5) Modul de vizualizare desfăşurare sau mediu(The deployment or environment view)

• În acest mod de vizualizare sunt surprinse desfăşurarea fizică a sistemului, ce calculatoare şi ce tipuri de device-uri (noduri) vor fi folosite pentru implementarea sistemului, cum sunt acestea conectate, precum şi ce componente (procese) se vor executa în fiecare nod.

• Acest tip de vizualizare este reprezentat cu ajutorul unor diagrame de desfăşurare, care indică modul de implementare a sistemului. În acest sens, ele poartă etichete care specifică repartizarea pe tipuri de activitate şi informaţii despre procesele executate în noduri.

• De acest tip de vizualizare sunt interesaţi dezvoltatorii, interogatorii de sistem, precum şi cei care realizează testarea sistemului.

Page 16: Sintaxa UML

Documente (Modele)

Un document este format dintr-un număr de secţiuni care descriu un subiect comun şi pot fi cărţi, articole etc.

Documentele UML sunt modele. Un model este o reprezentare a unui sistem. View-urile (secţiunile) sunt grupate formând modelul (documentul) arhitectural al sistemului studiat.

Pentru paradigma de modelare UML, cel mai adecvat este modelul de dezvoltare a sistemului dirijat de cazurile de utilizare, centrat pe arhitectură, iar abordarea este iterativă sau cascadă.

Page 17: Sintaxa UML

Pachete (Packages)

Un pachet reprezintă un mecanism de grupare a elementelor de modelare.

În UML, un pachet defineşte un mecanism de organizare a elementelor în grupuri legate semantic. Rezultă că un element de modelare nu poate fi prins în mai multe pachete, dar un pachet poate importa elemente de modelare din alte pachete, iar după import le consideră ca şi când ar fi proprietatea lui.

Putem stabili relaţii între pachete, dar numai între tipuri, nu şi între instanţe (pachetele nu au semantică definită de instanţe).

Un pachet poate să aibă vizibilitate, ca şi clasele, prin care se precizează modalitatea prin care alte pachete pot să-i acceseze conţinutul.

Un pachet poate să aibă o interfaţă care îi redă comportamentul.

Page 18: Sintaxa UML

Note (Notes)

O notă cuprinde ipotezele şi deciziile aplicate în timpul analizei şi al proiectării.

Notele sunt corespondentul comentariilor din limbajele de programare.

Notele pot conţine orice informaţie, inclusiv fragmente de cod sau referiri la alte documente, şi se pot folosi în orice tip de diagrame. Ele se reprezintă printr-un dreptunghi cu colţul dreapta sus îndoit, în interiorul căruia se află informaţia dorită.

Nota este ataşată unui element dintr-o diagramă printr-o linie punctată.

O notǎ poate să nu fie conectată, dacă aceasta se referă la întreaga diagramă.

Page 19: Sintaxa UML

Stereotipuri (Stereotypes)

Stereotipul este un concept introdus în UML, care permite extinderea elementelor de bază pentru a crea noi elemente.

Un stereotip reprezintă un înţeles specific asociat unui element. El se reprezintă printr-un cuvânt între paranteze unghiulare duble (“<< >>”), scris deasupra sau dedesubtul numelui elementului asociat.

Obs. Un stereotip transformă un element în altul cu un înţeles nou.

Exemplu. Dacă se ataşează stereotipul <<table>> clasei Examene, acesta va reprezenta o bază de date tabelară.

Page 20: Sintaxa UML

Proprietăţi

Proprietăţile sunt elemente de extindere UML, care lărgesc proprietăţile şi semantica unui element UML.

Ele se reprezintă printr-o listă de şiruri de caractere între acolade ({ }), scrise deasupra sau dedesubtul elementului UML.

Şirurile de caractere care reprezintă proprietăţile pot fi de două forme:• valoare etichetată (tagged value) - se exprimă prin perechea "string = valoare" şi reprezintă caracteristicile unui element şi valorile sale;• constrângeri (constraints) - se exprimă în OCL (Object Constraint Language) şi reprezintă condiţiile pe care trebuie să le satisfacă elementul.

Exemplu. valorile etichetate ale clasei EXAMENE sunt versiunea şi autorul, iar constrângerea este perioada de examene.

Page 21: Sintaxa UML

Reprezentarea grafică a elementelor de modelare

Page 22: Sintaxa UML

Reprezentarea grafică a elementelor de modelare (continuare)

Page 23: Sintaxa UML

Reprezentarea grafică a elementelor de modelare (continuare)