specificatie software - academiadesoftware.ro · daca datele introduse respecta criteriile de...

21
Specificatie software Specificatie Software Client: Universitatea Politehnica Bucuresti – Facultatea de Automatica si Calculatoare Proiect: Aplicatie Orar www.essensys.ro Essensys Software 2005 - 2017

Upload: others

Post on 14-Sep-2019

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

Specificatie software

Specificatie Software

Client: Universitatea Politehnica Bucuresti – Facultatea de Automatica si

Calculatoare

Proiect: Aplicatie Orar

www.essensys.ro Essensys Software 2005 - 2017

Page 2: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 3: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 4: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

Specificatie Software

Page | 3

Securitate ...................................................................................................................... 20

Scalabilitate ................................................................................................................... 20

Tehnologie ..................................................................................................................... 20

Usurinta in utilizare ...................................................................................................... 20

Page 5: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 6: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 7: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 8: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 9: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 10: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 11: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 12: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 13: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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

Page 14: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 15: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 16: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 17: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 18: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 19: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 20: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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.

Page 21: Specificatie Software - academiadesoftware.ro · Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca adresa de email exista deja

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