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.2.12 on Quality Model results
  • other impacts of changes made in CAST AIP 8.2.12

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

JEE

SCRAIP-30769 - Avoid instantiations inside loops - 7210

A change has been made to the rule "Avoid instantiations inside loops - 7210": the syntax "map.collect()" will no longer produce violations for this Quality Rule. Therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: reduced number of violations for this syntax and improved accuracy.

SCRAIP-30849 - Use lazy fetching for collection - 7488

A change has been made to the rule "Use lazy fetching for collection - 7488". Previously violations were reported for this rule  in the following situations:

  • JPA collections and oneToMany relations use lazy fetching by default (i.e. when FetchType is not specified in the annotation) and if no configuration file says that collections use another FetchType, the rule is incorrectly violated. 
  • Even if FetchType.LAZY is specified in the annotation, the rule is incorrectly violated.

This behaviour has now been changed to avoid the false positive violations. Therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: reduced number of violations for this rule and improved accuracy.

SCRAIP-31504 - Avoid directly instantiating a Class used as a managed bean - 7964

A bug has been found in the rule "Avoid directly instantiating a Class used as a managed bean - 7964" - it was not including Java Fields in its scope. This has has now been corrected, therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: potentially increased number of violations for this syntax and improved accuracy.

SCRAIP-32817 - Pages should use error handling page - 2232

A bug has been found in the rule "Pages should use error handling page - 2232" - false violations were being reported even though there are <error-page> tags in the web.xml file and the directive <%@ page isErrorPage = "true" %> is present in the .jsp error page file.  This has has now been corrected, therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: reduced number of violations for this syntax and improved accuracy.

.NET

SCRAIP-31238 - Avoid instantiations inside loops - 7212

A change has been made to the rule "Avoid instantiations inside loops - 7212": where an initializer (for / foreach) is present in a loop, the rule will no longer produce violations. Previously the initializers were considered as part of the loop and were therefore flagged as violations. Therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: reduced number of violations for this syntax and improved accuracy.

Other impacts of changes made in CAST AIP 8.2.12

JEE

SCRAIP-29495 - Disable the creation of links between Java methods and servlet URL mappings

A change has been made to the way in which the JEE Analyzer handles links between Java methods and servlet URL mappings: these link types are no longer created. This change has been made because these links almost always need to be managed with the Dynamic Link Manager, and when there are many this manually processing can take a long time. In addition, the links are meaningless. Therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: links between Java methods and servlet URL mappings will no longer be created leading to a reduction in the number of links.

SCRAIP-32473 - Links missing between jsp and java objects

A bug has been discovered in the JEE analyzer that is causing missing links between JSP and Java objects. This has has now been corrected, therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: increased number of links impacting transaction values and improved accuracy.

.NET

SCRAIP-30145 - Links created from .NET method "A" to .NET method "B" which all have the same name

A change has been made in the way the .NET analyzer behaves with regard to links between .NET methods which cannot absolutely be determined. Previously the .NET analyzer would create multiple objects of the same name for one single .NET method "B" and create links from the calling .NET method "A" to those objects. This resulted in multiple links between .NET method "A" and multiple instances of .NET method "B". This behaviour has now been changed: multiple instances of objects will still be created, however, only one link between the methods will be created. Therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may be less links between objects affecting transaction values.

SAP/ABAP

SAP-77 - ABAP table expressions not recognized

ABAP table expressions were previously not recognized and caused the creation of unresolved objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

Example code that is now supported:

t_allowed_plant_types[ table_line = s_plant-obj->get_type( ) ] 

SAP-69 - ABAP expression "ME->" not recognized

The ABAP expression "ME->" was previously not recognized and caused the creation of unresolved objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

SAP-79 - ABAP expression "object -> method()" not recognized

The ABAP expression "object -> method()" was previously not recognized and caused the creation of unresolved objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

SAP-74 - ABAP expression "LIKE TABLE OF" not recognized

The ABAP expression "LIKE TABLE OF" was previously not recognized and caused the creation of unresolved objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

SAP-73 - Unresolved objects "me" are created for the ABAP syntax "DATA: lcl_cache LIKE me"

The ABAP expression "DATA: lcl_cache LIKE me" was previously not recognized and caused the creation of unresolved "me" objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

SAP-80 - Unresolved objects "s_tasks-task" are created for the ABAP syntax "<s_tasks>-task = o_subproc_task"

The ABAP expression "<s_tasks>-task = o_subproc_task" was previously not recognized and caused the creation of unresolved "s_tasks-task" objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

SAP-75 - Unresolved objects "OBJECT" are created for the ABAP syntax "CREATE OBJECT"

The ABAP expression "CREATE OBJECT" was previously not recognized and caused the creation of unresolved "OBJECT" objects. This syntax is now supported and therefore, after an upgrade to CAST AIP 8.2.12 and the generation of a post upgrade snapshot, results may differ: there may additional objects and links possibly leading to a change in transaction values.

  • No labels