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.. Keywords:
Trang 1Object-Oriented Metrics: an Annotated Bibliography
Empirical Software Engineering Research Group
Department of Computing Bournemouth University Poole BH12 5BB, UK
Email: mshepper@bournemouth.ac.uk http://dec.bournemouth.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) applicationexperiment 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 morisio@polito.it 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
Trang 2been 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 andthe 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 aframework 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 needfor external and internal attributes Presents copious mathematical notations to encompass metrics pertaining
to encapsulation, polymorphism, information hiding, message passing, inheritance and reuse Furthermore,
Trang 3the 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 http://www-ercim.inria.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 somenew 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
Trang 4Abstract: 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 qualitycharacteristics 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 Theissues 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 theshortcomings 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
Trang 5trying 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 DiscussionGroup 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:
adainfo@ajpo.sei.cmu.edu
[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
Trang 6Abstract: 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 methodologyfor 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 metricfor 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
Abstract: A good structure is an important quality aspect of a program Well-structured, modular programs are less costly to maintain than unstructured monolithic ones Quantitatively assessing structure and
modularity of programs can be useful to help ensure that a program is well-structured by indicating a potentialneed for restructuring of poorly structured code However, previous structure metrics do not sufficiently account for the modular features used in modern, object-oriented programming languages We propose four novel measures to assess the modular structure of a software project Our measures are based on the principle
of vocabulary hiding and measure a form of cohesion A metrics prototype tool has been implemented for the Modula-3 programming language Informal tests suggest that they are indeed useful to assess the quality of the program structure
Trang 7[23] Anderson, B., Architecture and maintenance in object technology Unpublished report , Electronic Systems Engineering, University of Essex, UK, 1994.
Keywords: Des, Maint
Abstract: In order to explore the impact of different architectures on software maintenance, we took the following approach: write two versions of the same application with differing architectures; implement the same specific changes to both versions; measure the cost of making each change using simple metrics; and compare the costs of each change between architectures, and also within the same architecture For our example we chose a simple banking application which must operate on a number of different kinds of account
[24] Andrade, R and G H Travassos 'Principles, guidelines and metrics: their relationship and application to
reduce structural complexity of object oriented design', in Proc European Software Measurement
Conference FESMA 98 Technologisch Instituut Vzw, Antwerpen, Germany, 1998.
Keywords: Prod, Qual
Abstract: The tendency of software complexity is to increase for each new software product developed Whensoftware seems highly complex an associated problem is to guarantee the quality of the products throughout the software development process There are several studies related to reducing OO software complexity, such as principles and guidelines, while a great deal of metrics to control OO software quality have been proposed However, the relation between OO software complexity reduction techniques and metrics are still not well explored This relation can help in design decisions that follow metrics application tasks This work presents a summary of a research about the simultaneous application of metrics for OO design quality and techniques to reduce OO software complexity
[25] Antoniol, G., F Calzolari, et al 'Adapting function points to object oriented information systems', in
Proc Advanced Information Systems Engineering 10th International Conference, CAiSE'98
Springer-Verlag, Berlin, Germany, 1998
Keywords: Size, Tool, Prod
Abstract: The object oriented paradigm has become widely used to develop large information systems This paper presents a method for estimating the size and effort of developing object oriented software The approach is analogous to function points, and it is based on counting rules that pick up the elements in a static object model and combine them in order to produce a composite measure Rules are proposed for counting
"Object Oriented Function Points" from an object model, and several questions are identified for empirical research A key aspect of this method is its flexibility An organization can experiment with different countingpolicies, to find the most accurate predictors of size, effort, etc In its environment "Object Oriented FunctionPoints" counting has been implemented in a Java tool, and results on size estimation obtained from a pilot project with an industrial partner are encouraging
[26] Antoniol, G., R Fiutem, et al 'Using metrics to identify design patterns in object-oriented software', in
Proc Proceedings Fifth International Software Metrics Symposium IEEE Comput Soc, Los Alamitos, CA,
Trang 8USA, 1998.
Keywords: Prod, Des, Emp, Tool
Abstract: Object-oriented design patterns are an emergent technology: they are reusable micro-architectures, high level building blocks This paper presents a conservative approach, based on a multi-stage reduction strategy using OO software metrics and structural properties to extract structural design patterns from OO design or code Code and design are mapped into an intermediate representation, called Abstract Object Language, to maintain independence from the programming language and the adopted CASE tools To assess the effectiveness of the pattern recovery process a portable environment written in Java, remotely accessible
by means of any Web browser, has been developed Based on this environment, experimental results obtained
on public domain and industrial software are discussed in the paper
[27] Archer, C., Measuring object-oriented software products Tech report No SEI-CM-028, Software Engineering Institute, Carnegie Melon University, 1995
Keywords: Rev, Man
Abstract: "This module provides an overview of the merging of a paradigm and a process, the object-oriented paradigm and the software measurement process The concept of a measure and the process of measurement are discussed briefly, followed by a presentation of the issues raised by object-oriented software
development."
Notes: Length 81 pages Reports from the SEI are available from Research Access Inc., Fax +1 412 321
2994 E-mail: requests@rai.com Web: http://www.rai.com/
[28] Archer, C and M Stinson, Object-oriented software measures Tech report No SEI-95-TR-002, Software Engineering Institute, Carnegie Melon University, 1995
Keywords: Rev
Abstract: "This paper provides an overview of the merging of a paradigm and a process, the object-oriented paradigm and the software measurement process A taxonomy of object-oriented software measures is created, and existing object-oriented software measures are enumerated, evaluated, and placed in taxa This report includes an extensive bibliography of the current object-oriented measures that apply to the design and implementation phases of a software project Examples of computation of representative measures are included."
Notes: Length 67 pages See [Archer 1995] on availability
[29] Armour, F., B Catherwood, et al 'Experiences Measuring Object Oriented System Size with Use Cases',
in Proc ESCOM Wilmslow, UK: 1996.
Keywords: Ind, Size
[30] Arnold, M and P Pedross 'Software size measurement and productivity rating in a large-scale software
Trang 9development department', in Proc Proceedings of the 1998 International Conference on Software
Engineering IEEE Comput Soc, Los Alamitos, CA, USA, 1998.
Keywords: Des, Size, Emp, Ind
Abstract: Some current object-oriented analysis methods provide use cases Scenarios or similar concepts to describe functional requirements for software systems The authors introduced the use case point method to measure the size of large-scale software systems based on such requirements specifications With the
measured size and the measured effort the real productivity can be calculated in terms of delivered
functionality In the status report they summarize the experiences made with size metrics and productivity rates at a major Swiss banking institute They analyzed the quality of requirements documents and the measured use case points in order to test and calibrate the use case point method Experiences are based on empirical data of a productivity benchmark of 23 measured projects (quantitative analysis), 64 evaluated questionnaires of project members and 11 post benchmark interviews held with selected project managers (qualitative analysis)
[31] Avotins, J 'Towards an object-oriented metric modeling method', in Proc OOPSLA'96 - workshop: OO product metrics 1996.
Keywords: Qual, Man, Des
Abstract: A paper presenting the authors method for modelling OO design metrics in an object oriented manner The idea behind the work is the comparison of existing metric modelling methods to the waterfall lifecycle and it's associated problems The author postulates that existing metric models suffer from the same problems caused by a strict top-down methodology as does the waterfall model The solution presented is to define a method which includes reversibility and seamlessness From the authors view point the only way to achieve this is to adopt an object-oriented metric modelling method The cluster lifecycle model is used as the basis for defining a new metric model An overview is given of this proposed method and the tools whichhave been developed to support it The method also takes elements from GQM and the metric modelling method of Shepperd and Ince
[32] Avotins, J and C Mingins 'Metrics for Object-Oriented Design', in Proc TOOLs 12 Melbourne:
Prentice Hall, 1993
Keywords: Tool, Prod, Des
Abstract: Quality is not an innate property of object-oriented design A solid set of techniques and methods isrequired to ensure quality Formal design theories and their associated metrics can be analysed to produce design principles, and fine tune the current a posteriori and posteriori design approaches An iterative fine tuning quality design policy, and an associated tool that supports this policy are also presented
[33] Ayerbe, A and I Vazquez 'Software products quality improvement with a programming style guide and
a measurement process', in Proc The Twenty-Second Annual International Computer Software and
Applications Conference (Compsac '98) IEEE Comput Soc, Los Alamitos, CA, USA, 1998.
Keywords: C++, Qual, Prod
Trang 10Abstract: Quality requirements of industrial software are very high and the correctness of the source code is
of great importance for this purpose For this reason, the objective of QUALIMET (ESSI Project 23982) is to improve the software development process, introducing a set of style norms to be used when coding in C++, defining a set of metrics to be used on the source code in order to check its quality and testing this approach in
a baseline project The paper presents the work that is being carried out under this project It is expected that atthe end of QUALIMET, the incorporation of these quality assurance techniques into the current methodology for developing software, will allow to have a complete methodology that guarantees software product quality,minimising the complexity of the code earlier in the programming process, yielding more maintainable and less error-prone software and improving the quality of the software and the satisfaction of customers
[34] Balasubramanian, N V 'Object-Oriented Metrics', in Proc Asia-Pacific Software Engineering
Conference IEEE, 1996.
Keywords: Prod
Abstract: The paper introduces class complexity, cohesion ratio, and weighted method send out as
improved/new metrics for object-oriented software The work of Chidamber and Kemerer (1991, 1994) is used as a comparison platform Illustrations are provided by solving a simple graphical problem using two design approaches They are also used to validate the model proposed Desirability of a composite complexitymodel is discussed and one possible approach is given
Notes: Based on CK metrics plus additional measures Applied to two student programs but analysis of results not provided
[35] Bandi, R K and V K Vaishnavi 'Validating object-oriented design complexity metrics', in Proc OTC '96 Object Technology Centers Comsoft, Collegedale, TN, USA, 1996.
Keywords: Maint
Abstract: Many organizations are introducing object oriented methods and languages into their software development practices A major motivation for organizations to move to OO technology is to reap the promised quality and productivity gains Software metrics have the potential for use in procedures to control software development process, thereby controlling costs and schedules as well as the quality of the software product As a result there is a great interest in metrics for object oriented systems Many metrics have been proposed, but very few of them have been validated This research focuses on the validation of these metrics with respect to maintainability of object oriented systems
[36] Banker, R D., S M Datar, et al., 'A model to evaluate variables impacting the productivity of software
maintenance projects', Management Science, 37(1), 1991.
Keywords: Size, Maint, Emp
[37] Banker, R D., R J Kauffman, et al., 'An empirical test of object-based output measurement metrics in a
computer aided software engineering (CASE) environment', Journal of Management Information Systems,
8(3 Winter 1991-92), pp127-150, 1991
Trang 11Keywords: Emp
[38] Banker, R D., R J Kauffman, et al 'Output measurement metrics in an object-oriented computer aided
software engineering (CASE) environment: critique, evaluation and proposal', in Proc Proceedings of the 24th Hawaii International Conference on System Science, Hawaii: IEEE Computer Society Press, 1991.
Keywords: Prod
[39] Banker, R D., R J Kauffman, et al., 'Automating output size and reuse metrics in a repository-based
computer-aided software engineering (CASE) environment', IEEE Transactions on Software Engineering,
20(3), pp169-187, 1994
Keywords: Size, Tool, Reuse
Abstract: Measurement of software development productivity is needed in order to control software costs, but
it is discouragingly labor-intensive and expensive Computer-aided software engineering (CASE)
technologies-especially repository-based, integrated CASE-have the potential to support the automation of this measurement We discuss the conceptual basis for the development of automated analyzers for function point and software reuse measurement for object-based CASE Both analyzers take advantage of the existence
of a representation of the application system that is stored within an object repository, and that contains the necessary information about the application system We also discuss metrics for software reuse measurement, including reuse leverage, reuse value, and reuse classification that are motivated by managerial requirements and the efforts, within industry and the IEEE, to standardize measurement The functionality and the
analytical capabilities of state-of-the-art automated software metrics analyzers are illustrated in the context of
an investment banking industry application that is similar to systems deployed at the New York City-based investment bank where these tools were developed and tested
[40] Banker, R D., R J Kauffman, et al., 'Repository evaluation of software reuse', IEEE Trans on Software Eng., 19(4), pp379-389, 1993.
Keywords: C++, Des, Emp, Ind, Reuse
Abstract: An empirical study of reuse based around CASE development tools and using object-based
measures of reuse (similar to those used in MELO95) The evaluation is intended to address such questions as: what kind of objects are most likely to be reused? and Under what conditions is reuse most likely to occur? From the conclusion: "We asked whether expert programmers were also better at reuse, and found thatthe highest levels of reuse were achieved by the programmers with the highest outputs of objects."
[41] Bansiya, J and C Davis, 'Automated metrics and object-oriented development', Dr Dobbs Journal,
Trang 12(QMOOD++), an automated tool that supports a suite of over 30 object-oriented metrics In addition to making it easy to collect metrics data, QMOOD++ has a repository in which the metric data of analyzed projects can be stored and retrieved later for comparisons QMOOD++ is a comprehensive, multiuser, multithreaded, integrated Windows 95/NT-based tool Typically, object-oriented software development is iterative, with overlapping phases in the development process While the basic set of objects, operations, attributes, and relationships are identified in the analysis phase, the details of a class's methods, parameters, data declarations, relationships, and algorithms are resolved during design The results are hierarchies of well-defined classes that represent a blueprint for implementation
[42] Bansiya, J and C Davis, An object-oriented design quality assessment model , University of
functionality or inconsistencies, and that are complex We present a new metric to evaluate cohesion among methods of a class early in the analysis and design phase The metric evaluates the consistency (focus) of methods in a class interface using the parameter types of the methods This metric can be applied to class declarations that only contain method prototypes (method name and parameter types) The effectiveness of the metric is validated and demonstrated by correlating its results with existing measures of cohesion such as the Lack of Cohesion Among Methods Metric (LCOM) proposed by Chidamber and Kemerer (1991) and later interpreted by Li and Henry (1993), and which can be applied only after the implementation of methods
of a class The metric is also correlated with the cohesiveness evaluation of classes done by experts
[44] Barnard, J., 'A New Reusability Metric for Object-Oriented Software', Software Quality Journal, 7(1),
1998
Keywords: Reuse
Abstract: Software reuse is big business Managers of software houses know that reuse can bring financial rewards to their company, so long as effective reuse procedures are in place Many companies are now starting their own reuse libraries However, how can they decide what constitutes a reusable component? Howcan they measure the potential reusability of a component? What guidelines can developers take to ensure they are developing reusable software? Through surveys and experiments, this paper identifies the factors relating to the reusability of code and presents a reusability metric for object-oriented software, suggesting that this could be used by software houses in their reuse programmes
Trang 13[45] Barnes, M G and B R Swim, 'Inheriting software metrics', Journal of Object-Oriented Programming,
(November-December), pp27-34, 1993
Keywords: Des, Qual
Abstract: Software engineering must continue to automate the measurement and analysis of software quality and incorporate the reuse of existing software components to produce quality software The authors present a conceptual extension to the OOP paradigm supporting the development of high-quality production-grade software A quality object-oriented language (QOOL) extends the class concept to software metrics, assessinghow well software is written, performs, and satisfies its design goals In addition, they describe how QOOL environments could reduce the burden of quality assurance and increase software reuse A prototype
(ActQOOL) is presented
Notes: G Michael Barnes is at renzo@secs.csun.edu, Bradley Swim is at bswim.acm.org
[46] Basili, V R., L C Briand, et al., 'A validation of object-oriented design metrics as quality indicators',
IEEE Transactions on Software Engineering, 22(10), pp751-761, 1996.
Keywords: Emp, Des, Prod
Abstract: This paper presents the results of a study in which we empirically investigated the suite of oriented (OO) design metrics introduced in (Chidamber and Kemerer, 1994) More specifically, our goal is to assess these metrics as predictors of fault-prone classes and, therefore, determine whether they can be used as early quality indicators This study is complementary to the work described in (Li and Henry, 1993) where thesame suite of metrics had been used to assess frequencies of maintenance changes to classes To perform our validation accurately, we collected data on the development of eight medium-sized information management systems based on identical requirements All eight projects were developed using a sequential life cycle model, a well-known OO analysis/design method and the C++ programming language Based on empirical and quantitative analysis, the advantages and drawbacks of these OO metrics are discussed Several of Chidamber and Kemerer's OO metrics appear to be useful to predict class fault-proneness during the early phases of the life-cycle Also, on our data set, they are better predictors than "traditional" code metrics, which can only be collected at a later phase of the software development processes
object-[47] Bellizona, R., M G Fugini, et al., 'Reusing specifications in OO applications', IEEE Software,
12(March), 1995
Keywords: Des, Reuse
Abstract: Martin West provided me with the following description: "Discusses the work of the ESPRIT ITHACA Project, which has produced a model and environment for reusing specifications Centralised around a tool called Recast" Roberto Bellizona, Maria Grazia Fugini and Barbara Pernici are at Datamont Feruzzi Group Spa, Italy The "Integrated Toolkit for Highly Advanced Computer Applications" (ITHACA) projects (no 1: project 2121 and no 2: project 2705) were run by Siemens-Nixdorf (contact Anna-Kristin Pröfock, Gustav-Meyer Allee 1, D-1000 BERLIN 65, Tel: +49 30 46071413, Fax: +49 30 46071485)"
[48] Benford, S., E Burke, et al., Integrating software quality assurance into the teaching of programming, in Software Quality Assurance and Measurement: a Worldwide Perspective, N E Fenton, R W Whitty and Y
Trang 14Lizuke, Editors, International Thomson Computer Press.: London, UK, 1995.
Keywords: C++, Qual
Abstract: A short overview of the Ceilidh (pron Cayley) system From the Ceilidh web page: "Ceilidh is an on-line coursework administration and auto marking facility designed to help both students and staff with programming courses It helps students by informing them of the coursework required of them, and by offering them a helpful environment in which they can develop and submit their work on the computer This avoids having to print solutions and hand them in; no paperwork is involved It also marks programs directly, and informs both the student and teacher of the mark awarded The marking uses a comprehensive variety of static and dynamic metrics to assess the quality of submitted programs Ceilidh also provides students with online access to notes, examples and solutions The submission process is under the control of the teacher who can specify, for example, the degree of marking detail which the student receives, and the date after which submission will no longer be accepted." It currently supports C and C++ and includes the Chidamber and Kemerer metrics [Chidamber, 1991] (I think) Web page address is: http://www.crg.cs.nott.ac.uk/ceilidh or contact ltr@cs.nott.ac.uk Ceilidh is freely available to academic institutions under a licensing agreement
[49] Benlarbi, S and W Melo, Measuring Polymorphism and Common Interconnections in OO Software Systems Technical Report No CRIM-97/11-84, Centre de Recherche Informatique de Montreal, 1997.Keywords: Prod
[50] Berard, E V., Essays on object-oriented software engineering Prentice Hall: 1993
Keywords: Rev, Des
Abstract: From the entry in the OO Bibliography (see 'General' URL in section 1 of this list): "includes coverage of OO domain and requirements analysis" and from its citation in the OO FAQ metrics entry:
"contains an elaborate bibliography and section on OO metrics"
[51] Berard, E V., 1996 Metrics for object-oriented software engineering [online], Available from:
http://www.toa.com/pub/html/moose.html[23/07/96]
[52] Berg, W., M Cline, et al., 'Lessons learned from the OS/400 object oriented project', Commun ACM,
38(10), pp54-64, 1995
Keywords: C++, Ind, Man, Emp
Abstract: Good real-life experience report with useful detail on use of lines of code as a project management metric Also addresses the success of moving to OO (80% of staff learned to design and implement classes and use inheritence; 15% reached a "respectable journeyman level"; 5% became top performers)
Notes: William Berg is at bilber@vnet.ibm.com, Marshall Cline is at cline@parashift.com, Mike Girou is at girou@parashift.com
Trang 15[53] Bertolino, A., R Mirandola, et al 'A case study in branch testing automation', in Proc 3rd International Conference on Achieving Quality in Software Chapman and Hall, London, 1996.
Keywords: C++, Emp, Ind, Prod, Test
Abstract: Describes a study carried out at Ericsson Telecomunicazioni R&D on "one of the biggest projects developed in Europe using Object Oriented Technology": part of a new generation Transmission Network The aim was to predict the effort required for unit testing (to 80% branch coverage) using a new metric developed by Bertolino and MarrŽ This appeared to outperform McCabe
Notes: Antonia Bertolino is at bertolino@iei.pi.cnr.it, web: http://rep1.iei.cnr.it/People/bertolino
[54] Bezant, SwisRAD Metrics and the Repository , Bezant Object Technology, 1995
Keywords: Size
Abstract: Baseline document describing the metrics to be collected by the Swiss Bank metrics club organized
by Ian Graham in association with Bezant Limited Contact is Mark Lewis,
100073.1340@compuserve.com.*/
Notes: Available from Bezant Limited, 6 St Mary's Street Wallingford, Oxfordshire OX10 0EL, UK
[55] Bieman, J M., Deriving measures of software reuse in object-oriented systems Technical Report No CS-91-112, Department of Computer Science, Colorado State University, 1991
Keywords: Des, Reuse
Notes: Earlier version of [Bieman, 1992]
[56] Bieman, J M., Deriving measures of software reuse in object oriented systems, in Formal Aspects of Measurement, T Denvir, R Herman and R Whitty, Editors, Springer-Verlag: London, 1992.
Keywords: Des, Reuse
Abstract: Tackles the problem of measuring reuse in OO systems which support 'leveraged' reuse through inheritance Measurements are described for 3 perspectives: the server, the client and the system
Notes: Jim Bieman is at Colorado State University, University Services Centre, Fort Collins, Colorado 80523,USA Main tel: +303 491 7096 Main fax: +303 491 6639 E-mail: Bieman@CS.Colostate.Edu
[57] Bieman, J M., Metric development for object-oriented software, in Software Measurement:
Understanding Software Engineering, A Melton, Editor, Chapman and Hall: Kansas City, Missouri., 1995.
Keywords: Des
Abstract: The book is the proceedings of a software metrics workshop help in conjunction with the 1992
Trang 16ACM Computer Science Conference
[58] Bieman, J M and B K Kang 'Cohesion and reuse in an object oriented system', in Proc Proc ACM Software Reusability Symp (SRS'94), 1995.
Keywords: C++, Des, Emp, Ind, Prod, Reuse
Abstract: Software engineers follow many structural rules of thumb, for example "good designs should consist of modules with high cohesion and low coupling'' Such design practices have not been validated empirically, in part, because automatable measures of attributes such as cohesion have not been available andthe relevant studies have not been conducted We define and apply two new measures of object oriented class cohesion to a reasonably large C++ system We find that most of the classes are quite cohesive, but thatthe classes that are reused more frequently via inheritance exhibit clearly lower cohesion Our results demonstrate that developers can use cohesion measurement to improve the reusability of the classes that they design
[59] Bieman, J M and S Karunanithi, 'Measurement of language supported reuse in object oriented and
object based software', J Systems and Software, 30(3), pp271-293, 1995.
Keywords: Des, Reuse
Abstract: A major benefit of object-oriented software development is the support for reuse provided by object-oriented and object-based languages Yet, measures and measurement tools that quantify such
language-supported reuse have been lacking Comprehensive reuse measures, particularly for reuse with modifications, are necessary to evaluate the status of reuse in an organization and to monitor improvements
We develop a set of measurable reuse attributes appropriate to object-oriented and object-based systems and asuite of measures that quantify these attributes One of our major objectives is to measure reuse in software written in the object-based language Ada A set of suitable primitive reuse measures are expressed in Ada Reuse Tables These tables support the flexible use of primitive measures in programs with nested packages and subprograms, and Ada generic packages We designed and implemented a prototype Ada Reuse
Measurement Analyzer (ARMA) to generate measurement values from Ada programs ARMA produces a reuse data representation and a corresponding forest representation of an Ada system that contain the
information necessary to produce the primitive measures Developers can use the representations to produce customized reports to satisfy a wide range of measurement goals We use ARMA to measure primitive reuse attributes for a set of industrial Ada software We also show that ARMA can be used to generate a set of component access and package visibility measures
[60] Bieman, J M and L M Ott, 'Measuring functional cohesion', IEEE Transactions on Software
Engineering, 20(8), pp644-657, 1994.
Keywords: Des, Prod, Theory
Notes: Looks a bit speculative as no empirical data to support the utility of the metric
[61] Bieman, J M and J X Zhao 'Reuse through inheritance: a quantitative study of C++ software', in Proc Proc ACM Software Reusability Symp (SSR'95) 1995.
Trang 17Keywords: C++, Des, Emp, Ind
Abstract: According to proponents of object oriented programming, inheritance is an excellent way to organize abstraction and a superb tool for reuse Yet, few quantitative studies of the actual use of inheritance have been conducted Quantitative studies are necessary to evaluate the actual usefulness of structures such
as inheritance We characterize the use of inheritance in 20 existing C++ software systems containing 2,665 classes We measure the class depth in the inheritance hierarchies, and the number of child and parent classes in the collected software We find that inheritance is used far less frequently than expected"
[62] Bilow, S., 'Software entropy and the need for object-oriented software metrics', JOOP, 5(8), pp6, 1993.
Keywords: Prod
Abstract: The proper questions we must ask ourselves are:
(1) How do I know if my software will be simple, testable, and maintainable, and
(2) How can I determine the life cycle viability of my potential designs at the earliest possible stage so that I can make rational decisions at every phase of development?
None of traditional software measurement techniques, whether token, control flow, data flow, application, or interconnection based, are able to assess the reusability, development speed, or dynamic complexity of an object-oriented system In fact, many existing metrics are extremely misleading in the context of object-oriented software For example, we rarely see high cyclomatic numbers, numerous lines of code, or large quantities of operators in Smalltalk methods This does not indicate that Smalltalk programs are automatically'better' than C programs It only indicates that Smalltalk utilizes a paradigm that distributes functionality into smaller units Object-oriented demands its own metrics; tailored to the patterns that exist within that
paradigm In other words, we need object-oriented metrics!
Neither object-oriented nor structured software development embodies a method for assessing complexity prior to coding
There is an exceedingly urgent need for viable techniques for quantifying state models, information models, class structures, multiple inheritance, associations, code quality, class responsibility domains, coupling and cohesion, and many other elements of our software
[63] Bilow, S C 'Applying graph theoretical analysis to object-oriented system models', in Proc
OOPSLA'92 Workshop: Metrics for Object-Oriented Software Development Vancouver, Canada: 1992.
Keywords: Theory, Prod
Notes: See Roberts' report on this workshop [Roberts, 1992]
[64] Bilow, S C 'Borrowing from McCabe: what object-oriented methodologists can learn from cyclomatic
complexity', in Proc OOPSLA '92 Workshop 'Metrics for Object-Oriented Software Development' 1992.
Keywords: Prod
Trang 18Notes: See Roberts' report on this workshop [Roberts, 1992]
[65] Bilow, S C and B Henderson-Sellers, 'Report on the Workshop on Pragmatic and Theoretical
Directions in Object-Oriented Software Metrics , October 23, 1994', Q Methods Report, Committee on Quantitative Methods, Technical Council on Software Engineering, (No 7, Winter 1995), 1995.
Keywords: Size, Rev
Abstract: A report on the OOPSLA '94 metrics workshop Seven papers addressed issues including cost estimation and use of function points, and fuzzy logic " the whole group attempted to reach a consensus on the state of metrics by building a list of best and worst case metrics for a set of attributes."
Notes: This list of metrics is available from Steve Bilow (address see [Bilow, 1993]) The Q Methods Report
is from Linda Ott at Michigan Technological University, linda@cs.mtu.edu The papers presented were mainly short position papers, not meant for publication [Brito e Abreu, 1994, "Object-oriented software engineering: measuring and controlling the development process" ] is an expanded version of one of them See also [Bilow, 1993] for www source
[66] Bilow, S C and D Lea 'Workshop Report: Processes and Metrics for OO Software Development', in
Proc OOPSLA '93 Workshop Report: Processes and Metrics for OO Software Development 1993.
Keywords: Rev
Notes: I haven't seen this or the workshop papers published anywhere, although the main OOPSAL'93
Proceedings were published as (Paepcke, A., ed.) SIGPLAN Notices 28 (10) Patrizia Sgubbi has told me that
the OOPSLA'93 and OOPSLA'94 metrics workshop papers are on www at mainz.de/Personal/Mitarbeiter/OOPSLAMetrics.html Steve Bilow is at steveb@orca.wv.tek.com Doug Lea
http://aaimzb.mathematik.uni-is at dl@g.oswego.edu
[67] Binder, R V., 'Design for testability in object-oriented systems', Communications of the ACM, 37(9),
pp87-101, 1994
Keywords: Des, Man, Test
Abstract: Provides tables of metrics for testability and encapsulation, inheritance, polymorphism and
complexity (compare with McCabe et al 1994) There is a very detailed discussion of the testing process in which these metrics may be deployed, addressing such issues as standards, tools, design for testability and process capability
Notes: Binder is at RBSC Inc., email: rbinder@rbsc.com
[68] Binkley, A B and R Schach 'Impediments to the effective use of metrics within the object-oriented
paradigm', in Proc OOPSLA'96 - workshop: OO product metrics 1996.
Keywords: Man
Trang 19[69] Binkley, A B and S R Schach, 'A Comparison of Sixteen Quality Metrics for Object-Oriented Design',
Information Processing Letters, 58(6), pp271-275, 1996.
Keywords: Qual, Prod, Des
Abstract: A number of different object-oriented metrics for evaluating the quality of an object-oriented designhave been put forward These metrics are computed from a widely ranging variety of different design parameters, including the height of the inheritance tree, fan-in, fan-out, cohesion, and coupling We examine sixteen different metrics for object-oriented design and measure the extent to which their predictions agree with those of a panel of design experts We use the term design quality to denote the extent to which a design that meets its specifications is predicted to reduce implementation and maintenance effort A more precise term is psychological design complexity because, strictly speaking, quality is a measure of adherence to specifications However, the informal use of the term "design quality" to denote the goodness of a design goesback at least to 1978 and continues to this day
[70] Blake, B A and P Jalics, 'An assessment of object-oriented methods and C++', J Object-oriented Programming, 9(1), pp42-48, 1996.
Keywords: C++, Emp, Reuse
Abstract: Discussion of obstacles to gaining the supposed benefits of OO From the conclusion: " reusing library objects may actually require more time than copying code from previous programs or even developingcode from scratch The experiments designed to prove code reuse enhances programmer productivity
provided no such evidence
Notes: Ben Blake is at bab@cis.csuohio.edu, Paul Jalics is at jalics@cis.csuohio.edu
[71] Boehm, B W., B K Clark, et al., An overview of the COCOMO 2.0 software cost model Technical Report , University of Southern California, 1995
Keywords: Ind, Des, Maint
Abstract: Annotation from C Gibbon
Booch imparts some of his extensive experience in the field when faced with measures of goodness (metrics)
Trang 20for software products and processes He divides these "measures of goodness" into two factions: strategic and the tactical The former concerns itself with architecture, employing techniques to unearth corrosive and system-wide flaws in software Whilst the latter focuses upon those issues that have relatively local
implications He cites inheritance lattices and choice of class protocols as examples Booch concentrates on software development's macro process and identifies "measures of goodness" for its various phases
(conceptualisation, analysis, design, evolution and maintenance)
[73] Booch, G., Object-Oriented Analysis and Design with Applications 2nd Edition ed Benjamin Cummins
Publishing Co.: Redwood City, LA, 1994
Keywords: Qual, Des, Man, Rev
Abstract: Section 7.5 of Grady Booch's new edition is on quality assurance and metrics He also has a very extensive bibliography on general issues in software engineering
Notes: A review of this book by T.H.Tse is given in ACM Computing Reviews, March 1995, rev no
9503-0135
[74] Booch, G., 'Qualitaetsmasse', OBJEKTspektrum, (September-October), pp53-56, 1994.
Keywords: Qual
Abstract: Quality measures paper OBJEKTspektrum is a German journal
[75] Booch, G and M Vilot, 'Simplifying the Booch components', C++ Report, 5(5), pp41-52, 1993.
Keywords: C++, Des
Abstract: What factors contributed to making the C++ Booch Components into 'the incredible shrinking library?' This article examines, how the concepts of OOD and the features of C++ helped to organize and simplify the library First, it provides a brief overview of the library showing its contents and organization Then, it explores how inheritance and parameterization helped to streamline and simplify the library The article concludes with a summary of how much each design change contributed to the overall size reduction (14 Refs.)
[76] Bradley, L 'Evaluating complex properties of object-oriented design and code', in Proc International Software Quality Conference Dayton, Ohio: 1991.
Trang 21Abstract: This paper presents a controlled experiment focusing on the following issues (i) are OO design documents easier to understand and modify than structured design documents?, (ii) Do they comply with quality design principles such as the ones provided by Coad and Yourdon? , and (iii) what is the impact of such design principles on the understandability and modifiability of design documents?
Results strongly suggest that such design principles have a beneficial effect on the maintainability of OO design documents However, there is no strong evidence regarding the alleged higher maintainability of OO design documents over structured design doments Furthermore, results suggest that OO design documents are more sensitive to poor design practices
[78] Briand, L C., C Bunse, et al 'An experimental comparison of the maintainability of object-oriented and
structured design documents', in Proc Intl Conf on Software Maintenance IEEE Computer Society Press,
1997
Keywords: Emp, Maint
Notes: Reports on a student experiment to assess the impact of OO versus structured design and "good" versus "bad" design (It is not, however, clear that this is a 2x2 factorial design since design quality might have different meanings depending upon the design paradigm ) The authors report that "good" OO designs were easier to understand and modify than "bad" designs Also "bad" structured design was easier to understand than "bad" OO design No significant differences were detected between "good" OO and "good" structured design or between "good" and "bad" structured design The authors conclude that OO designs may
be more vulnerable to poor quality than traditional methods
[79] Briand, L C., J Daly, et al 'A comprehensive empirical validation of design measures for
object-oriented systems', in Proc 5th Intl Metrics Symp Bethesda, MD: IEEE Computer Society, 1998.
Keywords: Emp, Des, Prod
Abstract: This paper aims at empirically exploring the relationships between existing object-oriented
coupling, cohesion, and inheritance measures and the probability of fault detection in system classes during testing The underlying goal of such a study is to better understand the relationship between existing design measurement in OO systems and the quality of the software developed Results show that many of the measures capture similar dimensions in the data set, thus reflecting the fact that many of them are based on similar principles and hypotheses Besides the size of classes, the frequency of method invocations and the depth of inheritance hierarchies seem to be the main driving factors of fault-proneness
[80] Briand, L C., J Daly, et al 'Predicting fault-prone classes with design measures in object-oriented
systems', in Proc Proceedings Ninth International Symposium on Software Reliability Engineering IEEE
Comput Soc, 1998
Keywords: Emp, Prod, Qual
Abstract: The paper aims at empirically exploring the relationships between existing object oriented coupling,cohesion, and inheritance measures and the probability of fault detection in system classes during testing Theunderlying goal of such a study is to better understand the relationship between existing product measurement
in OO systems and the quality of the software developed It is shown that by using a subset of existing measures, accurate models can be built to predict in which classes most of the faults are likely to lie in By
Trang 22inspecting 48% of the classes, it is possible to find 95% of the faults Besides the size of classes, the
frequency of method invocations and the depth of inheritance hierarchies seem to be the main driving factors
of fault proneness
[81] Briand, L C., J Daly, et al 'A unified framework for cohesion measurement in object-oriented systems',
in Proc 4th Intl Software Metrics Symp Alberquerque: IEEE Computer Society Press, 1997.
Keywords: Prod, Des
Abstract: The increasing importance being placed on software measurement has led to an increased amount ofresearch in developing new software measures Given the importance of object oriented development
techniques, one specific area where this has occurred is cohesion measurement in object oriented systems However despite an interesting body of work, there is little understanding of the motivations and empirical hypotheses behind many of these new measures It is often difficult to determine how such measures relate to one another and for which application they can be used As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state of the art in order to select or define cohesion measures for object oriented systems To help remedy this situation a unified framework, based on the issues discovered
in a review of object oriented cohesion measures, is presented The unified framework contributes to an increased understanding of the state of the art as it is a mechanism for: (i) comparing measures and their potential use, (ii) integrating existing measures which examine the same concepts in different ways, and (iii) facilitating more rigorous decision making regarding the definition of new measures and the selection of existing measures for a specific goal of measurement
[82] Briand, L C., J W Daly, et al., A comprehensive empirical validation of project measures for oriented systems , Fraunhofer Institute forExperimental Software Engineering, Kaiserslautern, 1998.Keywords: Emp, Des, Prod
object-Abstract: This paper aims at empirically exploring the relationships between existing object-oriented
coupling, cohesion, and inheritance measures and the probability of fault detection in system classes during testing The underlying goal of such a study is to better understand the relationship between existing product measurement in OO systems and the quality of the software developed Results show that many of the measures capture similar dimensions in the dataset, thus reflecting the fact that many of them are based on similar principles and hypotheses However, it is shown that by using a subset of measures, accurate models can be built to predict in which classes most of the faults are likely to lie in By inspecting an amount of code comparable to the one contained in faulty classes, it is possible to find between 90% and 95% of the faults, depending on the type of model validation considered Besides the size of classes, the frequency of method invocation and the depth of inheritance hierarchies seem to be the main driving factors of fault proneness Notes: available at http://www.iese.fhg.de/ISERN/pub/isern_biblio_tech.html
[83] Briand, L C., J W Daly, et al., A unified framework for cohesion measurement in object-oriented systems No ISERN-97-05, Fraunhofer Institute (IESE), 1997
Keywords: Prod, Des
Notes: The same treatment given to coupling measurement in the above paper is given here to cohesion
Trang 23measurement: (i) a standardized terminology and formalism for expressing measures is provided, (ii) a review
of the existing approaches to cohesion measurement in object-oriented systems takes place, (iii) a unified framework for cohesion measurement, based on the issues discovered in the review, is provided and all existing cohesion measures are then classified according to this framework, (iv) a review of the empirical validation work concerning existing cohesion measures is provided
The paper is available on-line at:
http://www.iese.fhg.de/ISERN/pub/isern.biblio.html#techno
[84] Briand, L C., J W Daly, et al., 'A unified framework for cohesion measurement in object-oriented
systems', Empirical-Software-Engineering, 3(1), pp65-117, 1998.
Keywords: Prod, Rev
Abstract: One area where there is an increased amount of research on developing new software measures is cohesion measurement in object-oriented (OO) systems It is often difficult to determine how such measures relate to one another and for which application they can be used, so it is difficult to obtain a clear picture of the state-of-the-art in order to select or define cohesion measures for OO systems This situation is addressed and clarified through several different activities (1) A standardized terminology and formalism for expressingmeasures is provided (2) To provide a structured synthesis, a review of the existing approaches to measure cohesion in OO systems takes place (3) A unified framework, based on the issues discovered in the review, isprovided and all existing measures are then classified according to this framework (4) A review of the empirical validation work concerning existing cohesion measures is provided This paper contributes to an increased understanding of the state-of-the-art: a mechanism is provided for comparing measures and their potential use, integrating existing measures which examine the same concepts in different ways, and
facilitating more rigorous decision-making regarding the definition of new measures and the selection of existing measures for a specific goal of measurement In addition, our review highlights several important issues: (i) many measures are not defined in a fully operational form, (ii) relatively few of them are based on explicit empirical models as recommended by measurement theory, and (iii) an even smaller number of measures have been empirically validated
[85] Briand, L C., J W Daly, et al., A Unified Framework for Coupling Measurement in Object-Oriented Systems Technical Report No ISERN-96-14,, Fraunhofer Institute for Experimental Software Engineering, 1996
Keywords: Des, Prod
Notes: The unified framework for coupling measurement is a mechanism for comparing coupling measures and their potential use, integrating existing coupling measures which examine the same concepts in different ways, and facilitating more rigorous decision making regarding the definition of new coupling measures and the selection of existing coupling measures for a specific goal of measurement The unified framework is the result of a structured synthesis, based on a review of existing frameworks and measures for coupling
measurement in object-oriented systems In this paper, first a standardized terminology and formalism for expressing measures is provided, which ensures that all measures using it are expressed in a fully consistent and operational manner Second, a review of the existing frameworks and measures for coupling
measurement in object-oriented systems takes place Third, the unified framework, based on the issues discovered in the review, is provided and all existing measures are then classified according to this
framework Finally, a review of the empirical validation work concerning existing coupling measures is
Trang 24Keywords: Prod, Rev
Abstract: The increasing importance being placed on software measurement has led to an increased amount ofresearch developing new software measures Given the importance of object-oriented development
techniques, one specific area where this has occurred is coupling measurement in object-oriented systems However, despite a very interesting and rich body of work, there is little understanding of the motivation and empirical hypotheses behind many of these new measures It is often difficult to determine how such
measures relate to one another and for which application they can be used As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state of the art in order to select or define measures for object-oriented systems This situation is addressed and clarified through several differentactivities First, a standardized terminology and formalism for expressing measures is provided which ensuresthat all measures using it are expressed in a fully consistent and operational manner Second, to provide a structured synthesis, a review of the existing frameworks and measures for coupling measurement in object-oriented systems takes place Third, a unified framework, based on the issues discovered in the review, is provided and all existing measures are then classified according to this framework This paper contributes to
an increased understanding of the state-of-the-art
[87] Briand, L C., P Devanbu, et al 'An investigation into coupling measures for C++', in Proc 19th Intl Conf on Softw Eng Boston, MA: IEEE Computer Society Press, 1997.
Keywords: C++, Des, Emp, Prod
Abstract: The paper proposes a comprehensive suite of measures to quantify the level of class coupling duringthe design of object oriented systems This suite takes into account the different OO design mechanisms provided by the C++ language (e.g., friendship between classes, specialization, and aggregation) but it can be tailored to other OO languages The different measures in our suite thus reflect different hypotheses about the different mechanisms of coupling in OO systems Based on actual project defect data, the hypotheses underlying our coupling measures are empirically validated by analyzing their relationship with the
probability of fault detection across classes The results demonstrate that some of these coupling measures may be useful early quality indicators of the design of OO systems These measures are conceptually differentfrom the OO design measures defined by S.R Chidamber and C.F Kemerer (1994); in addition, our data suggests that they are complementary quality indicators
Notes: A related technical report is available on-line at:
http://www.iese.fhg.de/ISERN/pub/isern.biblio.html#techno
[88] Briand, L C., K El Emam, et al., Theoretical and empirical validation of software product measures
No ISERN-95-03, International Software Engineering Research Network, 1995
Trang 25Keywords: Theory, Emp, Prod
Abstract: This paper outlines Briand's approach to metric validation He splits validation into theoretical and empirical Theoretical validation is carried out to ensure that a measure is actually measuring what it purports
to measure The theoretical validation in this paper concentrates wholly on measurement theory This should apply to both internal measures and the external measures to which they relate Empirical validation isconcerned with providing evidence that the measure is useful, i.e., if it is related to a measure of some external attribute The paper considers the design of experiments to collect data and how the type of data affects the type of statistical technique used to analyse them
Generally the paper is useful , insightful and pragmatic A good basis for deciding upon a validation strategy
[89] Briand, L C., K El Emam, et al., 'On the application of measurement theory in software engineering',
Empirical Software Engineering: an international journal, 1(1), 1996.
Keywords: Theory
Abstract: This paper presents a compelling counter argument to the current trend toward the strict application
of measurement theory in software engineering The authors quote work done in the social sciences and statistics to support this position The main points covered are :-
1, There is little basis for mandating that software complexity measures should be additive and that they should assume an extensive structure
2, It is not obvious that all non parametric statistics make use of only rank-order information in their
calculation Therefore, caution should be exercised even when strictly following the commonly found proscriptions on the use of statistical procedures
3, In software engineering, as in other disciplines, it is frequently difficult to know for certain the scale type
of a measure
4, The use of parametric statistics is more risky than the use of non parametric statistics in a field where measurement scales are not well understood However, with care and after thorough reflection, such a risk may appear to be worth taking when one considers the following facts:
i, Many common parametric techniques are robust to non-linear distortions of interval scales as long as they are not 'too extreme' If this is the case, these statistics will have a tendency to be conservative and underestimate existing relationships and differences
ii, Parametric techniques are, in general, more powerful than non parametric statistics An increased use of the less powerful non parametric statistics may lead to: a reduction in the empirical research because of the unfeasibility of the larger sample sizes required to attain reasonable power with non parametric statistics; and/or an increase in 'non-significant' findings which may cause many interesting relationships being
overlooked
They conclude that the software engineering community should not accept measurement theory prescriptions and proscriptions as though they were absolute (almost religious) and unquestionable Pragmatism and common sense, combined with a reasonable dose of rigour, should always prevail
[90] Briand, L C., S Morasca, et al 'Assessing software maintainability at the end of high-level design', in
Proc IEEE Conference on Software Maintenance Montreal, Quebec, Canada: 1993.
Keywords: Des, Emp
Trang 26Abstract: Lionel Briand writes: "We did a substantial amount of work on the subject of metrics for abstract data types Moreover, we validated them experimentally, which is not the case of most (if not all) the metrics
in the literature Only a part of this work is published since several papers are still under review The second reference is more complete since it was completed recently The experimental results are only provided in the second reference."
Notes: He also has these papers on the following ftp site: ftp://ftp.cs.umd.edu in pub/sel/papers However, the postscript files are not perfect because they have been generated from MS-word files on Mac Hardcopies can
be sent Lionel is now at briand@iese.fhg.de Walcélio Melo is at wmelo@crim.ca
[91] Briand, L C., S Morasca, et al., Defining and validating high-level design metrics Technical Report
No CS-TR 3301, UMIACS-TR-94-75, University of Maryland, 1994
Keywords: Des, Emp
[92] Briand, L C., S Morasoa, et al 'Measuring and Assessing Maintainability at the End of High Level
Design', in Proc Conference on Software Maintenance Montreal, Canada: IEEE, 1993.
Keywords: Maint, Des, Prod
Abstract: Software architecture appears to be one of the main factors affecting software maintainability Therefore, in order to be able to predict and assess maintainability early in the development process we need
to be able to measure the high-level design characteristics that affect the change process To this end, we propose a measurement approach, which is based on Object-Oriented Design principles and is partially language independent We define metrics for cohesion, coupling, and visibility in order to capture the difficulty of isolating, understanding, designing and validating changes
[93] Bristol, S R 'Tools for object-oriented (OO) metircs collection', in Proc OOPSLA'96 - workshop: OO product metrics 1996.
Keywords: Tool, Prod
Notes: Position paper
[94] Brooks, C L and C G Buell 'A tool for automatically gathering object-oriented metrics', in Proc Aerospace and electronics conference 1994.
Keywords: Tool
Abstract: Measuring software and the software development process are essential for organizations attempting
to improve their software processes For organizations using the object-oriented development approach, traditional metrics and metric gathering tools meant for procedural and structured software development are typically not meaningful Chidamber and Kemerer proposed a suite of metrics for object-oriented design based upon measurement theory and guided by the insights of experienced object-oriented software
developers This paper presents the implementation of a tool to gather a subset of these proposed metrics for
an object oriented software development project Software metrics can be gathered at many levels of
Trang 27granularity; this tool provides measurements at two levels: class-level and system-level Class-level metrics measure the complexity of individual classes contained in the system These metrics can be very useful for predicting defect rates and estimating cost and schedule of future development projects Examples of class-level metrics are depth of inheritance tree and class coupling System-level metrics deal with a collection of classes that comprise an object-oriented system Number of class clusters and number of class hierarchies are two examples of system-level metrics The tool was written in C++ and currently only supports C++ software measurement The authors plan to add the capability to measure software written in other object-oriented languages in the near future
[95] Brooks, I 'Object-oriented metrics collection and evaluation with a software process', in Proc OOPSLA
`93 Workshop on Processes and Metrics for Object Oriented Software Development Washington DC: 1993.
Keywords: Des, Emp, Size, Ind, Man, Qual
Notes: Not necessarily available as a paper However, see the Workshop Report: [Bilow, 1993] The
following is taken from that report: "Irene Brooks presented a paper based on practical experience at Texas Instruments She explained how TI has found measures of size, defect density, and defect intensity to be very useful in the schedule management and defect control She commented that some traditional metrics like McCabe complexity measure do not appear to be useful for O-O development She also noted that it seems necessary to find adequate measures for polymorphism, inheritance, and the cohesion between class
attributes Her primary goals are repeatability of process, quality measurement, project management and configuration control techniques." Irene is at elise@tasmania.works.ti.com
[96] Brownlow, L S 'Early Estimating in the Object-Oriented Analysis and Design Environment', in Proc European Software Cost Modelling Conference Ivrea, Italy: 1994.
Keywords: Size, Ind, Emp
[97] Bucci, G., F Fioravanti, et al 'Metrics and tool for system assessment', in Proc Fourth IEEE
International Conference on Engineering of Complex Computer Systems IEEE Comput Soc, 1998.
Keywords: Tool, Qual
Abstract: A wide increment of object-oriented diffusion has been registered This is accompanied by the needs of metrics and tools for assessing class reusability, maintainability, complexity, etc Metrics have to produce confident results and have to be continuously revalidated on the basis of the specific purpose of their adoption Tools for system assessment must be capable of satisfying the needs of each company by
supporting the definition of more specific metrics and by providing appropriate views of software
characteristics These views are useful to give the developers as well as the managers immediately
understandable representations of the system status In this paper a new approach is proposed for system assessment This approach is based on the adoption of new and well-known metrics together with a set of histograms and profiles that give a clear characterization of the system under development The semantics of these histograms has been validated against several projects A brief overview of the tool, TAC++, developed for system assessment is also included
[98] Burbeck, S L., 'Real-Time Complexity Metrics for Smalltalk Methods', IBM Systems Journal, 35(2),
Trang 28pp204-226, 1996.
Keywords: Small, Prod
Abstract: This paper presents the rationale for ubiquitous and immediate metric feedback on the complexity
of Smalltalk methods whenever they are viewed or changed It also presents seven metrics for Smalltalk methods that can be quickly and easily determined from the code and are suitable for real-time feedback For each of these metrics, there is a description, an explanation of how it is determined and why it is related to complexity, and suggestions for how to improve code that receives a poor rating for the metric
[99] Buth, A., 'Softwaremetriken für objekt-orientierte programmiersprachen', Arbeitspapiere der GMD (545), (June), 1991.
Notes: Angelika Linden (was Buth) is now at General Electric Corporate Research and Development in Schenectady, New York, lindenan@thuban.crd.ge.com Address for GMD is: Postfach 1240, Schloss Birlinghoven, D-5205 Sankt Augustin 1, Germany, tel: (0) 49 2241142 440, fax: (0) 49 2241 142 618
[100] Byard, C., 'Software beans: class metrics and the mismeasure of software', Journal of Object-Oriented Programming, 7(5), pp32-34, 1994.
Keywords: Man, Theory
Abstract: Object-oriented software has created a new "level playing field" for the software industry For software measurement, it's a whole new ball game Where there are beans, there are bean counters Object-oriented software provides some obvious beans for counting that are being seized by those wishing to measure object-oriented software Herein lies a danger The mismeasure of software that the computer industry has practiced for years is examined It engenders poor engineering and poor business decisions for developing and procuring software When scientists envision an attribute, they strive to find a way to measurethe attribute objectively Such measures are helpful in comparing similar items The danger is when measures
of one attribute are incorrectly interpreted to apply to others
Notes: A call for scientific measurement invoking Stephen Jay Gould's example, in The Mismeasure of Man (Norton & Co., NY, 1981), of measuring brain power as the weight of lead shot required to fill a skull
"Business people and software development teams should place no more faith in class metrics for making critical software decisions than lead shot in skulls for evaluating the intelligence of people Instead they must focus on the end-goals for software and the resources needed to achieve them."
Cory Byard is at cory.byard@daytonoh.ncr.com
[101] Caldiera, G., G Antoniol, et al 'Definition and experimental evaluation of function points for
object-oriented systems', in Proc 5th Intl Metrics Symp Bethesda, MD: IEEE Computer Society, 1998.
Keywords: Emp, Man, Size
Abstract: We present a method for estimating the size, and consequently effort and duration, of object oriented software development projects Different estimates may be made in different phases of the
development process, according to the available information We define an adaptation of traditional function points, called Object Oriented Function Points, to enable the measurement of object oriented analysis and
Trang 29design specifications Tools have been constructed to automate the counting method The novel aspect of our method is its flexibility An organisation can experiment with different counting policies, to find the most accurate predictors of size, effort, etc in its environment The method and preliminary results of its
application in an industrial environment are presented and discussed
Notes: Describes an adaptation to traditional function points to predict size and effort for OO developments
A small pilot study of 8 systems reveals a strong correlation between the FPs and size
[102] Campanai, M and P Nesi 'Supporting object-oriented design with metrics', in Proc Technology of Object-Oriented Languages and Systems, TOOLS 13 Prentice Hall, Hemel Hempstead, UK, 1994.
Keywords: Theory, Des, Qual
Abstract: A framework for the estimation of object-oriented system specifications by using a set of software metrics covering technical, cognitive and process-oriented views is presented The parameters defined in this paper allow the evaluation of a prevision model to quantify expected efforts as a function of the life-cycle stages The use of metrics for the estimation of reusability, modularity, maintainability and testability is analyzed These metrics are integrated in a CASE tool named TOOMS, which has been defined by our research group for the specification of reactive systems TOOMS is based on TROL, a dual object-oriented language with both descriptive and operational capabilities TOOMS allows one to describe the system at different levels of structural abstractions, and at different levels of specification detail The metrics proposed are able to produce estimations at each level of system specification, thus allowing incremental
specification/metrication
[103] Cant, S N., B Henderson-Sellers, et al., 'Application of cogitive complexity metrics to object-oriented
programs', Journal of Object Oriented Programming, 8(4), pp52-63, 1994.
Keywords: C++, Des, Emp
Abstract: A general model of cognitive complexity is described, including the ways in which a software engineer uses chunking and tracing to understand program code A case study of a C++ development is presented The results suggest that perceived modification complexity is predicted well by effects, while perceived error isolation complexity is predicted by determinants
Notes: Offers marginal empirical support using subjective complexity
[104] Cant, S N., D R Jeffery, et al., A conceptual model of cognitive complexity of elements of the programming process B Centre for Information Technology Research Report No 57, University of New South Wales, 1992
Keywords: Des
Notes: Full description of the complexity model used in [Cant, 1994] (q.v for authors' locations)
[105] Cant, S N., D R Jeffery, et al., 'A conceptual model of cognitive complexity of elements of the
programming process', Information & Software Technology, 37(7), pp351-362, 1995.
Trang 30Keywords: Prod, Theory
Notes: A different view of complexity based upon a cognitive model including chunking and slicing Lots of proposals but no empirical evidence
[106] Capper, N P., R J Colgate, et al., 'The impact of object-oriented technology on software quality: three
case histories', IBM Systems Journal, 33(1), pp131-157, 1994.
Keywords: Ind, Qual, Emp, Reuse
[107] Cartwright, M and M Shepperd 'Building predictive models from object-oriented metrics', in Proc 8th European Software Control and Metrics Conf Berlin: 1997.
Keywords: Emp, Des, Prod
Notes: May 26-28
[108] Cartwright, M and M Shepperd, An Empirical Study of Object-Oriented Metrics Technical Report
No TR 97/01, Dept of Computing, Bournemouth University, UK, 1997
Keywords: Des, Emp, Ind, Prod
Abstract: An empirical investigation of an industrial OO system, using readily available measures to constructlocally applicable metrics to predict defects and size An html version may be downloaded:
http://xanadu.bournemouth.ac.uk/staff/mshepperd/OOmetrics.html
[109] Cartwright, M and M Shepperd, An Empirical View of Inheritance No TR98-02, Empirical Software Engineering Group, Bournemouth University, 1998
Keywords: Emp, Man
Notes: An earlier version of the IST journal paper
This report may be downloaded from : 02/TR98-02.ps
http://dec.bournemouth.ac.uk/ESERG/Technical_Reports/TR98-[110] Cartwright, M and M Shepperd, 'An Empirical View of Inheritance', Information & Software
Technology, 40(14), pp795-799, 1998.
Keywords: Emp, Man
Abstract: For some years software engineering researchers have been advocating object-oriented (OO) methods as a
powerful approach to overcome many of the difficulties associated with software development A central concept within OO is the use of the inheritance mechanism, primarily with a view to enhancing opportunities
Trang 31for reuse This paper reviews the evidence we have concerning the use and the impact of inheritance within
OO software A striking result is how little the mechanism is used in practice The paper then goes onto describe an experiment conducted at Bournemouth University to investigate the impact of class inheritance upon the maintenance of C++ software The experiment was a replication of an experiment previously conducted at the University of Strathclyde Two versions of a bibliographic database program were used Oneused inheritance and the other a flat structure It was found that subjects took significantly longer to make the same change on the program with inheritance, however, their changes were more compact Interestingly the Strathclyde group found that the time to make changes for the inheritance version was reduced We conclude that there is an urgent need for further empirical work to study the impact of the inheritance mechanism using more subjects and in an industrial setting
[111] Chae, H S and Y R Kwon 'A cohesion measure for classes in object-oriented systems', in Proc Fifth International Software Metrics Symposium IEEE Comput Soc, Los Alamitos, CA, USA, 1998.
Keywords: Prod
Abstract: Classes are the fundamental concepts in the object-oriented paradigm They are the basic units of object-oriented programs, and serve as the units of encapsulation, which promotes the modifiability and the reusability of them In order to take full advantage of the desirable features provided by classes, such as data abstraction and encapsulation, classes should be designed to have good quality Because object-oriented systems are developed by heavily reusing the existing classes, the classes of poor quality can be a serious obstacle to the development of systems We define a new cohesion measure for assessing the quality of classes Our approach is based on the observations on the salient natures of classes which have not been considered in the previous approaches A Most Cohesive Component (MCC) is introduced as the most cohesive form of a class We believe that the cohesion of a class depends on the connectivity of itself and its constituent components We propose the connectivity factor to indicate the degree of the connectivity among the members of a class, and the structure factor to take into account the cohesiveness of its constituent components Consequently, the cohesion of a class is defined as the product of the connectivity factor and the structure factor This cohesion measure indicates how closely a class approaches MCC; the closely a class approaches MCC, the greater cohesion the class has
[112] Chan, E., 'A metrics based intelligent tutoring system for object-oriented design', International Journal
of Applied Software Technology, 3(4), pp253-272, 1997.
Keywords: Tool, Des
Abstract: While the importance of object-oriented design is widely recognized, many newcomers have found the learning curve quite steep In this paper, a metrics based tutoring system is described The key premise is that some typical flaws in object-oriented design can be identified using the appropriate object-oriented metrics By providing suitable feedback based on the metrics and other design checking rules, the system can help automate the learning process and provide a friendly self-learning environment to the student
[113] Chaudhri, A B., 'An annotated bibliography of benchmarks for object databases', ACM SIGMOD Record, (March), 1995.
Keywords: Rev
Trang 32Abstract: Contains many papers relating to Object DBMS benchmarking Akmal Chaudhri is at
akmal@cs.city.ac.uk
[114] Chaumun, M A., H Kabaili, et al 'A change impact model for changeability assessment in
object-oriented software systems', in Proc Third European Conference on Software Maintenance and
Reengineering IEEE Comput Soc, Los Alamitos, CA, USA, 1999.
Keywords: C++, Maint, Theory
Abstract: Growing maintenance costs have become a major concern for developers and users of software systems Changeability is an important aspect of maintainability, especially in environments where software changes are frequently required In this work, the assumption that high-level design has an influence on maintainability is carried over to changeability and investigated for quality characteristics The approach taken to assess the changeability of an object-oriented (OO) system is to compute the impact of changes made
to classes of the system A change impact model is defined at the conceptual level and mapped on the C++ language In order to assess the practicality of the model on large industrial software systems, an experiment involving the impact of one change is carried out on a telecommunications system The results suggest that the software can easily absorb this kind of change and that well chosen conventional OO design metrics can
be used as indicators of changeability
[115] Chen, D J and D T K Chen, 'An experimental study of using reusable software design frameworks to
achieve software reuse', Journal of Object-Oriented Programming, 7(2), pp56-67, 1994.
Keywords: C++, Des, Emp, Reuse
Abstract: Reuse of code has some limitations; a higher level of reuse is design reuse Software designs can be reused across programming languages to implement similar systems in different ways This article proposes
an approach to constructing Reusable Software Design Frameworks (RSDFs) The design framework provides an implementation-independent specification part and a language-dependent implementation part to rapidly prototype the software system to be constructed To understand the software productivity and quality
of the proposed RSDF, we perform an experiment to compare the proposed approach with a traditional designapproach in terms of several software metrics The experimental results show that the proposed approach demonstrates better performance according to these software metrics
Notes: Discusses what constitutes a reusable software design framework (RSDF) and how to achieve one Tried a student experiment on 20 graduate students in three groups: A (7 using C++ with reuse); B (7 using the RSDF approach); and C (6 using C in a traditional manner) All students had to develop a window management system, and metrics were collected for each development B scored well on process measures such as time to produce and productivity (LOC/hour) McCabe and Halstead were also collected but this seems less meaningful
Trang 33Abstract: Presents a methodology for producing and reusing reusable components in C++ Describes a controlled experiment using 19 students developing a data base system This indicated that their method gives
an advantage over traditional ("top-down or free style") development methods
[117] Chen, D J and P J Lee, 'On the study of software reuse using reusable C++ components', Journal of Systems and Software, 20(1), pp19-36, 1993.
Keywords: C++, Reuse
Abstract: The article presents a way (based on object interface) to manufacture reusable software components and proposes a software construction method with guidelines for using designed reusable C++ components Currently, about 130 reusable C++ components have been developed and they have been classified into a manageable structure A controlled experiment was conducted to substantiate the proposed software reuse approach in terms of software productivity and quality Compared with the traditional design and
implementation approach, the proposed approach demonstrates its advantages for both software productivity and software quality improvement These advantages are evident from the software metrics generated in the experiment
[118] Chen, J Y and J F Lu, 'A new metric for object-oriented design', Information & Software Technology,
35(4), pp232-240, 1993
Keywords: Des, Emp
Abstract: The paper presents a new metric for the object-oriented design The metric measures the complexity
of a class in an object-oriented design The metrics include operation complexity, operation argument complexity, attribute complexity, operation coupling, class coupling, cohesion, class hierarchy, and reuse An experiment is conducted to build the metric system The approach is to derive a regression model of the metrics based on experimental data Moreover, subjective judgements by experts are incorporated in the regression model This ensures that the metric system is pragmatic and flexible for the software industry Notes: An experiment using six subjects to assess various OO metrics and a depressing example of an experiment without a hypothesis The authors use multiple regression techniques to derive a composite of 4 metrics (operation complexity, operation argument complexity, operation coupling and class coupling) to predict an expert's subjective judgement of class complexity (based upon 9 factors) The authors don't say whether they use a stepwise method, nor do they give the R squared so it is difficult to comment upon the significance of this work
[119] Cheol, J Y., 'A factor analysis of object-oriented software complexity measures for small size C++
programs', Journal of KISS, 23(7), pp711-720, 1996.
Keywords: Theory, C++, Emp
Abstract: The complexity measures of object-oriented programs proposed in several papers are actually measuring the same thing This paper includes a series of experiments analyzing relationships among some commonly used object-oriented program complexity measures Identifying relationships is important in selecting the most significant measures to collect Factor analysis, one of the advanced statistical analysis techniques, has been used to analyze software measures and is useful in identifying the important factors that
Trang 34influence variability in measures This paper arranges object-oriented programs' complexity measures (variables), as proposed in several research studies, then analyzes the values of the complexity measures for C++ programs measured by a small-size tool automatically, and selects significant variables (factors) that affect the object-oriented software complexity by factor analysis As a result, it is shown that three factors can
be obtained by factor analysis Factor 1 is closely correlated with the interface complexity caused by
encapsulation Factor 2 is related to the class of structure that explains the degree of object-orientation for the size of program, and factor 3 is related to the degree of reuse From the results, we recognize that these three factors must be considered when developing a complexity measurement model for object-oriented software
[120] Chidamber, S R., D P Darcy, et al., Managerial use of object oriented software metrics Working Paper No 750, Katz Graduate School of Business, Univ of Pittsburgh, 1997
Keywords: Des, Prod, Emp
Notes: Contains a worked example and some empirical data to support the Chidamber and Kemerer metrics suite
[121] Chidamber, S R., D P Darcy, et al., 'Managerial use of object oriented software metrics: an
exploratory analysis', IEEE Transactions on Software Engineering, 24(8), pp629-639, 1998.
Keywords: Emp, Des
Abstract: With the increasing use of object-oriented methods in new software development, there is a growingneed to both document and improve current practice in object-oriented design and development In response
to this need, a number of researchers have developed various metrics for object-oriented systems as proposed aids to the management of these systems In this research, an analysis of a set of metrics proposed by
Chidamber and Kemerer (1994) is performed in order to assess their usefulness for practising managers First,
an informal introduction to the metrics is provided by way of an extended example of their managerial use Second, exploratory analyses of empirical data relating the metrics to productivity, rework effort and design effort on three commercial object-oriented systems are provided The empirical results suggest that the metrics provide significant explanatory power for variations in these economic variables, over and above that provided by traditional measures, such as size in lines of code, and after controlling for the effects of
individual developers
Notes: Updated version of the 1997 Tech Rep
[122] Chidamber, S R and C F Kemerer 'Towards a Metrics Suite for Object Oriented Design', in Proc OOPSLA '91 ACM, 1991.
Keywords: Des, Theory, Prod
Notes: First description of the well known Chidamber and Kemerer suite of metrics The authors offer support for their ideas in the form Weyuker's nine axioms that complexity metrics ought to satisfy See
Weyuker, E J (1988) Evaluating software complexity measures IEEE Transactions on Software
Engineering, 14(9), 1357-1365
Trang 35[123] Chidamber, S R and C F Kemerer, A metrics suite for object oriented design Technical Report No
WP No 249, Center of Information Systems Research (MIT), 1993
Keywords: Des, Prod
Abstract: This is an earlier version of the previous reference of Chidamber, S R., & Kemerer, C F (1994) A
metrics suite for object oriented design IEEE Transactions on Software Engineering, 20(6), 476-493
Notes: Chris Kemerer is at: CKEMERER@Katz.Business.Pitt.Edu
[124] Chidamber, S R and C F Kemerer 'MOOSE: Metrics for Object Oriented Software Engineering', in
Proc OOPSLA `93 Workshop on Processes and Metrics for Object Oriented Software Development
Washington DC: 1993
Keywords: C++, Des, Emp, Small
Abstract: Not necessarily available as a paper However, see the OOPSLA `93 Workshop Report: Steven C Bilow, Tektronix, Inc and Doug Lea, SUNY Oswego & N.Y CASE Center The following is taken from that report: The Chidamber and Kemerer metrics have generated a significant amount of interest and are currently the most well known suite of measurements for O-O software In Shyam's quest to validate his metrics he has spent 3 months interviewing software designers and several month collecting empirical data from both C++ and Smalltalk projects His principal points are that metrics must be theoretically rigorous and practically relevant Toward those goals, the MOOSE metrics are beginning to show strong empirical validity
[125] Chidamber, S R and C F Kemerer, 'A metrics suite for object oriented design', IEEE Transactions on Software Engineering, 20(6), pp476-493, 1994.
Keywords: Des, Prod
Abstract: Given the central role that software development plays in the delivery and application of
information technology, managers are increasingly focusing on process improvement in the software
development area This demand has spurred the provision of a number of new and/or improved approaches to software development, with perhaps the most prominent being object-orientation (OO) In addition, the focus
on process improvement has increased the demand for software measures, or metrics with which to manage the process The need for such metrics is particularly acute when an organization is adopting a new
technology for which established practices have yet to be developed This research addresses these needs through the development and implementation of a new suite of metrics for OO design Metrics developed in previous research, while contributing to the field's understanding of software development processes, have generally been subject to serious criticisms, including the lack of a theoretical base Following Wand and Weber (1989), the theoretical base chosen for the metrics was the ontology of Bunge (1977) Six design metrics are developed, and then analytically evaluated against Weyuker's (1988) proposed set of measurementprinciples An automated data collection tool was then developed and implemented to collect an empirical sample of these metrics at two field sites in order to demonstrate their feasibility and suggest ways in which managers may use these metrics for process improvement
Notes: This paper restates the work presented in their earlier paper and cites general criticisms made at previous metrics work i.e.,
Trang 36· lacking a theoretical basis
· lacking desirable measurement properties
· being too implementation dependent
· being too labour intensive to collect
It presents the results of applying the metrics to industrial software In conclusion the paper states that : an advantage of design metrics is that it produces a clearer picture of the tradeoffs made during the design process; and OO metrics can help in selecting between possible designs the one that is most appropriate to thegoals of the organisation
[126] Chidamber, S R and C F Kemerer, 'Reply To Comments on "A Metrics Suite for Object-Oriented
Design"', IEEE Transactions on Software Engineering, 21(4), pp265, 1995.
Keywords: Des
Abstract: Reply to [Churcher, 1995]: "In our view, the entire list of questions [about what methods should be included in the calculation of Number of Methods Per Class] can be answered by reference to a simple principle that methods which required additional design effort and are defined in the class should be counted, and those that do not should not
[127] Chung, C., T Shih, et al., 'Integration Object-Oriented Testing and Metrics', International Journal of Software Engineering and Metrics, 7(1), pp125-144, 1997.
Keywords: Test
Abstract: Software testing methodologies and metrics are key issues to improve and assure software quality They are important areas in the research of software engineering However, not many focus on the testing criteria and metrics evaluation of a class hierarchy The paper introduces an important concept named URI (Unit Repeated Inheritance) to realize integrated object oriented testing and object oriented metrics The approach describes an ILT (Inheritance Level Technique) method as a guide to test object oriented software errors and measure the software complexity of a class hierarchy The proposed technique shows that
inheritance has a close relation to object oriented software complexity and reveals that overuse of repeated (multiple) inheritance will increase software complexity and be prone to implicit software errors Also, two test criteria: intra level first and inter level first are presented
[128] Chung, C., C Wang, et al 'Class Hierarchy Based Metrics for Object-Oriented Design', in Proc Proceedings of the 1994 IEEE Region 10's Ninth International Conference Frontiers of Computer
Technology Singapore: IEEE, 1994.
Keywords: Des, Prod
Abstract: Object-oriented technology, including object-oriented analysis (OOA), object-oriented design (OOD), and object-oriented programming (OOP), is a new promising approach to developing software systems to reduce software costs and to increase software extensibility, flexibility, and reusability Software metrics are widely used to measure software complexity and assure software correctness This paper proposes
a metric to measure object-oriented software Also, an important factor called URIs, is conducted to build the metric This approach describes a graph-theoretical method for measuring the complexity of the class hierarchy The proposed metric shows that inheritance has a close relation with object-oriented software
Trang 37complexity and reveals that misuse of repeated (multiple) inheritance will increase software complexity and
be prone to implicit software errors
[129] Chung, C M and M C Lee, 'Inheritance-based metric for complexity analysis in object-oriented
design', Journal of Information Science and Engineering, 8(3), pp431-447, 1992.
Keywords: Des, Prod
Abstract: Object-oriented software development, including object-oriented analysis (OOA), object-oriented design (OOD) and object-oriented programming (OOP), is a promising new approach for developing softwaresystems to reduce software costs and to increase software reusability, flexibility, and extensibility Software metric is an important technique used to measure software complexity to improve software quality and enhance software correctness For the past decade, most software metrics have been developed on procedure-oriented languages and widely applied to software complexity evaluation Recently, many researches on software metrics have taken the object-oriented approach to measuring the complexity of OO software However, few researches have led to insight into the relationships between object-oriented design complexityand inheritance This paper describe a graph-theoretical metric for measuring the complexity of class hierarchy This metric shows that inheritance has a close relation with object-oriented software complexity and reveals that overuse of repeated (multiple) inheritance will increase software complexity and be prone to implicit software errors An algorithm to support this software metric is presented Its time complexity is O(n^3) (12 Refs.)
[130] Chung, C M and M C Lee 'Inheritance-Based Object-Oriented Software Metrics', in Proc TENCON '92 IEEE Region 10 Conference Melbourne, Australia: IEEE, 1992.
Keywords: Prod
Abstract: There is no software metrics based on object-oriented programming languages (OOPLs) developed
to help oriented software development A graph-theoretical complexity metric to measure oriented software complexity is described It shows that inheritance has a close relation with the object-oriented software complexity, and reveals that misuse of repeated (multiple) inheritance will increase software complexity and be prone to implicit software errors An algorithm to support this software metric is presented Its time complexity is O(n^3)
object-[131] Chung, C M and M C Lee, 'Object-oriented programming software metrics', International Journal of Mini and Microcomputing, 16(1), pp7-15, 1994.
Keywords: Prod, Theory
Abstract: Object-oriented software development, including object-oriented analysis, object-oriented design, and object-oriented programming, is a new and promising approach to developing software systems in order
to reduce software costs and increase reusability, flexibility, and extensibility Software metric is an importanttechnique used to measure software complexity, to improve software quality and enhance software
correctness However, there is no software metrics based on object-oriented programming languages
developed to facilitate object-oriented software development This paper describes a graph-theoretic
complexity metric and illustrates how it can be used to manage and control object-oriented software
complexity It shows that inheritance has a close relation with the object-oriented software complexity, and
Trang 38reveals that misuse of repeated (multiple) inheritance will increase software complexity and be prone to implicit software errors An algorithm to support this inheritance-based software metric is presented Its time complexity is O(n^3)
[132] Chung, C M., T K Shih, et al 'A graph-theoretical metric for object-oriented software complexity', in
Proc Proceedings of the Eleventh International Symposium on Computer and Information Sciences ISCIS
Middle East Tech Univ, Ankara, Turkey: 1996
Keywords: Theory, Prod
Abstract: Software metrics are widely used to measure software complexity and assure software quality However, research in the field of the software complexity of a class hierarchy has not yet been carefully studied We introduce a novel factor named URI (Unit Repeated Inheritance) and an important method namedILT (Inheritance Level Technique) to realize and measure the object oriented software complexity of a class hierarchy The approach is based on the graph theoretical model for measuring the hierarchical complexity in inheritance relations The proposed metric shows that inheritance has a close relation to the object oriented software complexity and reveals that overuse of repeated (multiple) inheritance will increase software complexity and be prone to implicit software errors
[133] Chung, C M., T K Shih, et al 'Inheritance hierarchy metric', in Proc Eleventh International
Symposium on Computer and Information Sciences ISCIS Middle East Tech Univ, Ankara, Turkey: 1996.
Keywords: Qual, Theory
Abstract: The object oriented (OO) paradigm has a valuable programming technique However, very few software metrics have been proposed in the field of the OO paradigm Even of those proposed, not many focus on the complexity of an inheritance hierarchy We propose a suite of software metrics to measure the complexity of an inheritance hierarchy and introduce two indicators: Inheritance Density (ID) and Level Density (LD) These indicators show how the inheritance hierarchy influences software complexity Also, we evaluate our proposed OO metrics by E.J Weyuker's (1988) software metrics evaluation criteria
[134] Chung, C M., T K Shih, et al., 'Object-oriented software testing and metric in Z specification',
Information Sciences, 98(1-4), pp175-202, 1997.
Keywords: Theory, Prod
Abstract: Software testing and metrics are key issues for improving software quality They are important issues in the research of software engineering In line with the methodologies of object-oriented analysis and design, many testing and metrics techniques have been proposed However, not many focus on the testing criteria and metrics evaluation of an inheritance hierarchy The authors introduce a concept named unit repeated inheritance (URI) in Z to realize object-oriented testing and object-oriented metrics The approach describes an inheritance level technique (ILT) method as a guide to test and measure the software complexity
of an inheritance hierarchy The measurement of inheritance metrics and some testing criteria thus can be formed based on the proposed mechanism
[135] Chung, C M., T K Shih, et al., 'Object-oriented software development techniques-combining testing
Trang 39and metrics', International Journal on Information and Management Sciences, 6(4), pp17-34, 1995.
Keywords: Test, Prod
Abstract: Software testing methodologies and metrics are widely applied to assuring and evaluating software quality However, current software testing and metrics based on object-oriented programming languages are developed individually This paper introduces an important method named URI (Unit Repeated Inheritance)
to build integrated object-oriented testing and object-oriented metrics The approach describes ILT
(Inheritance Level Technique) methods for a guide to test software errors and measure software complexity The proposed techniques show that inheritance has a close relation with object-oriented software complexity and reveal that overuse of repeated (multiple) inheritance will increase software complexity and be prone to implicit software errors Also, two test criteria: intra level first and inter level first are presented
[136] Churcher, N and M J Shepperd 'Object-Oriented Software Metrics: Holy Grail or Poison Chalice?', in
Proc OOPSLA'94, Metrics Workshop Position Paper Portland, Oregon: ACM, 1994.
Keywords: Prod, C++
Abstract: "Interest in OO metrics is growing rapidly The problem of developing software metrics for OO systems is considerably more complex than the corresponding problem for conventional languages Yet this simpler problem remains unsolved and the reputation of the whole field of software metrics has been
tarnished by the lack of rigour in both theoretical and empirical work It seems premature to develop and apply OO metrics while there remains uncertainty not only about the precise definitions of many fundamental quantities and their subsequent impact on derived metrics, but also a lack of qualitative understanding of the structure and behaviour of OO systems We discuss some of the issues we have encountered in our own work and identify some of the factors which we believe are critical for the successful growth of OO metrics."
[137] Churcher, N and M J Shepperd, 'Comment on "A metrics suite for object oriented design"', IEEE Transactions on Software Engineering, 21(3), pp263-265, 1995.
Keywords: C++, Des
Abstract: This paper largely supports Chidamber and Kemerer (CK) in their attempts to produce metrics with
a sound theoretical basis It does however make the point that the detailed counting strategies for the primitivecounts on which the metrics are based were not specified As it says "while there is no ideal counting strategy,
it is important to make explicit the technique actually employed as misleading results may be obtained if like
is not compared with like." The paper continues with an extended example of the large variations in results which may be found if different counting strategies are used The paper stresses the importance of using and documenting the precise form appropriate to a particular circumstance, especially if the count s to be used in acomposite or indirect metric
[138] Churcher, N I and M J Shepperd, 'Towards a Conceptual Framework for Object Oriented Software
Metrics', ACM SIGSOFT Software Engineering Notes, 20(2), pp69-76, 1995.
Keywords: C++, Des, Emp
Abstract: This paper covers much of the ground also covered by their March '95 paper and also Shepperd '92
Trang 40It starts by questioning whether it is premature to develop OO metrics while there are still uncertainties in the definitions of many fundamental properties and a lack of even qualitative understanding of the behavior and structure of OO systems A set of proposed standardised terms is given together with an associated proposal for architectural modelling Although these are presented as implementation independent they seem heavily influenced by terminology and constructs of C++
It re-iterates the point made in previous papers that extreme caution should be exercised in trying to extend metrics designed for conventional systems into the OO domain Since recent studies show that both
complexity and the size of methods tend to be small it is suggested that the connectivity structure may be more important the than the content of individual methods in OO systems This connectivity is made up of both architectural structure and call-graph structure A suggestion is also made that usual static analysis techniques may not be sufficient to fully capture the dependencies in OO systems because of polymorphismand that this may cause problems for metrics and maintenance
The paper restates that the failure to precisely the counting rules used for a metric introduces unnecessary uncertainty into derived metrics and so lowers the usefulness of the results to other researchers A detailed demonstration of this is given using number of methods per class as an example Finally the CK metrics are examined and the effects on each metric of the choice of counting rules is considered
[139] Cimitile, A., A de Lucia, et al 'Identifying objects in legacy systems', in Proc Proceedings Fifth International Workshop on Program Comprehension IWPC'97 IEEE Comput Soc Press, Los Alamitos,
CA, USA, 1997
Keywords: Des, Qual
Abstract: We present an approach to decomposing legacy systems written in procedural languages into objects The identification of the objects is centred around persistent data scores, such as files or tables in the database, while programs and subroutines are candidate to implement object methods The approach proposedfor assigning programs and subroutines as object methods exploits object oriented design metrics The rationale behind this choice is that any object oriented decomposition of a legacy system should not lead to a poor design, as this would make the reengineered system more difficult to maintain
[140] Cimitile, A., A de Lucia, et al., 'Identifying objects in legacy systems using design metrics', Journal of Systems and Software, 44(3), pp199-211, 1999.
Keywords: Qual, Des
Abstract: Many organisations are migrating towards object-oriented technology However, owing to the business value of legacy software, new object-oriented development has to be weighed against salvaging strategies The incremental migration of procedurally oriented systems to object-oriented platforms seems to
be a feasible approach, although it must be considered as risky as redevelopment This approach uses reverse engineering activities to abstract an object-oriented model from legacy code The paper presents a method for decomposing legacy systems into objects The identification of objects is centred around persistent data stores, such as files or tables in the database, while programs and routines are candidates for implementing theobject methods Associating the methods to the objects is achieved by optimising selected object-oriented design metrics The rationale behind this choice is that the object-oriented decomposition of a legacy system should not result in a poor design, as this would make the re-engineered system more difficult to maintain
[141] Ciupke, O 'Analysis of object-oriented programs using graphs', in Proc Object-Oriented Technology,