Sunteți pe pagina 1din 69

UNIVERSITATEA ROMNO AMERICAN

FACULTATEA DE INFORMATIC MANAGERIAL

LUCRARE DE LICEN
Aplicaie Java de file-sharing

COORDONATOR TIINIFIC:
Conf. Univ. Dr. George Carutasu
STUDENT:

Matei Leonardo Florin

BUCURETI
2014
CUPRINS :

Introducere
. 3
Capitolul 1. Studiul i analiza sistemului actual al firmei
4
1.1. Prezentarea succint a firmei
.. 4
1.2. Activitatile desfasurate in unitatea economica
4
1.3. Studiul sistemului de conducere
8
1.4. Studiul sistemului condus
..
9
1.5. Studiul sistemului informational
9
1.5.1. Schema fluxului informaional aferent temei
.. 9
1.5.2. Descrierea circuitului informaional aferent temei
.. 10
1.5.3. Documente utilizate

11
1.5.4. Analiza critic a sistemului actual i identificarea neajunsurilor existente
.. 14
1.5.5. Directii de perfecionare a sistemului actual
. 14
Capitolul 2. Tehnologii informatice utilizate.
15
2.1. Notiuni generale despre programare si limbajele de programare
15
2.2. Notiuni generale despre limbajul de programare Java
. 18

2.3. Elemente Java folosite in dezvoltarea aplicatiei


22
2.3.1. Fire de executie (Java Threads)
. 22
2.3.2. Socketuri Java

23
2.3.3. Interfee grafice cu ajutorul Java.Swing
.. 23
2.4. Medii de dezvoltare integrate
. 24
2.5. Java: un limbaj compilat si interpretat
. 25
Capitolul 3. Proiectarea de detaliu a aplicaiei informatice
.. 27
3.1 Definirea obiectivelor aplicaiei
informatice 27
3.1.1 Tehnologii
utilizate
. 27
3.1.2 Privire de ansamblu asupra
modelului 28
3.2 Schema de sistem a
aplicaiei
29
3.3 Clasele principale ale
aplicaiei
. 33
3.3.1 Clasa Log
In
. 33

3.3.2 Clasa
Mesaje
. 33
3.3.3 Clasa
Client
. 34
3.3.4 Clasa Fereastra
Principala
35
3.3.5 Clasa
Server
.. 35
3.4 Secvene de testare ale
aplicaiei.
36
3.5 Proiectarea interfeei aplicaiei
informatice. 38
3.6 Proiectarea bazei de
date
.. 42
3.7 Propuneri de dotare cu echipamente IT i costuri
aferente. 45
Capitolul 4. Prezentarea produsului
software. 46
4.1 Cerinele platformei hardware i software ale produsului
program. 46
4.2 Descrierea funciunilor aplicaiei
.. 49
Capitolul 5. Eficiena i utilitatea aplicaiei
informatice. 52
5.1 Condiii privind implementarea
aplicaiei 52
3

5.2 Consideraii privind eficiena


aplicaiei. 54
Bibliografie
57

Introducere. Oportunitatea i importana temei lucrrii de licen


n aceast lucrare de licen voi prezenta detaliat demersul realizri unei
aplicaii care vine n ajutorul firmelor de orice tip atta timp ct exist cel
puin doi angajai ce lucreaz pe calculatoare.
Pentru dezvoltarea aplicaiei am folosit limbajul de programare Java,
deoarece am vrut s aplic i s aprofundez toate cunotinele acumulate pe
parcursul celor trei ani de facultate. De asemenea, un alt considerent pentru
alegerea acestui limbaj de programare a fost i popularitatea de care se
bucur, el fiind folosit n dezvoltarea aplicaiilor pentru telefoane mobile,
calculatoare, tablete, autoturisme, etc. Limbajul Java este folosit in
majoritatea echipamentelor informatice aflate pe pia.

Alegerea acestei teme de licen a nsemnat pentru mine oportunitatea


de a mi pune la ncercare voina, de a mi cunoate mai bine nclinaia ctre
acest domeniu, n acelai timp testndu-mi capacitatea de a dezvolta
produse software prin folosirea limbajului
de programare Java.

CAPITOLUL 1. STUDIUL SI ANALIZA SISTEMULUI ACTUAL AL FIRMEI


1.1 Prezentarea succint a firmei
S.C. INSTASUPPORT S.R.L. este o firm nfiinat n anul 2009 ce ofer
servicii complete de suport IT pentru companii mici i mijlocii dar i pentru
persoane fizice.
Firma S.C. INSTASUPPORT S.R.L. ofer clienilor si o varietate de servicii,
precum:

servicii de helpdesk (suport)


asisten tehnic
5

administrare i ntreinere calculatoare


administrare i ntreinere reele
consultan IT
service si depanare
Personalul firmei este compus din specialiti IT ce posed o vast

pregtire n domeniul IT i dein certificri recunoscute internaional, oferite


de Microsoft, Cisco.
Serviciile oferite de firma S.C. INSTASUPPORT S.R.L. se ridica la cele mai
nalte standarde, calitatea serviciilor reflectndu-se prin numrul tot mai
mare de clieni mulumii, care au apreciat rapiditatea n identificarea i
rezolvarea problemelor, seriozitatea, punctualitatea i costurile mici.
1.2. Activitile desfurate n unitatea economic
n anul 2009, obiectivul principal al firmei dup nfiinare a fost stabilirea
unui sediu central dotat cu aparatura performant, de ultim generaie,
pentru a facilita deservirea
ct mai rapid i ct mai eficient a serviciilor oferite de companie.
Eficiena i performana economic a societii vor rezulta din analiza
indicatorilor de performan. Pentru a ajunge la aceste rezultate, se vor
cerceta primii 4 ani de activitate.

Indic

Venituri

Cheltuieli

Pierderi

Numr de

totale

totale

totale

salariai

2009

141590

123838

5238

10

2010

153310

135039

7580

10

2011

176614

168091

11398

12

2012

121320

105938

8105

12

atori
Anii

Fig. 1.2.1. Tabel indicatori de performan

Analiza veniturilor totale


Cifra de afaceri reprezint suma total a veniturilor din operaiunile
comerciale realizate de firm, vnzarea de mrfuri i produse, ntr-o perioad
de timp determinat.
Cifra de afaceri este un indicator important pentru stabilirea locului
intreprinderii pe pia i n cadrul sectorului de activitate, dar i pentru
stabilirea strategiei de dezvoltare a societii respective.

Evolutia veniturilor totale


200000
180000
160000
140000
120000
100000
80000
60000
40000
20000
0
2009

2010

2011

2012

Evolutia veniturilor totale

Figura 1.2.1 Evoluia cifrei de afaceri

Conform graficului 1.2, observm c cifra de afaceri a cunoscut o


cretere aproape constant pn n anul 2011, dup care a urmat o perioada
de declin pn la sfritul
perioadei studiate, n 2012.
n perioada 2009-2012 avem o cifr medie de afaceri de 148208,5 RON,
cea mai mare valoare a cifrei de afaceri fiind n anul 2011 (176614 RON), iar
cea mai mica valoare a cifrei de afaceri fiind n anul 2012 (121320 RON).
Analiza cheltuielilor totale
7

Mobilul activitii economice este profitul, fiind considerat cea de-a patra
form de venit. Profitul se definete ca fiind ctigul realizat n form
bneasc dintr-o activitate, aciune sau operaie economic i se determin
ca fiind diferena ntre venituri i cheltuieli.

Analiza cheltuieli totale


180000
160000
140000
120000
100000
80000
60000
40000
20000
0
2009

2010

2011

2012

Analiza cheltuieli totale

Figura 1.2.2 Evoluia cheltuielilor totale

