Guía#
Advertencia
El proyecto debe estar en GitHub y todos deben participar activamente.
1. Objetivo del Proyecto#
Desarrollar una solución de software que aplique las mejores prácticas y principios de diseño, utilizando patrones de diseño, arquitectura de software, y técnicas de modelado UML. El proyecto debe ser realizado de a uno.
2. Descripción del Proyecto#
Cada uno debe diseñar e implementar un sistema de software que resuelva un problema específico, aplicando conceptos clave del diseño de software. El proyecto debe cubrir las siguientes áreas:
Análisis del problema y definición de requisitos.
Uso adecuado de patrones de diseño (creacionales, estructurales y de comportamiento).
Diseño de arquitectura (ejemplo: arquitectura en capas, microservicios, etc.).
Modelado de diagramas UML (clases, secuencia, casos de uso).
(Opcional) Implementación de una solución mínima viable (MVP) en código, dependiendo del nivel de la asignatura.
3. Requisitos Funcionales#
El sistema debe cumplir con los siguientes requisitos mínimos:
Definir al menos 3 casos de uso completos que guíen el desarrollo del sistema.
Uso de mínimo tres patrones de diseño adecuados al problema planteado.
Diagramas UML claros que representen la estructura del sistema (diagrama de clases, de secuencia, etc.).
Documentación que describa las decisiones de diseño y justifique la elección de patrones y arquitecturas.
4. Fases del Proyecto#
Fase 1: Investigación y Análisis del Problema
Objetivo: Entender el problema a resolver. Cada equipo debe entregar un documento con el análisis del problema, los casos de uso, y los requerimientos funcionales y no funcionales.
Cada equipo debe entregar un primer reporte de proyecto que incluya:
Descripción del problema a resolver (planteamiento, justificación y requerimientos de la solución al problema).
Objetivos principal y específicos del proyecto.
Posible división de tareas entre los miembros del equipo.
Algunas referencias de interés.
Nota
Hasta aquí va la primera entrega. Recuerden que el reporte debe estar en el repositorio del proyecto y TODOS deben participar activamente.
Fase 2: Diseño de la arquitectura
Objetivo: Definir la arquitectura del sistema, identificando las capas o módulos principales. Describir cómo las partes del sistema interactuarán entre sí.
Entregable: Diagrama de arquitectura del sistema y justificación de la arquitectura seleccionada.
Fase 3: Modelado UML y patrones de diseño
Objetivo: Crear los diagramas UML que describen el sistema, y aplicar los patrones de diseño apropiados para cada componente o interacción.
Entregable: Diagramas UML (casos de uso, clases, secuencia, estados, etc.) y un documento explicando la aplicación de los patrones de diseño.
Nota
Hasta aquí va la segunda entrega. Recuerden que el reporte debe estar en el repositorio del proyecto y TODOS deben participar activamente. En esta entrega deben tener los diagramas de clases, objetos, casos de uso, y de actividades para el problema asignado.
Fase 4: Implementación (opcional)
Objetivo: Implementar una solución mínima viable (MVP) del sistema diseñado, asegurando la correcta implementación de los patrones y la arquitectura seleccionada.
Entregable: Código fuente (si es necesario) y manual técnico.
Fase 5: Pruebas y validación del diseño
Objetivo: Validar el diseño y los diagramas mediante revisiones de pares, pruebas de concepto o prototipos. Identificar posibles mejoras o cambios.
Entregable: Informe de validación del diseño.
Fase 6: Presentación final
Objetivo: Presentar el diseño final, explicando las decisiones tomadas a lo largo del proyecto, cómo se implementaron los patrones de diseño y cómo se logró satisfacer los requisitos.
Entregable: Presentación del proyecto con todos los diagramas y documentación técnica.
5. Criterios de Evaluación#
Calidad del análisis de requisitos: Precisión y exhaustividad en la identificación de requisitos.
Diseño de la arquitectura: Coherencia y claridad en la definición de la arquitectura del sistema.
Uso de patrones de diseño: Elección y correcta implementación de patrones según el problema.
Diagramas UML: Claridad y corrección de los diagramas UML presentados.
Documentación: Justificación clara de las decisiones de diseño y elección de patrones.
Trabajo en equipo: Evaluación por pares y participación activa de cada miembro.
Presentación: Capacidad para explicar y defender el diseño y las decisiones técnicas.
6. Recursos#
Pueden encontrar enlaces de interés en uETITC.
7. Entregables#
Documento de análisis y diseño.
Diagramas UML (casos de uso, clases, secuencia, etc.).
Documentación justificando las decisiones de diseño.
(Opcional) Implementación de una MVP.
Presentación final del proyecto.
8. Consideraciones Finales#
Los equipos deben usar herramientas colaborativas (e.g., GitHub, Lucidchart) para gestionar tanto el código como los diagramas.
Se evaluará el cumplimiento de las fechas intermedias, por lo que es importante planificar el trabajo de manera equitativa y organizada.
Los equipos deben validar su diseño constantemente para asegurar su viabilidad y correcta implementación.
9. Fechas Importantes#
Inicio del proyecto: [Fecha]
Entrega del proyecto final: [Fecha]
10. Recomendaciones#
Organícense desde el inicio y asignen responsabilidades claras.
Realicen revisiones periódicas del código y usen herramientas de control de versiones para evitar conflictos.
Asegúrense de que todos los miembros del equipo comprendan el código y las decisiones tomadas.
Documenten el progreso y dificultades para la presentación final.