You are on page 1of 15

UNPA-UACO

Introduccin a ArchE

y a los

Reasoning Framework

UNPA UACO ARQUITECTURAS DE SOFTWARE PROFESORA: LIC. GABRIELA VILANOVA ALUMNO: PEREYRA GABRIEL

Pgina 1

UNPA-UACO

INDICE: 1 2 INTRODUCCIN PRESENTACIN DE ARCHE 2. 1 EL DILEMA DEL ARQUITECTO 2.2 ENTRADAS INICIAL PARA ARCHE 2.3 RESPONSABILIDADES 2.4 FUNCIONES 2.5 MEJORANDO EL DISEO 3 REASONING FRAMEWORK 3.1 PERSPECTIVA DEL USUARIO 3.2 ELEMENTOS DE UN REASONING FRAMEWORK 3.2.1 DESCRIPCION DEL PROBLEMA 3.2.2 TEORA ANALTICA 3.2.3 RESTRICCIONES ANALTICAS 3.2.4 MODELO DE REPRESENTACIN 3.2.5 INTERPRETACIN 3.2.6 PROCEDIMIENTO DE EVALUACIN 4 5 EL REASONING FRAMEWORK COMFORT CONCLUSIN

Pgina 3 4 4 5 5 6 6 6 7 8 8 9 9 10 11 11 12 14 15

6 REFERENCIAS

Pgina 2

UNPA-UACO

1 Introduccin Una buena arquitectura de software constituye una solucin con respecto a satisfacer los requerimientos de atributos de calidad del sistema que se esta diseando. Un buen diseo arquitectural dir al equipo de desarrollo donde centrar sus esfuerzos para poder construir un sistema que realmente cumpla con su misin y satisfaga, adems, los objetivos de negocio del cliente. Lo que constituye el desafo del arquitecto de software es encontrar la arquitectura adecuada. Este proceso como se mostrara en el presente desarrollo conlleva diversas evaluaciones iterativas, las cuales pueden dar diversas soluciones. Como una solucin a este problema surge ArchE ( The Architecture Expert Assistant), una herramienta que en solo unos pocos segundos nos permite saber si la arquitectura actual satisface determinados atributos de calidad y nos propone tcticas que surgen del razonamiento interno que posee para resolver problemas de diseo. ArchE es una herramienta para asistir al arquitecto de software, la cual est en fase de prueba. La cualidad de excelencia de esta herramienta es la capacidad de razonar sobre un conjunto determinado de atributos de calidad, en la versin 2.1 sobre modificabilidad y performance en sistemas en tiempo real, en la versin 3.0 puede soportar la incorporacin ,de manera externa, de razonamiento sobre otros atributos de calidad como, seguridad, fiabilidad. Esta capacidad de razonamiento est dada por los Framework de razonamiento o Reasoning Framework sobre los cuales haremos la introduccin luego de describir brevemente como ArchE realiza el proceso de mejoramiento de una arquitectura propuesta.

Pgina 3

UNPA-UACO 2. Presentacin de ArchE ArchE es utilizado como un asistente de diseo para el arquitecto, posee conocimiento sobre determinados atributos de calidad, en la versin 2.1, sobre modificabilidad y performance en sistemas de tiempo real. Mientras el arquitecto tiene conocimiento sobre el dominio del problema, requerimientos, atributos de calidad y que decisiones de diseo son ms apropiadas para el problema en particular. Una analoga de ArchE es la de un software de preparacin de impuestos. El software tiene una gran cantidad de conocimiento sobre la estructura del cdigo de impuesto y tiene la capacidad de chequear inconsistencias, pero la informacin sobre la cual se basa el retorno del impuesto y la correctitud del retorno del resultado depende de la informacin proporcionada por el usuario.1 ArchE tiene conocimiento embebido sobre los atributos de calidad y como relacionar los requerimientos al diseo de la arquitectura, pero no tiene conocimiento de la semntica del sistema que se est diseando. ArchE est basado en cuatro conceptos importantes2: Escenarios de atributos de calidad. Una estructura formal para la especificacin de requisitos de atributos de calidad involucra seis partes: un estmulo, una fuente de estmulo, un contexto, un artefacto que se estimula, una respuesta, y una medida de respuesta. Responsabilidades. Actividades realizadas por el software que se est diseando. Con el progreso del proceso las responsabilidades son agregadas divididas o modificadas para soportar un determinado requerimiento de un atributo de calidad . Reasoning Framework. El conocimiento de atributos de calidad es encapsulado en reasoning framework, este incluye abstracciones relevantes de conocimiento sobre atributos de calidad, evaluando si una arquitectura rene los requerimientos de atributos de calidad y proponiendo tcticas para alcanzarlos. . Tcticas arquitecturales. Una tctica arquitectural es un medio para satisfacer la respuesta a un atributo de calidad y manipular algunos aspectos de la arquitectura. 2.1 El dilema del arquitecto El diseo de una arquitectura conlleva diversas iteraciones evaluando en cada caso si la arquitectura actual satisface aquel conjunto de requerimientos de atributos de
1

