Professor Dr.-Ing. habil.
Horst Zuse®
Home. Astrophysik-UFO. Konrad-Zuse. Horst Zuse - Home. Vorträge. Konrad Zuse. Fotos für Verlage .... Zum Verkauf.... Z22-Konstruktion. Zuse-Kunstdrucke. Zuses-Rechner. Pioniere. Zuse KG. Z3-Detail. Museen - Zuse. Konrad-Zuse-Gesell.. Zuseaner. Frühe Computer. Foto-Scout-Zuse. Ehemaligen-Treffen. Neuigkeiten. Nostalgisches. Bücher-informatik. Glossar. Häufig gestellte Frage. Impress./Datenschutz. Z3-80-Jahre

Horst Zuse: A Framework of Software Measurement



Publisher: Walter de Gruyter, Berlin, Genthinerstr. 13, 10785 Berlin, Phone: +49-30-26005-0, 1998,

755 pages.

ISBN: 3-11-015587-7.


Full Tabke of Contents



Table of Contents


1 Introduction

2 Aspects of Software Measurement

2.1 Terminology

2.1.1 The Terms Software Measurement, Measures, Metrics, etc.

2.1.2 The Terms Qualitative and Quantitative Conditions

2.2 Classes of Software Measures

2.2.1 Classification by Fenton

2.2.2 Classification Derived from the Models of Software

2.2.3 Intra- and Inter-Modular Software Measures

2.2.4 Classification of Traditional Software (Complexity) Measures

2.2.5 Classification of Measures in Object-Oriented Programming

2.2.6 Other Classification Criteria

2.3 Why Software Engineering Measurement?

2.3.1 Quantitative Methods and Software Engineering

2.3.2 Increasing Entropy

2.3.3 Situation in the Object-Oriented Environment

2.3.4 Benefits of Software Measurement

2.3.5 Software Measurement from a Management View

2.4 Measurement in Physics versus Software Engineering Measurement

2.4.1 Measurement in Physics

2.4.2 Measurement in Software Engineering

2.5 Models of Software

2.5.1 Introduction in Models

2.5.2 Models of Programs and Software Systems

2.5.2.1 Definition of a Program and a Module

2.5.2.2 Definition of Flowgraphs

2.5.2.3 Definition of Structure Charts / Constantine Method

2.5.3 Models of Object-Oriented Programming

2.6 Definition of Some Basic Measures

2.6.1 Measure Lines-of-Code (LOC)

2.6.2 Measures of Halstead

2.6.3 Measures of McCabe

2.6.4 Measure of Oviedo

2.6.5 Measure Defect-Density

2.6.6 Measures of Henry et al.

2.6.7 Other Measures for Structure Charts

2.6.8 Basic COCOMO Model

2.7 Problems of (Software) Measurement

2.7.1 Meaning of Numbers

2.7.2 Scales Types

2.7.3 Models behind Software Measures

2.7.4 Statistical Operations

2.7.5 Writing Reports

2.7.6 Simpson's Paradox

2.7.7 The Measure Defect-Density

2.7.8 Substitution of Software Components

2.7.9 Normalization of (Software) Measures

2.7.10 Hybrid Measures

2.7.10.1 McCabe's Measures as a Hybrid Measure

2.7.10.2 Single Measures Combined to Hybrid Measures

2.7.10.3 Summary

2.7.11 Wholeness

2.7.12 Correlation, Validation, and Prediction

2.7.12.1 Inter-Measure Correlation

2.7.12.2 Validation and Prediction

2.8 Open Questions

2.8.1 General Questions from a Measurement Theoretic View

2.8.2 Fenton's Topics

2.8.3 Questions from a Practitioner View

2.9 Exercises

3 History of Software Measurement

3.1 Groundwork of Software Measurement

3.2 Software Design Measurement

3.3 Cost, Effort and Size Estimation Measures

3.4 Standards in the Area of Software Measurement

3.5 Goal-Question-Metric Paradigm, User-View and Viewpoints

3.6 Measurement Theory and Software Measures

3.7 European Software Measurement Projects

3.8 Software Measurement in Germany

3.9 Research in the Area of Software Measurement in North America

3.10 Research in the Area of Software Measurement in Japan

3.11 Software Measurement in Australia

3.12 Desirable Properties for Software Measures

