Sunteți pe pagina 1din 35

Contents

Introducere ............................................................................................................................................ 3
1.

2.

Analiza domeniului de studiu....................................................................................................... 4


1.1.

Alegerea temei i argumentarea ei ...................................................................................... 4

1.2.

Comparaie cu alte sisteme existente ................................................................................... 5

1.3.

Limbajul de programare C# .............................................................................................. 10

1.4.

ASP.NET .............................................................................................................................. 13

1.5.

Modelul arhitectural Model-View-Controller .................................................................. 13

1.6.

Baza de Date MongoDB...................................................................................................... 15

1.7.

Team Foundation Server .................................................................................................... 15

1.8.

Visual Studio ......................................................................................................................... 16

Modelarea sistemului utiliznd limbajul UML ............................................................................. 17


2.1.

Descrierea succint a responsabilitilor asignate sistemului ............................................ 17

2.2.

Determinarea cerinelor funcionale ale sistemului ........................................................... 17

2.3.

Determinarea cerinelor nefuncionale ale sistemului ....................................................... 18

2.4.

Diagrama de context ............................................................................................................ 19

2.5.

Diagrama caz de utilizare(DCU) ........................................................................................... 20

2.6.

Diagrama de secven(DDS)................................................................................................. 23

2.7.

Diagrama de colaborare (DDC) ............................................................................................ 25

2.8.

Diagrama de clas (DDC) ...................................................................................................... 26

2.9.

Diagrama de stri (DDS) ....................................................................................................... 29

2.10.

Diagrama de activiti (DDA) ........................................................................................... 31

2.11.

Diagrama de componente (DDC) ..................................................................................... 32

2.12.

Diagrama de amplasare (DDA)......................................................................................... 34

Concluzii ............................................................................................................................................... 35
Bibliografie ........................................................................................................................................... 36

Introducere
Aceast lucrare, ce reprezint practic de licen are ca scop descrierea amnunit a
lucrrii de diplom i a domeniul de studiu. Descrierea ncepe cu analiza domeniului i a
platformelor i limbajelor ce vor fi utilizate cu tot cu avantaje i explicarea cauzei utilizrii lor.
Internetul este o vast reea de calculatoare, care conecteaz ntre ele milioane de reele
mai mici din ntreaga lume. La reeaua Internet pot fi conectate toate tipurile de calculatoare.
Toate calculatoarele conectate la Internet fac schimb de informaii. Aceast reea uria de
calculatoare nu este controlat de nici un guvern sau organizaie, nu are un administrator unic.
Totui, anumite reele conectate la Internet sunt controlate de anumite companii. n fiecare lun
reeaua Internet se extinde cu milioane de utilizatori. Viitorul Internetului este deosebit de
promitor. Programele utilizate devin din ce n ce mai prietenoase i mai uor de folosit.
n aceast lucrare voi analiza detaliat realizarea unui sistem informaional
Monitorizare disciplinei de munca al angajailor. Sistemul de monitorizare a angajailor este
creat pentru a monitoriza i raporta datele privind efectuarea distribuiilor de pliante. Pe
parcursul lucrrii voi explica i voi aduce dovezi de necesitate a unui astfel de sistem pe piaa
noastr. Voi trece n revist modelul arhitectural dup care urmeaz a fi implementat sistemul,
clasele i interfeele. Pe parcursul lucrrii voi pune accent pe importana temei alese i a
domeniului. Voi analiza sistemele deja existenta, pe acelea de pe piaa noastr i acelea strine.
Pentru a realiza un astfel de sistem este nevoie de cunostine n domeniul dezvoltrilor
aplicaiilor WEB , a sistemelor distribuite precum i cunoaterea proiectrii bazelor de date.
Modul de interaciune al utilizatorilor cu sistemul conteaz foarte mult, acesta trebuie s fie
uor i s nu necesite cunotine avansate. Pentru utilizarea sistemului, compania va avea
nevoie de un calculator care va reprezenta serverul, dispozitive mobile Android pentru
distribuitori, iar clienii acestora vor avea nevoie doar de un calculator cu un browser Web.

1. Analiza domeniului de studiu


1.1. Alegerea temei i argumentarea ei
Analiznd modul de distribuire a pliantelor, mi-am pus ntrebare cum clientul rmne sigur
i mulumit de mprirea lor, din aceast cauz am i ales aceast tem. Nici o companie din
cele ce ofer servicii de distribuire a pliantelor nu ofer sisteme de monitorizare a acestui
proces. Analiznd aplicaiile Web, piaa aplicaiilor mobile

i posibilitile sistemelor

WEB+mobile, am concluzionat c un asemenea sistem ar fi un avantaj n prestarea acestui gen


de serviciu. Asftel n ct n parteneriat cu una din companiile de publicitate din Chiinu am
decis s realizm acest sistem.
Sistemul va fi realizat n limba romn, englez i rus i utiliznd mecanismele de localizare
sistemul uor poate comuta ntre aceste limbi. Sistemul include n sine 3 pri:
-

Partea de administrare

Aplicaia mobil a distribuitorilor

Interfaa client.

Funciile ndeplinite de partea de administrare sunt:


-

nregistrarea utilizatorilor i asigurarea autorizrii acestora

nregistrarea clienilor(companiilor)

nregistrarea distribuitorilor

