0% encontró este documento útil (0 votos)
43 vistas45 páginas

Introducción a la Arquitectura de Software

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas45 páginas

Introducción a la Arquitectura de Software

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Unidad 1.

Introducción a la
Arquitectura de Software
 Definición y conceptos básicos de Arquitectura de
Software.
 Notaciones para describir la Arquitectura de Software: el
lenguaje de modelado UML, el modelo 4+1
 El proceso de desarrollo de la Arquitectura de Software.
 Arquitectura y atributos de calidad del sistema.
 Calidad en la arquitectura de software.
Introducción

 La creación de grandes aplicaciones de


software es uno de los retos más importantes
de la Ingeniería de Software de los tiempos
modernos
Actividades básicas de la IS
 Análisis de requerimientos.
 Diseño del producto
 Diseño de alto nivel o Diseño Arquitectónico
 Diseño detallado
 Implementación (codificación) e Integración
 Prueba (producto completo) y Aceptación del
producto.
 Mantenimiento del producto.
Proceso de desarrollo de software
 El subproceso para el desarrollo de la Arquitectura
Software (AS). Punto de vista actual
Diseño arquitectónico.
 Comprende las actividades para el establecimiento de
un marco de trabajo estructural para un sistema
software.

 Establecer la estructura general del software, compuesta


por los componentes y la manera en que éstos
interactúan.
Arquitectura del Software
 Es la estructura del sistema, que incluye los
componentes del software, las propiedades visibles
externamente de esos componentes y las relaciones
entre ellos. (Bass, Clement)

 La Arquitectura de Software es la organización


fundamental de un sistema encarnada en sus
componentes, las relaciones entre ellos y el ambiente y
los principios que orientan su diseño y evolución (Microsoft)
Otras definiciones de Arquitectura software

 Una Arquitectura de software, también denominada Arquitectura


lógica, consiste en un conjunto de patrones y abstracciones
coherentes que proporcionan el marco de referencia necesario para
guiar la construcción del software.

 La vista arquitectónica es una vista abstracta, que aporta el más


alto nivel de comprensión y suprime detalles.
[Clements 1996]
Analogía
Ejemplo

diagrama de paquetes UML con la arquitectura para el sistema


SITFO (aplicación centralizada).
Definición de conceptos básicos
 Componente (concepto convencional)
 Un componente es un elemento funcional de un sistema que
incorpora la lógica de procesamiento, las estructuras internas de
los datos necesarios para implementar dicha lógica y una interfaz
que permita la invocación del componente y el paso de datos.
 Conector
 mecanismo que mediatiza la comunicación, coordinación o
cooperación entre componentes;
 (rpc, protocolos, streams, etc.).
Definición de conceptos básicos

 Configuración
 Estructura organizativa de los componentes.

 Estilo arquitectónico
 Un estilo arquitectónico expresa los componentes
y las relaciones entre ellos, con las limitaciones
de su aplicación, así como la composición y el
diseño de normas asociadas a su construcción.
Estilos de Arq. de Sw
 Indican:
 Los tipos de componentes y conectores involucrados.
 Patrones y restricciones de interconexión o
composición entre ellos
 Invariantes del estilo (restricciones)

 Asociados a cada estilo hay una serie de


propiedades que lo caracterizan
 Determinan sus ventajas e inconvenientes
 Condicionan la elección de uno u otro estilo.
Analogía con los estilos arquitectónicos de
la arquitectura convencional
Definición de conceptos básicos
 Patrón arquitectónico
 El patrón arquitectónico especifica un conjunto predefinido de
componentes con sus responsabilidades y una serie de
recomendaciones para su organización.
Definición de conceptos básicos
 Arquitectura de
referencia
 Una arquitectura
de referencia
proporciona una
plantilla de
solución probada
para la
arquitectura
software de
aplicaciones en
un dominio
particular.
Actividad 1

 Investigar y analizar las diferencias entre los conceptos


de estilo de arquitectura, patrón arquitectónico,
arquitectura de referencia y arquitectura de software.
Colocar la descripción y preferentemente un ejemplo de
cada uno (imagen de un estilo, un patrón, etc.), al final
su análisis sobre las diferencias.
Definición de conceptos básicos
 Proceso
 Conjunto de procedimientos o funciones que tienen
uno o más objetivos.
 Conjunto de actividades sistemáticas que persiguen
un fin. Se amolda a un modelo de proceso.

Modelo de Proceso iterativo e incremental


Notaciones para describir la Arquitectura
del Software
 Existen lenguajes especializados para la descripción de
arquitecturas de software denominados ADL, que expresan la
estructura de las aplicaciones.
 Proporcionan modelos, notaciones y herramientas que permiten describir los
componentes y sus enlaces específicos.
 Se emplean para desarrollar prototipos rápidos y verificación formal de
propiedades.
 Entre algunos:
 ACME
 Aesop
 Artek
 C2
 Darwin
 SADL
 Wright
Notaciones para describir la Arquitectura
del Software
 El lenguaje de modelado UML.
 Es un lenguaje gráfico para visualizar, especificar,