3.13 Validation of Software Measures and Prediction Models

3.14 Software Measures in an Object-Oriented Environment

3.15 Data Dependency Measurement

3.16 Entropy Measures

3.17 Software Measures for Distributed Systems

3.18 Neuronal Networks and Software Measures

3.19 Software Measurement Tools

3.20 Software Measures and Reengineering

3.21 Software Measures and Reuse

3.22 ISO 9000-3 Standards and Software Measurement

3.23 Cognitive Processes and Measures

3.24 Current State of Software Measurement

3.25 Exercises

4 Foundations of Software Measurement I

4.1 Introduction

4.2 Objectives of Measurement Theory in the Software Measurement Area

4.3 Normative and Descriptive Approach of Measurement

4.4 What is Measurement?

4.4.1 Definition of Measurement by Roberts

4.4.2 Measurement of Software Quality Factors

4.4.3 Measurement is the Comparison of Objects

4.4.4 Basic Definitions of Measurement

4.5 Fundamental and Derived Measurement

4.5.1 Fundamental Measurement

4.5.2 Derived Measurement

4.5.3 Summary

4.6 Measurement Process

4.7 Reasons for Empirical Interpretations

4.8 Basic Concepts of Measurement Theory

4.8.1 Introduction

4.8.2 Numerical and Empirical Properties

4.8.3 Empirical Statement Equally or More Difficult to Maintain

4.8.4 Additive Property and Concatenation Operations

4.8.5 Empirical and Numerical Relational Systems

4.8.6 Definitions of Measures

4.8.7 Definition of a Metric

4.8.8 Mappings

4.8.9 Relations

4.8.10 Weak Order

4.9 Additive Homomorphism and Concatenation Operations

4.9.1 Additive Properties

4.9.2 Concatenation Operations in Physics

4.9.3 Definition of a Concatenation Operation

4.9.4 Concatenation Operations in Software Engineering

4.9.5 Concatenation Operation for Programs

4.9.6 Concatenation Operations for Structure Charts

4.9.7 Concatenation Operations for Object-Oriented Environments

4.9.8 Different Views of Concatenation Operations

4.9.9 Consequences for Software Measurement

4.10 Extensive Structures

4.10.1 Definitions of Extensive Structures

4.10.2 Consequences for Software Measurement

4.11 Scales and Scale Types

4.11.1 Scale Types and Admissible Transformations

4.11.2 Difference between Scale Types and Scales

4.11.3 How to Know the Scale Type?

4.11.4 Highest Scale Level?

4.11.5 Scale Types are not so Important?

4.11.6 Scale Types and Meaningful Statistical Operations

4.11.7 Scale Types and Units

4.11.8 Consequences for Software Measurement

4.12 Meaningfulness

4.12.1 Wholeness

4.12.2 Consequences for Software Measurement

4.13 Axiom Systems and Measurement Scales

4.13.1 Introduction and Terminology

4.13.2 Nominal Scale

4.13.3 Ordinal Scale

4.13.4 Interval Scale

4.13.5 Ratio Scale

4.13.6 Absolute Scale

4.14 Exercises

5 Foundations of Software Measurement II

5.1 Extensive Structures and Applications to Software Measurement

5.1.1 Introduction

5.1.2 Extensive Structures

5.1.3 Terminology

5.1.4 Positive and Negative Extensive Structures

5.1.5 Idempotency

5.1.6 Extensive Structure and the Measurement of Length

5.1.6.1 Weak Order of Wooden Boards

5.1.6.2 Non-Additive Property of Length Measurement

5.1.6.3 Measurement of Lengths and the Ratio Scale

5.1.6.4 Summary of Measurement of Lengths

5.1.7 Extensive Structure, Additive and Non-Additive Measures

5.1.8 Weak Order

5.1.9 Qualitative Conditions derived from Concatenation Operations

5.1.10 Models of Quality behind the Measures LOC, McCabe and D-INFO

5.1.11 Summary of the Application of the Extensive Structure to Software Measures

5.2 Measurement Scales and Software Measures

5.2.1 Ordinal Scale

5.2.2 Interval Scale

5.2.3 Additive Ratio Scale

5.2.4 Extensive Structure and Non-Additivity

5.2.5 Absolute Scale

