Abstract
The quality of a software system is partially determined by its structure (topological structure), so the need to quantitatively analyze the quality of the structure has become eminent. In this paper a novel metric called software quality of structure (SQoS) is presented for quantitatively measuring the structural quality of object-oriented (OO) softwares via bug propagation analysis on weighted software networks (WSNs). First, the software systems are modeled as a WSN, weighted class dependency network (WCDN), in which classes are nodes and the interaction between every pair of classes if any is a directed edge with a weight indicating the probability that a bug in one class will propagate to the other. Then we analyze the bug propagation process in the WCDN together with the bug proneness of each class, and based on this, a metric (SQoS) to measure the structural quality of OO softwares as a whole is developed. The approach is evaluated in two case studies on open source Java programs using different software structures (one employs design patterns and the other does not) for the same OO software. The results of the case studies validate the effectiveness of the proposed metric. The approach is fully automated by a tool written in Java.
Similar content being viewed by others
References
Sourceforge. http://sourceforge.net, May 15, 2009.
Freshmeat. http://freshmeat.net, May 15, 2009.
Spinellis D, Gousios G, Karakoidas V, Louridas P, Adams P J, Samoladas I, Stamelos I. Evaluating the quality of open source software. Electronic Notes in Theoretical Computer Science, 2009, 233: 5–28.
Fenton N E, Pfleeger S L. Software Metrics: A Rigorous and Practical Approach, 2nd Edition, London: International Thomson Computer Press, 1996.
Abdelmoez W, Shereshevsky M, Gunnalan R, Ammar H H, Yu B, Bogazzi S, Korkmaz M, Mili A. Quantifying software architectures: An analysis of change propagation probabilities. In Proc. the 3rd ACS/IEEE International Conference on Computer Systems and Applications, Cairo, Egypt, Jan. 3-6, 2005, pp.687–694.
Myers C R. Software systems as complex networks: Structure function, and evolvability of software collaboration graphs. Physical Review E, 2003, 68(4): 046116.
Li B, Ma Y, Liu J, Ding Q. Advances in the studies on complex networks of software systems. Advances in Mechanics, 2008, 38(6): 805–814. (In Chinese)
MacCormack A, Rusnak J, Bald Win C Y. Exploring the structure of complex software designs: An empirical study of open source and proprietary code. Management Science, 2006, 52(7): 1015–1030.
Challet D, Lombardoni A. Bug propagation and debugging in asymmetric software structures. Physical Review E, 2004, 70(4): 1015–1030.
Liu J, Lu J, He K, Li B, TSE C K. Characterizing the structural quality of general complex software networks. International Journal of Bifurcation and Chaos, 2008, 18(4): 605–613.
Srikanth H, Williams L, Osborne J. System test case prioritization of new and regression test cases. In Proc. International Symposium on Empirical Software Engineering (ISESE 2005), Queensland, Australia, Nov. 17-18, 2005, pp.64–73.
Subramanyan R, Krishnan M S. Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. IEEE Transactions on Software Engineering, 2003, 29(10): 297–310.
Pan W, Li B, Ma Y, Liu J, Qin Y. Class structure refactoring of object-oriented softwares using community detection in dependency networks. Frontiers of Computer Science in China, 2009, 3(3): 396–404.
Martin R. Design principles and design patterns. http://www.objectmentor.com, May 20, 2009.
Dependency finder. http://sourceforge.net/projects/depfind/files/, Jun. 3, 2009.
Valverde S, Sole R V. Hierarchical small worlds in software architecture. Working Paper, SFI/03-07-044, SanteFe Insitute, 2003.
Chidamber S R, Kemerer C F. A metrics suite for objectoriented design. IEEE Transactions on Software Engineering, 1994, 20(6): 476–493.
Basili V R, Briand L C, Melo W L. A validation of objectoriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 1996, 22(10): 751–761.
Emam K EI, Benlarbi S, Goel N. The confounding effect of class size on the validity of object-oriented metrics. IEEE Transactions on Software Engineering, 2001, 27(6): 630–650.
Gyimóthy T, Ferenc R, Siket I. Empirical validation of objectoriented metrics on open source software for fault prediction. IEEE Transactions on Software Engineering, 2003, 31(10): 897–910.
Xu J, Ho D, Capretz L F. An empirical validation of objectoriented design metrics for fault prediction. Journal of Computer Science, 2008, 4(7): 571–577.
Basili V R, Perricone B. Software errors and complexity: An empirical investigation. Communications of the ACM, 1984, 27(1): 42–52.
Prechelt L, Unger B, Philippsen M, Tichy W F. Two controlled experiments assessing the usefulness of design pattern documentation in program maintenance. IEEE Transactions on Software Engineering, 2002, 28(6): 595–606.
Tsantalis N, Chatzigeorgiou E, Stephanides G, Halkidis S T. Design pattern detection using similarity scoring. IEEE Transactions on Software Engineering, 2006, 32(11): 896–909.
Gamma E, Helm R, Johnson R, Vlissides J M. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley Professional, Indiana, 1998.
Open Source Java Applications. http://www.vincehuston.org/dp/, Jun. 3, 2009.
CKJM. http://www.spinellis.gr/sw/ckjm/, Jun. 3, 2009.
Eclipse metrics plug-in. http://metrics.sourceforge.net/, Jun. 3, 2009.
Pajek. http://pajek.imfm.si/doku.php, Jun. 3, 2009.
Data for the case studies. http://blog.sina.com.cn/breezepan, Jun. 3, 2009.
Author information
Authors and Affiliations
Corresponding author
Additional information
This work is supported by the National Basic Research 973 Program of China under Grant No. 2007CB310801, the National Natural Science Foundation of China under Grant Nos. 60873083, 60803025, 60703009 and 60703018, the Natural Science Foundation of Hubei Province under Grant No. 2008ABA379, the Natural Science Foundation of Hubei Province for Distinguished Young Scholars under Grant No. 2008CDB351, the Research Fund for the Doctoral Program of Higher Education of China under Grant Nos. 20070486065 and 20090141120022, and the Fundamental Research Funds for the Central Universities of China under Grant No. 6082005.
Rights and permissions
About this article
Cite this article
Pan, WF., Li, B., Ma, YT. et al. Measuring Structural Quality of Object-Oriented Softwares via Bug Propagation Analysis on Weighted Software Networks. J. Comput. Sci. Technol. 25, 1202–1213 (2010). https://doi.org/10.1007/s11390-010-9399-9
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11390-010-9399-9