📐 Diseño de Software
Este proceso establece las actividades, responsabilidades y directrices para realizar el diseño técnico de un proyecto de software, asegurando que la solución propuesta sea escalable, mantenible y cumpla con los requisitos establecidos.
🎯 Objetivo
- Establecer un proceso estandarizado para el diseño de software que garantice la creación de arquitecturas robustas, componentes bien definidos e interfaces claras que satisfagan los requisitos funcionales y no funcionales del proyecto.
📥 Entradas
- Documento de Especificación de Requisitos (SRS).
- Historias de usuario.
- Restricciones técnicas y de negocio.
- Estándares de arquitectura organizacional.
- Análisis de riesgos técnicos.
⚙️ Proceso
Fase | Descripción | Responsable | Meta y práctica específica del CMMI |
---|---|---|---|
Análisis de Requisitos | Revisar y analizar los requisitos funcionales y no funcionales para identificar componentes principales, restricciones técnicas y decisiones arquitectónicas clave. | Encargado del diseño / Architecture Owner | RD, SP 1.1 (Desarrollar el entendimiento con el cliente de los requisitos), TS, SP 1.1 (Desarrollar soluciones alternativas y criterios de selección) |
Diseño de Arquitectura | Definir la arquitectura de alto nivel del sistema: - Seleccionar patrones arquitectónicos (MVC, microservicios, etc.) - Definir componentes principales y sus interacciones - Especificar tecnologías y frameworks a utilizar - Crear diagramas de arquitectura | Arquitecto de Software | TS, SP 2.1 (Diseñar la solución), TS, SP 2.2 (Establecer un paquete de datos técnicos) |
Diseño de Componentes | Detallar el diseño de cada componente del sistema: - Definir interfaces - Documentar patrones de diseño a aplicar | Encargado del diseño / Architecture Owner | RD SP 2.1 (Establecer los requisitos de producto y de componente de producto), TS, SP 2.3 (Diseñar interfaces usando criterios establecidos), TS, SP 2.4 (Realizar análisis de hacer, comprar o reutilizar) |
Diseño de Base de Datos | Crear el modelo de datos (MER, MR, diccionario de datos): - Diseñar esquema de base de datos - Definir tablas, relaciones e índices | Encargado del diseño / Architecture Owner | TS, SP 2.1 (Diseñar la solución), CM, SP 1.1 (Identificar ítems de configuración) |
Diseño de Interfaces de Usuario | Diseñar la experiencia e interfaz de usuario: - Crear wireframes y mockups - Definir flujos de navegación - Especificar guías de estilo y componentes UI - Validar accesibilidad y usabilidad | Diseñador UX/UI | TS SP 2.1 (Diseñar el producto o los componentes de producto), TS, SP 3.1 (Establecer criterios de interfaz), VAL, SP 1.1 (Seleccionar productos para validación). |
Validación del Diseño | Revisar y validar el diseño completo: - Realizar revisiones técnicas con el equipo - Verificar cumplimiento de requisitos - Evaluar riesgos técnicos - Aprobar el diseño para implementación | PM / Architecture Owner / Stakeholders | VER, SP 1.2 (Realizar revisiones entre pares), TS, SP 3.2 (Evaluar soluciones alternativas), RD SP 3.4 (Analizar los requisitos para conseguir un equilibrio). |
Documentación | Consolidar toda la documentación de diseño: - Agregar el diseño a la wiki (Matriz RTM, manual de arquitectura, estrategia técnica, MER, MR) | Encargado del diseño / Architecture Owner / Equipo de Desarrollo | TS, SP 2.2 (Establecer un paquete de datos técnicos), CM, SP 1.3 (Crear o liberar líneas base), RD SP 2.2 (Asignar los requisitos de componente de producto). |
📤 Salidas
- Diagramas de arquitectura y componentes.
- Modelo de base de datos.
- Prototipos de interfaz de usuario.
- Matriz de trazabilidad requisitos-diseño.
📎 Recursos relacionados
- Estándar para crear nuevas plantillas
- Definición de Ítems
- Plantilla para procesos
- Proceso de Especificación de Requisitos
📚 Historial de cambios
Versiones
Tipo de versión | Descripción | Fecha | Colaborador |
---|---|---|---|
1.0.0 | Creación inicial del proceso de diseño de software. | 05/06/2025 | Daniel Contreras Chávez |
1.1.0 | Mapeo de prácticas. | 06/06/2025 | Daniel Contreras Chávez |