Please enable JavaScript.
Coggle requires JavaScript to display documents.
DISEÑO DE LA ARQUITECTURA DE SOFTWARE - Coggle Diagram
DISEÑO DE LA ARQUITECTURA DE SOFTWARE
Principios de Diseño
Promover la modularidad: dividir el sistema en componentes bien definidos
Mantener interfaces claras y coherentes entre módulos
Buscar alta cohesión y bajo acoplamiento
Aplicar el principio KISS: mantener el diseño simple y comprensible
Evitar la redundancia y priorizar la reutilización de componentes
Diseñar para el cambio: facilitar futuras modificaciones sin afectar la estabilidad
Proceso General de Diseño
Adoptar el enfoque "divide y vencerás" para simplificar la complejidad
Reutilizar soluciones probadas en lugar de reinventarlas
Basar el diseño en la satisfacción de los drivers arquitectónicos
Definir estructuras que soporten los objetivos de calidad del sistema
Iterar entre diseño y validación para garantizar consistencia
Documentar cada decisión arquitectónica y su justificación
Conceptos Fundamentales de Diseño
Patrones arquitectónicos: capas, cliente-servidor, microservicios, tuberías y filtros
Prácticas de diseño: rendimiento, seguridad, escalabilidad, mantenibilidad
Frameworks y librerías reutilizables para agilizar el desarrollo
Componentes comerciales o de código abierto (COTS)
Conceptos de dominio: identificar las entidades y relaciones del sistema
Modelos de vista múltiple: estructural, de comportamiento y de despliegue
Niveles de Diseño
Diseño de la arquitectura: estructura global y componentes principales
Diseño de interfaces: contratos de comunicación entre módulos
Diseño detallado: especificación de las funciones internas de cada módulo
Cada nivel refina y concreta las decisiones del nivel superior
Mantener trazabilidad entre los niveles de diseño
Diseño de Interfaces
Establecer contratos claros entre los componentes del sistema
Definir entradas, salidas y restricciones de cada interfaz
Considerar los drivers arquitectónicos en la definición de interfaces
Garantizar independencia entre módulos mediante abstracciones
Promover la interoperabilidad entre sistemas y servicios
Utilizar el diseño de interfaces como base para la verificación y pruebas
Métodos de Diseño de Arquitectura
ADD (Attribute-Driven Design)
Basado en atributos de calidad y drivers arquitectónicos
Divide el sistema en módulos según los requerimientos clave
ACDM (Architecture-Centered Design Method)
Se enfoca en el diseño incremental de la arquitectura
Apoya decisiones mediante documentación y validación continua
Método de Rozanski y Woods
Propone vistas arquitectónicas para analizar el sistema desde múltiples perspectivas
Integra diseño, documentación y evaluación
Comparación general
Los tres métodos buscan guiar el diseño estructurado de la arquitectura
Se diferencian por su nivel de detalle, enfoque y técnica de validación