ArchE Version 2.1 - Users Guide Version 1.0 ArchE-the Architecture Expert - http://www.sei.cmu.edu/library/abstracts/news-at-sei/architect200705.cfm Pgina 4

UNPA-UACO calidad dando lugar a diversas arquitecturas evaluadas hasta llegar a la adecuada, como muestra la figura 1, el espacio de soluciones es muy amplio convirtindose en un verdadero problema.

Figura 1- Arquitecturas posibles para un simple ejemplo.3 Con ArchE podemos explorar ms arquitecturas alternativas con ms rapidez, reconociendo y eliminado los conflictos entre atributos. 2.2 Entradas iniciales para ArchE: Responsabilidades con relaciones de dependencia Requerimientos de calidad calidad. expresados como escenarios de atributos de

Los requerimientos funcionales se traducen a responsabilidades que son asignados a los elementos de la arquitectura. Las responsabilidades tienen dependencias entre ellas y cada responsabilidad afecta uno o varios escenarios. Durante el proceso de diseo las responsabilidades pueden ser refinadas o dividas en varias responsabilidades, como producto de aplicar alguna tctica propuesta por ArchE. 2.3 Responsabilidad Una responsabilidad es una actividad que el sistema que se est diseando debe realizar o informacin que debe registrar. Las responsabilidades son conceptos bsicos en ArchE y generados por este automticamente como resultado de la adicin de funciones o aplicar ciertas tcticas. El arquitecto puede aadir responsabilidades manualmente. Las responsabilidades tienen propiedades que el arquitecto puede aadir o editar, y ellas deben ser mapeadas a escenarios por el arquitecto.
3

Software Architecture Design with ArchE - Felix Bachmann, Len Bass, Phil Bianco- S.E.I. Carnegie Mellon University - www.sei.cmu.edu/library/assets/Bocse2007_ArchE.pdf - 03/26/07 Pgina 5

UNPA-UACO 2.4 Funciones Una funcin es una descripcin de una de las caractersticas que el sistema que est siendo diseado debe satisfacer, una funcin: Tiene un identificador y una descripcin textual. Es una entrada inicial pero no manipulada por ArchE. Se traduce a una responsabilidad que luego puede ser manipulada por ArchE. 2.5 Mejorando el diseo Una vez completados los escenarios para alcanzar los requerimientos de atributos calidad y las dependencias entre responsabilidades del sistema se realiza el mapeo entre las responsabilidades y los escenarios. Esto es, se mapea que responsabilidad es afectada por cada escenario, el arquitecto debe proporcionar esta informacin a ArchE, quien puede solicitar ms informacin como el valor para algn parmetro de un escenario que no fue completado. ArchE podr realizar las sugerencias y la evaluacin siempre y cuando tenga toda la informacin que necesita. Dado que esta herramienta posee conocimiento encapsulado de atributos de calidad en reasoning framework, obtiene preguntas, que sern respondidas por el arquitecto, y sugieren alguna tctica como producto del anlisis de la actual arquitectura para mejorar el diseo y alcanzar determinado atributo de calidad. Una tctica comprende una decisin de diseo arquitectural como por ejemplo dividir una responsabilidad en dos responsabilidades. A medida que vamos aplicando las tcticas estamos mejorando el diseo arquitectural. Estas tcticas sugeridas por ArchE por medio de preguntas, pueden ser obviadas por el arquitecto, dado que solo l conoce el dominio del problema y las prioridades del problema en particular. ArchE chequea los escenarios y realiza la evaluacin de la arquitectura colocando tringulos por cada escenario identificando uno de tres colores. El color naranja nos informa que el diseo mantiene neutral el mejoramiento del atributo de calidad, un color verde implica que hay mejoramiento y un color gris empeoramiento del atributo de calidad para la actual arquitectura. 3. Raesoning FrameWork4 Un reasioning framework es un medio para encapsular el conocimiento de atributos de calidad necesario para comprender el comportamiento de la calidad del sistema. Los
4