5.2.5.1 Measure of McCabe as an Absolute Scale

5.2.5.2 Measure LOC as an Absolute Scale

5.2.5.3 Consequences for Software Measurement

5.3 Interpretation of Numbers and Hypotheses about Reality

5.4 Combination Rules and Independence Conditions

5.4.1 Combination Rules

5.4.2 Independence Conditions

5.4.3 Importance of Combination Rules and Independence Conditions

5.4.4 Hierarchy of the Independence Conditions

5.4.5 Consequences for Software Measurement

5.5 Combination Rules of Measures

5.5.1 Introduction

5.5.2 Additive Combination Rule

5.5.3 Additive Combination Rule Plus a Constant

5.5.3.1 Cyclomatic Number

5.5.3.2 Measure of Oviedo and Combination Rules

5.5.3.3 Measure Number of Modules

5.5.3.4 What is Counting?

5.5.3.5 Consequences for Software Measurement

5.5.4 Additivity plus/minus a Variable

5.5.5 Additive Combination Rule plus/minus Overlapping Variables

5.5.6 Maximum of Objects

5.5.7 Multiplication of Objects

5.5.8 Absolute Structure

5.5.9 Nested Structures more Complex than Sequences

5.5.10 Electrical Resistors

5.5.11 Negative Extensive Structure in Software Measurement

5.5.12 Additive, Non-Additive Ratio Scales and the Law of Pythagoras

5.5.12.1 Wholeness or Supra-Additivity

5.5.12.2 Measures for Supra- and Sub-Additivity

5.5.12.3 Consequences for Software Measurement

5.5.13 Density Measures

5.5.14 Combination Rules and Normalized Measures

5.5.15 No Extensive Structure but Ratio Scale

5.5.16 Hybrid Measures

5.5.17 Relativistic Speed

5.5.18 Hierarchy of Scale Types related to Meaningfulness of Statements

5.6 Calibration of Software Measures

5.7 Conversion Rules

5.8 Scale Types of Counting, Money and Time

5.8.1 Scale Type of Time

5.8.2 Scale Type of Money?

5.8.3 Consequences for Software Measurement

5.9 Normalization of Measures

5.9.1 Normalization by a Ratio Scale Transformation

5.9.2 Normalization by Bowles

5.9.3 Density Measures

5.9.3.1 Density Measures and their Properties

5.9.3.2 Measure Defect-Density and Consequences for Applications

5.9.4 Percentage Measures

5.9.5 Normalization by Sneed

5.9.6 Consequences for Software Measurement

5.10 The Informationflow Measure and Scale Types

5.11 Types of Measures

5.12 Alternative Axiom Systems for the Interval and Ratio Scales

5.12.1 Bisymmetric Structures

5.12.2 Ratio Scale via Ratios of Difference Structures

5.13 Summary of Scales and Scale Types

5.14 Scales on Programs and Scales on Flowgraphs

5.14.1 Introduction

5.14.2 Condition F1 (Flowgraph and Equivalence Classes of Programs)

5.14.3 Condition F2

5.14.4 Condition F3

5.14.5 Condition F4

5.14.6 Consequences for Software Measurement

5.15 Units and Software Measurement

5.15.1 Introduction

5.15.2 Interval and Ratio Scales for Units

5.15.3 Requirement of Units for Software Measurement?

5.16 Framework of Software Measurement

5.16.1 Models Behind Software Measures

5.16.2 Measurement Theory and Software Measurement

5.17 Exercises

6 Measurement Theory and Object-Oriented Software Measures

6.1 Introduction

6.2 Object-Oriented Programming and Measurement

6.3 Classification of Object-Oriented Software Measures

6.4 Illustration of the Behavior of Object-Oriented Software Measures

6.4.1 Classes, Attributes and Methods as Sets

6.4.2 Measures and the Assigned Quality Model

6.4.3 Measures for the Depth of an Inheritance Tree

6.4.3.1 Examples of the Measure C-DIT

6.4.3.2 Examples of the Measure H-DIT

6.4.4 Measure Method Inheritance Factor H-MIF

6.4.5 Measure LCOMa

6.4.6 The Measure C-NAS

6.4.7 Measure Number of Children (C-NOC)

6.4.8 The Measure C-NOP

6.4.9 Results of our Investigation

