Sunteți pe pagina 1din 23

Academia de Studii Economice București

Facultatea de Cibernetică, Statistică și Informatică Economică

PROIECT PROIECTAREA SISTEMELOR


INFORMATICE

Bold Andrei Cătălin


Grupa 1085
Seria D
Cuprins

1. Prezentarea sistemului informatic


1.1 Descrierea generală a sistemului informatic
1.2 Specificarea cerinţelor
1.2.1 Diagrame detaliate ale cazurilor de utilizare
1.2.2 Descrierea textuală a cazurilor de utilizare
2. Analiza sistemului informatic
2.1 Diagrame de activitate
2.2 Diagrama de clase
2.3 Diagrame de stare
2.4 Diagrame de interactiune
2.5 Rafinarea diagramelor UML
2.6 Diagrame de procese si colaborare BPMN
1. Prezentarea sistemului informatic

1.1. Descrierea generală a sistemului informatic

Odată cu digitalizarea tot mai multor domenii, la nivel global, manifestată în ultimul deceniu, a
aparut nevoia dezvoltării unor sisteme informatice și în domeniul fitness-ului. Scopul central al
acestor sisteme, este de a facilita utilizatorilor îndeplinirea obiectivelor personale, prin oferirea
unui ghidaj, venit din partea unor surse acreditate în domeniu.
Astfel, se dorește dezvoltarea unui sistem informatic care să ofere îndrumare utilizatorilor atât pe
partea nutrițională, cât și cea de antrenament, prin intermediul unui asistent conversational
virtual. Utilizatorul își va crea un cont în cadrul aplicației, apoi va fi redirecționat către secțiunea
în cadrul căreia va purta un dialog cu asistentul virtual. După ce va avea acordul utilizatorului,
asistentul îl va ruga să îi furnizeze câteva date, precum înălțime, greutate, sex, vârstă, gradul de
activitate zilnică, experiența și obiectivul în materie de fitness. Pe baza acestor date, asistentul îi
va calcula utilizatorului necesarul caloric zilnic, apoi în funcție de eventualele obiecții medicale
și nevoia de îndrumare privind mesele, antrenamentele și suplimentele, îi va oferi un tip de dietă,
însoțită, după caz, de un supliment alimentar și un tip de antrenament. Utilizatorul își va putea
ține evidența antrenamentelor și a meselor zilnice, prin intermediul unui jurnal personal și va
putea observa progresul său în timp. Orice modificare în jurnal sau a datelor personale, va putea
fi realizată manual, de către utilizator, sau acesta îi va putea comunica asistentului să o realizeze.
Asistentul îi va oferi remindere utilizatorului, privind numarul de calorii rămase pe ziua
respectivă, va putea sesiza în cadrul conversației, starea de spirit a utilizatorului și îi va răspunde
în consecință. Utilizatorul va putea beneficia și de informații cu privire la diferite aspecte din
fitness. De asemenea, asistentul va reține contextual ultimei convorbiri cu utilizatorul și îi va cere
constant feedback acestuia, pentru a putea realiza eventuale modificări în jurnal.
Funcționalitățile realizate în cadrul sistemului sunt:
- Realizarea funcționalității asistentului virtual, cu care utilizatorul va putea comunica
constant, printr-un chat online
- Realizarea funcționalității de jurnal personalizat, care va cuprinde antrenamentele,
suplimentele și mesele zilnice ale utilizatorului, precum și necesarul său caloric
- Realizarea funcționalităților de adăugare, modificare, eliminare a unei mese și de
vizualizare a meselor pe ziua respectivă, sub forma unei liste
- Realizarea funcționalităților de adăugare, modificare, eliminare a unui antrenament și de
vizualizare a antrenamentelor pe ziua respectivă, sub forma unei liste
- Realizarea funcționalităților de adăugare, modificare, eliminare a unui supliment și de
vizualizare a suplimentelor pe ziua respectivă, sub forma unei liste
- Realizarea funcționalității de progres, în cadrul căreia utilizatorul va putea vedea evoluția
sa pe parcursul timpului, sub forma unui graphic
- Realizarea funcționalităților de autentificare și login a utilizatorului, astfel încât doar
utilizatorii logați să poată beneficia de serviciile oferite de asistentul virtual
- Realizarea funcționalității de Cont Personal, unde utilizatorul să-și poată vizualiza datele
și obiectivele personale și să le poată modifica după bunul plac
- Realizarea funcționalității de Home Page, unde utilizatorul să poată vedea informațiile sale
de interes, în materie de fitness
- Așadar, principalul obiectiv al acestei aplicații este oferirea de îndrumare către utilizatorii
pasionați de fitness sau cei care doresc să facă o schimbare privind traiul zilnic, atât pe
partea nutrițională, cât și cea sportivă, cu ajutorul unui asistent conversational. Cei care nu
vor avea nevoie de o îndrumare propriu-zisă din partea asistentului, își vor putea
monitoriza caloriile zilnice, într-un mod eficient.

