Top Banner
CALIDAD DE SISTEMAS DE INFORMACIÓN WEB Introducción a los métodos de evaluación de arquitecturas
16

Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Dec 16, 2018

Download

Documents

dinhliem
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

CALIDAD DE SISTEMAS DE INFORMACIÓN WEB

Introducción a los métodos de evaluación de arquitecturas

Page 2: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Contenido de la Sesión Inicial

• Introducción a la evaluación de arquitecturas software

– Arquitecturas software

– Patrones arquitectónicos

– Calidad en Arquitecturas Software

– Evaluación de arquitecturas

• Entrenamiento para el trabajo practico. Métodos de Evaluación de arquitecturas:

– Architectural Tradeoff Analysis Method

– Quality-Driven Architectural Improvement

Evaluación de Arquitecturas Software 2

Page 3: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Arquitecturas

• La arquitectura es a grandes rasgos la partición prudente de un todo en partes, con relaciones específicas entre esas partes

– Esta partición es la que permite a grupos de personas, a menudo separadas por organizaciones, zonas geográficas e incluso zonas horarias trabajar de manera cooperativa y productiva para resolver un problema mucho más grande del que cualquiera de ellos podría resolver individualmente.

Evaluación de Arquitecturas Software 3

Arquitecturas software - Definición - Vistas Arquitectónicas - Lenguajes de Modelado Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 4: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Arquitectura Software

• Bass, Clements, y Kazman, 1998: Las arquitecturas software son la estructura o estructuras de un sistema, que comprende los elementos software, las propiedades visibles de esos elementos y sus relaciones. Por “propiedades visibles “ nos referimos a las asunciones que otros componentes pueden hacer acerca de un determinado componente, como los servicios que provee, las características de rendimiento, manejo de errores, uso de recursos compartidos etc. [Bass 98].

• Garlan y Perry, 1995: La estructura de los componentes de un sistema/programa, sus relaciones, principios y guías que rigen su diseño y evolución a lo largo del tiempo [Garlan 95].

4 Evaluación de Arquitecturas Software

Arquitecturas software - Definición - Vistas Arquitectónicas - Lenguajes de Modelado Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 5: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Como Modelar Arquitecturas: Vistas Arquitectónicas

• Las arquitecturas software, al igual que se hace con la arquitectura de un edificio, se suelen expresar utilizando diferentes vistas:

– Modular

– Componente Conector

– Despliegue

Evaluación de Arquitecturas Software 5

Arquitecturas software - Definición - Vistas Arquitectónicas - Lenguajes de Modelado Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 6: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Lenguajes de Modelado de Arquitecturas

• Se han presentado múltiples notaciones formales y lenguajes para representar arquitecturas:

– UML: Es un estándar para el modelado que puede ser utilizado para la describir arquitectura, aunque sus abstracciones en ocasiones no son el mejor camino para representar una arquitectura.

– SysML: Aunque se trata de un lenguaje de modelado de sistemas (hardware & software), SysML provee de las abstracciones necesarias para especificar las vistas diferentes vistas de la arquitectura.

– AADL: Es un lenguaje de especificación de arquitecturas que provee de una sintaxis textual y un DSL para la descripción de arquitecturas. Permite especificar todas las vistas de la arquitectura así como modelar y analizar otros aspectos relacionados con la calidad de arquitectura como el análisis de fallos o el análisis de tiempo de respuesta.

Evaluación de Arquitecturas Software 6

Arquitecturas software - Definición - Vistas Arquitectónicas - Lenguajes de Modelado Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 7: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Patrones Arquitectónicos 1/3

• Patrones arquitectónicos: describen soluciones a problemas comunes y recurrentes en las arquitecturas software. Son un medio de mejorar ciertos atributos de calidad como flexibilidad, modularidad, fiabilidad etc. en el sistema en la arquitectura en la que se aplican.

• Hay ejemplos de patrones para mejorar la mantenibilidad y modularidad de un sistema como pueda ser el patrón de capas

Evaluación de Arquitecturas Software 7

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Product Architecture

Page 8: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Patrones Arquitectónicos 2/3

• Los patrones arquitectónicos se suelen especificar utilizando plantillas:

• La plantilla suele contener:

– Contexto: Contexto en el que se suele aplicar el patrón

– Problema: Problema arquitectónico que resuelve

– Solución (Estructura del patrón): Que cambios va a realizar sobre la arquitectura.

• En algunos casos se especifican mostrando el “antes” y el “después”

– Consecuencias:

• Beneficios: Que nos ayuda a mejorar este patrón

• Carencias: Que nuevos problemas o riesgos puede implicar la aplicación del patrón

Evaluación de Arquitecturas Software 8

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 9: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Patrones Arquitectónicos 3/3

• Contexto

– Diseño de aplicaciones que necesitan exponer parte de la funcionalidad o consumir servicios de otras aplicaciones o tener distintos niveles de abstracción

• Problema – En algunos sistemas necesitamos portabilidad a otras plataformas o exportar servicios

