Refining the axiomatic definition of internal software attributes

Several internal software attributes, like size, structural complexity, cohesion, coupling, have been introduced and used to reason about software engineering artifacts, and many measures have been proposed for them. Internal software attributes are important because they are believed to be related to quantities of industrial interest, like the number of defects or the development effort. However, the definition of internal software attributes still needs to be made more precise and formal, so measures can be defined that really quantify the attributes they purport to measure. In this paper, we extend, simplify, and refine an existing axiomatic approach that characterizes each internal attribute rigorously via a different set of axioms. This paper makes three specific contributions. First, the new proposal captures a larger set of aspects of software artifacts that may be relevant for internal software attributes than the original proposal did. Second, we identify the basic, foundational sets of axioms for each internal attribute studied, from which the other properties of the attribute can be derived, so the intrinsic properties of the attribute and their implications can be understood. Third, we investigate some relevant relationships among internal software attributes, so their similarities and differences, which are sometimes not well identified, are made more explicit.

[1]  Lionel C. Briand,et al.  A Unified Framework for Cohesion Measurement in Object-Oriented Systems , 2004, Empirical Software Engineering.

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

[3]  Sandro Morasca,et al.  Measuring attributes of concurrent software specifications in Petri nets , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

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

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

[6]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[7]  Sandro Morasca,et al.  Response to: Comments on "Property-Based Software Engineering Measurement: Refining the Additivity Properties" , 1997, IEEE Trans. Software Eng..

[8]  Sandro Morasca,et al.  Towards a theoretical framework for measuring software attributes , 1997, Proceedings Fourth International Software Metrics Symposium.

[9]  Geert Poels,et al.  Comments on "Property-Based Software Engineering Measurement: Refining the Additivity Properties" , 1997, IEEE Trans. Software Eng..

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

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

[12]  Hermann Kaindl,et al.  Coupling and cohesion metrics for knowledge-based systems using frames and rules , 2004, TSEM.

[13]  S. Jayaprakash,et al.  Properties of Control-Flow Complexity Measures , 1991, IEEE Trans. Software Eng..

[14]  Endre Pap,et al.  CHAPTER 2 – Some Elements of the Classical Measure Theory , 2002 .

[15]  Taghi M. Khoshgoftaar,et al.  Measuring coupling and cohesion: an information-theory approach , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[16]  Geert Poels,et al.  Distance-based software measurement: necessary and sufficient properties for software measures , 2000, Inf. Softw. Technol..

[17]  Ronald E. Prather An Axiomatic Theory of Software Complexity Measure , 1984, Comput. J..

[18]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

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

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

[21]  Sandro Morasca,et al.  Defining and Validating Measures for Object-Based High-Level Design , 1999, IEEE Trans. Software Eng..

[22]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..