jueves, 12 de junio de 2014

Modelo 4+1

A veces la arquitectura del sofware tiene secuelas de un diseño del sistema que fue muy lejos en particionar prematuramente el software, o de un enfasis excesivo de algunos de los aspectos del desarrollo del sofware: ingenieria de datos o en eficiencia de ejecucion. A menudo la arquitectura tampoco aborda los intereses de todos sus clientes.

El modelo de 4+1 vistas fue desarrollo para remediar esta problemática. El modelo 4+1 describe la arquitectura del software usando cinco vistas concurrentes. Cada vista se refiere a un conjunto de intereses de diferentes stakeholders del sistema.
  • La vista lógica describe el modelo de objetos del diseño cuando se usa un método de diseño orientado a objetos. Para diseñar una aplicación muy orientada a los datos, se puede usar un enfoque alternativo para desarrollar algún otro tipo de vista lógica, tal como diagramas de entidad-relación.
  • La vista de procesos describe los aspectos de concurrencia y sincronizan del diseño.
  •  La vista física describe el mapeo del software en el hardware y refleja los aspectos de distribución.
  • La vista de desarrollo describe la organización estática del software en su ambiente de desarrollo.

Los diseñadores de software pueden organizar la descripción de sus decisiones de arquitectura en estas cuatro vistas, y luego ilustrarlas con un conjunto reducido de casos de uso o escenarios, los cuales constituyen la quinta vista. La arquitectura evoluciona parcialmente a partir de estos escenarios.

De donde se puede aplicar la formula de Dwayne Perry y Alexander Wolf:

Arquitectura del software = {Elementos, Formas, Motivación/Restricciones}

Para cada vista definimos un conjunto de elementos (componentes, contenedores y conectores), captamos la forma y los patrones con que trabajan, y captamos la justificación y las restricciones, relacionando la arquitectura con algunos de sus requisitos.

Los arquitectos también pueden usar estilos de arquitectura para cada vista, y por lo tanto hacer que coexistan distintos estilos en un mismo sistema.

El modelo de 4+1 vistas es bastante genérico: se puede usar otra notación y herramientas que las aquí descritas, así como también otros métodos de diseño, especialmente para las descomposiciones lógicas y de proceso.

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


Los diseñadores construyen la arquitectura usando varios elementos arquitectónicos elegidos apropiadamente. Estos elementos satisfacen la mayor parte de los requerimientos de funcionalidad y performance del sistema, así como también otros requisitos no funcionales tales como: confiabilidad, escalabilidad,portabilidad y disponibilidad del sistema.



  • Vista de Casos de Uso: que contiene requisitos desarrollados en las restantes vistas.
  • Vista Lógica: La arquitectura lógica apoya principalmente los requisitos funcionales lo que el sistema debe brindar en términos de servicios a sus usuarios. El sistema se descompone en una serie de abstracciones clave, tomadas (principalmente) del dominio del problema en la forma de objetos o clases de objetos. Aquí se aplican los principios de abstracción, encapsulamiento y herencia. Esta descomposición no solo se hace para potenciar el análisis funcional, sino también sirve para idéntica mecanismos y elementos de diseños comunes a diversas partes del sistema.
  • Vista Física: La arquitectura física toma en cuenta primeramente los requisitos no funcionales del sistema tales como la disponibilidad, confiabilidad (tolerancia a fallas), performance (throughput), y escalabilidad. El software ejecuta sobre una red de computadores o nodos de procesamiento (o tan solo nodos). Los variados elementos identificados redes, procesos, tareas y objetos requieren ser mapeados sobre los variados nodos. Esperamos que diferentes configuraciones puedan usarse: algunas para desarrollo y pruebas, otras para emplazar el sistema en varios sitios para distintos usuarios.
  • Vista de Procesos: La arquitectura de procesos toma en cuenta algunos requisitos no funcionales tales como la performance y la disponibilidad. Se enfoca en asuntos de concurrencia y distribución, integridad del sistema, de tolerancia a fallas. La vista de procesos también especiada en cual hilo de control se ejecuta efectivamente una operación de una clase identificada en la vista lógica.
  • Vista de Desarrollo: La vista de desarrollo se centra en la organización real de los módulos de software en el ambiente de desarrollo del software. El software se empaqueta en partes pequeñas bibliotecas de programas o subsistemas que pueden ser desarrollados por uno o un grupo pequeños desarrolladores. Los subsistemas se organizan en una jerarquía de capas, cada una de las cuales brinda una interfaz estrecha y bien definida hacia las capas superiores.


No hay comentarios:

Publicar un comentario