Support MES Model Examiner® (MXAM)

What is MXAM?


MES Model Examiner® (MXAM) offers fast and reliable guideline compliance verification for Simulink®, Stateflow®, Embedded Coder®, TargetLink®, ASCET®, and Enterprise Architect® models, as well as Excel® data, using general and company-specific modeling guidelines and data rules.

Certified by TÜV SÜD for IEC 61508, ISO 25119, and ISO 26262

TÜV Certificate


What's New?

Highlights in latest versions of MES Model Examiner® (MXAM) v.8.2

Generic MXRAY Model Metric Check
Through a new check matlab_mxray_generic_0001, any numeric model metric can be assessed, by configuring an upper bound for its numeric value. A finding is created for each structural element with a metric exceeding the upper bound value.

Queuing of CI License Checkouts
MXAM now supports queuing license requests when there is no available license at the time of request. A timeout can configured. This feature requires the MXAM_CI_EXEC license.

Increased Coverage of MAB Guidelines (version 5.0)
Several new checks cover numerous best practices for good modeling style and configuration in Simulink and Stateflow.


MXAM v.8.1

Highlights in MES Model Examiner® (MXAM) v.8.1

Automatic return of unused licenses
When licensed instances of the MXAM application remain idle for more than 6 hours, their licenses are automatically returned to the license server. This allows a more effective license usage and avoids unused licensed tool instances. The affected idle MXAM instances are blocked until user input requests a new license checkout.

Support of Linux operating systems (BETA)

New Guidelines for Targetlink (Versions 5.0, 5.1, and 5.2)
Six new guidelines focus on optimizing Targetlink code generation and MISRA C compliance.

MXAM v.8.0

Highlights in MES Model Examiner® (MXAM) v.8.0

Extended Reporting Details
Finding messages referencing additional model elements now include footnotes with link details when model links are not resolvable (e.g. in xlsx or PDF reports).
Report details are consolidated among report formats, adding the architectural metrics table to html and PDF reports, and parameter configuration details to xlsx reports.

Additional Guidelines
New guidelines are added focusing on implicit data type conversions, saturation settings of Integrator blocks, and layouts in Stateflow.

MXAM v.7.3

Highlights in MES Model Examiner® (MXAM) v.7.3

Clone Group Check
The clone group check identifies repetitive subsystems in the model and creates a finding for each group of subsystem clones. The finding contains model links to each member of a clone group to simplify navigation and review in the model.

Multiple Linking into the Model
Check findings now support the listing of multiple model links in the findings messages. This simplifies navigation in the model e.g. for findings that may be affected by several different elements in a model.

MXAM v.7.2

Highlights in MES Model Examiner® (MXAM) v.7.2

  • The automatic port selection for the web service as well as the MATLAB connection makes installing and configuring MXAM much easier, and supports automated installation scripts.
  • Better user feedback and error handling regarding configuration and runtime issues improve the overall MXAM experience.
  • Four new checks added to the MAB 5.0 document and the dSPACE TargetLink 5.0/5.1 document has been updated.
MXAM v.7.1

Highlights in MES Model Examiner® (MXAM) v.7.1

Validation of Project Settings
Show validation details in pre-analysis validation in case of warnings/errors. Prevent execution of an analysis if there is any error detected.

New Checks for MAB
Additional MAB 5.0 guidelines are available.

MXAM v.7.0

Highlights in MES Model Examiner® (MXAM) v.7.0

dSPACE TargetLink users will benefit from significant runtime improvements of TargetLink checks and the support of TargetLink 5.1.

Newly available MAB 5.0 guidelines focus on the prevention of division by zero in Simulink and Stateflow.



Manual Installation

  • Installer: Install MXAM by executing the setup file (.exe) and follow the setup instructions.
    • The startup of the installation process might take a while depending on the security settings of the client machine.
    • Installation to a write-protected directory: Right click the setup file and execute as administrator.
  • Zip archive: Unzip the archive into any directory

Automatic Headless Installation

  • Run the MXAM installation once on a machine and save your automatic installation data in the Finish Panel to auto-install.xml.
    With this data, you will be able to run the same installation on another similar machine.
  • Configure the auto-install.xml
  • Run the automatic installation: >>[installer-name].exe [ABSOLUTE-PATH/auto-install.xml]


