Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 30576
Quantifying the Stability of Software Systems via Simulation in Dependency Networks

Authors: Weifeng Pan

Abstract:

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.

Keywords: Software Maintenance, design pattern, Software stability, change propagation, object-oriented (OO) software

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1331627

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1344

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.