Salta el contingut

Rúbrica d'Avaluació - Pràctica Videoclub

Mòdul: DWES - Desenvolupament Web en Entorn Servidor
Cicle: CFGS Desenvolupament d'Aplicacions Web (DAW)
Qualificació màxima: 10 punts


1. Implementació de les Classes (40%)

1.1 Classes Base i Herència (15 punts)

Criteri Excel·lent (15-13p) Notable (12-10p) Aprovat (9-7p) Suspens (6-0p)
Classe Soport Implementada correctament amb tots els atributs, mètodes i constant IVA. Constructor ben definit. Implementada amb petits errors que no afecten la funcionalitat. Implementada però amb errors que afecten parcialment la funcionalitat. No implementada o amb errors greus.
Classes filles (CintaVideo, DVD, Joc) Herència correcta, constructors ben sobreescrits, mètodes específics implementats. Herència correcta però amb algun mètode específic incomplet. Herència amb errors menors o mètodes específics incomplets. No implementen correctament l'herència.
Encapsulació Totes les propietats privades amb getters/setters adequats. La majoria de propietats encapsulades correctament. Algunes propietats no encapsulades correctament. No s'utilitza encapsulació.

1.2 Classe Client (10 punts)

Criteri Excel·lent (10-9p) Notable (8-7p) Aprovat (6-5p) Suspens (4-0p)
Gestió de lloguers Mètodes llogar(), tornar(), teLlogat() funcionant perfectament amb totes les validacions. Mètodes implementats amb alguna validació que falla. Mètodes implementats però amb errors en la lògica. Mètodes no implementats o amb errors greus.
Control de quotes Control correcte de maxLloguerConcurrent i missatges informatius adequats. Control correcte però missatges poc clars. Control parcial de quotes. No controla les quotes.
Llistat de lloguers Mètode llistarLloguers() mostra informació completa i ben formatada. Mostra informació però amb formatació millorable. Mostra informació bàsica. No funciona o no està implementat.

1.3 Classe Videoclub (10 punts)

Criteri Excel·lent (10-9p) Notable (8-7p) Aprovat (6-5p) Suspens (4-0p)
Gestió de productes Mètodes per incloure tots els tipus de suports funcionant correctament. Funcionen però amb petites inconsistències. Alguns mètodes no funcionen correctament. No gestiona correctament els productes.
Gestió de socis Creació i gestió de socis completa, mètode llogarSociProducte() funcional. Funciona però amb alguna validació que falla. Funcionalitat bàsica implementada. No implementada o amb errors greus.
Llistats llistarProductes() i llistarSocis() mostren informació completa i ben organitzada. Mostren informació però amb formatació millorable. Mostren informació bàsica. No funcionen.

1.4 Classes Abstractes i Interfícies (5 punts)

Criteri Excel·lent (5p) Notable (4p) Aprovat (3p) Suspens (2-0p)
Classe abstracta Soport Transformada correctament a classe abstracta, tot continua funcionant. Transformada però amb petits ajustos necessaris. Transformada amb errors que afecten la funcionalitat. No implementada o amb errors greus.
Interfície Resumible Interfície creada i implementada correctament a totes les classes necessàries. Implementada però sense aplicar-la a totes les classes. Implementada amb errors. No implementada.

2. Proves i Funcionament (20%)

2.1 Fitxers de prova (20 punts)

Criteri Excel·lent (20-17p) Notable (16-13p) Aprovat (12-10p) Suspens (9-0p)
inici.php Executa correctament les proves de Soport, CintaVideo, DVD i Joc. Sortida coincideix amb l'esperada. Executa correctament amb petites diferències en la sortida. Executa però amb alguns errors. No funciona o té errors greus.
inici2.php Executa correctament les proves de Client amb tots els casos (llogar, tornar, validacions). Executa correctament però falla algun cas específic. Executa parcialment. No funciona.
inici3.php Executa correctament tot el sistema Videoclub integrat. Tots els casos de prova funcionen. Executa correctament però falla algun cas menor. Executa parcialment. No funciona.

3. Organització i Estructura del Codi (15%)

3.1 Estructura del projecte (8 punts)

