Specializarea: Informatică [306877]

UNIVERSITATEA „LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE ȘTIINȚE

Specializarea: Informatică

LUCRARE DE LICENȚĂ

Sibiu

Anul 2016

UNIVERSITATEA „LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE ȘTIINȚE

Specializarea: Informatică

Procedee dinamice de gestiune a datelor. Aplicație pentru analiza productivității muncii.

Sibiu

Anul 2016

Cuprins

Introducere

Tema aleasă extinde o analiză precisă a unor factori de activitate. [anonimizat] “Tool”, care calculează eficiența unui angajat într-o anumită masură. De ce spunem într-o anumită masură? Deoarece, pentru a calcula un factor de activitate este nevoie nu numai de acest “Tool”, [anonimizat] “nota” fiecare activitate din ziua respectivă.

[anonimizat], [anonimizat] o [anonimizat]-un fișier CSV ( Comma Separated Values ).

[anonimizat] “Tool” vine cu o gamă largă de complexitate și o extindere a unor caracteristici interne. Aplicația aduce o [anonimizat]:

Acces rapid către orice cale internă pe o rețea LAN.

Acces rapid la detaliile angajaților.

Acces rapid la anumite aplicații windows.

Acces la informații si noutăți din cadrul firmei.

[anonimizat].

Motivul alegerii acestei teme îl constituie posibilitatea de a lucra la un proiect care are un final practic. Echipa pentru care s-a creat acest soft, a oferit suportul esențial pentru a [anonimizat], ideea pornind de la o sedință în care mi s-a calculat chiar mie un factor de activitate. Am fost întrebat dacă pot să aduc o [anonimizat]? Experiența acumulată în cadrul firmei a fost suficientă și bine organizată din punct de vedere profesional și structural.

Integrarea aplicației în echipă a [anonimizat].[anonimizat] o gamă puțin mai largă de versiuni:

Versiune standard pentru angajați.

Versiune complexă pentru TeamLeaderi.

Aceste două versiuni sunt diferențiate prin gradul de permisii. Prima versiune permite operarea asupra tuturor facilitățiilor cu excepția functiei de calculare a eficienței și a [anonimizat]. Bineînțeles, versiunea complexă are aceste drepturi și poate opera în totalitate aceste funcții.

Inițial, factorul de activitate a fost calculat manual.

Ecuatia fiind una simpla : 75% din orele lucrate împărțit la modul de lucru. Modul de lucru având valori diferite : EVA1,EVA2,DEV.

Despre toate acestea vom vorbi mai detaliat în urmatoarele secvențe.

). (0.1)

[anonimizat] a factorului, aceasta desenează o diagramă cu detalii specifice :

[anonimizat] a [anonimizat].

Afisează detalii complexe cum ar fi :

Ora/data când s-a [anonimizat],

Limita în funcție de profil.

Rezultatul derivă două tipuri de diagrame. [anonimizat] îi corespund pe o axă oX-oY, zilele în care s-a lucrat,respectiv limita și maximul valorilor estimate. Cea de a doua diagramă este de tip PieChart, reprezentând limita de la primul grafic respectiv media, care nu trebuie să cuprindă valori peste 35 (EVA1) sau altă valoare, în funcție de profil.

După calcularea și efectuarea factorului de activitate, rezultatul poate fi trimis automat prin email, în care este afișată diagrama respectivă împreună cu toate detaliile alese.

TeamLeader-ul utilizează această aplicație care este eficientă din punct de vedere al timpului și al precizie, având un coeficient corect în concordanță cu analiza productivității muncii asupra angajatului.

Abordări generale

Abstract

Majoritatea oamenilor de știință: lingviști, filozofi, logicieni, specialiști în informatică și cibernetică, admit că principala funcție a limbii o reprezintă comunicarea și deci transmiterea de informații dar odată cu acestea sunt transmise și diferite cunoștințe. Limbajul natural a fost izvorul din care s-au născut limbajele: literar, istoric, poetic, filozofic, logic, științific și în final limbajele formalizate și convenționale și respectiv limbajele utilizate la programarea calculatoarelor.

Termenul informatică desemnează știința procesării sistematice a informației, în special a procesării cu ajutorul calculatoarelor. Termenul englezesc corespunzător este Computer Science (știința calculatoarelor).

Istoric, informatica s-a dezvoltat ca știință din matematică, în timp ce dezvoltarea primelor calculatoare își are originea în electrotehnică și telecomunicații. De aceea, calculatorul reprezintă doar dispozitivul pe care sunt implementate conceptele teoretice. Informaticianul olandez Edsger Dijkstra afirma: "În informatică ai de-a face cu calculatorul, așa cum ai în astronomie cu telescopul".

Acest termen „informatică” provine din alăturarea cuvintelor informație și matematică. Alte surse susțin că provine din combinația informație și automatică. Istoria informaticii începe înainte de momentul apariției computerului digital. Înainte de anul 1920, termenul de "computer" se referea în limba engleză la o persoană care efectua calcule (un funcționar). Primii cercetători în ceea ce avea să se numească informatică, cum sunt Kurt Gödel, Alonzo Church și Alan Turing, au fost interesați de problema computațională: ce informații ar putea un funcționar uman să calculeze având hârtie și creion, prin urmărirea pur și simplu a unei liste de instrucțiuni, atât timp cât este necesar, fără să fie nevoie ca el să fie inteligent sau să presupună capacități intuitive. Una din motivațiile acestui proiect a fost dorința de a proiecta și realiza "mașini computaționale" care să automatizeze munca, deseori plictisitoare și nu lipsită de erori, a unui calculator sau computer uman.

Savanții acceptă în prezent ideea că informația este o un concept primar, care poate fi transmisă cu un minim de energie, dar cantitatea de informație nu depinde de valoarea acestui minim. Teoria informației în prezent este considerată ca un domeniu de sine stătător, cu toate că are o istorie relativ scurtă.

In anul 1838 savantul francez A. M. Ampère a introdus termenul de cibernetică și în 1868 Maxwell a prezentat principiul unui dispozitiv cu feedback și tot el în 1871 a legat noțiunea de informație cu noțiunea energetică de entropie.

L. Boltzmann în 1877, a stabilit pentru entropia energetică formula:

(1.1)

unde :

k – este constanta lui Boltzmann;

pi – este probabilitatea ca sistemul să se afle în starea i, 1 < i < n;

Sub forma dată de Boltzmann, entropia exprimă gradul de dezordine al sistemului fizic.

Pentru a transmite o cantitate de informație în condiții optime, semnalul trebuie să fie organizat după anumite principii. Practica transmiterii informației este cea care impune măsuri suplimentare de redundantă, care să limiteze perturbațiile date de sursele de zgomote.

În plus apar intonațiile, apoi la operele literare metafore, comparații, sinonime, etc, care duc la o transmitere specială a informației.

Limbajul natural este unul mai direct, mai expresiv, mai plastic, mai concret, dar în același timp mai confuz, mai particular, mai intuitiv.

