PROJECT NAME OFFER

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

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 | 3

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

Specificatie Software Page | 17

Usurinta in utilizare

OUT OF SCOPE