nregistrarea dispozitivelor mobile.

nregistrarea i modificarea planelor de distribuie a pliantelor

Funciile ndeplinite de aplicaia mobil sunt:


-

nregistrarea n cadrul sistemului

Start/Stop distribuire

Captare imagini

Funciile ndeplinite de interfaa client sunt de vizualizare a:


-

distribuiilor curente

distribuiilor deja terminate

istoricului

simulare micare distribuitor


4

fotografiilor fcute de distribuitori.

1.2. Comparaie cu alte sisteme existente


n cadrul proiectrii sistemului dat, am analizat alte soluii prezente pe pia. Din pcate pe
piaa autohton nu am gsit produse asemntoare, dar am gsit exemplare elocvente pe piaa
strin.
n urmare, a dori s prezint scurt aceste sisteme i dispozitive, s le compar evideniind
punctele slabe i forte ale acestora. n cadrul studiului efectuat am evideniat urmtorii lideri
de pia:
1. http://www.soundwave.com/apps.html
Soundwave este o aplicaie pentru smartphone, care urmrete cntecele de pe
smartphone. Soundwave urmrete preferinele muzicale a utilizatorilor i formeaz liste de
cntece personalizate. Utilizatorii pot urmri preferinele muzicale ntre ei, facilitnd astfel
ascultarea, popularizarea, descoperirea i Users follow each other, facilitating listening,
sharing, discovery, and dezbaterea muzicii vechi i noi. Una din caracteristicile interesante ale
acestei aplicaii este MusicMap. Utilizatorii aplicaiei pot desena pe hart un poligon i
urmri ce muzic a fost ascultat recent n acea arie(fig. 1).

Figura 1.1 - MusicMap - Soundwave


2.http://mygeotracking.com/
MyGeoTracking este un sistem de monitorizare i management a angajailor. El
reprezint un sistem format din aplicaia mobile pentru angajatori i aplicaia web pentru
angajai. MyGeoTracking este un sistem foarte puternic, avnd cteva proprieti cheie, care o
face una din liderii pieii:
- Vizualizare locaie n moment real de timp, statut, alerte pe hart;
- Urmrirea poziiei echipei i generarea alertelor atunci cnd echipa ntr sau iese din
zona definit de regulile stabilite;

- Alocarea jobului echipei cele mai apropiate i preluarea statului de la locul lucrrilor cu
geolocaie, text sau mesagerie vocal;
- Calcularea orelor petrecute la serviciu i aggregarea orelor pltite;
- Estimarea timpului necesar pentru lucrri;
- Creterea productivitii cu circa 20% datorit inteligenei de monitorizare a locaiei i
statului jobului.

Este un sistem foarte complex cu multe faciliti, dar nu este gratuit. Ofer companiilor mari
gruparea lucrtorilor n echipe i stabilirea orelor lucrate.

Figura 1.2 - MyGeoTracking


3. StreetSmart http://smart.clicksoftware.com/products/overview/product-features/
StreetSmart reprezint o platform foarte dezvoltat, care va permite s v focusai pe
nevoile clienilor, fr a v face griji de interaciunile dintre anagajaii de oficiu i cei mobili.
Angajaii din oficii sunt conectai cu angajaii mobile utiliznd sistmeul de management web,
oferind-ule o vizibilitate sporit i putere management a activittilor ce se petrec n sectoare.
Aplicaia Street Smart Mobile App transform dispozitivele mobile n tool-uri productive, care
le permit angajailor s i monitorizeze orele lucrate, s acceseze tascurile curente i s
colecteze informaie.

Figura 1.3 - StreetSmart


n urma studiului efectuat asupra sistemului am observat c un punct forte a acestuia este
detalizarea task-urile i rapoartelor care se genereaz n urma lucrrilor pe sectoare, oferinduse informaii despre calitate, timp i statuturi.
4.TSheets https://www.tsheets.com
TSheets se prezint ca a fi sistem GPS de monitorizare n timp a agnajailor mobili. Cu
un design destul de intuitiv acesta enumer cteva beneficii att pentru manageri, ct i pentru
angajatori:
- Pentru manageri:
o Locaia n timp real a angajailor
o Vizibilitatea statutului
o Facturare clieni
o DOL(date pentru departamentul fiscal)
o Design simplu
- Pentru angajai
o Lucru eficientizat prin alocare de taskuri.
o Statut de lucru
o DOL pentru angajai
o Sigurana confidenialitii

Figura 1.4 - Tsheets


5. Trackster http://www.phonetrackingemployees.com/
Trackster este un sistem simplist, care ofer un set de funcii de baz, fr rapoarte
avansate, dar care i ndeplinete funcia principal, adic monitorizeaz angajaii. Aplicaia
mobile de asemenea este una simpl i se potrivete pentru utilizatorii, care nu lucreaz des
cu aplicaii mobile.

Figura 1.5 - Trackster

1.3. Limbajul de programare C#