Din această cauză, limbajul natural nu poate fi înțeles pană în prezent de calculator. În prezent se fac cercetări pentru cunoașterea cuvintelor cele mai uzuale transmise oral sau în scris ( transmise prin scanare sau microfonie, nu cele transmise normal prin tastatură calculatorului), de către calculator.

Cugetarea filozofică reprezintă și ea o experientă umană, dar având o altă optică. Experiența filozofică se orientează pe alte căi și anume caută cauza reală a lucrurilor și căutand explicații complete și fundamentale. O întrebare care a frămantat filozofii de-a lungul timpului, a fost determinarea cauzei tuturor lucrurilor din univers și geneza acestora. Limbajul filozofic este aparent natural, dar în realitate este unul criptic în care parabola, supoziția și simbolul joacă un rol decisiv. Pe parcurs, mai ales în ultimul secol, limbajul filozofic s-a orientat în mare parte spre un limbaj logic. Cu toate acestea nici acest limbaj nu poate fi folosit în discuția cu calculatorul sau pentru transmiterea unor comenzi de programare.

Crearea unui limbaj abstract a fost necesar după ce s-a constatat că limbajul natural are practic probleme în transmiterea și analiza noțiunilor din domeniul cunoașterii științifice. Aceasta deoarece în limbajul natural cuvintele exprimă anumite obiecte și stări, dar în limbajul științific se lucrează și cu noțiuni.

Astfel noțiunea poartă ca semnificație, un conținut nu al indivizilor unei clase, ci al clasei formate dintr-o mulțime de indivizi. Cată vreme cuvântul exprimă obiecte sau stări, este cuvânt, când exprimă clase de obiecte, devine noțiune.

Prin judecăti și silogisme, limbajul logic suplinește aptitudinea limbajului natural de a exprima adecvat formele dinamice ale realitătii. Judecata în limbajul logic este o aserțiune la modul indicativ, apoi judecată logică este o expresie a timpului prezent și în fine judecată logică a devenit expresia unei simple relații de apartenentă a predicatului la subiect, apartenentă modificată pe parcurs prin raportul de existentă.

Judecata logică clasică permite doar exprimarea indicativului prezent, a relației de apartenentă sau existentă, afirmația sau negația, apoi totalitatea, partialitatea și singularitatea raporturilor dintre subiect și predicat, la formă impersonală.

Metodologia elaborării lucrării

Odată cu evoluția speciei umane, principiul de învățare a devenit un factor foarte important în vietiile noastre, motiv pentru care fiecare om are o gândire mai abstractă sau mai puțin abstractă.

Din toate timpurile și până în cele mai recente momente omul a încercat să găsească o modalitate de învățare a lucrurilor, cele mai bune metode fiind pe cale vizuală și multă practică.

Nevoia de a cunoaște spațiul ce ne înconjoară a fost tot mai mare, principiul dezvoltării și-a croit loc în momentul în care omul a reușit să inventeze roată, arcul sau ceva mult mai abstractizat, becul.

Deoarece înainte de a face un lucru, obiect sau chiar serviciu, suntem abordați de multe semne de întrebare decidem să analizăm, concretizam și finalizam cu o concluzie.

Motivul pentru care se va aborda această lucrare este caracterizat de către modul de automatizare și încercarea de a aduce un timp mult mai eficient asupra muncii.

Tema are ca principiu o măsurare, calitate, monitorizare și determinarea factorului de muncă. Acest principiu execută pe baza unor input-uri anumite validări și valorificări a unor rezultate care sunt puse într-un output și apoi verificate de către anumiți specialiști în parte.

Ca să se înțeleagă mai bine ceea ce se transmite, propunem să se calculeze un factor pentru activitatea muncii folosind o metodă manuală pe baza formulei (0.1). Cu siguranță pentru o singură persoană această metodă poate fi eficientă ca timp și corectă ca rezultat, dar dacă problema persista pentru o mulțime mult mai largă, ca exemplu o sută de persoane sau chiar o mie?

Acesta este principalul motiv pentru care este nevoie de automatizare. Este evident că acestea ne ușurează muncă și chiar o îmbunătățește.

Cu mult înainte ca automatizările să fie implementate, s-au căutat soluții pentru a ne face viața mai ușoară, pentru a ne face viața confortabilă și cel mai important pentru a câștiga timp prețios. Pentru un calcul manual al factorului de activitate într-o singură lună se consuma 30 sau chiar 60 minute pe zi per persoană. Ceea ce se dorește cu aplicații de automatizări este de a transforma aceste 30/60 de minute în câteva secunde. Cel mai mare avantaj pe care îl poate avea o automatizare este redactată de faptul că pe baza output-urilor se pot genera anumite diagrame, în diferite moduri, se pot genera structuri de date sau chiar rapoarte care sunt comparate și valorificate la adevărata valoare.

Referindu-ne strict la automatizarea din cadrul unor calcule, este dovedit că viteza de procesare a unui sistem este cu mult mai mare decât a omului și este mult mai precisă iar dacă omul va face un calcul complex în 30 de minute și același calcul este efectuat de către o automatizare în 5 secunde rezultă că în 30 de minute o automatizare va efectua 360+ de operații.

Elemente de bază în conformitate cu tema

Modul de lucru

Aplicația principală se află sub numele de “Activity Factor”, aplicație ce are ca scop verificarea și calcularea eficienței unui angajat dintr-un departament specific, având posibilitatea de adaptare pe un domeniu mai larg. Cu alte cuvinte, acest tool poate fi îmbunătățit și dezvoltat pentru mai multe profile de activitate din cadrul firmei.

Cea mai importantă caracteristică concepută a aplicației este reprezentată de determinarea și evaluarea personalului din cadrul unei echipe, componentă principală care stă la baza funcționării sistemului de calcul a unui due-date; un calcul care funcționează pe principiul timeleft. Acest principiu s-a format în funcție de modul de lucru al fiecărei persoane din echipă. Spre exemplu, primim un task pentru rezolvarea unor mici bug-uri sau erori de etichetare. Dacă acest task este efectuat în limita admisă se va calcula eficacitatea angajaților pe o anumită lună din an.

Inițial aplicația a fost concepută pentru profilul de Traffic Lights, care cuprinde trei moduri de lucru : EVA1,EVA2 ,DEV, a căror prescurtare provine de la EVALUATION ½ și DEVELOPMENT.

Fiecarui mod de lucru îi corespunde un set de instrucțiuni si atribute care sunt utilizate cu ajutorul unui tool asigurat de catre companie numit MTS (Measuring,Testing,Simulation).

Modul de lucru EVA1 cuprinde doua domenii, ROI și LDSS. În domeniul LDSS se setează unele atribute principale care împreună cu datele de la ROI vor forma un set de date care într-un final, vor fi sincronizate și trimise catre client. Atributele principale din LDSS sunt definite cu culoarea roșie, ceea ce înseamnă că acestea sunt obligatorii pe tot intervalul task-ului.

Modul de calculare manual

Operațiunea de calculare a datelor prin metoda manuală marchează o secvență de gândire și atenție pentru un proces bine definit și un rezultat ideal.

Procesul de calculare manuală a adus multe beneficii din punct de vedere a gândirii omului deorece dacă acest proces nu exista, cu siguranță nici metode de automatizare nu ar fi fost.

