Quantifying internal attributes of functional programs

Abstract There has been considerable interest in the use of metrics to quantify various quality attributes of software systems 1–4 . However, much of the reported research has been concerned with systems which are implemented in imperative and (to a lesser extent) object-oriented languages. The aim of the research reported here was to determine a suite of metrics which could be used to assess the quality attributes of code written in functional languages. This is a necessary preliminary step to assessing programs written in functional languages in a quantitative manner. In this paper we identify a set of appropriate measures and suggest additional measures to cope with the more novel aspects of functional languages. Experiments to determine whether or not these suggested measures do have any correlation with quality attributes have been performed with imperative languages 5 . Similar experiments with functional languages will also need to be performed.

[1]  D. C. Ince,et al.  An approach to automated software design based on product metrics , 1988, Softw. Eng. J..

[2]  R. Harrison A Declarative Development Technique , 1970 .

[3]  Glenford J Myers,et al.  Reliable software through composite design , 1975 .

[4]  Carl Sturtivant,et al.  What is an Efficient Implementation of the \lambda-calculus? , 1991, FPCA.

[5]  Guy Argo Improving the three instruction machine , 1989, FPCA.

[6]  Martin Shepperd,et al.  Early life-cycle metrics and software quality models. , 1990 .

[7]  Barbara A. Kitchenham,et al.  Towards a constructive quality model. Part 1: Software quality modelling, measurement and prediction , 1987, Softw. Eng. J..

[8]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[9]  John N. Buxton,et al.  Craft of software engineering , 1987, International computer science series.

[10]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[11]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[12]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

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

[14]  Shari Lawrence Pfleeger,et al.  Software Metrics , 1991 .

[15]  Meilir Page-Jones,et al.  The practical guide to structured systems design , 1980 .

[16]  G. Frandsen What is an Efficient Implementation of the λ-calculus ? , 1991 .

[17]  Barbara A. Kitchenham,et al.  An evaluation of some design metrics , 1990, Softw. Eng. J..

[18]  Martin Shepperd,et al.  An evaluation of software product metrics , 1988 .

[19]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[20]  John E. Gaffney,et al.  Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation , 1983, IEEE Transactions on Software Engineering.

[21]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[22]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[23]  Marinus J. Plasmeijer,et al.  Generating Efficient Code for Lazy Functional Languages , 1991, FPCA.

[24]  Stuart H. Zweben,et al.  Measuring the quality of structured designs , 1981, J. Syst. Softw..

[25]  Martin Shepperd Design metrics: an empirical analysis , 1990 .

[26]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..