Aplicar análisis y procedimientos de diseño
Este artículo es una aclaración de conceptos sobre análisis y procedimientos de diseño, incluyendo preguntas de examen, componentes clave y etiquetas.
In a Nutshell
El análisis estructura el problema desde el punto de vista técnico y delimita el alcance. El diseño transforma los resultados en una solución técnica con responsabilidades claras, interfaces y objetivos de calidad.
Descripción técnica compacta
Análisis
Objetivo: claridad, testeabilidad, delimitación del sistema.
Artefactos típicos:
- Descripciones de casos de uso
- Diagramas UML
- Glosario
- Criterios de aceptación
Diseño
Objetivo: estructura y procesos viables.
- Modelos estructurales: diagrama de clases
- Modelos de comportamiento: diagramas de secuencia, actividad y estado
- Precisión: precondiciones, postcondiciones, posiblemente OCL
Principios y heurísticas:
- GRASP (por ejemplo, Controller, Creator, Low Coupling, High Cohesion)
- SOLID (SRP, OCP, LSP, ISP, DIP)
Los atributos de calidad (seguridad, rendimiento, confiabilidad) se capturan como requisitos no funcionales y se abordan a través de tácticas arquitectónicas.
Puntos clave relevantes para examen
- Análisis = “¿Qué?”, Diseño = “¿Cómo?”
- Formular criterios de aceptación de manera medible
- Modelar estructura y comportamiento por separado
- GRASP: asignar responsabilidades de forma coherente
- Demostrar SOLID (relevante para IHK)
- Requisitos de calidad como escenarios
- Trazabilidad: requisito → modelo → prueba
- Versionado + aprobaciones
Componentes clave
- Captura de requisitos
- Modelo estructural (diagrama de clases)
- Modelo de comportamiento (secuencia/actividad)
- Modelo de estado (ciclo de vida)
- Precisión (precondiciones/postcondiciones/OCL)
- Principios de diseño (SOLID)
- Responsabilidades (GRASP)
- Patrones (Patterns/patrones arquitectónicos)
- QS (revisiones, prototipos, TDD)
- Trazabilidad
Ejemplo práctico (tienda en línea: pedido)
Análisis:
- Actor: Cliente
- Caso de uso: "Realizar pedido"
- Criterio de aceptación: Pago autorizado -> Pedido creado
Diseño (extracto):
- Clases: Pedido, Carrito, Pago
- Servicio: PedidoService
- Adaptador: AdaptadorServicioPago
- Repositorio: RepositorioPedido
Flujo:
- Calcular suma
- Autorizar pago
- Guardar pedido
- Enviar confirmación
Ventajas y desventajas
Ventajas
- Mejor comunicación
- Mayor testeabilidad
- Menos riesgos de cambios
Desventajas
- Esfuerzo inicial
- Riesgo de sobremodelar
- Disciplina necesaria en mantenimiento y versionado
Preguntas típicas de examen (con respuesta breve)
- ¿Análisis vs. Diseño? El análisis describe qué, el diseño concreta cómo.
- ¿Para qué sirve GRASP? Asignar responsabilidades de forma coherente.
- ¿Para qué sirve SOLID? Mejorar mantenibilidad y testeabilidad.
- ¿Cómo asegurar consistencia entre caso de uso y modelos? Los mensajes en el diagrama de secuencia corresponden a operaciones en el diagrama de clases.
Estrategia de aprendizaje
- Escribir caso de uso y criterios de aceptación.
- Diagrama de secuencia para el escenario principal.
- Asignar responsabilidades (GRASP).
- Validación SOLID + pruebas unitarias.
Continúa en la ruta de aprendizaje SOLID
Todos los artículos SOLID están ahora completos. Volver al primer artículo: Clean Code y principios SOLID.