Lansat publicului n iunie 2000 i oficial n primvara anului 2002, C# este un limbaj de
programare care combin faciliti testate de-a lungul timpului cu inovaii de ultim moment.
Creatorii acestui limbaj au fost o echip de la firma Microsoft condus de Anders Hejlsberg.
Dei limbajul este creat de Microsoft, acesta nu este destinat doar platformelor Microsoft.
Compilatoare C# exist i pentru alte sisteme precum Linux sau Macintosh. Creat ca instrument
de dezvoltare pentru arhitectura .NET, limbajul ofer o modalitate facil i eficient de a scrie
programe pentru sistemul Windows, internet, componente software etc.
C# deriv din dou dintre cele mai de succes limbaje de programare: C si C++. De
asemenea, limbajul este o rud apropiat a limbajului Java. De la C, C# motenete sintaxa,
multe din cuvintele cheie i operatorii. De asemenea, C# construiete peste modelul de obiecte
definit n C++. Relaia dintre C# si Java este mai complicat. Java deriv la rndul su din C i
C++. Ca i Java, C# a fost proiectat pentru a produce cod portabil. Limbajul C# nu deriv din
Java. ntre C# i Java exista o relaie similar celei dintre veri, ele deriv din acelai strmo,
dar deosebindu-se prin multe caracteristici importante.
Limbajul C# conine mai multe faciliti novatoare, dintre care cele mai importante
se refer la suportul incorporat pentru componente software. C# dispune de faciliti care
implementeaz direct elementele care alctuiesc componentele software, cum ar fi
proprietile, metodele i evenimentele. Poate cea mai important facilitate de care dispune C#
este posibilitatea de a lucra ntr-un mediu cu limbaj mixt.
C# are o legtur deosebit cu mediul su de rulare, arhitectura .NET. Pe de o parte,
C# a fost dezvoltat pentru crearea codului pentru arhitectura .NET, iar pe de alt parte
bibliotecile utilizate de C# sunt cele ale arhitecturii .NET.
Arhitectura .NET definete un mediu de programare care permite dezvoltarea i
execuia aplicaiilor indiferent de platform. Aceasta permite programarea n limbaj mixt i
ofer faciliti de securitate i portabilitate a programelor. Este disponibil deocamdat pentru
platformele Windows.
Legat de C#, arhitectura .NET definete dou entiti importante i anume biblioteca
de clase .NET i motorul comun de programare sau Common Language Runtime (CLR).
C# nu are o bibliotec de clase proprie ci utilizeaz direct biblioteca de clase .NET. De
exemplu, cnd se ruleaz un program care efectueaz operaii de intrare-ieire, cum ar fi afiarea
unui text pe ecran, se utilizeaz biblioteca de clase .NET.

10

Motorul comun de programare (CLR) se ocupa de execuia programelor C#. El


asigur de asemenea programarea n limbaj mixt, securitatea i portabilitatea programelor.
Atunci cnd este compilat un program C#, sau un program n limbaj mixt, rezultatul compilrii
nu este un cod executabil. n locul acestuia, se produce un fiier care conine un tip de
pseudocod numit limbaj intermediar sau pe scurt IL (Intermediate Language). Acest fiier IL
poate fi copiat n orice calculator care dispune de .NET CLR. Prin intermediul unui compilator
denumit JIT (Just In Time), motorul comun de pogramare transform codul intermediar n cod
executabil. Procesul de conversie decurge astfel: atunci cnd un program .NET este executat,
CLR activeaz compilatorul JIT. Compilatorul JIT convertete IL n cod executabil pe masur
ce fiecare parte a programului este neceasr. n concluzie, orice program compilat pn n
format IL poate rula n orice mediu pentru care CLR este implementat. n acest fel arhitectura
.NET asigura portabilitatea.
Principiile programrii orientate pe obiect
Metodologiile de programare s-au modificat continuu de la apariia calculatoarelor
pentru a ine pasul cu mrirea complexitii programelor. Pentru primele calculatoare
programarea se fcea introducnd instruciunile main scrise n binar. Pe masur ce
programele au crescut s-a inventat limbajul de asamblare, n care se puteau gestiona programe
mai mari prin utilizarea unor reprezentari simbolice ale instructiunilor main. Cum
programele continuau s creasc, s-au introdus limbaje de nivel nalt, precum FORTRAN i
COBOL, iar apoi s-a inventat programarea structurat.
POO a preluat cele mai bune idei de la programarea structurat, combinndu-le cu
concepte noi. A rezultat o modalitate diferit de a organiza un program. n fapt, un program
poate fi organizat n doua moduri: n jurul codului (mod de lucru descris de sintagma codul
actioneaza asupra datelor, valabil n cazul programrii structurate) sau n jurul datelor
(abordare descris de sintagma datele controleaza accesul la cod, valabil n cazul
programrii orientate pe obiect).
Toate limbajele POO au patru caracteristici comune: incapsularea, polimorfismul,
motenirea i reutilizarea.
Incapsularea
Incapsularea este un mecanism care combin codul i datele pe care le manipuleaz,
meninnd integritatea acestora fa de interferena cu lumea exterioara. Incapsularea mai este
numit i realizarea de cutii negre, ntruct se ascunde funcionalitatea proceselor. Cnd codul

11