construir y documentar los artefactos de un sistema.

 Proporciona una forma estándar de escribir los planos


de un sistema, cubriendo tanto aspectos
conceptuales, funciones del sistema, como elementos
concretos: clases, esquemas de BD y componentes.
Modelado en UML
Técnica para modelar la Arquitectura del
Software.
Una técnica para el modelado de la Arquitectura del Software se conoce como
El modelo de “4+1” vistas de la Arquitectura del Software. Esta técnica
describe la forma para crear los modelos arquitectónicos, divide al sistema en
cinco vistas concurrentes (Kruchten, 1995):
• Vista Lógica: Describe la estructura estática del
sistema, la abstracción del dominio del problema.
• Vista Física: describe el mapeo de la aplicación
en el hardware (la red de computadoras) y refleja
los aspectos de distribución
• Vista de Procesos: Describe los hilos y procesos
de ejecución así como la comunicación entre estos
(concurrencia y sincronización).
• Vista de Desarrollo: describe la organización
estática del software en su entorno de desarrollo.
• Vista de escenarios: que contiene requisitos
desarrollados en las restantes vistas.
Esta técnica requiere de
un lenguaje de modelado
para elaborar las vistas
 Actividad 2.
 Leer y analizar el artículo del modelo de 4+1 vistas de
Kruchten
El modelo 4+1 vistas de la Arquitectura del Software
Escenarios directos:
 Vista de escenarios E1. Un cuentahabiente consulta el saldo de su(s) cuenta(s).
ud Use Case Model
E2. Un cuentahabiente retira efectivo.

E3. Un cuentahabiente transfiere saldo entre cuenta propias.


tranferir saldo
consultar saldo
entre cuentas E4. Un cuentahabiente transfiere saldo a otras cuentas del mismo
banco.

E5. Un cuentahabiente programa transacciones.


transferir saldo programar
transacciones
otras cuentas E6. Un cuentahabiente paga servicios.

E7. Un cuentahabiente cambia su contraseña.

retirar efectiv o E8. Un cuentahabiente cambia su clave de transacciones.


pagar serv icios

E9. Un cuentahabiente imprime su comprobante de saldo

E10. Un cuentahabiente traspasa efectivo a otros bancos.


cambiar
cambiar cv e
contraseñas
cuentaHabiente
transacciones E11. Cuando un cuentahabiente realiza operaciones sobre sus
cuentas debe iniciar sesión.

E12. Un ejecutivo desbloquea cuentas bancarias.


imprimir
desbloquear ctas
comprobante
E13. Un ejecutivo imprime saldos totales de clientes.

E14. Un ejecutivo visualiza reporte de actividad (en línea y ATM) del


realizar traspasos imprimir saldos cliente.
otros bancos totales por cliente
«include»
E15. Cuando un ejecutivo manipula cuentas bancarias debe iniciar
«include» ej ecutiv o sesión.
v isualizar reporte
Iniciar sesión
«include»
de activ idades
Escenarios indirectos
cliente

E16. Permitir la integración del módulo ejecutivo (SWING) con el


Banco en línea.
Modelo de casos de uso de “Banco en Línea/ATM”
El modelo 4+1 vistas de la Arquitectura
Software
Vista Lógica

ud Data Model2

«architectural»
AdmorUsuarios

comunica

«architectural»
«architectural» AdmorAcceso
AdmorMov imientos

comunica
notifica
«architectural»
AdmorCuentas

Vista lógica de un sistema de venta de Vista lógica del sistema de


boletos Banco en Línea/ATM
Vista lógica del sistema de Banco en
Línea/ATM a nivel caso de uso
El modelo 4+1 vistas de la Arquitectura
Software
Vista de desarrollo Sistema de Banca en Línea
El modelo 4+1 vistas de la Arquitectura
Software
Vista Física o de despliegue Sistema de Banca en Línea
en UML
Vista física o de despliegue
(no en UML)
El modelo 4+1 vistas de la Arquitectura
Software
Vista de procesos
El proceso de desarrollo de la Arquitectura
de Software.

 De manera general, las tareas que se realizan para el


desarrollo de una arquitectura software son:

identificación de los diseño de la arquitectura documentación de la evaluación y validación


requerimientos arquitectura de la arquitectura
arquitectónicos
Actividad 3.

Investigar las propuestas para el proceso de


desarrollo de una arquitectura software para
aplicaciones Web.
Identificación de los requerimientos
arquitectónicos
 La arquitectura de software se encuentra
influenciada por los involucrados o
interesados en el desarrollo del sistema de
software, la organización para la que está
siendo desarrollado, los requerimientos no
funcionales, el ambiente técnico y la
experiencia del arquitecto.
Identificación de los requerimientos
arquitectónicos
 El análisis de requerimientos se realiza considerando
diferentes perspectivas del sistema ( Cliente, usuario,
programador, arquitecto, etc.)
 El documento de requerimientos debe contener
