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:36] – 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 ^ |
| - | | 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 |
| - | | CBOin | Coupling Between Objects of one entity | | + | | CBO | Coupling Between Objects of one entity | |
| - | | CBOout | Coupling Between Objects of one entity | | + | | CBOingoing | Coupling Between Objects of one entity |
| - | | CIS | Counts | + | | CBOoutgoing | Coupling Between Objects of one entity (out-going coupling only, from the entity) | |
| - | | CLD | Class to Leaf Depth of an entity. | | + | | CIS | Number |
| - | | cohesionAttributes | | | + | | CLD | Class to Leaf Depth of an entity | |
| - | | connectivity | | | + | | cohesionAttributes | |
| - | | CP | The number | + | | connectivity | |
| - | | DAM | Returns the ratio of the number of private(protected) | + | | CP | Number |
| - | | DCAEC | Returns the DCAEC (Descendants Class-Attribute Export Coupling) of one entity | | + | | DAM | Ratio of the number of private (and protected) |
| - | | DCC | Returns the number | + | | DCAEC | Descendants Class-Attribute Export Coupling of one entity | |
| - | | DCMEC | Returns the DCMEC (Descendants Class-Method Export Coupling) of one entity | | + | | DCCdesign | Number |
| - | | DIT | Returns the DIT (Depth of inheritance tree) of an entity. | | + | | DCCimplementation | Number of classes that a class is directly related to (by attribute declarations and message passing) | |
| - | | DSC | Count of the total number of classes | + | | DCMEC | Descendants Class-Method Export Coupling of one entity | |
| - | | EIC | the number | + | | DIT | Depth of Inheritance Tree of an entity | |
| - | | EIP | the number | + | | DSC | Number |
| - | | ICHClass | Compute the complexity | + | | EIC | Number |
| - | | LCOM1 | Returns | + | | EIP | Number |
| - | | LCOM2 | Returns the LCOM (Lack of COhesion in Methods) of an entity | | + | | FanOut | Number of methods and fields used by one 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 | | + | | ICHClass | |
| - | | MOA | Count the number | + | | IR | Number of calls from the methods of an entity to the methods and fields declared in its super-entities | |
| - | | NAD | number | + | | LCOM1 | |
| - | | NADExtended | Number of attributes declared in a class and in its member | + | | LCOM2 | Lack of COhesion in Methods of an entity | |
| - | | NCM | Returns the NCM (Number of Changed Methods) of an entity. | | + | | LCOM5 | Lack of COhesion in Methods of an entity | |
| - | | NCP | the number | + | | LOC | Sum of the numbers of lines of code in the methods of an entity | |
| - | | NMA | Returns the NMA (Number of New Methods) of an entity | | + | | McCabe | Sum of the cyclomatic complexities of the operations of an entity | |
| - | | NMD | number | + | | MFA | Ratio of the number of methods inherited by an entity wrt. the number of methods accessible by member methods of the entity |
| - | | NMDExtended | Number of methods declared in the class and in its member | + | | MLOCsum |
| - | | NMI | Returns the NMI (Number of Methods Inherited) of an entity | | + | | MOA | Number |
| - | | NMO | Returns the NMO (Number of Methods Overridden) of an entity | | + | | NAD | Number |
| - | | NOA | Returns the NOA (Number Of Ancestors) of an entity | | + | | NADextended | Number of Attributes Declared by an entity |
| - | | NOC | Returns the NOC (Number Of Children) of an entity | | + | | NCM | Number of Changed Methods of an entity |
| - | | NOD | Returns the NOD (Number | + | | NCP | Number |
| - | | NOH | Count The number of class hierarchies | + | | NMA | Number of Methods |
| - | | NOM | Counts all methods defined in a class | | + | | NMD | Number |
| - | | NOP | Returns the NOP (Number Of Parents) of an entity | | + | | NMDextended | Number of Methods Declared by an entity |
| - | | NOParam | Maximum mumber | + | | NMI | Number of Methods Inherited |
| - | | NOPM | Count of the Methods that can exhibit polymorphic behavior | + | | NMO | Number of Methods Overridden |
| - | | PIIR | The number | + | | NOA | Number Of Ancestors of an entity | |
| - | | PP | The number | + | | NOC | Number Of Children of an entity | |
| - | | REIP | EIP divided by the sum of PIIR and EIP | | + | | NOD | Number |
| - | | RFP | the number of class references from classes | + | | NOF | Number Of Fields declared by an entity | |
| - | | RPII | PIIR divided by the sum of PIIR and EIP. | | + | | NOH | Number Of Hierarchies |
| - | | RRFP | RFP divided by the sum of RFP and the number of internal class references | | + | | NOM | Number Of Methods declared by an entity |
| - | | RRTP | RTP divided by the sum of RTP and the number of internal class references | | + | | NOP | Number Of Parents of an entity | |
| - | | RTP | The number | + | | NOParam | |
| - | | SIX | Returns the SIX (Specialisation IndeX) of an entity | | + | | NOPM | |
| - | | WMC1 | Computes the weight | + | | NOTC | Number of invocations of JUnit assert methods |
| - | | McCabe | McCabe Complexity: | + | | NOTI | Number Of Transitive Invocation among methods of a class. See the Law of Demeter for a definition | |
| - | | CBO | Coupling Between Objects | + | | NPrM | Number protected members of an entity | |
| - | | LCOM5 | Returns | + | | oneWayCoupling | Coupling Between Objects of one entity (out-going coupling only, from the entity). Same as CBOoutgoing |
| - | | WMC | Computes the weight | + | | PIIR | |
| + | | PP | Number | ||
| + | | REIP | EIP divided by the sum of PIIR and EIP | | ||
| + | | RFC | Response for class: | ||
| + | | 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 | | ||
| + | | RRTP | RTP divided by the sum of RTP and the number of internal class references | | ||
| + | | RTP | Number | ||
| + | | SIX | Specialisation IndeX of an entity | | ||
| + | | TestCaseLOC | ||
| + | | TLOC | Number of lines of code of all the methods of an entity. Same as LOC | | ||
| + | | VGSum | Sum of the cyclomatic complexities of the operations of an entity. Same as McCabe | ||
| + | | WMC1 | Weight of an entity considering | ||
| + | | 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 68: | 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.1389332172.txt.gz · Last modified: (external edit)