del core de nuestra aplicación a otras aplicaciones cliente. – En un sistema en el que los conceptos abstractos de un dominio deben ser

implementados en términos de un dominio mas concreto.

• Estructura del Patrón

• Consecuencias – Mejora la modificabilidad y la adaptabilidad de la aplicación – En algunos casos algunas capas deben ser descompuestas de nuevo en capas para

disminuir su complejidad

9 Evaluación de Arquitecturas Software

Product Architecture

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 10: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Calidad en arquitecturas software 1/2

• Las arquitecturas software es el mecanismo que nos permiten asegurar (o alcanzar) determinados atributos de calidad como rendimiento, fiabilidad o seguridad.

• Por ejemplo si en nuestra arquitectura necesitamos prestaciones deberemos:

– Explotar el paralelismo, descomponiendo el trabajo en distintos procesos que pueden ejecutarse en paralelo y cooperar entre ellos

– Mejorar la comunicación entre procesos y las comunicaciones, mejorando el volumen de la red y la frecuencia de acceso a los datos

– Ser capaces de estimar la latencia y el rendimiento – Identificar los cuellos de botella

• Los requisitos de atributos de calidad son las principales guías para el diseño de la arquitectura.

• Además la arquitectura software nos puede ayudar a predecir la calidad del sistema en desarrollo

Evaluación de Arquitecturas Software 10

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 11: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Calidad en arquitecturas software 2/2

• La medida en que un sistema alcance sus requisitos de atributos de calidad depende de las decisiones a nivel arquitectónico.

• Las estrategias para alcanzar atributos de calidad son principalmente arquitectónicas, pero es importante entender, que la arquitectura por si sola no puede garantizar la funcionalidad o la calidad.

– Unas decisiones de diseño o implementación incorrectas pueden siempre socavar un buen diseño arquitectónico.

– Decisiones en cualquier fase del ciclo de vida -desde el diseño de alto nivel hasta la codificación e implementación- afectaran a la calidad del sistema. Por ello la calidad no es únicamente función del diseño arquitectónico.

– Para asegurar la calidad, una buena arquitectura es necesaria pero no suficiente.

11 Evaluación de Arquitecturas Software

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 12: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Evaluación de arquitecturas software 1/3

• La arquitectura va a permitirnos o no alcanzar determinados atributos de calidad que van a significar el éxito o el fracaso de un proyecto por lo que su evaluación en etapas tempranas es critica.

• Es posible verificar las decisiones arquitectónicas apropiadas sin tener que esperar a que el sistema este desarrollado y desplegado.

– Es decir podremos predecir a priori si el sistema tendrá los atributos de calidad requeridos.

• El objetivo es determinar el grado en que una arquitectura software o un estilo arquitectónico satisface los requisitos de calidad requeridos.

• En algunos casos ha permitido el ahorro de sumas millonarias al detectar que el sistema en desarrollo no podría alcanzar los requisitos de calidad necesarios y se abandonó el proyecto cuando aun se estaba a tiempo.

12 Evaluación de Arquitecturas Software

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 13: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Evaluación de arquitecturas software 2/3

• Deberemos asegurarnos que la arquitectura seleccionada en un proyecto software es la adecuada para nuestras necesidades – Si las decisiones arquitectónicas determinan los atributos de calidad

del sistema, entonces debemos evaluar estas decisiones en relación a su impacto en estos atributos de calidad.

• Cuanto antes encontremos un problema en un proyecto software mas barato será corregirlo – Si predecimos los impactos de una decisión de diseño y escogemos

la opción adecuada para nuestro proyecto vamos a abaratar el proyecto y a obtener exactamente la arquitectura que necesitamos.

• El mero hecho de llevar a cabo una evaluación de la arquitectura fuerza a los arquitectos y desarrolladores a documentar, analizar y entender la arquitectura.

Evaluación de Arquitecturas Software 13

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 14: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Evaluación de Arquitecturas Software 3/3

• Se han definido en los últimos años distintos métodos de evaluación de arquitecturas como el ATAM, SAAM, QuaDAI o ARID.

– Vamos a analizar con mas profundidad con ATAM y QuaDAI

14 Evaluación de Arquitecturas Software

Arquitecturas software Patrones arquitectónicos Calidad en Arquitecturas Software Evaluación de arquitecturas

Page 15: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

Bibliografia

• Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd Edition, Addison-Wesley Professional (2003)

• Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond Addison-Wesley, Boston (2010)

• Clements, P., Kazman, R., Klein, M.: Evaluating Software Architecures, Methods and Case Studies.

15 Evaluación de Arquitecturas Software

Page 16: Métodos de Evaluación de Arquitecturas Software - users.dsic.upv.esusers.dsic.upv.es/~jagonzalez/JISBD2013/files/Introduction... · Arquitectura Software • Bass, Clements, y Kazman,

CALIDAD DE SISTEMAS DE INFORMACIÓN WEB

Introducción a los métodos de evaluación de arquitecturas