Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
teme:tema_de_recuperare [2016/04/20 02:44]
Andrei Roșu-Cojocaru [Aplicația web]
teme:tema_de_recuperare [2016/04/20 03:19] (current)
Andrei Roșu-Cojocaru [Barem de corectare și notare]
Line 183: Line 183:
 ===== Precizări suplimentare ===== ===== Precizări suplimentare =====
  
-NU este permină folosirea altor tehnologii decât a celor specificate enunţ. Definiţiile metodelor apelabile la distanţă ​vor fi descrise în pseudocod. Acestea pot fi modificate la nivelul parametrilor sau rezultatelor întoarse, păstrându-se însă funcţionalitatea lor. +NU este permină folosirea altor tehnologii decât a celor specificate enunţ. Definiţiile metodelor apelabile la distanţă ​sunt descrise în pseudocod. Acestea pot fi modificate la nivelul parametrilor sau rezultatelor întoarse, păstrându-se însă funcţionalitatea lor.
- +
-Fiecare fereastră a interfeței grafice va fi definită în cadrul unui fișier FXML generat folosind Scene Builder 2.0.+
  
 Popularea bazei de date cu informații trebuie să fie corespunzătoare pentru a putea ilustra funcționalitățile implementate. Popularea bazei de date cu informații trebuie să fie corespunzătoare pentru a putea ilustra funcționalitățile implementate.
  
-Un angajat poate lucra la mai multe sucursale, în zile diferite ale săptâmânii, fapt specificat ​în cadrul orarului.+Pentru o instituție culturală, datele specifice (denumirea, adresa, tipul și descrierea) vor fi precizate sub formă de parametri ​în linia de comandă în momentul lansării sale în execuție.
  
-Numărul de zile de concediu de odihnă rămase ​se calculează începând cu data angajării, proporțional cu numărul de zile lucrate în anul respectiv. Un inspector de resurse umane nu poate preciza un concediu de odihnă pentru o perioadă mai mare decât numărul de zile de care dispune angajatul respectiv (numărul de zile de concediu de odihnă rămase), în caz contrar generându-se un mesaj de eroare.+Perioada pentru care o rezervare este menținută se măsoară în număr de zile calendaristice și se exprimă sub formă de constantă la nivelul codului sursă.
  
-Pentru calculul salariului, se va avea în vedere faptul că un concediu ​de odihnă este remunerat ​cu 100% (ca și când angajatul ar fi lucrat), un concediu fără plată cu 0%, iar un concediu medical cu un procent variabil, în funcție de codul de indemnizație (se vor folosi trei valori, la alegerea proprie).+Metodele ​de la nivelul agentului de intermediere vor accesa funcționalitățile cu acceeași denumire de la nivelul companiilor organizatoare de spectacole, în unele situații fiind necesară parcurgerea întregii liste a instituțiilor culturale care pot fi accesate la un moment dat. Într-un astfel de model, în care componentele sunt strâns cuplate, toate operațiile sunt sincrone (se blochează până se transmite un rezultat ​de la metoda invocată). Accesul la resursele care pot fi referite ​de mai multe fire de execuție concomitent trebuie să se realizeze sincronizat.
  
-Informațiile furnizate de serviciul ​la distanță ​vor fi preluate dintr-o bază de date, în care cursurile vor fi introduse manual (fără a fi necesară o interfață grafică ca intermediar), pentru fiecare dată calendaristică în parte.+Semnăturile metodelor accesibile ​la distanță ​pot suferi modificări în funcție ​de necesități, cu respectarea funcționalității descrise.
  
-În cadrul transferurilor intrabancare,​ se vor realiza verificările necesare (un cont de debit nu poate avea soldul negativ în urma realizării tranzacției, nu se poate depăși un anumit plafon ​pentru un tip specific ​de valută), generându-se mesaje ​de eroare sugestive în cazul în care nu se pot efectua. Atât sursa cât și destinația transferului pot fi deopotrivă persoane fizice sau persoane juridice.+În cazul aplicației desktop, nu este necesar să se implementeze o interfață grafică pentru ​testarea aplicațiilor,​ fiind suficient ​un meniu în mod text care să permită introducerea unui număr ​de opțiuni corespunzător numărului ​de metode pe care o componentă le poate accesa la distanță.
  