Ca sa facem o referință la temă noastră, vom analiza modul de calculare a factorului de muncă prin metoda manuală, vom determina timpul de execuție și vom aborda tot ceea ce conține diferențe sau asemănare între manual și automat.

Primul pas și cel mai important este remarcat pentru funcția de calculare manuală (1.0) .

– Deorece înainte de a face un calcul, avem nevoie de o formulă pe baza căruia să aplicăm aceste date.

Al doilea pas constă în transformarea din ore în minute.

-Presupunem că în ziua de luni pentru un anumit task s-a lucrat 3 ore, ceea ce reprezintă 180 de minute.

– Ziua de lucru este de 8:30h, adică 510 minute din care se extrage doar 75%. Rezultatul find 382.5 minute.

Al treilea pas Aplicăm formula corespunzătoare.

-Factor = 75% din orele lucrate ( 382.5) / cât timp s-a lucrat la task.

-Se adună fiecare factor și se făcea o medie aritmetica.

Problema se remarca în momentul în care apăreau mai multe task-uri într-o zi, deoarece trebuie calculate fiecare în parte ceea ce ducea la o mare pierdere de timp.

Pasul final se va lua fiecare factor din fiecare zi, se va face media aritmetica asupra acestora iar rezultat va fi comparat cu o limită de 35. Dacă acest factor va depăși limita, ar însemna că angajatul a fost mai puțin productiv.

Dacă se va cerceta timpul de executare a pașilor anteriori, se va observa că pentru a calcula manual un factor este nevoie de foarte mult timp iar rezultatul este unul simplu și unul corect.

Modul de calculare automată

Acest mod a fost adaptat în funcție de modul manual, ceea ce înseamnă că aceste valori sunt calculate automat de către computer pe baza unor date introduce la fiecare sfârșit de zi.

Fișierele în care sunt păstrate informațiile sunt strict confidențiale iar datele sunt protejate cu o parolă.

Toate datele introduse vor fi scrise într-un fișier excel unde se va face și calculul automat iar când fișierul este într-un stagiu final din punct de vedere al completării acesta va fi convertit într-un fișier CSV iar aplicația va interpreta datele și le va afișa într-un grafic de tip LineChart.

Exact ca și la modul manual, avem obligația să folosim o formulă pentru a calcula o ecuație. În procesul automatizat formula este în “background”, adică această formulă este deja setat într-un fișier template iar datoria noastre este să completăm acest fișier conform standardului. Deoarece și în această situație avem nevoie de anumiți păși, ei vor fi definiți în următoarele rânduri :

Se presupune că suntem unul dintre angajații companiei X. Astăzi vom termina task-ul, principalul obiectiv este să notăm ceea ce s-a lucrat în ziua respectivă.

Primul unu : Localizarea fișierului template și introducerea datelor.

Pasul doi : După ce am introdus datele corespunzător, salvăm fișierul în formatul actual (Excel).

Pasul trei : Datele vor fi procesate în “background”, transformăm fișierul în format CSV.

Pasul patru : Deschidem aplicația Activity Factor, accesăm butonul „CHART” care este poziționat în centrul soft-ului.

Pasul cinci : Se va face configurația corespunzătoare în funcție de modul de lucru.

Pasul șase : Selectăm fișierul iar rezultatul va fi unul pe masură

Figura 2.1

Figura 2.2

Diferențe între modul automat și modul manual de calculare

Modul manual

Tabelul 2.1

Modul automat

Tabelul 2.2

Tehnologii folosite

Limbajul de programare Java

Limbajele orientate pe obiecte au apărut din nevoia contopirii unor concepte palpabile și ce au o reprezentare clară în mintea umană și modalitatea de reprezentare, organizare și manipulare a informației de către programatori. Primul limbaj pur obiectual a fost SmallTalk dezvoltat în anii 70.

Limbajul Java a apărut în anul 1995 lansat de cei de la firma Sun Microsystems. Datorită impactului mare pe care l-a avut în lumea programatorilor și alte limbaje au fost influențate de el ca Ada2005, PHP, J# (ce reprezintă o copie fidelă a celor de la Microsoft care este integrată cu platforma .NET) și nu în ultimul rând JavaScript. Java are sintaxa asemănătoare cu C și C++ și analizând comparația realizată de Lewis și Neumann putem spune că are un model obiectual mai simplu decât acestea și este puternic tipizat.

De asemenea aplicațiile JAVA sunt compilate și apoi ca și cod obiect sunt rulate de Mașina Virtuală Java (JVM). Datorită acestui proces limbajul JAVA este portabil pe orice arhitectură, nefiind dependent de arhitectura în care a fost scris sau de cea în care este executat.

Portabilitatea aduce totuși și un mare dezavantaj și anume încetinirea performanței. Ultimele versiuni însă au trecut peste acest handicap prin introducerea de noi concepte cum ar fi JIT (Just-in-time compilation). Acest tip de compilare reține in cache după prima compilare codul rezultat. De asemenea s-a introdus și conceptul de recompilare dinamică alături de compilarea statică.

Funcțiile de bibliotecă JAVA sunt foarte puternice și oferă o multitudine de facilități cum ar fi realizarea de interfețe grafice dinamice, programarea rețelelor sau programarea concurentă.

Java lucrează cu conceptul de obiect, ce reprezintă o instanță a unei clase ca resursă primară de structurare a informației. Ca limbaj orientat pe obiecte oferă facilități ca moștenire, încapsulare sau polimorfism.

Bibliotecile Java AWT și SWING oferă posibilitatea realizării de programe interactive cu interfețe grafice.

Figura 3.1. Schema logică Java

Schema logică (Figura 3.1.) reprezintă modul de procesare și funcționalitate a limbajului. Codul sursă reprezintă acea entitate de instrucțiuni care sunt destinate către procesor. Figura 3.2. Arată cum procesorul primește comenzi în limbaj formal urmând ca ulterior compilatorul care este un translator, să traducă efectiv din acest limbaj într-un limbaj specific lui.

Figura 3.2. Faza compilării și interpretării

Faza executării fiind cea din urmă, în care instrucțiunile sunt procesate,interpretate si afișate către utilizatori.

Tehnologia JAVAFX

JavaFX este un program software care te ajută să creezi și să realizezi aplicații RIA (Rich Internet Applications)care conțin standarde multimedia pe o varietate mare de platforme și dispozitive diferite. La început, limbajul se numea F3 (Form Follows Function) care a fost dezvoltat pentru prima oară de Chris Oliver, angajat în cadrul firmei Sun Microsystems.

În anul 2007 denumirea a suferit modificări și a ajuns sub numele de JAVAFX.

Limbajul oferă o legătură automată de date care conduce la o expresie a sintaxei unde corpul codului generează valori. Secvențele, tipurile de funcții și tipurile interferate fac din limbajul JavaFX un limbaj scripitc precis și clar. Dezvoltatorii pot folosi caracteristici orientate pe obiect pentru a simplifica complexitatea și pentru a rezolva mai ușor erorile care se întâlnesc cel mai des în limbajul de programare. JavaFX îți oferă acces mult mai simplu la API-urile limbajului, în care se regăsește peste o treime de biblioteci noi.

