Home - PauloGonzalez/EGit2PauloGonzalez GitHub Wiki
SPAI: EGit2
Descripción del proyecto
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:
- NumeroEntero, maneja números enteros, ofreciendo diversas funcionalidades
- Persona, almacena el nombre y apellido, controlando el formato del mismo y mostrando diferentes representaciones
- ColeccionDecimales, maneja una colección de valores decimales de tipo double
- Fraccion, maneja fracciones matemáticas
Se acompañan los test de las clases, pero se deberán cambiar para la nueva versión.
####Las posibles ampliaciones podrían ser las siguientes:####
NumeroEntero
- Limitar los límites posibles: 0..100, -10..+10 ...
- Los métodos incrementar y decrementar podrán aceptar un parámetro con la cantidad
- Incluir el métodos sumar, multiplicar...
Persona
- 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
ColeccionDecimales
- Incluir métodos como menor, multiplicar, tamaño, media...
Fracciones
- 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 el título: issuesXxx#n (siendo Xxx un identificador: Dev: develop, Bug: bugs... y n un número correlativo) y una pequeña descripción del mismo, tendrán un enlace a una página wiki, con el mismo nombre, que lo describe con detalle. 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
Pasos a seguir
Fase 1. Integrantes de los proyectos
Sorteo para asignar a cada Arquitecto
su equipo de tres Programadores
Fase 2. Preparar proyecto en el repositorio
El Arquitecto
deberá preparar una copia del proyecto en su cuenta de GitHub
- Clonará el repositorio (https://github.com/miw-upm/EGit2.git) en su cuenta, con el botón
Fork
de la Web de GitHub - Le cambiará el nombre del repositorio copiado a EG2Arquitecto
- 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): EG2Arquitecto
- Publicará en la plataforma de la moodle.upm los datos del proyecto, en el apartado GitHubs de la asignatura
Fase 3. Preparar proyectos en equipos locales
Los Programadores
importarán este proyecto en sus equipos. Recordar establecer las llaves SSH
Arquitecto
Fase 4. Planificación de la ampliación por parte de El Arquitecto
establecerá las ampliaciones que pretende acometer, y la distribución de tareas mediante tickets.
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...
Fase 5. Programar los test
- El
Arquitecto
mandará tickets a cadaProgramador
para explicar las ampliaciones que se deben acometer, y el test asignado: NumeroEnteroTest, PersonaTest, ColeccionDecimalesTest y FraccionTest. 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
Fase 6. Programar las clases
- El
Arquitecto
mandará tickets para implementar las clases, el programador que hace el test no puede implementar la clase, excepto Fraccion, 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
Fase 7. Comprobación final del proyecto
- 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
Evaluación
La nota de este ejercicio sólo se tendrá en cuenta el rol de Arquitecto
,
y no olvidéis que queda todo registrado, con las cuentas de los integrantes.
Si un Programador
no cumple con sus obligaciones, el Arquitecto
deberá buscar alternativas entre el resto del personal.
Será fundamental acabar el proyecto para obtener un 5, y el resto de la nota, se obtendrá viendo el desarrollo de equipo, teniendo en cuenta la dificultad del mismo, uso adecuado de las ramas, el uso de los tickets, de la wiki, la coordinación...