Analiznd graficul cheltuielilor totale, observm o uoar scdere a


profitului n perioada 2009-2010, n 2011 profitul atingnd cea mai mic
valoare (8523 RON), iar n 2012 profitul crescuse pn la 15382 RON.
Valoarea mediului a profitului pe perioada nregistrat este de 14982
RON.

Analiza pierderilor totale

Analiza pierderi totale


12000
10000
8000
6000
4000
2000
0
2009

2010

2011

2012

Analiza pierderi totale

Figura 1.2.3 Evoluia pierderilor totale

Urmrind graficul, observm o cretere a pierderilor totale n perioada


2009-2011,
urmat de o scdere a acestora n ultimul an studiat.
Analiza numrului total de angajai

Analiza numrului total de angajati


12
11.5
11
10.5
10
9.5
9
2009

2010

2011

2012

Analiza numrului total de angajati

Figura 1.2.4 Evoluia numrului de angajai

n ciuda scderii treptate a profitului, numrul de angajai a crescut de la


10 angajai n perioada 2009-2010 la 12 angajai n perioada 2011-2012.

1.3 Studiul sistemului de conducere


Societatea INSTASUPPORT are un sistem de conducere structurat relativ
simplu, la conducerea societii aflndu-se administratorul firmei. Acesta
deine cea mai important funcie i are rolul de a asigura o funcionare ct
mai eficient a firmei. Cteva dintre atribuiunile administratorului ar fi :

Stabilete obiectivele generale de dezvoltare ale firmei, n concordan cu


strategia propusa;

Intocmeste bugetul i rectificrile acestuia;

Identific oportuniti de extindere a numarului de clienti;

Reprezint firma n relaiile protocolare cu furnizorii, clienii strategici;

Asigur managementul firmei;

Verific i semneaz orice documente care sunt emise de societate

Observm structura societii conform figurii 1.3.1:

Administrator

Director tehnic

Contabil

Departamentul
tehnic
Figura 1.3.1 Organigrama sistemului de conducere

10

1.4 Studiul sistemului condus


Sistemul

condus

al

societii

economice

este

alctuit

doar

din

departamentul tehnic.
Directorul

tehnic

rspunde

de

coordonarea

buna

funcionare

departamentului tehnic care i este subordonat i urmreste activitatea


personalului din departamentul tehnic.
Personalul din departamentul tehnic se ocupa cu prestarea serviciilor firmei.
1.5 Studiul sistemului informaional
1.5.1 Schema fluxului informaional aferent temei
Prin flux informaional se inelege circuitul informaiilor ntre mai multe
entiti organizaionale sau chiar n interiorul aceleiai organizaii.

Primire solicitare
de la client

Receptare
solicitare
Rezolvare
solicitare
Raportarea
solicitrii n sistem

Figura 1.5.1.1 Fluxul informaional

11

1.5.2 Descrierea circuitului informaional aferent temei


Circuitul informaional reprezint calea pe care circul o informaie de la
creere pn la ncetarea existenei sale.
n cadrul societii S.C. INSTASUPPORT S.R.L., circuitul informaional se
poate descrie astfel:
Un client nou sau deja nregistrat intra n contact cu un angajat din
departamentul tehnic prin telefon sau prin e-mail. Angajatul i ofer suportul
de care are nevoie clientul, gsete o soluie pentru problema acestuia i l
ajuta sa o rezolve. Dup ce problema clientului a fost rezolvat, angajatul
respectiv raporteaz n sistem statusul solicitrii clientului urmnd a fi
verificat de directorul tehnic ce are n subordine departamentul tehnic.
DIRECTORUL
TEHNIC

DEPARTAMENTU
L TEHNIC

SISTEM

CLIENT
12

ANGAJAT
DEPARTAMENT
TEHNIC

Fig. 1.5.2.1 Schema circuitului informaional

1.5.3 Documente utilizate

Contractul - un document ncheiat n comun acord ntre dou pri, prin


care se definete perioada de valabilitate a contractului, scopul, condiii i

13

clauze

ale

14

acestuia;

15

Factura este un document contabil emis de o companie (furnizorul), ctre o


alt companie sau persoan (clientul), document ce conine lista cu
produsele vndute sau serviciile prestate clientului de ctre furnizor. O
factur mai conine datele de identificare fiscal a clientului (emitentul),
datele furnizorului (persoana fizic sau juridic), cota de TVA, precum i
preul, cantitatea i valoarea fiecrui produs vndut.

Fig. 1.5.3.1 Model de factura

16

Fia postului reprezint anexa la contractul individual de munc al unui


salariat n care sunt cuprinse competenele, responsabilitile,
atribuiile i sarcinile de serviciu proprii funciei pe care o deine
salariatul.

17

18

Fig. 1.5.3.2 Fia postului

1.5.4 Analiza critic a sistemului actual i identificarea neajunsurilor


existente

19

Sistemul actual ce faciliteaz comunicarea dintre angajaii firmei n


vederea mbuntirii serviciilor oferite clienilor prin rezolvarea mai eficient
i mai rapid a problemelor este ineficient. Comunicarea dintre angajaii
firmei, la momentul actual, se poate face prin telefon, e-mail sau prin
intermediul programelor de mesagerie.
Toate aceste ci de comunicare dintre angajai n vederea soluionrii
mai rapide a unei probleme sunt ineficiente deoarece, fa de un program de
comunicare ntre angajai special realizat pentru a facilita acest lucru,
dureaz prea mult ca informaia s ajung la toi angajaii din cadrul
departamentului tehnic.
De asemenea, pentru a putea mbunti calitatea convorbirilor cu
clienii, angajaii din cadrul departamentului tehnic au nevoie de
echipamente audio de intrare i ieire (csti, microfoane) mai performante,
pentru o claritate ct mai bun a convorbirilor.

1.5.5 Direcii de perfecionare a sistemului actual


Deoarece principalul serviciu oferit clienilor, i anume suportul tehnic,
fie el prin e-mail sau prin convorbire telefonic, trebuie s se desfoare n
condiii de lucru ct mai optime, recomand ca echipamentele firmei s fie ct
mai performante, n special echipamentele audio precum ctile i
microfoanele. Nu trebuiesc neglijate nici staiile de lucru, deoarece cu ct
sunt mai performante calculatoarele din departamentul tehnic, cu att le va fi
mai uurat munca si vor putea ajuta mai rapid clienii.

20

CAPITOLUL 2. TEHNOLOGII INFORMATICE UTILIZATE


2.1. Notiuni generale despre programare si limbaje de programare.
Programarea informatic este o activitate informatic de elaborare a
produselor-program, a programelor (software) necesare activitilor realizate
cu ajutorul calculatorului. Programarea informatic conine urmtoarele
subactiviti: specificarea, proiectarea, implementarea, documentarea i
ntreinerea produsului program.
Un limbaj de programare este un set bine definit de expresii i reguli
(sau tehnici) valide de formulare a instruciunilor pentru un computer. Un
limbaj de programare are definite un set de reguli sintactice i semantice. El
d posibilitatea programatorului s specifice n mod exact i amnunit
aciunile pe care trebuie s le execute calculatorul, n ce ordine i cu ce date.

Categoriile limbajelor de programare:

Dup paradigma programrii

limbaje ezoterice, ex. Brainfuck

limbaje procedurale; ex. C, Java, Perl

limbaje functionale: ex. ML, Haskell

limbaje pentru programarea logic ex. Prolog, DATALOG

limbaje mixte: ex. LISP - ofer un amestec heteroclit i netipizat


de programare imperativ i programare functional
21

Dup nivelul de abstractizare


limbaje de generaia ntia: limbajele cod-main (limbaje

o
main)
o