Figura 3.3. Platforma JavaFX

Figura 3.3. este o imagine clară a limbajului de programare JavaFX. Această diagramă prezintă diferitele piese de care te poți agăța când realizezi aplicații cu acest mecanism de programare. Așa cum se poate vedea pe diagramă, există extensii pentru 3 domenii: desktop-uri, telefoane mobile și televizoare. Toate cele trei au în comun același API (ce se află sub denumirea de "Elemente Comune", din Figura 3.3.).

Într-adevăr, dacă ești familiarizat cu limbaje de programare cum ar fi: C++, Java, C# va fi mult mai simplă adaptarea. Există însă elemente importante care nu pot fi comparate, cum ar fi:

Modalitatea de lucru cu fișiere CSS, FXML;

Metodele noi de incapsulare a datelor;

Metodele de operații asupra obiectelor;

Structuri de date în cadrul procesării de imagini.

Deoarece în Java Swing era necesară crearea unor algoritmi elementari pentru procesarea contrastului sau a luminozității, JavaFX aduce aceste metode la pachet printr-o clasă specifică sub numele de “ColorAdjust”.

Figura 3.4. Mecanism cooperare.

Figura 3.4. Reprezintă mecanismul legăturilor între domenii. Odată cu dezvoltarea limbajului

s-a apelat la cooperarea între structura unor limbaje. Fișierele XML au devenit FXML cooperând totodată cu tehnologia de styling CSS.

Lucrul cu baze de date. Limbajul MYSQL

Dezvoltarea tehnologică explozivă a ultimilor ani a adus în prim plan industria IT și utilitatea acesteia. Dacă încă din ultimul deceniu companiile ce dețineau monopolul pe piața serviciilor și soluțiilor industriale adoptaseră o modernizare a procesului tehnologic de fabricație a bunurilor, în anul 2009 putem vorbi despre o trecere bruscă a majorității producătorilor spre avantajele roboticii și automatizarea întregului proces de producție. Odată cu îmbunătățirea comunicațiilor și nevoii de interconectare permanentă client-producător nevoia de a stoca informația este din ce în ce mai vitală pentru orice companie care se respectă.

De-a lungul anilor dispozitivele de stocare a informației au avut un proces de evoluție

influențat de cel al mașinilor de calcul, pentru a le putea oferi suportul de stocare necesar. Totuși nevoia primară inițială de a obține rezultate și de a le putea stoca pentru a le folosi mai târziu s-a păstrat și în ziua de azi. Epoca sistemelor de calcul distribuite a declanșat decuplarea celor două unități funcționale și azi găsim sisteme de calcul distribuite formate din mai multe dispozitive de stocare și mai multe unități de procesare aflate în locuri diferite.

Majoritatea investițiilor companiilor în mașinile de calcul proprii vizează două mari aspecte: timpul de execuție al aplicațiilor și dimensiunea informației procesate.

Datorită uniformității datelor și nevoii de ordonare pentru o accesare cât mai rapidă a informației s-a definit în timp concepul de bază de date. Bazele de date stochează informația într-un mod eficient din punct de vedere al spațiului și timpului de acces la informație și acest lucru este vital pentru a crește viteza de execuție a unui program. Modurile de stocare a informațiilor în bazele de date diferă existând diferite tipuri de producători de servicii de baze de date. Printre cei mai cunoscuți se numără Oracle, Microsoft și cei open source. Ca și modele de arhitectură bazele de date diferă, existând diverse tipuri de arhitecturi, decizia alegerii unei arhitecturi compatibile se face având în vedere factori corespunzători aplicațiilor ce vor folosi bazele de date. Aceste aplicații prelucrează date cu format specific sau de dimensiuni variabile. În funcție și de resursele hardware disponibile se poate opta pentru o arhitectură sau alta.

Există baze de date operaționale (Operational Databases) care folosesc o accesare de tip OLTP (On-Line Transaction Processing), și baze de date de tip warehouse care folosesc o accesare de tip OLAP (Online Analitycal Processing). De asemenea se lucrează de obicei cu manager de baze de date (DataBase Management System) care poate fi de asemenea orientat pe rânduri (înregistrări) sau pe coloane.

Tendința impusă de portabilitate și compatibilitate este ca o aplicație software să poată comunica cu baza de date independent de tipul acesteia. O astfel de premisă este în prezent nerealizabilă datorită interdependențelor dintre funcționalitățile oferite de firmele comerciante de baze de date și proiectanții de aplicații. Totuși în viitor se va merge spre o decuplare totală a nivelului software ce prelucrează direct resursele bazei de date și nivelul software ce realizează funcționalitatea aplicației. Această decuplare trebuie realizată inteligent de un nivel intermediar de software (uneori chiar și hardware) numit middleware.

Aceeași tendință de decuplare a modelelor abstracte ale unei aplicații și funcționalitatea aplicației de modulele ce implementează funcționalitatea a dus la apariția limbajelor de programare orientate pe obiecte. În ziua de azi ele sunt considerate ca fiind limbajele de nivel înalt (high level language), în care se poate realiza o proiectare conceptuală cât mai fidelă reprezentării obiectelor din lumea reală. Aceste limbaje folosesc funcționalități și module software de nivel mai mic (low level language) dar proiectantului îi sunt ascunse detaliile modulelor respective. Acest mod de gândire a dus la dezvoltarea bazelor de date orientate pe obiecte.

Structura acestor baze de date simulează structura limbajelor de programare orientate pe obiecte înglobând concepte ca încapsulare, polimorfism sau persistență a datelor care sunt memorate ca obiecte.

Astfel putem vorbi de o stratificare a limbajelor de programare pe diferite nivele software și aceeași modalitate de stratificare o găsim și la bazele de date. Stratificarea este benefică în termeni de siguranță și protecție a datelor, eficiență de implementare și depanare, decuplarea unităților, portabilitate și compatibilitate.

Middleware-urile conferă asigurarea acestor calități care într-un final vor duce la un randament mai bun al calității aplicațiilor. Prin alegerea și întrebuințarea corectă a suportului hardware și cel software (baze de date, middleware și aplicața în sine) pentru o aplicație se poate spori într-un mod considerabil factorul viteză de procesare a informației. Astfel se ajunge la un timp de execuție mai mic al aplicației ceea ce este unul din dezideratele oricărei companii care achiziționează sau deține un program.

Diferențe între Java Swing și JavaFX

Capacitatea de dezvoltare a inginerilor se propagă a fi una bine structurată și de actualitate.Datorită acestor aspecte dezvoltatorii au venit cu idei și concepte noi procesând datele în mod clar și pe înțelesul tuturor. În următoarele secvențe se va prezenta câteva diferențe între Java Swing și JavaFX.

Diferența dintre JFrame și Scene

În Swing elementul care stă la bază componentelor interfeței se numește frame și este definit de clasa JFrame. Un frame este defapt o fereastră goală în care poți să adaugi un panel care folosește drept un container pentru elementele interfeței cu utilizatorul. Un panel aparține clasei ca JPanel.Swing-ul este defapt o clasă care extinde domeniul JFrame. Pentru afișarea elementelor interfeței cu utilizatorul, se adăugă componente la un JPanel, apoi se adăugă panelul în frame.

