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

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

Mainframe Cobol

Check alphanumeric data before moving it into numeric data - 8030

A bug has been detected which is causing the false violation of the Quality Rule "Check alphanumeric data before moving it into numeric data - 8030". The Quality Rule was falsely being violated when the syntax "pic x(01)" is used and "x" is written in lowercase. This bug has now been fixed (the Quality Rule will correctly interpret the use of lowercase "x") and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may differ for this Quality Rule - you may see less violations.

Microsoft SQL Server - T-SQL

Avoid SQL queries that no index can support - 7902

A bug has been detected which is causing the false violation of the Quality Rule "Avoid SQL queries that no index can support - 7902". The Quality Rule is falsely being violated when indexes covering the queries exist. This bug has now been fixed and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may differ for this Quality Rule - you may see less violations.

.NET

Avoid types that own disposable fields and are not disposable - 8086

A bug has been detected which is causing Brushes classes to wrongly violate the Quality Rule "Avoid types that own disposable fields and are not disposable - 8086". This bug has now been fixed (Brushes are no excluded from the scope of this Quality Rule) and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may differ for this Quality Rule - you may see less violations.

Other impacts of changes made in CAST AIP 8.1.3

.NET / Metrics Assistant / Total Cyclomatic Complexity

A bug has been discovered in CAST AIP 8.x which meant that the Metrics Assistant (when processing .NET soure code) did not take into account as many objects as it did in CAST AIP 7.3.x. This bug will have resulted in a difference in the Total Cyclomatic Complexity value (Total CC) reported by the CAST Engineering Dashboard (lower in CAST AIP 8.x than in CAST AIP 7.3.x). The bug has now been fixed and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may differ for the Total CC value (higher than previously).

Improvements made to Oracle PL/SQL syntax support

The following syntax is now supported by CAST AIP. After an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may therefore differ:

  • PIVOT/UNPIVOT
  • LISTAGG

Improvements made to ABAP syntax support

The following syntax (which is permitted in ABAP source code) is now supported by CAST AIP. After an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may therefore differ:

  • "ENVIRONMENT TIME FORMAT" or "ENVIRONMENT FORMAT" (options for WRITE statements)
  • "EXEC SQL" with comments between EXEC and SQL, for example:
EXEC "comment
SQL
SELECT ev1.vkonto ....
ENDEXEC.
  • ~ character now supported in SORT clauses, for example:
"SORT if_ex_ibssi_receive_to_dwn~bapimtcs_buffer BY tabname objkey." 
  • Preprocessing when ":" is inside parentheses, for example:
cucomd->reset(:
cl_iuicmd_cucomd_impl=>gc_premise_node ),
cl_iuicmd_cucomd_impl=>gc_buag_node ).
  • A full expression in the FROM clause is now supported:
LOOP AT p_xyt_doc_item ASSIGNING <lfs_doc_items1> FROM l_i_index1 + 1.
  • When an integer is present in a FROM clause, for example:
DELETE gi_pp_nr FROM 2
  • When a macro is called with another macro name as a parameter, for example:
define macro_execute.
 &1 1.
 end-of-definition.
 define lmacro_def_itab.
 types &1.
 end-of-definition.
 macro_execute lmacro_def_itab.

 

JEE

A bug has been identified in the JEE analyzer in CAST AIP 8.x that is causing less objects to be saved to the CAST Analysis Service database than in CAST AIP 7.3.x. This bug is seen when an XML (or .properties) file is provided twice as the input of the JEE analyzer. Two objects are created, which then leads to a duplicated guid that induces the removal of the object when it is saved to CAST Analysis Service database. This bug has now been fixed and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may therefore differ: increased number of objects (more accuracy), increased number of transactional Function Points, Quality Rule differences etc.

User Defined Modules - Unassigned Objects Content modules

A bug has been identified which was causing ALL objects to be present in the built in Unassigned Objects Content module, rather than just those that are not assigned to any other User Defined Module as expected. This bug has now been fixed (the Unassigned Objects Content module only contains unassigned objects as designed) and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, results may therefore differ based on the objects in this module.

Mainframe Cobol - Cobol Nested Programs

A bug has been discovered which has meant that Cobol Nested Programs have not been correctly handled by the Mainframe analyzer: these components have been classified as "Unknown Programs" objects by CAST AIP, leading to them being excluded from transactions, Quality Rules, Function Points. The bug has now been fixed and after an upgrade to CAST AIP 8.1.3 and the generation of a post upgrade snapshot, the following impacts may be seen if the source code contains Cobol Nested Programs:

  • Some Quality Rules may be impacted by this bug fix (i.e. there may be more or less violations)
  • Cobol Nested Programs are now correctly identified instead of showing as “Unknown Programs”
  • Cobol Nested Programs with names longer than 8 characters are now taken into account correctly during an analysis
  • Links between Cobol Nested Programs and other objects will now be correctly resolved
  • Function Point values may change

Miscellaneous result changes

None.