FAQ

FAQ: Preguntas comunes en proyectos

Por una parte, afirma que debemos tener sólo una carpeta src con paquetes test y mundo, que aparentan ser para una sola aplicación. Ahora bien, en el paquete API hay carpetas para los 3 proyectos.

R: El kernel de tu sistema puede seguir siendo el mismo, puesto que el caso de estudio no cambia. Sin embargo, cada proyecto puede venir con diferentes requerimientos funcionales o incluso pueden ser los mismos pero con diferentes implementaciones. Piensa en algo como Facebook o incluso el mismo Bitbucket, ellos te podrían poner diferentes caras: una para móvil, otra para web, desktop, etc. Sin embargo el core sigue siendo el mismo. Esto con el motivo de que ustedes pueden estructurar su Kernel como deseen pero deben presentarnos por proyecto de cierta manera.

¿ A qué se refieren con interfaces? ¿Cómo deben estar relacionadas con el programa? Se supone que debemos hacer una API para lo que desarrollemos en src? A su vez, por qué hay carpetas para los 3 proyectos? ¿no se supone que en src sólo está el código de 1?

R: Son unas interfaces .Java. Básicamente lo único que deben hacer es implementar dichas interfaces como ustedes crean convenientes. Estas interfaces son contratos funcionales (que son básicamente los requerimientos del proyecto) de cómo ustedes nos deben entregar información para la ejecución de pruebas automáticas. De esta manera, nosotros sólo debemos ejecutar la clase que implementa la interfaz que les pasamos y verificar que dado un conjunto de entradas obtenemos el conjunto de respuesta esperado en un tiempo óptimo. Por tal motivo, implícitamente están desarrollando un API (no es propiamente algo web ni nada del estilo, es hacer implements de la interface que les pasemos).

Son 3 carpetas, dado que son 3 proyectos diferentes y cada uno va a tener diferentes interfaces. Sin embargo, por debajo sigues llamando al mismo Kernel (por ende es un solo src).

A su vez, la carpeta docs pide los documentos de explicación de cada proyecto, pero sólo pide 1 diagrama de clases. ¿Esto quiere decir que vamos a construir los proyectos 2 y 3 extendiendo el 1?

R: Si, precisamente el modelo de clases puede cambiar en el transcurso del semestre pero se hace sobre un mismo sistema que evoluciona. Si ustedes lo desean, podrían hacer un modelo para cada entrega, sin embargo sería un copy-paste más un par de cosas nuevas.