i datele sunt incapsulate se creaz un obiect. n cadrul unui obiect, codul i datele pot fi publice
sau private. Codul i datele private sunt accesibile doar n cadrul aceluiai obiect, n timp ce
codul i datele publice pot fi utilizate i din pri ale programului care exist n afara acelui
obiect.
Unitatea fundamental de incapsulare este clasa. Clasa specific datele i codul care
opereaz asupra datelor. O clas definete forma unui obiect. Sau altfel spus, o clas reprezint
o matrice, iar un obiect reprezint o instan a clasei.
Polimorfismul
Polimorfismul este calitatea care permite unei interfee s aib acces la un grup generic
de aciuni. Termenul este derivat dintr-un cuvnt grecesc avand semnificaia cu mai multe
forme. Spre exemplu, s presupunem c avem o nevoie de o routin care sa returneze aria unei
forme geometrice, care poate fi un triunghi, cerc sau trapez. ntruct ariile celor trei forme se
calculeaz diferit, routina trebuie s fie adaptat la datele pe care le primete nct s disting
despre ce fel de form este vorba i s returneze rezultatul corect.
Conceptul de polimorfism este exprimat prin sintagma o singura interfaa mai mlte
metode.
Motenirea
Motenirea este procesul prin care un obiect poate dobndi caracteristicile altui obiect.
Analogia cu conceptul de animal este elocvent. Spre exemplu, s considerm o reptil.
Aceasta are toate caracteristicile unui animal, ns n plus are i o alt caracteristic, i anume:
sngele rece. S considerm un arpe. Acesta este o reptil lunga i subire care nu are picioare.
arpele are toate caracteristicile unei reptile, nsa posed i propriile sale caracteristici. Aadar,
un arpe motenete caracteristicile unei reptile. O reptil motenete caracteristicile unui
animal. Aadar, mecanismul motenirii este cel care face posibil ca un obiect s fie o instan
a unui caz mai general.
Reutilizarea
Atunci cnd este creat o clas, aceasta poate fi utilizat pentru a crea o mulime de
obiecte. Prin utilizarea motenirii i incapsulrii clasa amintit poate fi reutilizat. Nu mai este
nevoie s testm codul respectiv ci doar s l utlizm corect.
Exist dou moduri de a edita, compila i rula un program n C#. n primul rnd se
poate utiliza compilatorul linie de comand csc.exe. A doua posibilitate este de a utiliza
mediul Visual Studio .NET. n primul caz trebuie parcuri urmtorii pai: introducei textul
12

programului cu ajutorul unui editor de texte i salvai fiierul utiliznd extensia cs, spre
exemplu Example1.cs; apoi compilai programul preciznd numele fiierului n linia de
comand (C:\>csc Example1.cs); n final rulai programul n linia de comanda
(C:\>Example). n cel de-al doilea caz creai un nou proiect C# selectnd: File|New|Project,
apoi Visual C# Projects|Empty Project. Dup ce ai creat proiectul, executai click dreapta pe
fereastra Solution. Utiliznd meniul aprut selectai Add apoi Add New Item | Local Project
Items| C# Code File. Introducei textul, salvai proiectul, compilai proiectul selectnd Build
i n fine rulai programul selectnd Start Without Debugging din meniul Debug.
1.4. ASP.NET
ASP.NET este o tehnologie Microsoft pentru crearea de aplicaii web i servicii web.
ASP.NET este succesorul lui ASP (Active Server Pages) i beneficiaz de puterea platformei
de dezvoltare .NET, i de setul de instrumente oferite de mediul de dezvoltarea al aplicaiei
Visual Studio .NET.
Cateva dintre avantajele ASP .NET sunt:
1. ASP .NET are un set larg de componente, bazate pe XML, oferind astfel un model de
programare orientat obiect (OOP);
2. ASP .NET ruleaza cod compilat, ceea ce crete performanele aplictiei web, codul sursa
poate fi separat n dou fiiere, unul pentru codul executabil, iar un altul pentru continutul
paginii (codul HTML i textul din pagin);
3. NET este compatibil cu peste 20 de limbaje diferite, cele mai utilizate fiind C# si Visual
Basic.
1.5. Modelul arhitectural Model-View-Controller
Model-view-controller (MVC) este un model arhitectural utilizat n ingineria software.
Succesul modelului se datoreaz izolrii logicii de business fa de considerentele interfeei cu
utilizatorul, rezultnd o aplicaie unde aspectul vizual sau/i nivelele inferioare ale regulilor de
business sunt mai uor de modificat, fr a afecta alte nivele.
Model
Aceast parte a controlatorului manipuleaz operaiunile logice i de utilizare de informaie
(trimis dinainte de ctre rangul su superior) pentru a rezulta de o form uor de neles.
Viziune

13

Acestui membru al familiei i corespunde reprezentarea grafic, sau mai bine zis, exprimarea
ultimei forme a datelor: interfaa grafic ce interacioneaz cu utilizatorul final, rolul su este
de a evidenia informaia obinut pn ce ea ajunge la controlator.
Controlator
Cu acest element putem controla accesul la aplicaia noastr. Pot fi fiiere, scripts sau
programe, in general orice tip de informaie permis de interfa. n acest fel putem diversifica
coninutul nostru de o form dinamic i static, n acelai timp.

Figura 1.6 - Modelul Arhitectural Model-View-Controller


