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
  • Colaboració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
    Link to original
    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