OMG Automated Enhancement Points Estimation - AEP


Overview

As explained in Enhancement Measure page, CAST supports the OMG Automated Enhancement Points (AEP) specification to estimate the size of an application revision (alongside the legacy EFP measure).

After an initial baseline count, CAST Imaging catalogs and stores both Data Functions and Transactional Functions structure. All objects that are part of the Data and Transactional Functions are stored along with a checksum that uniquely identifies the current version of each artifact. When a new version of the application source code is analyzed, the Automated Enhancement Points algorithm uses the computed checksum of each object composing both Data Functions and Transactional Functions to determine:

  • Added Functions
  • Modified Functions
  • Deleted Functions

Then, each Added, Modified or Deleted Data Functions and Transactional Functions are weighted using OMG tables.

This Section presents how the OMG AEP specification is implemented in CAST Imaging. For detailed information about the OMG Automated Enhancement Points specification, please refer to the OMG documentation at https://www.omg.org/spec/AEP/external link.

What about Data Functions and Transactional Functions?

Data Functions

Data Functions are defined as specified in the OMG Automated Function Points (AFP) specification. Please see the OMG documentation at https://www.omg.org/spec/AFP/external link for more details.

Transactional Functions

Like those used to count AFP and EFP, Transactional Functions are defined by specifying entry points, data entities, and end points. However, as specified in the OMG AEP specification, Transactional Functions are built by following the links in extended full transaction call graphs (see image below). This means that they contain more objects than the Transactional Functions used to count AFP and EFP and therefore, better reflect changes impacting the Transactional Functions in the application revision.

Counting Automated Enhancement Points

The OMG AEP specification takes into account both functional and technical parts of applications. It is one of the main differences compared to the Enhancement Function Points measure. As a consequence, the total number of AEP is obtained with the following formula:

AEP = AEFP + AETP

Where AEFP corresponds to the Enhancement Points for the functional part and AETP corresponds to the Enhancement Points for the technical part of the application revision. Objects are considered as belonging to the technical part if they do not appear in any full transaction call graph of the application.

Automated Enhancement Functional Points (AEFP)

Automated Enhancement Functional Points (AEFP) assess the changes made to the functional part of the application. AEFP reflects the changes made to both Transactional Functions and Data Functions.

Transactional Functions

Enhancement Points for Transactional Functions are based on the OMG AFP specification and on a Complexity Factor (CF) used to weight the FP values with regard to the status of the Transactional Functions and the complexity of the Artifacts that compose the Transactional Functions. The Complexity Factor for modified Transactional Functions is computed from the Effort Complexity metric attached to each Artifact.

Effort Complexity and Effort Complexity Level

The Effort Complexity (EC) is the Effort Rate of the Artifact based on its Cost Complexity and its technology. The Artifact EC estimates the complexity of implementing an Artifact or changes to it, based on a composite score of five software metrics that assess the complexity of the software environment in which the Artifact is embedded:

  • McCabe Cyclomatic Complexity
  • Lines of Code
  • Lines of Comment
  • Fan-In
  • SQL Complexity

Each Artifact EC category gets an EC value, which can be overridden for specific technologies. Defaults are as follows:

  • Very High Effort Complexity category: 1.2
  • High Effort Complexity category: 0.7
  • Moderate Effort Complexity category: 0.2
  • Low Effort Complexity category: 0.1
Evolved Effort Complexity

The Evolved Effort Complexity estimates the evolution of the Effort Complexity between the current and previous snapshots. It is based on the following formula:

Evolved EC = ( Σ EC_add_snap(n) + Σ EC_mod_snap(n) + Σ EC_del_snap(n-1) ) / Σ EC_total_snap(n-1)
Effort Complexity Variation

The Effort Complexity Variation estimates the difference of the Effort Complexity between the current and previous snapshots. It is based on the following formula:

EC Variation = ( Σ EC_total_snap(n) - Σ EC_total_snap(n-1) ) / Σ EC_total_snap(n-1)
Complexity Factor

As defined in the OMG AEP specification, the Complexity Factor (CF) varies with the status of the Transactional Functions and the changes made to the Artifacts associated to these Transactional Functions. The Complexity Factor is defined as follows:

  • Added Transactional Functions: CF = 1
  • Deleted Transactional Functions: CF = 0.4
  • Modified Transactional Functions:
    • If there is no shared object in the full transaction call graph, then CF is defined by the following matrix:

  • If there are shared objects in the full transaction call graph, then CF is defined by the following rules:
    • If 100% of EC is for modified shared objects, then CF = 0.25
    • If more than 75% of EC is for shared objects, then CF is capped to 0.50
    • If more than 50% of EC is for shared objects, then CF is capped to 0.75
    • If less than 50% of EC is for modified shared objects, then CF is defined by the matrix listed above, without a cap.

Data Functions

Enhancement Points for Data Functions are based on the OMG AFP specification and on a Complexity Factor used to weight the FP values with regards to the status of the Data Functions and the changes done on the data entities that compose the Data Functions.

Complexity Factor

As defined in the OMG AEP specification, the Complexity Factor (CF) varies with the status of the Data Functions, the last operations that have been performed by the automatic calibration algorithm, and the changes done on data entities. The Complexity Factor is defined as follows:

  • Added Data Functions: CF = 1
  • Deleted Data Functions: CF = 0.4
  • Merged Data Functions: CF = 0.4
  • Split Data Functions: CF = 0.4
  • Changed type Data Functions: CF = 0.4
  • Modified Data Functions:
    • If modified DET <= 33%, then CF = 0.25
    • If modified DET <= 66%, then CF = 0.5
    • If modified DET <= 100%, then CF = 0.75
    • If modified DET > 100%, then CF = 1

Automated Enhancement Technical Points (AETP)

As defined in the OMG AEP specification, Automated Enhancement Technical Points (AETP) assess the changes made to the technical part of the application.

Implementation Points

The first step to compute AETP is to estimate the Implementation Points (IP) for Artifacts in both the technical and functional parts of the application. Implementation Points are counted as follows:

  • IP tech = Σ EC tech (for added, deleted, and modified Artifacts)
  • IP func = Σ EC func (for all Artifacts)

Equivalence Ratio

The second step to compute AETP allows to align Implementation Points with Function Points in order to provide consistent values for AETP. An Equivalence Ratio (ER) is then calculated to weight the Implementation Points for Artifacts belonging to the technical part of the application:

  • ER = AFP / IP func
  • AETP = ER × IP tech