Diferență între revizuiri ale paginii „Proiect POO 2014-2015”

De la WikiLabs
Jump to navigationJump to search
(Pagină nouă: == Descriere == În tehnologia actuală, se pune mult accent pe sisteme distribuite, unde un client rulează un program sau o secțiune dintr-un program pe un server extern și prime...)
 
 
(Nu s-au afișat 4 versiuni intermediare efectuate de același utilizator)
Linia 12: Linia 12:
  
 
=== Observații ===
 
=== Observații ===
 +
 +
* se permite utilizarea de biblioteci externe, atât timp cât acestea au fost studiate și modul lor de funcționare înteles.
 +
* pentru compilarea unei clase Java, se pot folosi clasele [http://docs.oracle.com/javase/8/docs/api/javax/tools/ToolProvider.html javax.tools.ToolProvider] și [http://docs.oracle.com/javase/8/docs/api/javax/tools/JavaCompiler.html javax.tools.JavaCompiler] iar pentru execuție se poate folosi [http://examples.javacodegeeks.com/core-java/dynamic-class-loading-example/ Dynamic Class Loading] și [https://docs.oracle.com/javase/tutorial/reflect/ Java Reflection].
  
 
Se acordă bonus pentru următoarele realizări:
 
Se acordă bonus pentru următoarele realizări:
 
* fereastra de editare de pe client să aibă '''code highlight''', adică cuvintele cheie Java să fie afișate cu bold sau cu altă culoare.
 
* fereastra de editare de pe client să aibă '''code highlight''', adică cuvintele cheie Java să fie afișate cu bold sau cu altă culoare.
 
* posibilitatea de a transmite de pe client stream-ul standard de intrare către procesul pornit pe server, în timp ce acesta rulează.
 
* posibilitatea de a transmite de pe client stream-ul standard de intrare către procesul pornit pe server, în timp ce acesta rulează.
* se permite utilizarea de biblioteci externe, atât timp cât acestea au fost studiate și modul lor de funcționare înteles.
 
* pentru compilarea unei clase Java, se pot folosi clasele [http://docs.oracle.com/javase/8/docs/api/javax/tools/ToolProvider.html javax.tools.ToolProvideer] și [http://docs.oracle.com/javase/8/docs/api/javax/tools/JavaCompiler.html javax.tools.JavaCompiler] iar pentru execuție se poate folosi [https://docs.oracle.com/javase/tutorial/reflect/ Java Reflection].
 
  
 
== Modalitate de evaluare ==
 
== Modalitate de evaluare ==
  
* Acest proiect valorează 40 de puncte din nota totală la POO. Se cer minim 20 de puncte din 40 pentru promovarea laboratorului și implicit a examenului.
+
* Acest proiect valorează 40 de puncte din nota totală la POO. Se cer minim 20 de puncte din 40 pentru promovarea laboratorului și implicit pentru intrarea în examen.
 
* Proiectul va fi prezentat public de către autor și va fi evaluat, acordându-se o notă între 0 și 40.
 
* Proiectul va fi prezentat public de către autor și va fi evaluat, acordându-se o notă între 0 și 40.
 
* Autorului i se vor pune 5 întrebări exclusiv din codul scris în cadrul proiectului. Orice întrebare la care se răspunde greșit, sau nu se răspunde, va fi penalizată cu 5 puncte. Rezultatul este că examenul se poate pica și cu un proiect de 40 de puncte.
 
* Autorului i se vor pune 5 întrebări exclusiv din codul scris în cadrul proiectului. Orice întrebare la care se răspunde greșit, sau nu se răspunde, va fi penalizată cu 5 puncte. Rezultatul este că examenul se poate pica și cu un proiect de 40 de puncte.

Versiunea curentă din 9 iunie 2015 11:12

Descriere

În tehnologia actuală, se pune mult accent pe sisteme distribuite, unde un client rulează un program sau o secțiune dintr-un program pe un server extern și primește răspuns de la acesta. Avantajul este acela că server-ul poate executa procesul mai rapid și dispune de mai multă putere și energie decât, să spunem, un terminal mobil (telefon, tabletă). Acest proiect are ca scop realizarea unei aplicații ce poate transfera, compila și executa o clasă Java realizată de un client, pe un server.

Cerințe

Realizați o aplicație client-server cu următoarele specificații:

  • client-ul trebuie să conțină o interfață grafică care să permită scrierea unei clase Java (ex: JTextArea);
  • client-ul trebuie apoi să transfere fișierul sursă pe server, printr-un socket TCP;
  • server-ul trebuie să compileze iar apoi să execute clasa Java primită, întorcând clientului rezultatele (mesaj de eroare dacă clasa nu a putut fi compilată, excepții care au fost aruncate la execuție, sau caracterele afișate pe standard output stream și standard error stream).
  • server-ul trebuie realizat multi-threaded pentru a putea servi mai mulți clienți simultan.

Observații

Se acordă bonus pentru următoarele realizări:

  • fereastra de editare de pe client să aibă code highlight, adică cuvintele cheie Java să fie afișate cu bold sau cu altă culoare.
  • posibilitatea de a transmite de pe client stream-ul standard de intrare către procesul pornit pe server, în timp ce acesta rulează.

Modalitate de evaluare

  • Acest proiect valorează 40 de puncte din nota totală la POO. Se cer minim 20 de puncte din 40 pentru promovarea laboratorului și implicit pentru intrarea în examen.
  • Proiectul va fi prezentat public de către autor și va fi evaluat, acordându-se o notă între 0 și 40.
  • Autorului i se vor pune 5 întrebări exclusiv din codul scris în cadrul proiectului. Orice întrebare la care se răspunde greșit, sau nu se răspunde, va fi penalizată cu 5 puncte. Rezultatul este că examenul se poate pica și cu un proiect de 40 de puncte.