2009C2‎ > ‎Entregas TP 2009 2C‎ > ‎

Entrega 1

Objetivo

    El objetivo de esta entrega es que los alumnos se acostumbren con la utilización de Maven como herramienta para gestionar el proceso de desarrollo, y TDD para orientar la implementación a las pruebas. Los alumnos deben utilizar el testeo unitario y prácticas de TDD para demostrar la completitud de los requerimientos a cubrir en esta entrega.

Requerimientos

  • Se debe poder crear un evento, cada evento debe tener una fecha, duración y una descripción, además puede contener información sobre la ubicación.
  • Debe existir la entidad usuario, esta entidad va a tener asociados los datos básicos del usuario.
  • Un usuario debe poder agregarse a un evento.
  • Un usuario debe poder cancelar su subscripción a un evento, solo si el evento no ocurrió.
  • Un usuario puede consultar todos los eventos a los cuales tiene una subscripción, tanto eventos pasados y los que estan por pasar.
  • A partir de un evento, se debe poder consultar todos los usuarios que estan subscriptos a dicho evento.
  • Existe un tipo especial de usuario, que puede realizar todas las tareas sobre un determinado usuario; los usuarios comunes solo pueden modificar sus propias subscripciones. 
  • Se debe poder registrar la real asistencia de un usuario a un determinado evento.
  • Un usuario puede agregar comentarios a un determinado evento.

Notas

  • Se deben proveer distintos tests que validen cada uno de los requerimientos de la entrega.
  • Además del código de negocio y los tests, se debe proveer documentación aclaratoria sólamente sobre lo que no se pueda entender facilmente a partir del código.
  • Uno de los puntos que se va a tomar en cuenta es la correcta integración con Maven.
  • Para el desarrollo de esta entrega es recomendable basarse en el archetype maven-quickstart.
  • Se debe utilizar Log4j como herramienta de Logging. Teniendo en cuenta las siguientes observaciones:
    • Usar correctamente las categorias por clase.
    • Utilizar correctamente los distintos niveles de logs.
    • Definir la información más relevante que se muestra en cada línea.
    • La idea es que se pueda seguir la ejecución de la aplicación en un nivel DEBUG o TRACE, y que no se note si esta en INFO.
Comments