Reasoning Framework - Len Bass James Ivers Mark Klein - Julio 2005 http://www.sei.cmu.edu/reports/05tr007.pdf Pgina 6

UNPA-UACO reasoning framework estn basados en teoras analticas usadas para calcular mediciones especficas de atributos de calidad relacionadas con el comportamiento. Estos razonamientos sirven como base para: Predecir comportamiento construido. antes que el sistema sea

Comprender comportamiento despus que el sistema es construido. Tomar decisiones tempranas de diseo mientras se crea la arquitectura Los reasoning framework pueden ser utilizados como parte de dos tecnologas: ArchE, el asistente para Arquitectura Experto (The Architecture Expert Assistant ) y PECTs. Tecnologa en Componentes para Permitir Predicciones (Prediction-Enabled Component Technologies). ArchE utiliza reasoning framework para analizar comportamiento de atributos de calidad. PECTs combina reasoning framework para predecir el comportamiento del sistema con tecnologa basada en componentes. 3.1 Perspectiva del usuario Desde el punto de vista del usuario final, un reasoning framework es una caja negra que lleva una descripcin de la arquitectura y las medidas deseadas de los atributos de calidad como entrada. El usuario no tiene porque comprender el modelo de representacin o ser experto en teoras analticas, dado que el usuario esta interesado solo en los resultados finales, como muestra la siguiente figura.

Figura 2 Un reasoning framework desde la perspectiva del usuario5.

Reasoning Framework - Len Bass, James Ivers, Mark Klein - Julio 2005 http://www.sei.cmu.edu/reports/05tr007.pdf Pgina 7

UNPA-UACO

3.2 Elementos de un Reasoning Framework La clase de comportamiento o problema para el cual el reasoning framework es til se denomina descripcin del problema. Las teoras analticas son usadas como base para el razonamiento. La teora analtica utiliza un modelo de representacin formal para abstraer la descripcin de aquellos aspectos del sistema sobre la cual ella razona. Las restricciones impuestas por la teora analtica sobre la arquitectura, estas son las restricciones analticas, que aseguran que las suposiciones usadas en la teora son reunidas. El mapeo de la arquitectura al modelo se conoce como procedimiento de evaluacin. En resumen un reasoning framework est compuesto por seis elementos: 1. Descripcin del problema: Identificacin de atributos de calidad como mediciones de calidad que pueden ser calculadas. 2. Teora analtica: La parte fundamental sobre la cual se basa el anlisis: incluye teora de colas, tasa de anlisis monotnico (Rate Monotonic Analysis), teora de planificacin, autmata de estado finito, o lgica temporal. 3. Restricciones analticas: Restricciones especificas del sistema que satisface las suposiciones impuestas por la teora analtica. 4. Modelo de representacin: modelo de aspectos relevantes del sistema para la teora analtica, adecuado para usar para la evaluacin. 5. Interpretacin: Procedimiento para generar modelos de representacin de informacin encontrada en la arquitectura. 6. Procedimiento de evaluacin: Algoritmos y formulas que calculan mediciones de atributos de calidad del modelo de representacin. 3.2.1 Descripcin del problema La descripcin del problema identifica los atributos de calidad para los cuales el reasoning framework es usado, como el conjunto de mediciones a ser calculadas. La notacin de la descripcin del problema efectiva utilizada para expresar las medidas de calidad o requerimientos de calidad es el enfoque general de escenarios propuesto por L. Bass6. Donde un escenario esta compuesto por 6 partes: Un estimulo, fuente del estimulo, contexto o ambiente, artefacto, respuesta, medida de respuesta. Para los reasoning framework de la siguiente tabla se muestran las descripciones del problema.

