Modelo 4+1 de Philippe Kruchten

Philippe Kruchten propuso este modelo para describir la arquitectura de sistemas de software, el cual se dio a conocer a través de un artículo publicado en 1995. A continuación se presenta un resumen del mismo.

El modelo 4+1 va de la mano con el estándar IEEE 1471-2000, que incluye prácticas recomendadas para la descripción de arquitecturas en sistemas de software, basándose en diferentes puntos de vista.

Las cuatro vistas del modelo

Modelo 4+1

1. Vista lógica

Soporta principalmente los requerimientos funcionales, es decir, los servicios que el sistema debería ofrecer a sus usuarios finales.

Notación

Notación Vista Lógica

Estilo: Se usa un enfoque orientado a objetos, manteniendo un modelo de objetos sencillo y coherente, evitando la especialización prematura.

2. Vista de procesos

Incluye aspectos no funcionales como el desempeño y la disponibilidad del sistema. Se centra en la concurrencia, la distribución, la integridad y la tolerancia a fallos.

Notación

Notación Vista de Procesos

Estilo: Se pueden usar estilos como tubos y filtros, cliente-servidor y variantes.

3. Vista física

Describe el mapeo del software en el hardware y cómo está distribuido.

4. Vista de desarrollo

Describe la organización estática del software en su ambiente de desarrollo.

Notación

Notación Vista de Desarrollo

Estilo: Se recomienda definir entre 4 y 6 capas de subsistemas.

5. Escenarios (la vista +1)

Los diseñadores de software pueden organizar la descripción en estas cuatro vistas y luego ilustrarlas con un conjunto reducido de casos de uso o escenarios, que constituyen la quinta vista.

Un modelo de arquitectura

La arquitectura de software se ocupa de definir la estructura de alto nivel del software. Puede expresarse como:

Arquitectura del software = {Elementos, Formas, Motivación / Restricciones}
  • Vista lógica: modelo de objetos y clases.
  • Vista de procesos: concurrencia, sincronización y rendimiento.
  • Vista física: distribución en hardware.
  • Vista de desarrollo: organización del software en el entorno de desarrollo.
  • Escenarios: casos de uso que ilustran las demás vistas.