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.1 on Quality Model results
  • other impacts of changes made in CAST AIP 8.1.1
  • miscellaneous result changes

The changes listed assume that an upgrade from CAST AIP 8.1.0 to CAST AIP 8.1.1 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.1 on Quality Model results post upgrade

ASP.NET / PL/SQL

A bug has been corrected which was causing links between ASP.NET client objects and PL/SQL server objects to be ignored. This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a new snapshot the number of links between objects may increase, which in turn may change the number of violations reported by Quality Rules.

.NET

Avoid namespaces with High Afferent Coupling (CA) (7264) and Avoid Namespaces with High Efferent Coupling (CE) (7262)

A bug has been detected that is causing the rules listed above to produce erroneous results: the query used to compute the total number of namespaces was incorrect and instead the total number of classes was being calculated. This was leading to situations where the total number of checks was less than the number of failed checks for these Quality Rules. This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for these Quality Rules.

Avoid artifacts having recursive calls (7388)

A bug has been fixed that was causing false positive violations to be reported for the Quality Rule "Avoid artifacts having recursive calls - 7388": some code was wrongly being interpreted as recursive causing the false violation of the Quality Rule. The bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

JEE

Avoid using references to the id in the persistent class's method equals() (7722)

A bug has been detected that is causing the rule listed above to produce false positive violations when the source code contains an id that is natural (i.e. not containing the annotation @generatedValue). This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Avoid improper processing of the execution status of data handling operation (8112)

A bug has been detected that is causing the rule listed above to produce false positive violations when the source code contains a try...catch clause with a throw statement. The throw was incorrectly considered as "improper processing" causing the Quality Rule to be violated. This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Avoid hardcoded network resource names (8102)

A bug has been fixed that was causing false positive violations to be reported for the Quality Rule "Avoid hardcoded network resource names - 8102": the string "SQLException:\n" was being misinterpreted as a network resource because of ":\" and causing the false violation of the Quality Rule. The bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Secure Coding - Input Validation Technical Criterion

A bug has been detected that is causing the majority of violations of Quality Rules that are children of the Secure Coding - Input Validation Technical Criterion to be missing. This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for these Quality Rules.

Mainframe - Cobol

Avoid using COMPUTE statement for elementary arithmetic operation (7754)

A bug has been fixed that was causing false positive violations to be reported for the Quality Rule "Avoid using COMPUTE statement for elementary arithmetic operation - 7754" when the operands in the COMPUTE statement were not using parentheses. The bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

Missing links between Cobol Paragraphs

A bug in the Inference Engine has been fixed that was causing missing links between Cobol Paragraphs. The resulting bug fix could result in additional links between Cobol paragraphs, therefore potentially impacting Quality Rules and Transaction results.

Multiple Quality Rules

False positive violations were being reported on many Quality Rules because comments were not being detected correctly in COBOL in free format code. This impacted many Quality Rules, especially when the comment contained a "." The "." means the end of the paragraph, so the code after the comment was not being analyzed, therefore causing false violations for multiple Quality Rules. The bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

SQL technologies

Avoid SQL queries with implicit conversions in the WHERE clause (7420)

A bug has been detected that is causing the rule listed above to produce erroneous total checks vs. failed checks results: the number of failed checks was higher than the number of total checks. This bug was due to a configuration issue in the Quality Rule calculation and it has now been fixed. After an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, results may differ for this Quality Rule.

All Languages/Technologies Quality Rules

Avoid artifacts having recursive calls (7388)

In the context of a PL/SQL analysis, a bug was detected that caused the rule listed above to produce false positive violations when an overloaded function was used. The analyzer did not correctly understand a situation where a procedure is calling another procedure with the same name, but a different parameter. This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 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.1

Mainframe Cobol

A bug has been found that causes the erroneous creation of a link between a section and a program when an IF THEN ELSE clause is used in the code. This bug has now been fixed and after an upgrade to CAST AIP 8.1.1 and the generation of a post upgrade snapshot, the number and type of links may differ. In turn this may impact Quality Rule and transaction results.

Oracle Server

Oracle Server objects marked as invalid in the system catalog will now be passed to the CAST AIP analyzer as valid (in previous releases, invalid objects were always passed as invalid and the analyzer would ignore them). Please see the section Invalid Oracle Server objects in Oracle Server. This improvement now means that objects marked as invalid simply because they require recompiling will now be analyzed and will be displayed in CAST Enlighten as valid. If the object is marked as invalid in the system catalog because it contains syntax errors, the analyzer will issue a syntax error in the analysis log when attempting to analyze it. This change will have an impact on results after upgrading to 8.1.1: you may find that there are there are more links between objects (objects analyzed that previously were not), which will in turn impact Quality Rule results and transactions.

Miscellaneous result changes

None.