Skip to main content
Log in

Measuring Structural Quality of Object-Oriented Softwares via Bug Propagation Analysis on Weighted Software Networks

  • Regular Paper
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Sourceforge. http://sourceforge.net, May 15, 2009.

  2. Freshmeat. http://freshmeat.net, May 15, 2009.

  3. 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.

    Article  Google Scholar 

  4. Fenton N E, Pfleeger S L. Software Metrics: A Rigorous and Practical Approach, 2nd Edition, London: International Thomson Computer Press, 1996.

    Google Scholar 

  5. 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.

  6. Myers C R. Software systems as complex networks: Structure function, and evolvability of software collaboration graphs. Physical Review E, 2003, 68(4): 046116.

    Article  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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.

    Article  Google Scholar 

  9. Challet D, Lombardoni A. Bug propagation and debugging in asymmetric software structures. Physical Review E, 2004, 70(4): 1015–1030.

    Article  Google Scholar 

  10. 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.

    Article  Google Scholar 

  11. 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.

  12. 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.

    Article  Google Scholar 

  13. 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.

    Article  Google Scholar 

  14. Martin R. Design principles and design patterns. http://www.objectmentor.com, May 20, 2009.

  15. Dependency finder. http://sourceforge.net/projects/depfind/files/, Jun. 3, 2009.

  16. Valverde S, Sole R V. Hierarchical small worlds in software architecture. Working Paper, SFI/03-07-044, SanteFe Insitute, 2003.

  17. Chidamber S R, Kemerer C F. A metrics suite for objectoriented design. IEEE Transactions on Software Engineering, 1994, 20(6): 476–493.

    Article  Google Scholar 

  18. 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.

    Article  Google Scholar 

  19. 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.

    Article  Google Scholar 

  20. 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.

    Article  Google Scholar 

  21. 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.

    Article  Google Scholar 

  22. Basili V R, Perricone B. Software errors and complexity: An empirical investigation. Communications of the ACM, 1984, 27(1): 42–52.

    Article  Google Scholar 

  23. 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.

    Article  Google Scholar 

  24. 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.

    Article  Google Scholar 

  25. Gamma E, Helm R, Johnson R, Vlissides J M. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley Professional, Indiana, 1998.

  26. Open Source Java Applications. http://www.vincehuston.org/dp/, Jun. 3, 2009.

  27. CKJM. http://www.spinellis.gr/sw/ckjm/, Jun. 3, 2009.

  28. Eclipse metrics plug-in. http://metrics.sourceforge.net/, Jun. 3, 2009.

  29. Pajek. http://pajek.imfm.si/doku.php, Jun. 3, 2009.

  30. Data for the case studies. http://blog.sina.com.cn/breezepan, Jun. 3, 2009.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bing Li.

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

Reprints 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

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-010-9399-9

Keywords

Navigation