PROJECT NAME OFFER
Transcript of PROJECT NAME OFFER
Specificatie software
Specificatie Software
Client: Universitatea Politehnica Bucuresti – Facultatea de Automatica si Calculatoare
Proiect: Aplicatie Orar
www.essensys.ro Essensys Software 2005 - 2017
Acest material este proprietate exclusiva a SC ESSENSYS SOFTWARE SRL, avand Cod Unic de Inregistrare RO1739382,
inregistrata sub numarul J40/5499/2005 la Registrul Comertului, in Bucuresti, ROMANIA.
Respectarea si aplicarea legilor referitoare la drepturile de autor cad in resposabilitatea persoanelor indreptatite sa
foloseasca prezentul document.
Nicio parte din acest document nu poate fi reprodusa, stocata sau introdusa intr-un sistem unde poate fi accesata, sau
transmisa in orice forma, prin orice mijloace (electronice, mecanice, postale, de inregistrare, de foto-copiere sau de alt
tip), in niciun scop, fara permisiunea in scris a unui reprezentant autorizat al Essensys Software.
Essensys Software poate detine patente, patente in curs de inregistrare, marci inregistrate, drepturi de autor, sau alt tip
de proprietate intelectuala care acopera cele prezentate in acest document. Cu exceptia acelor situatii in care Essensys
Software emite un document de licentiere in scris pentru patente, patente in curs de inregistrare, marci inregistrate,
drepturi de autor sau alt timp de proprietate intelectuala pe care le detine, acest document nu da dreptul detinatorului
asupra lor.
Descrierea produselor altor companii din acest document, daca exista, serveste spre a ajuta detinatorul in a intelege
anumite concepte sau situatii. Orice referire la astfel de produse nu trebuie considerata o forma de reclama din partea
Essensys Software. Essensys Software nu garanteaza acuratetea descrierii produselor, iar aceste produse se pot modifica
in timp. Pentru o mai buna intelegere asupra acestor produse va rugam sa consultati producatorii lor.
Toate drepturile rezervate. Orice folosire sau distribuire a acestui material fara permisiunea in scris a unui reprezentant
autorizat al Essensys Software este strict interzisa.
Numele companiilor sau al produselor mentionate in acest document se afara in proprietatea detinatorilor de drept.
Specificatie Software Page | 2
Continut
1 - Scop ................................................................................................................... 4
3 – Model entitati ..................................................................................................... 5
Descrierea relatiilor ............................................................................................... 6
Entitatea Student .................................................................................................. 6
Entitatea Grupa ..................................................................................................... 6
Entitatea Profesor.................................................................................................. 7
Entitatea Materie ................................................................................................... 7
Entitatea Locatie ................................................................................................... 7
Entitatea Orar ....................................................................................................... 8
Entitatea Mesaj ..................................................................................................... 8
4 - Cerinte functionale .............................................................................................. 9
Aplicatia mobila ..................................................................................................... 9
Aplicatia de administrare ...................................................................................... 12
5 - Cerinte nefunctionale ......................................................................................... 15
Audit .................................................................................................................. 15
Backup ............................................................................................................... 15
Monitorizare ........................................................................................................ 15
Volume de date ................................................................................................... 15
Performanta ........................................................................................................ 16
Disponibilitate ..................................................................................................... 16
Documentatie ..................................................................................................... 16
Garantie ............................................................................................................. 16
Localizare ........................................................................................................... 16
Securitate ........................................................................................................... 16
Scalabilitate ........................................................................................................ 16
Tehnologie .......................................................................................................... 16
Usurinta in utilizare ............................................................................................. 17
Specificatie Software Page | 4
1 - Scop
Scopul principal al proiectului este implementarea unei aplicatii mobile prin intermediul
careia studentii facultatii sa poata consulta orarul.
Pentru a putea sustine aceasta aplicatie este de asemenea necesara implementarea unei
baze de date centrale unde va fi stocat orarul, precum si o aplicatie web de administrare,
prin intermediul careia personalul administrativ al facultatii sa incarce datele legate de orar
si sa efectueze modificari asupra acestuia.
Sistemul va fi astfel folosit de doua categorii de utilizatori: Studenti si Administratori.
Studenti
Studentii vor avea acces doar la aplicatia mobila. Scopul principal al acestora este
consultarea orarului. De asemenea acestia vor putea accesa o camera de chat disponibila
pentru fiecare grupa.
Administratori
Administratorii vor accesa doar aplicatia web de administrare in scopul editarii orarului din
fiecare an.
NOTA:
Acest document de specificatii este scris in scopul derularii unui curs introductiv adresat
studentilor in scopul familiarizarii acestora cu procesul de dezvoltare software folosit in
industrie. Pe parcursul cursului, studentii vor implementa diversele componente ale acestei
aplicatii, astfel incat la finalul cursului vor avea o mica aplicatie mobila functionala, precum
si o aplicatie web functionala.
Scopul acestui document este familiarizarea cursantilor cu structura unui document de
specificatii.
Din aceste motive cerintele aplicatiei sunt foarte simpliste. Astfel nu sunt acoperite
functionalitati cum ar fi inregistrarea utilizatorilor, autentificare, securitate, precum si multe
alte functionalitati necesare unei astfel de aplicatii: posibilitatea de a suporta mai multe
facultati, mai multi ani de studii, validare studenti, aplicatie mobila utilizata si de profesori,
samd.
Specificatie Software Page | 5
3 – Model entitati
Informatiilor ce trebuie stocate in sistem sunt associate urmatoarelor entitati: Studenti,
Grupe, Profesori, Orar, Locatii, Materii, Mesaje si inregistrari de orar.
Diagrama conceptuala a acestor entitati si relatiile dintre ele sunt descrise in diagrama de
mai jos.
Entitatile de mai jos vor fi stocate intr-o baza de date relationala. La momentul proiectarii
detaliate se va realiza diagrama detaliata a bazei de date.
Studenti
Profesori
Materii
Grupe
Locatii
Mesaje
Orar
1
2
3
4
5
6
8
6
Specificatie Software Page | 6
Descrierea relatiilor
1. O grupa are asociati mai multi studenti.
2. Un profesor poate sa predea mai multe materii si in acelasi timp o materie este
predata de mai multi profesori. Relatia reprezinta doar competenta unui profesor de
a preda o anumita materie, nu si faptul ca profesorul preda materia respectiva. Acest
ultim aspect este asigurat de entitatea orar.
3. O intrare de orar are asociata o grupa sau o grupa are asociate mai multe inregistrari
de orar.
4. O intrare de orar are asociat un profesor, respectiv un profesor are mai mai multe
inregistrari in orar.
5. O intrare de orar are asociata o materie, respectiv o materie este predata la mai
multe ore (inregistrari orar)
6. O intrare de orar are asociata o locatie, respectiv o locatie este folosita la mai multe
ore
7. O grupa are mai multe mesaje (camera chat)
8. Un mesaj este asociat unui student, respecti un student are mai multe mesaje.
Entitatea Student
Entitatea reprezinta un student care poate accesa sistemul, iar atributele relevante sunt:
Atribut Tip Validare Descriere
Nume Text Obligatoriu
Prenume Text Obligatoriu
Email Text Obligatoriu Format email corect
Data nasterii Data Obligatoriu
Telefon Text
Grupa Referinta grupa Obligatoriu Reprezinta grupa din care face parte studentul
Entitatea Grupa
Reprezinta o grupa de studenti a facultatii. Atributele relevante sunt:
Atribut Tip Validare Descriere
Numar Numeric Obligatoriu Denumirea grupei. Ex: 322AA
An Numeric Obligatoriu Valoare intre 1 si 5
Anul din care face grupa
Specificatie Software Page | 7
Entitatea Profesor
Reprezinta un profesor in cadrul facultatii. Atributele relevante sunt:
Atribut Tip Validare Descriere
Nume Text Obligatoriu
Prenume Text Obligatoriu
Email Text Obligatoriu Format email corect
Telefon Text Obligatoriu
Grad Lista Obligatoriu Un element din lista de grade posibile: profesor, asistent, laborant.
Anul angajarii Numeric Obligatoriu > 1900
Activ Logic Obligatoriu Indica daca profesorul este activ si poate fi alocat pentru cursuri
Entitatea Materie
Reprezinta o materie ce face parte din curicula facultatii. Atributele relevante sunt:
Atribut Tip Validare Descriere
Denumire Text Obligatoriu
Prescurtare Text Obligatoriu Denumirea scurta a materiei
Detalii Text Obligatoriu Detalii despre continutul cursului / seminarului /etc.
Entitatea Locatie
Reprezinta o locatie in cadrul facultatii in care se pot tine cursuri sau seminarii. Atributele
relevante sunt:
Atribut Tip Validare Descriere
Denumire Text Obligatoriu Denumirea salii. Ex: EC 101
Capacitate Numeric Obligatoriu Numarul de locuri disponibile
Activa Logic Obligatoriu Este activa sau nu
Adresa Text Obligatoriu
Specificatie Software Page | 8
Entitatea Orar
Intrarea de orar reprezinta o intrare in orar si are asociata o grupe, o materie, un profesor,
o locatie si intervalul orar in care se va desfasura respectivul curs sau seminar.
Atribut Tip Validare Descriere
Grupa Referinta Grupa Obligatoriu
Materie Referinta Materie Obligatoriu
Profesor Referinta Profesor Obligatoriu
Locatie Referinta Locatie Obligatoriu
Data inceput Data Obligatoriu
Ora inceput Ora Obligatoriu
Data sfarsit Data Obligatoriu
Ora sfarsit Ora Obligatoriu
Detalii Text Detalii optionale despre curs
Entitatea Mesaj
Fiecare grupa va avea o camera de chat accesibila tuturor studentilor. O entitate mesaj
reprezinta un mesaj al unui student transmis in aceasta camera la un moment de timp.
Atribut Tip Validare Descriere
Student Referinta student Obligatoriu Studentul care a transmis mesajul
Timp Data si timp Obligatoriu Timpul exact la care a fost transmis cu precizie cat mai mare (e.g. milisecunde). Precizia este necesara pentru ordonare cronologica.
Text Text Obligatoriu Textul mesajului
Grupa Referinta grupa Obligatoriu Camera de chat (grupa) unde a fost transmis mesajul
Specificatie Software Page | 9
4 - Cerinte functionale
Aplicatia mobila
Aplicatia de mobil va fi utilizata de studenti pentru vizualizarea orarului si pentru conversatii
in camera de chat asociata grupei din care fac parte.
NOTA: Din motive de timp si pentru simplificare, aplicatia de mobil va fi disponibila doar
pe Android. Aplicatia de iOS ar avea aceleasi functionalitati dar tehnologia de implementare
ar fi diferita.
Macheta nefunctionala
Pentru intelegerea completa a functionalitatii este recomandata consultarea specificatiilor
functionale in parale cu parcurgerea machetei utilizator.
Inregistrare automata
In momentul in care un student deschide pentru prima oara aplicatia i se vor solicita
informatiile personale descrise in atributele entitatii student. Pentru grupa studentul va
putea alege o optiune dintr-o lista.
Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va
verifica daca adresa de email exista deja in baza de date.
Daca adresa NU exista sistemul va crea automat o inregistrare de tip student si va permite
accesul studentului in aplicatie. Daca adresa exista deja (studentul deja s-a inregistrat)
aplicatia va permite direct accesul studentului in aplicatie (fara a mai crea o inregistrare).
Dupa ce utilizatorul trece de ecranul de inregistrare si are acces in aplicatie, acest ecran nu
va mai fi afisat chiar daca utilizatorul inchide aplicatia.
NOTA: In mod uzual o astfel de aplicatie presupune functionalitati de inregistrare a
studentilor, validare a acestora si apoi login cu user & parola si diverse masuri de securitate.
Pentru a simplifca cerintele, aplicatia de mobil nu va avea acest functionalitati ci o
inregistrare automata.
Specificatie Software Page | 10
Vizualizare calendar
Folosind aceasta functie studentii vor putea vizualiza calendarul de cursuri pentru o anumita
zi. Implicit aplicatia va afisa orarul pentru ziua curenta.
Selectie data
Utilizatorul va putea selecta o data din calendar pentru vizualizarea orarului.
Gesturi swipe pentru schimbarea datei
De asemenea folosind gesturi (swipe left/right) vor putea schimba ziua.
Afisare orar in format tabular
Inregistrarile din orar vor fi afisate in format tabelar. Fiecare celula reprezentand o ora.
Prima celula va corespunde orei 8:00 iar ultima celula orei 22:00 (14 ore in total).
In cazul in care nu exista cursuri programate la o anumita ora. Celula respectiva va fi goala.
Astfel tabelul va avea aceeasi structura indiferent de orar.
In cazul in care exista un curs programat la o anumit ora, in celula se va afisa denumirea
scurta a materiei.
Vizualizare detalii
La gestul Tap (atingere) a unei cellule se vor afisa detaliile cursului, respectiv:
- Prescurtarea materiei
- Denumirea materiei
- Profesor
- Locatie
- Adresa locatiei
- Capacitatea locatiei
- Detalii despre materie
Utilizatorul va putea inchide detaliile pentru a reveni la calendar.
Conversatie
Folosind aceasta functionalitate studentii din aceeasi grupa vor putea conversa intre ei.
Vizualizare conversatie
Se vor afisa mesajele in ordine cronologica a transmiterii cu posibilitatea de scroll intre
mesaje (swipe sus/jos). Pentru fiecare mesaj se va afisa:
- Numele studentului
Specificatie Software Page | 11
- Textul transmis
- Data si ora transmiterii
Preferabil dar nu obligatoriu mesajele care apartin utilizatorului curent sa fie afisate in
dreapta, in timp ce mesajele celorlalti utilizatori sa fie afisate in stanga (stil Facebook
messenger, Whatsapp, etc.)
Refresh automat si manual
Lista de mesaje va fi actualizata automat la un anumit interval. De asemenea utilizatorul va
putea sa actualizeaza lista si manual (refresh). Pentru a nu incarca foarte mult aplicatia,
trebuie dezvoltat un mecanism de protectie cu timer (cool-down), astfel dupa ce un
utilizator face refresh manual sa nu poata face un nou refresh decat dupa ce trece un
interval de timp.
NOTA: in mod normal o aplicatie de mesageri trebuie sa foloseasca si notificari. Spre
exemplu in momentul in care apare un mesaj nou in chat, utilizatorul trebuie notificat printr-
o notificare push. Din pacate notificarile presupun o infrastructura mult mai complexa si nu
vom putea sa le acoperim in acest curs.
Mesaj nou
Un utilizator va putea adauga un text nou pentru a transmite un mesaj.
Logout
Utilizatorii se vor putea deconecta de la aplicatia. In acest caz se va reafisa ecranul de
inregistrare si utilizatori vor fi obligati sa ii reintroduce datele.
Specificatie Software Page | 12
Aplicatia de administrare
Scopul principal al aplicatiei de administrare este sa permita personalului administrativ
configurare orarului, a materiilor, samd.
In mare aplicatia de administrare va permite adaugarea (Create), vizualizare (Read)
modificare (Update) si stergerea de entitati (Delete) din baza de date. Ceea ce este numit
in general comportament crud. Astfel in descriere functiilor aplicatiei de administrare,
pentru a nu incarca documentul de specificatii, vom denumi acest set de functii
“Comportament CRUD” fara a mai oferi alte detalii decat acolo unde este necesar.
La adaugare si modificare vor fi editabile toate atributele inregistrarii si se vor aplica toate
regulile de validare.
La vizualizare, listele de inregistrari vor fi paginate afisand un numar parametrizabil de
inregistrari (parametrizabil din configurarile de sistem ale aplicatiei). Utilizatorii vor avea
posibilitatea de a parcurge lista de pagini.
La vizualizare, listele de inregistrari vor fi sortabile si in anumite cazuri documentat filtrabile.
La stergere trebuie aplicate diverse verificari si asigurata consistenta relationala a bazei de
date. Spre exemplu nu se poate sterge o grupa daca are studenti asociati.
Administrare studenti
Comportament CRUD
Functia de creat studenti nu este neaparat necesara deoarece studentii se inregistreaza
singuri.
Stergere
Se va sterge inregistrare dar mesajele studentului se vor pastra. In dreptul mesajelor se va
afisa textul „Student sters“
Vizualizare filtrata dupa grup
La vizualizarea (R) administratorii trebuie sa poata filtra lista de studenti dupa grupa.
Administrare grupe
Comportament CRUD
La vizualizare grupele trebuie ordonate implicit alfabetic.
Specificatie Software Page | 13
Stergere
O grupa nu poate fi stearsa daca are studenti asociati. Acestia trebuie inainte de stergere
mutati in alta grupa. La stergerea unei grupe se vor sterge toate mesajele si toate
inregistrarile de orar asociate.
Administrare profesori
Comportament CRUD
La vizualizare profesorii trebuie ordonati implicit alfabetic in ordinea numelui.
Stergere
Un profesor nu poate fi sters daca are inregistrari de orar asociate. Inainte de stergere este
necesara inlocuirea profesorului. La stergerea unui profesor se vor sterge si toate asocierile
cu materiile pe care le poate preda (evident fara a sterge materiile).
Administrare materii
Comportament CRUD
La vizualizare materiile trebuie ordonate implicit alfabetic in ordinea prescurtarii.
Stergere
O materie nu poate fi stearsa daca este asociata unei inregistrari de orar. La stergerea unei
materii se vor sterge asocierile cu profesorii.
Administrare locatii
Comportament CRUD
La vizualizare locatiile trebuie ordonate implicit alfabetic in ordinea numelui.
Stergere
O locatie nu poate fi stearsa daca este asociata unei inregistrari de orar.
Administrare orar
Comportament CRUD
Stergere
O inregistrare de orar poate fi stearsa fara constrangeri.
Specificatie Software Page | 14
Filtrare
La vizualizare administratorii trebuie sa poata filtra inregistrarile din orar dupa grupa si/sau
profesor si/sau materie si/sau locatie.
Vizualizare mesaje
Vizualizare
Administratorii trebuie sa poata vedea mesajele din fiecare grupa.
Stergere mesaje
Administratorii vor putea sterge mesajele nepotrivite.
Specificatie Software Page | 15
5 - Cerinte nefunctionale
NOTA: Sectiunea de cerinte nefunctionale contine cerinte despre alte aspecte si
comportamente pe care sistemul trebuie sa le respecte. In scopul cursului am dat doar
cateva exemple de astfel de cerinte, dar in general acest capitol este mult mai complex si
are o importanta foarte mare in arhitectura sistemului.
Audit
OUT OF SCOPE
Backup
OUT OF SCOPE
Monitorizare
OUT OF SCOPE
Volume de date
Este estimat un numar de maxim 5000 studenti.
Nr administratori maxim 20
Nr grupe maxim 50 (pentru 5 ani de studiu, 10 grupe/an)
Nr inregistrari orar maxim 7000 (50 grupe x 14 saptamani / semestru x 2 semestre)
Numarul de mesaje este greu de estimat. Dar vom presupune ca un student va da 3 mesaje
pe zi in medie. Avand in vedere volumul mare este posibil sa fie necesare masuri de
optimizarea a functionalitatii de mesagerie.
Estimari de utilizare
Estimam ca un student va deschide aplicatia in medie de 3 ori pe zi.
Utilizarea aplicatiei va fi probabil distribuita aproximativ egal pe perioada unei zile in
intervalul orar 7 – 23 (16 ore).
Specificatie Software Page | 16
Performanta
Aplicatia mobile ar trebuie sa afiseze calendarul pentru o zi in mod uzual in cel mult 2
secunde in conditii normale de utilizare si in maxim 5 secunde in conditii atipice de utilizare.
Disponibilitate
OUT OF SCOPE
Documentatie
Se vor furniza urmatoare documente:
- Specificatie Software
- Macheta nefunctionala
- Diagrama bazei de data
- Document de arhitectura
- Document de instalare
- Document de utilizare pentru aplicatia de administare
- Procedura de backup
Garantie
Garantia oferita va fi de 1 an de la lansarea in productie. In perioada de garantie furnizorul
va fixa fara costuri eventualelel defecte descoperite
Localizare
Interfata aplicatiilor va fi in limba romana. Nu sunt prevazute localizari in alte limbi in viitor.
Securitate
OUT OF SCOPE
Scalabilitate
OUT OF SCOPE
Tehnologie
Aplicatiile vor folosi urmatoarele tehnologii: Microsoft SQL Server, .Net Framework, Entity
Framework, ASP.Net MVC, Web.Api, Java, JavaScript, Json