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.