Structur
Cu ajutorul Controlatorului, modelului sau a viziunii putem manipula urmtoarele elemente:
date. Depinde de noi cum manipulm i interpretm aceste "date". Acum cunoatem c unicele
date ale unei adrese web statice sunt: obinerea unui fiier n discul dur (hard disk) sau din
Internet, etc. i, interpretat (recunoscut/decodificat) sau nu, serverul rspunde.
Modelul, precum controlatorul i viziunea manipuleaz toate datele ce se relaionez cu el. i
numai Viziunea poate demonstra aceast informaie. n acest fel am demonstrat ierarhia
programului nostru: Controlator-Model-Viziune.
Logic
Pentru o aplicaie web uoara este necesar s stabilim urmtoarele elemente:
a) baz (CMV):
14

1) Controlator - acesta trebuie s fie capabil de a manipula rute, fiiere, clase, metode i
funcii;
2) Model - este asemntor unui script obinuit ntr-un server, doar c regrupat sub un
model reutilizabil;
3) Viziune - asemntor includerii unui fiier n aplicaia noastr;
b) un sistem:
1) Router - cu el putem mpri cerinele noastre fr multe condiionale;
2) Incrctor (Loader).
1.6. Baza de Date MongoDB
MongoDB este o baz de date NoSQL open-source orientat pe documente. Acest baz
de date beneficiaz de suport din partea companiei 10gen. MongoDB face parte din familia de
sistemelor de baze de date NoSQL. Diferena principal const n faptul c stocarea datelor nu
se face folosind tabele precum ntr-o baz de date relaional, MongoDB stocheaz datele sub
form de documente JSON cu scheme dinamice.
MongoDB este o baz de date open-source NoSQL scris n C++. Aceasta poate conine
mai multe baze de date, colecii i indeci. n unele cazuri (baze de date i colecii ) aceste
obiecte pot fi create implicit. Odat create, ele se gsesc n catalogul sistemului
db.systems.collection, db.system.indexes. Coleciile conin documente (BSON). Aceste
documente conin la rndul lor mai multe cmpuri. n MongoDB nu exist cmpuri predefinite
spre deosebire de bazele de date relaionale, unde exist coloanele care sunt definite n
momentul n care tabelele sunt create. Nu exist schem pentru cmpurile dintr-un document,
acestea precum i tipurile lor pot varia. Astfel nu exist operaia de alter table pentru adugare
de coloane. n practic este obinuit ca o colecie s aib o structur omogen, dei nu este o
cerin, coleciile putnd avea structuri diferite. Aceast flexibilitate presupune uurin n
migrarea i modificarea imaginii de ansamblu asupra datelor.
1.7. Team Foundation Server
Visual Studio Team Foundation Server (TFS) este produsul Microsoft pentru controlul
codului surs, de raportare i de urmrire a proiectului. Repository-ul de control al sursei este
numit Team Foundation Version Control (TFVC).

15

Cu acest produs se pot crea o mare varietate de rapoarte. De exemplu, rata de modificare a
codului surs n timp, sau o list de bug-uri care nu au scenarii de test.
Pe baza unui proiect, TFS creeaz de asemenea un site SharePoint pentru proiect, astfel
integrnd sarcini de control ale codului surs si administrare de proiect.
1.8. Visual Studio
Visual Studio include un set complet de instrumente de dezvoltare pentru generarea de
aplicaii ASP.NET, Servicii Web XML, aplicaii desktop i aplicaii mobile. Visual Basic,
Visual C++, Visual C# i Visual J# toate folosesc acelai mediu de dezvoltare integrat (IDE)
care le permite partajarea instrumentelor i faciliteaz crearea de soluii folosind mai multe
limbaje de programare. Aceste limbaje permit s beneficieze de caracteristicile .NET
Framework care ofer acces la tehnologii cheie care simplifica dezvoltarea de aplicaii web
ASP i XML Web Services cu Visual Web Developer.

16

2. Modelarea sistemului utiliznd limbajul UML


2.1. Descrierea succint a responsabilitilor asignate sistemului
Sistemul informaional care urmeaz a fi implementat are ca scop informatizarea obiectului
de distribuie a pliantelor. Partea client a sistemului care este creat n cadrul acestui proiect va
fi disponibil n trei limbi romn, englez i rus. Deoarece partea client este destinat
clienilor companiei, ea trebuie s aib o interfa ct mai simpl i prietenoas, oferind toate
instrumentele necesare pentru a asigura transparena procesului de distribuie.
De asemenea, lund n considerare obligaiunile pe care i le asuma sistemul, trebuie evitate
cazurile de indisponibilitate a serverului pe care este instalat baza de date a clienilor,
asigurndu-se o conexiune stabil la Internet. Pentru a evita suprasolicitarea serverului cu
cereri fictive trebuie s fie instalat o aplicaie anti-DDoS care s opun rezisten atacurilor
de tipul Distributed Denial of Service.
2.2. Determinarea cerinelor funcionale ale sistemului
Cerinele funcionale ale sistemului reprezint descrieri ale serviciilor oferite de ctre
sistem i a constrngerilor care sunt generate de-a lungul desfurrii procesului de dezvoltare
a proiectului.
Pornind de la cerinele utilizator discutate n urma negocierii contractului am definit
urmtoarele cerine ctre partea client a sistemului:

Cerinele funcionale ale unui Sistem Informaional sunt servicii pe care sistemul trebuie s
le ofere. Ele precizeaz cum trebuie SI s reacioneze la anumite intrri i cum trebuie s se
comporte n anumite situaii particulare. De asemenea, din cerinele funcionale ale sistemului
nostru vor face parte att business cerinele, ct i cerine ale utilizatorului.
n contiuare vom specifica cerinele funcionale care au stat la baza elaborrii
proiectului:
a) vizualizarea distribuiilor curente;
b) generare alerte:
1) nceput distribuie;
2) Sfrit distribuie;
3) Fotografie nou ncrcat;
4) Distribuitorul a prsit zona de distribuie;
17

5) Distribuitorul a intrat n zona de distribuie.


c) vizualizare istoric;
d) simulare micare distribuitori;
e) simulare istoric;
f) generare raport de distribuie.
2.3. Determinarea cerinelor nefuncionale ale sistemului
Cerinele non-funcionale reprezint constrngeri ale serviciilor i funciilor oferite de
sistem cum ar fi constrngeri de timp, constrngeri ale procesului de dezvoltare, standarte,
constrngeri privind performana sistemului sau alte constrngeri.
Ce sunt de fapt cerinele nefuncionale? Cerinele nefuncionale pot fi cerine legate de
atributele de calitate a produsului, cerina privind performana, respectarea unor standarde,
regulamente, contracte sau alte constrngeri.
-

Interfaa utilizator trebuie s reprezint o aplicaie web de tip One page application
implementat n HTML utiliznd biblioteca AngularJS;

Sincronizarea cu serverul trebuie efectuata cu ajutorul tehnologiei SignalR;

Dimensiunea maxim a pozelor 10MB;

Precizie poziionare distribuitori 10 metri;

ntrziere n timp real fa de poziionarea distribuitorului 1 minut;

Posiblitate transmitere poze de ctre utilizaotri cu ajutorul reelei Wi-fi sau GSM;

Disponibilitatea subsistemului client n 3 limbi: romn, rus i englez.

18

2.4. Diagrama de context


Sarcina de baz a acestui sistem o putem reprezenta prin diagrama de context a aplicaiei :

Figura 2.1 - Diagrama de context corespunztoare Sistem de monitorizare a angajailor

Figura 2.2 - Diagrama de decompozitie A0 corespunztoare Sistem de monitorizare a


angajailor

19

2.5. Diagrama caz de utilizare(DCU)


uc Administrator

Adauga distribuitor

Adauga dispozitiv
mobil

Adauga client

Administrator

Adauga plan de
distributie

Generare rapoarte

Figura 2.3 - Diagrama Use Case pentru funcionalitile administratorului


Din diagram dat observm, c administratorul are un rol foarte important n cadrul
sistemului, el este cel care se ocup de crearea entitilor din cadrul sistemului cum ar fi:
distributori, dispozitive mobile, clieni. Odat ce apar clieni n cadrul sistemului, acestora li se
pot crea plane de distribuie. Dup ce distribuia a fost efectuat administratorul poate genera
rapoartele de distribuie.

20

uc Client

Vizualizare distributie
trecuta

Vizualizare distributie
curenta

Vizualizare rapoarte
Client
Vizualizare simulare
distributie

Vizualizare istoric

Figura 2.4 - Diagrama Use Case pentru funcionalitile clientului


Clientul este cea mai important entitate a sistemului, deoarece ea este cauza crerii
sistemului. El poate efectua aciuni de vizualizare a datelor generate de sistem. De asemenea
el poate genera rapoarte pentru a vedea succint rezultatele distribuiei pliantelor.

uc Distributor

Incepe distributie

Transmite poza

Distributor

Termina distributia

21

Figura 2.5 - Diagrama Use Case pentru funcionalitatea distribuitorului


Distribuitorul este entitatea sistemului care efectuiaz distribuia propriu-zis i anume
datele care sunt preluate de pe dispozitivele mobile utilizate de distribuitori reprezint sursa
pentru rapoartele generate de sistem. Distribuitorii au rolul de a efectua periodic poze, care sunt
afiate pe harta din interfaa clienilor.

uc Raport

Generare raport zilnic

Generare raport total

extend

extend

Generare raport

extend

Generare raport
distribuitor

Figura 2.6 - Diagrama Use Case pentru rapoartele sistemului

Sistemul permite generarea a 3 tipuri de rapoarte:


-

Raport zilnic include activitatea distribuitorilor n ziua aleas din opiunile


raportului;

Raport total include activitatea total pentru planul de distribuie creat;

Raport distribuitor include activitatea distribuitorului ales n cadrul planului de


distribuie efectuat.

22

2.6. Diagrama de secven(DDS)

sd Autentificare
:LoginUI

:AutheticationController

userRepository:UserRepository

:User

:AuthenticationService
:DB

1.InputCredentials()

2.SubmitCredentials()
userVm:UserCredentialsVm
3.Create()

4. ValidateUserCredentials() :bool

5.GetUserCredentialsByName() :UserCredentials

6.userCredentials

:HashHelper
7.GetPasswordHash()
:string

8.passwordHash

9.ComparePasswords()

10.true

11.LogIn(userVm)

12.UserLoggedIn()

Figura 2.7 - DDS corespunztoare autentificrii unui utilizator n sistem


Diagrama dat include actorul generic user, care se autentific n sistem. Odat ce acesta
a transmis datele introduse ctre sistem, acestea sunt validate la nivel de repozitoriu, prin
extragerea credenialelor cu acelai nume i compararea hash-urilor parolelor.