6.5 Concatenation Operations for Object-Oriented Programs

6.5.1 The Idea behind Concatenation Operations

6.5.2 Extensive Structure and Object-Oriented Environment

6.5.3 Investigation of Chidamber et al.

6.5.4 Concatenation Operations For Methods

6.5.5 Concatenation Operations on the Class Level

6.5.5.1 Class Unification CUNI

6.5.5.2 Inheritance Relationship

6.5.5.3 Unification of Sibling Classes

6.5.5.4 Unification with a direct Subclasses

6.5.5.5 Discussion of Separate Classes

6.5.5.6 Concatenation Operation CUNI for Uses Relationships

6.5.5.7 Properties of the Concatenation Operation CUNI

6.5.5.8 Class Intersection CINT

6.5.5.9 The Empty Class

6.5.5.10 Summary

6.5.6 Concatenation Operations for Class Hierarchies

6.5.6.1 Hierarchical Aggregation HAGG

6.5.6.2 Hierarchical Generalization HGEN

6.6 Belief Structures

6.6.1 Introduction

6.6.2 Belief Functions

6.6.3 Motivation for the Use of Belief Structures as Measurement Structures

6.6.4 Kolmogoroff Axioms

6.6.5 Belief Functions of Dempster and Shafer

6.6.6 Qualitative Belief

6.6.7 Sets of Attributes and Methods in the Object-Oriented Environment

6.6.8 Axiom of Positivity

6.6.9 Dominance Axiom

6.6.10 Axiom of Partial Monotonicity of Qualitative Belief

6.6.10.1 Axiom of Partial Monotonicity versus Axiom of Monotonicity

6.6.10.2 Axiom of Partial Monotonicity in Physics I

6.6.10.3 Simpson's Paradox I

6.6.10.4 Axiom of Partial Monotonicity in Physics II

6.6.10.5 Simpson's Paradox II

6.6.11 DeFinetti Axioms

6.6.12 Importance of Partial Monotonicity for Object-Oriented Measurement

6.7 Modified Function of Belief and Modified Relation of Belief

6.8 Applications to Object-Oriented Measures

6.9 Ranking Properties of Object-Oriented Software Measures

6.10 Summary of Object-Oriented Software Measures

6.11 Exercises

7 Desirable Properties of Software Measures

7.1 Introduction

7.2 Required Properties by Bache

7.3 Required Properties of Measures by Conte et al

7.4 Size Measures

7.5 Validation Criteria of IEEE Standard 1061 for Software Measures

7.6 Required Properties of Software Complexity Measures by Basili and Reiter

7.7 Desirable Attributes of Effective Measures by Ejiogu

7.8 Required Properties of Software Complexity Measures by Fenton

7.9 Required Properties of Jones

7.10 Required Properties of Software Complexity Measures by Kearney et al

7.11 Required Properties for Software Measures by Shepperd and Ince

7.12 Weyuker's Properties

7.12.1 Weyuker's Property 1 (Basic Assumption of a Measure)

7.12.2 Weyuker's Property 2 (Finitely many Identifiers)

7.12.3 Weyuker's Property 3 (Equivalence Classes)

7.12.4 Weyuker's Property 4 (Same Functionality, but different Complexity)

7.12.5 Weyuker's Property 5 (Weak Positivity)

7.12.6 Weyuker's Property 6 (Rejection of the Weakest Independence Condition C1)

7.12.7 Weyuker's Property 7 (Weak Commutativity)

7.12.8 Weyuker's Property 8 (Renaming)

7.12.9 Weyuker's Property 9 (Wholeness)

7.12.9.1 Measures for Wholeness

7.12.9.2 Morascas et al. Argumentations

7.12.9.3 Ratio Scale Measure without the Extensive Structure.

7.12.9.4 Measure LOC and Wholeness

7.12.10 Are Weyuker's Properties Compatible?

7.12.11 Weyuker's Properties and Cherniavsky's Comments

7.12.12 Wholeness, but no Ratio Scale

7.12.13 Weyuker's Property 9 and the Law of Pythagoras

7.12.14 Weyuker's Statements and the Existential Quantifiers

7.12.15 Summary of Weyuker's Properties

7.13 Required Properties by Lakshmanan et al

7.14 Desired Properties by Watts

7.15 Summary of Desirable Properties

