Analysis

Reactive Blocks includes a built-in automatic verification tool that reveals mistakes and design flaws, and provides possible actions to fix them. To start the analyzing, select Analyze from the context menu.

Analysis Results

An example of an analysis result is depicted in the following figure.

The result is shown in the Analysis view (1). If the analysis wondow is closed, to open it you may re-open the block or right-click the block and select Analyse from the context menu. To re-analyse the system, click refresh button in the upper right corner (5). There are two kinds of issue:

  • Errors () are problems that must be fixed. Usually, errors mean that a further analysis or code generation will not complete correctly. A system with errors can not be build.
  • Warnings () indicate situations that you should be aware of since they can be signs of behavior that you did not intend. You should fix them. However, it is possible to build a system including warnings.
  • Infos () give information that may help you. Usually no action is necessary.

Clicking each error (2), warning or info will show an explanation on the problem (3) and some possible actions, if any, that you can take to fix it (4).

Two-Step Analysis

The analysis internally runs in two steps, an initial syntactical inspection and a subsequent deeper analysis. Some syntactical errors prevent the deep analysis to run. Therefore, it may happen that fixing an error reveals other issues, once you analyze again. The opposite, fixing an issue also removes other issues, is also possible.

Reactive Blocks generates executable code automatically from building blocks. In order to ensure correct implementation, it is important that all building blocks are consistent.

In the following we summarized what types of errors and warnings that are detected by the analyzer. For more information, just follow the links.

Inconsistent Graph
The activity diagram contains an inconsistent construction.
 
Contract - related
Issues related to block contract.
 
Block Termination - related
Issues related to termination of a block.
 
Others: