DAMs1: Examen 2a avaluació
Llicència: CC BY-NC-SA 4.0
(Reconeixement - NoComercial - CompartirIgual) 🅭
Entrega
Perill
Si l'entrega no compleix aquests criteris, no és qualificarà.
- Cal utilitzar el repositori creat en l'organització del mòdul: CognomNom-ED.
- Tots els exercicis han d'estar situats en el package corresponent:
exam2
- El nom de la classe on comença l'execució (
main()
) de cada exercici
ha de ser el títol de l'exercici.
- S'ha d'entregar a Aules un fitxer .zip
amb el contingut del package corresponent.
- Renombrar el .zip perquè incloga el vostre nom i cognoms.
- El format de la eixida del programa ha de ser consistent amb el format demanat.
- El codi ha d'estar pujat a GitHub en el vostre repositori de l'assignatura en el package corresponent.
- El codi ha de poder-se compliar.
Exercici 1: Git Avançat
Bloc 2: Control de versions20% exam2
Advertència
Tingueu en compte les següents consideracions:
- Utilitzeu exactament el mateix nom de les branques.
- Utilitzeu exactament el mateix missatge per als commits.
- Deixeu el nom per defecte dels commits quan feu merge o rebase.
- Feu un
push
sols quan s'indique en l'enunciat.
Has de realitzar els següents passos en el repositori de Git:
-
Crea la branca ex2/backup
. Aquesta branca servirà per indicar-nos
el punt de partida de l'exercici, per poder tornar enrere fàcilment.
-
Crea el package exam2
(si no existeix prèviament).
-
Des de la branca main
,
crea un commit amb el missatge: "Exam2: Creació exercici1.md".
on s'afegeix el fitxer exercici1.md dins del package exam2
.
# Exercici 1 - Nom Cognom
-
Crea les branques ex2/canviA
i ex2/canviB
.
-
Situa't en cadascuna de les branques i fes els següents canvis.
-
Crea les etiquetes Exam2-CanviA
i Exam2-CanviB
en els commits corresponents.
- Des de la branca
ex2/canviA
, desfés el canvi A sense modificar la història anterior del repositori.
- Des de la branca
ex2/canviA
, aplica els canvis del commit etiquetat amb Exam2-CanviB
.
- Des de la branca
ex2/canviA
, torna a aplicar el canvis del commit etiquetat amb Exam2-CanviA
.
- L'ordre dels canvis en el fitxer ha de ser: Canvi A, Canvi B.
- Fusiona la branca
ex2/canviA
a la branca main
en un sol commit amb el missatge: "Exam2: Canvis A i B".
- Publica totes les branques i etiquetes al repositori remot.
Rúbrica
Estructura inicial de commits i branques.
Creació de les branques i commits segons l'enunciat.
10 punts
|
Etiquetes
Creació de les etiquetes Exam2-CanviA i Exam2-CanviB .
20 punts
|
Desfer canvis sense modificar la història
Desfer el canvi A sense modificar la història anterior del repositori a la branca ex2/canviA .
20 punts
|
Aplicar el Canvi B.
Aplicar els canvis del commit etiquetat amb Exam2-CanviB a la branca ex2/canviA .
10 punts
|
Aplicar el Canvi A.
Aplicar els canvis del commit etiquetat amb Exam2-CanviA a la branca ex2/canviA .
20 punts
|
Fusió en un sol commit
Fusionar la branca ex2/canviA a la branca main en un sol commit.
20 punts
|
Exercici 2: Lamp
Bloc 3: Prova de programari30% exam2
Mitjançant l'estratègia TDD, implementa la classe Lamp
que representa una làmpara
que es pot encendre i apagar.
Consell
Recorda que el TDD consisteix en escriure els tests abans de programar la lògica de l'aplicació.
LampTest
Crea la classe LampTest
per implementar les proves unitàries de la classe Lamp
.
- Utilitza l'annotació
@Nested
per agrupar els tests.
- Utilitza l'annotació
@DisplayName
per donar un nom significatiu als tests i a les classes anidadedes.
- Utilitza l'anotacions necessàries per simplificar la codificació dels tests.
- Manteniu l'ordre de creació dels tests per veure el procés TDD seguit.
- Si has d'esborrar un test, no l'esborres, comenta'l.
Lamp
La classe Lamp
representa una làmpara que es pot encendre i apagar.
classDiagram
class Lamp {
- consumption: double
- on: boolean
+ Lamp(consumption: double)
+ Lamp(consumption: double, on: boolean)
+ isOn(): boolean
+ getConsumption(): double
+ turnOn(): void
+ turnOff(): void
+ toggle(): void
+ consume(seconds: double): double
}
Constructors
Els objectes d'aquesta classe poden ser instanciats de dues maneres:
- Especificant el consum en kWh. La làmpara es crea apagada.
- Especificant el consum en kWh i l'estat inicial (encès o apagat).
Mètodes
Aquesta classe ha de d'implementar les següents funcionalitats:
Rúbrica
Constructors
Prova i implementació dels constructors en una classe anidada.
30 punts
|
turnOn()
Prova i implementació del mètode turnOn en una classe anidada o test parametritzat.
10 punts
|
turnOff()
Prova i implementació del mètode turnOff en una classe anidada o test parametritzat.
10 punts
|
toggle()
Prova i implementació del mètode toggle en una classe anidada o test parametritzat.
10 punts
|
consume()
Prova i implementació del mètode consume en una classe anidada o test parametritzat.
40 punts
|
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.