23

sd Adaugare Client
ClientRegistrationUI

ClientController

ClientRepository

:administrator

DB

inputClientInfo()

SubmitClienModel()

ValidateInputData()
AddClient() :List<ValidationErrors>
ValidateClient() :
List<ValidationError>

ClientValidator

:List<ValidationErrors>

Save(client)

:List<ValidationErrors>

Figura 2.8 - DDS corespunztoare adugrii unui client

Diagrama dat include actorul generic administrator, care adaug un client nou n cadrul
sistemului. Odat ce acesta a transmis datele introduse ctre sistem, acestea sunt validate la
nivel de repozitoriu, prin verificarea dac n cadrul sistemului nu mai sunt asemenea clieni.
sd Adaugare Client
ClientRegistrationUI

ClientController

ClientRepository

:administrator

DB

inputClientInfo()

SubmitClienModel()

ValidateInputData()
AddClient() :List<ValidationErrors>
ValidateClient() :
List<ValidationError>

ClientValidator

:List<ValidationErrors>

Save(client)

:List<ValidationErrors>

Figura 2.9 - DDS corespunztoare adugrii unui client

24

Diagrama dat include actorul generic administrator, care adaug un distribuitor nou n
cadrul sistemului. Odat ce acesta a transmis datele introduse ctre sistem, acestea sunt validate
la nivel de repozitoriu, prin verificarea dac n cadrul sistemului nu mai sunt asemenea
distribuitori.
2.7. Diagrama de colaborare (DDC)
DDC la nivel de exemplu:
sd Autentificare

:LogInUI

2: SubmitCredentials()

:AuthenticationController

1: InputCredentials()

3: Create()

userVm:
UserCredentialsVm

10: rue()

9: ComparePasswords()

10.1: LogIn()

4: ValidateUserCredentials()
:AuthenticationServ ice

userRepository:
UserRepository

7: GetPasswordHash()

:User

5: GetUserCredentialsbyName()
8: PasswordHash()
:HashHelper

6: UserCredentials()

DB

Figura 2.10 - DDC corespunztoare autentficrii unui utilizator n sistem


Diagrama dat include actorul generic user, care se autentific n sistem. Odat ce acesta
a transmis datele introduse ctre sistem, acestea sunt validate la nivel de repozitoriu, prin
extragerea credenialelor cu acelai nume i compararea hash-urilor parolelor.

25

sd Autentificare

Distribution

Client

Distributor

Distribution
for Client X

ClientX

DistributorY

Figura 2.11 - DDC la nivel de specificare corespunztoare distribuiei pliantelor

2.8. Diagrama de clas (DDC)

Figura 2.12 - Diagrama de Clas corespunztoare pachetului Centru de administrare

26

n aceast diagram este reprezentat partea de administrare a sistemului, care include


controloarele i modele necesare pentru crearea entitilor din cadrul sistemului.

Figura 2.13 - Diagrama de Clas corespunztoare pachetului Services


n aceast diagram este reprezent nivelul de servicii a sistemului. El reprezint faada
sistemului i este consumat de ctre centru de administrare, centrul clientel i aplicaia
mobil.

27

MongoReposit...

+ FindAll() : IQuerya...

MongoReposit...

Figura 2.14 - Diagrama de Clas corespunztoare pachetului Infrastructure


Diagrama data include n sine nivelul de resurse, adic nivelul care efectuiaza operaiile CRUD
cu baza de date. El este consumat de ctre nivelul de servicii.

28

+ PolygonVertices : L...

+ Areas : List<Distri...
+ Distributors : List<...
+ DistributorsActions...
+ DistributorsLocatio...
+ Leaflets : List<Dist...