-În cadrul informațiilor legate ​de jurnalizare, se vor stoca și comisioanele percepute lunar pentru ​fiecare cont în parte.+În cazul aplicației web, nu se va ține cont de interfața grafică a paginilor Internet, accentul punându-se pe funcționalitatea acestora. Pot fi preluate ​șabloane ​pentru ​foile de stil sau pentru proiectarea aspectului disponibile pe Internet, fără ca acest lucru să intre sub incidența regulilor legate de frauda academică.
  
-Pentru ​solicitările realizate ​de client ​se vor transmite mesaje în mod automat atunci când un expert financiar-contabil le aprobă sau le respinge.+Pentru ​gestiunea informațiilor stocate în baza de date se poate utiliza fie JDBC (Java DataBase Connectivity),​ fie JPA (Java Persistence API) cu orice implementare a acesteia (Hibernate, Eclipse Link).
  
-Pentru rapoartele pe care utilizatorul le poate vizualiza legat de operațiunile realizate, tranzacțiile care nu au fost încă analizate ​de expertul financiar-contabil vor fi marcate ca fiind în așteptare.+Criteriile în funcție de care va fi realizată comparația dintre soluțiile oferite de Java Enterprise Edition / Node.JS pentru dezvoltarea ​de aplicații web trebuie să fie minim trei, la alegere (memoria utilizată - sistemul de colectare a memoriei, ușurința în dezvoltare - facilități oferite pentru programatori,​ integrarea cu diferite sisteme de operare / navigatoare,​ funcționalități oferite / posibilitatea de accesare a diferitelor informații din antetele HTTP sau legate de platforma pe care rulează aplicația web, posibilitatea ​de gestiune a informațiilor dintr-un sistem de gestiune pentru baze de date, ușurința ​în depanarea aplicației web, posibilitatea de integrare ​a unor biblioteci, formatele în care pot fi transferate datele).
  
 Orice specificaţie care nu este menţionată mai sus reprezintă decizie de implementare. Puteţi considera orice simplificare în condiţiile în care enunţul nu precizează altfel. Orice specificaţie care nu este menţionată mai sus reprezintă decizie de implementare. Puteţi considera orice simplificare în condiţiile în care enunţul nu precizează altfel.
Line 209: Line 207:
 ===== Barem de corectare și notare ===== ===== Barem de corectare și notare =====
  