JavaFX folosește metaforă din teatru pentru a modela containerele de nivel superior ale unei aplicații. Un stage (definit de clasa Stage) reprezintă containerul cel mai inalt,defapt, o fereastră, dar în anumite sisteme de operare, stage-ul reprezintă întreaga suprafață afișată. Comenzile individuale și alte componente care stau la baza interfeței cu userul sunt cuprinse într-un scene (definit de către clasa Scene). O aplicație poate avea mai multe scene-uri, dar se poate afișa doar un singur scene pe moment

Un scene conține un scene graph care este cel mai important concept din JavaFX. Scene graph-ul este suma elementelor care compun o interfață pentru user-grupuri, layout-uri, comenzi și shape-uri. Aceste elemente se numesc node și aparțin domeniului Node. Un Node are multe funcții și modalități disponibile automat oricărui obiect pe care îl adaugi într-o interfață pentru user. De exemplu, clasa Node definește o metodă setRotate care îți dă posibilitatea să rotești orice node din scene graph.

Diferența dintre JPanel si Node

În JavaFX, managerele de layout sunt node-uri.

În Swing, un layout este asociat cu un JPanel. Nivelul superior din JPanel oferă layout-ul de bază al frame-ului. Dacă se vrea adăugarea de layout-uri în plus în layout-ul de nivel superior, trebuie să se creeze un nou JPanels, să se asocieze layout-urile, și apoi să fie adăugate la nivelul superior.

În JavaFX, layout-urile sunt subclase ale clasei Node precum comenzile și shape-urile. Layout-urile conțin o colecție de noduri și orice nod conținut într-un layout poate fi un fel de node: o comandă, un shape, sau orice alt layout. Această schemă este mai puțin dificilă decât asocierile de layout-uri din panel-ul Swing.

Diferența dintre Event-uri

JavaFX s-a imbunatait din punct de vedere acțiunii event-ului.

Atât JavaFX cât și Swing folosesc acțiunea event-ului pentru a răspunde la acțiunile utilizatorului. Totuși, se va observa că event-urile din JavaFX sunt mai bine gândite și mai bine concepute decât echivalentele lor din Swing. Dar cel mai bun motiv pentru care acțiunile event din JavaFX au fost îmbunătățite este suportul asupra proprietăților.

Proprietăți JAVAFX

JavaFX se ajută de proprietăți.

JavaFX se sprijină de conceptele de proprietăți și se folosește într-o mare măsură de ele prin clasele lui. Pe scurt, o proprietate este o variabilă a cărei valori poate fi cunoscută. Se poate înregistra un listener cu orice proprietate, care îți permite să scrii codul care se generează automat de fiecare dată când proprietățile se schimbă. În concluzie, se pot lega proprietățile unele de altele, ceea ce înseamnă că atunci când o proprietate se schimbă, celelalte valori ale proprietăților se schimbă automat cu aceasta.

Din cauză că aproape toate caracteristicile elementelor ale interfeței cu utilizatorul se controlează cu ajutorul proprietăților, JavaFX asigură manipularea eventurilor cu ușurință, fapt inexistent la Swing.. De exemplu, în JavaFX, poți atașa un event listener (ascultător de acțiuni) la culoarea unei forme. Dacă forma își schimbă culoarea, se execută codul din event listener. Este posibil să nu ai capacitatea de utilizare, dar o poți folosi dacă dorești.

Modalitatea de formatare cu ajutorul fișierelor CSS

JavaFX are mai multe skinuri cu CSS.

Una dintre cele mai importante caracteristici din JavaFX este că poți controla formatarea cu CSS (Cascading Style Sheets). Aproape fiecare aspect al interfeței utilizatorului poate fi setat cu ajutorul unei reguli de stil, și poți cu ușurință să selectezi orice stil disponibil să aplici scenei. Astfel, poți schimba întregul aspect al aplicației cu un singur apel.

Mai multe comenzi

JavaFX are comenzi mai bune

În general, se poate observa că ierarhia comenzilor din JavaFX este mult mai bine pusă la punct decât cea din Swing. Amândouă au aceleași comenzi de bază,butoane, căsuțe de bifat, căsuțe combo. Dar JavaFX are câteva comenzi mai interesante pe care Swing nu le deține, precum comanda de TitledPane și de Accordion care pot juca rolul de folder și care aranjează mai multe comenzi TitledPane într-o stivă. Faptul că toate comenzile pot fi modificate din punct de vedere al aspectului cu ajutorul CSS-ului, le conferă utilizatorilor un mare avantaj față de Swing.

Efecte speciale

JavaFX are efecte speciale

Pachetul JavaFX Scene Effect conține un număr de clase care pot aplica ușor efecte speciale oricărui node din scene graph. Aceste clase îți oferă oportunitatea să aplici umbre, reflexii, estompări și alte efecte vizuale interesante care pot transforma aspectul interfeței cu utilizatorul.

Diferenta dintre animatii Swing si JavaFX

Animațiile sunt mai ușoare cu JavaFX

Animațiile sunt posibile în Swing, dar aceasta nu oferă suport direct pentru ele. Pentru a anima o componentă Swing, trebuie să setezi niște timpi și să construiești o logică pentru a realiza animația.Pe de altă parte, JavaFX are suport integrat pentru animații sofisticate care pot fi aplicate oricărui node din scene graph. Se pot folosi mai multe clase de tranziții încorporate pentru a realiza animații comune precum estompări, rotații sau animații motorii, sau se pot folosi clasele KeyFrame și Timeline pentru a seta mai ușor animațiile.

Dispozitive TouchScreen

JavaFX asigură dispozitive touch moderne

Swing nu deține niciun fel de suport modern pentru TouchScreen. Pe de altă parte, JavaFX are suport încorporat pentru comenzi comune precum bară de derulare, ștergere, rotare și apropriere. Utilizarea acestor comenzi este ușoară precum utilizarea oricărui tip de event : trebuie instalat doar un event listener pe eventul de atingere și apoi trebuie scris codul potrivit comenzii acesteia.

Panoul Alert vs JOptionPane

JavaFX nu are echivalent pentru JOptionPane

Nu ar fi corect să se umple această listă cu 10 diferențe aducând doar argumente pozitive pentru JavaFX. Aici este o mică problemă la JavaFX: nu are încorporat echivalentul pentru clasa JOptionPane din Swing, care este folositoare pentru afișarea mesajelor de alertă sau pentru introducerea lor de către utilizator. În JavaFX trebuie să ai priceperea să construiești echivalentul pentru această clasă folositoare sau se poate folosii dialog de tip Alert care corespunde pentru ferestre de tip Warning, Information, Error, Exception, Confirming, Choice sau Custom Dialog.

Structura aplicației și funcționalitatea software

Concept structural al aplicației

Fiind studenți la diverse facultăți conștientizăm nevoia de a cerceta și dezvolta o structură pentru activitatea internă.

