Arquitectura de Software: Conceptos Fundamentales y Vistas Esenciales

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,46 KB

Noción Fundamental de Arquitectura

Conceptos Clave en Arquitectura

Trazabilidad: Propiedad de un modelo que permite relacionar una decisión con su justificación e implicaciones.

Permite estudiar el impacto de cambios (forward) y las razones para una acción propuesta (backward). Los modelos deben proveer información.

Refinamiento: Explicado o aparente.

Niveles de Abstracción: Mapeables entre sí. Una buena arquitectura "cuenta una historia":

  • Explicar no solo el qué y el cómo, sino el porqué.
  • Permite tomar decisiones informadas a futuro.

Vistas Arquitectónicas

Las vistas arquitectónicas representan un aspecto parcial de una arquitectura de software que muestran propiedades específicas del sistema.

La representación única de la arquitectura del sistema resultaría demasiado compleja, pues contendría mucha información.

Son una descripción simplificada o abstracción de un sistema desde una perspectiva específica, que cubre intereses particulares y omite entidades no relevantes a esta perspectiva.

Cada vista representa un comportamiento particular del sistema.

Modelos de Vistas Arquitectónicas

Vista Arquitectónica de John Zachman

Matriz de 36 celdas que incluye 6 puntos de vista o perspectivas, iniciando desde un nivel alto de abstracción del negocio y llegando hasta el de implementación.

Vista Arquitectónica de Philippe Kruchten (Modelo "4+1")

Propuso el modelo "4+1", vinculado al Rational Unified Process (RUP), que define cuatro vistas diferentes de la arquitectura de software.

Vistas de UML

En la introducción a UML, se formuló un esquema de cinco vistas interrelacionadas que conforman la arquitectura de software:

  • Vista de Casos de Uso
  • Vista de Diseño
  • Vista de Procesos
  • Vista de Implementación
  • Vista de Despliegue

Detalle de las Vistas del Modelo "4+1" de Kruchten

Vista Lógica

En esta vista se representa la funcionalidad que el sistema proporcionará a los usuarios finales. Es decir, se ha de representar lo que el sistema debe hacer, y las funciones y servicios que ofrece. Para completar la documentación de esta vista se pueden incluir los diagramas de clases, de comunicación o de secuencia de UML.

Vista de Implementación (o Desarrollo)

En esta vista se muestra el sistema desde la perspectiva de un programador y se ocupa de la gestión del software; o, en otras palabras, se va a mostrar cómo está dividido el sistema software en componentes y las dependencias que hay entre esos componentes. Para completar la documentación de esta vista se pueden incluir los diagramas de componentes y de paquetes de UML.

Vista de Procesos

En esta vista se muestran los procesos que hay en el sistema y la forma en la que se comunican estos procesos; es decir, se representa desde la perspectiva de un integrador de sistemas, el flujo de trabajo paso a paso de negocio y operacionales de los componentes que conforman el sistema. Para completar la documentación de esta vista se puede incluir el diagrama de actividad de UML.

Vista de Despliegue (o Física)

En esta vista se muestra desde la perspectiva de un ingeniero de sistemas todos los componentes físicos del sistema, así como las conexiones físicas entre esos componentes que conforman la solución (incluyendo los servicios). Para completar la documentación de esta vista se puede incluir el diagrama de despliegue de UML.

Vista de Escenarios ("+1")

Esta vista va a ser representada por los casos de uso de software y va a tener la función de unir y relacionar las otras 4 vistas. Esto quiere decir que desde un caso de uso podemos ver cómo se van ligando las otras 4 vistas, con lo que tendremos una trazabilidad de componentes, clases, equipos, paquetes, etc., para realizar cada caso de uso. Para completar la documentación de esta vista se pueden incluir los diagramas de casos de uso de UML.

Entradas relacionadas: