Fundamentos del Diseño de Software: Arquitectura, UML y Principios OO

Clasificado en Informática

Escrito el en español con un tamaño de 3,41 KB

  • Diseño de Software

    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 Arquitectónicos

    • 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 Orientación a Objetos (OO) y UML

    • 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.

    Tipos Principales de Diagramas UML:
    • Diagrama de Clases: Muestra clases, interfaces y relaciones.
    • Diagrama de Casos de Uso: Describe interacciones entre actores y el sistema.
    • Diagrama 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.

Entradas relacionadas: