Measuring Structural Quality of Object-Oriented Softwares via Bug Propagation Analysis on Weighted Software Networks
- 165 Downloads
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.
Keywordsbug propagation design pattern object-oriented (OO) software software network structural quality
Unable to display preview. Download preview PDF.
- Sourceforge. http://sourceforge.net, May 15, 2009.
- Freshmeat. http://freshmeat.net, May 15, 2009.
- Fenton N E, Pfleeger S L. Software Metrics: A Rigorous and Practical Approach, 2nd Edition, London: International Thomson Computer Press, 1996.Google Scholar
- 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
- 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
- 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
- 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.Google Scholar
- Gamma E, Helm R, Johnson R, Vlissides J M. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley Professional, Indiana, 1998.Google Scholar
- 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.