-^  PUNCTAJ ​ ^  CRITERII DE ACORDARE ​ ^ +^  PUNCTAJ ​ ^  CRITERII DE ACORDARE  ​^^ 
-| 3 p | proiectarea tabelelor în baza de date\\ ♦ conformitatea structurii conceptuale a bazei de date cu o formă normală: 40%\\ ♦ definirea de chei primare, chei străine (legături între toate tabelele bazei de date), constrângeri de integritate pentru formatul atributelor:​ 25%\\ ♦ populare corespunzătoare:​ 35% | +| 3 p | proiectarea tabelelor în baza de date\\ ♦ conformitatea structurii conceptuale a bazei de date cu o formă normală: 40%\\ ♦ definirea de chei primare, chei străine (legături între toate tabelele bazei de date), constrângeri de integritate pentru formatul atributelor:​ 25%\\ ♦ populare corespunzătoare:​ 35% || 
-| 3 p | realizarea interfeţei grafice((Punctajul pentru realizarea interfeţei grafice se acordă doar în condiţiile implementării a minimum 50% din funcţionalităţi,​ altfel va fi ponderat cu procentul ​de rezolvare aferent.))\\ ♦ aspect: 40%\\ ♦ uşurinţă în utilizare: 60% | +| 1,50 p | proiectarea metodelor corespunzătoare componentelor ​de tip server\\ • componenta instituție culturală: 35%\\ • componenta agent de intermediere a comunicației (segregarea interfețelor!!!): 65% || 
-| 1 p | gestiunea utilizatorilor\\ ♦ autentificare,​ deautentificare:​ 20%\\ ♦ operaţii utilizator ​de tip administrator / super-administrator: 50%\\ ♦ implementare sistem de control al drepturilor de acces al utilizatorilor în cadrul sistemului informatic pe baza rolurilor: 30% | +| 2 p | implementarea metodelor corespunzătoare componentei instituție culturală\\ • ''​getCulturalInstitutionInfo()''​: 10%\\ • ''​getRepresentationList()''​: 15%\\ • ''​makeReservation()''​: 35%\\ • ''​cancelReservation()''​: 15%\\ • ''​buyTicket()''​: 25% || 
-| 2,50 p | funcţionalităţi modul pentru gestiunea resurselor umane\\ ♦ căutare utilizator: 10%\\ ♦ specificare informații referitoare la programul de lucru: 15%\\ ♦ gestiune pontaj: 15%\\ ♦ specificare informații cu privire la concedii: 20%\\ ♦ vizualizarea informațiilor despre programul de lucru (orar, prezență zilnică, concedii), pentru fiecare angajat în parte: 20%\\ ♦ calcul salarii și vizualizarea acestora de către angajați: 20% | +| 2 p | implementarea metodelor din agentul ​de intermediere a comunicației\\ • ''​getCulturalInstitutionList()''​: 10%\\ • ''​getRepresentations()''​: 15%\\ • ''​makeReservation''​: 35%\\ • ''​cancelReservation''​: 15%\\ • ''​buyTicket()'':​ 25% || 
-| 4,50 p | funcţionalităţi modul de operaţii financiar contabile\\ ♦ operații legate de gestiunea clienților ​(adăugare, modificare, ștergere): 15%\\ ♦ operații legate de gestiunea conturilor ​(adăugare, modificare, ștergere): 15%\\ ♦ operațiuni financiar-bancare (depunere, retragere): 15%\\ ♦ implementarea transferurilor intrabancare: 15%\\ ♦ gestiunea solicitărilor primite de la clienți ​(operații legate de conturi, tranzacții între diferite conturi, mesaje): 15%\\ ♦ gestiunea comisioanelor lunare: 15%\\ ♦ accesare serviciu la distanță pentru conversie valutară: 10% | +| 1,50 p | apelarea metodelor disponibile la distanță din cadrul componentelor de tip client\\ • componenta client: 55%\\ • componenta agent de intermediere a comunicației: 30%\\ • componenta instituție culturală: 15% || 
-| 0,75 p | serviciu la distanță pentru gestiunea conversiei valutare\\ ♦ metoda ''​getCurrencies()''​: 35%\\ ♦ metoda ''​getExchange()''​: 40%\\ metoda ''​getLimit()'':​ 10%\\ ♦ proiectarea și implementarea bazei de date aferente: 15% | +| 9 p | implementarea aplicațiilor web\\ • Java Servlets / JavaServer Pages: 50%\\ • Node.JS: 50% | • pagina ​de autentificare / deautentificare: 5% | 
-| 4 p | funcționalități modul de asigurare ​a relației cu clienții\\ ♦ gestiune date de acces (înregistrare,​ autentificare): 10%\\ ♦ consultare stare conturi bancare: 10%\\ ♦ generare rapoarte operațiuni pentru o perioadă ​de timp: 20%\\ ♦ transmiterea de solicitări referitoare la tranzacții intrabancare: 20%\\ ♦ transmiterea ​de solicitări referitoare la operații legate de conturi ​(deschidere ​/ închidere) 15%\\ ♦ implementare sistem ​de mesagerie: 25% | +| ::: | ::: | • pagina ​de înregistrare ​a unui utilizator: 10% | 
-| 0,25 p | implementarea mecanismului ​de jurnalizare a tranzacțiilor financiar-contabile ​| +| ::: | ::: | pagina pentru definirea unui coș de cumpărături:​ 60%\\ • filtrare reprezentații în funcție ​de diverse criterii: 20%\\ • gruparea programului pe zile în funcție de sala de spectacole: 10%\\ • gestiunea coșului ​de cumpărături ​(adăugare ​/ editare / ștergere): 20%\\ • finalizarea unei comenzi cu semnalarea posibilelor erori: 10% | 
-| 1 p | modularizare\\ ♦ structura aplicaţiei: ​50%\\ ♦ lizibilitatea codului: 20%\\ ♦ comentarii, README: ​30% | +| ::: | ::: | • pagina pentru vizualizarea detaliilor unui cont: 15%\\ • date personale cu posibilitate ​de actualizare: 5%\\ • istoric coș de cumpărături:​ 10% | 
-| 0,50 p | validarea datelor\\ ♦ asigurarea consistenţei informaţiilor reţinute în tabele: 50%\\ ♦ mesaje de eroare: 50% |+| ::: | ::: | • sistem ​de mesagerie: 10% (citire, scriere) ​| 
 +| 1 p | modularizare\\ ♦ structura aplicaţiei: ​40%\\ ♦ lizibilitatea codului: 20%\\ ♦ comentarii, README ​(inclusiv comparație Java Enterprise Edition / Node.JS): 40% ||
  
 **BONUS**. Se pot obţine punctaje suplimentare,​ astfel: **BONUS**. Se pot obţine punctaje suplimentare,​ astfel:
-  * 0,50 p – predarea temei cu două săptămâni mai devreme (înainte de 15.05.2015, 23:55); +  * 0,50 p – predarea temei cu două săptămâni mai devreme (înainte de 11.05.2016, 23:55); 
-  * 0,50 p – determinarea profitului operațional al băncii ​în aplicația desktop, ​pentru fiecare lună calendaristică în parte, și afișarea lui în interfața expertului financiar contabil; calculul ​său se obține ca diferență dintre veniturile provenite din comisioane ​și dobânzi la credite și cheltuielile cu salariile angajaților, acestea ​fiind defalcate pe sucursale (presupunând că fiecare angajat și fiecare client aparține unei singure sucursale); +  * 0,50 p – modificarea sistemului de rezervare de locuri / achiziție de bilete ​în cadrul ​aplicației desktop, ​astfel încât acesta ​să se realizeze pe baza unei locații (unui interval de locații) specifice în sală, caracterizată prin rând și loc; se vor defini categorii de locații, fiecare dintre ​acestea ​având asociat un preț specific; 
-  * 0,50 p – posibilitatea ​de a programa din aplicația web o serie de plăți recurente; acestea sunt realizate periodic, la intervale prestabilite de timp (săptămânal,​ lunar, trimestrial,​ semestrial, anual), începând ​cu o anumită dată calendaristică, către un cont bancar, suma de bani fiind fixă; ele vor fi realizate ​în mod automat cu condiția ca soldul curent (raportat la tipul de cont să o permită), în caz contrar generându-se un mesaj de eroare, marcat în operațiile de jurnalizare ​și transmis sub formă de mesaj clientului. +  * 0,50 p - implementarea unui sistem ​de recomandări,​ în cazul aplicației web: în situația în care pentru un utilizator a realizat achiziții anterioare ​de bilete la reprezentații culturale, i se pot face anumite sugestii cu privire ​la spectacolele pe care le poate viziona, folosind un algoritm propriu ​(posibile criterii fiind: spectacole ​cu aceeași distribuție / scenograf / regizor / producator, care au program in aceeași sală, în aceeași zi a săptămânii ​și la aceeași oră sau alte criterii);
 ===== Condiții de realizare și predare ===== ===== Condiții de realizare și predare =====
  
 Tema va fi realizată individual şi va fi prezentată înainte de examenul de restanță, la o dată care va fi anunțată ulterior. Neprezentarea temei de casă sau un rezultat nesatisfăcător al prezentării (necunoașterea funcționalității aplicației / codului sursă, imposibilitatea de a răspunde la întrebări) atrag după sine anularea punctajului corespunzător acesteia. În cadrul prezentării veţi specifica succint funcţionalităţile pe care le-aţi dezvoltat şi veţi răspunde la întrebări cu privire la modul de implementare al acestora. Tema va fi realizată individual şi va fi prezentată înainte de examenul de restanță, la o dată care va fi anunțată ulterior. Neprezentarea temei de casă sau un rezultat nesatisfăcător al prezentării (necunoașterea funcționalității aplicației / codului sursă, imposibilitatea de a răspunde la întrebări) atrag după sine anularea punctajului corespunzător acesteia. În cadrul prezentării veţi specifica succint funcţionalităţile pe care le-aţi dezvoltat şi veţi răspunde la întrebări cu privire la modul de implementare al acestora.
  
