Characterizing Software Stability via Change Propagation Simulation. (29th August 2019) - Pan, Weifeng; Jiang, Haibo; Ming, Hua; Chai, Chunlai; Chen, Bi; Li, Hao
Abstract : 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, S S (software stability), to measure software stability. OurS S 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 ourS S 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.