Quantifying the Stability of Software Systems via Simulation in Dependency Networks

The stability of a software system is one of the most important quality attributes affecting the maintenance effort. Many techniques have been proposed to support the analysis of software stability at the architecture, file, and class level of software systems, but little effort has been made for that at the feature (i.e., method and attribute) level. And the assumptions the existing techniques based on always do not meet the practice to a certain degree. Considering that, in this paper, we present a novel metric, Stability of Software (SoS), to measure the stability of object-oriented software systems by software change propagation analysis using a simulation way in software dependency networks at feature level. The approach is evaluated by case studies on eight open source Java programs using different software structures (one employs design patterns versus one does not) for the same object-oriented program. The results of the case studies validate the effectiveness of the proposed metric. The approach has been fully automated by a tool written in Java.

Authors:



References:
[1] Roger S. Pressman, Software Engineering: A Practitioner-s Approach.
New York, England: McGraw-Hill, 1992.
[2] S. Yau and J. S. Collofello, "Design stability measures for software
maintenance," IEEE Transactions on Software Engineering, vol. 11, no. 9,
pp. 849-856, 1985.
[3] IEEE Std. 610.12, Standard Glossary of Software Engineering Terminology,
IEEE Computer Socienty Press, Los Alamitos, CA, 1990.
[4] S. Yau and J. S. Collofello, "Some Stability Measures for Software
Maintenance," IEEE Transactions on Software Engineering, vol. SE-6,
no. 6, pp. 545-552, 1980.
[5] N. E. Fenton and S. L. Pfleeger, Software Metrics: A Rigorous and Practical
Approach, 2rd ed. Londom, UK: International Thomson Computer
Press, 1996.
[6] C R. Myers, "Software systems as complex networks: Structure function,
and evolvability of software collabration graphs", Physical Review E,
2003, 68: 046116.
[7] S. Bohner and R. Arnold, Software Change Impact Analysis, IEEE
Computer Society Press, Los Alamitos, CA, USA, 1996.
[8] D. Kung, J. Gao, P. Hsia, F. Wen, Y. Toyoshima and C. Chen, "Change
Impact Identification in Object-Oriented Software Maintenance," Proc. of
IEEE International Conference on Software Maintenance, pp. 202-211,
1994.
[9] A. MacCormack, J. Rusnak and C. Y. Bald Win, "Exploring the Structure
of Complex Software Designs: An Empirical Study of Open Source and
Proprietary code," Management Science, vol. 52, no. 7, pp. 1015-1030,
2006.
[10] N. Tsantalis, A. Chatzigeorgiou, G. Stephanides and I. Delegiannis,
"Probabilistic Evaluation of Object-Oriented System," Pro. of the 10th
International Symposium on Software metrics, pp. 26-33, 2004.
[11] I. Shaik, W. Abdelmoez, R. Gunnalan, A. Mili, and C. Fuhrman, "Using
change propagation probabilities to assess quality attributes of software
architectures," Proc. of IEEE International Conference on Computer
Systems and Applications, pp. 704-711, March, 2006.
[12] J. Liu, J. Lu, K. He, B. Li and C. K. TSE, "Characterizing the structural
quality of general complex software networks via statistical propagation
dynamics," International Journal of Bifurcation and Chaos, vol. 18, no. 4,
2008.
[13] L. Li, G. Qian and L. Zhang, "Evaluation of software change propagation
using simulation," Proc. of World Coongress on Software Engineering
2009, pp. 28-33, May 19-21, 2009.
[14] D. Hyland-Wood, D. Carrington and S. Kaplan, "Scale-free nature of
Java software package, class and method collaboration graphs," Technical
Report of MiND Laboratory, 2006, No. TR-MS1286, University of
Maryland College Park, 2006.
[15] H. Li, B. Huang and J. Lu, "Dynamical evolution analysis of the objectoriented
software systems," Proc. of 2008 IEEE Congress on Evolutionary
Computation, pp. 3030-3035, June 1-6, 2008.
[16] H. Li, "Scale-free networks models with accelerating growth," Frontiers
of Computer Science in China, vol. 3, no. 3, pp. 3030-3035, 2009.
[17] J. Liu, K. He, Y. Ma and R. Peng, "Scale free in software metrics,"
Proc. of IEEE Proceedings of 30th Annual International Computer
Software and Applications Conference, pp. 229-235, Sept. 18-21, 2006.
[18] W. F. Pan, B. Li, Y. T. Ma, J. Liu and Y. Y. Qin, "Class structure
refactoring of object-oriented softwares using community detection in
dependency networks," Frontiers of Computer Science in China, vol. 3,
no. 3, pp. 396-404, 2009.
[19] B. Li, Y. T. Ma and J. Liu, "Advances in the studies on complex networks
of software systems," Advances in Mechanics, vol. 38, no. 6, pp. 805-814,
2008.
[20] B. G. Ryder and F. Tip, "Change impact analysis for object-oriented
programs," Proc. of ACM SIGPLAN-SIGSOFT Workshop on Program
analysis for software tools and engineering, pp. 45-53, 2001.
[21] JUnit, http://junit.sourceforge.net, May 5, 2010.
[22] N. Tsantalis, E. Chatzigeorgous, G. Stephanides and S. T. Halkidis,
"Design pattern detection using similarity scoring," IEEE Transactions
on Software Engineering, vol. 32, no. 11, pp. 896-909, Nov., 2006.
[23] R. Martin, Design principles and design pattern.
http://www.objectmentor.com, May 5, 2010.
[24] Data for the case studies, http://blog.sina.com.cn/breezepan, May 5,
2010.
[25] Pajek, http://pajek.imfm.si/doku.php, May 5, 2010.