•  Diseño: Es el proceso de definir la estructura, componentes e interfaces de un sistema o componente, junto con el resultado de este proceso.
    Objetivo del Diseño: Especificar cómo se comunican los componentes dentro de una arquitectura, utilizando interfaces para ocultar la implementación.Niveles de diseño:
    Arquitectónico: Organiza y descompone el sistema en componentes de alto nivel.Detallado: Define el comportamiento y detalles de los componentes.
    Principios de Diseño --->Abstracción: Identifica lo esencial de un fenómeno, ignorando detalles irrelevantes.
    Descomposición y Modularidad: Divide el sistema en partes manejables y define interfaces claras.
    Acoplamiento y Cohesión: Busca un acoplamiento débil entre módulos y alta cohesión dentro de cada módulo.
    Encapsulamiento: Oculta la implementación interna de un componente.
    Separación de Interfaz e Implementación: Define interfaces claras entre componentes.
    Suficiencia, Completitud y Sencillez: Los diseños deben ser completos pero no excesivamente complejos.
  • Estilos arquitectonicos: Filtro-Tubería: Proceso de transformación de datos en una secuencia de etapas;Capas: Organización jerárquica de componentes en capas;Sistemas Distribuidos: Divide la funcionalidad entre procesos distribuidos.
    • Conceptos de OO: Abstracción, herencia, encapsulamiento y polimorfismo.
      UML (Unified Modeling Language): Estándar para modelar sistemas software.
      UML: Modelos y Tipos de Diagramas
      Modelo en UML: Es una abstracción del sistema del mundo real, capturando aspectos relevantes para un propósito específico.
      Los tipos principales de diagramas UML incluyen:

      Diagrama de Clases: Muestra clases, interfaces y relaciones.Diagrama de Casos de Uso: Describe interacciones entre actores y el sistemaDiagrama de Secuencias: Representa interacciones entre objetos en secuencia temporal.Diagrama de Actividad: Muestra flujo de control o proceso paso a paso.Diagrama de Estados: Describe estados y transiciones de un objeto.Diagrama de Componentes: Ilustra componentes físicos del sistema y sus relaciones.Diagrama de Paquetes: Organiza elementos en grupos lógicos o de namespaces.Diagrama de Despliegue: Muestra la arquitectura física y distribución de componentes en hardware.
      Principios de Diseño Orientado a Objetos:
      Abierto-Cerrado, Responsabilidad Única, Separación de Interfaz, Sustitución de Liskov: Lograr un bajo acoplamiento y alta cohesión

      Evaluación y Métricas en el Diseño:Importancia de la Evaluación: Comparar diseños y establecer criterios de calidad.Métricas: Cohesión, Acoplamiento y otras medidas para evaluar la complejidad del diseño.