Definición
El proceso mediante el cual se definen la arquitectura, los componentes, las interfaces y otras características de un Sistema o componente.
- Es una actividad creativa
- Implica tomar decisiones que pueden ser trascendentales para el sistema
- Emergente
- No es sinónimo de modelar (pero se construyen modelos)
De los requisitos al diseño y la construcción
Definición de la arquitectura, los componentes y las interfaces de un producto de software. Se analizan los requisitos con el objetivo de producir una descripción de la estructura interna del software
- Arquitectura:
- Organización general
- Estructura
- Componentes:
- Algoritmos
- Estructura de datos internas
- Clases
- Métodos
- Criterios
- Interfaces
- Interacción
- Diálogo
- Datos
- Archivos
- Base de datos
- Colaboración
- Componentes que interactúan para implementar el comportamiento identificado durante el análisis y especificación
Principios clásicos de diseño
- Abstracción
- Cohesión y acople
- Descomposición y modularización
- Encapsulamiento y ocultamiento de la información
- Separación de interfaz e implementación
- Separación de intereses
- concurrencia
- Control y manejo de eventos
- Persistencia de datos
- Distribución de componentes
- Manejo de errores y excepciones
- Tolerancia a fallas
- Interacción y presentación
- Seguridad
Definición
Los patrones son
- Controller
- Creator
- Indirection
- Information expert
- High cohesion
- Low coupling
- Polymorphism
- Protected variation
- Pure fabrication
Transclude of Patrones-de-diseño-(Gang-of-four)#definición
Definición
Single-Responsibility Open-closed Liskov substitution Interface segregation Dependency inversion
Link to original