A Case Study of Reengineering of the CCCExplorer tool
Autor(a) principal: | |
---|---|
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 |