representación y razonamiento sobre las decisiones de...

32
María Celeste Carignano Celtic 2009 1 Representación y Razonamiento sobre las Decisiones de Diseño de Arquitecturas de Software. María Celeste Carignano Instituto de Desarrollo y Diseño - INGAR Director: Horacio Leone Codirector: Silvio Gonnet

Upload: others

Post on 17-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 1

Representación y Razonamiento sobre las Decisiones de Diseño de Arquitecturas de

Software.

María Celeste CarignanoInstituto de Desarrollo y Diseño - INGAR

Director: Horacio LeoneCodirector: Silvio Gonnet

Page 2: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 2

¿Qué es la arquitectura de un software?

• La arquitectura de software es la estructura o las estructuras de un sistema de software, las cuales comprenden los elementos de software, sus propiedades visibles externamente y las relacionesentre ellos.

(L. Bass, P.; Clements, P.; Kazman, R. “Software Architecture in Practice 2nd ed”.

Published Addison Wesley, 2003)

• La arquitectura de software es el conjunto de decisiones de diseño, las cuales, si son tomadas de manera incorrecta, pueden causar que el proyecto sea cancelado.

Eoin Woods

Page 3: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 3

La arquitectura de software y el ciclo de vida del software

Page 4: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 4

Razonamiento en arquitectura de software

• El razonamiento realizado durante el diseño arquitectónico es la explicación de CÓMO y POR QUÉ un producto arquitectónico, o parte de él, ha sido diseñado de esa manera.

(Babar, M.; Gorton, I.;Kitchenham, B. “A Framework for Supporting Architecture Knowledge and Rationale Management”, chapter 11, Rationale Management in Software Engineering, A. Dutoit, R. McCall, I. Mistrkik, and B. Paech (Eds.), pp. 237-254, Springer-Verlag, April 2006)

• Todo el razonamiento que no es documentado, con el paso del tiempo es olvidado o ignorado.

Page 5: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 5

Aspectos que justifican la captura del razonamiento en la Ingeniería de Software

• El tamaño, la complejidad y la vida útil de los sistemas de software son cada vez mayores.

• La naturaleza iterativa de los procesos de desarrollo de software.• El incremento de la participación de los “stakeholders” durante la

creación del sistema.

(Burge, J.; Carroll, J.; McCall, R.; Mistrík, I. “Rationale-Based Software Engineering”. Published Springer-Verlag, 2008)

En un estudio realizado sobre una población de 127 participantes: • el 85,1 % de los arquitectos considera que el uso de razonamiento

en el diseño es importante para justificar el diseño,• un 79% de los participantes dice que la documentación del

razonamiento asociado a un diseño es muy importante ya que lo ayuda a comprender el diseño del sistema para realizar mejoras al mismo,

• el 81,5% de los participantes olvida sus propias decisiones de diseño después de un tiempo.

(Tang, A.; Babar, M.; Gorton, I.; Han, J. “A Survey of Architecture Design Rationale”. Swinburne University of Technology SUTICT-TR2005.02. 2005)

Page 6: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 6

Utilización del razonamiento capturado

• Situaciones comunes:

• Creación, modificación o eliminación de requerimientos luego del diseño;

• Incorporación de nuevos miembros al equipo de construcción del software;

• Transferencia de conocimiento y/o capacitación por parte de arquitectos involucrados en el proyecto a nuevos diseñadores;

• Detección de problemas una vez avanzada la construcción del sistema que requieren revisar la arquitectura y analizar el impacto de las posibles soluciones;

• Falta de entendimiento de la arquitectura generada;

• Necesidad de generar nuevas arquitecturas basadas en experiencias previas de manera de evitar repetir errores anteriores y poder reproducir aciertos.

Page 7: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 7

Modelo Propuesto

Page 8: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 8

Modelo Propuesto

Todo sistema de software se

construye para satistacer las

necesidades de los

“stakeholders”, cumpliendo

con determinadas

restricciones.

Page 9: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 9

Modelo Propuesto

Necesidades asociadas a

funcionalidades específicas

del sistema.

Todo sistema de software

se construye para satistacer

las necesidades de los

“stakeholders”, cumpliendo

con determinadas

restricciones.

Page 10: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 10

Modelo Propuesto

Necesidades asociadas a