+ Index(referenceC...

+ Language : Nullabl...

Figura 2.15 - Diagrama de Clasa corespunztoare pachetului Tracking Web Center


n aceast diagram este reprezentat partea de client a sistemului, care include controloarele i
modele necesare pentru vizualizarea distribuiilor de ctre clienii sistemului.
2.9. Diagrama de stri (DDS)
stm Autentificare

InitialAuth
Afisare pagina de
logare

[WrongUserNameOrPassword]
/SendUserCredentials

Verificare Credentiale

[CorrectUserNameAndPassword]
/AuthorizeUser

UserAuthorized

Figura 2.16 - DS corespunztoare controllerului LoginController


29

Diagrama dat include controlorul LoginController i strile acestiua. La nceput se


afieaz pagina de logare. Dup ce utilizatorul a introdus credenialele acestea sunt
verificate i utilizatorul este autorizat. n cazul, n care credenialele sunt inroduse greit,
utilizatorulului i este afiat din nou pagina de logare.
stm Register

InitRegister
AfisarePaginaInregistrare

[DateInvalide]

/TransmiteDate

ProceseazaDate

[DateValide]
/InregistreazaUtilizator
Redirectioneaza la
Pagina Principala

FinalRegister

Figura 2.17 - DS corespunztoare controllerului RegisterController


Diagrama dat include controlorul RegisterController i strile acestiua. La nceput se
afieaz pagina de nregistrare. Dup ce utilizatorul a introdus datele acestea sunt procesate
i salvate n baza de date, dup care el este redirecionat la pagina principal. n cazul n
care au aprut erori n date, utilizatorului i este afiat pagina de nregistrare i erorile
aprute.

30

Diagrama de activiti (DDA)

2.10.

act Register
RegisterController

UserRepository

UserValidator

RegisterManager

RegisterInitial
Index

AddUser(user)
ProcessUserData(user)

Validate(user)

Search(user.login)
[true]

[false]

[dbUser!=null]
[dbUser==null]
AddUser(user)
Index(errorList)

redirect
UserController.Index()

RegisterFinal

Figura 2.18 - DA corespunztoare procedurii de nregistrare


Diagrama dat indic procesul de nregistrare a utilizatorilor n sistem. Astfel odat
introduse datele sunt validate, att la nivel de business logic, ct i la nivel de existen a
utilizatorului n baza de date. Odat ce sunt valide datele acestea sunt salvate n baza de date.

31

act Autentificare
LoginController

UserManager

UserRepository

HashHelper

InitialAutentificare
ValidateCredentials(userCredentials)

GePassw ordHash(userCredentials.Passw ord)

Index

GetUserByLogin(userCredentials.Login)
LogIn(userCredentials)

[dbUser==Null]

[dbUser!=null]

Index(errorList)

ComparePassw ords

[dbUser.Password!=passwordHash]

redirect to Home

[dbUser.Password==passwordHash]

AutentificareFinal

Figura 2.19 - DA corespunztoare procesului de autentificare


Diagrama dat ne permite s vedem activitile care se efectuiz la procedura de
autentificare n sistem. Dup cum vedem din diagram parola este criptat i hash-urile parolei
introduse i a parolei din baza de date se compar pentru a valida credenialele.

2.11.

Diagrama de componente (DDC)

cmp TestControlCentre

Routing Component

Controllers

View s

Models

Figura 2.20 - DS corespunztoare controllerului LoginController


32

Diagrama dat indic structura pachetului TrackingCentre. Interogarea care vine de la


utilizator este procesat de componenta de rutare, care decide care controller rspunde de
interogarea dat. Se creaz o instan a controlerului i se decide care aciune a fost
chemat. Aciunea proceseaz modelul date i returneaz o viziune nou.

cmp Authentication

Database

HashHelper

AuthenticationServ ice

LoginController

IUserRepository

UserRepository

IAuthenticationServ ice

Figura 2.21 - DCM corespunztoare componentelor de autentificare


Diagrama dat ne permite s vedem relaia dintre componentele care realizeaz
procedura de autentificare n sistem. Vedem legtura dintre controlerul de pe System.Web,
serviciul de autentificare, repozitoriu i baza de date.

33

2.12.

Diagrama de amplasare (DDA)

deployment Deployment

Serv er DB

Employee Tracking System

LeafletDistributionServ ice

device
Dispozitiv Mobil

MobileTrackingApplication
Infrastructure

Statie de lucru

TrackingCentre

ControlCentre

RealTimeCommunicationServ ice

executable
Web brow ser

Figura 2.22 -DP a sistemului


n figura dat avem reprezentarea diagramei de amplasare care ne arat amplasarea fizic a
diferitor componente ale sistemului n reea.
-

Statia de lucru un dispozitiv ce are conexiune la server. Modificarea datelor o face


prin intermediul browser-ului accesnd paginile .html de pe partea de server;

EmployeeTrackingSystem conine majoritatea componentelor sistemului i are


instalate aplicaiile necesare. Acest nod execut codul executabil al tuturor
componentelor;

EmployeeTrackingSystem.RealTimeCommunicationService serviciu de transmite


a datelor ctre TrackingCentre;

Server DB gestioneaz operaiile cu baza de date.

34

Concluzii
Elabornd aceast lucrare de practic, am studiat i analizat un business nou, cel de
monitorizare disciplinei de munc al angajailor. Am proiectat i stabilit interaciunea
componentelor acestui sistem complex format din partea Web i cea mobil. Am stabilit
cerinele funcionale i ne-funcionale pe care le va ndeplini sistemul. Scopul primordial a fost
acela de analiz a business-ului i a platformelor de lucru pentru ca n viitor s se realizarea
implementarea. Am fcut o analiz cu sistemele deja existente pentru a scoate n eviden
avantajele sistemului i a concluziona ce se poate de modificat pentru acest sistem complex.
n timpul efecturii lucrrii am stabilit funcionalitile actorilor cum ar fi: manager,
client, distribuitor i am stabilit cum va avea loc procedura de autentificare, de adugare a unui
client si proiect, de monitorizare a distribuitorului de ctre sistem i alte proceduri de care este
capabil acesta.
Sistemul are ca scop menirea ca s asigure distribuirea pliantelor la locul stabilit de
client i asigurare c acestea au ajuns n minele potenialilor beneficiari de servicii, produse
sau reducere care sunt reclamante pe pliante.

35

Bibliografie
- [Resurs

electronic]

Regim

de

acces:

www.tarunz.org/~vassilii/TAU/protocols/dhcp/
-

RFC2131

Standard

[Resurs

electronic]

Regim

de

acces:

http://tools.ietf.org/html/rfc2131
-

Curs AMSI RO

Curs PSI RO

Sparx Systems Resources & Tutorials [Resurs electronic] Regim de acces:


http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_sequencediagram.htm
l

36

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