specificatie software - academiadesoftware.ro · daca datele introduse respecta criteriile de...
TRANSCRIPT
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 ................................................................................................................ 6
Descrierea relatiilor ........................................................................................................ 7
Entitatea Student ............................................................................................................ 7
Entitatea Grupa ............................................................................................................... 8
Entitatea Profesor ........................................................................................................... 8
Entitatea Materie ............................................................................................................ 8
Entitatea Locatie ............................................................................................................. 9
Entitatea Orar ................................................................................................................. 9
Entitatea Mesaj ............................................................................................................. 10
4 - Cerinte functionale ..................................................................................................... 11
Aplicatia mobila ............................................................................................................ 11
Aplicatia de administrare ............................................................................................. 15
5 - Cerinte nefunctionale ................................................................................................. 18
Audit ............................................................................................................................... 18
Backup ........................................................................................................................... 18
Monitorizare .................................................................................................................. 18
Volume de date ............................................................................................................. 18
Performanta .................................................................................................................. 19
Disponibilitate ............................................................................................................... 19
Documentatie ............................................................................................................... 19
Garantie ......................................................................................................................... 19
Localizare....................................................................................................................... 19
Specificatie Software
Page | 3
Securitate ...................................................................................................................... 20
Scalabilitate ................................................................................................................... 20
Tehnologie ..................................................................................................................... 20
Usurinta in utilizare ...................................................................................................... 20
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
Specificatie Software
Page | 5
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 | 6
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 | 7
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, respectiv 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
Specificatie Software
Page | 8
Entitatea Grupa
Reprezinta o grupa de studenti a facultatii. Atributele relevante sunt:
Atribut Tip Validare Descriere
Numar Text Obligatoriu Denumirea grupei. Ex:
322AA
An Numeric Obligatoriu
Valoare intre 1 si 5
Anul din care face grupa
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
Specificatie Software
Page | 9
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
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
ProfesorMaterie Referinta
ProfesorMaterie
Obligatoriu
Locatie Referinta Locatie Obligatoriu
Data Data Obligatoriu
Ora inceput Ora Obligatoriu
Ora sfarsit Ora Obligatoriu
Detalii Text Detalii optionale despre
curs
Specificatie Software
Page | 10
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 la
adaugare
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 | 11
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.
Specificatie Software
Page | 12
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.
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
Specificatie Software
Page | 13
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
- 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.
Specificatie Software
Page | 14
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 | 15
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.
Specificatie Software
Page | 16
Administrare grupe
Comportament CRUD
La vizualizare grupele trebuie ordonate implicit alfabetic.
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.
Specificatie Software
Page | 17
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.
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 | 18
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.
Specificatie Software
Page | 19
Utilizarea aplicatiei va fi probabil distribuita aproximativ egal pe perioada unei zile in
intervalul orar 7 – 23 (16 ore).
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 date
- 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 eventualele defecte descoperite .
Localizare
Interfata aplicatiilor va fi in limba romana. Nu sunt prevazute localizari in alte limbi in
viitor.
Specificatie Software
Page | 20
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
Usurinta in utilizare
OUT OF SCOPE