Ideiile pentru aplicații si nenumerate programe, iși construiesc rădăcina încă din anul II a facultății.

Conceptul acestei teme a fost inițial unul simplu: o aplicație care calculează eficiența angajatului.

Până la urmă ce înseamnă acest calcul? S-a dat startul prin a cerceta prin ce metode se calcula înainte, care era timpul necesar pentru a finaliza aceste medii manual, ce înseamnă eficientă angajatului și la ce folosesc aceste lucruri. Odată conștientizate, s-au pus cap la cap ideile și s-a demarat operațiunea.

Uneori suntem familiarizați doar cu anumite obiecte ceea ce ne duce la o varietate de intrebări, o multitudine de obstacole și la o singură concluzie.

Domeniul pe care va urma sa lucram este unul larg și plin de obstacole. Răbdarea, consecvența și încrederea în sine au fost principalele surse de motivație care în anumită măsură au dat randamentul necesar.

Funcționalitatea acestui concept pornește de la posibilitatea de a analiza din punct de vedere statistic eficiența, viteza și calitatea unui angajat. Fundamentul de bază este un set de date asupra cărora se vor aplică anumite funcții și operații. Teoretic vorbind, pentru a analiza o activitate, sunt necesari anumiți factori. Practic, fiecare angajat va fi obligat într-un fel sau altul să noteze fiecare task început și terminat.

Structura arborescentă a unei aplicații este stocată și reprezentată ca o ierarhie de noduri

părinte și noduri copil. Rădăcina nu are nici un părinte, iar nodurile frunză nu au noduri copii.

La orice nivel în structura documentului, orice element poate fi accesat de către utilizator

ca și nod. Folosind această structură, putem accesa astfel întreg documentul sau

orice componentă a sa.

Arhitectura aplicației va fi determinată de anumite aspect legate de modul de calculare a eficienței, de modul de gândire la nivel de inteligență artificială și structura folosită în partea algoritmică .

Evoluția aplicației cu privire la interfață

În primă fază a construirii interfeței, totul arăta vag și fără culoare cu toate că tehnologia

permitea crearea și editarea unor ferestre vizuale foarte impresionante.

În Figură 4.1. se poate observa o interfață de autentificare prin user și parolă. Dacă datele sunt introduse corect, următorul pas ar fi deschiderea ferestrei principale (Figura 4.2.).

Figura 4.2. Este considerată fereastra principală a aplicației.

Figura 4.2. Interfata initiala

Figura 4.1. Metoda de securitate.

Evoluția a luat proporții pe parcurs. Totuși, nu am crezut că voi putea să fac asemenea aplicații, cu toate că îmi doream să îmi duc la bun sfârșit planul. Aveam momente când am crezut că doar atât pot și că nu sunt capabil de mai mult.

În cea de a doua parte, am avut puțin mai multă inspirație, conștientizând faptul că gândirea mea e nevoită să se dezvolte din punct de vedere algoritmic și structural în spațiu.

La început detaliile referitoare la aplicație nu erau foarte clare, se cunoșteau doar trei lucruri:

E nevoie de o interfață cât mai simplă dar în același timp cât mai frumoasă și plăcută ochilor;

Dezvoltarea unui algoritm principal;

Motivația principală pentru a duce la capăt proiectul.

Următorul pas a fost realizat prin a analiza vechiul tool asigurat de companie, acordând o atenție la micile detalii care necesitau o îmbunătățire din punct de vedere al performanței structurale cât și a timpului de execuție pe care ulterior au fost transpuse într-o nouă generație de unelte accesibile.S-a efectuat modificarea accesului la aplicație, prin îmbunătățirea vizuală și prin mica criptare a datelor. Datele de acces sunt memorate în structura aplicației ceea ce a condus și la o autentificare din exteriorul bazei de date.

Figura 4.3. Aduce o îmbunătățire în faza secundară a sistemului de autentificare. Aplicația cunoaște dacă utilizatorul este de un gen specific, astfel după introducerea numelui de utilizator, sistemul de autentificare precizează dacă datele introduse aparțin genului masculin său feminin. Dacă datele sunt corect introduse, se va deschide automat următoarea fază, mai precis fereastra principală.

Figura 4.3. Metodă de autentificare.

Figura 4.4. Noua generație de interfață.

Figura 4.4. Este caracterizată că tip fereastră principală, care a suferit la rândul ei unele schimbări. Spre deosebire de primă variantă, aceasta vine cu o serie de butoane, două Internal Frames, meniul și metoda de citire de date care va fi afișată în cel din stânga Internal Frame.

În ultima variantă, aplicația a fost recreată, având o structură diferită, o tehnologie mai recentă și un algoritm bazat pe fișierele CSV.

Noua tehnologie oferă posibilitatea de a lucra cu un standard de formatare al elementelor, prin recondiționarea stilurilor. Tehnologia se află sub denumirea de JAVAFX despre care vom vorbi în capitolul corespunzător.

Finalul acestui sub capitol, aduce la rândul lui ultima versiune a aplicației, despre care se va vorbi ulterior. Aplicația vine în două versiuni, pentru angajați și pentru TeamLeader.

Figura 4.5. Este momentul de start al aplicației standard, adică versiunea pentru angajați, care nu necesită sistem de autentificare. Această versiune folosește doar un progressbar împreună cu un thread de încărcare a fișierelor.jar. Când procesul atinge pragul de 100%, thread-ul respectiv se va încheia și vor urma instrucțiunile date, mai precis acesta va acționa asupra clasei de start a ferestrei principale.

Figura 4.5. Start a versiunii pentru angajați Figura 4.6. Sistemul de autentificare.

Figura 4.6. Este ultima versiune pentru sistemul de autentificare, aceasta venind cu o îmbunătățire din punct de vedere estetic cât și algoritmic. Noul sistem se folosește de fișiere CSS pentru design iar pe parte algortmica va folosi KeyEvent-uri. Acest KeyEvent va permite utilizatorilor o autentificare prin simplă apăsare a tastei ENTER, bineînțeles dacă datele introduse sunt corecte.

În procesul de dezvoltare software vor fi mereu momente de cotitură din cauza deciziilor de design sau proiectare care vor fi adaptate după bunul plac. Se poate observa diferența dintre sistemele de autentificare și ferestrele principale, care pe parcursul dezvoltării au semnalat și au pus accent pe un stil highend.

Dacă în primele versiuni nu am avut parte de aspecte plăcute, ultima versiune aduce în primul rând superioritate totală față de versiunile anterioare, cât și comoditate sau chiar o interfață User-Friendly.

Figura 4.7. Fereastra principală a ultimei versiuni.

Se poate observa că în Figură 4.7. totul arată diferit. Interfața este dinamică în funcție de rezoluția monitorului. Locația butoanelor preia printr-o metodă dimensiunea rezoluției, se împarte la 2, apoi se adună sau scade câteva poziții în funcție de preferință.

Dacă versiunea anterioară nu a fost una satisfăcătoare, ultima actualizare aduce performanțe deosebite, coincidența lor fiind doar limbajul de bază, mai pe scurt Java.

