Simplified Readability Metrics

This paper describes a new approach to measuring the complexity of software systemswith considering their readability. Readability Metrics were first proposed by Chungand Yung 181 in 1990. Software industry uses software metrics to measure thecomplexity of software systems for software cost estimation, software developmentcontrol, software assurance, software testing, and software maintenance [3], [71, [9], 151,[18]. Most of the software metrics measure the software complexity by one or more ofthe software attributes. We usually class@ the software attributes that software metricsuse for measuring complexity into three categories: size, control flow, and data flow [5],f71. All the three categories concern with the physical activities of softwaredevelopment. Readability Metrics have been outstanding among the existing softwarecomplexity metrics for taking nonphysical software attributes, like readability, intoconsiderations [8]. The applications of Readability Metrics are good in indicating theadditional efforts required for less readable software systems, and help in keeping thesoftware systems maintainable. However, the numerous metrics and the complicatedformulas in the family usually make it tedious to apply Readability Metrics to largescale software systems. In this paper, we propose a simplified approach to ReadabilityMetrics. We reduce the number of required measures and keep the considerations onsoftware readability. We introduce our Readability model in a more formal way. TheReadability Metrics preprocesses algorithm is developed with compilers front-endtechniques. The experiment results show that this simplified approach has goodpredictive power in measuring software complexity with software readability, inaddition to its ease of applying. The applications of Readability Metrics indicate thereadability of software systems and help in keeping the source code readable andmaintainable.

[1]  H. E. Dunsmore,et al.  Data Referencing: An Empirical Investigation , 1979, Computer.

[2]  Elaine J. Weyuker,et al.  Evaluating Software Complexity Measures , 2010, IEEE Trans. Software Eng..

[3]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[4]  June M. Verner,et al.  A Software Size Model , 1992, IEEE Trans. Software Eng..

[5]  Maurice H. Halstead,et al.  Guest Editorial on Software Science , 1979, IEEE Transactions on Software Engineering.

[6]  Ronald D. Gordon,et al.  Measuring Improvements in Program Clarity , 1979, IEEE Transactions on Software Engineering.

[7]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

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

[9]  H. E. Dunsmore,et al.  Software Science Revisited: A Critical Analysis of the Theory and Its Empirical Support , 1983, IEEE Transactions on Software Engineering.

[10]  James W. Howatt,et al.  A Software Science Model of Compile Time , 1989, IEEE Trans. Software Eng..

[11]  Neal S. Coulter,et al.  Software Science and Cognitive Psychology , 1983, IEEE Transactions on Software Engineering.

[12]  Enrique Ivan Oviedo Control flow, data flow and program complexity , 1984 .

[13]  Chi-Ming Chung,et al.  Static and dynamic data flow metrics , 1989 .

[14]  C.V. Ramamoorthy,et al.  Advances in Software Engineering , 1996, Computer.

[15]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[16]  Austin Melton,et al.  A Synthesis of Software Science Measures and the Cyclomatic Number , 1988, IEEE Trans. Software Eng..

[17]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.

[18]  Scott N. Woodfield An Experiment on Unit Increase in Problem Complexity , 1979, IEEE Transactions on Software Engineering.

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