Skip to content
Fábio Nogueira edited this page Dec 7, 2016 · 9 revisions

Home -> Related Work #SASSY Self-architecting Software Systems (SASSY) é uma plataforma dirigida por modelos que visa suportar a adaptação dinâmica de sistemas nos quais os requisitos podem mudar em tempo de execução. Eventuais mudanças podem promover adaptações arquiteturais, de forma a satisfazer os requisitos funcionais e não-funcionais (estes últimos especificados através de funções objetivo).

Em SASSY, um engenheiro de software especifica o comportamento de uma aplicação através de uma linguagem gráfica própria para a modelagem de atividades. O resultado dessa especificação é um modelo que deve ser anotado com os objetivos em termos de qualidade (QoS), de acordo com os requisitos não-funcionais da aplicação.

De outro lado, um arquiteto de software desenvolve padrões arquiteturais (em particular, padrões para composição de serviço), os quais são associados por um especialista em qualidade com modelos analíticos parametrizados que são utilizados para representar a influência do uso dos padrões correspondentes nas métricas de qualidade. O arquiteto deve ainda especificar padrões de adaptação, os quais são responsáveis por efetivar as modificações arquiteturais necessárias ao longo da execução.

A partir da especificação da aplicação e dos padrões arquiteturais, a plataforma deriva a arquitetura do sistema em termos dos tipos de serviço necessários, e um modelo de coordenação que regula a interação entre os serviços realizando o fluxo proposto através da linguagem visual. Por fim, os tipos de serviço e as informações de qualidade são utilizados para a descoberta dinâmica dos serviços a serem utilizados através da busca em um registro de serviços.

Durante a execução, uma aplicação é gerenciada por gerente de adaptação que implementa o laço MAPE-K. Para tomar as decisões acerca da necessidade da adaptação, esse gerente utiliza funções de utilidade especificadas. Quando da necessidade de adaptação, os padrões de adaptação são aplicados de forma a gerar, dinamicamente, uma nova arquitetura.

Clone this wiki locally