1.2. Specificarea cerințelor


Dupa descrierea generală a soluției și evidențierea obiectivelor sale, urmează reprezentarea
funcționalităților sistemului informatic cu ajutorul diagramei cazurilor de utilizare. Astfel, în cele
ce urmează voi prezenta diagramele cazurilor de utilizare, însoțite de o descrierea succintă a
acestora.
1.2.1. Diagrama generală și diagrame detaliate ale cazurilor de utilizare
a) Diagrama generală
În Figura 1 este prezentată diagrama generală a cazurilor de utilizare. Aceasta arată modul în
care un utilizator interacționează cu aplicația și o imagine amplă asupra funcționalităților acesteia
Figura 1 - Diagrama generala a cazurilor de utilizare

Din această diagramă se poate observa că, odată creat contul în cadrul aplicației, utilizatorul va
avea posibilitatea de a-i furniza asistentului virtual datele sale personale, legate de fitness. Odată
preluate aceste date de către asistent, va putea avea loc gestiunea jurnalului personal al
utilizatorului atât de acesta, cât și de către asistent, care va cuprinde 3 elemente centrale: mese,
antrenamente și suplimente, însoțite de informațiile calorice asociate fiecărui element și raportate
la necesarul caloric al utilizatorului. De asemenea, va avea loc și gestiunea contului
utilizatorului, acesta având acces la toate datele sale, care vor putea fi schimbate inclusiv de către
asistent, la indicațiile utilizatorului. De asemenea, utilizatorul își va putea vizualiza progresul în
timp real și aspectele sale de interes despre fitness. Adminul va gestiona baza de date cu
alimente, exerciții, suplimente și aspecte legate de fitness, precum si conturile utilizatorilor.
Funcționalitatea de creare de cont va extinde posibilitatea schimbării sau a recuperării parolei,
atât în cazul adminului, cât și în cel al userului.

b) Diagrama cazului de utilizare „Gestiune jurnal personal”


Figura 2 - Diagrama detaliată a cazului de utilizare “Gestiune jurnal personal”

Atunci când va accesa secțiunea destinată jurnalului personal, utilizatorul va avea la dispoziție 3
opțiuni: mese, antrenamente și suplimente. La selectarea uneia dintre opțiuni, aceasta va dispune
de un meniu prin care va putea adăuga/modifica/șterge un element specific opțiunii selectate. De
asemenea, va putea vizualiza toate elementele unei opțiuni, pe ziua respectivă, sub forma unei
liste. Tot acest proces va putea fi realizat și de către asistentul virtual, dacă utilizatorul îi va
comunica acest lucru.

c) Diagrama cazului de utilizare ”Furnizare date către asistentul virtual”


Figura 3 - Diagrama detaliată a cazului de utilizare “Furnizare date către asistentul virtual”

În această diagramă se poate observa interacțiunea pe care utilizatorul o are cu asistentul virtual.
Primul, îi va furniza datele sale personale, în materie de fitness, iar cel de-al doilea va răspunde
cu un regim de fitness corespunzator datelor primite. Utilizatorul va putea solicita diferte aspecte
legate de orice ramură a fitness-ului, pentru a se documenta sau pur și simplu pentru
divertismentul tău. Tot prin intermediul interacțiunii celor 2 actori, se vor realiza și gestionarea
contului și a jurnalului personal ale utilizatorului, de către asistent, în concordanță cu obiecțiile
primului. Gestionarea contului va extinde modificarea datelor personale ale contului (nume,
prenume, email), dar și cele legate de fitness (greutate, obiectiv, probleme medicale, indoleranțe
în dietă sau nivelul activității zilnice).

1.2.2. Descrierea textuală a cazurilor de utilizare


