Repositório Institucional da Universidade Tecnológica Federal do Paraná (RIUT): Codice-Unio: uma abordagem integrada de métodos para detecção e inserção de padrões de projeto em código-fonte usando agentes
Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/5229
Título: Codice-Unio: uma abordagem integrada de métodos para detecção e inserção de padrões de projeto em código-fonte usando agentes
Título(s) alternativo(s): Codice-Unio: an integrated approach of methods for detecting and inserting design patterns in source code using agents
Autor(es): Pacher, Thyago Henrique
Citação: PACHER, Thyago Henrique. Codice-Unio: uma abordagem integrada de métodos para detecção e inserção de padrões de projeto em código-fonte usando agentes. 2020. Dissertação (Mestrado em Ciência da Computação) - Universidade Tecnológica Federal do Paraná, Ponta Grossa, 2020.
Resumo: O processo de refatoração garante uma qualidade maior no código-fonte aumentando a sua manutenibilidade, confiabilidade e flexibilidade. De acordo com a literatura cerca de 70% do custo do software é para manutenção e isto pode ser diminuído usando técnicas que permitem aumentar a qualidade do código-fonte tal como a refatoração baseada em padrões de projetos. Constatou-se por meio de um mapeamento sistemático que os trabalhos na literatura de detecção e inserção de padrões de projeto não são realizados de forma autônoma. Este trabalho criou a abordagem Codice-Unio para detectar pontos de inserção e aplicar padrões de projeto com agentes usando a arquitetura de Belief-Desire-Intention (BDI). A abordagem contempla em um mesmo ambiente três métodos da literatura capazes de detectar e aplicar padrões de projeto em código-fonte escrito em linguagem Java. A fim de comparar o processo de refatoração antes e depois da aplicação do padrão de projeto foi contemplado na abordagem a avaliação de métricas relacionadas aos atributos de qualidade tais como manutenibilidade, reusabilidade e confiabilidade. A Codice-Unio foi implementada em um framework para agentes que suporta a arquitetura BDI e usou ferramentas específicas para leitura de código e avaliação dos atributos de qualidade. A abordagem foi avaliada com cenários de testes providos pelos métodos da literatura e posteriormente por projetos open-source encontrados na web via GitHub. Como resultado, a Codice-Unio é capaz de identificar e aplicar padrões de projeto em classes candidatas automaticamente em cerca de aproximadamente 97% dos projetos que foram submetidos ao experimento.
Abstract: The refactoring process guarantees a higher quality in the source code, increasing its maintainability, readability and flexibility. According to the literature about 70% of the cost of the software is for maintenance and this can be reduced using techniques that allow to increase the quality of the source code such as refactoring based on design standards. It was found through a systematic mapping that the works in the literature for the detection and insertion of design patterns are not carried out autonomously. This work created the Codice-Unio approach to detect insertion points and apply design patterns with agents using the Belief-Desire-Intention (BDI) architecture. The approach contemplates in the same environment three methods from the literature capable of detecting and applying design patterns in source code written in Java language. In order to compare the refactoring process before and after the application of the design standard, the assessment of metrics related to quality attributes such as maintainability, reusability and readability was contemplated in the approach. CodiceUnio was implemented in an agent framework that supports the BDI architecture and used specific tools for reading code and evaluating quality attributes. The approach was evaluated using test scenarios provided by the literature methods and later by open-source projects found on the web via GitHub. As a result, Codice-Unio is able to automatically identify and apply design patterns in candidate classes in approximately 97% of the projects that have undergone the experiment.