This shows you the differences between two versions of the page.
pom [2013/12/03 16:04] yann |
pom [2017/09/06 01:54] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== POM ====== | ||
- | |||
- | ===== Metrics definitions ===== | ||
- | |||
- | * ACAIC Ancestor Class-Attribute Import Coupling | ||
- | * ACMIC Ancestors Class-Method Import Coupling | ||
- | * AID Average Inheritance Depth of an entity | ||
- | * ANA Count the average number of classes from which a class inherits informations | ||
- | * CAM Computes the relatedness among methods of the class based upon the parameter list of the methods | ||
- | * CBOin Coupling Between Objects of one entity | ||
- | * CBOout Coupling Between Objects of one entity | ||
- | * CIS Counts the number of public methods in a class | ||
- | * CLD Class to Leaf Depth of an entity. | ||
- | * cohesionAttributes | ||
- | * connectivity | ||
- | * CP The number of packages that depend on the package containing entity | ||
- | * DAM Returns the ratio of the number of private(protected) Attributes to the total number of Attributes declared in a class | ||
- | * DCAEC Returns the DCAEC (Descendants Class-Attribute Export Coupling) of one entity | ||
- | * DCC Returns the number of classes a class is directly related to(by attribute declarations and message passing | ||
- | * DCMEC Returns the DCMEC (Descendants Class-Method Export Coupling) of one entity | ||
- | * DIT Returns the DIT (Depth of inheritance tree) of an entity. | ||
- | * DSC Count of the total number of classes in the design | ||
- | * EIC the number of inheritance relationships in which superclasses are in external packages | ||
- | * EIP the number of inheritance relationships where the superclass is in the package containing entity and the subclass is in another package | ||
- | * ICHClass Compute the complexity of an entity as the sum of the complexities of its declared and inherited methods | ||
- | * LCOM1 Returns the LCOM (Lack of COhesion in Methods) of an entity | ||
- | * LCOM2 Returns the LCOM (Lack of COhesion in Methods) of an entity | ||
- | * MFA The ratio of the number of methods inherited by a class to the number of methods accessible by member methods of the class | ||
- | * MOA Count the number of data declarations whose types are user defined classes | ||
- | * NAD number of attributes declared | ||
- | * NADExtended Number of attributes declared in a class and in its member classes | ||
- | * NCM Returns the NCM (Number of Changed Methods) of an entity. | ||
- | * NCP the number of classes package containing entity | ||
- | * NMA Returns the NMA (Number of New Methods) of an entity | ||
- | * NMD number of methods declared | ||
- | * NMDExtended Number of methods declared in the class and in its member classes | ||
- | * NMI Returns the NMI (Number of Methods Inherited) of an entity | ||
- | * NMO Returns the NMO (Number of Methods Overridden) of an entity | ||
- | * NOA Returns the NOA (Number Of Ancestors) of an entity | ||
- | * NOC Returns the NOC (Number Of Children) of an entity | ||
- | * NOD Returns the NOD (Number Of Descendents) of an entity | ||
- | * NOH Count The number of class hierarchies in the design | ||
- | * NOM Counts all methods defined in a class | ||
- | * NOP Returns the NOP (Number Of Parents) of an entity | ||
- | * NOParam Maximum mumber of parameters of the methods of an entity | ||
- | * NOPM Count of the Methods that can exhibit polymorphic behavior | ||
- | * PIIR The number of inheritance relationships existing between classes in the package containing entity | ||
- | * PP The number of provider packages of the package containing entity | ||
- | * REIP EIP divided by the sum of PIIR and EIP | ||
- | * RFP the number of class references from classes belonging to other packages to classes belonging to the package containing entity | ||
- | * RPII PIIR divided by the sum of PIIR and EIP. | ||
- | * RRFP RFP divided by the sum of RFP and the number of internal class references | ||
- | * RRTP RTP divided by the sum of RTP and the number of internal class references | ||
- | * RTP The number of class references from classes in the package containing entity to classes in other packages | ||
- | * SIX Returns the SIX (Specialisation IndeX) of an entity | ||
- | * WMC1 Computes the weight of an entity considering the complexity of a method to be unity | ||
- | * McCabe McCabe Complexity: Number of points of decision + 1 | ||
- | * CBO Coupling Between Objects of one entity | ||
- | * LCOM5 Returns the LCOM (Lack of COhesion in Methods) of an entity | ||
- | * WMC Computes the weight of an entity by computing the number of method invocations in each method | ||
- | |||
- | ===== Computing Metrics ===== | ||
- | |||
- | Computing POM metrics using PADL is made easy by the helper class ''pom.helper.MetricsGenerator''. After having installed CPL, PADL, and POM, just go into the ''POM Tests'' project and have a look at this class. It provides a main method with snippets of code to call one of the three methods: | ||
- | * ''computeMetricsFromDirectory'' | ||
- | * ''computeMetricsFromEclipse'' | ||
- | * ''computeMetricsFromJARs'' | ||
- | which can be used to compute automatically metrics from various input sources. Also have a look at the constant array listing the metrics that must be computed or avoided: ''METRICS_TO_AVOID'' and ''METRICS_TO_COMPUTE''. |