Update to the Latest Version

  • If you added MXAM folders permanently to the MATLAB path, please remove all of these folders from the path.
  • If you installed the old version in a folder with a version postfix (e.g. x:\project\matlab\mxam_x_x), you can keep that directory as a backup.
  • If you installed without a version postfix, you could rename the old installation directory to one with a version postfix as a backup.

Update from MXAM 1 to a Current Version of MXAM

A migration kit to migrate customer-specific checksets and checks is available upon request.
Please contact

System Requirements

The following system requirements must be in place to use MXAM:

  • Windows Vista, Windows 7, Windows 8, Windows 10 (64-bit versions), or
  • Linux (64-bit versions), tested with Ubuntu 20.04.1 Desktop.
  • Java 8 to 15 needs to be installed on your system (the tested version to work with MXAM is AdoptOpenJDK 8).
  • System requirements when using MXAM with MATLAB®/Simulink®/Stateflow®: MATLAB® version see table below
    • System requirements when additionally using TargetLink®: TargetLink® (base suite) version see table below
  • System requirements when using MXAM with ASCET: ASCET 6.1 to 6.4.6
  • System requirements when using MXAM with EXCEL: Excel 2003 and higher

Compatibility of each MXAM release with MATLAB and TargetLink releases

MXAM Release MATLAB Release TargetLink Release
8.2 R2015b - R2022a TL 4.1 - TL 5.2
8.1 R2015b - R2021b TL 4.1 - TL 5.2
8.0 R2015b - R2021b TL 4.1 - TL 5.2
7.3 R2013b - R2021b TL 3.5 - TL 5.2
7.2 R2013b - R2020b TL 3.5 - TL 5.1
7.1 R2013b - R2020b TL 3.5 - TL 5.1
7.0 R2013b - R2020b TL 3.5 - TL 5.1
6.5 R2011b - R2020b TL 3.3 - TL 5.0
6.4 R2011b - R2019b TL 3.3 - TL 5.0
6.3 R2011b - R2019b TL 3.3 - TL 5.0
6.2 R2011b - R2019b TL 3.3 - TL 5.0
6.1 R2011b - R2019a TL 3.3 - TL 4.4
6.0 R2011b - R2019a TL 3.3 - TL 4.4
5.3 R2011b - R2018b TL 3.3 - TL 4.4
5.2 R2011b - R2018b TL 3.3 - TL 4.3
5.1 R2011b - R2018b TL 3.3 - TL 4.3
5.0 R2011b - R2018a TL 3.3 - TL 4.3
4.7 R2009b - R2017b TL 3.2 - TL 4.3
4.6 R2009b - R2017b TL 3.2 - TL 4.2
4.5 R2009b - R2017a TL 3.2 - TL 4.2
4.4 R2009b - R2017a TL 3.2 - TL 4.2
4.3 R2009b - R2016b TL 3.2 - TL 4.2
4.2 R2009b - R2016b TL 3.2 - TL 4.2
4.1 R2007b - R2016b TL 2.2 - TL 4.1
4.0 R2007b - R2016a TL 2.2 - TL 4.1
3.9 R2007b - R2015b TL 2.2 - TL 4.1

Quick Start

Starting MXAM

  • For MATLAB platform: Open MATLAB, navigate to the MXAM installation directory, and execute >>mxam
  • For other platforms: Start MXAM using the program shortcut or go to the MXAM installation directory and execute mxam.exe

Starting an Analysis

For MATLAB platform:

  • Open a model in MATLAB
  • Press "Analyze" in MXAM
  • Select the model in the artifact dialog
  • Press "Finish"


  • Press "Analyze" in MXAM
  • Press "Open ASCET" in the artifact dialog if it is not yet open
  • Press "Refresh" to fetch models from the database
  • Press "Finish"

For Others:

  • In the Project perspective, press "Add..." in the Artifact Section to add an artifact
  • Select the artifact and press "Finish"
  • Press "Analyze"


  • Go to the "Project Guidelines" perspective to see which guidelines will be checked during the analysis.
  • To see the pool of all available guidelines, go to the "Library Browser" perspective and select the "Guidelines" view.


If you have any suggestions to help us improve the MES Model Examiner®, please do not hesitate to contact us:

User Instruction

MXAM User Guide

User Guide

The MES User Guide presents clear instructions on how to work with the MES Model Examiner® (MXAM). It provides users with information about getting started and working with MXAM. You can easily call the User Guide by clicking on "Help > Help Contents" in the menu (see image).

MXAM Videos