limbaje de generaia a doua: limbajele de asamblare

limbaje de generaia a treia: limbaje de nivel nalt, cum ar fi C-ul


(i toate derivatele sale: C++, Java, ...), Pascal, Fortran

limbaje de generaia a patra: limbajele neprocedurale, orientate


pe rezolvarea unei anumite clase de probleme: SQL

limbaje de generaia a cincea: limbaje utilizate n domenii precum


logica fuzzy, inteligena artificial sau i reelele neuronale: Prolog, LISP

Dupa vechime

Limbaje din secolul trecut; ex. LISP i FORTRAN din anii '50

Limbaje din ultimul deceniu; ex. Haskell, Ruby, Brainfuck


Pentru executarea unui program scris ntr-un limbaj oarecare, exist, n
principiu, dou abordri: compilare sau interpretare. La compilare,
compilatorul transform programul-surs n totalitatea sa ntr-un program
echivalent scris n limbaj main, care apoi este executat. La interpretare,
interpretorul ia prima instruciune din programul-surs, o transform n limbaj
main i o execut; apoi trece la instruciunea doua i repet aceleai
aciuni .a.m.d.
Unele limbaje se preteaz bine la compilare; de exemplu limbajele
clasice: Pascal, Fortran, C. Altele sunt cu predilecie interpretate, de ex.
BASIC, PHP, SQL. Multe limbaje moderne combin compilarea cu
interpretarea: codul surs este compilat ntr-un limbaj binar numit bytecode,
22

care la rulare este interpretat de ctre o main virtual. De remarcat faptul


c unele interpretoare de limbaje pot folosi compilatoare aa-numite just-intime, care transform codul n limbaj main chiar naintea executri
Lista de limbaje de programare:
Limbaje generale:
Limbaje care pot fi folosite (cel puin teoretic) la rezolvarea oricrui tip
de probleme:

TEO (Basic)
Alen (variant modificat a limbajului TEO)
BASIC (QuickBasic, GW-BASIC, Visual Basic)
C
C++
C#
Clips
Cobol
Fortran
Haskell
Java
JavaScript
LISP
Pascal (i ObjectPascal, folosit de Borland Delphi)
PHP
Prolog
Python
Ruby
Scriptol
Tcl/TK
XHTML
MATLAB
Borland Delphi
Algol
Simula

Limbaje specifice:

23

Limbaje cu un scop bine definit - de obicei interacioneaz cu un anume


program sau sistem.

ActionScript - limbajul de scripting folosit de Macromedia Flash


ASP (i ASP.NET) - pentru scripting web
FoxPro (FoxPro, Visual FoxPro)
MIVA SCRIPT
SQL - pentru interaciunea cu bazele de date relaionale

2.2. Noiuni generale despre limbajul de programare Java


Java este un limbaj de programare orientat-obiect, puternic tipizat,
conceput de ctre James Gosling la Sun Microsystems (acum filial Oracle) la
nceputul anilor 90, fiind lansat n 1995. Cele mai multe aplicatii distribuite
sunt scrise in Java, iar noile evolutii tehnologice permit utilizarea sa si pe
dispozitive mobile gen telefon, agenda electronica, palmtop etc. In felul
acesta se creeaza o platforma unica, la nivelul programatorului, deasupra
unui mediu eterogen extrem de diversificat. Acesta este utilizat in prezent cu
succes si pentru programarea aplicatiilor destinate intranet-urilor.
Limbajul mprumut o mare parte din sintax de la C i C++, dar are un
model al obiectelor mai simplu i prezint mai puine faciliti de nivel jos. Un
program Java compilat, corect scris, poate fi rulat fr modificri pe orice
platform care e instalat o main virtual Java (englez Java Virtual
Machine, prescurtat JVM). Acest nivel de portabilitate (inexistent pentru
limbaje mai vechi cum ar fi C) este posibil deoarece sursele Java sunt
compilate ntr-un format standard numit cod de octei (englez byte-code)
care este intermediar ntre codul main (dependent de tipul calculatorului) i
codul surs.
Maina virtual Java este mediul n care se execut programele Java. n
prezent, exist mai muli furnizori de JVM, printre care Sun, IBM, Bea, Oracle,
24

FSF. n 2006, Sun a anunat c face disponibil varianta sa de JVM ca opensource.


Exist 3 platforme Java furnizate de Sun Microsystems:

Java Platform, Micro Edition (Java ME) pentru hardware cu resurse

limitate, gen PDA sau telefoane mobile,

Java Platform, Standard Edition (Java SE) pentru sisteme gen

workstation, este ceea ce se gaseste pe PC-uri,

Java Platform, Enterprise Edition (Java EE) pentru sisteme de calcul

mari, eventual distribuite.

Evoluia limbajului JAVA


In 1991, firma SUN, mergnd pe directia dezvoltarii sistemelor deschise
de lucru n retea, a creat un proiect de lucru numit Green, care avea drept
scop punerea la punct a unor procesoare care s poata rula pe diferite tipuri
de aparate si punerea la punct a unui sistem care s poat rula pe platforme
diferite. Planul iniial prevedea dezvoltarea proiectului n C++, dar au aprut
foarte multe probleme n ncercarea de dezvoltare a compilatorului de C++.
Ca urmare, James Gosling, membru al grupului Green, a nceput s lucreze
la dezvoltarea unui nou limbaj, numit Oak, care, mai trziu, avea s se
numeasca Java. De asemenea grupul Green avea s-i schimbe numele nti
n FirstPerson, apoi n JavaSoft.
Abia dupa ce a fost nfiinat compania Netscape Communications
Corporation, cei de la JavaSoft s-au orientat ctre Internet si Web, mediul
multiplatform distribuit al reelei Internet fiind perfect pentru testarea
proiectului.
25

In prezent licena pentru tehnologia Java a fost acordata unor firme


precum IBM, Microsoft, Sillicon Graphics, Adobe si Netscape.
Istoricul versiunilor Java:

23 ianuarie 1996, JDK 1.0 - versiunea iniial

19 februarie 1997, JDK 1.1

8 decembrie 1998, J2SE 1.2

8 mai 2000, J2SE 1.3

6 februarie 2002, J2SE 1.4

30 septembrie 2004, J2SE 5.0, numrul de versiune 1.5 este pstrat ca

numr intern de versiune

11 decembrie 2006, Java SE 6

14 februarie 2012, Java SE 7

Caracteristicile de baz al limbajului Java


A. Folosirea n medii de reea distribuite
Java a fost proiectat pentru un mediu complex cum este Internetul i
de aceea trebuie s poata rula pe platforme eterogene distribuite. Acest
lucru este posibil deoarece:

26

este neutru din punct de vedere arhiectural =


programele pot fi rulate pe orice platform care are

instalat mediul Java


are un grad ridicat de portabilitate = conine obictecte
care pot fi folosite pe platforme eterogene si respect
standardele IEEE (Institue of Electrical and Electronics
Engineers) pentru structurile de date (folosirea

ntregilor, a numerelor n virgula mobila, a irurilor, etc)


este distribuit = poate folosi att obiecte memorate
local ct i obiecte stocate pe calculatoare aflate la

distan
este compatibil cu mediile de lucru n reea (poate fi
utilizat n reele complexe) i accept direct
protocoalele de reea obisnuite cum ar fi FTP si HTTP

B. Asigurarea performanei ridicate

compilatorul i sistemul de execuie ofera o viteza

ridicat rulrii programelor


are ncorporate posibiliti de execuie multifilara
(rularea simultana a mai multor procese) folosind un
sistem de acordare de prioriti proceselor ce trebuie
executate. Printre procesele care ruleaza n fundal sunt
cele de "colectare a gunoiului" i de gestionare a
memoriei.