Spre deosebire de versiunile anterioare, ultima actualizare corespunde unui stil și mecanism total diferit. Butoanele, culorile, interfața sau meniurile fac parte dintr-o generație nouă cu metode noi, obiecte noi și chiar o structură nouă.

Dacă partea vizuală a fost discutată în numerate rânduri, a venit momentul de a discuta per ansamblu de programul în sine. Titlul acestui capitol ne duce cu gândul la mai multe secțiuni ale căror forme pot fi mai mult sau mai puțin rotunde. Mai pe scurt, vom discuta despre baza aplicației, despre componentele aplicației și chiar de automatizarea acestui soft.

Activity Report

Activity Report (Figura 4.8.) este un fișier excel, componentă principală a aplicației. Acest fișier este raportul angajatului, mai pe scurt este documentul în care fiecare angajat în parte își trece activitatea zilnică. Dacă înaintea acestei aplicații modul de scriere era unul nesemnificativ, acum totul are logică.

Figura 4.8. Activity Report.

Documentul are câteva rubrici importante care au rolul de a însuma eficiența angajatului, această eficiență depinde de anumite funcții și instrucțiuni aplicate asupra documentului.

Cele mai importante rubrici sunt Department, Time at Work, Labeling Time, Labeling Mode.

Fiecare dintre aceste rubrici funcționează după un anumit principiu. În cea mai semnificativă rubrică din partea stângă (Department), se va alege modul de lucru EVA1, EVA2, DEV (Vezi 2.1 “Modul de lucru”). Componentă foarte importantă deoarece aceasta specifică în ce mod a lucrat angajatul și ce fel de medie să fie calculată.

Time at Work reprezintă timpul în care ești la muncă. Această componentă se va calcula după o formulă specifică deoarece doar 75% din acest timp este destinat activității muncii. Partea importantă din această secțiune este redactată de calculul cu domeniul RecTime care rezultă în rubrica din partea dreaptă: Rec time worked.

Labeling Time memorează cât timp ai muncit pe un anumit task. Acesta se poate diferenția prin rubrica Labeling Mode care reprezintă partea de ROI sau LDSS (Vezi 2.1 “Roi sau LDSS).

Formula după care se calculează și efectuează datele este afișată în secvența următoare:

(4.1) Formula de calcul pentru Modul DEV, domeniul LDSS

În această formulă se găsește o imbricare de condiții IF și se poate traduce astfel :

DACA ( Coloana C Contine “DEV” )

{

DACA ( Coloana H Contine “LDSS” )

{

G3 / K3

}

ALTFEL {0}

}

ALTFEL {0}

Cu privire la celelalte rubrici mai puțin importante se poate spune că au și acestea un rol însă nu influențează rezultatul eficienței angajatului.

Se poate observa în partea dreaptă o succesiune de rubrici cu identificatori asemănători, aceste date sunt strict confidențiale protejate cu parolă astfel doar TeamLeader-ul poate avea acces. În aceste rubrici sunt stocate datele finale care sunt citite și interpretate de către aplicație. După ce aceste date au fost corect interpretate, aplicația desenează diagrama dorită de tip AreaChart iar detaliile cu privire la eficiență sunt afișate pe o platformă de tip Window cu componentă de tip PieChart.

Activity Factor

Dacă se face o mică sinteză asupra capitolelor anterioare, se pot elabora date importante și structuri esențiale asupra aplicației. Indiferent de modul de calcul, manual sau automat, adică prin Activity Factor eficiența va fi aceeași însă nu și din punct de vedere al rapidității, comodității sau simplificației. Ca să facem o mică remarcă a acestei aplicații putem spune că Activity Factor este într-adevăr o aplicație eficientă care verifică, interpretează, procesează și afișează date asupra fiecărui angajat în parte. Toate aceste aspecte revendică calitatea angajatului, precizia și chiar nivelul de cunoștințe în acest domeniu.

Documentul Activity Report se completează în fiecare zi lucrătoare diferența fiind luna în care este realizat. Sistematic vorbind chiar dacă angajatul se află în concediu acesta nu va completa documentul pe perioada corespunzătoare iar rezultatul final nu va fi influențat.

Introducerea în această aplicație este prezentată printr-o fereastră de tip Panel componentă a limbajului JavaFX. Aplicația deține două versiuni, una pentru TeamLeader și una pentru angajați. Versiunea pentru TeamLeader vine cu un sistem de autentificare bazat pe nume de utilizator și parolă, care are acces la controller de calculare a factorului de eficiență și la unele aplicații software specifice domeniului de lucru.

Figura 4.9. Interfața cu utilizatorul a sistemului de autentificare.

Deoarece datele pentru calculare sunt strict confidențiale, s-a implementat această metodă de securitate care protejează concomitent informațiile pentru angajați de informațiile pentru șefii echipei.

Odată ce a fost accesată aplicația cu users și parolă, utilizatorul va avea acces deplin asupra ei. Organizată într-un stil modern cu funcții moderne și caracteristici specifice, se poate exterioriza prin puterea de cooperare cu mediul înconjurător.

Figura 4.10

Activity Factor HDD

Cea mai importantă caracteristică și funcționalitate legată de soft este reprezentată de partea de calcul și partea de organizare a hard-disk-urilor.

Funcția pentru hard-disk-uri este încorporate în totalitate pentru ambele versiuni (Versiunea pentru angajați și Versiunea pentru TeamLeaderi). Aceasta oferă un spațiu de stocare virtual în cadrul unei rețele interne. De ce avem nevoie de aceasta? Răspunsul este unul simplu. În lipsa sa, se va pierde o bună parte a timpului de muncă căutând harddisk-urile pe care sunt stocate task-urile. Acest prototip de reorganizare și relocare a datelor este reprezentat de către o bază de date cu posibilitatea de a opera pe aceasta printr-o interfață user-friendly.

Deoarece există peste 1500 de dispositive de stocare, căutarea a devenit din ce în ce mai grea și mai obositoare. Funcția de stocare oferă posibilitatea de căutare rapidă după numele harddisk-ului și oferă detalii despre locația, ora și data când au fost preluate, persoana care este în posesia sa, numele calculatorului și un ID unic pentru identificare.

Figura 4.11

Prin utlizarea acestui prototip de organizare s-a ușurat munca angajatului cu circa 60% iar timpul în care se efectuau căutările pentru hdd a scăzut cu 40%.

Această interfață este compusă dintr-o serie de funcții utile, cum ar fi:

Funcție pentru ștergere

Funcție pentru adăugare

Funcție pentru actualizare și modificare

Funcție pentru căutare

Funcția de preluare

Pentru a putea șterge, adăuga, sau modifica avem nevoie de un identificator unic care stă la baza acestora. Se poate observa că acest id este prezent și corespunzător fiecărui HDD.

Procedura pentru fiecare operație este simplă și eficientă, iar aceasta se va face sub următorii pași.

Ex : Dorim sa stergem un HDD numit ADT4T1-126 al carui ID corespunzator este 14

Pasul 1 : Cautam HDD

Figura 4.12

Această operație va afișa toate rezultatele din baza de date cu denumirea ADT4T1-126.