Criteri Excel·lent (8-7p) Notable (6-5p) Aprovat (4-3p) Suspens (2-0p)
Organització de carpetes Estructura clara: classes/, tests/. Cada classe en el seu fitxer. Estructura correcta amb petites inconsistències. Estructura bàsica però desorganitzada. No segueix cap estructura.
Nomenclatura Noms de fitxers i classes segueixen convencions PHP (PascalCase per classes). Nomenclatura correcta amb alguna excepció. Nomenclatura inconsistent. Nomenclatura incorrecta.

3.2 Qualitat del codi (7 punts)

Criteri Excel·lent (7-6p) Notable (5-4p) Aprovat (3p) Suspens (2-0p)
Indentació i formatació Codi ben indentat, llegible, segueix estàndards PSR. Codi llegible amb petites inconsistències. Codi poc consistent en formatació. Codi mal formatat o il·legible.
Ús d'include/require Utilitza correctament include_once o require_once. Utilitza includes però amb alguna redundància. Includes desorganitzats. No gestiona correctament les dependencies.

4. Documentació (15%)

4.1 README.md (8 punts)

Criteri Excel·lent (8-7p) Notable (6-5p) Aprovat (4-3p) Suspens (2-0p)
Completitud README complet amb descripció, estructura, instruccions d'execució i tasques d'entrega. README complet però amb alguna secció poc detallada. README bàsic amb informació mínima. README incomplet o absent.
Claredat Instruccions clares, ben formatades amb markdown. Instruccions clares però formatació millorable. Instruccions confuses. README poc útil o absent.

4.2 Documentació del codi (7 punts)

Criteri Excel·lent (7-6p) Notable (5-4p) Aprovat (3p) Suspens (2-0p)
Comentaris Cada classe té comentaris explicatius dels mètodes principals. PHPDoc utilitzat correctament. Comentaris presents però incomplets. Comentaris escassos. Sense comentaris o molt escassos.
Explicació de funcionalitats Cada exercici està ben documentat explicant què fa. Documentació present però millorable. Documentació mínima. Sense documentació.

5. Ús de Git i GitHub (10%)

5.1 Control de versions (10 punts)

Criteri Excel·lent (10-9p) Notable (8-7p) Aprovat (6-5p) Suspens (4-0p)
Commits Commits freqüents amb missatges descriptius. Historial clar del desenvolupament. Commits regulars amb missatges acceptables. Pocs commits o missatges poc descriptius. Un sol commit o missatges inadequats.
Estructura del repositori Repositori ben organitzat, .gitignore adequat, sense fitxers innecessaris. Repositori organitzat amb petites inconsistències. Repositori desorganitzat o amb fitxers innecessaris. Repositori mal organitzat.
Ús correcte de GitHub Classroom Repositori clonat, desenvolupat i pujat correctament. Push regular de canvis. Repositori utilitzat correctament amb petits errors. Ús bàsic de GitHub. No utilitza correctament GitHub o un sol push final.

Resum de Puntuació

Apartat Punts
1. Implementació de les Classes 40
2. Proves i Funcionament 20
3. Organització i Estructura 15
4. Documentació 15
5. Ús de Git i GitHub 10
TOTAL 100

Conversió a Nota Final

Puntuació Qualificació
90-100 Excel·lent (9-10)
75-89 Notable (7-8.9)
50-74 Aprovat (5-6.9)
0-49 Suspens (0-4.9)

Criteris Addicionals

Penalitzacions (-0.5 a -2 punts)

  • Codi no funcional que impedeix l'execució: -2 punts
  • Plagi detectat (còpia d'altri sense citar): 0 punts (suspens automàtic)
  • No segueix l'estructura UML proporcionada: -1 punt
  • Entrega fora de termini (sense justificació): -1 punt per dia

Bonificacions (+0.5 a +1 punt)

  • Funcionalitats extra ben implementades i documentades: +0.5 punts
  • Ús de namespaces i autoload PSR-4: +0.5 punts
  • Tests unitaris implementats (PHPUnit): +1 punt
  • Documentació exemplar amb diagrames UML generats: +0.5 punts

Observacions

  • És obligatori que el codi funcioni per obtenir una qualificació mínima de 5.
  • Tots els exercicis (126-134) han de ser implementats per poder aprovar.
  • La clarificació i llegibilitat del codi són tant importants com la funcionalitat.
  • Es valorarà molt positivament la progressió en els commits (desenvolupament incremental).

Data d'entrega: [Especificar data]
Professor/a: [Nom del professor]