pom
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pom [2014/01/10 05:56] – yann | pom [2025/01/15 21:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== POM ====== | ====== POM ====== | ||
| + | POM stands for Primitives, Operations, Metrics and is a framework built to compute software metrics on PADL models. A paper introducing POM has been published by [[http:// | ||
| + | * Unary or binary, depending on whether they take as input one or two [[padl|IFirstClassEntity(ies)]]; | ||
| + | * Context dependent or independent, | ||
| - | ===== Metrics | + | ===== Metrics |
| ^ Names ^ Definitions ^ | ^ Names ^ Definitions ^ | ||
| - | | ACAIC | Ancestor Class-Attribute Import Coupling | + | | ACAIC | Ancestor Class-Attribute Import Coupling | |
| | ACMIC | Ancestors Class-Method Import Coupling | | | ACMIC | Ancestors Class-Method Import Coupling | | ||
| | AID | Average Inheritance Depth of an entity | | | AID | Average Inheritance Depth of an entity | | ||
| - | | ANA | Count the average | + | | ANA | Average |
| - | | CAM | Computes the relatedness | + | | CAM | Relatedness |
| | CBO | Coupling Between Objects of one entity | | | CBO | Coupling Between Objects of one entity | | ||
| | CBOingoing | Coupling Between Objects of one entity (in-going coupling only, towards the entity) | | | CBOingoing | Coupling Between Objects of one entity (in-going coupling only, towards the entity) | | ||
| | CBOoutgoing | Coupling Between Objects of one entity (out-going coupling only, from the entity) | | | CBOoutgoing | Coupling Between Objects of one entity (out-going coupling only, from the entity) | | ||
| - | | CIS | Counts the number | + | | CIS | Number |
| - | | CLD | Class to Leaf Depth of an entity. | | + | | CLD | Class to Leaf Depth of an entity | |
| - | | cohesionAttributes | Percentage of fields (declared and inherited) used by the declared methods of one entity | | + | | cohesionAttributes | Percentage of fields (declared and inherited) used by the declared methods of one entity |
| | connectivity | Number of couples of methods that use each other | | | connectivity | Number of couples of methods that use each other | | ||
| - | | CP | Number of packages that depend on the package containing entity | | + | | CP | Number of packages that depend on the package containing |
| - | | DAM | Returns the ratio of the number of private(protected) | + | | DAM | Ratio of the number of private (and protected) |
| - | | DCAEC | | + | | DCAEC | Descendants Class-Attribute Export Coupling of one entity | |
| | DCCdesign | Number of classes that a class is directly related to (by attribute and parameter declarations) | | | DCCdesign | Number of classes that a class is directly related to (by attribute and parameter declarations) | | ||
| | DCCimplementation | Number of classes that a class is directly related to (by attribute declarations and message passing) | | | DCCimplementation | Number of classes that a class is directly related to (by attribute declarations and message passing) | | ||
| - | | DCMEC | | + | | DCMEC | Descendants Class-Method Export Coupling of one entity | |
| - | | DIT | Returns the DIT (Depth of inheritance tree) of an entity. | | + | | DIT | Depth of Inheritance Tree of an entity | |
| - | | DSC | Total number | + | | DSC | Number |
| - | | EIC | Number of inheritance relationships in which superclasses | + | | EIC | Number of inheritance relationships in which super-entities |
| - | | EIP | Number of inheritance relationships where the superclass | + | | EIP | Number of inheritance relationships where the super-entity |
| | FanOut | Number of methods and fields used by one entity | | | FanOut | Number of methods and fields used by one entity | | ||
| - | | ICHClass | | + | | ICHClass | |
| | IR | Number of calls from the methods of an entity to the methods and fields declared in its super-entities | | | IR | Number of calls from the methods of an entity to the methods and fields declared in its super-entities | | ||
| - | | LCOM1 | | + | | LCOM1 | Lack of COhesion in Methods of an entity | |
| - | | LCOM2 | | + | | LCOM2 | Lack of COhesion in Methods of an entity | |
| - | | LCOM5 | | + | | LCOM5 | Lack of COhesion in Methods of an entity | |
| - | | LOC | Returns | + | | LOC | Sum of the numbers |
| - | | McCabe | Returns the sum of the cyclomatic complexities of the operations of an entity | | + | | McCabe | Sum of the cyclomatic complexities of the operations of an entity | |
| - | | MFA | Ratio of the number of methods inherited by a class to the number of methods accessible by member methods of the class | | + | | MFA | Ratio of the number of methods inherited by an entity wrt. the number of methods accessible by member methods of the entity |
| - | | MLOCsum | Returns | + | | MLOCsum | Sum of the numbers |
| - | | MOA | Count the number | + | | MOA | Number |
| - | | NAD | number | + | | NAD | Number |
| - | | NADextended | Number of attributes declared in a class and in its member | + | | NADextended | Number of Attributes Declared by an entity |
| - | | NCM | Returns the NCM (Number of Changed Methods) of an entity. | | + | | NCM | Number of Changed Methods of an entity |
| - | | NCP | the number | + | | NCP | Number |
| - | | NMA | Returns the NMA (Number of New Methods) of an entity | | + | | NMA | Number of Methods |
| - | | NMD | number | + | | NMD | Number |
| - | | NMDextended | Number of methods declared in the class and in its member | + | | NMDextended | Number of Methods Declared by an entity |
| - | | NMI | Number of methods inherited | + | | NMI | Number of Methods Inherited |
| - | | NMO | Number of methods overridden | + | | NMO | Number of Methods Overridden |
| - | | NOA | Number | + | | NOA | Number |
| - | | NOC | Number | + | | NOC | Number |
| | NOD | Number of descendents of an entity | | | NOD | Number of descendents of an entity | | ||
| - | | NOF | Number | + | | NOF | Number |
| - | | NOH | Number | + | | NOH | Number |
| - | | NOM | Numer of all methods defined in an entity | | + | | NOM | Number Of Methods declared by an entity | |
| - | | NOP | Number | + | | NOP | Number |
| | NOParam | Number of parameters of the methods of an entity | | | NOParam | Number of parameters of the methods of an entity | | ||
| - | | NOPM | | + | | NOPM | |
| | NOTC | Number of invocations of JUnit assert methods that occur in the code of a test case | | | NOTC | Number of invocations of JUnit assert methods that occur in the code of a test case | | ||
| - | | NOTI | Number | + | | NOTI | Number |
| | NPrM | Number protected members of an entity | | | NPrM | Number protected members of an entity | | ||
| - | | oneWayCoupling | Coupling | + | | oneWayCoupling | Coupling |
| - | | PIIR | | + | | PIIR | |
| - | | PP | The number | + | | PP | Number |
| | REIP | EIP divided by the sum of PIIR and EIP | | | REIP | EIP divided by the sum of PIIR and EIP | | ||
| - | | RFP | the number of class references from classes | + | | RFC | Response for class: |
| - | | RPII | PIIR divided by the sum of PIIR and EIP. | | + | | RFCextended | Response for class: number of methods of an entity and of methods of other entities that are invoked by the methods of the entity plus number of methods declared by that entity | |
| + | | RFP | Number of references from entities | ||
| + | | 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 | | | 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 | | | RRTP | RTP divided by the sum of RTP and the number of internal class references | | ||
| - | | RTP | The number | + | | RTP | Number |
| - | | SIX | Returns the SIX (Specialisation IndeX) of an entity | | + | | SIX | Specialisation IndeX of an entity | |
| - | | WMC1 | Computes the weight | + | | TestCaseLOC |
| - | | McCabe | McCabe Complexity: | + | | TLOC | Number of lines of code of all the methods of an entity. Same as LOC | |
| - | | CBO | Coupling Between Objects | + | | VGSum | Sum of the cyclomatic complexities of the operations of an entity. Same as McCabe |
| - | | LCOM5 | Returns | + | | WMC1 | Weight of an entity considering |
| - | | WMC | Computes the weight | + | | WMCinvocations | Weight |
| + | | WMCmccabe | ||
| - | ===== Computing | + | ===== Metrics |
| Computing POM metrics using PADL is made easy by the helper class '' | Computing POM metrics using PADL is made easy by the helper class '' | ||
| Line 81: | Line 87: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | 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: '' | + | 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: '' |
pom.1389333366.txt.gz · Last modified: (external edit)