C. Refolosirea codului si fiabilitatea

Java este un limbaj dinamic, lucru asigurat prin


ntrzierea legrii obiectelor si legarea dinamica a
claselor n timpul execuiei, ceea ce mpiedica apariia
erorilor n cazul schimbarii mediului de lucru dup
compilarea programului surs.
27

Fiabilitatea este asigurat prin eliminarea pointerilor,


prin folosirea verificrii dinamice a limitelor si prin

gestionarea automat a memoriei,


nlturndu-se posibilitatea fisurilor si violrilor de memorie. O alt cale
de evitare a erorilor este verificarea structurilor de date att la
compilare ct si n timpul execuiei.
D. Asigurarea securitii

Interzice accesul la stiva sistemului, la zona liber de

memorie si la seciunile protejate de memorie


Verifica validitatea codului semnalnd urmatoarele:
Violrile de acces
Conversiile ilegale de date
Valori si parametri incoreci
Modificarea claselor sau folosirea incorect a acestora
Depirea stivei n partea superioar sau inferioar
Activiti suspecte sau neautorizate

Structura limbajului Java


Aplicaii si miniaplicaii

miniaplicaie (applet) = program Java creat pentru a fi folosit n


sistemul WWW. Applet-urile necesit un program de vizualizare
extern - browser Web sau un program specializat de vizualizare

(applet viewer).
aplicatie (app) = program Java care poate fi rulat independent

28

2.3 Elemente Java folosite n dezvoltarea aplicaiei


2.3.1 Fire de execuie (Java threads)
Un fir de execuie este o succesiune secvenial de instruciuni care se
execut n cadrul unui proces.
Firele de execuie fac trecerea de la programarea secvenial la
programarea concurent. Un program secvenial reprezint modelul clasic de
program are un nceput, o secven de execuie a instruciunilor sale i un
sfrit. Altfel spus, programul are un singur punct
de execuie. Un program aflat n execuie se numete proces.
Un fir de execuie este similar unui proces secvenial n sensul c are un
nceput, o secven de execuie i un sfrit. Diferena dintre un fir de
execuie i un proces const n faptul c un fir de execuie nu poate rula
independent ci trebuie s ruleze n cadrul unui proces.

Ca orice alt obiect Java, un fir de execuie este o instan a unei clase.
Firele de execuie definite de o clas vor avea acelai cod i prin urmare
aceeai secven de instruciuni.
Crearea unei clase care s defineasc fire de execuie poate fi fcut prin
dou modaliti:
1. Prin extinderea clasei Thread
2. Prin implementarea interfeei Runnable

29

Orice clas ale crei instane vor fi executate ntr-un fir de execuie
trebuie declarat ca fiind Runnable. Aceasta este o interfa care conine o
singura metod, i anume run.
Aadar, orice clas ce descrie fire de execuie va conine o metod run
n care este implementat codul ce va fi executat de firul de execuie.
2.3.2 Socketuri Java
Combinaia dintre adresa IP i numrul de port este ntrebuinat pentru
crearea unui termen abstract, numit socket. Acesta se mai numete si canal
de comunicaie sau conexiune.
Un client caut serverul, stabilete o conexiune prin care informaia
poate fi trimis iar la final se va deconecta, lasnd liber socketul pentru o
utilizare ulterioar.
Un socket furnizeaz faciliti pentru crearea de fluxuri de intrare i ieire,
care permit datelor s fie schimbate ntre client i server.
Atunci cnd se stabilete o conexiune, att clientul ct i serverul vor avea
cte un socket. Comunicarea efectiva se va realiza ntre socketuri.
2.3.3 Interfee grafice cu ajutorul Java.Swing
Interfeele grafice (Graphical User Interfaces) reprezint ferestre ce
conin elemente grafice ce permit interaciunea dintre aplicaie i utilizator.
Limbajul java pune la dispoziia programatorului dou biblioteci pentru
realizarea interfeelor grafice: java.awt i java.swing.

30

Fig. 2.3.3.1 Ierarhia claselor Swing

n figura 2.3.3.1 este prezentat ierarhia claselor folosite pentru construirea


de interfee grafice n limbajul Java.
Suprafee de afiare
Crearea obiectelor grafice nu realizeaz automat si afiarea lor pe ecran.
Mai nti ele trebuie aezate pe o suprafa, care poate fi o fereastra sau
suprafaa unui applet, si vor deveni vizibile n momentul n care suprafaa pe
care sunt afiate va fi vizibil. O astfel de suprafa pe care se aeaz
obiectele grafice se numete suprafa de afiare sau
container si reprezint o instana a unei clase obinut prin
extensia superclasei JContainer.
Swing este un subset JFC (Java Foundation Classes) i const dintr-o
serie de componente vizuale care extind (mbuntesc) componentele AWT
i furnizeaz noi faciliti precum tabele i arbori. Structura de clase din
Swing este asemntoare cu cea din AWT, n sensul c toate componentele
interfeei grafice sunt derivate dintr-un singur printe numit JComponent
(care este derivat din clasa AWT Container).
31

Pachetul de clase Swing reprezint soluia furnizat de Sun pentru


crearea unor interfee utilizator grafice complet portabile pe orice platform.
n Swing, toate numele claselor ncep cu litera J, i atunci cnd este
posibil, numele este acelai cu cel al clasei AWT pe care o nlocuiete.
2.4 Medii de dezvoltare integrate.
Un mediu de dezvoltare (engl. software development environment, sau
integrated development environment - mediu integrat de dezvoltare) este un
set de programe care ajut programatorul n scrierea programelor. Un mediu
de dezvoltare combin toi paii necesari crerii unui program (ex.: editarea
codului surs, compilarea, depanarea, testarea, generarea de documentaie)
ntr-un singur soft, care, de regul, ofer o interfa cu utilizatorul grafic,
prietenoas.
Principalele componente ale unui mediu de dezvoltare sunt editorul de
cod surs i depanatorul. Mediile de dezvoltare apeleaz compilatoare, sau
interpretoare, care pot veni n acelai pachet cu mediul nsui, sau pot fi
instalate separat de ctre programator.
Printre facilitile prezente n mediile de dezvoltare mai sofisticate se
numr: exploratoare de cod surs, sisteme de control al versiunilor,
designere de interfee grafice, sau unelte de ingineria programrii (ex.
generarea de diagrame UML).
De obicei un mediu de dezvoltare este specific unui anumit limbaj de
programare, ns exist la ora actual i medii de dezvoltare care pot lucra cu
mai multe limbaje, de exemplu Eclipse sau Microsoft Visual Studio.
Pentru Java sunt folosite urmtoarele:

Jcreator gratuit
Eclipse gratuit
NetBeans gratuit
BEA Workshop gratuit
BlueJ gratuit
Codeguide comercial
32

DrJava gratuit
Jbuilder comercial
Jdeveloper comercial, platform multipl
Kdevelop gratuit (platform GNU/Linux, Cygwin)

2.5 Java: Un limbaj compilat i interpretat