a) Descrierea textuală a cazului general de utilizare
Element al cazului de utilizare Descriere
Cod UC1
Stare Schiță
Scop Asistent conversațional în fitness
Nume Asistență fitness
Actor principal Utilizator aplicație
Descriere Aplicația presupune oferirea de îndrumare în
sfera fitness-ului, prin intermediul unui
asistent virtual, care pe baza informațiilor
transmise de utilizator, îi va facilita acestuia
atingerea obiectivelor dorite
Precondiții Utilizatorul dispune de un laptop sau un
dispozi mobil, are conexiune la internet si
acceseaza site-ul aplicatiei
Postcondiții Utilizatorul a aflat informatiile de care avea
nevoie referitoare la nutritia si tipul de
antrenament necesare atingerii obiectivului
sau
Declanșator Utilizatorul doreste sa atingă un anumit
obiectiv în materie de fitness
Flux de bază 1. Utilizatorul intra in aplicatie (se
autentifica sau se logheaza daca are
deja cont)
2. Odată logat, utilizatorul poate
interacționa cu asistentul virtual, legat
de parcusul său zilnic în fitness
Fluxuri alternative -
Relații Se extinde prin Resetare parola sau
Schimbare parola
Frecvența utilizarii Foarte frecvent
Reguli ale afacerii Utilizatorul poate sa isi schimbe parola,
introducând-o mai întâi pe cea veche și își
poate reseta parola introducând mai întâi
răspunsul său la întrebarea de securitate.
Ambele cazuri se vor termina cu introducerea
noii parole

b) Descrierea textuală a cazului de utilizare „Gestiune jurnal personal”


Element al cazului de utilizare Descriere
Cod UC2
Stare schita
Scop Gestionarea jurnalului personal al
utilizatorului
Nume Gestiune jurnal personal
Actor principal Utilizator aplicatie/Asistent virtual
Descriere Presupune adăugarea, modificarea, stergerea
sau vizualizarea meselor, antrenamentelor și
suplimentelor zilnice ale utilizatorului
Precondiții Utilizatorul este logat în cadrul aplicației și
accesează meniul specific fiecărei opțiuni din
jurnal, sau îi comunică asistentului să facă
asta
Postcondiții Modificările efectuate au fost salvate cu
succes.
Declanșator Utilizatorul doreste sa navigheze in aplicatie
Flux de bază 1. Utilizatorul/Asistentul virtual adaugă
un element specific unei din cele 3
optiuni ale jurnalului (antrenament,
masă sau supliment)
2. Utilizatorul/Asistentul virtual
modifică un element specific unei din
cele 3 optiuni ale jurnalului
(antrenament, masă sau supliment)
3. Utilizatorul/Asistentul virtual șterge
un element specific unei din cele 3
optiuni ale jurnalului (antrenament,
masă sau supliment)
4. Utilizatorul/Asistentul virtual poate
vizualiza elementele zilnic, specifice
uneia din cele 3 optiuni ale jurnalului
(antrenament, masă sau supliment)
Fluxuri alternative Se incheie scenariul
Relații -
Frecvența utilizarii Foarte frecvent
Reguli ale afacerii -

c) Descrierea textuală a cazului de utilizare ”Furnizare date către asistentul virtual”


Element al cazului de utilizare Descriere
Cod UC3
Stare schita
Scop Interacțiune cu asistentul virtual
Nume Furnizare date către asistentul virtual
Actor principal Utilizator aplicatie
Descriere Presupune furnizarea datelor cu caracter
personal ale utilizatorului, precum și diferite
cerințe privind progresul personal, către
asistentul virtual
Precondiții Utilizatorul este logat în cadrul aplicației și
accesează meniul specific interacțiunii cu
asistentul virtual
Postcondiții Cerințele utilizatorului au fost îndeplinite
Declanșator Utilizatorul doreste sa acceseze chatul online
de interacțiune cu asistentul virtual
Flux de bază 1. Utilizatorul îi va comunica asistentului
niște detalii sau o cerință referitoare la
progresul său în fitness
2. Asistentul virtual va răspunde prin
executarea comenzii respective și
confirmarea către utilizator, în chatul
din cadrul aplicației
Fluxuri alternative -
Relații -
Frecvența utilizarii Foarte frecvent
Reguli ale afacerii -

2. Analiza sistemului informatic

2.1. Diagrame de activitate


a) Diagrama de activitate pentru adaugarea unui aliment (cazul în care utilizatorul îi
comunică asistentului să facă adăugarea)

Figura 4 -Diagrama de activitate “Adăugare aliment”

În figura 4 a fost tratat cazul în care adăugarea alimentului în jurnal, va fi realizată de către asistent, la
indicațiile utilizatorului. Cel din urmă îi va spune ce aliment dorește adăugat în jurnal, iar dacă au fost
furnizate toate informațiile în acest sens ( tipul mesei, cantitatea și numele ), asistentul va face
adăugarea, iar sistemul o va procesa.
b) Diagrama de activitate pentru crearea unui cont

