Lab3 AMOO - Diagrama de Secventa [PDF]

  • Author / Uploaded
  • Dan
  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Ministerul Educației, Culturii și Cercetării Universitatea Tehnică a Moldovei Facultatea Calculatoare, Informatică și Microelectronică Departamentul Ingineria Software și Automatică

Raport Lucrarea de laborator nr. 3 Analiza și Modelarea Orientată pe Obiecte. Tema: Analiza rezultatelor modelări din diagramele cazurilor de utilizare și dezvoltarea în diagramele de secvență.

A îndeplinit: st.gr. TI-195

Rotaru Dan

A verificat: lector universitar

Duca Ludmila

Chișinău 2021

Scopul lucrării: studierea noțiunii de obiect, focus control, relație sincronă și asincronă, tipuri de steriotipuri. Sarcina lucrării: de realizat 3-4 diagrame de secvență pentru sistemul informational ales. Noțiuni teoretice: Pentru modelarea dinamicii sistemului, UML furnizează două tipuri de diagrame, și anume, diagramele de interacțiune (diagrama de secvență și diagrama de colaborare) și diagramele de comportament (diagrama de stare și diagrama de comportament). Principala menire a acestor diagrame este de a arăta cum realizează sistemul un caz de utilizare sau un scenariu particular dintr-un caz de utilizare. Pentru fiecare caz de utilizare se pot realiza mai multe scenarii (din descrierea cazului de utilizare). Pentru fiecare astfel de scenariu se pot întocmi, nu este obligatoriu, o diagramă de secvență sau o diagramă de colaborare. Cum decidem ce tip de diagramă să folosim? Dacă cel mai important aspect este timpul sau secvenţa de mesaje vom folosi diagrama de secvenţă, dar dacă trebuie scos în evidentă contextul, vom apela la o diagramă de colaborare. Diagrama de secvențe va avea următoarele elemente: Obiectele – entitățile unor clase (numele obiectului este încadrat într-un dreptunghi).

Figura 1 – Reprezentarea grafică a obiectului și linia sa de viață

Linia de viață a obiectului – este reprezentată în mod obișnuit printr-o linie verticală întreruptă, ce coboară din dreptunghiul obiectului. În intervalul de timp în care obiectul este activ, spre exemplu cînd efectuiază o operațiune, linia întreruptă este înlocuită cu un dreptunghi vertical foarte subțire. Relațiile între obiecte – pot constitui semnale, apeluri de operații, crearea sau distrugerea unui obiect. Aici sunt utilizate 3 tipuri de relații:

 Sincrone – de regulă, suspendă execuția de mai departe a procesului atîta timp cît se așteaptă o confirmare sau un răspuns de la receptor. Acestea sunt reprezentate cu ajutorul unei săgeți cu vîrful plin.

Figura 2 – Reprezentarea grafică a unui mesaj sincron  Asincrone – mesaje la care nu se așteaptă un răspuns anumit, corespunzător, execuția procesului nu este întreruptă. Mesajele asincrone sunt reprezentate cu ajutorul unei săgeți cu vîrful deschis.

Figura 3 – Reprezentarea grafică a unui mesaj asincron

Return – mesaj de răspuns unui apel de operație (unui mesaj sincron). Este reprezentat cu ajutorul unei săgeți întrerupte cu vîrful deschis. 

Figura 4 – Reprezentarea grafică a unui mesaj de răspuns Stereotipurile:   

mesaje sincrone mesaje asincrone de creare

 

de distrugere de răspuns

În figura 5 putem observa o diagramă de secvență pentru autentificare. Putem vizualiza un actor (USER) și 2 obiecte (LOGIN și DB) care intracționează între ele. Pentru început eu fac un request către login cu datele introduse de utilizator (login și parola) așteptând să primească drept răspuns validarea acestora. LOGIN va crea o cerere la DB verificând astfel datele introduse dacă sunt veridice, se va returna mesaj de success sau de eroare și ulterior redirectăm unde avem nevoie. În cazul datelor incorecte dacă utilizatorul apasă forgot password atunci el trebuie să introducă email-ul pentru a reseta parola. După ce a introdus email-ul iarăși facem referire la baza de date (DB) și verificăm dacă email-ul există. Dacă există returnăm funcția SendMsgToEmail(), accesând linkul de pe email utilizatorului i se va propune să introducă parola nouă, după introducerea parolei noi se salvează în baza de date (DB) și se returnează un mesaj de success. În figura 6 putem observa o diagramă de secvență pentru înregistrarea utilizatorului. Putem iarăși vizualiza un actor (USER) și 2 obiecte (Register și DB) care interacționează între ele. Pentru început introducem username-ul, ulterior verificăm cerințele pentru acel username (nr. de caractere, tipuri de simboluri ș.a.m.d.), apoi trimitem validarea către DB, verificăm dacă numele de utilizator nu este ocupat și ulterior dacă nu este întoarcem mesaj că este disponibil. După verificarea username-ului introducem parola cu ulterioara verificarea cerințelor de parolă. Dacă este valid introducem email-ul, apoi verificăm cerințele acestuia. După introducerea email-ului valid ne se propune să introducem captcha, trecem captcha și apoi trimitem datele către DB cu verificarea repetată a certitudinii datelor, apoi salvăm datele respective și introducerea mesajului și facem redirect către pagina necesară. În figura 7 putem observa o diagramă de secvență pentru adăugarea unei tranzacții. Putem iarăși vizualiza un actor (USER) și 2 obiecte (AddTrans și DB) care interacționează între ele. Aici este destul de asemănătoare toate acțiunile. Introducem numele tranzacției, verificăm corectitudinii acesteia, introducem suma, verificăm, introducem categoria (id), verificăm, introducem datei/timpului, verificăm datele. După dacă apăsăm buttonul add, voi face apel la baza de date (DB) unde ulterior verificăm toate datele și salvăm datele primite, apoi introducem mesaj de success pentru utilizator.

Figura 5 – Diagrama de secvență pentru logare (Log in)

Figura 6 – Diagrama de secvență pentru înregistrare (Register)

Figura 7 – Diagrama de secvență introducerea unei tranzacții

Concluzie: În această lucrare de laborator am creeat cîteva diagrame de secvențe. Am creat trei diagrame de secvențe, de autenficare, de înregistrare și de adăugarea unei tranzacții. Aceste diagrame ne permite să demonstrăm modul de lucru al funcțiilor interioare ale sistemului nostru. Sunt exemplificate relațiile dintre un utilizator, cererea procesată de el și acțiunile sistemului.