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
Highlights in MES Model Examiner® (MXAM) v.6.4
Enjoy the new visualization of your software model architecture.You can gain a quick overview of your model via this graphical overview of the six main metric values in one diagram.
New MAB Guidelines (Version 5.0) available.The document contains the guidelines of the official Mathworks Advisory Board guidelines document in version 5.0.
Highlights in MES Model Examiner® (MXAM) v.6.3
Focusing on user experience, a number of detailed improvements in user feedback and tool behavior is dedicated to enhance the daily work with MXAM. They provide a stable basis for upcoming exciting features.
Highlights in MES Model Examiner® (MXAM) v.6.2
Clone group detection
The clone group metric identifies groups of subsystems that are almost identical. Such repetitive implementation, potentially created by copy/paste actions during modeling, increases the overall complexity of a model and thus should be avoided.
Improved MATLAB batch execution
A new configuration option for the MATLAB API allows synchronous execution of batch tasks.
Compatibility with Matlab 2019b and TargetLink 5.0
Highlights in MES Model Examiner® (MXAM) v.6.1
Architectural metrics view
A new view in the report perspective of the MXAM Functional Safety Solution shows MXRAY metrics, supports sorting, and filtering. Tables and trees can be exported to Excel.
Highlights in MES Model Examiner® (MXAM) v.6.0
Enhance static model analysis with architectural aspects (BETA)
Static analysis of MATLAB models is complemented by MXRAY model metrics to evaluate adherence to architectural design principles. Useful functionalities of the MXAM analysis framework, such as use of parameters, annotations, ignore lists, and reporting options, are also available.
New MXRAY model metrics guidelines and checks (Functional Safety Solution)
MXRAY checks focus on Restricted Local Complexity, Restricted Number of Hierarchy Levels, Restricted Number of Inports and Outports, Restricted Cyclomatic Complexity, and Use of Effective Interfaces.
- 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 firstname.lastname@example.org.
The following system requirements must be in place to use MXAM v.6.4:
- Windows Vista, Windows 7, Windows 8, Windows 10 (64-bit versions)
- Java 8 or higher needs to be installed on your system (the tested version to work with MXAM is AdoptOpenJDK 8).
- Webservice Port 10117 (default) must be accessible. Can be changed in tool preferences.
- System requirements when using MXAM with MATLAB®/Simulink®/Stateflow®, and TargetLink®:
- MATLAB® version see table below
- TargetLink® (base suite) version see table below
- Port 5564 (default) must be accessible
- System requirements when using MXAM with ASCET: ASCET 6.1 to 6.4.4 Beta
- 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|
|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.1 - TL 4.4|
|5.3||R2011b - R2018b||TL 3.1 - TL 4.4|
|5.2||R2011b - R2018b||TL 3.1 - TL 4.3|
|5.1||R2011b - R2018b||TL 3.1 - TL 4.3|
|5.0||R2011b - R2018a||TL 3.1 - TL 4.3|
|4.7||R2009b - R2017b||TL 3.1 - TL 4.3|
|4.6||R2009b - R2017b||TL 3.1 - TL 4.2|
|4.5||R2009b - R2017a||TL 3.1 - TL 4.2|
|4.4||R2009b - R2017a||TL 3.1 - TL 4.2|
|4.3||R2009b - R2016b||TL 3.1 - TL 4.2|
|4.2||R2009b - R2016b||TL 3.1 - 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|
|3.8 and 1.9.0||R2007b - R2015b||TL 2.2 - TL 4.1|
- 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 6" in the artifact dialog if it is not yet open
- Press "Refresh" to fetch models from the database
- Press "Finish"
- 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:
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).
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.6.4 (October 2020)
MXRAY Summary Diagrams
MXAM provides a graphical overview of the 6 main metric values in one diagram:
- Local complexity
- Globally unused elementary inputs in percent
- Local cyclomatic complexity
- Number of inports
- Number of outports
This overview is provided as a report view in the MXAM GUI and also in the report (HTML, PDF and Excel).
- Added metrics table in the Excel report.
- Improved communication between MATLAB and Jenkins. (#6253)
- Already loaded annotation definition files are prevented from being loaded again. (#8205)
- Added preselection of current MXAM in the License Manager. (#8251)
- Added ASCET support for arrays of enumeration type. (#8400)
- Added conditional connecting to MATLAB on MXAM start. (#8243)
- Added early check for a CI License in the case of a batch execution. (#8362)
- Enforce closing of MATLAB after 5 minutes timeout, if it cannot be closed gracefully. (#8068)
- Improved error handling for webservice queries. (#8233)
- Extended validation logic of the License Manager for license file(s).
- Fixed an NPE in the License Manager in case of missing files in a user directory. (#8251)
- Fixed the API getReportResults when report contains findings with ‘Passed with Infos’. (#8370)
- Fixed update of the blacklist and whitelist table in the project annotation settings. (#8433)
- Added help entry for the clone group ID search. (#8021)
- Improved error handling, if the initialization of the user directory failed. (#8325)
Guidelines, Checks, and Documents
New MAB Guidelines (Version 5.0) available
- The document ‘MAB - Control Algorithm Modeling Guidelines Using MATLAB®, Simulink®, and Stateflow® version 5.0’ contains the guidelines of the official Mathworks Advisory Board guidelines document in version 5.0.
- The following guidelines are now checkable:
- jc_0011, jc_0131, jc_0141, jc_0201, jc_0211, jc_0222, jc_0231, jc_0232, jc_0241, jc_0242, jc_0243, jc_0244, jc_0245, jc_0246, jc_0247, jc_0481, jc_0795, jc_0796
- na_0002, na_0009, na_0016, na_0017, na_0019, na_0021, na_0022, na_0025, na_0034, na_0036, na_0039
- db_0081, db_0110, db_0123, db_0144
- The above guidelines are now included in the following documents:
- MXAM Starter Set
- MXAM Starter Set - Extended Version (available in Functional Safety Solution)
- MES Modeling Guidelines for Implementation with Embedded Coder
- MES Functional Safety Modeling Guidelines for Implementation with Embedded Coder (available in Functional Safety Solution)
- Combined state actions in a state label in Stateflow could not be read properly causing a false failed finding in specific checks. This has been fixed. (#7890)
- Improved robustness of evaluating TargetLink data dictionary variables for cases where ‘ddv()’ was used. (#8248)
- mcheck_jm_0010_a: The check parameters MAAB.jm_0010_a.AllowedPrefixOrSuffixForInport and MAAB.jm_0010_a.AllowedPrefixOrSuffixForOutport have been introduced, so as to insert those prefixes and suffixes that are allowed to be used in the port names throughout the model. (#8313)
- mcheck_sdt_sa003: The check parameter SDT.sa003.AllowedClassForConstant has been introduced. Now the control signal of the Switch block can originate from a TargetLink Constant block with the variable class defined in the check parameter. (#8486)
- mcheck_misra_slsf_006_b: The TargetLink documentation block ‘Autodoc Customization’ is excluded from the check analysis. (#8299)
- mcheck_misra_slsf_022_a: The check gave a failed finding for missing Model Info blocks on the top-level of Variant Subsystems. This has been fixed. (#8312)
- If a block had a named constant but its block name was different from the named constant, then the check gave no failed finding if there was another block in the same subsystem whose name was the same as this named constant. This has been fixed. (#8298)
- The check can now handle wildcard entries in check parameters.
- The parameter ‘Sample time’ is excluded from the check analysis for all blocks.
- mcheck_sdt_sc006: The check aborted when analyzing Inport blocks that have no signal connected, as e.g. Inport blocks on the top-level of Variant Subsystems. This has been fixed. (#8314)
- mcheck_na_0008: The attempt to automatically repair signal lines related to library blocks triggered a check abort. The check now returns an unrepaired finding. (#8318)
- mcheck_ds_0067: The check aborted while evaluating the compiled size of specific Stateflow data items. Now, MXAM gives a warning finding instead. (#8248)
- mcheck_misra_slsf_025_a_1: Due to the incorrect setting of the find_system parameter ‘LookUnderMasks’=’graphical’ the check did not analyze each model level. This has been fixed. (#8374)
- mcheck_db_0140: The check gave an incorrect failed finding for the ‘Table’ property of TL_Lookup2D blocks. This has been fixed. (#8273)
- mcheck_misra_slsf_006_c: Bitwise Operator blocks got a failed finding for the ‘BitMask’ property even if the property ‘UseBitMask’ was set to ‘off’. This has been fixed. (#8336)
- mcheck_misra_slsf_027_e: The check gave a false positive finding for signals inside library blocks if the corresponding output signal of the library block was named. This has been fixed. (#8398)