Object-Oriented Metrics: an Annotated Bibliography

Empirical Software Engineering Research Group

Department of Computing

Bournemouth University

Poole BH12 5BB, UK

Email:

rnemouth.ac.uk/ESERG/

This updated bibliography is copyright of Bournemouth University. The bibliography may be copied and distributed freely for non-profit making purposes, provided this copyright is acknowledged and this copyright notice is attached to any copies made.

[1] Aarsten, A. and M. Morisio. 'Using object oriented technology to measure the software process', in Proc. Proc. 3rd IFIP Int. Conf. on Achieving Quality in Software. Firenze, Italy: 1996.

Keywords: Man, Qual

Abstract: "This paper reports on how object-oriented concepts and technology have been applied to measure a software process in the ESSI AEFTA (Application Enabler Technology for Factory Automation) application experiment. Measurement is considered as a full scale project consisting of 1) modelling the software process, 2) defining goals for the project, 3) formalizing goals in process measures defined on the process model, 4) designing the technological support for measures (procedures and tools, repository), 5) implementing the technological support, 6) implementing the measurement process, 7) assessing the measurement process, modifying it, if needed. The object-oriented approach has been applied in 1, 4 and 5. The process model is defined using OMT; process measures are defined using a query language to express queries on OMT object models; the repository for measures is obtained by automatic translation of the OMT process model into a set of persistent C++ classes; process measures are manually translated in C++ functions members of the persistent classes. The advantages of applying the OO approach are discussed: sharing of tools, training, know-how and mindset with the rest of the project; ease in changing measures to adapt to changes in the process, thus possibility of applying an evolutionary incremental lifecycle to the measurement process; lower effort in the implementation of the technological support for measurement."

Notes: Maurizio Morisio is at . See also [Morisio, 1995, "A methodology to measure the software process"]

[2] Abbott, D. H., T. D. Korson, et al., A proposed design complexity measure for object-oriented development. No. TR 94-105, Clemson University, 1994.

Keywords: Prod, Des, Emp

Abstract: See also Ojha and McGregor, 1994. The measurement of software complexity has been a key interest of software engineers for many years. However, design metrics for the object-oriented paradigm have been little studied. We propose a metric for measuring the number and strength of the object interactions permitted by an object-oriented design and show that this metric is useful for predicting experts' design preferences. The metric is derived from the design information captured in class definitions and hence can be calculated relatively early in the development life-cycle and calculated objectively. The conceptual model of complexity that supports the metric distinguishes two types of complexity applicable to class definitions - interaction level and interface size - and the derivation of the metric shows how these two measures relate to the proposed metric. To validate the metric, we prepared/located 9 sets of 2 or 3 design alternatives and subjected these to evaluation by both the proposed metric and a collection of object-oriented design experts. We found that the experts' preferred alternatives and the alternatives preferred by the metric agreed in 16 of 20 cases, thereby providing evidence of the predictive power of the metric.

Notes: The TR is available by anon ftp: ftp://ftp.cs.clemson.edu/techreports/94-105.ps.Z.

[3] Abernethy, K. and J. C. Kelly. 'Comparing object-oriented and data flow models-a case study', in Proc. 1992 ACM Computer Science Conference. ACM, New York, NY, USA, 1992.

Keywords: Des, Emp, Prod

Abstract: Object-oriented analysis is the newest component of a proposed object-oriented software life cycle methodology. In this paper, we make comparisons between the standard data flow diagram (DFD) models and the newly introduced object models within the context of an existing moderately complex (approx. 65,000 lines) software project. In particular, we compare the complexities of competing models for the project domain using some simple metrics.

[4] Abreu, F. B. 'Metrics for Object-Oriented Development', in Proc. Proc. 3rd International Conference on Software Quality. Lake Tahoe, Nevada, USA: 1993.

Keywords: Prod, Theory

Abstract: There is an increasing need for metrics adapted to the Object-Oriented (OO) paradigm to help manage and foster quality in software development. This paper reviews the usefulness of metrics, discusses some inadequacies of "traditional" metrics to encompass development under the OO paradigm and proposes a framework for classifying OO metrics. In this framework, metrics are classified along two independent vectors: category and granularity. The rationale behind each category is presented. Candidate metrics are suggested within the referred framework. Finally, some research directions that require further effort are identified.

[5] Abreu, F. B. 'MOOD - Metrics for Object-Oriented Design', in Proc. OOPSLA'94 Workshop Paper Presentation. 1994.

Keywords: Prod, Des, Theory

Abstract: Annotation from C. Gibbon.