características que debe

poseer el sistema o parte de

él.

Necesidades asociadas a

funcionalidades específicas

del sistema.

Todo sistema de software

se construye para satistacer

las necesidades de los

“stakeholders”, cumpliendo

con determinadas

restricciones.

Page 11: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 11

Modelo Propuesto

Ejemplos:

-Seguridad

-Performance

-Disponibilidad

-Modificabilidad

-....

Necesidades asociadas a

características que debe

poseer el sistema o parte de

él.

Necesidades asociadas a

funcionalidades específicas

del sistema.

Todo sistema de software

se construye para satistacer

las necesidades de los

“stakeholders”, cumpliendo

con determinadas

restricciones.

Page 12: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 12

Modelo Propuesto

Un escenario ayuda a describir

un requerimiento de calidad.

Un escenario general provee

un framework para generar

escenarios concretos.

Un escenario concreto es un

escenario general con

características específicas de

un sistema.

Ejemplos:

-Seguridad

-Performance

-Disponibilidad

-Modificabilidad

-....

Page 13: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 13

Modelo Propuesto

Posibles partes:

-SOURCE_STIMULUS

-STIMULUS

-ARTIFACT

-ENVIRONMENT

-RESPONSE

-RESPONSE_MEASURE

Ejemplos:

-Seguridad

-Performance

-Disponibilidad

-Modificabilidad

-....

Un escenario ayuda a describir

un atributo de calidad.

Un escenario general provee

un framework para generar

escenarios concretos.

Un escenario concreto es un

escenario general con

características específicas de

un sistema.

Page 14: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 14

Ejemplo de Escenario Atributo de calidad Modificabilidad

Escenario general

-Costo en término del número de elementos afectados-Esfuerzo-Dinero-....

Response Measure

-Localizar los lugares de la arquitectura a ser modificados-Hacer las modificaciones sin afectar otras funcionalidades-...

Response

-En tiempo de ejecución-En tiempo de compilación-En tiempo de diseño-En tiempo de construcción

Environment

-Interfaz de usuario-Entorno-...

Artifact

Deseos de:-Agregar, eliminar o modificar una funcionalidad,-Agregar, eliminar o modificar un atributo de calidad

Stimulus

-Usuario final-Desarrollador-Administrador del sistema

Source

Escenario concreto

Usuario Final

Deseos de modificar una configuración

Interfaz de usuario

En tiempo de ejecución

Lugares de la arquitectura

a ser modificados

Cero elementos afectados

Page 15: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 15

Modelo Propuesto

Page 16: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 16

Modelo Propuesto

Durante la definición de la

arquitectura de un sistema se

puede trabajar sobre varias

alternativas de solución, en las

cuales se consideran, analizan y

evalúan posibles soluciones que

satisfagan los requerimientos

identificados.

Page 17: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 17

Modelo Propuesto

Es una agregación de

decisiones de diseño

arquitectónicas relacionadas.

Page 18: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 18

Modelo Propuesto

Es una agregación de

decisiones de diseño

arquitectónicas relacionadas.

Es una decisión tomada por un

arquitecto con el objetivo de

satisfacer un escenario de

calidad concreto, teniendo en

consideración las restricciones

impuestas a la solución.

Page 19: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 19

Modelo Propuesto

Una táctica influencia el control de la respuesta

de un atributo de calidad.

Es una opción de diseño para un arquitecto.

Por ejemplo, una táctica es introducir

redundancia para incrementar la disponibilidad

del sistema.

Es una agregación de

decisiones de diseño

arquitectónicas relacionadas.

Es una decisión tomada por un

arquitecto con el objetivo de

satisfacer un escenario de

calidad concreto, teniendo en

consideración las restricciones

impuestas a la solución.

Un estilo arquitectónico define una familia de

sistemas en términos de patrones de

organización estructural. Provee un vocabulario

de componentes y conectores y un conjunto de

restricciones acerca de cómo pueden ser

combinados.

Page 20: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 20

Modelo Propuesto

Es una agregación de

decisiones de diseño

arquitectónicas relacionadas.

Es una decisión tomada por un

arquitecto con el objetivo de

satisfacer un escenario de

calidad concreto, teniendo en

consideración las restricciones

impuestas a la solución.

Page 21: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 21