Software Architecture in Practice, Second Edition- Bass, L.; Clements, P.; & Kazman - ao 2003 Pgina 8

UNPA-UACO

Reasoning Framework Performance Variabilidad7

Descripcin del problema Prediccin de latencia promedio Prediccin del costo de crear una nueva variante Prediccin de satisfaccin de comportamiento, afirmaciones expresadas en SE LTL (Lgica Temporal Linear Estado/Evento )

ComFoRT8

Tabla 1. Descripcin del problema en los diferentes reasoning framework 3.2.2 Teora Analtica Cada reasoning framework posee conocimiento aplicado al atributo de calidad, este conocimiento esta dado por una o ms teoras analticas brindadas por alguna disciplina de las ciencias de la computacin como son RMA (Rate Monotonic Analysis), teora de autmatas, teora de colas, y anlisis de Markov. RMA es utilizado para razonar sobre el peor caso de latencia, supone que una fija prioridad de planificacin est siendo usada y la tasa de arribo y tiempo de ejecucin tienen poca o ninguna variabilidad. RMA se expresa en un conjunto de tareas, topologa general, prioridad, tiempo de ejecucin y frecuencia con la cual arriba el mensaje externo. En la siguiente tabla se listan las diferentes teoras analticas.
Reasoning Framework Performance Variabilidad ComFoRT Teora Analtica Teora de colas. Teora de Planificacin. Anlisis de Impacto. Estimacin de costo para mecanismos de instanciacin. Autmata de estado finito. Lgica temporal. Modelo de comprobacin.

Tabla 2. Teoras analticas para los reasoning framework 3.2.3 Restriccin Analtica Un reasoning framework especifica que restricciones analticas deben ser reunidas para que pueda realizar el anlisis. De otra manera no podr realizar el anlisis, y no lo har con cualquier diseo. Para ello se deben realizar ms suposiciones en teoras analticas y procedimientos de evaluacin. En la siguiente tabla se muestran las diferentes restricciones analticas en reasoning framework.
7 8

Variability Reasoning Framework for Product Line Architectures - Bachmann, F. - 2005 Overview of ComFoRT: A Model Check-ing Reasoning Framework - Ivers, J. - Sharygina, N. http://www.sei.cmu.edu/publications/documents/04.reports /04tn018.html Pgina 9

UNPA-UACO

Reasoning Framework

Restriccin analtica Tasa de interarribo obligada para flujo aperidico. Manejador aperidico de servidor espordico. Componentes no realzan operaciones I/O y no se suspenden a si mismo. Componentes con tiempo fijado de ejecucin. Aplicable solo al conjunto de mecanismos de instanciacin de lneas de productos. Costo de cambio a componentes es un valor constante no vara a travs de cualquier dimensin. Sin datos compartidos. Topologa esttica

Performance

Variabilidad

ComFoRT

Tabla 3. Restricciones analticas para los diferentes reasoning framework 3.2.4 Modelo de Representacin Las teoras de representacin tienen sus propios modelos de representacin que son abstracciones del sistema capturando solamente la informacin relevante para el anlisis a ser realizado. Estos modelos de representacin usan alguna codificacin para elementos y relaciones entre elementos as como sus propiedades. Por ejemplo un reasoning framework de performance debe tratar con tareas que tienen tiempo de ejecucin y plazo como propiedades mientras que un reasoning framework de fiabilidad debe tratar con procesos que tienen un tiempo medio entre fallas (MTBF). A continuacin se listan en la siguiente tabla los modelos de representacin para reasoning framework de performance y variabilidad.
Reasoning Framework Performance Variabilidad. Modelo de Representacin Colas, tareas, subtareas, y sus relaciones. Grafos dirigidos de dependencias anotados con costos y probabilidades. Maquina de estados finitos representadas en C y proceso de estado finitos (FSP).

