Cargando…

KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics

Software maintenance is indispensable in the software development process. Developers need to spend a lot of time and energy to understand the software when maintaining the software, which increases the difficulty of software maintenance. It is a feasible method to understand the software through th...

Descripción completa

Detalles Bibliográficos
Autores principales: Wang, Liuhai, Du, Xin, Jiang, Bo, Pan, Weifeng, Ming, Hua, Liu, Dongsheng
Formato: Online Artículo Texto
Lenguaje:English
Publicado: MDPI 2022
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9141207/
https://www.ncbi.nlm.nih.gov/pubmed/35626540
http://dx.doi.org/10.3390/e24050652
_version_ 1784715288412946432
author Wang, Liuhai
Du, Xin
Jiang, Bo
Pan, Weifeng
Ming, Hua
Liu, Dongsheng
author_facet Wang, Liuhai
Du, Xin
Jiang, Bo
Pan, Weifeng
Ming, Hua
Liu, Dongsheng
author_sort Wang, Liuhai
collection PubMed
description Software maintenance is indispensable in the software development process. Developers need to spend a lot of time and energy to understand the software when maintaining the software, which increases the difficulty of software maintenance. It is a feasible method to understand the software through the key classes of the software. Identifying the key classes of the software can help developers understand the software more quickly. Existing techniques on key class identification mainly use static analysis techniques to extract software structure information. Such structure information may contain redundant relationships that may not exist when the software runs and ignores the actual interaction times between classes. In this paper, we propose an approach based on dynamic analysis and entropy-based metrics to identify key classes in the Java GUI software system, called KEADA (identifying KEy clAsses based on Dynamic Analysis and entropy-based metrics). First, KEADA extracts software structure information by recording the calling relationship between classes during the software running process; such structure information takes into account the actual interaction of classes. Second, KEADA represents the structure information as a weighted directed network and further calculates the importance of each node using an entropy-based metric OSE (One-order Structural Entropy). Third, KEADA ranks classes in descending order according to their OSE values and selects a small number of classes as the key class candidates. In order to verify the effectiveness of our approach, we conducted experiments on three Java GUI software systems and compared them with seven state-of-the-art approaches. We used the Friedman test to evaluate all approaches, and the results demonstrate that our approach performs best in all software systems.
format Online
Article
Text
id pubmed-9141207
institution National Center for Biotechnology Information
language English
publishDate 2022
publisher MDPI
record_format MEDLINE/PubMed
spelling pubmed-91412072022-05-28 KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics Wang, Liuhai Du, Xin Jiang, Bo Pan, Weifeng Ming, Hua Liu, Dongsheng Entropy (Basel) Article Software maintenance is indispensable in the software development process. Developers need to spend a lot of time and energy to understand the software when maintaining the software, which increases the difficulty of software maintenance. It is a feasible method to understand the software through the key classes of the software. Identifying the key classes of the software can help developers understand the software more quickly. Existing techniques on key class identification mainly use static analysis techniques to extract software structure information. Such structure information may contain redundant relationships that may not exist when the software runs and ignores the actual interaction times between classes. In this paper, we propose an approach based on dynamic analysis and entropy-based metrics to identify key classes in the Java GUI software system, called KEADA (identifying KEy clAsses based on Dynamic Analysis and entropy-based metrics). First, KEADA extracts software structure information by recording the calling relationship between classes during the software running process; such structure information takes into account the actual interaction of classes. Second, KEADA represents the structure information as a weighted directed network and further calculates the importance of each node using an entropy-based metric OSE (One-order Structural Entropy). Third, KEADA ranks classes in descending order according to their OSE values and selects a small number of classes as the key class candidates. In order to verify the effectiveness of our approach, we conducted experiments on three Java GUI software systems and compared them with seven state-of-the-art approaches. We used the Friedman test to evaluate all approaches, and the results demonstrate that our approach performs best in all software systems. MDPI 2022-05-06 /pmc/articles/PMC9141207/ /pubmed/35626540 http://dx.doi.org/10.3390/e24050652 Text en © 2022 by the authors. https://creativecommons.org/licenses/by/4.0/Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
spellingShingle Article
Wang, Liuhai
Du, Xin
Jiang, Bo
Pan, Weifeng
Ming, Hua
Liu, Dongsheng
KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
title KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
title_full KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
title_fullStr KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
title_full_unstemmed KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
title_short KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
title_sort keada: identifying key classes in software systems using dynamic analysis and entropy-based metrics
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9141207/
https://www.ncbi.nlm.nih.gov/pubmed/35626540
http://dx.doi.org/10.3390/e24050652
work_keys_str_mv AT wangliuhai keadaidentifyingkeyclassesinsoftwaresystemsusingdynamicanalysisandentropybasedmetrics
AT duxin keadaidentifyingkeyclassesinsoftwaresystemsusingdynamicanalysisandentropybasedmetrics
AT jiangbo keadaidentifyingkeyclassesinsoftwaresystemsusingdynamicanalysisandentropybasedmetrics
AT panweifeng keadaidentifyingkeyclassesinsoftwaresystemsusingdynamicanalysisandentropybasedmetrics
AT minghua keadaidentifyingkeyclassesinsoftwaresystemsusingdynamicanalysisandentropybasedmetrics
AT liudongsheng keadaidentifyingkeyclassesinsoftwaresystemsusingdynamicanalysisandentropybasedmetrics