Figura 5 -Diagrama de activitate “Crearea unui cont”

În figura 5 este descris procesul de creare al unui cont de utilizator. Utilizatorul va introduce datele
personale legate de cont (nume, prenume, email, parola, raspunsul de recuperare al parolei). Sistemul
va verifica corectitudinea acestora și în funcție de rezultat, îl va redirecționa pe utilizator către secțiunea
în care va putea dialoga cu asistentul, sau îl va ruga să își reintroducă datele corecte. Odată ajuns în
chatul online, utilizatorul va alege dacă dorește sau nu să dialogheze cu asistentul virtual.

c) Diagrama de activitate pentru dialogul de îndrumare asistent-utilizator


Figura 6 -Diagrama de activitate “Dialog îndrumare asistent-utilizator”

În figura 6 se poate observa procesul de interacțiune privind îndrumarea asistentului pentru utilizator.
Utilizatorul îi va comunica dorința sa legată de fitness, asistentul îi va cere acordul de prelucrare a
datelor personale și dacă îl va avea, odată ce va primi datele de la utilziator, îi va calcula necesarul zilnic
caloric și va pregăti un tip de dietă, un supliment și un tip de antrenament. Asistentul îl va întreaba pe
utilizator în ce aspect dorește o îndrumare, iar acesta va putea alege orice combinație dintre cele 3:
antrenament, nutriție și suplimente. În funcție de răspunsul utilizatorului, asistentul îi va oferi
îndrumarea corespunzătoare și va transmite către sistem toate aceste date, care vor fi apoi procesate.
Utilizatorul poate alege să nu aibă îndrumare în niciun domeniu, caz în care va acționa conform
cunosțintelor sale, dar tot va putea să beneficieze de modificarea contului și a jurnalului, din partea
asistentului.

2.2. Diagrama de clase


Aplicația realizată are 9 clase, după cum se poate observa și în diagrama din figura 7. Acestea
sunt:
Utilizator: în cadrul acestei clase cuprinde date legate de cont (nume, prenume, email, respunsul
pentru recuperarea parolei, parola și tokenul de recuperare parola, timp expirare token, data
nasterii, sex, tipul contului) și prin intermediul ei vor fi accesate celelalte clase
Asistent Virtual: prin intermediul acestei clase se vor putea efectua modificari asupra instanțelor
celorlalte clase
Detalii Fitness: cuprinde informațiile legate de fitness ale utilizatorului(kg, înălțime, obiectiv,
informații calorice etc)
Alimente: cuprinde informațiile nutriționale ale fiecărui aliment
Exerciții: cuprinde informații legate de parametrii sportivi aflați în fiecare exercițiu
Suplimente: cuprinde informațiile nutriționale ale fiecărui supliment
Informații: cuprinde orice aspect legat de fitness, cu scop informativ
Obiective: cuprinde numele fiecarui obiectiv sportiv
Context: cuprinde datele salvate ale conversației dintre utilizator și asistent

Figura 7 -Diagrama de clase

2.3. Diagrame de stare


a) Diagrama de stare pentru descrierea operațiilor referitoare la adăugarea unui exercițiu îm
jurnalul personal (cazul în care utilizatorul realizează manual adăugarea)
Figura 8 -Diagrama de stare “Gestiune exercitiu in jurnal”

În figura sunt detaliate stările prin care un exercițiu trece, la adăugarea sa de către utilizator, în jurnalul
personal.

b) Diagrama de stare privind gestionarea datelor contului (cazul în care utilizatorul realizeză
gestionarea manual)

Figura 9 -Diagrama de stare “Gestiune cont”

Figura 8 ilustrează stările prin care trec datele din contul unui utilizator. Acestea sunt inițial procesate și
adăugate de către asistent, pentru ca mai apoi să poată fi modificate sau vizualizate atât de utilizator,
cât și de asistent.

2.4. Diagrame de interactiune


Diagramele de interacțiune modelează aspectele dinamice ale sistemului, fiind alcătuite dintr-un
set de obiecte si relațiile dintre ele. Există 2 tipuri de diagrame de interacțiune: diagrama de
secvență și diagrama de comunicare. Aceste 2 tipuri sunt echivalente din punct de vedere
semantic și se pot transforma una din alta. Am optat să realizez 3 diagrame de secvență.
a) Diagrama de secvență pentru descrierea scenariului „Primire regim fitness”
Actorii implicați în acest proces sunt utilizatorul aplicației și asistentul virtual. Utilizatorul
inițiaza o conversatie cu asistentul și îi comunică acestuia obiectivul său în materie de fitness.
Dacă utilizatorul își va da acordul privind prelucrarea datelor personale, asistentul îl va ruga să îi
furnizeze detalii precum vârsta, sex, înălțime, grad de activitate fizică zilnică, pe baza cărora
asistentul îi va calcula mentenanța calorică. Apoi, în funcție de obiectivul comunicat, utilizatorul
va primi o dieta și un tip de antrenament corespunzătoare.
Notă: vom considera cazul în care utilizatorul își va da acordul pentru prelucrarea datelor sale.