ComFoRT

Tabla 4. Modelos de representacin de los tres reasoning framework.

Pgina 10

UNPA-UACO 3.2.5 Interpretacin Es el proceso generado para generar el modelo de representacin y su posterior procedimiento de evaluacin. La interpretacin, en la implementacin de un reasoning framework, es definida de la sintaxis de entrada del reasoning framework (Algunos lenguajes de descripcin de arquitectura -ADL-) para la sintaxis de entrada de la implementacin de los procedimientos de evaluacin. La interpretacin debe contener toda la informacin necesaria para realizar el procedimiento de evaluacin y calcular las mediciones deseadas. En un reasoning framework de performance el tiempo de ejecucin de un proceso, por ejemplo, se puede dividir en varios clculos dentro del proceso y la interpretacin determina que clculos son incluidos en cada proceso y el tiempo de ejecucin de cada clculo. En la siguiente tabla se muestran las interpretaciones para los diferentes reasoning framework.
Reasoning Framework Performance Variabilidad Interpretacin CCL para colas, tareas, subtareas, y sus relaciones. Representacin en ArchE rbol de caractersticas Mapeo rbol de caractersticas a componentes Costo de cambios. Probabilidad de propagacin entre componentes para grafos dirigidos de dependencias representados con costos y probabilidades. CCL para actual mquina de estados finitos representada en C y FSP (Proceso de estado finito)

ComFoRT

Tabla 5. Interpretaciones para los diferentes reasoning framework.

3.2.6 Procedimiento de evaluacin El procedimiento de evaluacin es el algoritmo que utiliza el reasoning framework para calcular las mediciones de atributos de calidad del modelo de representacin. Pueden ser implementados directa o indirectamente como el uso de modelos de simulacin. Por ejemplo RMA puede ser aplicado a un simple procesador sobre el cual residen mltiples procesos que realizan clculos sobre el flujo de entrada de datos. Varios procesos compiten por el procesador y solo uno es atendido. La latencia es un parmetro dependiente, es el tiempo para procesar completamente cada mensaje.

Pgina 11

UNPA-UACO Figura 3. Frmula para calcular la peor latencia. En el modelo de representacin Ci denota el tiempo de ejecucin del proceso i, Ti denota el periodo del proceso i y Bi denota el tiempo de bloqueo incurrido por el proceso i. La evaluacin es el clculo del peor tiempo de latencia, esto es un algoritmo que itera a travs de la formula hasta que converge, es decir el valor de Ln es el mismo para dos iteraciones consecutivas. En la siguiente tabla se listan los procedimientos de evaluacin para los reasoning framework.
Reasoning Framework Performance Variability ComFoRT Procedimiento Evaluacin Resolver formula de colas. Simulacin. Resolver ecuacin de costo. Algoritmo de comprobacin de modelos para verificacin combinada con varios estados de tcnicas de reduccin de espacio

Tabla 6. Procedimientos de evaluacin para los tres reasoning framework 4. El Reasoning framework ComFoRT9 La finalidad de ComFoRT es determinar si el sistema satisface el comportamiento afirmado, que puede ser usado para caracterizar requerimientos de seguridad, o fiabilidad. Estos comportamientos declarados se denominan claims expresan su propiedad en patrones de eventos (comunicacin) y asignacin de estados (valores de variables o modos de operacin) y su orden en el tiempo. Por ejemplo, un robot no debe entrar en un rea donde hay una persona trabajando. ComFoRT se basa en el chequeo de modelos mediante una coleccin de algoritmos usados exitosamente, para determinar si el modelo del sistema satisface los comportamientos claim en todas las ejecuciones. ComFoRT fue desarrollado por el S.E.I. (Software Engineering Institute) Predictable Assembly from Certifiable Components (PACC). Una iniciativa para incluir tecnologa de componentes para permitir predicciones (PECT). Un PECT combina tecnologa de componentes con uno o ms reasoning framework para proveer anlisis necesario para predecir calidad de ejecuciones especificas de ensamblado de componentes. La siguiente figura muestra una vista simple de un PECT.