7.16 Zuse's Requirements for Software Measures

7.17 Ordinal or Ratio Scales for Software Measurement?

7.18 Exercises

8 Validation of Software Measures and Prediction Models

8.1 Introduction

8.2 Terminology

8.3 Misunderstanding of Validation and Prediction

8.3.1 Valid Measure

8.3.2 Validation of Simple Versus Complicated Measures

8.3.3 Views in Validating Measures

8.4 Some Results of Prediction Experiments in Literature

8.4.1 LOC and Prediction

8.4.2 Prediction and Errors

8.4.3 Prediction and Effort of Software Development

8.5 Internal and External Attributes

8.6 Correlation Coefficients and Prediction I

8.6.1 Definition of the Pearson Correlation Coefficient

8.6.2 Correlation between Variables

8.6.3 Other Effects of Correlation

8.6.4 Software Measures and Time-Based Variables

8.6.5 Misinterpretation of the Pearson Correlation Coefficient

8.6.6 Summary

8.7 Internal Validation of Software Measures

8.7.1 Internal Validation of the Measures LOC and McCabe as Ordinal Scales

8.7.2 Internal Validation of the Measures LOC and McCabe as Ratio Scales

8.7.2.1 Internal Validation of MCC-V2 and LOC as Absolute Scales

8.7.2.2 Summary of the Internal Validation of the Measures of McCabe and LOC

8.7.3 Internal Validation and Consequences for Software Measurement

8.8 External Validation of Software Measures

8.8.1 External Validation of the Measure LOC

8.8.2 Properties of the External Variable Costs of Maintenance

8.8.2.1 Weak Order for Costs of Maintenance

8.8.2.2 Positivity for Costs of Maintenance

8.8.2.3 Independence Conditions C1-C2 for Costs of Maintenance

8.8.2.4 Substitution Property for Costs of Maintenance

8.8.2.5 Package Depiction for Costs of Maintenance

8.8.2.6 Weak Commutativity for Costs of Maintenance

8.8.2.7 Weak Monotonicity and Monotonicity for Costs of Maintenance

8.8.2.8 Archimedean Axiom for Costs of Maintenance

8.8.2.9 Wholeness for Costs of Maintenance

8.8.2.10 Additivity for Costs of Maintenance

8.8.3 Evaluation of the Twelve Properties of Costs of Maintenance

8.8.4 Properties of the Measure LOC

8.8.5 Measure LOC, External Variable Costs of Maintenance and the Function f

8.8.6 Consequences for Software Measurement

8.9 Prediction - Theorems and Proofs

8.9.1 Definition of Prediction

8.9.2 Prediction Models and Wholeness

8.9.3 Prediction Models in Physics

8.9.4 Theorems for Validation of Measures and Prediction Models

8.9.4.1 Introduction

8.9.4.2 Theorems

8.10 Relationship of Complexity and Effort in Time

8.11 Validation of the Measure Information Flow

8.12 Correlation Coefficients and Prediction II

8.12.1 Correlation is a Comparison of Empirical and Numerical Properties

8.12.2 Inter-Measure Correlation

8.12.3 High Correlation Related to a Valid Measure

8.13 Simple Measures for Prediction?

8.13.1 Properties of Simple Measures

8.13.2 Halstead Measures and Prediction

8.14 Software Quality Attributes Derived from External Variables

8.15 Summary of Validation and Prediction

8.16 Exercises

9 Applications of Software Measures

9.1 Introduction

9.2 Application of Software Measures to Real Existing Software Systems

9.2.1 Introduction

9.2.2 The Investigation

9.2.3 The used Software Measures

9.2.4 The Experiment

9.2.5 Summary of the Investigation

9.3 The Software Life-Cycle and Software Measurement

9.4 ISO 9000-3 Norm and Software Measurement

9.4.1 Introduction

9.4.2 Measures and ISO9000-3

9.4.2.1 Design Phase

9.4.2.2 Coding Phase

9.4.2.3 Fault and Change Rates

9.4.2.4 Project Monitor Measures

9.4.3 Summary of Measurement and Topics of the ISO9000-3 Standard

9.5 Mostly Used Measures in Industry

9.6 The Function-Point Method

9.6.1 Introduction

9.6.2 Definition of the Function-Point Method

