Characterizing Software Stability via Change Propagation Simulation

Software stability means the resistance to the amplification of changes in software. It has become one of the most important attributes that affect maintenance cost. To control the maintenance cost, many approaches have been proposed to measure software stability. However, it is still a very difficu...

Full description

Bibliographic Details
Main Authors: Weifeng Pan, Haibo Jiang, Hua Ming, Chunlai Chai, Bi Chen, Hao Li
Format: Article
Language:English
Published: Hindawi-Wiley 2019-01-01
Series:Complexity
Online Access:http://dx.doi.org/10.1155/2019/9414162
Description
Summary:Software stability means the resistance to the amplification of changes in software. It has become one of the most important attributes that affect maintenance cost. To control the maintenance cost, many approaches have been proposed to measure software stability. However, it is still a very difficult task to evaluate the software stability especially when software becomes very large and complex. In this paper, we propose to characterize software stability via change propagation simulation. First, we propose a class coupling network (CCN) to model software structure at the class level. Then, we analyze the change propagation process in the CCN by using a simulation way, and by doing so, we develop a novel metric, SS (software stability), to measure software stability. Our SS metric is validated theoretically using the widely accepted Weyuker’s properties and empirically using a set of open source Java software systems. The theoretical results show that our SS metric satisfies most of Weyuker’s properties with only two exceptions, and the empirical results show that our metric is an effective indicator for software quality improvement and class importance. Empirical results also show that our approach has the ability to be applied to large software systems.
ISSN:1076-2787
1099-0526