- Metrics Definition for KM3 meta-models
- MOOD (Metrics for
Object-Oriented Design) for KM3 meta-models
- AIF - Attributes Inheritance Factor
- Quotient between the number of inherited attributes in
all classes of the package and the number of available attributes
(locally defined plus inherited) for all classes of the current
package.
- RIF - References Inheritance Factor
- Quotient between the number of inherited references in
all classes of the package and the number of available references
(locally defined plus inherited) for all classes of the current
package.
- CCF - Class Coupling Factor
- Quotient between the actual number of coupled class-pairs
within the package and the maximum possible number of class-pair
couplings in the package. This coupling is the one not imputable
to inheritance.
- ICF - Internal Coupling Factor
- Quotient between the number of coupling links where both
the client and supplier classes belong to the current package and
the total number of coupling links originating in the current
package.
- MOOD2 (Metrics for
Object-Oriented Design 2) for KM3 meta-models
- IIF - Internal Inheritance Factor
- Quotient between the number of inheritance links where
both the base and derived classes belong to the current package
and the total number of inheritance links originating in the
current package.
- MOOSE (Metrics for
Object-Oriented Software Engineering) for KM3 meta-models
- WRC - Weighted References per Class
- The sum of complexities of the references in the current
class. If all reference complexities are considered to be unique,
WRC is equal to the number of references.
- DIT - Depth of Inheritance Tree
- The length of the longest path of inheritance from the
current class to the root of the tree.
- NOC - Number of Children
- The number of classes that inherit directly from the
current class.
- CBO - Coupling Between Objects
- The number of other classes that are coupled to the
current one. Two classes are coupled when references declared in
one class use references or instance variables defined by the
other class. Or used as a type or in reference by other classes.
- EMOOSE (Extended MOOSE)
for KM3 meta-models
- SIZE2 - Number of local Attributes
and References defined in the Class
- Number of local attributes and references defined in the
class.
- QMOOD (Quality Model for
Object-Oriented Design) for KM3 meta-models
- DSC - Design Size in Classes
- Count of the total number of classes in the design.
- NOH - Number of Hierarchies
- Count of the number of class hierarchies in the design.
- NIC - Number of Independent Classes
- Count of the number of Classes that are not inherited by
any Class in the design.
- NSI - Number of Single Inheritance
- Number of Classes (sub classes) that use inheritance in
the design.
- NMI - Number of Multiple Inheritance
- Count of the number of instances of multiple inheritance
in the design.
- NNC - Number of Internal Classes
- Count of the number of internal classes defined for
creating generalization-specialization structures in class
hierarchies of the design.
- NAC - Number of Abstract Classes
- Count of the number of classes that have been defined
purely for organizing information in the design.
- NLC - Number of Leaf Classes
- Count of the number of leaf classes in the hierarchies of
the design.
- ADI - Average Depth of Inheritance
- The average depth of inheritance of classes in the
design. It is computed by dividing the summation of maximum path
lengths to all classes by the number of classes. The path length
for a class is the number of edges from the root to the class in
an inheritance tree representation.
- AWI - Average Width of Inheritance
- The average number of children per class in the design.
The metric is computed by dividing the summation of the number of
children over all classes by the number of classes in the design
- ANA - Average Number of Ancestors
- The average number of classes from which a class inherits
information.
- MAA - Measure of Attribute
Abstraction
- The ratio of the number of attributes inherited by a
class to the total number of attributes in the class.
- MRA - Measure of Reference
Abstraction
- The ratio of the number of references inherited by a
class to the total number of references in the class.
- MOA - Measure of Aggregation
- Count of the number of data declarations whose types are
user defined classes.
- MRM - Modeled Relationship Measure
- Measure of the total number of attribute and parameter
based relationships in a class.
- NOA - Number of Ancestors
- Counts the number of distinct classes which a class
inherits.
- NOR - Number of References
- Count of all the references defined in a class.
- NOD - Number of Attributes
- Number of attributes in the class.
- NAD - Number of Abstract Data Types
- Number of user defined objects used as attributes in the
class and which are necessary to instantiate an object instance of
the (aggregate) class.
- CSM - Class Size Metric
- Sum of the number of references and attributes in the
class.
- DCC - Direct Class Coupling
- Count of the different number of classes that a class is
directly related to. The metric includes classes that are directly
related by attribute declarations and references.
- MCC - Maximum Class Coupling
- This metric not only includes classes that are directly
related to a class by attributes and references, but also classes
that are indirectly related through the directly related classes.
- DAC - Direct Attribute Based Coupling
- This metric is a direct count of the number of different
class types that are declared as attribute references inside a
class.
- DRC - Direct Reference Based Coupling
- This metric is a direct count of the number of different
class types that are declared as references inside a class.
- CCD - Class Complexity Based on Data
- Computes complexity based upon the number of components
(attributes) that are defined in the class. All component
declarations are resolved to the basic primitives (integers,
doubles and characters). The metric value is a count of the number
of primitives.
- Metrics Definition for UML2 Class
Diagram Models
- MOOD (Metrics for
Object-Oriented Design) for UML2 Class Diagram Models
- AIF - Attributes Inheritance Factor
- Quotient between the number of inherited attributes in
all classes of the package and the number of available attributes
(locally defined plus inherited) for all classes of the current
package.
- OIF - Operations Inheritance Factor
- Quotient between the number of inherited operations in
all classes of the package and the number of available operations
(locally defined plus inherited) for all classes of the current
package.
- AHF - Attributes Hiding Factor
- Quotient between the sum of the invisibilities of all
attributes defined in all classes in the current package and the
total number of attributes defined in the package.
- OHF - Operations Hiding Factor
- Quotient between the sum of the invisibilities of all
operations defined in all classes in the current package and the
total number of operations defined in the package.
- BPF - Behavioral Polymorphism Factor
- Quotient between the actual number of possible different
polymorphic situations within the current package and the maximum
number of possible distinct polymorphic situations (due to
inheritance).
- CCF - Class Coupling Factor
- Quotient between the actual number of coupled class-pairs
within the package and the maximum possible number of class-pair
couplings in the package. This coupling is the one not imputable
to inheritance.
- ICF - Internal Coupling Factor
- Quotient between the number of coupling links where both
the client and supplier classes belong to the current package and
the total number of coupling links originating in the current
package.
- MOOD2 (Metrics for
Object-Oriented Design 2) for UML2 Class Diagram Models
- IIF - Internal Inheritance Factor
- Quotient between the number of inheritance links where
both the base and derived classes belong to the current package
and the total number of inheritance links originating in the
current package.
- AHEF - Attributes Hiding
Effectiveness Factor
- Quotient between the cumulative number of the package
classes that do access the package attributes and the cumulative
number of the package classes that can access the package
attributes.
- OHEF - Operations Hiding
Effectiveness Factor
- Quotient between the cumulative number of the package
classes that do access the package operations and the cumulative
number of the package classes that can access the package
operations.
- MOOSE (Metrics for
Object-Oriented Software Engineering) for UML2 Class Diagram Models
- DIT - Depth of Inheritance Tree
- The length of the longest path of inheritance from the
current class to the root of the tree.
- NOC - Number of Children
- The number of classes that inherit directly from the
current class.
- CBO - Coupling Between Objects
- The number of other classes that are coupled to the
current one. Two classes are coupled when references declared in
one class use references or instance variables defined by the
other class. Or used as a type or in reference by other classes.
- RFC - Response for a Class
- The number of methods in the current class that might
respond to a message received by its object, including methods
both inside and outside of this class.
- EMOOSE (Extended MOOSE)
for UML2 Class Diagram Models
- SIZE2 - Number of local
Attributes and Operations defined in the Class
- Number of local attributes and operations defined in the
class.
- QMOOD (Quality Model for
Object-Oriented Design) for UML2 Class Diagram Models
- DSC - Design Size in Classes
- Count of the total number of classes in the design.
- NOH - Number of Hierarchies
- Count of the number of class hierarchies in the design.
- NIC - Number of Independent Classes
- Count of the number of Classes that are not inherited by
any Class in the design.
- NSI - Number of Single Inheritance
- Number of Classes (sub classes) that use inheritance in
the design.
- NNC - Number of Internal Classes
- Count of the number of internal classes defined for
creating generalization-specialization structures in class
hierarchies of the design.
- NAC - Number of Abstract Classes
- Count of the number of classes that have been defined
purely for organizing information in the design.
- NLC - Number of Leaf Classes
- Count of the number of leaf classes in the hierarchies of
the design.
- ADI - Average Depth of Inheritance
- The average depth of inheritance of classes in the
design. It is computed by dividing the summation of maximum path
lengths to all classes by the number of classes. The path length
for a class is the number of edges from the root to the class in
an inheritance tree representation.
- AWI - Average Width of Inheritance
- The average number of children per class in the design.
The metric is computed by dividing the summation of the number of
children over all classes by the number of classes in the design
- ANA - Average Number of Ancestors
- The average number of classes from which a class inherits
information.
- MFA - Measure of Functional
Abstraction
- The ratio of the number of methods inherited by a class
to the total number of methods accessible by members in the class.
- MAA - Measure of Attribute
Abstraction
- The ratio of the number of attributes inherited by a
class to the total number of attributes in the class.
- MAT - Measure of Abstraction
- The average of functional and attribute abstraction
measures.
- MOA - Measure of Aggregation
- Count of the number of data declarations whose types are
user defined classes.
- MRM - Modeled Relationship Measure
- Measure of the total number of attribute and parameter
based relationships in a class.
- DAM - Data Access Metric
- The ratio of the number of private attributes to the
total number of attributes declared in a class.
- OAM - Operation Access Metric
- The ratio of the number of public methods to the total
number of methods declared in the class.
- MAM - Member Access Metric
- This metric computes the access to all the members
(attributes and methods) of a class.
- NOA - Number of Ancestors
- Counts the number of distinct classes which a class
inherits.
- NOM - Number of Methods
- Count of all the methods defined in a class.
- CIS - Class Interface Size
- Number of public methods in a class.
- NPT - Number of Unique Parameter
Types
- Number of different parameter types used in the methods
of the class.
- NPM - Number of Parameters per
Method
- Average of the number of parameters per method in the
class. Computed by summing the parameters of all methods and
dividing by the number of methods in the class.
- NOD - Number of Attributes
- Number of attributes in the class.
- NAD - Number of Abstract Data Types
- Number of user defined objects used as attributes in the
class and which are necessary to instantiate an object instance of
the (aggregate) class.
- NPA - Number of Public Attributes
- Number of attributes that are declared as public in the
class.
- CSM - Class Size Metric
- Sum of the number of methods and attributes in the class.
- CAM - Cohesion Among Methods of
Class
- Computes the relatedness among methods of the class based
upon the parameter list of the methods. The metrics is computed
using the summation of the intersection of parameters of a method
with the maximum independent set of all parameter types in the
class.
- DCC - Direct Class Coupling
- Count of the different number of classes that a class is
directly related to. The metric includes classes that are directly
related by attribute declarations and message passing (parameters)
in methods.
- MCC - Maximum Class Coupling
- This metric not only includes classes that are directly
related to a class by attributes and methods, but also classes
that are indirectly related through the directly related classes.
- DAC - Direct Attribute Based
Coupling
- This metric is a direct count of the number of different
class types that are declared as attribute references inside a
class.
- DPC - Direct Parameter Based
Coupling
- Number of class object types that are required directly
for a message passing (parameters) to methods in the class.
- MPC - Maximum Parameter Based
Coupling
- Number of Class object types that are required directly and
indirectly for message passing (parameters) in the Class.
- CCD - Class Complexity Based on Data
- Computes complexity based upon the number of components
(attributes) that are defined in the class. All component
declarations are resolved to the basic primitives (integers,
doubles and characters). The metric value is a count of the number
of primitives.
- CCP - Class Complexity Based on
Method Parameters
- Estimates complexity based upon the number of parameters
required to call methods of the Class. Inherited method parameters
are also included in the computation of the metric value.
- CCM - Class Complexity Based on
Members
- This metric is an aggregate of the data and method
parameter complexities.
- References
- [1] Baroni, A.L.: Formal Definition of
Object-Oriented Design Metrics. Master Thesis, Vrije University,
Brussel, Belgium, 2002.