Page tree
Skip to end of metadata
Go to start of metadata

On this page:

Target audience:

CAST AI Administrator

Summary: this page lists:

  • impacts of changes made in CAST AIP 8.1.2 on Quality Model results
  • other impacts of changes made in CAST AIP 8.1.2
  • miscellaneous result changes

The changes listed assume that an upgrade from CAST AIP 8.1.1 to CAST AIP 8.1.2 has taken place.

Introduction

Each CAST AIP release provides new features which improve the value of the platform and justify an upgrade. However, there are a number of changes or improvements which can impact the measurement results/grades:

  • New or improved Quality Rules to perform deeper analysis
  • Updates to the Assessment Model, e.g. changes to rule weights, severity or thresholds. This can be mitigated by using the "Preserve assessment model" option during the upgrade.
  • Improvements of the language analysis, e.g. more fine-grained detection of objects or links
  • Extended automatic discovery of files included in the analysis
  • Bug fixes to improve the precision of results
  • And, unfortunately, a new release may also introduce new bugs which may impact the results until they are discovered and removed

Below is a list of changes made to the current release of CAST AIP that are known to cause impacts to results. You can also consult Case Study - Measurement changes after upgrade for selected customer applications which provides a more detailed analysis based on a few sample applications.

Analyzing the root causes of impacts to measurement results/grades

The following is a general description of the steps that should be taken in order to compare pre and post upgrade results:

  • Step 1: Take a snapshot (including a source code analysis) with the previous release of CAST AIP before upgrading to the new release of CAST AIP
    • Check the list of applications to be analyzed, the list of files per application and list of SQL objects from the Analysis Service.
  • Step 2: Compare the source code in version 1 (before upgrade) with the source code in the new version 2 (after upgrade)
    • Compare the list of analyzed files, list of files per application and list of SQL objects between the two Analysis Services
  • Step 3: Compare the results of the application analysis and snapshot post upgrade. This can be done by comparing the snapshots available in the Dashboard Service to find the differences in:
    • Quality rules
    • Violations

    • Grades at Business Criteria level

    • Function Points

    • Transactions

    • Lines of code

  • Step 4: Compare the data functions and transactions across the source Analysis Service and the target Analysis Service post upgrade.

Impacts of changes made in CAST AIP 8.1.2 on Quality Model results post upgrade

JEE

Provide accessors to Private Fields - 4576

A bug has been discovered in the way that this Quality Rule is calculated, which can lead to false violations of the rule (private fields that do contain accessors are still violating the rule). The bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Avoid Classes with a High Lack of Cohesion - 7798

A bug has been discovered which has meant that Java Enums are included in the scope of objects considered by the Quality Rule "Avoid Classes with a High Lack of Cohesion - 7798". The bug has now been fixed (Java Enums have been removed from the scope) and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Methods must have appropriate JavaDoc @exception tags - 4678

A bug has been discovered which has meant that objects containing JavaDoc @throws tags are being incorrectly flagged as violating the Quality Rule "Methods must have appropriate JavaDoc @exception tags - 4678". The bug has now been fixed (@throws are now correctly detected) and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

JEE/SQL

Avoid using SQL queries inside a loop - 7424

A bug has been discovered which has resulted in false negatives (i.e. violations are expected but not found) for the Quality Rule "Avoid using SQL queries inside a loop - 7424" when the analysis involves JEE (the class simpleJDBCTemplateSpring from the Framework 3.0) and SQL. This bug is due to two factors:

  • The Spring Framework 3.0 environment profile does not have the parametrized method update for org.springframework.jdbc.core.simple.SimpleJdbcTemplate.update. So, the Inference Engine is not able to identify the SQL queries.
  • The query is defined in a static field and so, the method write is not considered as a SQL Artifact which is the scope of this Quality Rule.

The bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule, i.e. there will be an increased number of violations (improved accuracy).

The fix also brings improved accuracy as follows:

  • additional client/server links between Java methods using the simpleJDBC API and SQL components (these were not previously detected)
  • increased Function Point count (higher DET/RET values for existing transactions, and increased numbers of transactions, which were not detected previously)

T-SQL

Avoid SQL queries with implicit conversions in the WHERE clause - 7420 and Avoid SQL queries on XXL Tables with implicit conversions in the WHERE clause - 7662

A bug has been detected that has resulted in false positives (i.e. violations are found but are not expected) for the above named Quality Rules. This bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule - there will be less violations due to improved accuracy of the Quality Rules.

Mulitple Quality Rules

  • Avoid undocumented Web Server Pages - 2244
  • Pages should use error handling page - 2232
  • Avoid Web Server pages having a very low Comment/Code ratio - 2248
  • Use of style sheets - 2230

A bug has been discovered which has meant that an object is flagged as violating the above Quality Rules if it contains a syntax error and cannot be analyzed by CAST AIP. The bug has now been fixed (objects which contain syntax errors in their code are not flagged as violating Quality Rules) and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

PowerBuilder

Controls must inherit from a userobject - 6110

A bug has been discovered in the way that this Quality Rule is calculated, which can lead to false violations of the rule (objects that already inherit from a userobject are being flagged as violations). The bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

PHP

Avoid Too Many Copy Pasted Artifacts - 7156

A bug has been discovered in the way that this Quality Rule is calculated, which can lead to false violations of the rule (the number of failed checks may exceed the total number of checks). The bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

SAP/ABAP

Avoid accessing SAP standard Tables in modification from custom code - 7670

A bug has been discovered which has meant that CAST considers SAP tables with the prefix "pa9" and "hrp9" to be "standard" tables. However, this is contrary to the SAP recommendations. These tables are therefore falsely violating the Quality Rule "Avoid accessing SAP standard Tables in modification from custom code". The bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Avoid using EXIT statement in Include - 7672

A bug has been discovered which has meant that EXIT statements located in a Form within an include are falsely violating the Quality Rule. The bug has now been fixed (EXIT statements located in a Form within an include will not violate the Quality Rule) and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Other impacts of changes made in CAST AIP 8.1.2

JEE analyzer

Take the following code example:

Method updateReviewComments() calls method save(Comments c), which inherits generic method save(<S extends T> s).

In previous releases of CAST AIP, the instantiated method save(Comments c) is not identified and therefore the link from updateReviewComments does not exist - this is a bug. The bug has now been fixed and after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, results may differ (increased number of objects/links, therefore also impact Function Point counts and Quality Rules).

Metrics calculation

A bug has been discovered that limited metric calculation (via the Metrics Assistant) to the first 500,000 objects of an application. Therefore, for applications with more than 500,000 objects, measurement results and QR violations will increase after an upgrade to CAST AIP 8.1.2 and the generation of a post upgrade snapshot, as now metrics are calculated for all objects, not just the first 500,000.

Miscellaneous result changes

None.