A Case Study of Reengineering of the CCCExplorer tool

Detalhes bibliográficos
Autor(a) principal: Grilo, Ana Beatriz Domingos
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10362/163258
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.
id RCAP_88a26c95201ee27509f2f92e4dd5c560
oai_identifier_str oai:run.unl.pt:10362/163258
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling A Case Study of Reengineering of the CCCExplorer toolRe-engineeringRefactoringLegacy SystemsJUnitCCCExplorerDesign DisharmoniesDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaSoftware 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.Monteiro, MiguelRUNGrilo, Ana Beatriz Domingos2024-02-08T15:25:11Z2023-052023-05-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/163258enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T05:46:24Zoai:run.unl.pt:10362/163258Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:59:19.999735Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv A Case Study of Reengineering of the CCCExplorer tool
title A Case Study of Reengineering of the CCCExplorer tool
spellingShingle A Case Study of Reengineering of the CCCExplorer tool
Grilo, Ana Beatriz Domingos
Re-engineering
Refactoring
Legacy Systems
JUnit
CCCExplorer
Design Disharmonies
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short A Case Study of Reengineering of the CCCExplorer tool
title_full A Case Study of Reengineering of the CCCExplorer tool
title_fullStr A Case Study of Reengineering of the CCCExplorer tool
title_full_unstemmed A Case Study of Reengineering of the CCCExplorer tool
title_sort A Case Study of Reengineering of the CCCExplorer tool
author Grilo, Ana Beatriz Domingos
author_facet Grilo, Ana Beatriz Domingos
author_role author
dc.contributor.none.fl_str_mv Monteiro, Miguel
RUN
dc.contributor.author.fl_str_mv Grilo, Ana Beatriz Domingos
dc.subject.por.fl_str_mv Re-engineering
Refactoring
Legacy Systems
JUnit
CCCExplorer
Design Disharmonies
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Re-engineering
Refactoring
Legacy Systems
JUnit
CCCExplorer
Design Disharmonies
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description 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.
publishDate 2023
dc.date.none.fl_str_mv 2023-05
2023-05-01T00:00:00Z
2024-02-08T15:25:11Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10362/163258
url http://hdl.handle.net/10362/163258
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799138173006118912