Journal of Computer Science and Technology

, Volume 25, Issue 6, pp 1202–1213 | Cite as

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

  • Wei-Feng Pan
  • Bing Li
  • Yu-Tao Ma
  • Ye-Yi Qin
  • Xiao-Yan Zhou
Regular Paper

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.

Keywords

bug propagation design pattern object-oriented (OO) software software network structural quality 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Sourceforge. http://sourceforge.net, May 15, 2009.
  2. [2]
    Freshmeat. http://freshmeat.net, May 15, 2009.
  3. [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.CrossRefGoogle Scholar
  4. [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. [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.Google Scholar
  6. [6]
    Myers C R. Software systems as complex networks: Structure function, and evolvability of software collaboration graphs. Physical Review E, 2003, 68(4): 046116.CrossRefGoogle Scholar
  7. [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. [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.CrossRefGoogle Scholar
  9. [9]
    Challet D, Lombardoni A. Bug propagation and debugging in asymmetric software structures. Physical Review E, 2004, 70(4): 1015–1030.CrossRefGoogle Scholar
  10. [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.CrossRefGoogle Scholar
  11. [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.Google Scholar
  12. [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.CrossRefGoogle Scholar
  13. [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.CrossRefGoogle Scholar
  14. [14]
    Martin R. Design principles and design patterns. http://www.objectmentor.com, May 20, 2009.
  15. [15]
    Dependency finder. http://sourceforge.net/projects/depfind/files/, Jun. 3, 2009.
  16. [16]
    Valverde S, Sole R V. Hierarchical small worlds in software architecture. Working Paper, SFI/03-07-044, SanteFe Insitute, 2003.Google Scholar
  17. [17]
    Chidamber S R, Kemerer C F. A metrics suite for objectoriented design. IEEE Transactions on Software Engineering, 1994, 20(6): 476–493.CrossRefGoogle Scholar
  18. [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.CrossRefGoogle Scholar
  19. [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.CrossRefGoogle Scholar
  20. [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.CrossRefGoogle Scholar
  21. [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.CrossRefGoogle Scholar
  22. [22]
    Basili V R, Perricone B. Software errors and complexity: An empirical investigation. Communications of the ACM, 1984, 27(1): 42–52.CrossRefGoogle Scholar
  23. [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.CrossRefGoogle Scholar
  24. [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.CrossRefGoogle Scholar
  25. [25]
    Gamma E, Helm R, Johnson R, Vlissides J M. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley Professional, Indiana, 1998.Google Scholar
  26. [26]
    Open Source Java Applications. http://www.vincehuston.org/dp/, Jun. 3, 2009.
  27. [27]
  28. [28]
    Eclipse metrics plug-in. http://metrics.sourceforge.net/, Jun. 3, 2009.
  29. [29]
    Pajek. http://pajek.imfm.si/doku.php, Jun. 3, 2009.
  30. [30]
    Data for the case studies. http://blog.sina.com.cn/breezepan, Jun. 3, 2009.

Copyright information

© Springer 2010

Authors and Affiliations

  • Wei-Feng Pan
    • 1
  • Bing Li
    • 1
    • 2
    • 3
  • Yu-Tao Ma
    • 1
    • 3
  • Ye-Yi Qin
    • 1
  • Xiao-Yan Zhou
    • 1
  1. 1.State Key Laboratory of Software EngineeringWuhan UniversityWuhanChina
  2. 2.School of ComputerWuhan UniversityWuhanChina
  3. 3.Complex Networks Research CenterWuhan UniversityWuhanChina

Personalised recommendations