Acasa
 

Laboratorul 2

Scop

  • Identificarea cerintelor
  • Proiectare si implementare orientata-obiect
  • Implementare: stil de programare, cod lizibil, auto-documentat

Resurse

Probleme

Problema 1: Scenarii [Lab 3, 100E]

Rezolvati una dintre problemele de mai jos:

A. O noua companie care fabrica telefoane celulare va angajeaza pentru a scrie programul care controleaza functionalitatea telefonului. Programul trebuie sa ofere cel putin urmatoarele functii:

  • - apelarea unui numar (format de utilizator, din agenda),
  • - preluarea unui apel
  • - scrierea/citirea unui mesaj
  • - introducerea unui numar in agenda,
  • - stergerea unui numar din agenda
  • - vizualizarea apelurilor ratate

Dezvoltati scenarii de utilizare care sa descrie modul de interactiune al unui utilizator cu telefonul.

B. Dezvoltati scenarii de utilizare care sa descrie interactiunea cu un utilizator al unui automat de bauturi. Exemplu de facilitati:

  • - oferire ceai
  • - oferire cafea
  • - selectare nivel de zahar
  • - selectare lapte (doar pentru cafa)
  • - gestionare suma utilizator, oferire rest
  • - anularea comenzii

De predat: fisier text sau html(obtinut din xml/xslt)

Problema 2: WSS [interviu, Lab 5, 400E]

Web Services Security este un standard nou pentru specificarea securitatii serviciilor Web. La adresa http://www.ws-i.org/ puteti afla despre cum se defineste securitatea de baza (folosind, de ex. nume de cont si parola). Implementati un exemplu de serviciu web care sa foloseasca WS-I Basic Security Profile. Scoateti in evidenta cum utilizatori diferiti au drepturi diferite.

De predat: seviciu web in Java (platforma Sun, Apache Axis?), client in Java si C#. Un scurt document va indica modul de instalare si de rulare.

Problema 3: CD-Cat [interviu, Lab 5, 300E]

Realizati un sistem de catalogare a CD-urilor. Programul va avea o optiune de importare a unui CD nou, ce va avea ca efect scanarea CD-ului si adaugarea fisierelor si directoarelor la o baza de date.

Pentru cautare, programul va oferi un modul care sa creeze un sistem de fisiere virtual. De exemplu, daca am adaugat la baza de date un CD cu numele CD1, continutul acestuia va putea fi accesat prin "ls /usr/local/cd-catalog/CD1" (pe linux) sau "dir q:\CD1" (unde q este numele unui sistem de fisiere cu numele cd-catalog, pe windows). Din motive de eficienta, CD-urile nu vor fi copiate efectiv pe hard-disk, si nici nu se va crea o structura de directoare ce contine fisiere vide.

Dimensiunea fisierelor virtuale va corespunde cu dimensiunea fisierelor reale. Daca utilizatorul va deschide fisierele, continutul lor va contine la inceput textul: "Acesta este un fisier virtual. Varianta originala sa gaseste pe CD-ul ... in directorul ..."

Daca un CD a mai fost introdus in baza de date, programul va detecta acest lucru si nu il va mai introduce inca o data.

Programul isi va crea propria baza de date, putand rula in spatiul de drepturi al unui utilizator normal. Daca se va folosi un sistem de baze de date, acesta va fi open-source.

Problema 4: NetSwitch [interviu, Lab 5, 300E]

Realizati un program pentru schimbarea setarilor de retea, util atunci cand un calculator este mutat dintr-o retea in alta. Programul va memora setarile specifice (IP, net mask, gateway etc. ori DHCP). Utilizatorul va putea selecta dintr-un meniu ce setari de retea doreste sa aplice la un moment dat. Aplicatia se va integra in tray; meniul cu setari va putea fi accesat direct din tray, folosind click dreapta. Meniul va contine o comanda de creare a unei noi setari de retea, precum si una de administrare a setarilor (redenumire, stergere).

Daca programul nu are suficiente drepturi pentru a realiza o anumita operatie, va solicita utilizatorului sa se autentifice intr-un cont care are drepturile necesare, continuand apoi operatia. Programul va renunta apoi la drepturile suplimentare (eventual dupa o perioada configurabila de timp.

Programul va functiona in Linux, pentru Gnome.

Publicarea unui rpm pe siturile de specialitate: bonus 100%. Acceptarea programului intr-o distributie majora: bonus 100%.

Problema 5: eurespir.infoiasi.ro [interviu, Lab 5, 400E]

Realizati sit web pentru apararea drepturilor persoanelor fata de fumatul pasiv. Continutul sitului va trece in revista, in registru informal, legile romanesti in domeniu si va propune o campanie pentru respectarea acestora. O sectiune va prezenta reactii fata de legi internationale ce merg mai departe decat reglementarile romane (de ex. Irlanda). O sugestie ar fi prezentarea problemei din perspectiva personalului care lucreaza intr-un local in care se fumeaza. Scopul nu este de a convinge fumatorii sa renunte la fumat, ci sa atraga atentia asupra faptului ca fumatul in spatii publice este o agresiune gratuita la adresa celorlalti.

Realizati si un poster care sa surprinda aceasta idee.

Echipele selectate dupa interviu vor intra intr-un concurs. Castigatorii concursului vor avea posibilitatea sa militeze pentru instalarea sitului pe pagina facultatii si pentru permisiunea de a afisa posterele create. In cazul unei campanii de succes, bonus-ul este de 150%.

La interviu pot participa doar echipele cu experienta in design si design web. Este necesar sa se prezinte design-uri anterioare si o scrisoare de motivatie (1/2 pagina).

Keywords [eng.]

Requirements engineering, object-oriented design, programming style, self-documented code. Problems: use case analysis, web services security, virtual file systems, network settings switch, web design.