Cargando…

Measuring Software Modularity Based on Software Networks

Modularity has been regarded as one of the most important properties of a successful software design. It has significant impact on many external quality attributes such as reusability, maintainability, and understandability. Thus, proposing metrics to measure the software modularity can be very usef...

Descripción completa

Detalles Bibliográficos
Autores principales: Xiang, Yiming, Pan, Weifeng, Jiang, Haibo, Zhu, Yunfang, Li, Hao
Formato: Online Artículo Texto
Lenguaje:English
Publicado: MDPI 2019
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7514828/
https://www.ncbi.nlm.nih.gov/pubmed/33267058
http://dx.doi.org/10.3390/e21040344
_version_ 1783586678642835456
author Xiang, Yiming
Pan, Weifeng
Jiang, Haibo
Zhu, Yunfang
Li, Hao
author_facet Xiang, Yiming
Pan, Weifeng
Jiang, Haibo
Zhu, Yunfang
Li, Hao
author_sort Xiang, Yiming
collection PubMed
description Modularity has been regarded as one of the most important properties of a successful software design. It has significant impact on many external quality attributes such as reusability, maintainability, and understandability. Thus, proposing metrics to measure the software modularity can be very useful. Although several metrics have been proposed to characterize some modularity-related attributes, they fail to characterize software modularity as a whole. A complex network uses network models to abstract the internal structure of complex systems, providing a general way to analyze complex systems as a whole. In this paper, we introduce the complex network theory into software engineering and employ modularity, a metric widely used in the field of community detection in complex network research, to measure software modularity as a whole. First, a specific piece of software is represented by a software network, feature coupling network (FCN), where methods and attributes are nodes, couplings between methods and attributes are edges, and the weight on the edges denotes the coupling strength. Then, modularity is applied to the FCN to measure software modularity. We apply the Weyuker’s criteria which is widely used in the field of software metrics, to validate the modularity as a software metric theoretically, and also perform an empirical evaluation using open-source Java software systems to show its effectiveness as a software metric to measure software modularity.
format Online
Article
Text
id pubmed-7514828
institution National Center for Biotechnology Information
language English
publishDate 2019
publisher MDPI
record_format MEDLINE/PubMed
spelling pubmed-75148282020-11-09 Measuring Software Modularity Based on Software Networks Xiang, Yiming Pan, Weifeng Jiang, Haibo Zhu, Yunfang Li, Hao Entropy (Basel) Article Modularity has been regarded as one of the most important properties of a successful software design. It has significant impact on many external quality attributes such as reusability, maintainability, and understandability. Thus, proposing metrics to measure the software modularity can be very useful. Although several metrics have been proposed to characterize some modularity-related attributes, they fail to characterize software modularity as a whole. A complex network uses network models to abstract the internal structure of complex systems, providing a general way to analyze complex systems as a whole. In this paper, we introduce the complex network theory into software engineering and employ modularity, a metric widely used in the field of community detection in complex network research, to measure software modularity as a whole. First, a specific piece of software is represented by a software network, feature coupling network (FCN), where methods and attributes are nodes, couplings between methods and attributes are edges, and the weight on the edges denotes the coupling strength. Then, modularity is applied to the FCN to measure software modularity. We apply the Weyuker’s criteria which is widely used in the field of software metrics, to validate the modularity as a software metric theoretically, and also perform an empirical evaluation using open-source Java software systems to show its effectiveness as a software metric to measure software modularity. MDPI 2019-03-28 /pmc/articles/PMC7514828/ /pubmed/33267058 http://dx.doi.org/10.3390/e21040344 Text en © 2019 by the authors. 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 (http://creativecommons.org/licenses/by/4.0/).
spellingShingle Article
Xiang, Yiming
Pan, Weifeng
Jiang, Haibo
Zhu, Yunfang
Li, Hao
Measuring Software Modularity Based on Software Networks
title Measuring Software Modularity Based on Software Networks
title_full Measuring Software Modularity Based on Software Networks
title_fullStr Measuring Software Modularity Based on Software Networks
title_full_unstemmed Measuring Software Modularity Based on Software Networks
title_short Measuring Software Modularity Based on Software Networks
title_sort measuring software modularity based on software networks
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7514828/
https://www.ncbi.nlm.nih.gov/pubmed/33267058
http://dx.doi.org/10.3390/e21040344
work_keys_str_mv AT xiangyiming measuringsoftwaremodularitybasedonsoftwarenetworks
AT panweifeng measuringsoftwaremodularitybasedonsoftwarenetworks
AT jianghaibo measuringsoftwaremodularitybasedonsoftwarenetworks
AT zhuyunfang measuringsoftwaremodularitybasedonsoftwarenetworks
AT lihao measuringsoftwaremodularitybasedonsoftwarenetworks