03 Jun

Arquitectura de Software: Modelo 4+1

Introducción

El modelo 4+1 describe la arquitectura del software utilizando cinco vistas concurrentes:

Vistas del Modelo 4+1

  1. Vista Lógica: Describe el modelo de objetos del diseño cuando se utiliza un método de diseño orientado a objetos.
  2. Vista de Procesos: Describe los aspectos de concurrencia y sincronización del diseño.
  3. Vista Física: Describe el mapeo del software en el hardware y refleja los aspectos de distribución.
  4. Vista de Desarrollo: Describe la organización estática del software en su entorno de desarrollo.
  5. Escenarios: Ilustran las vistas con un conjunto reducido de casos de uso o escenarios que constituyen la quinta vista.

Elementos de las Vistas

Para cada vista, definimos un conjunto de elementos componentes, contenedores y conectores.

Abstracciones de la Arquitectura del Software

La arquitectura del software se trata de abstracciones de descomposición y composición de estilos y estética. También se relaciona con el diseño y la implementación de la estructura de alto nivel del software.

Vistas Específicas

Vista Lógica

* Apoya principalmente los requisitos funcionales. * El sistema se descompone en abstracciones clave tomadas del dominio del problema en forma de objetos o clases de objetos.

Vista de Procesos

* Considera requisitos no funcionales como rendimiento y disponibilidad. * Se enfoca en asuntos de concurrencia, distribución, integridad del sistema y tolerancia a fallas. * Las tareas son elementos arquitectónicos que pueden manejarse de forma unívoca. * Las tareas adicionales son tareas introducidas localmente por motivos de implementación.

Vista de Desarrollo

* Se centra en la organización real de los módulos de software en el entorno de desarrollo.

Vista Física: Mapeando el Software al Hardware

* Considera requisitos no funcionales como disponibilidad, confiabilidad, rendimiento y escalabilidad.

Escenarios: Todas las Partes Juntas

* Los elementos de las cuatro vistas trabajan juntos mediante el uso de un conjunto de escenarios relevantes. * Los escenarios sirven como guía para descubrir elementos arquitectónicos durante el diseño de la arquitectura. * También se utilizan para validar e ilustrar el diseño de la arquitectura y como punto de partida para las pruebas de un prototipo de la arquitectura.

Correspondencia entre las Vistas

Las distintas vistas no son completamente ortogonales o independientes. Los elementos de una vista están conectados a los elementos de las otras vistas siguiendo ciertas reglas y heurísticas de diseño.

Autonomía, Persistencia, Subordinación y Distribución

Estas son algunas de las consideraciones de diseño que conectan las vistas:

* Autonomía: ¿Los objetos son activos, pasivos o protegidos? * Persistencia: ¿Los objetos son permanentes o temporales? * Subordinación: ¿La existencia o persistencia de un objeto depende de otro objeto? * Distribución: ¿El estado y las operaciones de un objeto son accesibles desde varios nodos de la arquitectura física y desde varios procesos de la arquitectura de procesos?

Enfoques de Diseño

* Inside-out: Comenzando desde la arquitectura lógica, define tareas que multiplexan un único hilo de control entre múltiples objetos activos de una clase. * Outside-in: Comenzando con la arquitectura física, identifica los estímulos externos al sistema y define procesos cliente y servidor. * De la lógica al desarrollo: Una clase generalmente se implementa como un módulo.

Confección del Modelo

No todas las arquitecturas de software requieren las»4+» vistas completas.

Proceso Iterativo

El diseño de la arquitectura es un proceso iterativo que implica bosquejo, organización, especificación y optimización.

Enfoque Dirigido por Escenarios

La funcionalidad más crítica del sistema se captura en forma de escenarios (o casos de uso).

Documentación de la Arquitectura

* Documento de Arquitectura del Software: Sigue las»4+» vistas. * Documento de Guías de Diseño del Software: Captura las decisiones de diseño más importantes.

Stakeholders

Las personas afectadas o que pueden verse afectadas por las actividades de arquitectura de software.

Deja un comentario