Arquitectura de Software: Modelos, Vistas y Propuestas Arquitectónicas
Clasificado en Informática
Escrito el en español con un tamaño de 4,12 KB
Modelos de Arquitectura de Software
Introducción a los Modelos
No todo diagrama es un modelo. Un modelo es una representación simplificada de la realidad, manipulable para comprenderla mejor o, idealmente, para realizar predicciones.
Los modelos son requeridos en la arquitectura de software para:
- Dominio (el problema): Representación del problema a resolver.
- Sistema (software y computaciones - la solución): Representación de la solución de software.
- Proceso (para construir el sistema): Representación del proceso de desarrollo.
Es importante notar que las partes interesadas (stakeholders) pueden realizar lecturas diferentes de los modelos, pero estas lecturas deben ser complementarias y, sobre todo, consistentes.
Modelos de Arquitectura
Los modelos de arquitectura describen el sistema en detalle, aunque un detalle excesivo puede ser poco realista. Idealmente, deben describir al menos las piezas mayores:
- Subsistemas
- Capas
- Topologías
- Dependencias tecnológicas y de productos
- Decisiones clave globales (políticas: tolerancia a fallas, balanceo de carga, invocación dinámica, etc.)
Una propiedad clave de los modelos de arquitectura es la trazabilidad.
Noción Fundamental: Trazabilidad
La trazabilidad es la propiedad que permite relacionar una decisión con su justificación e implicaciones. Permite estudiar el impacto de los cambios (forward) y las razones para una acción propuesta (backward).
Los modelos deben proveer información sobre:
- Refinamiento: explicado o aparente
- Niveles de abstracción: mapeables entre sí
Una buena arquitectura cuenta una historia; explica el qué, el cómo y, crucialmente, el porqué. Esto permite tomar decisiones informadas en el futuro.
Vistas Arquitectónicas
Las vistas arquitectónicas representan un aspecto parcial de la arquitectura de software, mostrando propiedades específicas del sistema. Una representación única de toda la arquitectura sería demasiado compleja. Cada vista es una simplificación o abstracción desde una perspectiva específica, que cubre intereses particulares y omite entidades no relevantes.
Elementos Clave de las Vistas
- Punto de vista de los involucrados e intereses de los mismos.
- Elementos que serán capturados y representados en la vista y las relaciones entre estos.
- Forma en que se relacionan los elementos de una vista con otras vistas.
Propuestas Arquitectónicas
Vista Arquitectónica de John Zachman
Matriz de 36 celdas con 6 puntos de vista o perspectivas, desde un alto nivel de abstracción del negocio hasta la implementación.
Vista Arquitectónica de Philippe Kruchten
Modelo “4+1”, vinculado al Rational Unified Process (RUP), que define cuatro vistas diferentes de la arquitectura de software.
Vista Arquitectónica de Grady Booch, James Rumbaugh e Ivar Jacobson (UML)
Esquema de cinco vistas interrelacionadas:
- Vista de casos de uso
- Vista de diseño
- Vista de procesos
- Vista de implementación
- Vista de despliegue
Modelo Booch/OMT: Tres Vistas
1. Vista Estructural
Se centra en la estructura estática del mundo real u objetos y relaciones. Utiliza diagramas de objetos.
2. Vista Dinámica
Se centra en el comportamiento del sistema, acciones en el tiempo. Describe secuencias de interacciones y eventos. Utiliza diagramas de eventos (escenarios), flujo de eventos y estados.
3. Vista Funcional
Se centra en el procesamiento de valores y la dependencia entre valores y funciones. Utiliza diagramas de flujo de datos.
Modelo “4+1” de Kruchten
1. Vista Lógica
Se centra en los requisitos funcionales, abstracciones clave del dominio (objetos/clases). Busca la completitud de requisitos y la síntesis de entidades y funciones.