9.6.3 Measurement Theoretic Discussion of the Function Point Method

9.6.3.1 The Extensive Structure and the Function-Point Method

9.6.3.2 Technical Complexity Factor

9.6.4 Function-Point Method as a Prediction Model

9.6.5 Function-Point Method as a Size Measure

9.6.6 Strengths and Weaknesses of the Function Point Method

9.6.7 Why is the Function-Point Method so Successful?

9.7 The COCOMO Models and Deviations

9.7.1 Definitions of the Various COCOMO Models

9.7.2 Measurement Theoretic Discussion of the various COCOMO Models

9.7.2.1 Relational System of the COCOMO Model

9.7.2.2 Concatenation Operation and Combination Rule (Ratio Scale)

9.7.2.3 COCOMO Model and Software Measurement

9.7.3 Modified COCOMO Models

9.7.4 Transformations of the COCOMO Model

9.7.5 Scale Types and the COCOMO Model

9.7.6 Strengths and Weaknesses of the COCOMO Model

9.8 Maintainability Characteristics of a Final Product

9.8.1 Introduction

9.8.2 Design and Implementation Characteristics

9.8.2.1 Entire System Analysis

9.8.2.2 Component Analysis

9.8.2.3 Data Flow Analysis

9.8.3 Coupling between Modules

9.8.4 Cohesion

9.8.5 Modularization

9.9 Basic Measures for Structure Charts

9.9.1 Representation of a Structure Chart in an Adjacency Matrix

9.9.2 Simple Software Design Measures

9.10 The Measure Information Flow of Henry and Kafura

9.11 Measures of Bowles

9.11.1 Factors of Complexity of an Individual Module

9.11.2 Measures at the System Level

9.11.3 Aggregated System Complexity

9.11.4 Examples Calculated with the System MDS

9.11.5 Measure of Bowles and Stamp Coupling

9.11.6 Discussion of the Measures of Bowles from a Measurement Theoretic View

9.11.7 Summary

9.12 Measures for the Coding Phase

9.12.1 Introduction

9.12.2 Measures of McCabe

9.12.2.1 The Many Purposes of McCabe's Measures

9.12.2.2 Measurement Theoretic Investigation

9.12.3 Measures of Halstead

9.12.4 Set of Measures Analyzing the Structure and Size

9.12.5 Relationship of McCabe Measures and LOC

9.12.6 The Number Ten for McCabe's Measures

9.12.7 The DATRIX-Measures

9.12.8 Measure for Source Code Analysis

9.13 Measures for Cohesion

9.13.1 Introduction

9.13.2 Weiser's View

9.13.3 Measures of Bieman, Ott, and Thuss

9.13.4 Other Measures for Cohesion

9.14 Measures for the Testing Phase

9.15 Measures for the Software Maintenance Phase

9.15.1 List of Maintenance Measures

9.15.2 Number of Defects Found after Release

9.15.3 Number of Changes or Change Requests

9.15.4 Time to Identify and Correct Defects

9.15.5 Defect-Density

9.15.6 Mean-Time-To-Failures

9.15.7 Software Maturity Index

9.15.8 Summary

9.16 Document Quality

9.17 Measure for Object-Oriented Programming

9.17.1 Overview of Object-Oriented Software Measures

9.17.2 Detailed Description of Object-Oriented Software Measures

9.18 Summary of Software Measurement in the Software Life-Cycle

9.19 Exercises

10 Afterword

11 Solutions of Exercises

11.1 Solutions for Chapter 2

11.2 Solutions for Chapter 3

11.3 Solutions for Chapter 4

11.4 Solutions for Chapter 5

11.5 Solutions for Chapter 6

11.6 Solutions for Chapter 7

11.7 Solutions for Chapter 8

11.8 Solutions for Chapter 9

12 Glossary of Terms and Terms used as Synonyms

12.1 Terms used as Synonyms

12.2 Glossary of Terms

Attachment I: The System ZD-MIS

Attachment II: Proof of the Equivalence of Extensive Structures

Attachment III: Proof of the Theorems of Chapter 8

Attachment IV: Proof of the Theorems of Chapter 5

Attachment V: Notations and Used Symbols

Attachment VI: Axioms Systems

Definitions

Theorems

Exercises

References to Literature

Name Index

Subject Index