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.

Entradas relacionadas: