On Comparing Software Quality Metrics of Traditional vs Blockchain-Oriented Software: An Empirical Study

Driven by the surge of interest generated around blockchain technologies over the last years, a new category of systems, called Blockchain-Oriented Software (BOS), which are strictly tied to Blockchain distributed environment, has become increasingly popular. Yet, there is not a thorough understanding of their structure and behaviour and if and to which extent they differ from traditional software systems. The present work provide a first statistical characterisation of BOS. We analysed and compared 5 C++ open source Blockchain-Oriented and 5 Traditional Java software systems, aiming at detecting potential differences between the two categories of projects, and specifically in the statistical distribution of 10 software metrics. Although, in general, the statistical distributions for Traditional software and Blockchain software show similarities, the distribution of Average Cyclomatic and Ration Comment To Code metrics reveal significant differences in their queue, whereas the Number of Statements metric shows meaningful differences on the double Pareto distribution.

[1]  Michele Marchesi,et al.  An Agile Software Engineering Method to Design Blockchain Applications , 2018, CEE-SECR '18.

[2]  Mohammad Alshayeb,et al.  An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes , 2003, IEEE Trans. Software Eng..

[3]  Michele Marchesi,et al.  Could micro patterns be used as software stability indicator? , 2015, 2015 IEEE 2nd International Workshop on Patterns Promotion and Anti-patterns Prevention (PPAP).

[4]  Michele Marchesi,et al.  Smart contracts software metrics: A first study , 2018, PloS one.

[5]  Michele Marchesi,et al.  Micro Pattern Fault-Proneness , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[6]  Ewan D. Tempero,et al.  Understanding the shape of Java software , 2006, OOPSLA '06.

[7]  Ramanath Subramanyam,et al.  Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects , 2003, IEEE Trans. Software Eng..

[8]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..

[9]  Nachiappan Nagappan,et al.  Predicting defects using network analysis on dependency graphs , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[10]  Diomidis Spinellis,et al.  Power laws in software , 2008, TSEM.

[11]  Uwe Zdun,et al.  Smart contracts: security patterns in the ethereum ecosystem and solidity , 2018, 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE).

[12]  Andrea Pinna,et al.  Initial Coin Offerings and Agile Practices , 2018, Future Internet.

[13]  Michele Marchesi,et al.  A Curated Benchmark Collection of Python Systems for Empirical Studies on Software Engineering , 2015, PROMISE.

[14]  Robert M. Hierons,et al.  Smart contracts vulnerabilities: a call for blockchain software engineering? , 2018, 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE).

[15]  Michele Marchesi,et al.  The ICO phenomenon and its relationships with ethereum smart contract environment , 2018, 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE).

[16]  Andrea Pinna,et al.  A Petri Nets Model for Blockchain Analysis , 2017, Comput. J..

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

[18]  Michele Marchesi,et al.  A Statistical Comparison of Java and Python Software Metric Properties , 2016, 2016 IEEE/ACM 7th International Workshop on Emerging Trends in Software Metrics (WETSoM).

[19]  N. Hovius,et al.  The characterization of landslide size distributions , 2001 .

[20]  Raed Shatnawi,et al.  An Empirical Study of the Effect of Power Law Distribution on the Interpretation of OO Metrics , 2013 .

[21]  Giulio Concas,et al.  Software Metrics in Agile Software: An Empirical Study , 2014, XP.

[22]  Giuseppe Destefanis,et al.  A Longitudinal Study of Anti Micro Patterns in 113 versions of Tomcat , 2018, PROMISE.

[23]  Michael Mitzenmacher,et al.  Dynamic Models for File Sizes and Double Pareto Distributions , 2004, Internet Math..

[24]  Andrea Pinna,et al.  Blockchain-Oriented Software Engineering: Challenges and New Directions , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[25]  James Noble,et al.  Scale-free geometry in OO programs , 2005, CACM.

[26]  Stéphane Ducasse,et al.  SmartInspect: solidity smart contract inspector , 2018, 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE).

[27]  Tom DeMarco,et al.  Controlling Software Projects: Management, Measurement, and Estimates , 1986 .