En este hito continuamos con la fase de codificación.
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. En el hito 5 NO lo habéis realizado correctamente. Debe indicarse de forma explícita el estado de cada CU, breve descripción del estado en caso de no tenerlo operativo, y hacer estas descripciones para CU.
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). En el hito 5 NO lo habéis realizado correctamente. Debéis indicar TODOS LOS PARÁMETROS DEL IDE así plugins, librerías necesarias
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
-- CREAR CHAT
-- UNIRSE A UN CHAT
-- ENVIAR/RECIBIR MENSAJES
-- ABANDONAR CHAT
-- ELIMINAR CHAT
-- MODIFICAR CHAT
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 depedencias, Repositorio, Fachada (servicio), ObjectMother (test), DTO y ValueObjects (punto 3.3), así como la creación de Test (unitarios y de integración).
Este hito es una continuación del Hito5, donde se van a trabajar de forma específica los siguientes RNF:
Seguimos con ORM JPA/Hibernate (BD Relacionales) [Perfeccionando/Mejoras]
Mejora de los test del Hito5 e inclusión nuevos test (Perfeccionamiento/Mejoras]
Igual que el Hito5 son necesarios incluir test unitarios y de integración para los nuevos CU de este Hito 6.
Inclusión de conceptos NoSQL, aplicados a BD MongoDB.
Ciertas clases de negocio se persistirán en Documentos (NoSql)
Se estudiará cómo afectan la forma de persistencia en el modelado de clases de negocio.
SpringData. Inclusión de este nuevo módulo de Spring.
Inclusión de conceptos de auditoría (conocer cuando y quíen realiza acciones sobre los datos)
Inclusión de capa de logging, para registrar información de depuración.
En este hito se pide implementar funcionalidades del proyecto en el lado del frontend que usen hilos.
La aplicación deberá implementar las técnicas aprendidas durante el curso:
acceso de múltiples hilos a datos compartidos,
sincronización en la ejecución de los hilos de forma que se consigue la exclusión mutua en el acceso a regiones críticas,
ejecución de hilos según un orden determinado (modelo productor-consumidor). DEBES ADJUNTAR UNA EXPLICACIÓN DE CÓMO HAS IMPLEMENTADO ESTE MODELO: descripción general, explicación de las clases y métodos usados. Debe quedar suficientemente claro para poder evaluar el código.
Implementa las técnicas que permitan controlar los estados de los hilos: iniciarlos, pararlos, suspenderlos, reanudarlos.
Ten presente que tiene un peso importante el implementar alguna funcionalidad mediante la técnica del modelo productor-consumidor (CE2f). Ver calculadora de notas.
Programación de comunicaciones en red:
En la parte del backend debe implementarse la atención de la comunicación de los clientes de forma concurrente, es decir, realizar un diseño multihilo de los sockets.
El intercambio de información entre frontend y backend debe ser implementado como:
Envío de objetos
Conexiones punto a punto con envío de segmentos TCP.
Alguna funcionalidad que use sockets multicast.
Uso tanto de TCP como UDP.
En este hito el frontend conectará con la base de datos de la aplicación.
General
En este hito continuamos con la fase de codificación.
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. En el hito 5 NO lo habéis realizado correctamente. Debe indicarse de forma explícita el estado de cada CU, breve descripción del estado en caso de no tenerlo operativo, y hacer estas descripciones para CU.
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). En el hito 5 NO lo habéis realizado correctamente. Debéis indicar TODOS LOS PARÁMETROS DEL IDE así plugins, librerías necesarias
Documentación (Manual técnico)
CU a implementar en este Hito
-- CREAR CHAT -- UNIRSE A UN CHAT -- ENVIAR/RECIBIR MENSAJES -- ABANDONAR CHAT -- ELIMINAR CHAT -- MODIFICAR CHAT
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 depedencias, Repositorio, Fachada (servicio), ObjectMother (test), DTO y ValueObjects (punto 3.3), así como la creación de Test (unitarios y de integración).
Este hito es una continuación del Hito5, donde se van a trabajar de forma específica los siguientes RNF:
Criterios de evaluación: RA: 3 - Criterios 3.17, 3.18, 3.19, 3.20, 3.2, 3.22, 3.23 (30%) RA: 4 - Criterios 4.24, 4.25, 4.26, 4.27. 4.28, 4.29, 4.30 (50%) RA: 5 - Criterios 5.32, 5.34, 5.35, 5.36, 5.37, 5.38 (50%) RA: 6 - Criterios: 6.39, 6.40, 6.41, 6.42, 6.43, 6.44, 6.47 (25%)
PSP
Programación multihilo:
Programación de comunicaciones en red:
En este hito el frontend conectará con la base de datos de la aplicación.
Criterios de evaluación: