April 7, 2009

Dear Reactis User:

We are pleased to announce the availability of Reactis V2009.0.2, V2008.0.11 and of Reactis V2009.1 (beta)

V2009.1 (beta)

In addition to all bug fixes up to Reactis V2009.0.2, the following features were added:

Multi-Block MC/DC coverage

A new feature called Multi-Block MC/DC enables the aggregation of multiple Simulink Logical Operator blocks into a single unit for the purposes of Decision, Condition, and MC/DC coverage tracking. For example, consider the following model fragment: two Or blocks with their outputs feeding into an And block

Under the traditional definition of MC/DC coverage in Simulink, this fragment would include three separate decisions:

  • A or B
  • C or D
  • op1 and op2

each with its own conditions and MC/DC targets. When Multi-Block MC/DC is enabled these three operators are combined into a single decision:

  • A or B and C or D

Multi-Block MC/DC may be enabled or disabled from the General tab of the Reactis Settings Dialog using the “Enable Multi-Block MC/DC coverage for Logical Operator blocks” checkbox. When disabled the traditional definition of MC/DC for Simulink is used (one decision per Logical Operator block).

When Multi-Block MC/DC is enabled, the following rules are used to combine Logical Operator blocks into a group that will constitute a single decision:

  • Groups may only contain "Logical Operator" blocks.
  • Groups may not cross subsystem boundaries.
  • Each group has exactly one exiting signal line. The output port of the block at which the exiting signal line originates will be marked as the decision (red dot).
  • Each group may have multiple incoming signals lines. The input ports of the blocks where the entering signal lines end will be marked as the conditions (red dot).
  • The set of Logical Operator blocks L within a subsystem are partitioned into a set of groups as follows. For each lL, let G(l) denote the group containing l.
    1. For each li in L, let G(li) = { li }
    2. For each liL:
      • If all branches of the output of li feed into a group gj then merge G(li) and gj
      • otherwise G(li) remains unchanged.

Hovering over a “Logical operator” block will show arrows indicating the group that the block belongs to. If no arrows appear then the block is not part of any group.

To see the MC/DC coverage details for a group, right-click on the final “Logical operator” block and select “Show coverage details”.

Newly supported Simulink features

  • Initial support for MATLAB R2009a models. This means Reactis will work together with MATLAB R2009a and models created and edited with R2009a will work in Reactis. However, new features introduced in MATLAB R2009a are not yet supported. New features will be supported as demand increases.
  • Accessing “Data Store Memory” blocks from within Stateflow charts is now supported.
  • The “&” operator can now be applied to array elements as a parameter to an external C function call in Stateflow. For example: foo(&(a[3])) is now supported.

Other Improvements

  • New backend engine significantly improves performance when running Simulator or Tester on large models.
  • In the Reactis Info File Editor, multiple configuration variables can be removed at once.
  • Improved performance and memory consumption when calling S-Functions via the Reactis for C plugin.
  • If a Simulink.Parameter object is used as a configuration variable, the value of the objects’ “DataType” property is shown in the DataType column of Reactis’ configuration variable list. Previously, such configuration variables did show up as type “double”.

V2009.0.2

The following bugs were fixed since V2009.0.1:

  • Fixed bug that caused an error "Unexpected MATLAB operator" when using multiple lines of code in Reactis' pre-load function for a model
  • Fixed bug that could cause a "Lost connection to backend" error when using data objects with variable names of 42 characters or more.
  • Fixed bug that caused parse errors in the Reactis for C plugin when using combinations of empty macro definitions.
  • Fixed bug that caused Difference Scopes to show non-existent differences when running tests with more than 1200 steps.
  • Fixed problem that could cause errors like "getParameterMode: unhandled parameter mode" or "Not enough input arguments" when specifying the parameter data type for some blocks.
  • Fixed bug where some input ports were not available in the virtual source properties dialog after switching the library containing virtual sources.
  • Fixed problem that caused an "Invalid Output times" error occur during model import if the "Output options" setting of a model is set to "Produce specified outputs only". Also fixed the problems that this setting caused in the "runtests" utility.
  • Fixed bug that occurred when initializing a pointer to a function with the address of a static function when using the Reactis for C Plugin.

V2008.0.11

The following bugs were fixed since V2008.0.10:

  • Fixed bug that caused an error "Unexpected MATLAB operator" when using multiple lines of code in Reactis' pre-load function for a model
  • Fixed problem that could cause errors like "getParameterMode: unhandled parameter mode" or "Not enough input arguments" when specifying the parameter data type for some blocks.
  • Fixed bug that caused parse errors in the Reactis for C plugin when using combinations of empty macro definitions.
  • Fixed problem that caused an "Invalid Output times" error occur during model import if the "Output options" setting of a model is set to "Produce specified outputs only". Also fixed the problems that this setting caused in the "runtests" utility.
  • Fixed bug that occurred when initializing a pointer to a function with the address of a static function when using the Reactis for C Plugin.

You may download the patches or full installers from the Reactis User Pages.

Best Regards,
The Reactis Team

Back to Patches Archive