In funcie de modul de execuie a aplicaiilor, limbajele de programare se
mpart in dou categorii:
Interpretate: instruciunile sunt citite linie cu linie de un program numit
interpretor i traduse in instructiuni main. Avantajul acestei soluii este
simplitatea i faptul c fiind interpretat direct sursa programului obinem
portabilitatea. Dezavantajul evident este viteza de execuie redus. Probabil
cel mai cunoscut limbaj interpretat este limbajul Basic.
Compilate: codul surs al programelor este transformat de compilator ntr-un
cod ce poate fi executat direct de procesor, numit cod main. Avantajul este
execuia extrem de rapid, dezavantajul fiind lipsa portabilitii, codul
compilat ntr-un format de nivel sczut nu poate fi rulat dect pe platforma
de lucru pe care a fost compilat.
Limbajul Java combin soluiile amintite mai sus, programele Java fiind
att interpretate ct i compilate. Aadar vom avea la dispoziie un
compilator responsabil cu transformarea surselor programului n aa numitul
cod de octei, precum i un interpretor ce va executa respectivul cod de
octei.
Codul de octei este diferit de codul main. Codul main este
reprezentat de o succesiune de 0 si 1; codurile de octei sunt seturi de
instruciuni care seaman cu codul scris n limbaj de asamblare. Codul
main este executat direct de ctre procesor i poate fi folosit numai pe
platforma pe care a fost creat; codul de octei este interpretat de mediul Java
i de aceea poate fi rulat pe orice platform care foloseste mediul de execuie
Java.

33

Pentru ca un cod de octei s poat fi executat pe un anumit calculator,


pe acesta trebuie s fie instalat o masina virtuala Java. Prin masina virtuala
Java (JVM) vom intelege mediul de executie al aplicatiilor Java.
Maina Virtual Java reprezint un calculator abstract. Ca i
calculatoarele reale, aceasta dispune de un set de instruciuni, un set de
regitri i utilizeaz diferite zone de memorie.
Partea dificil a crerii codului binar Java este compilarea codului surs
pentru o maina care nu exist fizic. Aceast maina este numita maina
virtuala Java deoarece exist doar n memorie. Apoi, interpretorul Java
traduce instruciunile cod-main Java n mulimi de instruciuni care pot fi
nelese de maina real (fizic).
Cele mai importante pri ale unei astfel de maini care necesit
simularea unui calculator real sunt :
- o mulime de regitri;
- o stiv;
- un mediu de execuie
- un ansamblu pentru eliberarea memoriei;
- o tabel (engl. pool) de literali constani;
- un spaiu de memorie a unei metode;
- o mulime de instruciuni;

CAPITOLUL 3. PROIECTAREA DE DETALIU A APLICAIEI INFORMATICE


3.1 Definirea obiectivelor aplicaiei informatice
Acest document reprezint evaluarea arhitecturii sistemului necesar
crerii i implementrii aplicaiei de mesagerie.
3.1.1 Tehnologii utilizate
Limbajul de programare:
34

Java este un limbaj de programare modern, orientat pe obiecte.


Avantaje ale limbajului de programare:
a) Este independent din punct de vedere al unei platforme.
b) Orientat pe obiecte.
c) Execuie multifilar
Pentru acest proiect vom folosi socketuri TCP/IP pentru comunicrile

server-client si client-client i va fi dezvoltat o interfa grafic (GUI) ct mai


uor de folosit. Pentru acest lucru, vom folosi clasele deja existente ale
limbajului de programare Java.
o Pachetul Java.net al limbajului Java ofer o clas numit Socket, ce
implementeaz o parte dintr-o conexiune cu dou sensuri dintre un
program Java i alt program aflat n reea.
o Pentru interfaa grafic voi folosi java.awt, java.swing dar i alte
pachete ce vor implementa obiectele grafice necesare.
o Alte pachete folosite: java.util, java.io.File/Reader/Writer, java.Thread
Dezvoltarea aplicaiei ntr-un mediu de dezvoltare specific Java
Att Eclipse ct i NetBeans sunt excelente medii de dezvoltare pentru
programarea n Java, sunt gratuite, ns NetBeans este mai user-friendly,
astfel c interfaa grafic, partea de client i partea de server le voi dezvolta
folosind NetBeans 7.1.1.
3.1.2 Privire de ansamblu asupra modelului

35

Fereastra
Principal

LogIn

Client

Client
Message

Server

Client

Fig. 3.2.1 Diagrama secvenei de transfer a unui fiier

3.2 Schema de sistem a aplicaiei


Diagrama UML
Unified Modeling Language (prescurtat UML) este un limbaj standard
pentru descrierea de modele i specificaii pentru software. Limbajul a fost
36

creat de ctre consoriul Object Management Group (OMG) care a mai produs
printre altele i limbajul de programare CORBA. UML a fost la baz dezvoltat
pentru reprezentarea complexitii programelor orientate pe obiect, al cror
fundament este structurarea programelor pe clase, i instanele acestora
(numite i obiecte). Cu toate acestea, datorit eficienei i claritii n
reprezentarea unor elemente abstracte, UML este utilizat dincolo de domeniul
IT. Aa se face c exist aplicaii ale UML-ului pentru management de
proiecte, pentru business Process Design etc.
Diagrama secvenei de transfer a unui fiier

Fig. 3.2.2 Diagrama secvenei de LogIn

Diagrama secvenei de LogIn


Fig. 3.2.2 Diagrama secvenei de LogIn

37

Diagrama secvenei de LogOf


Fig. 3.2.3 Diagrama secvenei de LogOf

Diagrama secvenei de

cutare a
unui
fiier
Fig. 3.2.4
de cutare a

Diagarma secvenei
unui fiier

Diagrama secvenei de afiare a fiierelor unui user


38

Fig. 3.2.5 Diagrama secvenei de afiare a fiierelor


unui
user

Diagrama
UML
a
aplicaiei

39

Fig. 3.2.6 Diagrama UML a aplicaiei

3.3 Clasele principale ale aplicatiei

40

Fiecare clas conine metodele i atributele proprii, ce alctuiesc o clas


funcional. Metodele i atributele private i auxiliare vor fi omise din
descriere iar atributele iniializate pot suferi modificri.
Mai jos urmeaz o scurt descriere a claselor, rolul acestora i felul
implementrii lor.
Interfaa grafic a clientului: Afieaz o interfa grafic pentru o
utilizare mai uoar, afieaz informaii despre starea curent a sistemului i
remprospteaz informaia de la server. Comunicarea cu restul clienilor cu
ajutorul serverului va fi realizat prin rularea unui thread din cadrul interfeei
grafice.

3.3.1 Clasa LogIn

Clasa LogIn reprezint implementarea funcional unei ferestre de tip

pop-up, ce apare atunci cnd programul este iniializat de un client.


LogIn-ul trebuie s trimit o cerere de autentificare ctre server printr-

un mesaj de autentificare.
LogIn-ul va avea event listeners pentru mouse si tastatur.
LogIn Class:
logInLabel: javax.swing.JLabel
okButton: javax.swing.JButton
cancelButton:
javax.swing.JButton
username:
javax.swing.JTextField
password:javax.swing.JPasswor
dField
submitAuth():

3.3.2 Clasa Mesaje


Implementeaz un mesaj standard n sistem. Aceeai clas va fi
folosit pentru comunicarea client-server sau client-client.

41

Not : Atributele pot fi adugate sau terse din aceast clas n


momentul
cauza
aprea n timpul

3.3.3 Clasa Client

Un obiect de
din programul
simultan ntravea alocat
pentru
client,
serverului

Message Class:
priority:Integer
type: Message type
username: String
password: String
confirmation: Boolean
searchWord:String
filename:String
sizeOfFile:Integer
userList:List
Client Class:
status:
portNo: Integer
ipAddr:String
serverPortNo: Interger
messageQueue: Queue
connectToClient()
connectToServer()
disconnectFromServer()
disconnectFromClient()
sendFile()
getOnlineUsers()
getUserData()
sendFileInfo()
sendFileToUser()

implementrii din
problemelor ce pot
optimizrii.

tip client va face parte


principal i va rula
un thread. Clientul va
un numar de port
comunicarea clientnumrul portului
pentru comunicarea

client-server i un queue pentru primirea cererilor altor useri.


Clientul va avea o bucl principal pentru a asculta cererile, va folosi

