Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de Diseño
Página 1 de 20
Introducción .................................................................................................... 2
1. Patrones de arquitectura de software ....................................................... 3
2. El Modelo 4+1 Vistas de la Arquitectura de Software................................ 4
2.1 Explicación del modelo 4+1 vistas ........................................................................... 4
2.2 Diagramas UML ............................................................................................................. 5
Introducción
El Análisis y Diseño Orientado a Objetos (ADOO) es un enfoque de análisis en ingeniería
de software que modela un sistema como un grupo de objetos que interactúan entre sí
(Booch, 2007). Luego de varios enfoques para ADOO, aparece el Lenguaje Unificado de
Modelado (UML) que modela sistemas de software y es ampliamente utilizado. En esta
unidad se desarrollarán diagramas UML para crear una arquitectura de software con
enfoque del modelo 4+1.
El modelo 4+1 es un modelo de vistas (Kruchten, 1995) que encaja con el estándar
ISO/IEC/IEEE 42010: 2011, Ingeniería de sistemas y software - Descripción de la
arquitectura y se utiliza para describir la arquitectura de un sistema de software basado
en el uso de múltiples puntos de vista.
Es muy cierto que los planos de una casa son necesarios para que los cimientos no se
vengan abajo, por ejemplo, por un terremoto. En una casa hay planos para la forma de
esta, el alcantarillado y las conexiones eléctricas, lo que permite que la casa pueda ser
usada correctamente e incluso modificada más adelante.
Un software también necesita planos para ser construido, ya que es la única forma de
poner de acuerdo a los ingenieros que lo fabricarán, garantizar que cumplirá con los
requerimientos del cliente y que funcione correctamente cumpliendo con la calidad
prevista y que pueda ser mantenido en el tiempo. Como los modelos pueden cambiar de
acuerdo a los requerimientos del sistema, necesitaremos basarnos en estilos de
fabricación del software, estilos a los que llamaremos patrones de arquitectura.
• Cliente/servidor
• Modelo vista controlador
• Arquitectura dirigida por eventos
• Programación por N capas
• Pipeline
• Peer-to-peer (de igual a igual)
• Arquitectura orientada a servicios (SOA - Service Oriented Architecture)
• Microservicios
Página 4 de 20
El objetivo de las vistas es que de acuerdo con el perfil del stakeholder se pueda mostrar
aquellos diagramas UML que este pueda comprender, de forma tal que se logre generar
un diálogo entre técnicos y personas que no necesariamente tienen conocimientos
profundos en informática.
Usuario final
Requerimientos
+1
VISTA DE ESCENARIOS
1. Diagrama de casos de uso
Fuente: Phillippe Kruchten. (1995). Planos Arquitectónicos: El Modelo de “4+1” Vistas de la Arquitectura del
Software. Artículo publicado en IEEE Software 12(6), noviembre 1995.
Página 5 de 20
Más adelante, veremos como estas vistas encajan en las perspectivas de los stakeholders
y por qué son útiles los diagramas UML.
3. Vista +1 de escenarios
La vista de escenarios presenta los actores y una descripción de sus casos de uso
asociados, de modo que contiene los requisitos desarrollados en las restantes vistas. De
igual forma, explica los escenarios de calidad más relevantes para la arquitectura. Los
escenarios describen secuencias de interacciones entre objetos y entre procesos. Se
utilizan para identificar y validar el diseño de arquitectura. Esta vista es especialmente
usada por usuarios finales, ejecutivos, gerentes o jefes de proyecto para explicar
simplificadamente cómo funciona el sistema.
Un caso de uso (CU) describe una acción o actividad relacionada con un actor y se
dibujan como elipses. Por ejemplo, la acción “Solicitar libro” es realizada por el actor
“Cliente” tal como muestra el diagrama más abajo. Los casos de uso se conectan
mediante líneas que pueden ser de asociación, extensión, inclusión y generalización.
Los conectores pueden tener estereotipos, que mejoran la lectura de la conexión y se
escriben dentro de signos << y >>.
Página 6 de 20
Extiende (<<extend>>):
4. Vista de procesos
La vista de procesos muestra los aspectos dinámicos del sistema, que explican sus
procesos y cómo se comunican. Se enfoca en el comportamiento del sistema en tiempo de
ejecución, considerando aspectos de concurrencia, distribución, rendimiento o
desempeño, escalabilidad, flujo de trabajo paso a paso de negocio y operación de los
componentes del sistema. Describe los aspectos de concurrencia y sincronización del
diseño. La vista de procesos tiene una perspectiva del diseñador o integrador de sistemas.
PREGUNTA
Un proceso puede ser entendido como un grupo de tareas que forman una unidad
ejecutable. Los procesos pueden ser controlados por acciones como comenzar,
recuperar, reconfigurar, detener, etc.
La simbología para hacer un DA es tan variada que solo te mostraremos un ejemplo. Por
fortuna los DA son muy intuitivos y esta es la principal característica que permite que
sean usados por cualquier persona, para describir casi cualquier cosa. Mira este ejemplo
de una biblioteca.
Página 8 de 20
5. Vista Lógica
La vista lógica (VL) representa la funcionalidad que el sistema proporcionará a los usuarios
finales, es decir, lo que el sistema debe hacer, sus funciones y servicios que ofrece.
Muestra la estructura estática del sistema. Es la descomposición del Modelo Orientado a
Objetos (en caso de que este paradigma sea escogido para la implementación del
sistema). Es recomendable complementar esta vista con un Modelo de Datos o Modelo
Entidad-Relación. La VL es útil para usuarios finales y programadores. La VL utiliza los
diagramas de clases, comunicación y secuencia. Los anteriores diagramas están
especialmente pensados para modelar en Orientación a Objetos y para la POO.
Página 9 de 20
El Diagrama de Clases (DC) permite representar las clases y objetos de un sistema, junto
con su estructura interna. El DC describe las clases y las relaciones entre ellas siendo un
diagrama estático que representa los elementos del sistema sin considerar la
temporalidad de sus acciones. Una clase es una estructura funcional que ofrece acciones a
realizar a través de sus métodos (por ejemplo, “BuscarLibro” en una “Biblioteca”) y que
contiene atributos que son características propias de la clase (por ejemplo, los “Libros” de
la Biblioteca). La clase queda implementada en POO al crear una instancia de la clase u
Objeto.
PREGUNTA
¿Cómo te imaginas que las clases pueden relacionarse unas
con otras?
Síncronos Asíncronos
• Corresponden a llamadas de métodos • Terminan inmediatamente.
del objeto que recibe el mensaje. • Crean un nuevo flujo de ejecución
• El objeto que envía el mensaje queda dentro de la secuencia.
bloqueado hasta que termina la • Se representan con flechas con la
llamada. punta hueca.
• Este tipo de mensajes se representan
con flechas con la punta rellena.
Fuente: Elaboración propia.
Otro aspecto relevante es que el DCO no pone énfasis en el orden de envío y recepción de
los mensajes (ejecuciones de métodos) por lo que solo interesa modelar el paso de
mensajes entre objetos o los roles que entregan las funcionalidades de casos de uso y
operaciones dentro de un escenario de colaboración.
Página 12 de 20
PREGUNTA
¿Cómo mostrar simplificadamente las interacciones entre los
objetos?
El DCO puede modelar escenarios alternativos dentro de casos de uso u operaciones que
involucren la colaboración de diferentes objetos e interacciones.
En el siguiente diagrama se muestran las interacciones simplificadas por medio del DCO
del proceso de venta de un libro
Figura 5. Ejemplo de diagrama de comunicación
para un sistema de compra/venta de libros
6. Vista de desarrollo
La vista de desarrollo (VD) se ocupa de la gestión del software, enfocándose en la
administración de los artefactos de software, y muestra cómo está dividido el sistema, en
sus componentes y las dependencias que hay entre ellos. En la VD se presentará la
organización de los módulos del software puestos en el entorno de desarrollo. El enfoque
de la VD es de la perspectiva del administrador del software y del programador.
Por ejemplo, es lógico pensar que las clases de un sistema de Biblioteca se empaqueten
en una componente que podría llamarse “ComponentesDelDominioBiblioteca”, o que las
clases relacionadas con los accesos a una base de datos estén empaquetados en una
componente llamada “ComponentesDeDatos”. Luego que se han definido las
componentes, estas se pueden incluir en un paquete como se mostrará más adelante en
el Diagrama de paquetes.
PREGUNTA
Para nuestro ejemplo de Biblioteca, podríamos desarrollar 4 componentes: las que son
de tipo gráficas como las ventanas del sistema (suponiendo que es de escritorio),
componentes de negocio (para implementar las reglas del negocio), componentes de
datos (para implementar las clases que accedan a la Base de Datos) y componentes del
dominio de Biblioteca (por ejemplo: Libro, Cliente, Estante, etc.). El DCOMP se vería como
en la siguiente figura:
Página 14 de 20
Un paquete es un contenedor, por lo que puede ser entendido, por ejemplo, como una
carpeta, un proyecto compilado en una .dll de Windows, una .jar de Java, etc. Los DP
suministran una descomposición de la jerarquía lógica de un sistema.
Página 15 de 20
PREGUNTA
¿Por qué crees que es importante la organización de un
software en paquetes?
Los paquetes normalmente se usan para contener dentro de ellos las componentes del
sistema. Veamos cómo quedaría nuestro DP para el sistema de Biblioteca:
Página 16 de 20
7. Vista física
La vista física (VF) muestra la topología de los componentes físicos del sistema, su
comunicación, y las conexiones que conforman la solución y sus servicios. Muestra el
despliegue de la aplicación en la red de computadoras, describe el mapeo del software en
el hardware y refleja los aspectos de distribución. Esta vista representa la perspectiva de
los diseñadores e ingenieros de sistemas y técnicos de soporte.
Página 17 de 20
La capa de datos tiene las componentes de datos que permiten conectarse a la base de
datos Oracle y ejecutar procedimientos almacenados para trabajar con las tablas.
Página 19 de 20
Conclusiones
Como hemos revisado, el modelo 4+1 describe de manera muy completa la arquitectura
de software usando las cinco vistas compatibles, de modo que siempre los integrantes de
los proyectos o stakeholders puedan mantener conversaciones fluidas sobre el propio
sistema.
Cada vista tiene un enfoque con perspectiva en el tipo de persona que lo puede utilizar y
permite establecer un lenguaje común en el proyecto.
Los artefactos son de distintos tipos y pueden ser representados por los símbolos que
tienen cada uno de los diagramas. De esta forma, podemos explicar por medio de planos
la arquitectura de software de un sistema a gran escala.
Dada la complejidad que tienen los sistemas de software, el modelo 4+1 y los diagramas
UML constituyen hoy en día una pieza clave para poder construir grandes sistemas,
repartir tareas y poder poner de acuerdo a todos los integrantes del proyecto.
Página 20 de 20
Referencias bibliográficas
Bass, L., Clements, P. y Kazman, R. (2003). Software Architecture in Practice. Boston:
Addison-Wesley.
Booch, G. (2007). Object-oriented Analysis and Design with Applications. New Jersey:
Addison-Wesley.
Kruchten, P. (1995). The “4+1” View Model of Architecture. IEEE Software, 12(6): 42-50.