-
Notifications
You must be signed in to change notification settings - Fork 26
Home
Se parte de un proyecto ya desarrollado, y se pretende realizar una ampliación del mismo.
En la actualidad, el proyecto consta de cuatro clases:
- Point, maneja coordenadas de dos dimensiones, ofreciendo diversas funcionalidades
- User, almacena un identificador, el nombre y apellido, controlando el formato del mismo y mostrando diferentes representaciones
- DecimalCollection, maneja una colección de valores decimales de tipo double
- Fraction, maneja fracciones matemáticas
Es responsabilidad del arquitecto realizar los test de cada clase en su versión inicial
####Las posibles ampliaciones podrían ser las siguientes:####
- Aumentar a una tercera coordenada
- Limitar los límites posibles: 0..100, -10..+10 ...
- Poder modificar las coordenadas
- Presentar el nombre en mayúsculas
- Incluir métodos con otras formas de presentar el nombre completo
- Permitir nombres compuestos, separados por blancos y controlar las mayúsculas y minúsculas
- Incluir métodos como menor, multiplicar, tamaño, media...
- Incluir métodos como isPropia, isImpropia. Las fracciones propias son aquellas cuyo numerador es menor que el denominador, y las fracciones impropias el resto
- Incluir el método isEquivalente. Dos fracciones son equivalentes cuando el producto de extremos es igual al producto de medios
- Incluir métodos para comparar fracciones: mayor, menor
- Incluir métodos para sumar, restar, multiplicar o dividir fracciones
Se pueden realizar otras, pero cuidado!!! es responsabilidad del Arquitecto
finalizar la ampliación del proyecto :-o.
####Tickets
Los tickets se publicarán con un formato a elección del Arquitecto
, y deberá describirlo en la Wiki. Deberán tener plazos temporales y estimaciones de tiempo (1 unidad equivale a 5 minutos). Cuando un Programador
finalice, incluirá el tiempo real utilizado.
No olvidéis, si con tanto cambio se produce descontrol y pánico!!! enfocar un commit estable, hacer reset mediante el menú contextual y marcar Hard
Sorteo para asignar a cada Arquitecto
su equipo de tres Programadores
El Arquitecto
deberá preparar una copia del proyecto en su cuenta de GitHub.
- Clonará el repositorio (https://github.com/miw-upm/ECP2.git) en su cuenta, con el botón
Fork
de la Web de GitHub - Le cambiará el nombre del repositorio copiado a ECP2Arquitecto
- Añadirá como colaboradores del proyecto a su la lista de
Programadores
- Importará este proyecto en su equipo local, y le cambiará el nombre del proyecto (Refactor>Rename): ECP2Arquitecto
- Organizará la forma de gestionar el proyecto: creará etiquetas, establecerá el formato de los tikets, las ramas y la filosofía de funcionamiento... Realizará una wiki exploratoria del funcionamiento organizativo
- Deberá añadir los test de cada clase y comprobar su buen funcionamiento
- Actualizará el repositorio remoto
- Publicará en la plataforma de la moodle.upm los datos del proyecto, en el apartado GitHubs de la asignatura
Los Programadores
importarán este proyecto en sus equipos.
El Arquitecto
establecerá UNA ampliación para las clases Point, User y DecimalCollection, y TRES ampliaciones para Fraction.
Recordar que no podrá realizar ninguna modificación directa del software, pero si puede realizar tareas de preparación de ramas, fusiones, generaciones de Tags, generación del Jar...
- El
Arquitecto
mandará tickets a cadaProgramador
para explicar las ampliaciones que se deben acometer, y el test asignado: PointTest, UserTest, DecimalCollectionTest y FractionTest. Los programadores tendrán que realizar los test e incluir el método público en las clases. - Los
Programadores
cerrarán los tickets cuando hayan finalizado
- El
Arquitecto
mandará tickets para implementar las clases, el programador que hace el test no puede implementar la clase, excepto Fraction, que se asignará un método a cadaProgramador
- El
Programador
realizará los tickets con agilidad y corrección. Una vez que termine, deberá cerrarlo indicando el tiempo real ocupado
- El
Arquitecto
comprobará el buen funcionamiento de la ampliación. Si tuviera errores, creará nuevos tickets. - Finaliza la ampliación, creando una versión beta para publicar
La nota que se obtiene en este ejercicio es de 7 puntos por el rol de Arquitecto
y 3 puntos por el rol de Programador
.
El Arquitecto
deberá dar una nota entre 0..1 a cada uno de los programadores. Se indicará en la entrega de la práctica.
Se valorará el uso adecuado de las ramas, el uso de los tickets, de la wiki, la coordinación...