Documente Academic
Documente Profesional
Documente Cultură
1 Descrierea succint a inteniei i responsabilitii asignate sistemului Sistemul Informaional care urmeaz s fie creat are mai multe responsabiliti, de baz fiind cea de a propune utilizatorilor o interfa simpl prin intermediul creia s poat gestiona fiierele i grupurile de utilizatori. Este foarte important ca sistemul s poat face fa datelor invalide care pot ajunge n cazul modificarii permanente a fiierelor de diferiti utilizatori, s nu ajung ca doua persoane s redacteze acelai document astfel creind nentelegeri ntre utilizatori. Ca un mod de soluionare a acestei probleme poate fi ducerea evidenei redactrii fiierului cu ajutorul unui buton care v-a permite nceperea redactrii fiierului astfel actualiznd un cmp din baza de date, care ar informa faptul c fiierul este redactat in acest moment i ca are drepturi doar de citire. De asemenea, lund n considerare obligaiunile pe care i le asum sistemul, trebuie evitate cazurile de indisponibilitate a serverului pe care este instalat baza de date, asigurndu-se o conexiune stabil la internet i un server de rezerv pentru orice eventualitate. 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.
1.2 Determinarea cerinelor funcionale ale 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 continuare vom specifica cerinele funcionale care au stat la baza elaborrii proiectului: Crearea unui fiier; Redactarea fiierului: a) Editarea textului; b) Partajarea fiierului; Vizualizarea listei fiierelor care au fost create de utilizatorul in cauz, plus fiierele care au fost partajate cu el; Crearea grupurilor de utilizotori; Posibilitatea partajrii fiierului unui singur utilizator sau unui grup intreg de utilizatori;
posibilitatea de a invita prietenii s se nregistreze n aceast aplicie, prin intermediul indicrii unei adrese de e-mail; 1.3 Determinarea cerinelor nefuncionale ale sistemului Cerinele nefuncionale reprezint restricii asupra serviciilor sau funciilor oferite de Sistemul Informaional. Ele includ restricii de timp, restricii privind dezvoltarea proceselor i standarde aplicabile. n continuare v-om specifica cerinele nefuncionale ale Sistemului Informaional dezvoltat: interfa prietenoas pentru utilizator; timp mic de rspuns, datorit optimizrii serverului i mririi benzii de transfer date odat cu creterea numrului de utilizatori; capacitate mare de stocare date pe server, cu posibilitatea mririi ei pe parcurs; securitatea transmiterii datelor de la utilizator la server i invers prin implementarea tehnologiei SSL i a algoritmilor de criptare; portabilitatea sistemului. Disponibilitatea rulrii aplicaiei pe orice tip de dispozitiv care ruleaz sistemul de operare Android; extensibilitate adugarea unor noi funcionaliti fr a fi nevoie de modificat ntreg codul surs al proiectului.
1.4 Diagramele cazurilor de utilizare Efectund procesul de analiz a cerinelor funcionale i nefuncionale vom trece la etapa urmtoare unde ele vor fi proiectate. Pentru a reda o form mai clar a proiectului nostru vom folosi limbajul UML . Deci, iniial pentru evidenierea posibilitilor sistemului vom crea mai nti de toate diagrama cazurilor de utilizare. Proiectarea unei diagrame a cazurilor de utilizare pentru aplicaia noastr urmrete scopurile urmtoare: determinarea limitelor comune i a contextului de modelare la etapele iniiale de proiectare a aplicaiei; formularea cerinelor comune ctre comportare funcional a sistemului proiectat; elaborarea modelului iniial conceptual al unui sistem pentru detalierea de mai trziu n forma modelelor logice i fizice;
pregtirea documentaiei iniiale pentru interaciunea elaboratorilor unui sistem cu clienii i utilizatorii.
Principalul scop al acestei diagrame const n faptul c sistemul proiectat se reprezint ca o colecie de entiti i actori care colaboreaz cu sistemul cu ajutorul aa numitor cazuri de utilizare. Totodat, orice entitate care colaboreaz cu sistemul din afar poate fi numit actor. Aceasta poate fi un om, o instalare tehnic, un program sau oricare alt sistem care poate fi surs de aciune pentru sistemul proiectat n aa mod, cum l determin colaboratorul. La rndul su, use case-ul este creat pentru descrierea serviciilor pe care sistemul le ofer actorului. Deci, fiecare caz de utilizare definete o colecie de aciuni executate de sistem n timpul dialogului cu actorul. Totodat, nimic nu este spus despre aceea n ce mod va fi realizat colaborarea ntre actori i sistem. nsui cazul de utilizare reprezint un model de comportament al sistemului ca urmare a dialogului cu un actor, descris printr-o secven de tranzacii ce au loc n sistem. n acest sens, cazurile de utilizare se disting prin cteva caracteristici generale: sunt uniti de sine stttoare, bine delimitate (nceputul i sfritul unui caz de utilizare sunt cuprinse n acesta); e necesar ca ele s fie iniiate de un actor i finalizarea lor s fie vzut de un actor; trebuie s ndeplineasc anumite scopuri de logic a problemei (dac nu se poate gsi un astfel de obiectiv atunci cazul de utilizare trebuie regndit); realizarea cazului, trebuie s ofere sistemului o stare stabil (nu poate fi ndeplinit doar pe jumtate). n continuare sunt prezentate cteva diagrame use case ale sistemului proiectat ce includ funcionalitile de baz ale sistemului.
Register
User
Manage Groups
Manage Users
Insert Login
include
include
Login
invokes
include
Connect DataBase
Check Cridentials
Figura 2.4.2 Logarea n sistem n diagrama din figura 2.4.2 este prezentat procesul de logare n sistem ce presupune introducerea datelor personale, conectarea sistemului la baza de date pentru verificarea validitaii lor.
Insert Login
include
include Register
include invokes
Connect DataBase
Figura 2.4.3 nregistrarea in sistem Figura 2.4.3 reprezint procesul de nregistrare n sistem n urma introducerii datelor care vor fi utilizate in viitor pentru logare si verificarea validitatii lor.
Search Users
include
n figura 2.4.4 s-au prezentat aciunile folosite pentru lucrul cu utilizatori aa cum sunt cautarea lor n ntregul sistem, adugarea i tergerea lor din grupe.
Search Groups
Remov e Group
include
include
Delete User
include
include
Create Group
include
include
Add Users
View Group
Figura 2.4.5 Administrarea grupelor de utilizatori Utilizatorii n sistema noastra vor fi grupai, deci diagrama din figura 2.4.5 reprezint aciunile ntreprinse att pentru crearea i stergerea grupelor ct i pentru adaugarea i tergerea utilizatorilor din aceste grupe.
Read File
Delete File
Edit File
include
include include
Search Files
Share File
Figura 2.4.6 Administrarea fiierelor Figura 2.4.6 reprezint aciunile pe care utilizatorul le v-a indeplini pentru a opera cu fiiere: crearea, tergerea, citirea, redactarea, partajarea i cautarea fiierelor.
1.5 Diagramele claselor Modelul structural al sistemului reprezint un model de nivel nalt concentrat pe abstractizare i ncapsulare, modeleaz elementele i mecanismele principale ale sistemului. El identific elementele domeniului, respectiv relaiile i interaciunile dintre aceste elemente. Elementele domeniului sunt organizate dup criterii strict logice n categorii pentru a putea repartiza sarcinile echipelor, a regrupa ceea ce poate fi generic, a izola ceea ce este propriu unei versiuni existente etc. nsui termenul de structur desemneaz aici ansamblul claselor de obiecte, atributele i operaiile fiecreia dintre acestea, relaiile de asociere i generalizare dintre clase. Pentru reprezentarea modelului structural al sistemului se folosete strict diagrama claselor. Obiectele corespunztoare acestor clase pot impune uneori reprezentri distincte, utile n aprofundarea abordrii sau pentru o mai bun nelegere sau comunicare. n consecin, se va regsi aici un al doilea tip de diagram diagrama obiectelor.
n figura 2.5.1, sunt prezentate clasele aplicaiei pe sistemul de operare Android. La lansarea aplicaiei vizualizm LoginActivity, LoginActivity clasa cu ajutorul cruia utilizatorul se logeaza n sistem, cu ajutorul ei datele se trimit la server i dac datele sunt incorecte, se repet ncercarea sau se poate de logat cu ajutorul unui api; RegisterActivity clasa cu ajutorul cruia utilizatorul se nregistreaz n sistem, cu ajutorul ei datele se trimit la server i dac aa date deja exist, se repet ncercarea; MainActivity clasa care manipuleaz cu clasele de LoginActivity i RegisterActivity, n sensul c ea se foloseshte pentru a afia utilizatorului forma pentru logare sau nregistrare; DbConnect clasa utilizata pentru conectarea la baza de date; UserLoginTask i UserRegisterTask sunt utilizate pentru adresarea asincrona ctre baza de date, deci ele i sunt ca generalizarea clasei AsyncTask; Clasa FragmentActivity i Activity sunt clase standarte al APIului sistemului android care se folosesc pentru afiarea partilor grafice a aplicaiei.
class Login/Register
LoginActiv ity + + + # + DUMMY_CREDENTIALS: string[] = new String[] {"... EXTRA_EMAIL: string = "com.example.an... mAuthTask: UserLoginTask = null; mEmail: string mEmailView: EditText mLoginFormView: View mLoginStatusMessageView: TextView mLoginStatusView: View mPassword: string mPasswordView: EditText attemptLogin() : void getContext() : LoginActivity onCreate(Bundle) : void onCreateOptionsMenu(Menu) : boolean showProgress(boolean) : void Activ ity AsyncTask
FragmentActiv ity
RegisterActiv ity use use + + + # + DUMMY_CREDENTIALS: String[] = new String[] {"... EXTRA_EMAIL: String = "com.example.an... mAuthTask: UserLoginTask mEmail: String mEmailView: EditText mLoginFormView: View mLoginStatusMessageView: TextView mLoginStatusView: View mPassword: String mPasswordView: EditText attemptRegister() : void getContext() : RegisterActivity onCreate(Bundle) : void onCreateOptionsMenu(Menu) : boolean showProgress(boolean) : void
Fugura 2.5.1 Diagrama clasei pentru procesul de logare i nregistrare n sistem Diagrama din figura 2.5.2 reprezint clasele folosite pentru pentru administrarea grupelor de utilizatori i utilizatorii nsi. Explicarea folosirii fiecarei clase: GroupList afisheaz lista grupelor; GroupContent este clasa care se folsoete pentur afiarea listei utilizatorilor din grupa; GroupUserManager clasa utilizat pentru a realiza toate manipularile cu grupele i utilizatorii acesteea; Interfata onGroupSelectedListener - se folosete pentru transmiterea datelor la alta activitate care va afia lista utilizatorilor din grupa care v-a fi aleasa din lista; MainActivity - dirijeaz cu afiarea listei grupelor i continutul lor(utilizatorii adaugai in ele); ListFragment i Fragment sunt utilizate pentru afiarea i manipularea interfeei grafice pe dispozitive cu ecran cu diagonala mai mare - adica tablete.
GrouptList + + + + use mCallback: onDocumentSelectedListener onAttach(Activity) : void onCreate(Bundle) : void onListItemClick(ListView, View, int, long) : void onStart() : void +
use ListFragment + + + + + + + +
DocumentManager addDocument(String) : void deleteDocument(int) : void getDocumentContent(int) : String getDoucmentList() : String[] searchDocument(String) : void shareDocument(int, int) : void updateDocument(String) : void updateDocumentName(String) : void
# + +
use use GroupContent + + + + + + ARG_POSITION: String = "position"; mCurrentPosition: int = -1; onCreateView(Bundle, ViewGroup, LayoutInflater) : View onSaveInstanceState(Bundle) : void onStart() : void updateDocView(int) : void
Fragment
Figura 2.5.2 Diagrama clasei pentru administrarea utilizatorilor i grupelor de utilizatori Diagrama din figura 2.5.3 reprezint clasele folosite pentru pentru administrarea fiierelor. Explicarea folosirii fiecarei clase:
DocumentList afisheaz lista fiierelor; DocumentContent este clasa care se folsoete pentur afiarea coninutului fiierului; DocumentManager clasa utilizat pentru a realiza toate manipularile cu fiierele ca tergere, creare, partajare, etc.; Interfata onDocumentSelectedListener - se folosete pentru transmiterea datelor la alta activitate care v-a afia coninutul fiierelor de la activitatea care conine lista fiierelor; MainActivity - dirijeaz cu afiarea listei fiierelor i continutul lor(textul); ListFragment i Fragment sunt utilizate pentru afiarea i manipularea interfeei grafice pe dispozitive cu ecran cu diagonala mai mare - adica tablete.
DocumentList + + + + use mCallback: onDocumentSelectedListener onAttach(Activity) : void onCreate(Bundle) : void onListItemClick(ListView, View, int, long) : void onStart() : void +
use ListFragment + + + + + + + +
DocumentManager addDocument(String) : void deleteDocument(int) : void getDocumentContent(int) : String getDoucmentList() : String[] searchDocument(String) : void shareDocument(int, int) : void updateDocument(String) : void updateDocumentName(String) : void
# + +
use use DocumentContent + + + + + + ARG_POSITION: String = "position"; mCurrentPosition: int = -1; onCreateView(Bundle, ViewGroup, LayoutInflater) : View onSaveInstanceState(Bundle) : void onStart() : void updateDocView(int) : void
Fragment
Figura 2.5.3 Diagrama clasei pentru administrarea fiierelor 1.6 Diagramele de secven n limbajul UML colaborarea ntre elemente se cerceteaz n aspectul informativ al comunicaiilor lor, adic obiectele care interacioneaz fac schimb de informaie anumit. Pentru modelarea colaborrii ntre obiecte n limbajul UML se utilizeaz diagramele de secven. Vorbind despre aceste diagrame se iau n consideraie dou aspecte. Mai nti, colaborarea ntre obiecte poate fi cercetat n timp i atunci pentru reprezentarea particularitilor temporale i modului de acceptare a mesajelor se utilizeaz diagrama de
secven. n al doilea rnd, pot fi cercetate particularitile structurale ale colaborrii ntre obiecte. Pentru reprezentarea particularitilor de transmitere i acceptare a mesajelor ntre obiecte se utilizeaz diagrama de colaborare. Dup cum vedem n figurile 2.6.1 i 2.6.2 sunt diagmale utilizate pentru reprezentarea procesului i succesiunii de aciuni ntreprinse de utilizator i sistem pentru a efectua nregistrarea i logarea n sistem. Deci dupa introducerea datelor are loc verificarea la existena la astfel de date, sau n cazul nregistrarii la lipsa lor i dac este n regula are loc nregistrarea sau logarea in sistem.
sd Login Diagram LoginActivity User DbConnect Document Manager
2. Enter PAssword()
4. False()
2. Enter Password()
3. Verify Cridentials()
4. Fasle()
sd Groups/users Manager Diagram GroupList User opt View Group Users 1. selectGroup() 2. getGroupContent() 3. returnGroupContent() 4. showGroupUsers() GroupUserManager GroupContent
opt Add User to Group 5. selectGroup() 6. findUser() 7. searchUser() 8. showUsers() 9. selectUser() 10. addUser() 11. addUser() 12. returnSuccess()
opt Delete User From Group 13. selectGroup() 14. selectUser() 15. deleteUser() 16. deleteUser() 17. returnSuccess()
Figura 2.6.3 red secvena de actiuni folosite pentru a manipula cu grupele de utilizatori: cererea la afiarea listei de utilizatori, adaugarea utilizatorilor n grupa i stergerea lor din grupa. Procesul, deci reprezinta, alegerea utilizatorilor din lista i faci actiunea pe care a-i dori s o faci: tergerea sau adaugarea.
sd Document Manager DocumentList User opt Read/Edit Document 1. selectDocument() 2. getDocumentContent(int id) 3. returnDocumentContent() 4. showDocumentContent() 5. Edit Document() 6. Save Edited Document() 7. saveDocument() 8. returnSuccess() DocumentManager DocumentContent GroupUserManager GroupList GroupContent
opt Delete Document 9. selectDocument() 10. deleteDocument() 11. deleteDocument() 12. getDocumentList() 13. returnDocumentList()
opt Share/Unshare to Group 14. selectDocument() 15. showGroups() 16. getGroups() 17. return Groups() 18. showGroups() 19. selectGroup() 20. shareToGroups() 21. share/unshareToGroup() 22. returnSuccess()
opt Share/Unshare To User 23. selectDocument() 24. findGroupsUsers() 26. getGroups() 27. returnGroups() 28. showGroups() 29. getGroupUsers() 30. returnUsers() 31. showUsers() 32. selectUsers() 33. share/unshare ToUser() 34. share/unshare() 35. returnSuccess()
Diagrama din figura 2.6.4 demonstreaza procesul de lucru cu fiiere aa cum sunt: editarea documentului, stergerea lui i partajarea ctre alti utilizatori sau grupei de utilizatori.
1.7 Diagrama de Activitate O diagram de activitate prezint fluxul secvenelor de activiti i este de obicei folosit pentru a descrie activitile realizate n cadrul unei operaii, folosind dac este cazul decizii i condiii. Diagrama conine stri de aciune (action states), i mesaje care vor fi trimise sau recepionate ca parte a aciunii realizate.
Yes Enter Group Name [Edit Group Name] [Add User] [Delete Group]
Find User
Delete Group
[Add Users]
Find or Select
[Add User]
[Delete user]
Add User
Delete user
[No] [Save Changes] [No] [Save Changes] [Add More Users] Sav e Changes
[Edit Group]
if Edit Groups
[No]
ActivityFinal
Figura 2.7.1 Activitatile ntreprinse la crearea sau stergerea grupelor precum i adaugarea i tergerea utilizatorilor din acestea
Diagrama din figura 2.7.1 reprezinta schema bloc de functionare a sitemului de lucru cu grupele i utilizatorii acestora. Deci are loc crearea grupei,cautarea utilizatorilor care v-or fi adaugai n ea sau care urmeaza a fi terse, se realizeaz aciunea dorit, dupa ce se decide daca mai e nevoie de redactat coninutul grupei sau nu, n caz de nu mai e nevoie activitatea se finiseaz in caz contrar revenim la nceput si din nou alegem actiunea dorit: crearea, stergerea sau redactarea unei alte grupe.
ActivityInitial
Choose File
Do Smth
Share File Enter Document Name What to do [Edit File] [Sare File] [Yes] if Exists [Enter Text] Share File Edit File [No] Press to Create File [Find User]
[Delete File]
Delete File
[Find Group]
[Save Changes]
Save Changes
Sav e Changes
ActivityFinal
Figura 2.7.2 Diagrama de activitai care reprezint redactarea fiierelor Avnd la ndemiin diagram din figura 2.7.2 putem urmari procesul de creare a fiierului cu un nume
care nu mai exist n sistem pentru utilizatorul dat, aoi se alege optiunea care urmeaz a fi efectuat cu acest fiier: redactare a textului sau partajarea lui cu o gup de utilizatori sau l-a utilizatori n parte. 1.8 Diagrama de Stare O stare este de obicei un complement al descrierii unei clase. O diagram de stare prezint toate strile prin care trece un obiect al clasei precum i evenimentele care-i cauzeaz modificrile de stare. Modificarea strii se numete tranziie.
stm Login/Register Diagram Registered
[User] Initial
Figura 2.8.1 Diagrama de stare prin care trece un utilizator al sistemului proiectat
n diagrama din figura 2.8.1 este artat n ce mod se petrece logarea sau nregistrarea in sistem. Deci n caz de utilizatorul este nregistrat deja atunci el introduce datele pentru a se loga, iar in cazul n care el dorete sa se nregistreze introduce datele pentru nregistrare i dupa ce aceste date au fost salvate n baza de date are loc logarea automat.
Figura 2.8.2 ne permite s nelegem modul de redactare a grupelor de utilizatori. La deschiderea grupei observam c nu are nici un utilizator, sau deja are, atunci alegem aciunea dorit de adugare sau tergere a utilizatorului din grup. Cnd am finisat cu redactarea grupei procesul se nchide.
[Share]
[Edit]
[Share]
[Save Changes]
New File
Edited Final
Empty [Edit]
Not Empty
[Save Changes]
n figura 2.8.3 putem vedea cum are loc editarea fiierului i anume deschiderea fiierului gol, editarea coninutului acestuia sau partajarea lui cu ali utilizatori. n urma la toate aciunile date are loc finisarea, la dorina, de redactare a fiierului curent i se trece la urmatorul. 1.9 Diagramele de componente
Proiectul complet al unui sistem al programului reprezint o totalitate de modele ale reprezentrii logice i fizice care sunt coordonate ntre ele. n limbajul UML pentru reprezentarea fizic a unui model al sistemului sunt utilizate diagramele de realizare (implementation diagrams) care includ dou diagrame canonice: diagrama de componente i diagrama de plasare.
Diagrama de componente, spre deosebire de diagramele cercetate, descrie particularitile reprezentrii fizice a unui sistem. Diagrama de componente permite determinarea arhitecturii sistemului elaborat prin stabilirea dependenei ntre componentele de program n calitate de care poate fi codul iniial, binar i executabil. n mai multe domenii de elaborare modul i componenta corespund fiierului. Sgeile punctate care leag modulele arat relaiile de dependen analogice celor ce au loc la compilarea codurilor
sursei iniiale. Elementul grafic de baz al diagramei de componente sunt componentele, interfeele i dependenele ntre ele. Diagrama de componente se elaboreaz pentru urmtoarele scopuri: vizualizarea structurii comune a codului surs a unui sistem de program; specificarea variantei executabile a unui sistem de program; asigurarea utilizrii repetate a unor fragmente ale codului surs; reprezentarea conceptual i fizic a schemelor bazei de date.
n elaborarea diagramei de componente particip analitii de sistem, arhitectorii, i programitii. Diagrama de componente asigur trecere coordonat de la reprezentare logic spre o realizare a unui proiect n form de cod surs. Unele componente pot exista numai la etapa compilrii codului sursei, altele la etapa realizrii lui. Diagrama de componente reflect dependenele ntre componente la cercetarea componentelor n calitate de clasificatori.
use DocumentContent
use
use
Figura 2.9.1 Diagrama de componente n figura 2.9.1 este reprezentat modul de interaciune dintre componentele sistemului proiectat. 1.10 Diagramele de plasare Diagrama de plasare este specific pentru vizualizarea elementelor i componentelor programului, ce exist numai la etapa executrii. n urma cruia sunt prezentate numai componente exemplare ale programului, care sunt fiiere de executare sau librriile dinamice. Acele componente, care nu sunt utilizate la etapa executrii, n diagrama de plasare nu sunt indicate. Componente cu texte iniiale a progra mului pot fi numai n diagrama de componente. n diagrama de plasare nu sunt indicate. Diagrama de plasare conine reprezentarea grafic a procesoarelor, echipamentelor, proceselor i legturilor dintre ele. Spre deosebire de diagrama reprezentrii logice, diagrama de plasare este un sistem unic, deoarece trebuie s desfoare toate particularitile realizrii ei. Aceast diagram finalizeaz procesul pentru un sistem concret de programare i elaborarea ei este ultima etap de specificare a modelului.
device Serv er
Android System
Serv erScripts
CloudNotepad
DataBase
Figura 2.10.1 Diagrama de plasare a componentelor sistemei n aceast diagram am modelat nivelul fizic al sistemului, artnd cum interactioneaz aplicaia cu server. Atunci cnd utilizatorul ntreprinde o aciune care impune adresarea sistemului la serverul cu date are loc conectarea la intenet, trimiterea interogarii la server unde este prelucrat de catre scripturile locale care se adreseaz la baza de date MySql. Odata cu obinerea rezultatului acesta este ntors aplicaiei pentru a fi informat utlizatorul despre rezultatul ndeplinirii comenzii trimise.