Implementing Source Code Metrics for Software quality analysis

Developing a high quality software product in an economical way is one of the fundamental goals of any software engineering activity. As computers are being used in almost every conceivable area in the contemporary world, quality of software becomes a key factor in the strategic success of a business and human security in general. Finding determinants of software quality and mapping them into quantitative measures is a crucial factor in sustainable success of an end product. Software metrics as means of quality analysis has attracted a lot of attention among researchers and practitioners in last one decade. Mapping of program characteristics into these metric values indicate structural complexity and behavior of an information system. In this case study, the five software metricslines of code (LOC), cyclomatic complexity (MVG), Halstead volume (HV), number of modules (NOM) and lines of comment (COM) have been utilized to analyze a set of three java based sorting programs. Three software measurement tools have been applied on them to judge their performance with respect to the metrics mentioned therein. Also a derived metric maintainability index has been calculated from the base metrics to indicate relative maintainability of the source code. Comparative analysis of the chosen tools have also been undertaken to reveal how they differ in delivering results for the same programs. Further, some other quality factors which can be derived from the constituent metrics are mentioned in a later sub-section.

[1]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[2]  Pradeep Singh,et al.  An Investigation of the Relationships between Software Metrics and Defects , 2011 .

[3]  Welf Löwe,et al.  Quantitative Evaluation of Software Quality Metrics in Open-Source Projects , 2009, 2009 International Conference on Advanced Information Networking and Applications Workshops.

[4]  Yuhanis Yusof,et al.  Automation of Software Artifacts Classification , 2010 .

[5]  Yuming Zhou,et al.  On the ability of complexity metrics to predict fault-prone classes in object-oriented systems , 2010, J. Syst. Softw..

[6]  Paul A. Judas,et al.  A historical compilation of software metrics with applicability to NASA’s Orion spacecraft flight software sizing , 2011, Innovations in Systems and Software Engineering.

[7]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[8]  Kurt D. Welker,et al.  Software Maintainability Index Revisited , 2001 .

[9]  Neeraj Kumar Goyal,et al.  Predicting Fault-prone Software Module Using Data Mining Technique and Fuzzy Logic , 2010 .

[10]  Kiyoshi Agusa,et al.  Software Metrics Based on Coding Standards Violations , 2011, 2011 Joint Conference of the 21st International Workshop on Software Measurement and the 6th International Conference on Software Process and Product Measurement.

[11]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[12]  Harald C. Gall,et al.  Do Code and Comments Co-Evolve? On the Relation between Source Code and Comment Changes , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[13]  Domenico Cotroneo,et al.  Is software aging related to software metrics? , 2010, 2010 IEEE Second International Workshop on Software Aging and Rejuvenation.

[14]  Marco Tulio Valente,et al.  Uncovering Causal Relationships between Software Metrics and Bugs , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[15]  N. Madhavji,et al.  Validating Object-Oriented Design Metrics on a Commercial Java Application , 2000 .

[16]  Yuming Zhou,et al.  Predicting the maintainability of open source software using design metrics , 2008, Wuhan University Journal of Natural Sciences.