En este hito empezamos con la fase de codificación. Es probable que tengáis que volver a atrás para realizar cambios en el diseño y/o análisis (modelo en cascada con realimentación).
El proyecto se estructura en 2 componentes: frontend y backend.
La estructura de paquetes/carpetas a usar la tenéis disponible en el repositorio de github: projectTemplate
Indicaciones
Documentación (Manual de usuario)
Cuando hagas la pull-request debes añadir un comentario indicando:
Qué CUs, de los pedidos en este hito, tiene operativos la aplicación. En caso que no hubieras terminado alguno, explica lo que has realizado, indicando en qué estado se encuentra.
Configuraciones necesarias del IDE para poder probar la aplicación -librerías, parámetros, versión SDK …). Debe entregarse un pequeño tutorial paso a paso que permita poner en ejecución la aplicación entregada (de forma que un principiante pueda poner en marcha la aplicación).
Documentación (Manual técnico)
Documenta cada clase con JavaDoc. Debes incluir un comentario general del uso de la clase y comentarios de cada atributo y método.
El código debe incluir comentarios. Sin comentarios NO se evaluará.
CU a implementar en este Hito
-- REGISTRO DE USUARIO
-- CONSULTAR PERFIL USUARIO
-- GESTIONAR USUARIOS
-- DAR DE ALTA UN EVENTO
-- ELIMINAR UN EVENTO
-- CONSULTAR EVENTOS
-- MODIFICAR EVENTO
Especificaciones por módulo
AAD
En este módulo ciertos RNF serán aplicables a todos los hitos, ya que serán transversales como la arquitectura capas (Dominio, Aplicación e Infraestructura), inyección de dependencias para evitar el acoplamiento a infraestructura. También la aplicación de patrones (Builder, inversión de dependencias, Repositorio, Fachada (servicio), ObjectMother (test), DTO y ValueObjects (punto 3.3), así como la creación de Test (unitarios y de integración).
En este hito 5 se van a trabajar de forma específica los siguientes RNF:
Trabajo con ORM JPA/Hibernate (BD Relacionales)
Anotaciones (OneToMany, .. y carácteristicas)
Estrategias de modelado de tablas
Modelo de Entidades de Negocio (Solo CU aplicables a este Hito)
Test
Unitarios sobre infraestructura (JPA/Hibernate entidades/tablas)
Unitarios sobre CU (capa aplicación)
Integración entre capa servicio+infraestructura.
Se usará una BD en Memoria tipo H2.
Se aplicarán los patrones Builder, ObjectMother así como JavaFaker para la generación de datos aleatorios.
En base al curso (Arquitectura sólida con Spring) realizado en clase, este primer hito de codificación debe incorporar los conceptos del punto 2 (Repositorios y Servicios) incluyendo todo lo que se trata en ese punto (Repositorios, GenericRepository, Test, Objetos Mock para testear CU aislados de infraestructura, …) y también Spring para la inyección de dependencias.
Implementar los RNF referentes a técnicas de programación multiproceso:
Lanzar procesos del sistema en el frontend (por ejemplo, obtener listado de ficheros, fecha del sistema, actualizar los paquetes del sistema, instalar alguna aplicación, etc.) Los procesos deben tener relación con los requisitos funcionales del proyecto.
Lanzar procesos Java desde otros procesos Java desde el frontend, habilitando la comunicación entre ambos procesos tanto para recoger el resultado del proceso lanzado como para pasarle información al mismo (por ejemplo, un proceso que cuente las vocales de un fichero, realice cálculos estadísticos sobre algunos datos, etc). Se pide aplicar las diferentes técnicas aprendidas en el curso (paso de valores mediantes flujos de entrada/salida/errores, paso de valores mediante la redirección de la entrada/salida/errores), establecer técnicas de sincronismo (la vista en el curso de waitFor()). Los procesos deben tener relación con los requisitos funcionales del proyecto.
El frontend está pensado para correr en un entorno de escritorio.
Puede usarse Swing o JavaFX, a elección de cada grupo.
Consideraciones
En esta primera fase NO debe realizarse la implementación de las funcionalidades que se pidan haciendo uso de la comunicación en red. En el siguiente hito enlazaremos el frontend con el backend a través de los sockets.
La capa Repository simulará el acceso a los datos mediante estructuras en memoria (tablas, colecciones …). En el siguiente hito conectaremos con la base de datos ubicada en el backend.
Los datos que envía el usuario a través de la interfaz gráfica serán modelados como tipo DTO y deben diferir de los datos a persistir que se modelará como tipo VO.
Usaremos Maven para el desarrollo del proyecto (dependencias).
General
En este hito empezamos con la fase de codificación. Es probable que tengáis que volver a atrás para realizar cambios en el diseño y/o análisis (modelo en cascada con realimentación).
El proyecto se estructura en 2 componentes: frontend y backend. La estructura de paquetes/carpetas a usar la tenéis disponible en el repositorio de github: projectTemplate
Indicaciones
Documentación (Manual de usuario)
Cuando hagas la pull-request debes añadir un comentario indicando: Qué CUs, de los pedidos en este hito, tiene operativos la aplicación. En caso que no hubieras terminado alguno, explica lo que has realizado, indicando en qué estado se encuentra.
Configuraciones necesarias del IDE para poder probar la aplicación -librerías, parámetros, versión SDK …). Debe entregarse un pequeño tutorial paso a paso que permita poner en ejecución la aplicación entregada (de forma que un principiante pueda poner en marcha la aplicación).
Documentación (Manual técnico)
CU a implementar en este Hito
-- REGISTRO DE USUARIO -- CONSULTAR PERFIL USUARIO -- GESTIONAR USUARIOS -- DAR DE ALTA UN EVENTO
-- ELIMINAR UN EVENTO
-- CONSULTAR EVENTOS
-- MODIFICAR EVENTO
Especificaciones por módulo
AAD
En este módulo ciertos RNF serán aplicables a todos los hitos, ya que serán transversales como la arquitectura capas (Dominio, Aplicación e Infraestructura), inyección de dependencias para evitar el acoplamiento a infraestructura. También la aplicación de patrones (Builder, inversión de dependencias, Repositorio, Fachada (servicio), ObjectMother (test), DTO y ValueObjects (punto 3.3), así como la creación de Test (unitarios y de integración).
En este hito 5 se van a trabajar de forma específica los siguientes RNF:
En base al curso (Arquitectura sólida con Spring) realizado en clase, este primer hito de codificación debe incorporar los conceptos del punto 2 (Repositorios y Servicios) incluyendo todo lo que se trata en ese punto (Repositorios, GenericRepository, Test, Objetos Mock para testear CU aislados de infraestructura, …) y también Spring para la inyección de dependencias.
Criterios de evaluación: RA: 3 - Criterios 3.17, 3.18, 3.19, 3.20, 3.2, 3.22, 3.23 (50%) RA: 6 - Criterios: 6.39, 6.40, 6.41, 6.42, 6.43, 6.44, 6.47 (25%)
PSP
Implementar los RNF referentes a técnicas de programación multiproceso:
Esta figura ilustra lo anterior.
Diseño de las interface gráficas:
Consideraciones
Criterios de evaluación: