Busca avançada
Ano de início
Entree

Suporte computacional para refatorações de sistemas adaptativos

Processo: 17/24190-4
Linha de fomento:Bolsas no Brasil - Programa Capacitação - Treinamento Técnico
Vigência (Início): 01 de fevereiro de 2018
Vigência (Término): 04 de janeiro de 2019
Área do conhecimento:Ciências Exatas e da Terra - Ciência da Computação - Metodologia e Técnicas da Computação
Pesquisador responsável:Valter Vieira de Camargo
Beneficiário:Bruno Cesar Gasparini
Instituição-sede: Centro de Ciências Exatas e de Tecnologia (CCET). Universidade Federal de São Carlos (UFSCAR). São Carlos , SP, Brasil
Vinculado ao auxílio:16/03104-0 - Uma abordagem apoiada por testes para modernização arquitetural de sistemas adaptativos, AP.R
Assunto(s):Engenharia de software   Código fonte

Resumo

A elaboração das refatorações exige que sejam investigadas alternativas de projeto para cada componente de um loop de controle e também a relação entre eles. Por exemplo, há basicamente dois tipos de monitores: monitoramento baseado em tempo e monitoramento baseado em evento. Para cada tipo, diferentes alternativas de projeto com diferentes estruturações de classes, atributos e métodos pode ser empregadas. As refatorações serão implementadas na forma de regras ATL e deverão ser dependentes somente da estrutura e nomenclatura utilizada no KDM. Como serão refatorações de nível mais alto de granularidade, cada uma compreenderá um conjunto significativo de modificações no código-fonte, diferentemente de refatorações de nível mais baixo. Por exemplo, para refatorar um trecho de código-fonte anotado como Monitor, novas classes, métodos e atributos devem ser criados. Para isso deverão ser estudados em detalhes os atuais modelos de arquitetura, padrões e frameworks utilizados na estruturação de SAs. Em uma análise prévia, identificaram-se duas opções: o framework Rainbow (Garlan et al.,2004) e o modelo de referência MAPE-K. Implementar as refatorações em ATL e baseadas no KDM aumenta o nível de reusabilidade dessas refatorações. Assim, será investigada uma forma de disponibilizar uma versão do repositóio na Web e objetiva-se que isso tenha dois efeitos principais: I) motive outros pesquisadores a disponibilizarem quaisquer tipos de algoritmos que atuem sobre o KDM, fazendo com que essa comunidade cresça e que a quantidade de recursos disponíveis desse tipo aumente consideravelmente; e II) motive desenvolvedores de ferramentas a adotarem o KDM como a forma de representação interna de sistemas em suas ferramentas, pois haverá um conjunto significativo de recursos disponíveis e reusáveis para trabalhar sobre esse padrão, o que pode agilizar e aumentar a qualidade das ferramentas. Algo fundamental em processos de refatoração é garantir a consistência dos elementos que são dependentes do elemento sendo refatorado. O objetivo é garantir que esses elementos dependentes sejam atualizados sempre que elementos alvo da refatoração são modificados. Assim, pretende-se aqui desenvolver também um módulo de propagação de mudanças que tenha essa responsabilidade. No caso do KDM isso se torna fundamental, pois como ele é capaz de representar várias visões de um sistema de software, como arquitetura, interfaces e regras de negócio, a refatoração de um elemento de código-fonte, como uma classe por exemplo, pode exigir modificação em todas essas visões. A implementação desse módulo envolve o uso de ferramentas de identificação de diferença entre modelos (exemplo: EMF Compare), a implementação de algoritmos de grafos para identificar os elementos em que as mudanças devem ser propagadas e um conjunto de ATLs para efetuar as propagações. (AU)