socketuri TCP/IP i va avea comunicri multiplexate.


Clientul va putea controla trimiterea de fiiere.

42

3.3.4 Clasa Fereastra Principal (Main Window)

Fereastra Principal a aplicaiei va fi implementat n conformitate cu

specificaiile tehnice necesare sistemului.


Fereastra Principal va avea event listeners pentru mouse i
tastatur.
MainWindow Class:
User: String: NULL
logInButton: javax.swing.JButton
logOutButton: javax.swing.JButton
sendFileButton:
javax.swing.JButton
onlineUsers: javax.swing.JList
statusBar: javax.swing.JLabel
logIn()
logOf()
refreshUserList()
sendFile()
getOnlineUserList()
exit()

3.3.5 Clasa Server

Serverul comunic cu clienii prin mesaje.


La fel ca n cazul clasei Client, serverul va avea o bucl principal ce
ascult cererile, va folosi socketuri TCP/IP i va avea comunicare

multiplexat.
Serverul va avea de asemenea o list de utilizatori i parolele acestora.
Acestea vor exista ntr-un document situat n acelai folder ca i
aplicaia.
43

Server Class:

3.4 Secvene de

portNo: Integer
ipAddr: String
userList: List
messageQueue:Queue
respondToLogInReq()
disconnectResponse()
sendOnlineUsers()
sendFileToUser()
returnSearchResults()
returnUserData()

testare ale

aplicaiei
o Testarea ar trebui fcuta innd cont de diferitele posibile utilizri ale
sistemului. Trebuie testate att folosirea corect a sistemului ct i o
folosire incorect a acestuia.
o Testri suplimentare trebuiesc fcute pentru utilizri improbabile, cum
ar defeciuni aleatoare cauzate de client sau opriri neanunate ale
serverului
Scenarii de test
Testul 1: Log-in
a) Serverul este online, interfaa grafic a clientului este pornit, fereastra
de pop-up pentru log-in apare i se trimit datele de log-in (username i
parol).
b) Rezultatul dorit: Serverul recunoate userul, l adaug n lista de useri
aflai online i retrimite lista tuturor celorlali clieni (actualizarea listei).
Dispare fereastra de pop-up de pe ecranul userului, bara de status l
indic ca fiind online i se populeaz lista de useri online. Ceilali
utilizatori din sistem vor primi noua list de utilizatori de la server dup
ce aceasta se reactualizeaz.
Testul 2: Log-of
a) Utilizatorul face click pe butonul de log-of.

44

b) Rezultatul dorit: Serverul primete cererea de log-of, retrimite noua


list de utilizatori online ctre restul utilizatorilor conectai nc la
server. Utilizatorului delogat i sunt oprite transferurile de fiiere (dac
erau n curs de trimitere / primire), iar bara de status a acestuia indic
acum c este offline.
Testul 3: Trimiterea unui fiier
a) Utilizatorul va selecta un fiier din computer pe care s l trimit altui
utilizator online.
b) Rezultatul dorit: Serverul va trimite port-ul de ascultare al clientului
astfel nct o conexiune peer-to-peer va fi realizat ntre clieni. Clientul
este responsabil cu trimiterea fiierului iar interfaa grafic va afia
statusul transferului fiierului n procente (%)
Testul 4: Primirea unui fiier
a) Utilizatorul va accepta transferul unui fiier de la un alt utilizator online
b) Rezultatul dorit: Serverul va creea o conexiune peer-to-peer ntre
utilizatorul ce trimite i cel ce primete fiierul. Clientul este
responsabil cu trimiterea fiierului iar interfaa grafic va afia statusul
transferului fiierului n procente (%).
Testul 5: Cutarea n fiierele unui utilizator
a) Utilizatorul va scrie denumirea fiierului n csua de search i va face
clic pe butonul de search
b) Rezultatul dorit: n urma cutarii printre fiierele unui utilizator, va fi
afiat o lista cu fiierele ce conin numele introdus n csua de
cutare
Testul 6: Adugarea unui fiier n lista de share
a) Utilizatorul va face clic pe butonul de share
b) Rezultatul dorit: Se va deschide o fereastr de tip pop-up cu funcie de
cutare, iar n aceasta utilizatorul va selecta fiierul dorit urmnd ca
respectivul fiier s fie adugat n lista de fiiere share-uite
45

Testul 7: Vizualizarea fiierelor share-uite ale unui utilizator


a) Un utilizator online va face clic pe un alt utilizator online din list,
cernd astfel automat sistemului s afieze cu o list cu fiierele shareuite ale acelui utilizator
b) Rezultatul dorit: Va fi afiat o list cu fiierele share-uite ale
utilizatorului respectiv

3.5 Proiectarea interfeei aplicaiei


Interfaa grafic cu utilizatorul (GUI Graphical User Interface) este un
termen cu neles larg care se refer la toate tipurile de comunicare vizual
dintre un program i
utilizatorii si.
Biblioteca de clase din cadrul limbajului Java care ofer servicii grafice se
numete java.awt, AWT fiind prescurtarea de la Abstract Window Toolkit i
este pachetul care care a avut de suferit cele mai multe modificri n trecerea
de la o versiune JDK la alta.
n principiu, crearea unei aplicatii grafice presupune urmatoarele lucruri:

Crearea unei suprafee de afiare (o fereastr) pe care vor fi aezate


obiectele grafice care servesc la comunicarea cu utilizatorul (butoane,
controale de editare, texte, etc);
46

Crearea i aezarea obiectelor grafice pe suprafaa de afiare n


poziiile corespunzatoare;

Definirea unor aciuni care trebuie s se execute n momentul n care


utilizatorul interacioneaz cu obiectele grafice ale aplicaiei;

"Ascultarea" evenimentelor generate de obiecte n momentul


interaciunii cu utilizatorul i executarea aciunilor corespunztoare aa
cum au fost ele definite.

Deoarece interfaa grafic este singurul mod prin care un utilizator poate
folosi o aplicaie informatic, am ales un design ct mai simplist si mai uor
de utilizat, fcnd mai uoar interacionarea utilizatorilor cu aceasta.
Fereastra principal:

47

Fig. 3.5.1 Fereastra principal a aplicaiei

n fereastra principal se regsesc toate comenzile i aciunile ce pot fi


folosite de un utilizator al aplicaiei. De asemenea, tot in fereastra principal
a aplicaiei sunt afiate si date despre starea curent a sistemului, cum ar fi
numrul de useri aflai online, numrul de fiiere uploadate, etc.

Tot n fereastra principal avem si csua de login, n care utilizatorul va


introduce datele personale n vederea conectrii la server i folosirii
aplicaiei.

48

Fig. 3.5.2 Fereastra principal cu datele utilizatorului

n urma realizrii conexiunii utilizatorului cu serverul, fereastra


principala se va reactualiza, afind utilizatorii online, fiierele uploadate pe
server, date despre fiiere, etc.

n momentul n care utilizatorul va face clic pe unul dintre userii online,


el va putea s vad fiierele utilizatorului respectiv i dup caz, s le
49

descarce. Datele despre procesul de descrcare vor fi afiate in partea de jos


a ferestrei principale.

Fig. 3.5.3 Procesul de download n fereastra principal

3.6 Proiectarea bazei de date


50

Programul Microsoft Access 2010


