SCMS: Tool for Assessing a Novel Taxonomy of Complexity Metrics for any Java Project at the Class and Method Levels based on Statement Level Metrics

A R T I C L E I N F O A B S T R A C T Article history: Received: 20 September, 2019 Accepted: 14 November, 2019 Online: 05 December, 2019 Software is the primary and indispensable entity in our technologically driven world. Therefore, quality assurance, and in particular software testing, represents a vital component in the software development cycle. Throughout the years, many tools have been developed to collect metrics of software that had been implemented. These tools have some differences but continue to play an important role in improving the quality of software products. This paper introduces a newly developed tool, named Spectra Complexity Metrics System (SCMS), which compiles a novel taxonomy of complexity metrics of any given software written in the Java programming language. Our suggested metrics have been invented to identify and evaluate the characteristics of Java computer programs. They aim at increasing the efficiency of the testing process by significantly reducing the number of test cases without having a significant drop in test effectiveness. We assess our proposed taxonomy of different complexity metrics based on the product levels (statement, method, and class) and their characteristics. For further evaluation, our software metrics coverage is compared to other existing software metric tools. The results show the novelty of our taxonomy of complexity metrics and the capability of our tool to compute these measurements based on all three of the product level categories. We have published our tool at https://github.com/issararab/SCMS under an open-source license.

[1]  Charles W. Butler,et al.  Design complexity measurement and testing , 1989, CACM.

[2]  Jorge Cardoso,et al.  Control-flow Complexity Measurement of Processes and Weyuker's Properties , 2007 .

[3]  Kenneth I. Magel,et al.  Taxonomy Dimensions of Complexity Metrics , 2015 .

[4]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[5]  Diomidis Spinellis,et al.  Tool Writing: A Forgotten Art? , 2005, IEEE Softw..

[6]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[7]  Kenneth Magel,et al.  Test case selection based on a spectrum of complexity metrics , 2011 .

[8]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[9]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[10]  Issar Arab,et al.  Reducing the cost of mutation operators through a novel taxonomy: application on scripting languages , 2018, ICGDA.

[11]  Jorge Cardoso,et al.  How to Measure the Control-flow Complexity of Web Processes and Workflows , 2005 .

[12]  Laurie A. Williams,et al.  Evaluating Complexity, Code Churn, and Developer Activity Metrics as Indicators of Software Vulnerabilities , 2011, IEEE Transactions on Software Engineering.

[13]  Rüdiger Lincke,et al.  Comparing software metrics tools , 2008, ISSTA '08.

[14]  Sergio Gómez,et al.  Size reduction of complex networks preserving modularity , 2007, ArXiv.

[15]  David M. Weiss,et al.  Software Testing: Tools , 2010, Encyclopedia of Software Engineering.