Figura 10 -Diagrama de interacțiune “Primire regim fitness”

b) Diagrama de secvență pentru descrierea scenariului „Solicitare informație fitness”


Actorii implicați în acest scenariu sunt utilizatorul și asistentul virtual. Utilizatorul inițiază un
dialog cu asistentul, solicitându-i acestuia informații despre un anumit aspect din fitness.
Asistentul va procesa cererea făcută, iar dacă va găsi informația, o va transmite utilizatorului,
apoi către sistem, care o va adăuga în secțiunea de „Home” a aplicației.

Figura 11 -Diagrama de interacțiune “Solicitare informatie fitness”

c) Diagrama de secvență pentru descrierea scenariului „Desfășurare obiectiv”


La fel ca în cazul primelor 2 diagrame de interacțiune, și aici actorii din proces sunt asistentul
virtual și utilizatorul. După ce utilizatorul i-a comunicat obiectivul si a primit regimul fitness,
asistentul va iniția obiectivul, prelucrând datele zilnice introduse în aplicație, ale utilizatorului
(alimente, exerciții, suplimente și caloriile asociate acestora). Obiectivul se va desfăsura pe zile,
progresul fiind înregistrat la sfârșitul fiecăreia. Sistemul va primi datele de la asistent și le va
actualiza în cadrul aplicației. După ce procesul a fost înregistrat pentru o zi, se va trece automat
la următoarea, asistentul comunicându-i utilizatorului la finalul zilei, statusul acesteia (dacă a
atins necesarul caloric). Odată ce numărul de zile destinat obiectivului se va termina, asistentul îi
va comunica utilizatorului rezultatele finale opținute, iar sistemul va marca obiectivul ca fiind
închis.
Figura 12 -Diagrama de interacțiune “Desfășurare obiectiv”
2.5 Rafinarea diagramelor UML

Figura 13 –Diagrama de clase rafinată


2.6 Diagrame de procese și colaborare BPMN

a) Diagrama de proces pentru adăugare supliment în jurnal

Figura 14 -Diagrama de proces pentru adăugarea unui supliment în jurnal

b) Diagrama de colaborare pentru modificarea unui obiectiv

Figura 15 -Diagrama de colaborare pentru modificarea unui obiectiv


3. Proiectarea sistemului informatic
3.1. Diagrama de clase detaliată
Diagrama de clase detaliată este realizată pornind de la diagrama de clase prezentată în capitolul
2. Aceasta prezintă clasele împreună cu atributele și metodele corespunzătoare acestora.

Figura 16 -Diagrama de clase detaliată

3.2. Proiectarea bazei de date


Sistemul informațional pe care am ales să îl dezvolt, are la bază un model de date relațional.
Schema conceptuală a bazei de date este prezentată în figura 17. Aplicația lucrează cu 16 tabele,
iar schema bazei de date a fost generată cu Visual Studio Paradigm.
Analizând diagrama clasei detaliată și schema conceptuală a bazei de date, se poate observa că
numărul de clase este egal cu cel al tabelelor, iar denumirile coincid. Acest lucru se datorează
faptului că am folosit un framework de mapare relațională la obiecte, numit Sequelize. Prin
intermediul acestuia, maparea dintre tabele și clase este de 1 la 1, inclusiv pe tabelele de legătură.
Figura 16 –Schema conceptuală a bazei de date

3.3. Proiectarea interfețelor utilizator

Identificarea și înțelegerea nevoilor utilizatorilor finali sunt surprinse cu ajutorul proiectării


interfețelor utilizator. Diagrama din figura 17 prezintă o hartă a paginilor sistemului informatic,
în care sunt surprinse funcționalitățile cheie și fluxul acestuia. Am realizat această diagramă,
folosind tool-ul online draw.io.
3.4. Diagrama de desfășurare
În diagrama de desfășurare este prezentată structura sistemului în momentul execuției. Se poate
observa că acesta conține următoarele elemente: calculator conectat la internet, serverul web, aplicația
express, baza de date MySQL, care este folosită de client.

Figura 18 –Diagrama de desfășurare

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