Pasul 2 : ID-ul unic corespunzător HDD-ului îl vom trece în tabul superior numit HDD ID

Figura 4.13

Pasul 3 : Apăsăm butonul permanently delete.

Figura 4.14

Figura 4.15

Rezultatul este cel așteptat, HDD-ul cu numele ADT4T1-126 a fost șters din baza de date.

Operația pentru adăugare și modificare este puțin diferită, datorită unor câmpuri care trebuie completate sau modificate. Dacă dorim să adăugăm un HDD vom efectua următorii pași:

Pasul 1 : Adaugam in primele campuri din partea inferioara a ferestrei datele necesare.

Pasul 2 : Accesam butonul ADD HardName on DB

Figura 4.16

Figura 4.17

Pentru a actualiza unul dintre hdd-uri, vom lua exemplu aspect al dimensiunii care a fost cerut pentru modificare. Aceasta operatie se va efectua dupa urmatorii pasi :

Cautam HDD-ul

Preluam ID-ul unic

Adaugam ID-ul in campul Update ID-ul identificat

Aplicatia va detecta automat toate detaliile pentru ID-ul respective

Modificam in campurile corespunzatoare ce este necesar

Accesam butonul Update ID

Figura 4.17

Figura 4.18

Figura 4.19

Un dezavantaj al acestei interfete este predominat de catre o succesiune de functii care trebuie efectuate, insa poate fi si un avantaj deoarece fiecare operatie are structura proprie si nu este nevoie sa incurcam datele intre ele.

Functia pentru preluare a HDD-ului este sistematizata alaturi de anumiti pasi, cu toate ca este un sistem simplu si bine gandit cu siguranta pe viitor vor fi nevoie de anumite actualizari.

Pentru a putea prelua un HDD vom copia id-ul corespunzator, vom completa campul din stanga numit HDD ID, vom accesa butonul Update ID care este situate in partea superioara a ferestrei.

Activity Factor Chart

Deoarece in nenumarate randuri au fost descrise functii precum Activity Factor HDD Structure, Activity Report si alte moduri de lucru, a venit momentul sa discutam despre adevarata functie a aplicatiei, numita si Activity Factor Chart.

Dupa cum stiti, activity factor este aplicatia care contine ansamblul de mini tool-uri si care a fost construita pentru un scop si anume pentru a calcula eficienta angajatului.

Totodata aplicatia vine un set complet de avantaje care au fost anuntate in capitolele anterioare si care sunt construite pe o simpla interfata in limbajul de programare JAVAFX.

Activity Factor chart este un tool care masoara eficienta unui angajat intr-un numar finit de pasi iar ceea ce aduce acesta ofera utilizatorului o experienta placuta din punct de vedere al calitatii,vitezei de procesare, design-ului si nu numai.

Ceea ce este necesar pentru acest tool este de remarcat. Functionalitatea acestuia necesita un fisier de tip CSV in care sunt datele necesare pentru afisare. Chiar daca uneori aplicatiile de acest tip poate genera erori, activity factor evita acest lucru iar toate erorile care sunt intampinate defapt sunt mai degraba din pricina fisierului CSV si nu din partea aplicatia.

Cele mai frecvente erori pot aparea in urmatoarele cazuri :

Coloane necompletate ; Acest tip de eroare poate duce la deplasarea unor celule si poate cauza erori cum ar fi necitirea fisierului sau afisarea altor rezultate.

Folosirea virgulei “,” ; Folosirea virgulei aduce de asemenea erori complexe deoarece in fiserul CSV ( Comma separate values ) dupa cum ii spune si numele, aceasta va desparti valorile si exista posibilitatea de deplasare a celulelor.

Coloane de tip blank pot cauza uneori cu toate ca aplicatia incearca sa evite acest impertinent obstacol.

Aplicatia are la baza o structura de citire a datelor, de afisare a rezultatelor si de evidentiere a calitatii angajatului.

Pentru a putea calcula eficienta angajatului, dupa cum s-a discutat, este nevoie de un fisier (Excel) numit Activity Report care necesita a fi convertit pentru citire in fisier CSV.

Pasii necesari pentru calculare sunt urmatorii :

Convertim Fisierul excel

Configuram tool-ul pentru modul necesar

Selectam fisierul CSV

Afisam rezultatul

Figura 4.20

Figura 4.20 reprezinta fisierul activity report completat cu datele necesare unde :

Tabul “Date” reprezinta data in care a fost efectuat task-ul

“Function” reprezinta echipa (TL) pentru care s-a efectua task-ul

“Departament” Reprezinta modul

“Rec” numele task-ului

Campul “Time at work” prezenta la munca

“Labeling Time” 75% din “Time at work”

“Labeling Mode” Domenii de lucru ROI sau LDSS

Acestea sunt cele mai importante campuri din activity report, campuri care au o importanta net superioara fata de restul.

Urmatorul pas este reprezentat de convertirea fisierului in format CSV iar ulterior configurarea aplicatiei.

Interfata pentru Activity Factor Chart este impartita in mai multe view-uri. View-ul principal este caracterizat printr-o serie de butoane carora le corespunde anumite functii

Figura 4.21

In partea superioara a ferestrei se observa o serie de butoane cat si structuri combobox,checkbox si radiobutton.

In urmatoarele secvente se va configura tool-ul pentru modul EVA1, domeniul ROI unde vor fi selectate numarul de randuri care vor fi citite si un numar de task-uri pentru a putea calcula media aritmetica.

Primul buton din al carui denumire este Roi Eva1 File este actionat alaturi de un FileChooser oferind posibilitatea de a selecta fisierul dorit si a memora ultima cale catre ultimul CSV accesat.

Figura 4.22

Clasa de buton disponibil prin intermediul API JavaFX permite dezvoltatorilor să proceseze o acțiune atunci când un utilizator face clic pe un buton . Clasa Button este o extensie a clasei Label . Se poate afișa text, o imagine , sau ambele . Figura 4.22 prezintă buton cu diverse efecte care sunt premise cu ajutorul tehnologiei CSS.

Prin accesarea sa se va accesa(apela) o functie care va deschide un filechooser cu calitati specificate anterior.

Figura 4.23

Figura 4.23 explică modul de utilizare a clasei FileChooser pentru a permite utilizatorilor să navigheze sistemul de fișiere .

Spre deosebire de alte clase de componente de interfață cu utilizatorul , clasa FileChooser nu face parte din pachetul javafx.scene.controls . Cu toate acestea , această clasă merită să fie menționate în JavaFX interfața de utilizare Controale tutorial , deoarece acceptă una dintre funcțiile tipice aplicației GUI : fișier de navigare sistem.

Functiile principale ale acestui navigator prin sistem este reprezentat de filtrul pentru extensii care poate fi accesa din dreapta partii inferioare a ferestrei si un sistem care retine calea ultimului fisier accesat.

Dupa ce fisierul a fost ales se va accesa butonul de deschidere “Open” care va citii datele din fisier sub forma de matrice. Daca fisierul nu va fi citit, el va genera o serie de erori care au fost descrise in capitolul anterior ( vezi

Concluzii

Anexe

Similar Posts