Baza de date a sistemului va fi realizat folosind programul Microsoft
Access, ediia 2010. Microsoft Access este un program folosit pentru crearea
i administrarea unei baze de date relaionale, produs de Microsoft, care face
parte din suita Microsoft Office.
Conceptul original de Access a fost pentru utilizatorii finali s poat s
"acceseze" date din orice surs.
Alte caracteristici includ: importul i exportul de date de mai multe
formate, cum ar fi Excel , Outlook , ASCII , dBase , Paradox , FoxPro , SQL
Server , Oracle , ODBC , etc. De asemenea, Access are i posibilitatea de a
folosi baze de date externe, nenglobate, n formatele: Microsoft Excel,
Liste SharePoint, text, XML, Microsoft Outlook, HTML,
dBase,Paradox, Lotus 1-2-3, Oracle, MySQL, etc.
Schema conceptuala a bazei de date

Fig. 3.5.1 Diagrama entitate-asociere

51

Outlook

Dup cum se poate observa i in figura de mai sus, baza de date este
alctuita din 6 tabele:

Angajai
Clieni
Documente
Departamente
Echipamente
Servicii

Identificarea atributelor tabelelor


1) Tabela Angajai

2) Tabela Clieni

52

3) Tabela Departamente

4) Tabela Documente

5) Tabela Echipamente

6) Tabela Servicii

53

Identificarea cheilor primare


TABEL
Angajai
Clieni
Departamente
Documente

CHEIE PRIMAR
Cod Angajat
Cod Client
Cod Departament
Cod Document

CHEIE EXTERN
Cod Angajat
C.Serviciu, C.Client,
C.Angajat

Echipamente
Servicii

Cod Echipament
Cod Servicii

Cod Echipament
Cod Departament
Cod Client

Rapoarte
Raportul Clieni i da utilizatorului posibilitatea de a vedea toi clienii
actuali ai firmei

Fig. 3.5.2 Raportul clienilor

54

Raportul Servicii i d utilizatorului posibilitatea de a vedea lista serviciilor


oferite de firm, ordonate cresctor dupa codul serviciului.

Fig. 3.5.3 Raportul serviciilor

55

3.7 Propuneri de dotare cu echipamente IT i costuri aferente


innd cont de activitatea desfurata de firm, este esenial ca
echipamentul deinut de firma pe care s fie ct mai performant n vederea
soluionrii mai rapide a cererilor i problemelor clienilor, astfe nct acetia
vor fi ct mai satisfcui de serviciile oferite de firm.

n prezent, firma deine 9 puncte de

lucru dotate cu sisteme PC + monitoare, avnd urmtoarele configuraii:

Procesor Intel Pentium G630


HDD WesternDigital capacitate 500 GB
Memorie RAM 2 GB
Plac video integrat Intel HD Graphics
Plac de baz Gigabyte GA-H61M
Plac de reea 100 mbps
Carcasa ATX Middle Tower
Monitor LED Samsung 21.5

Pe viitor, se urmrete mbuntairea staiilor de lucru, urmnd a fi upgradate la urmtoarea


posibil configuraie:

Procesor Intel i5 4670


HDD Seagate 1 TB
Memorie RAM 4 GB
Plac video integrat HD 4600
Plac de baz Gigabyte GA-B85M-D2V
Plac de reea 1000 mpbs
Carcas ATX Middle Tower
Costul unui sistem avnd aceste specificaii se ridic la aproximativ 2000

RON, ceea ce nseamn o investiie de aproximativ 18000 RON.

Capitolul 4. Prezentarea produsului software

56

4.1 Cerinele platformei hardware i software ale produsului


program
Obiectivul:
o Dezvoltarea unei aplicaii de file-sharing ce permite utilizatorilor s
transmit fiiere locale printr-o reea de calculatoare.
Scopuri i funcii:
o Un utilizator, la rularea aplicaiei, va fi capabil s se conecteze la un
server ce permite trimiterea de fiiere altor utilizatori.
o Va fi necesar o procedur de log-in, ce va cere utilizatorului un
username i o parol unice.
o Dup procedura de login i conectarea la server, utilizatorul va primi de
la server o list cu utilizatorii conectai.
o Va fi posibil transmiterea de fiiere ntre utilizatorii conectai la server.
o Va exista i o opiune de log-of astfel nct serverul s tie de acest
lucru, anunnd ceilali utilizatori logai despre modificarea din lista de
utilizatori activi.
Contextul software:
o Orice utilizator va avea ca spaiu disponibil doar spaiul accesibil de pe
sistemul propriu.
o n cazul n care mai muli utilizatori trimit acelai fiier, redundana este
asigurat. Dac computerul unui utilizator ntmpina o problem de
orice natur i se nchide, pierznd astfel conexiunea cu serverul,
trimiterea fiierului va fi n continuare posibil, prelundu-l de la un
utilizator ce deine fiierul respectiv.
o Aplicaia poate fi instalat pe orice sistem de operare, nsa cel mai
recomandat este folosirea ei pe Windows 7, Windows 8, Windows 8.1
sau Linux

57

Contextul hardware
Din punct de vedere al arhitecturii sistemului, acesta va fi alctuit din
computere ce sunt conectate la server prin interfaa de client. Toate
computerele trebuie s fac parte din aceeai reea LAN.
Pentru o performan ct mai ridicat i o securitate ct mai bun,
serverul va rula pe un sistem dedicat (n acest caz, pe o main virtual).
Computerele trebuie s aibe n permanen un minim de memorie
disponibil pentru a putea permite aplicaiei s salveze informaii despre
statusul curent la momentul nchiderii acesteia. Necesarul minim de memorie
poate varia n funcie de numrul de utilizatori aflai
online i de numrul de fiiere trimise.
Un exemplu de configurare a unui sistem pe care aplicaia ar rula fr
probleme:

Procesor Intel i5 4670


HDD Seagate 1 TB
Memorie RAM 4 GB
Plac video integrat HD 4600
Plac de baz Gigabyte GA-B85M-D2V
Plac de reea 1000 mpbs
Carcas ATX Middle Tower

Cerine non-funcionale
1) Cerine pentru interfaa grafic a utilizatorilor (GUI Graphical User
Interface)
2) Cerine de performan i siguran
o Sistemul trebuie s aib un timp ct mai rapid de rspuns
o Sistemul trebuie s fie sigur iar orice defeciune cauzat de condiii
externe (precum o cdere de curent) trebuie s fie prevenit astfel
nct condiia optim de rulare a sistemului s fie ct mai puin
afectat
o Sistemul trebuie s aibe cel puin un server i doi clieni
58

o Numrul maxim de clieni depinde de arhitectura reelei la care sunt


conectai
3) Cerine de administrare a sistemului
o Administrarea sistemului se va realiza doar la nivel de server
o Serverul va avea anumite comenzi administrative i setri interne
o Setrile serverului pot fi schimbate doar prin accesarea mainii pe care
ruleaz serverul
4) Cerine pentru training-ul utilizatorilor
o Documentaie pentru interfaa clientului va fi furnizat, cuprinznd
toate funciile majore ale sistemului
Constrngeri majore:
o Aplicaia va fi dezvoltat sa ruleze pe Linux. Serverul este necesar s
ruleze pe Linux din cauza prelurii de IP si securitatii oferite de sistemul
Linux.
o Aplicaia va depinde n totalitate de un server dedicat. Fr un server,
aplicaia practic este nefolosibil, conexiunea dintre utilizatori fcnduse prin intermediul unui server care sa faca posibila coexistenta
clientilor in acelasi mediu dedicat.
o Utilizatorii sunt capabili s trimit fiiere doar dac sunt conectai la
aceeai reea de tip LAN sau n cazul n care exist un sistem de
routare care s includ n reea i utilizatorii respectivi.
4.2 Descrierea funciunilor aplicaiei
Aplicaia informatic are ca obiectiv realizarea transferului de fiiere
dintre doi sau mai muli utilizatori, cu condiia ca acetia s fie conectai la
sistem i s se afle n aceeai reea LAN de calculatoare.
Prin folosirea acestei aplicaii, utilizatorii vor avea acces la urmtoarele
funcii ale programului:
o Funcia de nregistrare n baza de date a aplicaiei informatice, fiecare
utilizator putnd s-i creeze un cont cu care s se logheze pe server,
59