Modelo Propuesto

Es una agregación de

decisiones de diseño

arquitectónicas relacionadas.

Es una decisión tomada por un

arquitecto con el objetivo de

satisfacer un escenario de

calidad concreto, teniendo en

consideración las restricciones

impuestas a la solución.

Page 22: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 22

Modelo Propuesto

Es una agregación de

decisiones de diseño

arquitectónicas relacionadas.

Es una decisión tomada por un

arquitecto con el objetivo de

satisfacer un escenario de

calidad concreto, teniendo en

consideración las restricciones

impuestas a la solución.

Posibles valores:

-STRENGTH

-WEAKNESS

-ASSUMPTIONS

-TRADE_OFFS

-RISK

-NON_RISK

Page 23: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 23

Modelo Propuesto

Una decisión de diseño puede influir sobre otras.

Ejemplos de influencias son:

-Enables: “Usar Java” permite “usar J2EE”

-CONFLICTS_WITH: “se debe utilizar .Net” tiene

conflictos con “se debe utilizar Java”

-IS_AN_ALTERNATIVE_TO

-…

Page 24: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 24

Modelo Propuesto

Posibles estados:

-IN_DEFINITION

-SELECTED

-REJECTED

Page 25: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 25

Modelo Propuesto

Posibles estados:

-IDEA

-APPROVED

-REJECTED

-….

Page 26: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 26

Modelo Propuesto

Page 27: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 27

Decisiones de Diseño Arquitectónico

• A partir de la captura del rationale asociado a las decisiones de diseño se puede:

• Evaluar el impacto de una modificación.

• Analizar las soluciones propuestas para satisfacer un requerimiento.

• Entender las razones por las cuales uno o varios elementos fueron creados y relacionados.

Page 28: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 28

Prototipo de documentación de las decisiones de diseño arquitectónico.

Plugin de Eclipse Integrado con Rational Software Architect

Page 29: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 29

Reutilización de arquitecturas de software

Arquitecturas anteriores Nueva arquitectura

Pipe and filter

Layers

Model View Controller

Manage event rate

Intermediary

Authenticate users

Page 30: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 30

Caso Recuperado

Razonamiento Basado en Casos

• Razonamiento basado en casos (CBR) es una metodología para resolver problemas utilizando experiencias previas.

• CBR es capaz de utilizar el conocimiento específico de experiencias previas, situaciones o problemas concretos (casos). Un nuevo problema es resuelto encontrando un caso similar del pasado, y reusándolo en el nuevo problema.

(Pal, S.; Shiu, S. “Foundations of Soft Case-Based Reasoning”. Published Wiley, 2004)

Nuevo Caso

Caso ResueltoCaso Probado

Caso Aprendido

Problema

Base de casos

Recuperar

Reusar

Revisar

Retener

Nuevo Caso

Caso Recuperado

Page 31: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 31

Aplicación de Razonamiento Basado en Casos

Caso:

Problema: Requerimientos

Solución: Conjunto de

decisiones de

diseño

Caso Recuperado

Nuevo Caso

Caso ResueltoCaso Probado

Caso Aprendido

Nuevo Sistema

Base de casos

Descripto utilizando el modelo presentado Recuperación utilizando una funciónde similitud

Generación de una arquitectura inicial con las decisiones de diseño del caso recuperado

Nuevo Caso

Caso Recuperado

Page 32: Representación y Razonamiento sobre las Decisiones de ...celtic.wdfiles.com/local--files/seminarios2009/CelesteCarignano.pdf · María Celeste Carignano Celtic 2009 1 Representación

María Celeste Carignano Celtic 2009 32

Conclusiones y Trabajos Futuros

Conclusiones:• El modelo construido permite representar el razonamiento realizado

durante un diseño arquitectónico.• El razonamiento capturado se puede consultar para responder las

situaciones previamente planteadas.• El prototipo que se está desarrollando permite capturar el

razonamiento de manera integrada a una herramienta de modelado UML ampliamente reconocida en el mercado.

Trabajos Futuros:• Finalización del prototipo de documentación de las decisiones de

diseño arquitectónico.• Definición de la función de similitud y los mecanismo de reuso,

revisión y retención de CBR.• Validación del modelo y el mecanismo de reutilización con casos de la

industria del software.