Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DSI 3K3 - Diseño Arquitectónico 2021
DSI 3K3 - Diseño Arquitectónico 2021
de
Capa ración
inist
Adm dato s
5
de
de
Capa n
ració
inist
Adm datos
de
Diseño Arquitectónico
Importancia de documentar la Arquitectura
● Permite la comunicación entre todas las partes (participantes)
interesadas en el desarrollo de un sistema de cómputo.
● Destaca las decisiones iniciales relacionadas con el diseño que
tendrán impacto en todo el trabajo de ingeniería de software
que sigue.
● Constituye un modelo relativamente pequeño e
intelectualmente comprensible de cómo está estructurado el
sistema y cómo trabajan juntos sus componentes.
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 7
Diseño Arquitectónico
● La arquitectura de un sistema de software puede basarse en un patrón o
estilo arquitectónico particular.
Estilo Arquitectónico
• Es una transformación que se impone al diseño de todo el sistema
• El objetivo es establecer una estructura para todos los componentes del sistema.
Patrón Arquitectónico
• El alcance del patrón es menos amplio y se centra en un aspecto de la arquitectura
más que en el total de ésta.
• Describe la manera en la que el software manejará ciertos aspectos de su
funcionalidad en el nivel de la infraestructura.
• Tiende a abocarse a aspectos específicos del comportamiento en el contexto de la
arquitectura
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 10
Diseño Arquitectónico
Proceso de diseño arquitectónico
● Un patrón arquitectónico es una descripción de una organización del
sistema que ha tenido éxito.
● Un patrón arquitectónico cubre las preguntas 4 a 6 anteriores:
○ Debe elegirse la estructura más adecuada para satisfacer los
requerimientos.
○ Modelos Centralizados:
Diseño Arquitectónico
Proceso de diseño arquitectónico
● La salida del proceso de diseño arquitectónico consiste
en un modelo arquitectónico que describe la forma en
que se organiza el sistema como un conjunto de
componentes en comunicación.
● Describe cómo se estructura el sistema en subsistemas y
cómo cada subsistema se estructura en componentes.
Sistema Subsistema Componente
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 13
Validación
Requerimientos
Determinar Requerimientos
Funcionales
Requerimientos de la
de la Arquitectura
Arquitectura
Requerimientos
de los
Stakeholders
Ejemplo
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 23
Requerimientos
de la
Arquitectura
Elegir el Framework
(Patrones
Arquitectónicos)
Distribuir
Componentes
Vistas de la Documento
Arquitectura de
Arquitectura
Arquitecturas de Software
• De Repositorio
Patrones • Messaging • Tubería y Filtro
Arquitectónicos • Publishe-Suscribe • Lote-Secuencial
más utilizados • Broker
• Process Cordinator
• Cliente-Servidor
Patrones para • Master-Slave
Arquitecturas • Cliente-Servidor & N-Tier
distribuidas • Peer-to-Peer
• Map Reduce
Arquitecturas de • Genéricos
Dominio Específico • De referencia
• Cliente-Servidor
Arquitecturas de • Espejada
Hardware • Rack
• Farm (granja de servidores)
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 27
Vistas de la Arquitectura
Vistas 4 + 1 - Philippe Krutchen
● La publicación de Krutchen presenta una forma de describir y
comprender la arquitectura basada en las siguientes cuatro
vistas:
o Vista Lógica
o Vista de Procesos
o Vista Física
o Vista de Desarrollo
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 31
Vistas de la Arquitectura
Vistas 4 + 1 - Philippe Krutchen
o Vista Lógica: Describe los elementos significativos arquitectónicamente y
las relaciones entre ellos. Esencialmente captura la estructura de la
aplicación utilizando diagramas de clases o equivalentes.
Vistas de la Arquitectura
Vistas 4 + 1 - Philippe Krutchen
o Vista Física (Implementación): Describe cómo se mapean los principales
procesos y componentes en los nodos de hardware. Podría mostrar, por
ej., cómo los servidores Web y de Base de Datos para una aplicación son
distribuidos a través de un número de equipos servidores.
Vistas de la Arquitectura
Vistas 4 + 1 - Philippe Krutchen
● Estas cuatro vistas están unidas por los casos de uso
arquitectónicamente significativos.
● Estos casos de uso básicamente capturan los requerimientos
para la arquitectura, de ahí que estén relacionados con más de
una vista particular.
Vistas de la Arquitectura
Vistas 4 + 1 - Philippe Krutchen
● Utilizaremos algunos de los diagramas provistos por UML 2.0 para
representar las vistas arquitectónicas más significativas.
○ Diagramas de Casos de Uso
○ Diagramas de Estructura Compuesta
○ Diagrama de Despliegue
○ Se pueden utilizar también diagramas de clases pero sin entrar en detalles
innecesarios a nivel del diseño arquitectónico y diagramas de secuencia para
modelar el comportamiento de los componentes en una arquitectura.
Vistas de la Arquitectura
Vistas 4 + 1 - Philippe Krutchen
● Vistas de la arquitectura:
○ Vista Arquitectónica de la Funcionalidad: Casos de Uso significativos
para la Arquitectura
Diagrama de Casos de Uso
■ Niveles de Hardware
Diagrama de Despliegue
Ejemplo 36
DSI - 3K3 - Diseño Arquitectónico (Unidad 3)
Fuente: Hofmeister, Nord, and Soni, “Applied Software Architecture”. Addison-Wesley, Boston, 2000.
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 37
Validar la Arquitectura
● Durante el proceso de arquitectura, el objetivo de la fase de
validación es aumentar la confianza del equipo de diseño de
que la arquitectura es apta para su propósito.
Validar la Arquitectura
● Hay dos técnicas principales que se pueden aplicar:
○ Prueba manual de la arquitectura usando escenarios de prueba.
○ Construcción de un prototipo simple de la aplicación deseada, de modo
que su capacidad para satisfacer los requisitos pueda evaluarse con
más detalle a través de pruebas de prototipos.
Patrones arquitectónicos
Arquitectura en Capas (Layered style)
● Las propiedades clave de este patrón son:
Separación de intereses: La funcionalidad del sistema está
organizada en capas separadas y cada una se apoya sólo en los
servicios ofrecidos por la capa ubicada debajo de ella.
Capa 2
Capa 1
Capa 0
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 50
Vistas de la
Arquitectura de
Siemens
● Cuándo se utiliza?
○ Al construirse nuevas facilidades sobre sistemas existentes.
○ Cuando el desarrollo se distribuye a través de distintos equipos
de trabajo (cada uno responsable de una capa de funcionalidad).
○ Cuando existe un requerimiento de seguridad multinivel.
Interfaz de Usuario
Capa de Presentación
Lógica de Negocio/
Funcionalidad de la aplicación
Capa de Administración
de datos
Soporte del sistema
(SO, base de datos, etc)
● Desventajas:
○ Difícil hacer separación limpia entre capas.
○ El rendimiento se afecta por los múltiples niveles de
interpretación.
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 55
Recuperación de
Búsqueda distribuida Documentos Gestor de derechos Contabilidad
Índice de Biblioteca
Queue
Client Server
Manejo de Si un cliente se está comunicando con una cola que falla, puede
Fallas encontrar una réplica de la cola y colocar el mensaje allí.
“Messaging” es inherentemente libre de acoplamientos y promueve la
alta cambiabilidad ya que clientes y servidores no están directamente
sujetos a través de una interfaz. Cambiar el formato de los mensajes
Cambiabilidad enviados por los clientes pueden causar cambios en las
implementaciones de los servidores. Los formatos de mensajes
autodefinidos pueden ayudar a reducir esta dependencia.
Servicio de
Componente
Cola Correo
Notificador
electrónico
Intimación
Escribir correo
electrónico para Consumir correo
contribuyente electrónico
(*) Relación:
Vistas de la
Arquitectura de
Siemens
Consultas
de saldo Servicio de notificaciones
por correo electrónico
Gestión de Tópico
Compras
Servicio de notificaciones
por celular
Gestión de Generación de avisos
Novedades
inPort 1 OutPort 1
Sender-1 Receiver-1
Broker
Sender-2 inPort 2
Receiver-2
OutPort 2
Puertos Puertos
Sistema de de entrada de salida Generador
reconocimiento
de reportes
interactivo de voz
Almacenamiento
Captura de
RIS
(protocolo
formato texto
imágenes HL7)
Almacenamiento
de imágenes
BD Pacientes (distintos formatos)
Y consultas
Almacenamiento
de sonido
(distintos formatos)
Remitentes Broker Receptores
Paso 4
Paso 1 Paso 2 Paso 3
Start process
Sistema Bancario Process result
request
Gestión de
Préstamos
Paso 4
Paso 1 Paso 2 Paso 3
Patrones arquitectónicos -
Arquitectura de Repositorio (Modelo Centrado)
● La mayoría de los sistemas con grandes cantidades de
datos se organizan sobre una base de datos o repositorio
compartido.
● Es un modelo adecuado para aplicaciones en que un
componente genere datos y otro los use.
Componente Componente
de software de software
Almacén de datos
Componente Componente
de software de software
Patrones arquitectónicos -
Arquitectura de Repositorio (Modelo Centrado)
● También se lo conoce como “Modelo Centrado” (model-
centered)
● Describe una arquitectura en la cual componentes
independientes interactúan con un modelo central, en
lugar de interactuar con cada uno de los otros.
● Aplica a elementos de ejecución, es parte del tipo de vista de Ejecución (*)
(*) Relación:
Vistas de la
Arquitectura de
Siemens
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 80
Editores Generadores
Editor
UML de código
Java
Analizador Generador
de Diseño de Reportes
Arquitectura MVC(Modelo-Vista-Controlador)
● Descripción: Separa presentación e interacción de los datos del
sistema. El sistema se estructura en tres componentes lógicos que
interactúan entre sí:
○ Modelo: Maneja los datos del sistema y las operaciones asociadas a esos
datos.
Arquitectura MVC(Modelo-Vista-Controlador)
● Cuándo se utiliza?
○ Se usa cuando existen múltiples formas de ver e interactuar con los datos.
• Un componente “modelo”
• Un componente que recibe notificaciones
de actualizaciones del modelo: “vista”
• Un componente que actualiza el modelo:
“controlador”
• Un componente que hace ambas cosas:
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) “vista/controlador” 85
Arquitectura MVC(Modelo-Vista-Controlador)
● Ventajas:
○ Permite que los datos cambien independiente-mente de su
representación y viceversa.
○ Soporta en diferentes formas la presentación de los mismos
datos.
○ Los cambios en una representación se muestran en todos ellos.
● Desventajas:
○ Puede implicar código adicional y complejidad en el código
cuando el modelo de datos y las interacciones son simples.
Patrones arquitectónicos
Arquitectura de tubería y filtro (pipe and filter)
● Descripción del patrón: El procesamiento de datos en un sistema se
organiza de forma que cada componente de procesamiento (filtro) sea
discreto y realice un tipo de transformación de datos. Los datos fluyen
(como en una tubería) de un componente a otro para su procesamiento.
● Cuándo se utiliza?
○ En aplicaciones de procesamiento de datos (tanto basadas en lotes –
batch- como en transacciones) donde las entradas se procesan en
etapas separadas para generar salidas relacionadas.
● Aplica a elementos de ejecución, es parte del tipo de vista de Ejecución (*)
(*) Relación:
Vistas de la
Arquitectura de
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) Siemens 87
Patrones arquitectónicos
Arquitectura Lote-Secuencial (Batch-Sequential)
● Descripción del patrón:
○ En la arquitectura batch-sequential los datos fluyen de una etapa a otra
y se procesan incrementalmente.
○ A diferencia de la arquitectura “tubería y filtro” cada etapa completa la
totalidad de su procesamiento antes de escribir su salida.
○ Los datos pueden fluir entre etapas en una “corriente” pero más a
menudo son escritos en un archivo en disco.
○ Los componentes de procesamiento son llamados con diferentes
nombres: etapas o pasos. No hay un nombre estándar para los
conectores en entre etapas. Una tarea simple que fluye a través de un
sistema batch-sequential es llamada batch (lote) o job (trabajo).
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 91
(*) Relación:
Vistas de la
Arquitectura de
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) Siemens 92
Arquitecturas Distribuidas
● Un sistema distribuido es “..una colección de computadoras
independientes que aparecen al usuario como un solo sistema
coherente..” (Tanenbaun y Van Steen -2007)
Patrones arquitectónicos
Arquitectura Cliente-Servidor
● Propiedades clave del patrón
Arquitectura Cliente-Servidor
● Propiedades clave del patrón:
○ Los clientes acceden a servicios que proporciona un servidor a través de
llamadas a procedimiento remoto usando un protocolo de solicitud-
respuesta (como el protocolo “http” utilizado en WWW)
(*) Relación:
Vistas de la
Arquitectura de
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) Siemens 96
Arquitectura Cliente-Servidor
● Esquema:
Caso de un servidor conectado con dos clientes. Los clientes pueden iniciar la
comunicación pero no el servidor. El servidor no conoce la identidad de los
clientes hasta que se conectan.
Arquitectura Cliente-Servidor
● Esquema:
c3 c4
c2 c12
S1 S4 c11
c1
c10
S3
S2
c5
c9
c6 c7 c8
Proceso Cliente c
Proceso Servidor S
DSI - 3K3 - Diseño Arquitectónico (Unidad 3) 98
Arquitectura Cliente-Servidor
● Arquitectura cliente-servidor y su distribución en el hardware:
c1 s1,s2 c2 c3,c4
cc1 cs1 cc2 cc3
Red
Arquitectura Cliente-Servidor
● Descripción: En una arquitectura cliente-servidor la funcionalidad del
sistema se organiza en servicios, y cada servicio entrega un servicio
independiente. Los clientes son usuarios de dichos servicios y para
utilizarlos ingresan a los servidores.
● Cuando se utiliza:
○ Cuando desde varias ubicaciones se tiene que ingresasr a los
datos en una base de datos compartida.
○ Cuando la carga de un sistema es variable, ya que los servidores
se pueden replicar.
Arquitectura Cliente-Servidor
● Ventajas:
○ La principal ventaja es que los servidores se pueden distribuir a
través de una red.
○ La funcionalidad general está disponible para todos los clientes,
asique no necesita implementarse en todos los servicios.
○ Es fácil agregar un nuevo servidor e integrarlo o actualizar los
servidores sin afectar las otras partes del sistema.
○ Aprovecha la disponibilidad de redes cada vez más veloces.
Arquitectura Cliente-Servidor
● Desventajas:
○ Cada servicio es un solo punto de falla susceptible a ataques de
rechazo de servicio o fallas del servidor.
○ El rendimiento es impredecible porque depende de la red así
como del sistema.
○ No existe un modelo compartido de datos, lo que complica las
tareas de administración de datos, respaldo y recuperación.
Arquitectura Cliente-Servidor
● Ejemplo:
Cliente 1 Cliente 2 Cliente 3 Cliente 4
Internet
(Guía de Estudio)
Web
Server
Application
Server
Databases
Arquitecturas de Hardware
● Cliente-Servidor
● Espejada
● Rack
● Farm (granja de servidores)
● (Guía de Estudio)
Bibliografía
• Sommerville Ian, “Ingeniería de Software” 9ta. Ed. (2011), Ed. Addison
Wesley.
• Pressman Roger, “ Ingeniería del software – Un enfoque práctico”, séptima
edición (2010), Mc Graw Hill
• Gorton Ian, “Essential Software Architecture” (2006), Springer.
• Fairbanks George, “Just Enough Software Software Architecture”, (2010), Ed.
Marshall & Brainerd.
• Essentials of IBM Rational Requisite Pro V.7.0, Student Manual, Octubre 2006.
• Hofmeister Christine, Kruchten Philippe, Nord Robert L., Obbink Henk, Ran
Alexander, America Pierre – Artículo: “A general model of software
architecture design derived from five industrial approaches” - The Journal of
Systems and Software Volume 80 (2007).