Unfortunately, a little too sparse owing to the restrictions on the OOPSLA'94 Workshop. He releases the need for external and internal attributes. Presents copious mathematical notations to encompass metrics pertaining to encapsulation, polymorphism, information hiding, message passing, inheritance and reuse. Furthermore, the paper lists a set of criterion which design metrics should fulfil.

[6] Abreu, F. B. 'Object-oriented software engineering: measuring and controlling the development process', in Proc. 4th International Conference on Software Quality. Washington DC: American Society of Quality Control, 1994.

Keywords: Prod, Des, Reuse, Qual, Man

Abstract: A set of metrics measuring inheritance, encapsulation, information hiding and polymorphism. These are envisaged as aids to setting design standards, making comparisons and to the management of projects.

[7] Abreu, F. B., 'Design Quality Metrics for Object-Oriented Software Systems', ERCIM News, (23), 1995.

Keywords: Des, Prod

Notes: Also available from ia.fr/publication/Ercim_News/enw23/abreu.html

[8] Abreu, F. B. and R. Carapuca, 'Candidate Metrics for Object-Oriented Software within a Taxonomy Framework', J. of Systems & Software, 26, pp87-96, 1994.

Keywords: Des, Rev

Abstract: This article offers an overview of the state of the art in object-oriented (OO) metrics as well as some new contributions. The usefulness of metrics is reviewed. The inappropriateness of "traditional" metrics to encompass development under the OO paradigm is discussed. A framework for classifying metrics is suggested. Metrics are classified along two vectors: category and granularity. The usefulness and rationale behind each category are presented. Candidate metrics are suggested within the proposed framework. Finally, some research directions that require further effort are identified.

Notes: Introduces the TAPROOT framework (TAxonomy PRecis for Object-Oriented meTrics) which has two axes, category and granularity. The categories are: design; size; complexity; reuse; productivity; and quality. The granularities are: method; class; and system. They show how all (?) of the OO metrics proposed so far fit into this framework, where there are no examples they propose some.

[9] Abreu, F. B., R. Esteves, et al. 'The design of Eiffel programs: quantitative evaluation using the MOOD metrics', in Proc. TOOLS'96. Santa Barbara, California, USA: 1996.

Keywords: Des, Prod, Emp

[10] Abreu, F. B., R. Esteves, et al., The design of Eiffel programs: quantitative evaluation using the MOOD metrics. Technical Report , INESC, 1995.

Keywords: Emp, Des, Prod

Abstract: Gives details on how the MOOD metrics may be implemented for Eiffel. An extensive empirical examination of the metrics is made in order to determine their expected ranges of values, the extent to which they are size-independent etc.

[11] Abreu, F. B., M. Goulao, et al. 'Toward design quality evaluation of object-oriented software systems', in Proc. 5th International conference on software quality. Austin, Texas, USA: 1995.

Keywords: Des, Qual

[12] Abreu, F. B. and W. Melo. 'Evaluating the impact of object-oriented design on software quality', in Proc. 3rd International Software Metrics symposium. Berlin, Germany: IEEE Computer Society Press, 1996.

Keywords: Qual, Des, Emp, C++

Abstract: Describes the results of a study where the impact of object-oriented (OO) design on software quality characteristics is experimentally evaluated. A suite of Metrics for OO Design (MOOD) was adopted to measure the use of OO design mechanisms. Data collected on the development of eight small-sized information management systems based on identical requirements were used to assess the referred impact. Data obtained in this experiment show how OO design mechanisms such as inheritance, polymorphism, information hiding and coupling, can influence quality characteristics like reliability or maintainability. Some predictive models based on OO design metrics are also presented.

[13] Achee, B. L. and D. L. Carver. 'Evaluating the quality of reverse engineered object-oriented designs', in Proc. 1997 IEEE Aerospace Conference. Proceedings. IEEE, New York, USA, 1997.

Keywords: Des, Qual

Abstract: Software quality is a multifaceted concept that can be described from different perspectives. Five perspectives are the transcendental view, user view, manufacturing view, product view, and value-based view. The definition of software quality is based upon the perspective taken. However, these views do not address the design phase of the software lifecycle. Moreover, the issues pertinent to forward engineering do not necessarily parallel those pertinent to reverse engineering. The quality of a forward engineered design can be discussed in several contexts, such as how well the design represents the requirements specification or the evaluation of the design using a given set of metrics. In reverse engineering, however, this is not the case. The issues involved in evaluating the quality of an object-oriented design extracted from an imperative language differ from those involved in evaluating a forward engineered object-oriented design. This paper discusses the shortcomings of measuring the quality of a reverse engineered object-oriented design using current models based on forward engineering, and offers insights to a plausible solution.