-Sunt punctate și implementări parțiale, în sensul că anumite module nu au fost abordate deloc. ​Sunt obligatorii ​proiectarea și implementarea bazei de date (complet sau incomplet), respectiv a interfeței grafice.+Sunt punctate și implementări parțiale, în sensul că anumite module nu au fost abordate deloc. ​Este obligatorie ​proiectarea și implementarea bazei de date (complet sau incomplet).
  
-Tema va trebui ​încărcată pe site-ul ​[[http://​cs.curs.pub.ro/2014|cs.curs.pub.ro]] sub forma unei arhive de tip .zip (având denumirea **Grupa34XCX_NumePrenume_TemaRecuperare.zip**) care să conţină script-ul pentru crearea şi popularea tabelelor din baza de date (numele ​bazei de date fiind **Grupa34XCX_NumePrenume**) – în rădăcină, sursele aplicaţiei (proiect ​Eclipse / NetBeans), ​scripturi ce conţin lansări în execuţie ale aplicației desktop și a serviciului ​de conversie valutară la distanță, specificând argumentele necesare((În cazul tehnologiei RMI vor trebui indicate proprietăţile Java ''​java.rmi.server.codebase'',​ ''​java.rmi.server.hostname'',​ ''​java.security.policy''​, incluzându-se și fişierele ce conţin politica de securitate. Pentru CORBA, se vor preciza parametrii liniei de comandă ''​ORBInitialHost''​ / ''​ORBInitialPort''​. Dacă se optează pentru JAX-WS, vor trebui indicate locațiile la care vor fi publicate serviciile web.)) precum şi un README în care să explicaţi funcționalitățile dezvoltate, tehnologiile folosite, problemele întâlnite și modul de soluționare a acestora, eventualele decizii de implementare. Dacă aplicația web este găzduită online, veți indica URL-ul de unde aceasta poate fi accesată. Temele care nu respectă convențiile de nume indicate nu vor fi luate în considerare.+Tema va trebui ​transmisă sub forma unui mesaj la adresa de poștă electronică [[aipi2015@andreirosucojocaru.ro|]] sub forma unei arhive de tip .zip (având denumirea **Grupa34XCX_NumePrenume_TemaRecuperare.zip**) care să conţină script-ul pentru crearea şi popularea tabelelor din bazele ​de date (numele ​bazelor ​de date fiind **Grupa34XCX_NumePrenume_InstitutieCulturala** pentru fiecare companie organizatoare de spectacole respectiv **Grupa34XCX_NumePrenume_AgentIntermediere** pentru agentul de intermediere) – în rădăcina, sursele aplicaţiilor (proiecte ​Eclipse / NetBeans), ​configurațiile de rulare ​(parametrii ​''​java.rmi.server.codebase'',​ ''​java.rmi.server.hostname'',​ ''​java.security.policy''​) - dacă se optează pentru JAX-WS, vor trebui indicate locațiile la care vor fi publicate serviciile web - specifice aplicației desktop, ​precum şi un README în care să explicaţi funcționalitățile dezvoltate, problemele întâlnite și modul de soluționare a acestora. ​În cazul în care aplicaţia web este găzduită online, veţi indica URL-ul de unde aceasta poate fi accesată. Subiectul utilizat va fi **[TemaRecuperare][Grupa34XCX][NumePrenume]**. Temele care nu respectă convențiile de nume indicate nu vor fi luate în considerare. Prezentarea se poate face numai după ce tema a fost predată sub această formă. 
  
-Încărcarea pe site nu este redundantă,​ temele ​vor fi comparate prin aplicaţii specializate pentru a se depista eventualele fraude. În această situaţie, întreg punctajul pe parcursul semestrului va fi anulat, studenţii implicaţi (atât originalul, cât şi copia / copiile) fiind obligaţi să repete disciplina – cu taxă – în anul universitar următor.+Temele ​vor fi comparate prin aplicaţii specializate pentru a se depista eventualele fraude. În această situaţie, întreg punctajul pe parcursul semestrului va fi anulat, studenţii implicaţi (atât originalul, cât şi copia / copiile) fiind obligaţi să repete disciplina – cu taxă – în anul universitar următor.
teme/tema_de_recuperare.1461109443.txt.gz · Last modified: 2016/04/20 02:44 by Andrei Roșu-Cojocaru
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0