Reasoning Framework - Len Bass James Ivers Mark Klein - Julio 2005

http://www.sei.cmu.edu/reports/05tr007.pdf
Pgina 12

UNPA-UACO

Figura 4. Vista simple de un PECT.10 Cada reasoning framework es aplicado para especificaciones de ensamblado por medio de una interpretacin formal que generan modelos especficos de reasoning framework de especificaciones CCL11 (Lenguaje de composicin y construccin). Podemos tener una interpretacin particular y capturarla por medio de CCL, as como las propiedades de notaciones, mucha de la informacin de una especificacin CCL es usada para ms interpretaciones de reasoning framework. Los usuarios PECT de diseo de componentes utilizan CCL como su lenguaje de diseo y aaden notaciones de propiedades como necesarias para permitir predicciones especficas.

10

Overview of ComFoRT: A Model Checking Reasoning Framework - James Ivers Natasha, Sharygina Abril 2004 - http://www.sei.cmu.edu/reports/04tn018.pdf 11 Construction and Composition Language - http://www.sei.cmu.edu/predictability/tools/ccl/ Pgina 13

UNPA-UACO 5. Conclusin El presente trabajo trat de introducir los conceptos ms recientes sobre el mundo de las arquitecturas de software. Los recursos y los constantes avances en esta disciplina son constantes desde los mtodos tradicionales de evaluacin de arquitecturas como SAAM o ATAM hasta herramientas como ArchE que asisten al arquitecto y son bastante aceptadas. Otras tecnologas como ComFoRT son tambin novedosas y, como se describi anteriormente, poseen conocimiento embebido de complicadas formulas y algoritmos que son relevantes para el desarrollador. Las diversas perspectivas sobre esta materia hacen que muchas universidades traten de adaptar algunos mtodos de evaluacin de arquitecturas ampliando an ms las alternativas y enfoques de aplicacin. La evaluacin de arquitecturas realmente es un paso importante y decisivo al xito o al fracaso del futuro sistema de software. Como alternativa para el arquitecto y para facilitar su trabajo se presentaron estos conceptos, quedando para aquellos interesados, los reasoning framework como una posible futura implementacin a desarrollar.

Pgina 14

UNPA-UACO 6. Referencias.
1 2 Software Institute Engineering www.sei.cme.edu ArchE-the Architecture Expert - http://www.sei.cmu.edu/library/abstracts/news-atsei/architect200705.cfm Software Architecture Design with ArchE - Felix Bachmann, Len Bass, Phil Bianco- S.E.I. Carnegie Mellon University- www.sei.cmu.edu/library/assets/Bocse2007_ArchE.pdf 03/26/07 Reasoning Frameworks Len Bass http://www.sei.cmu.edu/reports/05tr007.pdf ArchE Version 2.1 - Users Guide Version 1.0 Overview of ComFoRT: A Model Checking Reasoning Framework James Ivers Natasha Sharygina abril 2004 - http://www.sei.cmu.edu/reports/04tn018.pdf Volume III: A Technology for Predictable Assembly from Certifiable Components Abril 2003 - Kurt C. Wallnau - http://www.sei.cmu.edu/reports/03tr009.pdf Prediction Enable Component http://www.sei.cmu.edu/library/assets/pect.pdf Technology James Ivers Julio 2005

4 5 6 7 8 9

A Modelling and Reasoning Framework for Social Networks Policies - Guido Governatori1 and Renato Iannella NICTA - Queensland Research Laboratory, Australia http://www.nicta.com.au/pub?doc=3710&GSBYPASS=22AE862406F80DF0784F2B91E722C A39&N=ec1WOY&M=application/pdf&D=3710%5fpublication%5fA%5fModellin%5f3367%2 epdf Language -

10 Construction and Composition http://www.sei.cmu.edu/predictability/tools/ccl/

Pgina 15

You might also like