avnd astfel acces la aplicaie si respectiv la fiierele celorlali


utilizatori.

Fig. 4.2.1 Fereastra de nregistrare n sistem

o Funcia de vizualizare a celorlali utilizatori ce sunt conectai la


serverul aplicaiei n momentul respectiv.

Fig. 4.2.2 Lista de utilizatori online

o Funcia de cutare a unui fiier, att n lista de fiiere uploadate de


ctre un singur utilizator, ns este posibil i vizualizarea simultan a
tuturor fiierelor uploadate de toi utilizatorii ce sunt la momentul
respectiv conectai. De asemenea, n urma efecturii unei cutari,
utilizatorului i vor fi returnate i date despre fiier, cum ar fi mrimea
i utilizatorul de la care provine.

60

Fig. 4.2.3 Funcia de cutare a unui fiier

o Funcia de descrcare a unui fiier sau a mai multor fiiere de la unul


sau mai muli utilizatori. La descrcarea unui fiier, utilizatorul ce l
descarc va putea vedea statusul descrcarii.

Fig. 4.2.4 Descrcarea unui fiier

o Funcia de share-uire a unui fiier din computerul utilizatorului.


61

Fig. 4.2.5 Butonul de share a unui fiier

o Funcia de logof a unui utilizator conectat la program. Un utilizator


poate folosi aceast funcie cnd dorete s se deconecteze de la
aplicaie.

Fig. 4.2.6 Butonul de Logof

Capitolul 5. Eficiena i utilitatea aplicaiei informatice


62

5.1 Condiii privind implementarea aplicaiei


Profilul utilizatorului
a) Obinuit. Un utilizator obinuit va putea:
o S se conecteze la server i s fac log-in cu un nume de utilizator
o
o
o
o

definit n mod unic i o parol;


S vad ceilali utilizatori conectai la server;
S trimit sau s primeasc mesaje de la ali utilizatori;
S trimit sau s primeasc fiiere de la ali utilizatori;
S fac log-out i s opreasc conexiunea cu serverul;

Cazuri de utilizare
1) Log-in
Pentru a folosi aplicaia, toi utilizatorii trebuie s se logheze folosind o
metod clasic de autentificare, insernd un username i o parol valide.
Precondiii:
o Aplicaia trebuie s fie n funciune
o Utilizatorul trebuie s fie nregistrat n sistem
Scenariu principal:
o
o
o
o

Utilizatorul trimite cererea de log-in ctre server


Serverul recunoate utilizatorul
Serverul preia drepturile asociate utilizatorului
Serverul permite utilizatorului acces la program

Alternative:
o Serverul nu recunoate utilizatorul i afieaz acestuia un mesaj de
eroare
Postcondiie:
o Utilizatorul poate accesa programul

2) Log-of
Aciunea de log-of poate fi iniiat de ctre administrator sau de ctre
utilizator.
Precondiii:
63

o Utilizatorul trebuie s fie logat (vezi Log-in)


Scenariu principal:
o Utilizatorul trimite cererea de log-of ctre server prin apsarea
butonului de log-of
o Procesul de log-of se termin
Postcondiie:
o Utilizatorul nu mai poate accesa serverul
3) Vizualizarea listei de utilizatori online:
Precondiii:
o Utilizatorul trebuie s fie logat (vezi Log-in)
Postcondiii:
o n urma logrii cu succes, programul va afia lista cu utilizatorii online
o Utilizatorul curent logat este adugat de sistem n lista utilizatorilor
online
4) Trimiterea unui fiier altui utilizator
Precondiii:
o Utilizatorul trebuie s fie logat (vezi Log-in)
Scenariu principal:
o Utilizatorul trimite o cerere sistemului pentru fiierul selectat
o Serverul face aranjamentele tehnice astfel nct sistemul utilizatorului
destinatar i fiierul ce urmeaz a fi trimis s fac schimb de informaii
direct (peer-to-peer)
o Utilizatorului i apare un status bar ce afieaz numele fiierului i
statusul curent al transferului n procente
Postcondiii:
o Status bar-ul ajunge la 100%
o Fiierul a fost transferat cu succes in directorul selectat de utilizator

5) Oprire/Exit
64

Precondiii:
o Utilizatorul trebuie s fie delogat de la sistem (vezi Log-of)
Scenariu principal:
o Utilizatorul va nchide aplicaia
Scenariu alternativ:
o Utilizatorul nc este logat
o Un mesaj pentru delogare va fi afiat
o Utilizatorul se va deloga i programul se va nchide
Postcondiii:
o Utilizatorul nu mai are acces la aplicaie
5.2 Consideraii privind eficiena aplicaiei informatice
n urma studiului realizat, am concluzionat c implementarea aplicaiei
informatice n firma descris va aduce numeroase beneficii. Prin folosirea
aplicaiei, se va spori eficiena comunicrii dintre angajai prin simplu fapt c
transferul de fiiere dintre acetia va fi facilitat de utilizarea aplicaiei, lucru
ce va reduce din timpul de lucru si creterea calitii serviciilor. De
asemenea, solicitrile primite de la clieni vor fi rezolvate mai rapid, atrgnd
astfel o cretere a numrului de clieni satisfcui de serviciile firmei, lucru ce
va duce si la o cretere a profitului firmei.

65

Bibliografie
Articole

Johnson, R. A. (2014). Java database connectivity using SQLite: A


tutorial. International Journal of Information, Business and
Management, 6(3), 207-217. Retrieved
from http://search.proquest.com/docview/1530089313?
accountid=35090

DINA, R., & ALECU, F. (2014). Declarative programming in


java. Oeconomics of Knowledge, 6(1), 2-9. Retrieved
fromhttp://search.proquest.com/docview/1529281930?
accountid=35090

Seymour, T., Hussain, J. Z., & Reynolds, S. (2014). How to create an


app. International Journal of Management & Information Systems
(Online), 18(2), 123. Retrieved
from http://search.proquest.com/docview/1516951175?

accountid=35090
O'REILLY: The efficient way to develop, debug, and deploy java code;
O'reilly releases "NetBeans: The definitive guide". (2002, Nov 12). M2
Presswire Retrieved

from http://search.proquest.com/docview/445884559?accountid=35090
Hayes, B. (1997). The java programming language / the java tutorial /
the java language specification / the java virtual machine
specification / and others. American Scientist, 85(4), 389-390.
Retrieved from http://search.proquest.com/docview/215263785?

accountid=35090
Cheung, J Y - Basics of computer networking
http://search.proquest.com/pqcentral/docview/1022702429/AAEA4678F
3CA46F2PQ/70?accountid=35090

66

Cri

Java de la 0 la expert, Ediia a II-a, autori tefan Tanas, tefan

Andrei, Cristian Olaru, editura POLIROM


Curs practic de Java, autor Cristian Frasinaru, ediia 2005, editura

Matrixrom
Cornelia Botezatu Proiectarea sistemelor informatice. Metode sistemice.
Editura ProUniversitaria, Buc, 2007
Ionel Iacob ORACLE 10g Proiectarea i realizarea aplicaiilor cu
baze de date utiliznd limbajul SQL*PLUS, Ed. ProUniversitaria 2009

Alte resurse

Java Threads, 2nd Edition, Scott Oaks and Henry Wong (O'Reilly &
Associates, January 1999):
http://www.oreilly.com/catalog/jthreads2

Java Collections : http://docs.oracle.com/javase/tutorial/

Wikipedia www.wikipedia.com

67

68

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