[14] Ada, Ada and C++: a business case analysis. No. 1-800-AdaIC-11, Ada Information Clearinghouse, 1991.

Keywords: C++, Emp, Man

Abstract: Report on 5 independent studies carried out for the US Air Force to determine whether there might sometimes be a case for waiving the requirement for contractors to work in Ada in favour of C++. Rather than trying to identify whether there are specific circumstances which might make C++ the better choice, the studies do an overall comparison of data on costs, error rates, language facilities etc. The conclusion is that Ada is a more mature language than C++, is better supported and leads to more reliable and maintainable products. This is one of the few sources of comparison data which I have seen, but it is a bit dated now: for instance, the TRW substudy estimated (more than 3 years ago) that Ada was 3 years behind Ada in maturity and tool support.

Notes: A very useful summary, extracted from a press conference given by Lloyd Mosemann II of the US Air Force, was posted to the Ada Joint Program Office bulletin board. I saw this on the ami Electronic Discussion Group and can mail people a copy. The report itself can be ordered from Ada Information Clearinghouse, PO Box 46593, Washington DC 20050-6593, Tel: 703 685 1477, Fax: 703 685 7019, E-mail:

[15] Adams, S. 'OO metrics to investigate', in Proc. OOPSLA'92 Workshop: Metrics for Object-Oriented Software Development. Vancouver, Canada: 1992.

Keywords: Prod

Notes: See Roberts' report on this workshop [Roberts 1992].

[16] Agresti, W. W. and W. M. Evanco, 'Projecting software defects from analysing Ada designs', IEEE Transactions on Software Engineering, 18(11), pp988-997, 1992.

Keywords: Emp, Des

[17] Alagic, S. 'Polymorphic and Reflective Type Structures', in Proc. Technology of Object-Oriented Languages and Systems (TOOLS 8). Santa Barbara, USA: Prentice Hall, 1992.

Keywords: Theory, Rev

Abstract: A tutorial introduction to some difficult work in type theory. Presenting a model of polymorphism for subtypes, parametric types and higher order types (kinds).

[18] Al-Janabi, A. and E. Aspinall, 'An evaluation of software design using the DEMETER tool', Software Engineering Journal, 8(6), pp319-324, 1993.

Keywords: Tool, Emp, Prod, Des

Notes: A study of 3 small (1.2-5KLOC) systems found that various measures of coupling were able to "explain" just under 60% of code quality in terms of average no. of decisions.

[19] Alkadi, G. and D. L. Carver. 'Application of metrics to object-oriented designs', in Proc. 1998 IEEE Aerospace Conference Proceedings. IEEE, New York, NY, USA, 1998.

Keywords: Des, Prod, Emp, Tool

Abstract: The benefits of object-oriented software development are now widely recognized. However, methodologies that are used for the object-oriented software development process are still in their infancy. There is a lack of methods available to assess the quality of the various components that are derived during the development process. In this paper, we describe a method to assess the quality of object-oriented designs. We utilize a basic set of object-oriented metrics that is proposed by Shyam Chidamber et al. (1991 and 19994). We perform experimental tests on a set of object-oriented designs using the NOC metric. Also, we refer to our ongoing work to provide automated assistance to help restructure the design based on the metric findings.

[20] Alonso, F., J. L. Fuertes, et al. 'A quality model: how to improve the object-oriented software process', in Proc. SMC'98 (1998 IEEE International Conference on Systems, Man, and Cybernetics). IEEE, New York, NY, USA, 1998.

Keywords: Qual

Abstract: We have established a quality model for the object oriented paradigm. Quality is divided into factors and these into criteria. We have designed 350 measures, bearing in mind a particular attribute of the object orientation, and have been connected to the criteria to set up the model. We outline a new methodology for applying this model to improve the object oriented software process by establishing a set of steps to be applied in the phases of object oriented development.

[21] Aman, M., T. Yanaru, et al., 'A metric for class structural complexity focusing on relationships among class members', IEICE-Transactions-on-Information-and-Systems., E81-D(12), pp1364-1373, 1998.

Keywords: Prod, Theory

Abstract: We represent a class structure using a directed graph in which each node corresponds to each member of the class. To quantify the dependence relationship among members, we define weighted closure. Using this quantified relationship and effort equation proposed by M.H. Halstead (1977), we propose a metric for class structural complexity.

[22] Ammann, M. H. and R. D. Cameron. 'Measuring program structure with inter-module metrics', in Proc. Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94). IEEE Comput. Soc. Press, Los Alamitos, CA, USA, 1994.

Keywords: Qual, Tool, Prod