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

Page frame name:


This view is designed to deliver the information about a single application necessary to better grasp the location and volume of critical violations.

This view requires access to at least one Application.


Main window panels

Violation Map

This panel is designed to help identify the components that represent the highest risk. The panel contains:

  • A map of the location of critical violations in application modules: each bubble represents a module and its size is proportional to the number of critical violations. I.e., the bigger the bubble, the larger the number of critical violations in the corresponding module. The "worst place" for a module to be located in this map is in the upper right corner: barely testable and critical issues in many different areas - if the bubble is also large, this indicates a very high risk module:
    • The vertical Violation Areas axis is a value that refers to the number of "areas", i.e. number of distinct Quality Rules with a critical contribution that are violated by artifacts belonging to the module - the higher the value the more areas (Quality Rules) in which critical violations exist. As such it is possible to instantly find out if the risk lies within one specific coding and architecture practice.
      • The horizontal Testability Effort Estimation axis is a value that refers to the number of decision points in each module (i.e., total Cyclomatic Complexity) - the higher the value, the more difficult the module is to test.
    • A list of all the modules in the application, together with their number of decision points, violation areas and critical violations. Selecting a module will display the list of the module's critical violations in the Violation List below.

Portfolio History

Displays the evolution over the snapshots of the number of critical violations for all modules from the applications. It helps identify trends, patterns in the SDLC, outliers, etc.The evolution of the number of critical violations per module can be visually cross-referenced with the size (in kLOCs) of the application itself.

Violation List

Displays the list of artifacts with critical violations for each module listed in the Violation Map panel - select a module here to see its critical violations. The paged list can be sorted according to your requirements requirements and exported as a CSV file (use the Export All option) for further processing and sharing - see the Interactive Table section in Using the CAST Engineering Dashboard for more information about this table. The following column headings are available:

Violation StatusStatus of the violation in the current snapshot
RPFRisk Propagation Factor (RPF), to identify violations that can impact the largest number of components in the Application. The impact area is computed as follows:
  • Risk Propagation Factor for a Robustness, Performance, or Security Violation is the size of its call path
  • Risk Propagation Factor for a Changeability Violation is its Fan-In
  • Risk Propagation Factor for a Transferability Violation is zero (0).

Violation Index (VI), to identify violations with the largest number of violations, taking into account the weight of the Rules and of the Technical Criteria, for the Health Factor involved. The formula used to calculate this value is as follows:

For each object, Identify Rules it violates that contribute to a given Health Factor through Technical Criteria. Multiply aggregate weight of the Rule within the Technical Criterion by the aggregate weight of the Technical Criterion within the Health Factor. In other words:

VI = Sum_of_all_rules_violated_by_the_object (Quality_rule_weight * technical_criteria_weight)


Propagated Risk Index (PRI), to identify the violations that can impact the largest number of components, involving objects with the largest number of violations pertaining to the Health Factor involved. The formula used to calculate this value is as follows:

PRI = (RPF + 1) x VI

Act./Excl.Indicates whether the violation has been added to the Improvement - Action Plan or excluded from the snapshot generation
Rule NameName of the Quality Rule the object is violating
Health FactorName of the Health Factor the Quality Rule belongs to
Object NameName of the module the object belongs to
Module NameStatus of the object in the current snapshot
Object StatusStatus of the object in the current snapshot
Cost ComplexityCost Complexity category of the current object
Note that objects with the same name can occasionally appear twice in the Objects with Violation list. Typically this can occur when one object contains the source code of a procedure and the second identically named name object contains the declaration of the same procedure.

Violation Details

When a violation is selected in the Violation List, the Violation Details section is updated to provide more information about the violation:

Violation InfoExpandable section providing the status of the violation in the current snapshot, together with values for RPF, VI and PRF (see above).
Violated RuleExpandable section providing full details of the Quality Rule that has been violated
Violating Object

Expandable section providing full details about the object that is violating the Quality Rule:

Source CodeThis panel shows the source code of the object that is violating the selected Quality Rule. It is taken from the most recent snapshot and is only available if source code has been uploaded via the CAST Management Studio (this is the default setting).

Note that an empty object (i.e. does not contain any source code) will cause the CAST Engineering Dashboard to display an error if you attempt to view its source code.

More information about the Violation Details section is available in Violation Viewer.

Interactive table

Some panels in this page use an interactive table to display data. Interactive tables allow you to sort the data in a more comprehensive manner than simply in ascending/descending order. See the section Interactive tables in Using the CAST Engineering Dashboard.


  • No labels