Utilize este identificador para referenciar este registo: http://hdl.handle.net/10362/163258
Título: A Case Study of Reengineering of the CCCExplorer tool
Autor: Grilo, Ana Beatriz Domingos
Orientador: Monteiro, Miguel
Palavras-chave: Re-engineering
Refactoring
Legacy Systems
JUnit
CCCExplorer
Design Disharmonies
Data de Defesa: Mai-2023
Resumo: Software systems are widely used in various domains, but as these systems evolve over time, they often suffer from poor code quality, lack of testability, and maintenance issues. In this thesis, we present a reengineering study aimed at improving the code quality and testability of a Java system, CCCExplorer. We start by introducing the tools and concepts used in our study, including refactoring and unit testing, and explain the theoretical foundations of these concepts, such as unit test development. We then apply these concepts to a real-world Java system and conduct a thorough examination of its source code to identify its weaknesses, such as code smells. The work in this dissertation started with a code quality analysis, and was the divided into three tasks: (1) analysis of Matlab function headers, (2) developing tests for the operators and keywords, which led to fixing a code error and (3) integrating and developing tests for new functionalities developed by others. The tests ensure that the system’s functionalities are working as intended and helped locate and fix a code error. Specifically, we developed unit tests to test the system’s behavior before and after the fix. Our findings show that this work has improved the code quality and testability of CCCExplorer, and that our approach can be applied to other Java systems with similar issues. Our contributions include a description of our approach to bug fixing using unit tests, which can help guide future reengineering efforts aimed at improving the quality and reliability of software systems, specifically CCCExplorer.
Sistemas de software são amplamente utilizados nas mais diversas áreas mas, com o tempo, esses sistemas podem apresentar inconvenientes, nomeadamente má qualidade de código, dificuldade em testar e problemas de manutenção. Na presente tese, é apresentado um estudo para melhorar a qualidade do código e a testabilidade de um sistema Java: o CCCExplorer. Em primeiro lugar, é fundamental introduzir as ferramentas e conceitos utilizados ao longo deste trabalho e explicar as bases teóricas desses conceitos, que incluem refatorização e testes unitários. Estes são então aplicados a um sistema Java real, tendo sido conduzida uma análise minuciosa do seu código-fonte para identificar as suas fraquezas, como "code smells". O trabalho começou por uma análise de qualidade de código, e foi dividido em três tarefas: (1) análise dos cabeçalhos das funções do Matlab, (2) desenvolvimento de testes para operadores e palavras-chave, que permitiu a correção de um erro de código, e (3) integração e desenvolvimento de testes para novas funcionalidades desenvolvidas por outros. Os testes garantem que as funcionalidades do sistema estão a atuar corretamente e ajudaram a localizar e corrigir um erro de código. Especificamente, foram desenvolvidos testes unitários para testar o comportamento do sistema antes e depois da correção. Os nossos resultados constatam que este trabalho melhorou a qualidade de código e testabilidade do CCCExplorer, e que a nossa abordagem pode ser aplicada a outros sistemas Java com problemas semelhantes. As nossas contribuições incluem uma descrição da nossa abordagem para correção de erros através de testes unitários, o que pode ajudar a orientar futuros esforços de reengenharia destinados a melhorar a qualidade e fiabilidade de sistemas de software, especificamente do CCCExplorer.
URI: http://hdl.handle.net/10362/163258
Designação: MASTER IN COMPUTER SCIENCE
Aparece nas colecções:FCT: DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Grilo_2023.pdf4,64 MBAdobe PDFVer/Abrir


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpace
Formato BibTex MendeleyEndnote 

Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.