Font Size: a A A

Research On Software Modularity And Stability Measurement Method Based On Weighted Software Network

Posted on:2020-09-02Degree:MasterType:Thesis
Country:ChinaCandidate:H B JiangFull Text:PDF
GTID:2428330623458909Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Software structure refers to the relationship between elements and elements within the software,which has become a very important factor affecting software quality.With the increasing complexity of software functions the quality of software is difficult to guarantee.To understand a thing,we should adopt a quantitative approach,as well as in the field of software engineering: without metrics,there is no understanding and control.Therefore,to control or improve the quality of software,it is necessary to reasonably describe and effectively quantify the software structure.Software metrics have become an important research direction in the field of software engineering.Software metrics are a quantification of the quality attributes of the internal structure of the software.There are many aspects to the quality of the structure,including understandability,maintainability,stability,modularity,etc.Modularity and stability are the two important quality attributes of the software.Modularity has been regarded as one of the most important properties of the software design,which has significant impact on many external quality attributes.Therefore,it is useful to present indicators that measure the modularity of software.Software stability means resisting the amplification of software changes,and it has become one of the most important factors affecting maintenance costs.Although some domestic and foreign scholars have made many contributions in software modularity and stability,and have achieved many results,the existing work has the following shortcomings: 1)In the software modularity measurement research,the existing work focuses on the measurement of coupling and cohesion associated with software modularity,but not combining both coupling and cohesion,and thus measuring the modularity of the software as a whole.2)In terms of software stability metrics,existing work fails to fully consider the multiple coupling relationships between software elements,and also ignores the coupling strength between elements,considering only the "worst"(changes in elements will affect100% of other elements related to it)software stability analysis.The work of this paper ismainly aimed at the deficiencies of existing work in software modularity and stability measurement.It uses the intersection of complex network and software engineering to represent the structure of software into a kind of weighted complex network-weighted software network,node represents the internal elements(attributes,methods,or classes)of the software.The interaction between the elements is represented as edges,and at the same time,the edges are weighted,thus re-examining the modularity and stability of the software from the perspective of a complex network of software.The main research contents of this paper are as follows:1)Software modularity measurement method based on weighted software networkWe propose a new metric Q(modularity)that combines the coupling and cohesion between elements to measure the modularity of the software as a whole,including the following steps: First we propose a feature coupling network(FCN)to represent the software structure at the method and attribute level,where methods and attributes are nodes,couplings between methods and attributes are edges,and the weight on the edges denotes the coupling strength.Then,we employ modularity,a metric widely used in the field of community detection in complex network research,to measure software modularity as a whole.Finally,we apply the widely accepted Weyuker's criteria to validate our modularity theoretically,and also perform an empirical evaluation using open-source software encoded in Java to show its effectiveness as a metric to measure software modularity.2)Software stability measurement method based on change propagation simulationWe propose a software stability measurement method based on change propagation simulation,which uses a more accurate weighted directed software network to represent the structure of class granularity,considering seven coupling relationships between classes(such as inheritance,implementation,etc.).At the same time,changes propagate between classes with some probability,not 100%.Our method mainly includes the following steps: First,we propose a class-coupling network(CCN)to represent the class level software structure.Nodes represent classes and interfaces.Directed edges represent seven kinds of coupling relationships between classes and their directions.And the weight on the edge represents theprobability that the change will propagate between classes.Then,we analyze the different types of class changes,and propose a change propagation algorithm to simulate the propagation process of changes in CCN,and then construct a new metric SS(software stability)to measure the stability of the software.Finally,our SS metric is validated theoretically using the widely accepted Weyuker's properties and empirically using a set of open-source software encoded in Java.The theoretical results show that our SS metrics satisfy most of Weyuker's characteristics(with only two exceptions),and the empirical results show that our metric is an effective indicator for software quality improvements and key class.At the same time,it shows that our approach can be applied to large-scale software systems.
Keywords/Search Tags:modularity, stability, complex networks, change propagation, software maintenance
PDF Full Text Request
Related items