requerimientos funcionales (alto nivel) y requerimientos no
funcionales.
 Una arquitectura de software, está basada de forma muy
importante en requerimientos no funcionales del sistema,
atributos como: desempeño, confiabilidad, seguridad,
facilidad de modificación, facilidad de uso, robustez,
portabilidad, escalabilidad, reutilización, disponibilidad,
etcétera.
El Diseño de la Arquitectura
Decisiones a tomar:
 Analizar si existe una arquitectura genérica que pueda usarse.
 Descomponer el sistema en partes o elementos identificando el
estilo arquitectónico o estilos a aplicar (definir componentes).
 Decidir qué elementos deben subdividirse y qué elementos derivan
de otros.
 Asignar funcionalidad a los elementos.
 Definir estrategias de control global
 Definir protocolos de comunicación y sincronización
 Definir la distribución física de los elementos y su replicación
 Definir una biblioteca de componentes reutilizables en el dominio.
 Elegir lenguajes y herramientas.
Diseño físico de la arquitectura
software
 Toda arquitectura debe ser implementarle en
una arquitectura física, que consiste
simplemente en determinar qué computadora
tendrá asignada cada tarea.
Diseño de la arquitectura

 Al diseñar una arquitectura de software se


debe crear y representar componentes que
interactúen entre ellos y tengan asignadas
tareas específicas, además de organizarlos
de forma tal que se logren los requerimientos
establecidos. Se puede partir con patrones
de soluciones ya probados.
Diseño de la arquitectura

 Estas soluciones probadas se conocen como


estilos arquitectónicos, patrones
arquitectónicos, arquitecturas de referencia y
patrones de diseño, respectivamente de lo
general a lo particular.
Documentación de la arquitectura
 La documentación del diseño de la arquitectura de
software cumple varios propósitos importantes. Entre
ellos están:

• Comunicar a los distintos involucrados el diseño de alto


nivel y las decisiones que permitieron llegar a éste.

• Permitir realizar análisis y evaluación del diseño.

• Soportar las actividades de mantenimiento


Documentación de la arquitectura
 Las estructuras del diseño arquitectural se documentan de forma
separada a través de distintas vistas. Cada vista modela una parte
del diseño arquitectural desde distintas perspectivas que pueden
ser por ejemplo dinámicas, lógicas o físicas.
 Es conveniente usar un enfoque preestablecido que sirve de guía
en la elección y organización de las vistas. Entre algunos:
 El modelo 4+1 vistas de la arquitectura que está asociado a RUP.
 IEEE 1471, es un estándar de la IEEE para la descripción arquitectural de
sistemas complejos.
 Views and Beyond . Enfoque desarrollado por el SEI, establece que la
documentación de la AS involucra la elección de las vistas relevantes de la AS,
emplea plantillas estándar para documentar las vistas, no especifica el número
de vistas a usar.
 Actividad Grupal
 Realizar el documento de arquitectura
software para un ejemplo de un sistema
bancario
Evaluación y validación de la
arquitectura
 ¿Por qué evaluar?
 Entre más temprano se encuentre un problema
mucho mejor
 La evaluación es un mecanismo relativamente barato
para evitar desastres.
 Puede realizarse en etapas tempranas (durante el
diseño y antes de implementarla) y tardías
( implementación de AS terminada).
 Participantes: Equipo de evaluación y stakeholders.
 La evaluación identificará riesgos.
Arquitectura y atributos de calidad del
sistema
 Los atributos de calidad son la base para la
definición de la AS y para su evaluación.
 Pero… simplemente nombrarlos no es
suficiente
 “.. El sistema debe ser robusto”
 “.. El sistema debe ser altamente modificable”
 Existen en el contexto de objetivos
específicos y se deben priorizar.
Calidad en la arquitectura de
software
Principales características de calidad de la norma ISO 9126 ‐1 para
la medición de la calidad del software .
Calidad en la arquitectura de
software
Personalización del estándar del modelo de calidad para la AS
 Funcionalidad. La AS debe tener las suficientes funciones para las

tareas requeridas. Involucra dos aspectos.


 Tener las funcionalidades del sistema identificadas y documentadas.
 Se especifica la arquitectura en función de sus componentes y dicha composición
debe reunir los requisitos funcionales del sistema.

 Precisión. El sistema debe proporcionar resultados correctos, con


grado de precisión necesario.
 Tener identificados a los componentes con las funciones responsables de
cálculos de precisión.
 Tener métrica(s) para medir este aspecto.
Calidad en la arquitectura de
software
 Interoperabilidad. La AS presenta la capacidad de interactuar con
más sistemas.
 Tener identificados los conectores de comunicación con sistemas externos
especificados.
 Establecer si o no se tiene a los componentes middleware correspondientes.

 Seguridad. La AS tiene la capacidad para prevenir el acceso no


autorizado a programas y datos.
 Tener un mecanismo o dispositivo para llevar a cabo esta tarea.
 Establecer si o no, se tiene la presencia del mecanismo o dispositivo.

También podría gustarte