In this video, Model Engineering Solutions (MES) will demonstrate how to set up an MXAM project as an mxmp-file. You will learn how to create and configure an MXAM project and how to save and load a project. Since this video is focused on the first step of the MXAM workflow, basic knowledge of the workflow is needed in order to watch this video.

In this video MES will explain how to understand reports and demonstrate how to work with them in order to make your model guideline compliant. You will need to have basic knowledge about the MXAM workflow to watch this video.


Release Notes - MXAM v.8.2 (October 2022)

Tool Framework

Support for queued license checkout for CI use case

  • MXAM now supports waiting for licenses in a queue if the license server does not have an available license at the time of the request.
  • A timeout can be set to configure MXAM’s maximum wait time for a license to become available, after which the request will stop and the corresponding task will fail.
  • This feature requires the MXAM_CI_EXEC license.


  • Automatically close information dialog for idling MXAM for API access which stops idling (e.g. via web service).
  • Updated message in details view, which indicates the available repair options.
  • Increased default memory setting in mxam.ini to 2GB and removed outdated setting.
  • Configured default RMI host name in mxam.ini as a precaution for VPN usage.
  • Improved log file content by omitting duplicated entries which fill up the log. (#5533, #10273)

Bug fixes

  • The link action to highlight findings related to signal lines failed if the model was closed after report creation, or if an existing report was imported in “continue analysis” mode. This has been fixed. (#10147)
  • Fixed support email template for usage with Microsoft Outlook, in which the email body was set as the subject line. (#9902)
  • Fixed file encoding of license configuration file. (#10071)
  • Fixed a bug that caused an error when calculating the “Ineffective Interface” metric on a model that contains a bus creator where Simulink is unable to determine the signal hierarchy at the output port of that bus creator. (#7306)
  • Fixed a bug that caused an error when the model being analyzed contained a reference to a library subsystem that had a punctuation mark in its name (e.g. “my block . name”). (#9775)
  • Fixed file encoding of preference files. (#10109)
  • Fixed web service API to query MXAM availability when MXAM is in shutdown process. (#10060)
  • Fixed scaling of details view content of library items for linux which prevented proper visibility of the details. (#10050)
  • Fixed timeout handling for synchronous batch execution and increased the default timeout value. (#9612)
  • Fixed DataFlow construction for children of ASCET Statement Block. (#10145)
  • Fixed handling of ASCET SequenceCalls in Statement Block. (#10117)
  • Fixed handling of ASCET StatementBlock in computation of InputConnectors. (#10039)
  • Fixed application of ignore list rules for path rules containing “E”. (#9511)
  • Disabled tray icon notification for linux, which could cause hanging analysis for some desktop managers. (#10209)
  • For MATLAB versions R2020b and lower, structure element names, which only differ in capitalization, may have been capitalized incorrectly in MXAM’s artifact navigation. (#9520)
  • Fixed the dialog shown for idling MXAM for linux, preventing an additional and superfluous empty dialog shell. (#10124)

Guidelines, Checks, and Documents

New checks available covering MAB Guidelines (5.0)

  • Ensure unique names of states in Stateflow with guideline jc_0730. (#10152)
  • Ensure unique names of Stateflow state, data, and events with guideline jc_0732. (#10152)
  • Ensure the correct order of Stateflow state action types “entry - during - exit” with guideline jc_0733. (#10197)
  • Prevent backtracking in Stateflow due to missing unconditional transitions in flow charts with guideline jc_0773. (#10153)
  • Prohibit equivalence comparison (==, ~=) with floating-point data types with guideline jc_0800. (#9374)
  • Ensure that the first index property of a Stateflow data item is set to ‘0’ or ‘1’ with guideline jc_0701. (#10151)
  • Prevent state action types from being used more than twice in Stateflow with guideline jc_0734. (#10198)
  • Prevent the usage of multiple inner transition or at least ensure a correct to top to bottom order based on execution order with guideline jc_0763. (#10202)
  • Ensure that only signal lines are used to share data between MATLAB functions with guideline na_0024. (#10075)
  • Verify the setting of ‘Unused data, events ,messages’ in order to notice unused Stateflow data with guideline jc_0700. (#9052)
  • Verify the setting of ‘Unreachable execution paths’/’Transition Shadowing’ in order to avoid dead transition paths with guideline jc_0772 (#9052)
  • Verify the correct setting of model diagnostics in order to ensure code generation with guideline jc_0021. (#9052)
  • Ensure that transitions, states, and junction in Stateflow are connected with guideline jc_0797. (#10112, #10115)
  • Prevent unused data in the model workspace and in the Simulink data dictionary with guideline jc_0792. (#10073)
  • Ensure that data store memory blocks are placed at the smallest scope level with guideline jc_0161. (#10219)
  • Prohibit the use of state action in flow charts in order to ensure readability of a Stateflow chart with guideline jc_0762. (#10199)
  • Ensure that folders and filenames are follow naming conventions with guidelines ar_0001 and ar_0002. (#10111)
  • Ensure that the usage of nested if/else statements is limited to three levels with guideline na_0018. (#10074)
  • The following guidelines are now also covered in version 2 by a check: db_0143, jc_0451, jc_0511, jm_0002, na_0011, db_0122. (#10069)

New dSPACE Guideline for TargetLink (versions 5.0, 5.1 and 5.2) available

  • Ensure minimum and maximum values for a Stateflow data item are set and verify the containment in the data type range with guideline TL_RULE_STATEFLOW_RANGE_INFORMATION (mcheck_mes_cgtl_4305 and mcheck_mes_cgtl_4306). (#9962)

MXRAY model metric check

  • Verify that the value of a model metric of your choice is below configurable bounds with check matlab_mxray_generic_0001. The check supports all architectural model metrics provided by MXAM. (#10061)
  • Verify that the global complexity R0 is below configurable bounds with guideline mes_arch_1308. (#10061)

Compatibility with MATLAB R2022a

  • Some adjustments were made in order to ensure compatibility with MATLAB R2022a due to changes in the Stateflow API. (#10206, #10208, #10243)
  • mcheck_db_0122, mcheck_ds_0058, mcheck_misra_slsf_034_c, mcheck_misra_tl_4_2, mcheck_sdt_sc002_a: These checks no longer analyze the property ‘Use Strong Data Typing with Simulink I/O’ when run on MATLAB R2022a. (#10214)

New MES-MATLAB guidelines and checks available

  • Avoid extrapolation in Prelookup tables with mes_slsf_0626 (mcheck_mes_slsf_0626).
  • Control the number of operands in Sum blocks mes_mc_0012 (mcheck_mes_mc_0012).
  • Ensure Consistent numbering and placement of port blocks with mes_sk_008 (mcheck_mes_sk_008_a, mcheck_mes_sk_008_b).
  • Avoid redundant action code in transitions with the same destination with mes_slsf_1301 (mcheck_mes_slsf_1301).
  • Restrict the allowed variable classes for Targetlink lookup blocks with mes_cgtl_4208 (mcheck_mes_cgtl_4208).
  • Restrict the allowed variable classes of state variables in all Targetlink blocks with mes_cgtl_4209 (mcheck_mes_cgtl_4209).

New version of the ‘MES-MATLAB Guidelines - Collection of Best Practices’ available

  • A new version v2 of the guideline document ‘MES Guidelines - Collection of Best Practices’, which includes all new MES-MATLAB guidelines, is now available.


  • If the related metric value could not be computed for evaluation, the finding type for MXRAY model metric checks was “Aborted,” we have changed this to “Review.”
  • mcheck_misra_slsf_027_j: The check was rewritten to provide a better coverage of the guideline rationale. This includes the improved handling of linked subsystems, more detailed information on faulty elements as well as a consistent distinction between signal naming and label propagation. (#9363)
  • mcheck_misra_tl_5_6, mcheck_ds_0047: The checks now correctly handle the ‘Specify Indices’ option of Multiport Switches. (#10027)
  • mcheck_misra_slsf_052_a, mcheck_misra_slsf_052_b, mcheck_misra_slsf_053_b: The check now uses multiple links in the finding message to navigate to all relevant items of a finding. (#10152, #10201, #10011)
  • mcheck_misra_slsf_055_a: The check has improved handling of implicit Stateflow state action types. (#10197)
  • mcheck_sdt_sc002_e: The check now issues review findings instead of failed. It also uses multiple links in the finding message to navigate to relevant items of a finding. (#9962)

Bug fixes

  • mcheck_jc_0501, version 02: The repair action has been fixed for MATLAB versions R2015b and older. (#9780)
  • mcheck_mes_slsf_2000, mcheck_mes_slsf_2001, mcheck_misra_slsf_007_a: The checks were aborted if they were not executed on the top level of a model. This has been fixed. (#10251, #10255)
  • ds_0103: The check was aborted if the source block of the analyzed Math block defined a vector signal. This has been fixed. (#10288)