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 | Tamanho | Formato | |
|---|---|---|---|---|
| Grilo_2023.pdf | 4,64 MB | Adobe PDF | Ver/Abrir |
Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.











