MES Model Examiner® (MXAM)
MES Model Examiner® - Release Notes
V11.0.0 July 2025
Workflow
Improved Analysis Framework
Introduced new hook function mxam_hookSelectSubsystems to programmatically determine the analyzed system.
Optimized check execution runtime through improved model cache handling for referenced models.
Optimized the check rerun execution time by deactivating the model compile step if not necessary for the selected check(s).
Enhanced clarity and traceability of error messages.
GUI Enhancements for Project Configuration
Improved the ‘Project’ perspective with a new arrangement of the Project Overview and Project Settings area.
Improved the ‘Project Guidelines’ perspective by now showing the ‘Tags’ section for Checks and Guidelines. (#12824)
Added a warning if in the ‘Project Guideline Documents’ tab, the option ‘Restore Document Selection’ is used but justifications are still present. (#12784)
Performance
Reduced loading time and improved UI responsiveness when starting MXAM or changing libraries. (#12869)
Improved performance of report loading in continuous mode by disabling structure analysis in MATLAB. The structure will now be used from the report directly.
Simply Better Models
New dSPACE Guideline Document for TargetLink 2024-B available
All guidelines of the new dSPACE Guideline Document (TL 2024-B) are now available in MXAM. (#9793)
Ensure Software and Model Quality with MISRA AC SLSF, MAB, MES Functional Safety, and dSPACE TargetLink Guidelines
Make sure control ports and documentation blocks are placed at consistent and prominent locations with guidelines db_0146, misra_slsf_033 and misra_slsf_030 (mcheck_mes_slsf_2400).
Ensure deterministic and transparent signal handling across different sample rates with guideline misra_slsf_058 (mcheck_misra_slsf_058).
Check the execution environment for the MXAM analysis with guideline mes_slsf_9006 (mcheck_mes_slsf_9006).
Improve readability and workflow by using a common naming convention in filenames with guideline mes_slsf_9100 (mcheck_mes_slsf_9105).
Enforce usage of Tapped Delay/Delay blocks to replace chains of directly connected Unit Delay blocks for better readability with guideline jc_0624 (mcheck_jc_0624).
Implement scaling specifications for intermediate results to enable proper fixed-point code generation, following guideline TL_RULE_MATH_LIB_PROD_BLOCK_SETTINGS (mcheck_ds_0030).
Ensure clear distinction between buses and other signals carrying multiple data elements to provide forward compatibility with guidelines misra_slsf_016 and misra_slsf_016_d (mcheck_mes_slsf_2801).
Prevent data ambiguity when using Simulink signal objects to maintain model clarity with guideline jc_0644 (mcheck_jc_0644).
Improve readability with optimal Simulink model appearance settings using guidelines na_0004, misra_slsf_019 and misra_slsf_019_abc (mcheck_mes_slsf_9007).
Check Improvements
MXAM correctly traces into model reference subsystems to retrieve data type information. (#12398)
jc_0231: The check now ignores standard block names from the TargetLink library to prevent superfluous findings. (#12855)
db_0143: The check now implements a more consistent distinction between structural subsystems and basic blocks. Model Reference blocks and linked subsystems are now considered as structural subsystems. (#12407)
mes_slsf_1700: The check now supports the definition of a set of forbidden blocks based on block-specific parameter settings.
Custom Check Development
Simplified creation of MXAM findings for robust links to the model through the improved function mxam_newcritem.
MATLAB Compatibility Upgrade
MXAM now supports MATLAB R2025a.
Simplified and Accelerated Model Editing
Updated MES Model & Refactor® (MoRe) to version 5.3.0 (Functional Safety Solution only). See the latest additions to MoRe here .
Compatibility Considerations
To programmatically determine the analyzed system during runtime use the new hook mxam_hookSelectSubsystems instead of mxam_hookPreArtifact. mxam_hookPreArtifact does not change the analysis focus any longer but it may still be used for general purposes.
Rebranding Update
The ‘MISRA Compliance’ edition is now re-named to ‘Reduced’ edition.
Bug Fixes
Framework Bug Fixes
Fixed an issue where a gray area was shown instead of the ‘Project’ configuration or the ‘Library Editor’ tab. (#12132)
Improved UI rendering on Linux to eliminate gray areas in the ‘Details’ view. (#11598)
Fixed an issue that caused a dialog to open off-screen, blocking interaction with MXAM. (#12837)
Fixed an issue to improve report accuracy by ensuring model metric values for referenced models are correctly exported. (#12936)
Disabled the maximum size limit during parsing of XML files. (#12865)
Fixed an issue such that analysis triggered via the ‘runProject’ webservice correctly reflects MXAM’s ‘busy’ state, providing accurate feedback during execution. (#12923)
Adapted sorting for element findings so that capitalization of letters is now ignored. (#12888)
Adapted persistent path for file locations like report or project file to be machine-independent. (#12291)
Fixed parameter order to match the original order defined as in the document element. (#11115)
Fixed an issue where a tooltip was sometimes closed after 10 seconds. All tooltips are now closed after 60 seconds or after leaving the mouse cursor of the tooltip area. (#12284)
Fixed issues that prevented drag and drop of document items in the library editor. (#12817, #12804)
Fixed an issue that sometimes occurred when justifications were used for the project document, resulting in an exception error dialog. (#12793)
Fixed an issue that sometimes occurred during the export guideline documents with specific option selections, resulting in unspecific error entry in the log file. (#12795)
Fixed an issue that freezes MATLAB under some conditions when a MATLAB batch script was executed. (#12966)
Guideline and Check Bug Fixes
mcheck_sdt_sa001: Fixed an issue where the check sometimes detected too many inputs to the TargetLink NOT operator. (#12777)
mes_color_001: Fixed an abort for a color scheme struct containing the field ‘SL’ but not the field ‘SF’. (#12805)
mcheck_mes_cgtl_4114, mcheck_mes_cgtl_4209, mcheck_mes_cgtl_4307: Fixed a potential abort for specific project settings where TargetLink libraries might not load between check executions. (#12836)
mcheck_misra_slsf_036_c: Fixed a potential abort on models without atomic subcharts. (#12951)
mcheck_misra_slsf_030_ab: Fixed an issue where the check did not report findings on the TargetLink Simulation Frame subsystem (TL_SimFrame). (#12902)
mcheck_mes_cgtl_4306: Fixed a potential abort for Stateflow data items where the user-defined range or data type range is missing in its source block. (#12970)
V10.5.1 April 2025
Simplified and Accelerated Model Editing
Updated MES Model & Refactor® (MoRe) to version 5.0.1 (Functional Safety Edition). See the latest additions to MoRe here .
V10.5.0 April 2025
Workflow
Customization
Added a toolbar to the Markdown editor, for inserting images, links and tables.
Added several shortcuts to the Markdown editor (Ctrl + H for heading, Ctrl + B to bolden, Ctrl + I to italicize).
Added Markdown support for guideline document descriptions.
Extended Webservice
Added webservice endpoints to change the project, start an analysis, load a report and change the perspective in the MXAM GUI.
Runtime Improvements
To improve analysis time, the caching of central model data was extended to Stateflow Charts, Data Store Memory blocks and AUTOSAR configuration data.
Simply Better Models
Implement Defensive Programming Techniques in Simulink and Stateflow with MISRA AC SLSF:2023 Guideline
Prevent unintended data retention from previous executions, and maintain consistency in Stateflow outputs with guideline misra_slsf_060 (mcheck_mes_slsf_3501).
Ensure Clean Layouts and Readable Modeling Patterns in Stateflow and Simulink with MISRA AC SLSF:2023 and MAB 5.0 Guidelines
Ensure a clear distinction in modeling by using Simulink for data flow and control systems and Stateflow for complex logic, sequencing, and state-based behavior with guidelines misra_slsf_001 and misra_slsf_001_a (mcheck_mes_sl_generic_0001, mcheck_mes_sf_generic_0001).
Ensure a clean layout in Stateflow by preventing element and transition crossings and overlap with guidelines jc_0904, misra_slsf_050, db_0129 and misra_slsf_053 (mcheck_mes_slsf_3401, mcheck_mes_slsf_3402).
Ensure transparency in identifying modified block parameters by using visible block annotations with guidelines misra_slsf_061 and db_0140 (mcheck_mes_slsf_2600).
Increase readability of subsystems with masked icons by making port names visible and legible with guideline misra_slsf_032 (mcheck_mes_sl_generic_0001).
Simplified and Accelerated Model Editing
Updated MES Model & Refactor® (MoRe) to version 5.0.0 (Functional Safety Edition). See the latest additions to MoRe here .
Compatibility Considerations
The deprecated MAAB 3.0 guideline document “maab_3_0” and all related guidelines will be removed in future MXAM versions. Since 2020, the document is superseded for all MATLAB versions by the newer MAB 5.0 document, which is already available in MXAM.
To reduce execution time and facilitate major GUI workflows, automatic model compilation has been deactivated for Report Import, Rerun, Quickrun and Repair. (#12748)
The deprecated MISRA AC SLSF 1.0 (2009) guidelines misra_slsf_027_ab, misra_slsf_027_cd, misra_slsf_027_fgi and misra_slsf_027_h have been removed as they are superseded by misra_slsf_027 (MISRA AC SLSF:2023) and misra_slsf_027_abcdfghi (MISRA AC SLSF 1.0). Ensure proper check selection and parametrization in the guideline document to maintain original check behavior.
The deprecated MXAM version (v01) of the MISRA AC SLSF 1.0 (2009) guideline document “misra_ac_slsf_1_0” was removed as it is superseded by the newer document “misra_ac_slsf_2023” (MISRA AC SLSF:2023). Users who want to follow MISRA AC SLSF Version 1.0 (2009) may also switch to MXAM version v02 of “misra_ac_slsf_1_0”.
Bug Fixes
Framework Bug Fixes
Fixed timeout issue on Linux during library and report navigation. (#12569)
Fixed an issue where configurations from the mxam.ini were not being used for headless execution. (#12684)
Fixed an issue where the output of the actual clone group index number failed with an exception. (#12692)
Fixed an issue where the library editor may be unintentionally flagged as having a dirty state. (#12509)
Fixed HTML links in the report, if the same check is being used from different guidelines. (#12582)
Disabled model subsystem redirection via mxam_hookPreArtifact for rerun, repair and report import. (#12637)
Fixed an issue where aborted findings are generated if an ASCET module is marked as a reference. (#12603)
Fixed wrong text formatting issues in some guideline and check description parts. (#12484)
Fixed an issue in the LicenseManager regarding spaces around the separator if multiple license servers or files are configured. (#12410)
Fixed a connection issue when closing the connection between MATLAB and MXAM. (#12558)
Fixed an issue when modifying a check or guideline justification in the project document. (#12079, #12770)
Fixed an issue where special characters in a check or guideline justification are escaped for XML (#12769)
Fixed an issue where selecting unmapped annotations that don’t reference a check caused an error. (#12741)
Fixed an issue where MXAM freezes for very long finding messages by limiting the maximum size length shown in the UI. [#12778]
Fixed an issue where a MATLAB batch script generated by MXAM would not run without paths set. [#12792]
Guideline and Check Bug Fixes
mcheck_misra_slsf_057: Fixed an issue where the check may have given false positive findings for ‘Bitwise Operator’ blocks when the source block is a ‘Shift Arithmetic’ block.
Added support to get data type information from objects defined in the Simulink Data Dictionary. (#12635)
mcheck_mes_slsf_2202: Fixed an abort due to invalid Simulink handle when a source block is not found. (#12661)
mcheck_na_0002: Fixed an issue where the check reported an unjustified review finding for a block with a Multiport Switch source block that receives multiple input signals from the same source. (#12678)
mcheck_mes_jm_0002_a: Fixed a false positive finding on DataType Conversion blocks when output datatype is configured as ‘Enum’, ‘Expression’ or other user-defined datatypes. (#12677)
mcheck_cgtl_4307: Fixed an abort for Truth tables and Stateflow data items with scope “Data Store Memory”. (#12670)
mcheck_sdt_sc007_a: Fixed a false positive finding when Selector blocks are used. (#12068)
mcheck_mes_slsf_1104: Tracing through linked and masked Variant Subsystem blocks is now handled correctly. (#12624)
mcheck_ds_0100, mcheck_na_0002: Fixed an abort for certain modeling patterns involving Switch, Multiport Switch, or MinMax blocks. (#12767)
mcheck_misra_slsf_053_k: Fixed abort and GUI freeze for unnamed Stateflow States. (#12781)
mcheck_db_0129_c: Fixed abort due to Matlab R2019b incompatibility. (#12779)
V10.4.0 January 2025
Workflow
Improved Report Perspective
The check’s solution for a failed finding is now available in the Finding Details View to simplify the process of correcting models towards guideline compliance.
Optimized the layout of the Finding table by reorganizing the columns by relevance.
New Markdown Editor for Creating and Editing Custom Guidelines and Checks
The new document editor ensures higher usability to ease guideline and check description editing. Documents can now be edited as Markdown or as HTML. A Markdown reference guide is available in the documentation. The Markdown editor replaces the former rich text editor, which had usability issues.
Improved Navigation from Report to Model
The report can now link directly to Simulink’s Model Configuration Parameters dialog. (#12481)
MATLAB and TargetLink Compatibility Upgrade
MXAM now supports MATLAB R2024b and TargetLink 2024-B.
Simply Better Models
Ensure Consistent and Readable Modeling Patterns in Stateflow and Simulink with MISRA AC SLSF:2023, MAB 5.0, and dSPACE Guidelines
Ensure readability in Stateflow through well-established flow chart layouts and consistent positioning of conditions and actions with guidelines misra_slsf_051 and db_0132 (mcheck_mes_slsf_3400).
Model uniform signal flow direction and block orientation using guidelines misra_slsf_031, misra_slsf_031_a and db_0141 (mcheck_mes_slsf_2501, mcheck_mes_slsf_2500).
Implement Defensive Programming Techniques in Simulink and Stateflow with MISRA AC SLSF:2023, MAB 5.0, and dSPACE Guidelines
Prohibit the use of Stateflow transition actions with guidelines misra_slsf_043, misra_slsf_043_b, db_0132 and TL_RULE_STATEFLOW_TRANSITION_ACTIONS (mcheck_mes_slsf_9104).
Ensure that blocks have an initialization parameter explicitly defined with guidelines misra_slsf_007 and misra_slsf_007_a (mcheck_misra_slsf_007_a).
Improve Stateflow Architecture with MISRA AC SLSF:2023 and MES Guidelines
Minimize complexity of Stateflow charts with guidelines misra_slsf_059 and mes_arch_1302 (mcheck_mes_arch_1302_sf).
Ensure Consistent Settings in Simulink with MISRA AC SLSF:2023, MAB 5.0, and dSPACE Guidelines
Encourage the use of consistent and up-to-date diagnostic settings in Simulink with the guidelines misra_slsf_004, jc_0021 and TL_RULE_GENERAL_DIAGNOSTICS (mcheck_mes_slsf_9005).
Ensure consistent font settings in Simulink with guidelines misra_slsf_020 and misra_slsf_020_abcd (mcheck_misra_slsf_020_bcd, mcheck_mes_color_001).
Ensure consistent Simulink window appearance settings with guidelines misra_slsf_019 and misra_slsf_019_abc (mcheck_misra_slsf_019_ac).
Extended the Assisted and Automated Safe Repair of Findings
Automatically repair findings for data types on Simulink Logical and Relational Operator with guideline sdt_sa002 (mcheck_sdt_sa002).
Guideline and Check Improvements
mcheck_db_0032_b, mcheck_misra_slsf_029_be will not report self-overlapping of lines as Simulink version upgrades lead to numerous auto-generated invisible self-overlaps. (#12234)
Improved the determination of information from non-scalar signals. (#12312)
mcheck_db_0146, mcheck_misra_slsf_030_c: Improved the check parameter validation. (#12418)
mcheck_sdt_ic002: Dependency of the setting ‘UnderspecifiedInitializationDetection’ on other model settings is now considered. (#12338)
mcheck_mes_slsf_9001: The default expected value for ‘UnderspecifiedInitializationDetection’ is updated to ‘Simplified’. (#12338)
mcheck_sdt_sa001: Improved the handling of Data Type Conversion blocks as source blocks. (#12329)
mcheck_misra_slsf_027_j: New check parameter introduced to improve handling of signals from constant blocks with referenced variables.
Added support to get the base data type of Simulink.AliasType objects defined in the Simulink Data Dictionary. (#12365)
mcheck_jc_0061: Blocks named as their MaskType are now recognized as generically named. Additionally, the ‘TL_Function’ block is added to the check parameter as a visually identifiable block type. (#12430)
mcheck_jm_0002_a: Improved the handling of constant blocks with vector values. (#12542)
mcheck_mes_slsf_005_a and mcheck_mes_slsf_005_d: Updated check parameters to allow ‘Add’ blocks in both plant and controller models. (#12570)
Simplified and Accelerated Model Editing
Updated MES Model & Refactor® (MoRe) to version 4.26 (Functional Safety Edition). See the latest additions to MoRe here .
Security
Resolved CVE-2021-39144 XStream Issue. (#11851)
Bug Fixes
Framework Bug Fixes
Fixed an issue where the Annotation Map Table was shown in a wrong layout. (#12411)
Removed “Add Manager” button for public projects, as public projects don’t have Managers (#12408)
Fixed auto formating in the License Manager (#12410)
Guideline and Check Bug Fixes
Hidden blocks under MATLAB Function blocks will now be excluded from the analysis. (#12401)
mcheck_sdt_sc004_c: Fixed abort due to unavailable Fixed Point Designer license. (#12399)
mcheck_jm_0002_a: The check no longer aborts if there are TargetLink blocks in the model without a valid TargetLink installation. (#12466)
V10.3.1 October 2024
Bug Fixes
Fixed handling of absolute paths in the LicenseManager. Colon and semicolon were used as path separators indiscriminately, which e.g. duplicated to entries Windows. Now semicolon is used as path separator on Windows only and colon is used as path separator on Linux only. (#12393)
Fixed REST API for automated analysis. The request is accepted if MXAM is not in a busy state, or MXAM rejects the request by responding with a correct busy state. (#12034)
V10.3.0 October 2024
Simply Better Models
Strengthened Strong Typing Enforcement with MISRA AC SLSF and MAB Guidelines
Avoid implicit type casting for all relevant blocks with guidelines misra_slsf_002 and jc_0651 (mcheck_mes_slsf_2202).
Ensure the equality of data types in Data Store Write and Data Store Memory block with guidelines misra_slsf_002, misra_slsf_002_a and jc_0651 (mcheck_mes_slsf_2203).
Prohibit unsigned integer and scaled fixed-point data types for Abs blocks with guideline jc_0805 and check mcheck_mes_cgec_2201.
Added handling for misconfigured enumeration types in mcheck_sdt_sa004_b. (#12350)
Improved Robustness of Stateflow Charts with Defensive Programming Techniques
Prohibit entry and during state actions in Stateflow state charts with guideline misra_slsf_044.
Disallow Simulink Function Blocks in Stateflow charts with check mcheck_mes_slsf_2700 covering guidelines misra_slsf_056 and TL_RULE_STATEFLOW_SIMULINK_FUNCTION.
Discourage the use of temporal operators in transitions in Stateflow charts with guideline misra_slsf_043_j.
Improved reliability and usability of check mcheck_jc_0711 through updated implementation.
Increased Model and Chart Readability with MAB and JMAAB Compliant Style Guidelines
Verify that junctions in a stateflow chart are of the same size as set by parameter ‘MAAB.jc_0907.JunctionSize’ with guideline jc_0907.
Assure that the arrows of transitions in a stateflow chart are of the same size as set by parameter ‘MAAB.jc_0902.ArrowSize’ with guideline jc_0902.
State-of-the-art implementation of check mcheck_mes_slsf_1108 covering guideline db_0142 to address more and newer use cases.
Improved check parameter usability and modernized implementation of check mcheck_jc_0061 covering guideline jc_0061.
Enhanced guidance for checks mcheck_db_0032_b and mcheck_misra_slsf_029_be with precise finding messages and documentation. (#12234)
New Document Modeling Guidelines for dSPACE TargetLink - Version 2023-B is Available
The document including guidelines for “Modeling Guidelines for dSPACE TargetLink - Version 2023-B” is now available in MXAM.
Enhanced Vector Signal Analysis
Control the generation of vector signals with mcheck_mes_slsf_2800 covering guidelines misra_slsf_015 and na_0010.
Added support for dynamic values (-1) in the “Number of outputs” parameter of Demux blocks. (#11859)
Consistent Solver Configuration in Models
Ensure that the model has the correct solver settings as specified in the parameters ‘MES.mes_slsf_9004.SolverType’ and ‘MES.mes_slsf_9004.SolverName’ with check mes_slsf_9004 covering guidelines misra_slsf_003 and TL_RULE_GENERAL_SOLVER.
Enhanced Support for Stateflow elements in Metrics Calculation
Metrics Analysis now includes Simulink States (Stateflow.SimulinkBasedState) in Stateflow models. (#12260)
Compatibility Considerations
The check mcheck_mes_cgtl_4107 was removed and is replaced by new check mcheck_mes_slsf_2700.
The guideline mes_cgec_2201 was removed. We recommend to use guideline jc_0805.
The check parameter ‘MAAB.jc_0061.Blocks2Check’ was re-named to ‘MAB.jc_0061.BlocksWithEvidentTypes’. The default value and the entry format have been changed so that custom values created in old releases should be adapted.
Simplified and Accelerated Model Editing
Updated MoRe to version 4.25 (Functional Safety Edition). See the latest additions to MoRe here .
Automation
Improved CI Automation
When MATLAB closes during a CI execution, MXAM will also close to prevent it blocking later processes. This behavior is triggered by using the headless mode or b_keep_open=false. (#12007)
Better Accessibility of the Sample Batch File
A revised version of mxamapi_batch_example_run.m has been moved to the “<MXAM_ROOT>/doc/examples” folder. To use this as a starting point for your analysis, we recommend that you copy this file to your VCS.
Improvements in Batch Workflow
Type checking has been introduced for batch execution options and for mxam_settings(<name>, <value>) to ensure type-safe execution and avoid subsequent errors. (#12091)
Prevented potential abort in checks during batch execution. (#12123, #12179)
Workflow
GUI Workflow Enhancements to Improve User Experience
Wizards now remember their size and location for a consistent user experience. (#12115)
The Project Details table has been reorganized to only require 2 columns, for better visibility. (#12028)
Improved visibility of license error messages in error dialogs. (#12155)
Updated License Manager to Improve Reliability and Transparency
The license manager now helps when users need to configure licenses in a MES_LICENSE_FILE environment variable instead of the normal configuration. Users can now see the variable’s value and edit it, or delete it in order to switch to the normal configuration.
Node-locked licenses can now be used more reliably. Previously, some host IDs were not accepted by the Flexera licensing system, which resulted in check out failures.
Bug Fixes
Framework Bug Fixes
Fixed the RichTextEditor Caret reset Bug. (#11939, #12217)
Fixed several unexpected warning messages related to the MoRe installation. (#12120, #12212)
mxamapi_getResult can be called without a jobUid as input. It will default to the last job executed. (#12236)
Tables are now displayed properly when exporting a Guideline Document in PDF format. (#12151)
Fixed rare false positives of mxam_isAvailable(). (#12145)
Set java.rmi.server.hostname Java property to 127.0.0.1 automatically to avoid VPN connection issues. (#12177)
Fixed handling of UserDir entries with spaces. (#12222)
The b_bypassProxy setting has been removed. MXAM now only bypasses MATLAB proxy settings for internal communication, if proxy settings have actually been set. The user is warned about the bypass. Any proxy settings are restored immediately, so that MATLAB works like before. (#12196, #11732, #12105)
Correctly unlock m-files on teardown. (#12148)
Correctly handle custom UserDir on license manager error. (#12156)
Fixed incorrect date formatting in history sections of some guideline documents. (#12265)
Clicking on an external link will open it in the users browser, instead of attempting to open it within MXAM. (#12351)
Fixed incorrect handling of artifact structures, which were inadvertently flattened in some cases. (#12275)
The ASCET Adapter now properly recognizes Hierarchies and their related Sequence Calls, when they are inside Statement blocks. (#12241)
The ASCET Adapter now properly recognizes outer Sequence Calls of Statement blocks, which were previously missing in the call Sequence. (#12241)
Guideline and Check Bug Fixes
Fixed an issue where several checks could enter an infinite loop, when analyzing expressions with outer parentheses. That also fixed an issue where the assignment of bitshift operators in the C action language was not determined correctly. (#12160)
Fixed an issue where several checks could report false positive findings for hidden blocks inside ‘Truth Table’ and ‘State Transition Table’. (#12136)
Fixed an issue where the metrics checks matlab_mxray_130* aborted on Model Reference hierarchies with Function Element blocks. (#12259)
Fixed an issue where mcheck_sdt_sc004_c could enter an infinite loop consisting of a Selector, a Delay and a Mux block. (#12001)
Fixed the determination of the correct region and range of blocks and the automatic repair for checks mcheck_misra_slsf_030_c and db_0146. (#12081)
Fixed an issue where mcheck_mes_slsf_1102 could abort when commented blocks were connected to uncommented blocks. (#12168)
Fixed potential abort in mcheck_sdt_sc008 when when analyzing bus signals. (#12012)
Fixed an issue where mcheck_na_0020 could report a false positive failed finding for a Variant Subsystem that contains Subsystems with unused Inports below the first level of the Subsystem hierarchy. (#12159)
Fixed link actions to unnamed lines not resolving in check mes_slsf_9102. (#12295)
Fixed an issue where mxray-checks aborted due to incorrect handling of trigger ports. (#12090)
V10.2.0 July 2024
Simply Better Models
Efficient TargetLink Code Generation for Look-Up Table Blocks with New dSPACE Guidelines
Optimize Look-Up Table code by reusing variables across different Look-up Tables with the same axis or table values with check mcheck_cgtl_4309 covering guideline TL_ADV_LUT_TABLE_VECTOR_MERGE.
Improve efficiency and safety across your Software projects by enforcing the usage of a set of allowed TargetLink data dictionary variables with mcheck_cgtl_4000 covering guideline mes_cgtl_4000.
Enable table function code reuse by ensuring a consistent configuration of Look-Up Tables with mcheck_mes_cgtl_4308 and mcheck_mes_cgtl_4000 covering guideline TL_ADV_LUT_COMMON_SETTINGS, and the associated automated repair feature.
New Guideline Document “Towards MISRA C:2012/MISRA C:2023 Compliance with TargetLink and MXAM” is available
The new guideline document helps software projects that require MISRA C compliance of the automatically generated code to significantly reduce the number of MISRA C violations at code level.
Improved Maintainability with Consistent Naming of Model Elements
Ensure that input signals of BusAssignment blocks match the names of the assigned bus elements with guideline mes_slsf_2104.
New repair functionality added to mcheck_mes_slsf_1102 to name signals at a source consistently.
Improved mcheck_mes_slsf_9101 to support the ‘Hide Automatic Names’ feature of blocks. (#11937)
Improved the repair of check mcheck_misra_slsf_026_a to also repair the ‘Hide Automatic Names’ property of blocks if needed.
Improved check mcheck_mes_slsf_1106 to also allow the value ‘FromPortIcon’ for block property ‘ShowPortLabels’ when all port block names are non-generic. (#11969)
MISRA AC SLSF-Compliant Language Subsets in Plant and Controller Models
Ensure that a controller model only consists of supported blocks with mcheck_misra_slsf_005_a covering guideline misra_slsf_005.
Ensure that a plant model only consists of allowed blocks with mcheck_misra_slsf_005_d covering guideline misra_slsf_005.
Strengthened Strong Typing Enforcement with MISRA AC SLSF Guidelines
Ensure that inputs of bitwise operator blocks are of data type unsigned integer with misra_slsf_057.
Simplified review of the use of Stateflow elements
Support the review of sub-chart usage in Stateflow with mcheck_sf_generic_0001 covering guidelines misra_slsf_039 and misra_slsf_039_b.
Support the review of S-Function usage in Stateflow with mcheck_sf_generic_0001 covering guideline misra_slsf_014.
Simplified and Accelerated Model Editing
Updated MoRe to version 4.19 (Functional Safety Edition). See the latest additions to MoRe here .
Automation
Simplified license configuration check with License Manager version 2.3
New CLI options enable you to set and check the current license configuration setup without automatically using the graphical user interface.
It is now possible to test the license configuration if Flexera variables (LM_LICENSE_FILE, MES_LICENSE_FILE) are defined using the “Test Server” button in the License Manager.
Improvements in Batch Workflow
Changed the default value of b_synchronousExecution to true, as the default of asynchronous behavior may not be expected by the user.
Importing a report in ‘continue work’ mode will now automatically switch to ‘read-only’ mode if the current library content of MXAM does not contain the data of the report. (#11905)
Added loading of MXAM paths in MATLAB before running a batch analysis to avoid path problems. (#11979)
Performance
Reduced Runtime of Model Analysis
Pre- and postprocessing of checks has been improved to achieve a better runtime performance.
Improved the signal tracing through variant subsystems to achieve shorter runtimes. (#11976)
Improved the runtime performance of model analysis by integrating state-of-the-art MATLAB functionalities. (#11481, #11947)
Improved runtime of signal naming check mcheck_mes_slsf_1102. (#12063)
Workflow
Increased Usability for Working with Guideline Documents
Project specific justifications for selections can now be added to the export of guideline documents by selecting the appropriate option when exporting the document. (#11986)
Guideline documents now have a description field visible in the Details view, that provides general information about the purpose of the document.
Updated Starter Set Documents and Default Projects
New and state-of-the-art guidelines have been added to the documents ‘MXAM-Starter Set for TargetLink Users’ and ‘MXAM-Starter Set for Embedded Coder Users’.
Refined names of default projects to a consistent and understandable format.
Simplified License Setup during Installation
The installer now has a new page to allow for easy configuration of a license via our License Manager.
Improvements in GUI Workflow
Simplified handling of document trees in views by adding an option to expand the visible tree to certain types instead of depth levels.
Fixed context menu in guideline editor with wrongly activated option “Remove element” for restricted documents. (#12111)
Consolidated behavior for creating of folders when saving MXAM files. (#11917)
Compatibility Considerations
Removed deprecated classic check repair. All custom checks with old automatic repair ability must be converted to the new finding-based repair API to retain repairability.
It is no longer possible to select MATLAB versions that are incompatible with MXAM in the adapter preferences. When configuring MATLAB versions directly, an error (below lower bound) or warning (above upper bound) is raised with a link to the compatibility table. In addition, connecting to MATLAB versions below the lower bound is no longer allowed in any mode.
Updated template for implementing custom checks, located in ‘<MXAM>docm-checktemplates’. The old template is still supported, but will be deprecated in a future release.
Bug Fixes
Framework Bug Fixes
Fixed synchronization of compress button in export and save dialogs for reports. (#11917)
A warning dialog will be shown if the user tries to edit a non-existing document out of the Project Settings page. (#11928)
Updated JMBridge to 2.4 with fixed polling mode and improved slash handling in subsystem names. (#11955)
Fixed Simulink menu integration in combination with different initialization for paths of MXAM and MoRe in MATLAB. (#11994)
Improved handling of Java class path in MATLAB when using both, MXAM and MoRe. (#11962, #11995)
Removed customized tool tip handler to fix unexpected MXAM crash in some rare cases.
Fixed query and error handling during initiation of MXAM in MATLAB. (#12015)
Improved error message in case of insufficient memory when exporting a report. (#12049)
Adapted MXAM working directory to the actual installation directory to avoid java class errors. (#12058)
Simplification of Ignore List dialog to always open the file in MXAM’s editor after creation. (#12044)
Fixed an error during reconnection after MXAM idling. (#12077)
Fixed a timing issue when trying to repair closed models in MATLAB. (#12060)
Enabled repairing of findings in referenced models. (#12085)
Guideline and Check Bug Fixes
Fixed an issue where mcheck_na_0002 reported unjustified review findings for mask parameters of type “Checkbox”. (#11752)
Fixed an issue where mcheck_na_0002 reported unjustified review findings for TL UnitDelay blocks with Output Type “Int32”. (#11752)
Fixed an issue where the tracing through BusAssignment blocks in mcheck_mes_slsf_1102 and mcheck_mes_slsf_1103 caused an aborted finding. (#11892)
Fixed an issue where runtime erros occurred when the global parameter AnalyzeAutosarRunnableSubsystemsOnly was set to true and the analyzed artifact was a subsystem. (#11981)
Fixed an issue where the data type of TL_Signum blocks with default class was not read correctly in TargetLink 5.1. (#12039)
Fixed an issue where mcheck_tl_pr20111118_02 aborted when a model consisting of a single TL_Function block with ‘Make function reusable’ option activated was analyzed. (#11993)
Fixed an issue where bus signals were not analyzed correctly in mcheck_jc_0650 when a switch block had a bus signal as input. (#12004)
Fixed an issue where several checks aborted on AUTOSAR composition models when the parameters Global.AnalyzeAutosarRunnableSubsystemsOnly and Global.ResolveModelreferences are set to true. (#12101)
V10.1.1 May 2024
Tool Framework
Bug Fixes
Fixed inability to connect to MATLAB when using b_synchronousExecution in batch mode (#11955).
Fixed document export failure with unchecked “Unselected guidelines and checks” (#11986).
V10.1.0 April 2024
Tool Framework
Used ASCET installation can now be configured
Added option to select an ASCET version from the installed versions, or the last opened one, in the preferences.
Added CLI parameter -ascetVersion to select the ASCET version from headless mode.
Improvements
Updated MoRe to version 4.17.
Added web service request to export guideline documents via /guidelineDocExport POST.
Added MATLAB API mxamapi_exportGuidelineDocuments to also export guideline documents.
Added filter to show only repairable findings in the report perspective.
Added CLI parameter -ci or -automation to ensure that MXAM is running in automation mode. This requires an MXAM_CI_EXEC license feature.
Project specific document selection can now be justified with comments.
Updated installer dialog in a cleaner and faster way.
Accelerated analysis progress by updating the handling of mes_progress. (#11754)
Cleaned up obsolete global parameters.
Added warnings for when the used Java version is not compatible with MXAM.
Updated Log4j to version 2.23.1.
Bug Fixes
Changed the execution order to avoid hook handling on wrong artifact. The preArtifactHook is now executed before the artifact structure analysis. (#11679)
Removed creation of link to the user directory. (#11689)
Fixed incorrectly formatted multilinks in finding details that occurred randomly. (#11062)
Fixed potential caching problems when using the ResolveModelReferences parameter. (#9656)
Fixed recognition of old MoRe installations. (#11888)
Guidelines, Checks, and Documents
New MISRA AC SLSF:2023 Guidelines Available
All guidelines from the new “MISRA AC SLSF:2023 - Modelling design and style guidelines for the application of Simulink and Stateflow” document are now available in MXAM.
Improved Performance of Data Flow Analysis
Checks that require thorough signal tracing, such as for guidelines sdt_sc006 or sdt_il001, have been improved to achieve shorter execution times.
Extended the Assisted and Automated Safe Repair of Findings
New repair functionality has been added to checks for the following topics:
Model Info Appearance: mcheck_misra_slsf_022_a
Stateflow Chart Data Typing: mcheck_misra_slsf_034_c
Stateflow Chart Initialization Settings: mcheck_misra_slsf_034_d
Usage of “From” and “Goto” Blocks - Tag: mcheck_misra_slsf_018_b
TargetLink Specifications for Stateflow Input Variables: mcheck_mes_cgtl_4301
Duplicated Inports: mcheck_sdt_il001_b, mcheck_ds_0038
User Notification for Custom Check Implementations
The framework for the check-based repair will be discontinued in the upcoming release MXAM 10.2 (July 2024). Please refer to MXAM’s developer guide for details on the implementation of finding-based repairs. The check-based repair functionality has been superseeded by the finding-based repair feature since MXAM 9.0.
New Checks Available Covering MAB Guidelines (5.0)
Ensure that calibration parameters are configured as named constants with guideline jc_0645.
Ensure the correct value ranges for inputs of Sqrt, Reciprocal Sqrt blocks, and Math blocks with parts c, d, and f of guideline jc_0805.
Ensure the saturation on integer overflow for Abs and TL_Abs blocks with part a of guideline jc_0805.
Ensure the correct usage of bitwise and logical operators in Stateflow with guideline na_0001.
New Checks Available Covering dSPACE Modeling Guidelines for TargetLink (Versions 5.0, 5.1, 5.2 and 2022-B)
Ensure data type consistency between input and output signals of Discrete Transfer Fcn, Discrete State Space, and Discrete Filter blocks with mcheck_mes_cgtl_4211 covering guideline TL_RULE_DISC_LIB_TRANSFER_STATESPACE_FILTER_BLOCKS.
New Starter Set Documents
Explore, test, and apply a careful selection of up-to-date modeling standards from MISRA, MAB, and MES using MXAM’s newly structured Starter Set documents for TargetLink and EmbeddedCoder users. The preconfigured projects StarterSetFS.mxmp and EmbeddedCoder.mxmp can be used to load the documents.
Improvements
Checks that include signal tracing and color checking were improved to perform faster.
The guideline TL_RULE_DISC_LIB_INTEGRATOR_SETTINGS now also checks for vector signal inputs to integrator blocks via the mcheck_ds_0023_a. (#11814)
The MAB 5.0/MAAB 3.0 guidelines na_0008 and na_0009 now reference the new checks mes_slsf_1102, mes_slsf_1103, and mes_slsf_1104 to improve the usability. (#11895).
The check mcheck_mes_cgtl_4301 was updated to properly identify Stateflow charts that are intended for reuse. The corresponding guideline TL_RULE_STATEFLOW_EXPLICIT_INPUT_SPEC is now checkable fully automatically.
The check mcheck_ar_0001 was updated to use filepaths relative to the model so that annotations can be mapped correctly. (#11807)
Changes
The check for guideline misra_slsf_052_a will now compare state names across the entire state machine (model) to better cover the guideline. (#11656)
Removed the shared parameters ‘MISRA_SL_SF.OperatorClasses’ of mcheck_misra_slsf_038_a and adapted check behavior to improve user experience. (#11756)
Merged functionalities of mcheck_misra_slsf_018_b_1 and b_2 into one check mcheck_misra_slsf_018_b.
To provide a better overview and simplify technical details, the global parameters have been restructured and the following parameters were removed as they are no longer used:
DebugInfo, UseCache, LogFilterStatistics, WarningLevels, NoteLevels, Progressbar step, Global.SkipTLBlockChildren, and Global.SkipSLObjectsInCharts.
The check mcheck_misra_slsf_038_b was refactored with new check parameters to increase usability.
Bug Fixes
Fixed an issue where the analysis of mcheck_na_0024 with enabled global parameter ‘Global.IgnoreBlocksByAttrFormatStr’ may have been corrupted if the model contained certain Stateflow elements. (#11821)
Fixed an issue where mcheck_mes_tl_pr20060928_17 would give false positive findings when variable groups named ‘Components’ were present in the TargetLink Data Dictionary. (#11678)
Fixed an issue where mcheck_misra_slsf_016_d would report false positive findings for Argument In / Argument Out, Model Reference and MATLAB Function blocks. (#11620, #8593)
Fixed an issue where mcheck_sdt_sc007_a aborted if the TargetLink Data Dictionary scaling definition of the port was not valid. (#11750)
Fixed an issue where mcheck_misra_slsf_042_d got stuck while analyzing Stateflow charts with looping transitions. (#11680)
Fixed an issue where mcheck_misra_slsf_026_a reported failed findings on block names that were not visible. (#11445)
Fixed an issue where mcheck_mes_slsf_2200 reported findings on Math blocks for functions that do not allow the Rounding Mode to be specified. (#11771)
Fixed an issue where mcheck_misra_slsf_018_c would give false positive findings due to not taking tag visibility of Goto blocks into account. (#11697)
Fixed an issue where mcheck_mes_sltl_002_b did not analyze the TargetLink data type correctly. (#11751)
Fixed an issue where mcheck_jc_0481 aborted if non-scalar signals with vector-valued boundaries were part of value comparisons in Stateflow. (#11797)
Fixed an issue where mcheck_misra_slsf_026_a aborted when block names had special characters. (#11862)
Fixed an issue where mcheck_mes_cgtl_4307 aborted on TargetLink 23.1 models. (#11894)
Fixed an issue where link actions in mcheck_db_0129_b incorrectly pointed to the qualifier sf-chart instead of sf-transition. (#11902)
V10.0.0 January 2024
Tool Framework
MoRe integrated in Functional Safety Editions
MES Model & Refactor® (MoRe) is now integrated into every MXAM Functional Safety edition.
The tool is activated by default and can be configured in the MATLAB Adapter Settings in the MXAM Preferences.
Use MoRe to your advantage to simplify and accelerate model creation and refactoring.
Updated Java Compatibility to version Java 21
MXAM is now Java 21 compatible.
The minimum Java version required is Java 11. See the compatibility table in the README_Installation for more information.
Improvements
The full-text search feature (Lucene package) was updated to version 6.6.6.
Added a help page to the installer to guide the user if they wish to initialize MXAM at every MATLAB startup.
Bug Fixes
Fixed an issue where MXAM would freeze if the model consisted of a high number of components and the user switched between document and artifact navigation in the report perspective. (#11531)
Fixed a dialog freezing issue that occurred if over 5000 findings were repaired in one go. (#11241)
Added warning if the installation directory contains special characters like #, % and ; which will cause issues. (#11450)
Fixed an issue where MXAM wouldn’t properly log in a custom user directory. (#11487)
Fixed an issue where TargetLink Data Dictionary objects could not be highlighted during the interactive repair dialog. (#11564)
Fixed an issue where Stateflow Charts could not be highlighted during the interactive repair dialog if the identification feature was set to ‘Path’. (#11577)
Guidelines, Checks, and Documents
Easy Analysis of EmbeddedCoder AUTOSAR Runnables
Ignore Embedded Coder AUTOSAR frames for SWCs using the global parameter ‘Global.AnalyzeAutosarRunnableSubsystemsOnly’
The global parameter was extended so that only model elements inside Embedded Coder AUTOSAR Runnables are analyzed if the parameter is enabled.
The auto-generated SWC frames are ignored if the parameter is enabled.
Runnable Subsystems can be either Function-call Subsystems/Simulink Functions or Atomic Subsystems and Event Listener Subsystems.
Compatibility with MATLAB R2023b and TargetLink 2023-B (23.1)
MXAM now supports MATLAB releases from R2019b to R2023b and TargetLink releases from 5.0 to 2023-B (23.1).
New Functional Safety Guidelines and Checks
Prohibit the usage of user-defined events in Stateflow charts with guideline mes_slsf_3500.
Ensure that re-usable model components have a resolved and enabled link with guideline mes_slsf_1500.
Ensure the usage of allowed rounding modes set in parameter ‘MES.mes_slsf_2200.allowedRoundingModes’ with guidelines mes_slsf_2200 and misra_slsf_008_b.
The chapter structure of the guideline document “Functional Safety Modeling Guidelines” was refined.
New dSPACE Guidelines for TargetLink (Versions 5.0, 5.1 and 5.2) available
Ensure the usage of user-defined variable and function classes in the TargetLink Data Dictionary with mcheck_mes_cgtl_4307 covering guideline TL_RULE_SWDESIGN_USER_VARCLASS_FUNCCLASS. (#9965)
Extended the Assisted and Automated Safe Repair of Findings
New repair functionality has been added to checks for the following topics:
Usage of Conditional Control blocks: mcheck_jc_0656, mcheck_misra_slsf_011_b.
Usage of Lookup and Prelookup Table blocks: mcheck_jc_0626, mcheck_mes_slsf_0626.
Comments in Block Properties: The guideline ds_0082 now references misra_tl_1_2_a and misra_tl_1_2_b.
Improvements
Allow block name numbering for blocks with indentically-named constants with new check parameter ‘MISRA_SL_SF.misra_slsf_026_b.AllowBlockNumbering’ with guideline misra_slsf_026_b. (#11426, #11459)
The guideline mes_cgtl_4113 “Consistent Usage of Output Variables for Model and Code” and the associated check have been refined for better traceability between model, TargetLink data dictionary, and generated code. The default parametrization has been adapted to cover the main use cases. (#11525)
The check mcheck_db_0125_d now analyzes Stateflow atomic subcharts separately from the parent chart. (#6843)
Changes
The following guideline documents including their guidelines and checks are not part of the release anymore:
dSPACE - Modeling Guidelines for MATLAB®/Simulink®/Stateflow® and TargetLink® (dspace_tl_3_0)
Modeling Guidelines for dSPACE TargetLink - Version 4.0.3 (dspace_tl_4_0)
MISRA AC TL Modelling Style Guidelines for the Application of TargetLink in the Context of Automatic Code Generation (misra_ac_tl_1_0)
If you have any of these guideline in your guideline documents, the removed guidelines will be marked in red. Please refer to the new dSpace documents to add the new versions of the guidelines. You can find a mapping list in <MXAMDir>doc/MATLAB/dSpaceGuidelineMapping/dSpaceGuidelineMapping.xlsx
TargetLink Known Problems that are related to TargetLink versions older than 5.0 were removed from the document dSPACE TargetLink Known Problems
Bug Fixes
Some checks may have aborted when MXAM tried to evaluate a parameter of a block located in a library. This has been fixed. (#11427)
Fixed an issue where mcheck_na_0001 created false positive findings for charts with ‘ActionLanguage’ set to ‘MATLAB’ and ‘EnableBitOps’ set to false. (#11449, #11426)
Fixed an issue in mcheck_na_0039 where atomic subcharts were incorrectiy reported instead of Simulink Functions embedded in Stateflow Charts. (#6843)
Improved handling of syntax errors for checks mcheck_misra_slsf_038_a and mcheck_misra_slsf_038_b to now give a review. (#11352)
Fixed an issue where sdt_sc008 was not filtering out library blocks according to project global setting. (#11546)
Fixed an issue where mcheck_mes_cgtl_4306 aborted the analysis of Stateflow data items with the scope ‘Local’ or ‘Output’. (#11548)
Fixed an issue on Linux, where mcheck_ar_0001, mcheck_ar_0002, and mcheck_jc_0242 aborted because they failed to segment the MATLAB path. (#11593)
Fixed an issue where mcheck_jc_0773 reported a false positive for the execution order of unconditional inner state transitions when there are also existing outgoing transitions. (#11395)
Fixed an issue where mcheck_mes_mc_0011 and mcheck_mes_mc_0012 would abort on Simulink models that are not compilable. (#11608)
V9.3.0 October 2023
Tool Framework
Improved Tool Rollout
The installer has been completely revamped using NSIS. New features include:
Silent installation using the command line argument /S.
Passing of customizable configuration files for your MXAM installation using the command line argument /conf. A configuration template folder can be found in the /doc folder.
Specification of a license file during installation or by using the command line argument /lic.
The license manager has been updated and includes several new features:
Definition of a central license configuration for all MES tools and versions.
Display of all available host IDs needed for node-locked licenses.
Display of all dongle IDs so the user can verify connected dongles and their IDs.
Ability to test if the entered license server is available.
Improvements
Improved loading time of XML documents by changing the XML Reader from Dom driver to Stax driver (#11061).
Increased the default MATLAB adapter timeout from 60 to 180 seconds to prevent unexpected timeouts while starting MATLAB.
Improved MATLAB installation selection. The user can directly select the required version from a list of available MATLAB installations.
Synchronized idle timing between MXAM and MATLAB by decreasing the idle timer from 6 to 4 hours (#11368).
The guideline parameter ‘Priority’ has been added to exported XML report.
Bug Fixes
Fixed an issue where MXAM seemed to go into a busy state and stop working. This occurred in rare cases after starting an analysis from MATLAB. (#11365, #10674, #10877)
Fixed an issue where MXAM could not be successfully restarted from MATLAB if mxam(‘path’) was called before. (#11376)
Fixed an issue where the metrics table in the Excel export was missing. (#11360)
Improved error message for some license issues. (#11312)
Guidelines, Checks, and Documents
New JMAAB Guidelines (Version 6.0) available
All guidelines from the new “JMAAB - Control Algorithm Modeling Guidelines Using MATLAB®, Simulink®, and Stateflow® Version 6.0” are now available in MXAM.
Review support of guidelines contained in chapter “Action language/MATLAB language” with checks mes_sl_generic_0001 and mes_sf_generic_0001.
New Checks Available Covering MAB Guidelines (5.0)
Ensure matching names between trigger signals or their source blocks and the respective destinations, such as subsystems, Stateflow charts, and events with guideline jc_0281.
Restrict the scope of Stateflow events to the level on which they are used with guideline db_0126.
Ensure that Merge blocks are connected to conditional subsystems only with guideline jc_0659.
New MES Checks Available
Ensure that the subsystem parameter ‘ShowPortLabel’ is set to ‘FromPortBlockName’ with mcheck_mes_slsf_1106 covering guideline jc_0602.
Restrict levels of nested If and Switch Case blocks to a number set in parameter ‘MES.mes_slsf_3301.AllowedMaxNumberOfIfAndSwitchCaseLevels’ with guideline mes_slsf_3301. (#11297)
Extended the Assisted and Automated Safe Repair of Findings
New repair functionality has been added to checks for the following topics:
Unconnected signals and block ports: mcheck_misra_slsf_017_a, mcheck_db_0081
Improvements
Better performance on large Stateflow models during structural analysis and check execution. (#11194)
Range checking may now be performed without using functions from the Fixed-Point Designer toolbox. Before, Fixed-Point Designer functions were only used when using Data Type Conversion blocks for constant signals. (#11298)
Checking if user-defined names match reserved key words is now altered to be case sensitive. This affects the following checks:
jc_0201 (v02), jc_0211 (v02), jc_0221, jc_0231 (v02), jc_0232 and jc_0795
Bug fixes
Fixed an issue where mcheck_misra_slsf_006_c created findings for the property ‘sample time’ for trigger ports even when they were not visible in the block dialog. (#11233)
Fixed an issue where mcheck_mes_cgtl_4112 did not include the model root in the analysis and thus may not have found a TargetLink Main Dialog block. (#11278)
Fixed an issue where mcheck_mes_cgtl_4210 was aborting due to incorrect handling of the range calculation for some data types. (#11254)
Fixed an issue where several checks were unable to determine the correct data type of nested bus signals. (#11314)
Fixed an issue where mcheck_misra_slsf_038_a and mcheck_misra_slsf_038_b were aborting if a stateflow box with incorrect expression was being used. (#11352)
Fixed an issue where mcheck_db_0110 reported a false positive in case of negative numbers in vectors. (#11098)
Fixed an issue where checks mcheck_jm_0002_b and mcheck_misra_slsf_025_a_5 aborted in case the content of a library is known but cannot be accessed. (#11182)
Bugfix to make the finding repair possible for mes_sdt_sc006, na_0009, mes_cgec_2003, misra_slsf_029_d, mes_tl_0043_a, ds_0087 (#11304)
V9.2.0 July 2023
Tool Framework
Increased Robustness of Model Element Links
The link actions from MXAM into the model were renewed leading to several benefits. Opening model elements within findings or the Artifact Navigation is now more robust and the action was extended to support more elements. If small changes are made to the model, e.g. by repair actions or adaptations to the model structure, other links to model elements retain validity. Additionally, the ‘continue work’ mode when opening reports was improved.
Note: Annotations will become unmapped if their corresponding element is a Simulink line whose name contains line breaks.
Compression of mxmr Reports
There is now an option to compress mxmr reports in both the export and save report dialogs. This significantly reduces the file size of large reports. Compression is active by default and can be configured for each project in the project configuration settings. Compressed and uncompressed reports are handled the same way.
Improvements
Update to Apache Commons Text 1.10.0 for security reasons (issue CVE-2022-42889). (#11020)
Preparation of compatibility to Java >=16 regarding update to XStream Version 1.4.20 and class loading.
Regarding report exports, the token replacement of %PROJECT%, %MODEL% and %SYSTEM% in the report name was adapted. If one of these replacements is too long, it will be shortened to an appropriate length. This prevents report names from exceeding the length that the operating system can handle for save or export. (#10761)
Issues during artifact selection are now reported via a concise error dialog. (#10905)
Set RMI hostname to local machine before initiation of connection between MATLAB and MXAM. (#10148)
Bug Fixes
Fixed an issue where if annotations were created within a narrow time frame, across different time zones. These may have been displayed in an unexpected order. This bugfix applies to to annotations created from MXAM version 9.2.0 onwards. (#11103)
Fixed an issue with the horizontal scrollbar in the Detail View. (#10050)
Fixed an issue that led to an error when clicking on ignored findings. (#11222)
New parameters in the MATLAB adapter are now handled correctly with their default value. (#11100)
In chapter ‘Execution Environment’ of the MXAM HTML report, the tool name is added correctly to version and edition information. (#11005)
Fixed an issue with the execution of the Linux distribution. The program is now set to executable by default. (#11027)
Fixed an issue when calling mxam.m successively. (#11152)
Issues when calling the License Manager are now reported.
Fixed a MXAM 9.1 issue which aborts checks when mxam_hookGlobalParameters is found in the MATLAB path. (#11224)
Guidelines, Checks, and Documents
Integrated Support for AUTOSAR Models
The scope of the analysis can be configured by a global parameter ‘Global.AnalyzeOnlyAutosarRunnableSubsystems’ to include only subsystems that are defined as AUTOSAR Runnables. This parameter is applied to all checks. (#10788)
Identification of Duplicate Stateflow Code
Prohibit duplicated code segments in Stateflow with guideline mes_slsf_3800.
Extended the Assisted and Automated Safe Repair of Findings
New repair functionality has been added to checks for the following topics:
Color Settings: mcheck_misra_slsf_023_a, mes_mes_color_001
Stateflow State Label Layout: mcheck_jc_0501
Conditional Subsystem Layout: mcheck_db_0146
New Checks Available Covering MAB Guidelines (5.0)
Prohibit the comparison of logical constants in Stateflow transition conditions with guideline jc_0655. (#10477)
Ensure an explicitly defined default value for enumerations with guideline na_0031.
Ensure the correct usage of Multiport Switch blocks to prevent unexpected behavior with guideline jc_0630.
Additions and Improvements to Checks for Signal Naming Requirements
Ensure that the property ‘SignalPropagation’ (if available) is set to ‘off’ in case there is no signal name or it is an output of a reusable subsystem with check mcheck_mes_slsf_1107 and guideline and jc_0009. (#11140)
Verify that specified signals are named at the source and are not re-named with check mcheck_mes_slsf_1102 and guideline jc_0008. (#11140)
Ensure that Enable and Trigger ports have the same name as their input signal with check mcheck_mes_slsf_1105 and guidelines misra_slsf_026_c and jc_0281.
Guideline jm_0010: New check mcheck_jm_0010 instead of mcheck_jm_0010_a and mcheck_jm_0010_b
Instead of mcheck_jm_0010_b it is recommended to use mcheck_db_0123_b.
mcheck_jm_0010 replaces mcheck_jm_0010_a with some noticeable changes to the check parameters:
Check parameter jm_0010_a.IgnoreSimulinkPorts was removed.
Check parameter MAAB.jm_0010_a.LabelSignalLinesConnectingReusableSubsystem was removed to adhere to the guideline and to maintain a consistent behavior with other naming checks.
Check parameter MAAB.jm_0010_a.CheckEmptySignalNames was removed, as this is now covered by this check and mes_slsf_1103.
Check parameters MAAB.jm_0010_a.AllowedPrefixOrSuffixForInport and MAAB.jm_0010_a.AllowedPrefixOrSuffixForOutport were combined as one check parameter MES.portNaming.PrefixSuffix.
Check parameter MAAB.jm_0010_a.CaseSensitivePrefixOrSuffix was removed.
Guideline misra_slsf_026_c changes:
Check now only analyzes Inport and Outport blocks.
Removed check parameter MISRA.misra_slsf_026_c.IgnoreSimulinkPorts.
Check parameter MISRA.misra_slsf_026_c.LabelSignalLinesConnectingReusableSubsystem was removed to adhere to the guideline and to maintain a consistent behavior with other naming checks.
Check parameter MISRA.misra_slsf_026_c.CheckEmptySignalNames was removed, as this is now covered by this check and mes_slsf_1103.
Removed check parameter MISRA.misra_slsf_026_c.IgnoreTriggerEnablePorts because Trigger and Enable are covered by mcheck_mes_slsf_1105.
Improvements
The check sdt_sc004_c now calculates the adjusted range of typecast constants and accounts for any resulting overflow/underflow behavior and precision loss.
mcheck_na_0002: The check now supports multilinks to improve finding navigation in Simulink. (#10953)
mes_sltl_002_b, jc_0481, mcheck_sf_001, mcheck_db_0110: Improved the check runtime. (#10960, #10956, #10959)
The check mcheck_db_0146 now has new parameters MAAB.db_0146.ForEach.Range and MAAB.db_0146.ForEach.Region for customizing the location of ForEach ports.
The check na_0020 was renewed in order to increase performance and usability.
Changes
Set version 01 of guidelines db_0140, na_0008 and na_0009 to ‘obsolete’.
Removed the check-based repair action from version 1 of check db_0140, as version 2 already supports the newer finding-based repair action.
Bug Fixes
The ‘Unused Inputs’ metric and corresponding check matlab_mxray_1306 now support BusSelector blocks with the ‘OutputAsBus’ option selected. (#9786)
Fixed an issue where mcheck_sdt_sc004_c would not ignore blocks with ‘Single’ type or give warnings for blocks with floating point output, and the check parameter .IgnoreRangeOfFloatOutput set to true. (#10961)
Fixed an issue where mcheck_misra_slsf_027_fgi would generate invalid failed findings on a Demux block inside a MATLAB function. (#10942)
Fixed an issue where mcheck_na_0002 would report an invalid failed finding for mux blocks in a TargetLink model. This affected blocks with only boolean sources, when used as a source to a block expecting a boolean input. (#10953)
Fixed an issue where mes_mes_cgtl_4302 would report an invalid failed finding on a graphical function statement without an output. (#10996)
Fixed an issue where mcheck_misra_slsf_006_a and mcheck_misra_slsf_006_b analyzed calibration parameters that ran via an input port. (#10996)
In certain situations, MXAM evaluated block and mask parameters with short-format precision. This has been fixed to preserve the total long-format precision of up to 15 decimal places. (#11006)
Fixed an issue where MXRAY-based checks (matlab_mxray_130*) would abort with the error message ‘Untreated block diagram type!’ when executed directly on Simulink Referenced Subsystems. (#10957)
On rare occasions, mask parameters containing a path to another model may have caused MXAM to open that model. This can no longer occur. (#10979)
V9.1.1 June 2023
Tool Framework
Improvements
ASCET Adapter now supports version 6.4.7 of ASCET.
Bug Fixes
Fixed the control flow construction in ASCET Adapter. (#10289)
Guidelines, Checks, and Documents
Guideline References
Adapted the MISRA project’s guideline selection reference.
V9.1.0 April 2023
Tool Framework
Pre-check Before Analysis
A new model pre-check is executed before analysis to ensure that the analysis is performed on the basis of valid data. This includes putting the model into compile mode. If the model fails the pre-check, validation markers will be generated for the report to mark detected errors.
New Repair Finding MATLAB API
The new repair finding functionality from MXAM 9.0.0 can now be used in MATLAB with mxamapi_repairOpenReport.m. This starts repairing all non-interactive and repairable findings from the last opened report in MXAM.
Improvements
Added option to anonymize paths in the exported reports.
Filter settings in library browser are now persisted.
Improved handling of a changed license configuration for MXAM in MATLAB. This no longer requires a MATLAB restart to become effective. (#8519)
If unmapped annotations are detected, new validation markers are now generated.
Added information regarding the installed edition to several places in MXAM, i.e. to information in gui, to mxam.exe property info, and to the log file.
Annotations in deprecated format are now highlighted in the annotation view.
Bug Fixes
Fixed a bug with certain findings being fixable although the corresponding check has its repair option set to false. (#10794)
Fixed a bug that could occur while editing an ignore list. In very rare cases, edited values could get lost. (#10661)
Fixed license error if license file or license server is not configured. (#10791)
Guidelines, Checks, and Documents
Extended the Assisted and Automated Safe Repair of Findings
New repair functionality has been added to checks for the following topics:
Code Generation Options: mcheck_mes_cgtl_9002, mcheck_mes_cgtl_9003, mcheck_mes_cgtl_9004 (#10768)
Stateflow Layout: mcheck_jc_0731, mcheck_jc_0752 (#10514, #10508)
Further topics: mcheck_misra_tl_1_2_b, mcheck_misra_tl_5_10 (#10767)
Ensure Readiness of Model and Setup for Static Analysis with MXAM
Automatic pre-validation of the analyzed Simulink (R) model is now integrated. This prevalidation includes checking
the model’s compilability,
MiL mode setting,
that the corresponding TL Data Dictionary is open,
if all references (libraries, referenced models) are resolved.
Integrated Support for Model Variants
The scope of the analysis can be configured by a global parameter ‘Variants’ to include either only active variants or all variants. This parameter is applied to all checks and replaces the parameter ‘Global.FilterConfigurableSubsystems’. (#10723)
If the old parameter ‘Global.Filter.ConfigurableSubsystems’ is not set to default in a project, the parameter is not used by MXAM anymore and should be removed. (compatibility considerations)
New checks Available Covering MAB Guidelines (5.0)
Verify that the block parameter ‘Sample Time’ is set to ‘-1’ with guideline jc_0641. (#10442)
Ensure the correct usage of continuous-time and discrete-time Delay blocks in continuous and discrete models with guideline jc_0623. (#10478)
New MES-MATLAB Checks for Signal Naming Requirements
We have added new checks for signal naming requirements from MISRA AC SLSF and MES Functional Safety Modeling Guidelines standards.
New version (v02) of the MISRA AC SLSF guideline document containing the new guideline misra_slsf_027_abcdfghi merging the respective part from the original document.
Re-organization of MISRA SLSF 027 guidelines for better usability.
Verify that specified signals are named at the source with check mcheck_mes_slsf_1102 and guidelines misra_slsf_027_abcdfghi, sdt_sc005, and sdt_sc006.
Ensure that the property ‘SignalPropagation’ (if available) is set to ‘on’ with check mcheck_mes_slsf_1104 and guidelines misra_slsf_027_abcdfghi, sdt_sc005, and sdt_sc006.
Prohibit re-naming of a signal and naming of a signal not at the source with check mes_slsf_1103 and guidelines sdt_sc005 and sdt_sc006.
Improvements
mcheck_jc_0795: The check now supports repair of Stateflow.Data objects with identification feature ‘SID’ or ‘SID&Path’ due to the corrected SID computation. (#10599)
mcheck_slsf_031_a and mcheck_db_0141: The respective check parameter ‘<CheckID>.AllowedBlocksInLoops’ is now considered in case a subsystem is used in a feedback loop. Additionally, check messaging for prohibited blocks in feedback loops was refined. (#10770)
mcheck_sdt_sc008: The check parameter ‘MES.sdt_sc008.blocksToCheck’ was enhanced so that inputs and outputs of blocks can be specified to be checked for implicit data type conversion. (#10737)
The document Modeling Guidelines for dSPACE TargetLink - Version 2022-B is now available in the library. (#10805)
The ISO 25119 references in the guidelines were updated to the ISO 25119:2018 version of the standard. (#10752)
Changes
mes_misra_tl_5_10: Extra handling of code-files has been removed, as it is not required by the guideline. (#10767).
Bug Fixes
Fixed an issue where mcheck_mes_sk_006 reported invalid failed findings on Simulink Inports and Outports used in TargetLink subsystems of AUTOSAR models. (#10758)
Fixed an issue where the signal tracing could not resolve TL_SWCSenderPort and TL_SWCReceiverPort blocks in some circumstances. (#10882)
Improved the detection of bus signals for check mcheck_misra_slsf_036_a. (#10857)
Improved handling of Simulink.Bus and overall bus support in misra_slsf_013_b. (#10842)
Fixed mcheck_ds_0029 such that it can trace bus signals to its source. (#10639)
Signals can now be traced through enable and trigger ports with output signals. (#10870)
Fixed an issue in various checks where Sqrt blocks were not correctly identified (mcheck_ds_0019 ,mcheck_ds_0020, mcheck_ds_0022, mcheck_ds_0024, mcheck_ds_0026, mcheck_ds_0028, mcheck_ds_0034, mcheck_ds_0035, mcheck_ds_0036, mcheck_ds_0039, mcheck_ds_0041, mcheck_ds_0050, mcheck_ds_0051, mcheck_ds_0052). (#10818)
Fixed mcheck_jc_0794 such that it identifies Reciprocal blocks for potential Division by Zero occurrences. (#10684)
Fixed an issue where a subsystem with only one block was leading to abort for check misra_tl_1_2_b. (#10898)
Fixed an issue where Stateflow related checks would abort in certain situations, when using MATLAB R2022a or later. (#10884)
misra_slsf_012_a, jc_0141, misra_tl_5_8: The check could not repair findings on TL Switch blocks. (#10793)
The check mcheck_misra_slsf_007_a will no longer check the initial condition of virtual outports in conditionally executed subsystems. (#10921)
Fixed an issue where the check mcheck_misra_tl_7_1 could abort if multiple TL_MainDialogs were present in the model. (#10936)
V9.0.1 January 2023
Tool Framework
Bug Fixes
Fixed bug with annotations mapping not strictly enough for some checks that have been reworked for version 9.0.0. (#10727)
V9.0.0 January 2023
Tool Framework
New repair finding functionality
MXAM now provides a new repair functionality, that can work on a set of selected findings. This functionality also features a new dialog, that shows detailed information of the model part, the specific reason and the repair action for each finding. Additionally, the user has the possibility to use the previously existing check-based repair.
Improvements
The MES License Manager disables configuration and shows a warning text if a Flexera environment variable like MES_LICENSE_FILE is defined, because these variables prevent other means of configuration.
Extended the ignore list configuration by adding a scope for blocks and masks. In addition to ignoring the complete subsystem hierarchy of an element, users can now configure to only ignore the underlying hierarchy or only the selected element.
Updated the license module, which is now based on Flexera 11.19.1.
Bug Fixes
Disabled Simulink menu customization in case of batch mode execution. (#10427)
Added a safeguard around calls to the MATLAB function sl_refresh_customizations. (#10644)
Guidelines, Checks, and Documents
Assisted and Automated Safe Repair of Findings
MXAM’s new feature to select and fix findings based on the user’s choice is now supported by 85% of all repairable checks.
New repair functionality has been added to the following checks: mcheck_mes_slsf_1301, mcheck_sdt_ic002, mcheck_sdt_sa001, mcheck_misra_slsf_008_a, mcheck_mes_cgtl_4105. (#10528)
The repair actions of the following checks have been improved to yield the correct element names after only one repair run: mcheck_jc_0201, mcheck_jc_0211, mcheck_jc_0221, mcheck_jc_0222 ,mcheck_jc_0231, mcheck_jc_0232, mcheck_jc_0795, mcheck_na_0030, mes_slsf_1101. (#10528)
New checks available covering MAB Guidelines (5.0)
Ensure that Stateflow state names are followed by a new line and no slash (/) with guideline jc_0731. (#10476)
Prohibit the use of variables in Stateflow transition conditions if they are updated in the “during” state action with guideline jc_0741. (#10392)
Ensure that the parentheses of a Stateflow condition action in a transition have a line of their own with guideline jc_0752. (#9375)
Prohibit Stateflow transition actions or the combination of condition and transition actions in the same chart with guideline jc_0753. (#10391)
Prohibit data scopes “local”, “constant”, and “parameter” on machine level and data with the same name in Stateflow blocks in a parent/child relationship using guideline db_0125. (#10196)
Verify the correct setting of block annotations given by the parameter MAAB.db_0140.AttributesFormatString with guideline db_0140. (#10475)
Ensure that the bias of a fixed-point data type is set to ‘0’ with guideline jc_0643. (#10443)
Prohibit compound conditions with multiple variables in variant conditions of variant blocks with guideline na_0037. (#10217)
Ensure that the else condition of an If block and the default condition of a Switch Case block are enabled with guideline jc_0656. (#9486)
Prohibit data type conversion in Saturation blocks with guideline jc_0628. (#10479)
New MES-MATLAB guidelines and associated checks (in Functional Safety Solution only)
Avoid redundant AND conditions in transitions with guideline mes_slsf_1302. (#10218)
Ensure the consistent usage of output variables for model and code with guideline mes_cgtl_4113. (#10305)
Limit the number of nested if and switch control patterns with guideline mes_slsf_3301. (#10305)
Compatibility with MATLAB R2022b and TargetLink 2022-B
Made minor adjustments to ensure compatibility of framework and checks with MATLAB R2022b and TargetLink 2022-B.
mcheck_mes_cgtl_9002: This check is now capable of analyzing code generation options introduced in TargetLink 2022-B. (#10526)
Improvements
For better usability, multiple findings on one model element were merged to one finding in the following checks: mcheck_jc_0201, mcheck_jc_0211, mcheck_jc_0221, mcheck_jc_0222 ,mcheck_jc_0231, mcheck_jc_0232, mcheck_jc_0795, mcheck_na_0030, mes_slsf_1101. (#10528)
The link actions for mcheck_misra_slsf_050_a/b/c/d now support the highlighting of Stateflow annotations.
mcheck_misra_tl_1_2: The check now has a parameter (MISRA.misra_tl_1_2_a.CheckDataDictionary) to exclude the TargetLink Data Dictionary from the analysis. (#10445)
mcheck_jc_0081: The check is now referenced in version 02 of the guideline with an improved check description. (#10441)
mcheck_cgtl_4209: The check now analyzes all variable classes that can have an initial value declared in the block’s dialog box. (#10440)
misra_slsf_054_e: The check now has a more specific finding message regarding the placement of parentheses. (#10673)
Changes
Warnings with identifier ‘Simulink:Commands:FindSystemDefaultVariantsOptionWithVariantModel’ are now being suppressed in the MATLAB command window during MXAM runtime. (#10663)
Commented Stateflow elements (e.g., transitions, states, …) are now excluded from analysis. (#10393)
mcheck_db_0042_a: Support for the repair option has been discontinued. (#10226)
Bug Fixes
Fixed a rare issue where mcheck_mes_misra_slsf_036_a would get stuck during analysis. (#10402)
Fixed an issue related to signal tracing in signals combined by a Mux block in mcheck_sdt_sc004_b. (#10512)
Fixed an abort due to an API inconsistency in MATLAB R2016a and R2016b for mcheck_jm_0002_b. (#10543)
Fixed an issue where warning messages regarding ‘OutDataTypeMode’ were displayed in the MATLAB command window for mcheck_sdt_sa002_a/b, and mcheck_ds_0025. (#10658)
V8.2.0 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.
Improvements
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’ on 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.
Improvements
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)
V8.1.0 July 2022
Tool Framework
Linux is supported as operating system to run MXAM (BETA)
Unused licenses are automatically returned to license server when no tool usage is detected
When an open MXAM application instance is not used for 6 hours the checked out licenses are returned to license server, allowing other users to acquire this MXAM licenses. The idling MXAM gets blocked until the user decides to continue its work with newly acquired licenses.
Improvements
Updated ASCET Adapter to support version 6.4.6 of ASCET.
Improved performance of logging initialization.
Allow specification of java runtime to use with MATLAB API.
Updated license module now bases on Flexera 11.16.
Bug Fixes
Fixed utility function for calculation of InputConnectors in ASCET Adapter in order to support StatementBlocks. (#10039)
Guidelines, Checks, and Documents
New dSPACE Guidelines for TargetLink (Versions 5.0, 5.1 and 5.2) available
The new versions of the following guidelines are now automatically checkable (#9880, #9936)
General Guidelines for Simulink, Stateflow, and TargetLink
General Conventions: TL_RULE_GENERAL_OUTPORT_STATE_INIT
Block-Specific Guidelines
Look-Up Table Library: TL_RULE_LUT_LIB_NO_GENERAL_TENSORS
Logic and Bit Operations Library: TL_RULE_LOGICBIT_LIB_RELOP_LOGOP_SL_TYPE
Math Operations Library: TL_RULE_MATH_LIB_PROD_BLOCK_NUMBER_INPORTS, TL_RULE_MATH_LIB_PROD_BLOCK_SETTINGS, TL_RULE_MATH_LIB_TRIGO_DATATYPES
Model Verification Library: TL_RULE_MODELVERIFY_LIB_ASSERT_SIGNAL
Signal Attributes Library: TL_RULE_SIGNALATT_LIB_DATA_TYPE_CONV
Signal Routing Library: TL_RULE_SIGNALROUT_LIB_DSMEMORY
Ensure that the correct options are set for Platform-Specific Code Generation with guideline TL_RULE_SWDESIGN_ANSI_CODE_MISRA (mcheck_mes_cgtl_9004) (#9964)
Ensure the setting of code generator option ‘UtilizeBitwiseShiftOperations’ to avoid shift operations and achieve compliance to MISRA-C:2004 Rule 12.7 and MISRA-C:2012 Rule 11.4 with guideline TL_RULE_SWDESIGN_MULT_VS_BITSHIFT_MISRA (mcheck_mes_cgtl_9003) (#9881)
Ensure that all signal input signal ranges are contained in axis ranges of Look-up table blocks with guideline TL_RULE_LUT_LIB_SCALING_INPUT_VS_AXES (mcheck_mes_cgtl_4210) (#9367)
Ensure the use of unique identifier names for functions and variables in compliance to MISRA-C:2004 Rule 5.6 and MISRA-C:2012 Rule 5.2 with guideline TL_RULE_SWDESIGN_AVOID_OVERLAPPING_NAMES (mcheck_mes_cgtl_4114) (#9887)
Ensure the ‘Solver’ option in Simulink with guideline TL_RULE_GENERAL_SOLVER (mcheck_mes_slsf_9004) (#9953)
Enforce the unique declaration of external variables and external functions in compliance to MISRA-C:2004 Rule 8.8 and MISRA-C:2012 Rule 8.5 with guideline TL_RULE_SWDESIGN_EXTERNALS (mcheck_mes cgtl_4303 and mcheck_mes cgtl_4304) (#10005, #10006)
Improvements
mcheck_sdt_sc008: There is now an additional link to an input’s source block in the finding message. (#9705)
mcheck_sdt_sc004_c: The range computation for the output of unit delay blocks is now based on the computed range of the input signal instead of the output data range. (#9883)
Priorities of several dSPACE guidelines updated. (#9996)
Bug Fixes
mcheck_misra_slsf_048_g: When a Stateflow transition only contained delimiters or comments the check aborted. This has been fixed. (#9997)
mcheck_misra_slsf_013_b: When a control input of a switch block originated from a Simulink bus object port, the data type was not analyzed correctly. This has been fixed. (#9919)
mcheck_jc_0711: When a stateflow transition action or transition condition contained a syntax error the check aborted. This has been fixed. A review finding is now reported in this case. (#9926)
mcheck_ds_0087: The position of annotations with text alignment other than ‘left’ is now calculated correctly for MATLAB versions greater than 2016b. (#9944)
mcheck_misra_slsf_045_d: The check no longer aborts, if there is an event in the analyzed transitions. (#9604)
mcheck_misra_slsf_048_g: The check no longer aborts on non-empty transition labels containing only formatting characters or comments. (#9997)
V8.0.0 April 2022
Tool Framework
Improvements
Improved the display of finding messages that contain references to additional elements by using footnotes in case the links are not navigable (e.g. Excel or PDF reports).
Added an architectural metrics table to exported HTML and PDF reports.
Added parameter configuration details to exported Excel reports.
Bug Fixes
MXAM now prevents a false positive MATLAB warning in MATLAB 2017b when the warning ‘MATLAB:subscripting:noSubscriptsSpecified’ is activated. (#9756)
Fixed the detection of MXAM headless execution mode for the report export when the analysis is triggered from the MATLAB context menu. (#9827)
Guidelines, Checks, and Documents
New MAB Guidelines (Version 5.0) available
Ensure that the datatypes of all inports and outports of switching blocks are the same with the guideline jc_0650. (#9534)
Verify the saturation settings of your Discrete-Time Integrator blocks with the guideline jc_0627. (#9444)
Unify the positioning of comments in Stateflow transition labels with guideline jc_0771. (#9364)
New dSPACE Guideline Document for TargetLink 5.2 available
All guidelines of the new dSPACE Guideline Document for TargetLink version 5.2 are now available in MXAM. (#9793)
New Functional Safety Solution Guideline and Check Available
Avoid implicit data type conversion with the new guideline and check sdt_sc008. (#9472)
Improvements
MXAM’s signal tracing routine now supports BusElementPorts. (#9668)
MXAM’s signal tracing routine now supports TL_SWCSender/ReceiverPorts from the TargetLink AUTOSAR library. (#9667)
The computational overhead introduced by ignoring blocks defined by the global parameter Global.IgnoredLibraries during each check has been significantly reduced now. (#9489)
The division by zero checks mcheck_jc_0794 and mcheck_jc_0711 now recognize a further division by zero protection pattern, namely where a MinMax block is used to avoid division by zero. (#9736)
mcheck_jm_0002_b, mcheck_misra_slsf_025_a_5: The checks now include support for Stateflow charts. (#9637)
Use mcheck_mes_cgtl_9002 to check the correct setting of the new code generation option ‘EnableSharingOfSequentialControlVariable’ introduced in TargetLink 5.2. (#9735)
There are now additional links to model elements in the finding messages of some checks. These links simplify the navigation to the affected elements in the model. The finding messages of the following checks now have an additional link: mcheck_sdt_il001_a, mcheck_sdt_sc001, mcheck_sdt_sc005, mcheck_sdt_sc006, mcheck_sdt_sc007_a, mcheck_sdt_sc007_b and mcheck_misra_slsf_027_ab. (#9561)
Changes
The default parameter setting for the parameter MISRA_SL_SF.misra_slsf_030.IgnoredBlocks has been modified. In the new default setting, this check ignores the following blocks: Constant, From, Goto, TL_Function, Model Info, DocBlock, Data Store Write and Data Store Read. (#9792)
Bug Fixes
Some guidelines of the dSPACE Guideline Documents for TargetLink 5.0 and TargetLink 5.1 referenced an older guideline version. This has been fixed. (#9793)
mcheck_tl_pr20050222_03: The check no longer omits the first instance of a repeatedly used variable from the findings. (#9723)
For certain modeling patterns related to nested bus signals, MXAM’s signal tracing routine could not properly trace through BusSelector blocks with bus output. This has been fixed. (#9666)
If both the width and the height of an individual block were faulty, the repair actions of checks mcheck_jm_0002_b and mcheck_misra_slsf_025_a_5 needed to be executed twice. Additionally, in some cases, the checks did not correctly calculate the required width of a block. These issues have been fixed. (#9632)
The attempt to evaluate model workspace parameters may have led to a compile problem when using model references. This has been fixed. (#9654)
mcheck_mes_slsf_3106, mcheck_slsf_9102 and mcheck_misra_slsf_026_b: When certain filters were active it was possible that the element described in the MXAM finding was not the actual faulty model element. This has been fixed. (#9731)
In some cases, the check mcheck_ar_0001 gave a failed finding for files with extensions .slx.autosave or .mdl.autosave. These files were created automatically for a model opened by MXAM to run the check. This has been fixed. (#9526)
The check mcheck_jc_0232 aborted when analyzing library artifacts. This has been fixed. (#9761)
In some cases the check matlab_mxray_1306 did not find all usages of a signal in the model. This caused the check to incorrectly mark ports as unused. This has been fixed. (#9623)
The checks mcheck_jc_0794 and mcheck_jc_0711 were not fully compatible with the MATLAB version R2021b. This has been fixed. (#9848)
V7.3.3 April 2022
Tool Framework
Improvements
Improved Log4j initialization.
V7.3.2 March 2022
Tool Framework
Improvements
Improved Log4j initialization.
V7.3.1 March 2022
Tool Framework
Improvements
Updated ASCET Adapter to support the analysis of records.
Updated Log4j to version 2.17.1.
Bug Fixes
Fixed classpath for javax classes. (#9674)
V7.3.0 January 2022
Tool Framework
Improvements
Added execution environment details and general information to exported EXCEL reports.
Additional finding attributes, block type, and mask type for MATLAB are now included in the exported reports.
Improvements made to canceling an analysis.
Added an entry to the tray icon menu to cancel a running analysis.
Added a cancel button to the progress dialog of MATLAB.
The analysis can be canceled during the execution of a check.
Validation markers for library items are updated when library preferences are changed.
Added a script (mxamapi/mxam_testLicenseConfig.m) to test the license configuration within MATLAB.
Added support for navigable links in finding messages.
Bug Fixes
Fixed a bug that caused the saving of preferences not to function properly after a tool adapter was restarted. (#9359)
Fixed a bug that caused the saving of preferences not to function properly when MXAM needs to be restarted. (#9330)
Fixed the handling of library elements in MXRAY model metrics where in some cases elements where counted twice for global ref1 metrics. (#9412)
Fixed the handling of an empty library search path in the headless execution to not fall-back to the installation folder in order to be consistent with the GUI mode. (#8894)
Fixed the structure analysis for special subsystem names containing slashes, spaces at the beginning of a name, or subsystem names that match the name of their model when selected as an artifact. (#9361, #9494, #9135)
Fixed numbering in the table of contents for exported PDF reports. (#9590)
Guidelines, Checks, and Documents
MXRAY model metric check for clone groups now available within MXAM
The check matlab_mxray_1307 (referenced in guideline mes_arch_1307, document Functional Safety Modeling Guidelines) creates a finding for each structural element that is part of a clone group.
New MAB Guidelines (Version 5.0) available
Enforce line breaks between state action declarations and state action code with guideline jc_0501 (mcheck_jc_0501). (#9372)
Disable the drop shadow of all blocks with guideline jc_0604 (mcheck_jc_0604). (#9362)
Prevent division of fixed point data with inconsistent signedness with guideline jc_0611 (mcheck_jc_0611). (#9321)
Verify the interpolation settings of lookup tables with guideline jc_0626 (mcheck_jc_0626). (#9408)
Ensure that charts are not executed at initialization with guideline jc_0712 (mcheck_jc_0712). (#9485)
Prohibit direct transitions between nested Stateflow states if they cross state borders with guideline jc_0723 (mcheck_jc_0723). (#9366)
Prohibit exit actions in Stateflow charts with guideline jc_0740 (mcheck_jc_0740). (#9370)
Disallow MATLAB action language in Stateflow charts with guideline jc_0790 (mcheck_jc_0790). (#9369)
Prevent recursive loops between graphical functions with guideline jc_0804 (mcheck_jc_0804). (#9373)
Ensure that the model configuration is set to detect incorrect calculation results as errors with guideline jc_0806 (mcheck_jc_0806). (#9484)
New dSPACE Guideline Documents for TargetLink versions 5.0 and 5.1 available
Disallow the saturate option for block outputs with guideline TL_ADV_OPTI_SATURATION (mcheck_mes_cgtl_4207). (#9360)
Ensure that all outports of conditionally executed subsystems are explicitly initialized with guideline TL_RULE_GENERAL_OUTPORT_STATE_INIT (mcheck_mes_slsf_2000). (#9368)
Ensure that all blocks with states are explicitly initialized with guideline TL_RULE_GENERAL_OUTPORT_STATE_INIT (mcheck_mes_slsf_2001). (#9368)
Improvements
Significantly reduced the computational overhead introduced by checking for ignored blocks defined by the global parameter Global.IgnoredMasktypes during each check. (#9442)
The following guidelines and their assigned checks have been updated to support the “Record” block. (New block, introduced in MATLAB R2021a) (#9531)
hd_0001,cgec_2001,misra_slsf_027_h
Changes
The check mcheck_sdt_il001_a assigned to the guideline sdt_il001 has been replaced by a new implementation. (#9113)
The new check requires a compilable model.
The new check traces signals through Autosar Sender and Receiver ports.
The new check analyzes each element of bus and vector signals as individual signals.
The new check will no longer trace signals beyond the borders of the analyzed subsystem.
Bug Fixes
Custom datatypes were not correctly identified for logical and relational TargetLink blocks. This has been fixed. (#9550)
In some cases, if MXAM did find a reason not to execute the check (eg. model cannot be set to required compile mode), some checks may have issued aborted instead of descriptive findings. This has been fixed. (#9428)
Fixed a syntax error in the default value of the parameter dSPACE.TargetLink.ds_0093.DiagnosticSettings in the guideline TL_RULE_GENERAL_DIAGNOSTICS (v2) which led to an aborted finding. (#9611)
Several checks could sometimes try to access the Simulink block library before it was loaded. This has been fixed. The affected checks are listed below. (#9613)
mcheck_jc_0201, mcheck_jc_0211, mcheck_jc_0221, mcheck_jc_0222, mcheck_jc_0231, mcheck_jc_0232, mcheck_jc_0795, mcheck_na_0030, mcheck_mes_slsf_1101
The checks mcheck_jm_0002_b and mcheck_misra_slsf_025_a_5 did not properly identify the names of ports associated with Bus Element In and Bus Element Out blocks. This has been fixed. (#9617)
Triggered TargetLink Main Subsystems were not identified as conditionally executed. This has been fixed. (#9615)
V7.2.0 October 2021
Tool Framework
Automatic port selection
The port for the MXAM web server and the port for the connection to MATLAB can now (by default) be automatically determined.
The web server port is displayed in the MXAM UI.
The new starter utility method “com.modelengineers.mxam.core.util.StarterUtil.main(String[] args)”, which returns the port number used by MXAM, can be employed for automatized start up.
Improvements
For any errors that arise during tool usage, a more detailed problem description is provided. Additionally, hints to troubleshoot the respective issue are displayed.
Better display of license errors and improved license configuration dialog.
Extended support for copying data from MXAM into the Windows clipboard with “CTRL+C”.
Improved performance of report import.
Improved performance in report perspective by postponing UI updates caused by selection changes.
Improved missing license handling for architectural metrics computation to not abort the remainder of the analysis. (#8763)
Batch analysis can be executed using artifacts configured in the project. (#9250)
Improved progress and error handling in document export wizard. (#8666)
Improved license checks to ensure that a license is available during analysis.
Improved library item selections by applying a multi-stage sorting to tables.
Extended progress displayed in MATLAB console or progress dialog by showing accumulated summary of check results.
Bug Fixes
Fixed browser compatibility for details view. (#9155)
Fixed error handling when reading MXAM preferences. (#9256)
Fixed initial selection in the document export wizard. (#8668)
Fixed enablement of UI controls for project library settings. (#9138)
Prevent MXAM crash during drag and drop of images displayed in details views. (#9183)
Fixed handling of ASCET sequence calls. (#9137)
Fixed MATLAB API documentation for mxamapi_execute.m. (#9175)
Fixed layout of artifacts configuration table when displaying many artifacts. (#8637)
Fixed scrolling issue. (#9317)
Fixed an issue within progress bar with Simulink names containing special characters. (#8757)
Guidelines, Checks, and Documents
New MAB Guidelines (Version 5.0) available
Prevent unintended rounding of divided signed integers with guideline jc_0642 (mcheck_jc_0642). (#9241)
Identify duplicate data name definitions in base workspace, model workspace, and DD with guideline jc_0791 (mcheck_jc_0791). (#9246)
Ensure a proper operation order of multiplication and division blocks with guideline jc_0610 (mcheck_jc_0610). (#9206)
Prevent the usage of forbidden Blocks with the newly referenced check mcheck_mes_slsf_1700. (#9205)
New dSPACE Guideline Documents for TargetLink versions 5.0 and 5.1 available
All guidelines of the new dSPACE Guideline Document for TargetLink Versions 5.0 and 5.1 are now available in MXAM. The following guidelines are now automatically checkable:
General Guidelines for Simulink, Stateflow, and TargetLink
Global Simulink Options: TL_RULE_GENERAL_DIAGNOSTICS
Global TargetLink Options: TL_RULE_SWDESIGN_BITFIELDS_MISRA, TL_RULE_SWDESIGN_IDENTIFIER_LENGTH
General Conventions: TL_RULE_GENERAL_NAMING, TL_RULE_GENERAL_BLOCK_PRIOS, TL_RULE_GENERAL_OVERFLOW_SATURATION, TL_RULE_GENERAL_ROUNDING
Fixed-Point Code Generation: TL_ADV_OPTI_POWER_OF_2, TL_ADV_OPTI_OFFSETS, TL_ADV_OPTI_CONSTRAINTS, TL_RULE_OPTI_64_BIT
Block-Specific Guidelines
Discrete Library: TL_RULE_DISC_LIB_INTEGRATOR_SETTINGS
Look-Up Table Library: TL_RULE_LUT_FLOAT_EQUIDISTANT
Ports and Subsystem Library: TL_RULE_PORTSYSTEM_LIB_SWITCH_CASE, TL_RULE_PORTSYSTEM_LIB_DUPLICATE_INPORTS
Signal Routing Library: TL_RULE_SIGNALROUT_LIB_DSMEMORY, TL_RULE_SIGNALROUT_LIB_FROMGOTO, TL_RULE_SIGNALROUT_LIB_MERGE, TL_RULE_SIGNALROUT_LIB_MULTIPORT_SWITCH
User-Defined Functions Library: TL_RULE_USERFUNC_LIB_FCN_BLOCK
Stateflow Guidelines: TL_RULE_STATEFLOW_STRONG_DATA_TYPING, TL_RULE_STATEFLOW_TRANSITION_ACTIONS, TL_RULE_STATEFLOW_ORDER_PARALLEL_STATES, TL_RULE_STATEFLOW_IMPLICIT_EVENTS, TL_RULE_STATEFLOW_MATLAB, TL_RULE_STATEFLOW_TRANSITIONS_IN_CONTROL_FLOW, TL_ADV_STATEFLOW_STATES_VS_CONTROL_FLOW
Improvements
mcheck_jm_0010_a: The check parameter ‘MAAB.jm_0010_a.CaseSensitivePrefixOrSuffix’ has been introduced to allow customization of the checks concerning case-sensitive checking of the prefix/suffix of Inports/Outports. (#9015)
mcheck_misra_tl_7_7: The check parameter ‘MISRA.misra_tl_7_7.IgnoredFiles’ has been introduced to define an ignore list of Custom Code files. (#9160)
mcheck_misra_slsf_031_a, mcheck_db_0141: The checks now ignore feedback subsystems having orientation ‘left’ and consist of the following blocks: Unit Delays, Inports, Outports, Bus creators, Bus selectors, Mux, Demux, and Subsystems. (#9025)
The MAB 3.0 Guideline hd_0001 (version 1) now references the check mcheck_mes_slsf_1700 for enhanced configurability and improved performance results. (#9205)
mcheck_mes_slsf_1700: The check performance has been improved. (#9205)
Updated wording of ISO references in guidelines according to ISO 26262:2018. (#9323)
Changes
mcheck_mes_slsf_9001: Changed suggested value for the Configuration Parameter ‘Periodic sample time constraint’ to ‘Specified, Ensure sample time independent’. This guarantees a consistent setting for Model References. (#9116)
mcheck_misra_slsf_010_b: Changed finding message for improved readability. The message now forms a complete sentence.
mcheck_hd_0001: This check has been deleted. (#9205)
Bug Fixes
mcheck_ds_0027: The check may have issued non-justified warnings if the analysis of the source of a table input port failed. This has been fixed. (#9258)
mcheck_misra_slsf_015_b: The check always gave a finding for a masked subsystem if a matrix signal was led through an outport of the subsystem. This was fixed. (#9244)
In certain cases, block parameter evaluations containing character arrays in function calls may have failed. This was fixed. (#9082)
A limitation of TargetLink does not allow to evaluate the output type of TL_Signum blocks with class ‘default’. This is circumvented by accessing hidden dialog data. (#9041)
Signal tracing through BusAssignment blocks involving nested bus element assignments was erroneous. This has been fixed. (#9173)
V7.1.0 July 2021
Tool Framework
Support for automatic port selection when MXAM is used with the MES Plugin for Jenkins
The port for the MXAM web server and the port for the connection to MATLAB can now (by default) be automatically determined with the MES Plugin for Jenkins (since version 2.0). This facilitates the configuration of parallel job executions where each execution needs distinct ports.
Improvements
Improved performance for adding/removing annotations if there are many existing annotations.
Improved error handling when creating new annotations in case of corrupted annotation definition files.
Improved handling for guidelines with multiple versions in the ‘new document wizard’:
The latest suggested guideline version is shown.
If no guideline version is suggested, the latest version that has a referenced check is shown.
If no guideline version is suggested and if no guideline version has a referenced check, the latest version is shown.
Validation markers are generated when library items cannot be loaded correctly.
Added more information about the progress displayed during an analysis.
Show validation details in pre-analysis validation in case of warnings/errors. Prevent execution of an analysis if there is any error detected.
Added information to the metrics view in case metrics could not be computed, and if global metrics omitted some child values.
Bug Fixes
Several fixes for the report export wizard:
Show progress of export.
Fixed detection of an existing Excel file to show a warning when the user is about to overwrite this file. (#8669)
Do not delete a folder with the same name as the report name when exporting HTML reports that overwrite existing files. (#8756)
Guidelines, Checks, and Documents
New MAB Guidelines (Version 5.0) available
mcheck_jm_0011: Pointer variables shall not be used in Stateflow. (#8390)
mcheck_jm_0012: Event Broadcasts. (#8941)
mcheck_db_0137: States in State Machines. (#8388)
mcheck_jc_0621: The icon shape for Logical Operators shall be set to “rectangular”. (#9093)
mcheck_jc_0802: Prohibited use of implicit type casting in Stateflow. (#9053)
Improvements
For TargetLink AUTOSAR models, the treatment of interface blocks (TL Ports, TL Bus Ports, TL DataStores) configured for AUTOSAR has been refined. (#9029)
mcheck_sdt_sc001, mcheck_sdt_sc007_a and mcheck_sdt_sc007_b: Runnable ports in TargetLink AUTOSAR models are not analyzed. (#9029)
mcheck_ds_0079_c: The check now fully supports Simulink’s hide automatic names feature. (#8929)
mcheck_misra_slsf_027_a: The check now fully supports Simulink’s hide automatic names feature. (#8697)
mcheck_jc_0201, mcheck_jc_0231: The shared parameter MAB.UsableCharacters.IgnoreHiddenNames has been introduced to ignore hidden subsystem and block names. (#9059)
mcheck_misra_slsf_026_a, mcheck_misra_slsf_026_b: The check implementation was rearranged for improved performance. (#8697)
mcheck_sdt_sc004_c: The check now supports the range checking of Gain blocks. (#8997)
mcheck_ds_0098: The check now has improved failed finding messages. (#9054)
Changes
mcheck_sdt_sc005: Legacy entries in the default value of the check parameter ‘UserSourceBlocks’ have been removed. (#9061)
Bug Fixes
mcheck_misra_slsf_027_ab: For nonempty check parameter ‘LibrariesToCheck’ the check implementation caused an abort if executed on a compiled model. This was fixed. (#9013)
mcheck_misra_slsf_030_ab, mcheck_misra_slsf_030_c: The checks may have aborted for certain customized settings of the parameter ‘IgnoredBlocks’. This was fixed. (#9035)
mcheck_misra_tl_7_9: The check did not support the option ‘UtilizeBitwiseShiftOperations’ that was introduced with TargetLink 5.0. This has been fixed. (#9044)
mes_sl_generic_0001: The configuration of the check with the parameter MES.mes_sl_generic_0001.FindSystemConfiguration did not work properly for multiple definitions of find_system-calls. In particular, this occurred when using different amounts of empty elements in separate rows. This was fixed. (#9098)
mcheck_mes_slsf_9001: The result of the repair action for numeric Configuration Parameters was not shown correctly. This was fixed. (#9109)
V7.0.0 April 2021
Tool Framework
Improvements
Updated ASCET Adapter to support version 6.4.5 of ASCET.
Restricted exported java dependency for MXAM variants to prevent conflicts with dependencies used by custom user code.
Improved performance for large number of annotations when loading reports, saving reports, or post-processing analysis (i.e. matching annotations to findings).
Improved support for high DPI displays in Details View for guideline/check descriptions. Added support for zooming the displayed information. (#8765)
Changed default for filter in Libraries Browser perspective: Now all document/guideline/check versions are shown by default instead of head version only.
Bug Fixes
Fixed MXAM version info in Contents.m to comply with MATLAB’s expected format for “ver” command. (#8793)
Prevented duplication of checks when references in document are not synchronized with the library. (#8858)
Fixed abort of MXRAY checks when running analysis for artifacts which are subsystems of referenced libraries. (#8882)
Fixed abort of MXRAY checks in some cases when clone group detection is activated. (#8864)
Added changeable filter to allow selection of guideline versions other than head version in document editor. (#8892)
Fixed mxam_start_analysis.m to not set values to internal fields which should not be changed by users. (#8979)
Guidelines, Checks, and Documents
New MAB Guidelines (Version 5.0) available
jc_0711: Variables, constants, or parameters in a Stateflow block shall not be used to perform division operations. However, when division occurs in a Stateflow block, the process shall prevent division by zero.
jc_0794: When using division with a Product block, implementation of the algorithm shall avoid division by zero.
Compatibility with TargetLink 5.1
Minor adjustments were made to ensure compatibility of framework and checks with TargetLink 5.1.
mcheck_mes_cgtl_9002: Updated TL_ParameterList.xlsx according to TargetLink 5.1.
Update of TargetLink Known Problems checks (available in the Functional Safety Solution).
Improved Performance on large TargetLink models
MXAM’s execution time on TargetLink models has been improved considerably, especially on large models.
Further Improvements
mcheck_misra_slsf_006_b: In addition to the block type - mask type combinations, the user can now insert further block-specific parameters that will be ignored in the analysis. In this context, the default value of the check parameter MISRA_SLSF.mes_misra_slsf_006_b.ignoredBlocks has been modified.(#8695, #8788)
db_0112: A vector signal shall use either a uniform ‘zero-based’ or a uniform ‘one-based’ index mode. The check has a check parameter to choose between the two. (#8369)
mcheck_mes_sltl_001: The check parameter SDT.mes_sltl_001.AllowedMagicConstants has been introduced to allow certain magic constants in the check. (#8851)
Specific checks aborted while analyzing the data type of the TargetLink blocks TL_SignalConversion. This has been fixed. (#8818)
The identification of active AUTOSAR configurations has been updated. MXAM now identifies active AUTOSAR configurations for all TargetLink AUTOSAR versions correctly. (#8791)
Added new check parameters for mcheck_mes_slsf_9003 to cover more Stateflow options:
Action Language
Enable zero-crossing detection
Use Strong Data Typing with Simulink I/O
Treat these inherited Simulink signal types as fi objects
Create output for monitoring
MATLAB Chart fimath
A validation for the MXAM check parameter setting is added to mcheck_mes_slsf_9003. MXAM now gives a finding, if the check parameter setting is inconsistent. (#8328)
The evaluation of MATLAB built-in variables has been improved. (#8717)
Improvement of signal routing with multidimensional sources and destinations. (#8796)
MXAM’s handling of scaling values (LSB, offset) of non-scalar signals whose dimensions are unspecified at design time, has been improved. (#8865)
Changes
MXAM’s data flow analysis now allows inheritance for TL port blocks in linked subsystems. (#8791)
Bug Fixes
mcheck_misra_tl_6_1: Stateflow data items with floating point data type and unselected option ‘CreateInputVariable’ were incorrectly reported as failed. Floating point data types are now accepted. (#8376)
mcheck_ds_0100: The check could not detect the input data type in case the source is an Outport of a TL Function. This has been fixed. (#8724)
mcheck_mes_cgtl_4101: The check gave a false failed finding if the tolerance of the TargetLink Gain block was not set to 0 without its gain class being set to default. This has been fixed. (#7790)
mcheck_misra_slsf_026_b: The parameter ‘SystemSampleTime’ is excluded from the check analysis for all blocks. (#8405)
mcheck_na_0003: The check did not return failed findings after a passed {If expression} or {Elseif expression} in the same block. This has been fixed. (#8767)
mcheck_misra_tl_5_9: The check did not detect TargetLink Gain blocks with gain parameters containing MATLAB built-in variables like ‘ones’ correctly. This has been fixed. (#8717)
mcheck_mes_slsf_9103: The check wrongly detected identical block names with the same library reference in case of nested library blocks. This has been fixed. (#8497)
mcheck_sdt_il001_a: The check identified different bus signals as a unique one giving false failed findings. This has been fixed. In addition, the finding message has been improved. (#6392, #7332, #7879, #8751)
mcheck_misra_slsf_025_a_6: A utility function caused an abort of the check analysis due to incorrect figure handling. This has been fixed. (#8806)
mcheck_misra_slsf_050_c: The check did not contain the color settings of the latest MATLAB versions. This has been corrected. (#8798)
mcheck_misra_slsf_027_j: The check did not ignore the TargetLink AUTOSAR blocks TL_SWCSenderPort and TL_SWCReceiverPort when the option ‘Show propagated signals’ was enabled. This has been fixed. (#8753)
mcheck_na_0002: The check returned a failed finding for source signals from TargetLink blocks with class ‘default’ and an empty base type. The check now gives a review finding. For ‘Constant’ source blocks, the constant value is also evaluated to get the data type. (#8804)
mcheck_sdt_sc007a/b: For certain modeling patterns, false positive findings may have occurred for blocks with dimensions greater than one. This has been fixed. (#8794)
mcheck_sdt_sc007_b: The check returned a false positive finding for scalar signals with sources in Demux blocks. This has been fixed. (#8796)
matlab_mxray_1306: The check returned a false positive finding for the top-level system of Variant Subsystems. This has been fixed. (#8674)
mcheck_sdt_sa004_b, mcheck_misra_slsf_013_c: In certain cases the checks returned false positive findings for MultiportSwitch blocks with the option ‘Specify Indices’ for the parameter ‘DataPortOrder’. This has been fixed. (#8845)
mcheck_sdt_sc002_e: In case of failed findings, now the check message is more detailed and contains information if the range is determined directly from the Stateflow data item or at the source block of the corresponding chart input. (#8815)
mcheck_mes_cgtl_4203: Outputs of Constant blocks with a non-calibratable class are ignored by the check. (#8350)
V6.5.0 January 2021
Tool Framework
Extended Webservice API
Added API to query the current MXAM version and applied patches.
Added API to query the current project.
Performance improvements
Improved UI responsiveness when listing artifacts in the artifacts selection wizard.
Improved the performance for fetching ASCET tool artifacts and file artifacts. (#8329)
User can decide if list of presented artifacts is structured or flat.
Filter for classes is already applied during fetching.
Improved the performance of MATLAB check execution in UI and batch execution.
Improved UI responsiveness in report perspective when changing the focus in the report navigation views.
Other Improvements
For checks that require a compilable model the finding type for models that are not compilable has been changed from ‘Aborted’ to ‘Review’.
Improved logging in headless execution. (#8573)
Added more detailed information to progress shown in MATLAB during analysis.
Simplified preferences for MATLAB executable selection. (#8547)
Stabilized order of additional report information added with MATLAB hook. (#8700)
Updated support for communication with JIRA ticket system. (Optional plugin on request)
Bug Fixes
Prevent MXAM from hanging non-deterministically during UI update after an analysis is finished. (#8731)
Fixed batch execution of multiple configured analyses. (#8728)
Fixed ASCET model parsing for differences in Java Runtime versions. (#8640)
Fixed ASCET picture export for embedded pictures in findings. (#8464)
Fixed validation for configuration of multiple license files/directories in the License Manager. (#8631)
Guidelines, Checks, and Documents
Compatibility with MATLAB 2020a and 2020b
Made minor adjustments to ensure compatibility of framework and checks with MATLAB 2020a and 2020b.
Updated EC_ParameterList.xlsx of mes_cgec_9004 and the list of prohibited blocks in mes_cgec_2001 to ensure Embedded Coder compatibility.
New MAB Guidelines (Version 5.0) available
jc_0702: The parameters or constants used in Stateflow shall not contain numeric literals except 0 for initial value and 1 for increment or decrement.
jc_0721: The substates of parallel states shall not be parallel states.
jc_0775: In a Stateflow flowchart only one terminating junction with a single unconditional transition as input shall be used.
na_0003: The {If} and {Elseif} expressions of the If block shall be used only to define input signals as condition.
Improvements
mcheck_misra_slsf_006_b: A new check parameter to ignore blocks by their block type and/or their mask type was added to improve the usability of the check and the transparency of the check behavior. The default parameter setting is chosen to maintain the check behavior from the preceding MXAM version. (#8404)
Specific checks aborted while analyzing the data types of the TargetLink blocks TL_BitSet or TL_BitClear. This has been fixed. (#8606, #8656)
Certain modeling patterns involving TargetLink functions in library models may have caused the determination of TargetLink block properties to fail. This has been fixed (#8541)
mcheck_misra_slsf_053_j: The finding message of the check has been changed slightly for readability purposes. (#8588)
Bug Fixes
mcheck_jc_0221, mcheck_jc_0222, mcheck_na_0030: The checks may have aborted for certain modeling patterns where bus port sources are contained in referenced models. This has been fixed. (#8512)
mcheck_misra_slsf_036_c: In specific cases the check may have given false negative findings for Stateflow port names that do not match the label of the connected signal. This has been fixed. (#8584)
mcheck_ds_0098: The check may have aborted in cases involving a range analysis of vector signals. Now, the check is robust in this respect. (#8639)
mcheck_mes_slsf_9103: The check wrongly detected identical block names with same the library reference. This has been fixed. (#8497)
mcheck_mes_cgtl_4204: The check aborted due to an internal processing error, where variables have not been correctly initialized. This has been fixed. (#8662)
mcheck_misra_tl_5_9: The check aborted when analyzing Gain blocks where the gain value was a matrix. This has been fixed. (#8662)
mcheck_na_0008: The TargetLink block TL_ExtractBits has been excluded from the analysis, because it is no Subsystem in the original sense. Before, the block has caused the check to abort. (#8662)
mcheck_sdt_sc001: The check gave false failed findings for TargetLink port blocks, if their connected source block did not have scaling properties. This has been fixed. (#8704)
mcheck_misra_slsf_048_g: The check gave false negative findings if there was an operation in a Stateflow chart with a number other than 1 or 0 and a variable inside round brackets. This has been fixed. (#8726)
V6.4.0 October 2020
Tool Framework
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
Level
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).
Improvements
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)
Bug Fixes
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)
Improvements
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)
Bug Fixes
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)
mcheck_misra_slsf_026_b:
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)
V6.3.0 July 2020
Tool Framework
Improvements
Make model metrics configuration files available for user changes. (#8104)
Display error to user if creation of annotation definition fails. (#8112)
Display more details to user when connection to third party tools fails, e.g. because of start timeout. (#8130)
Reduced memory footprint when exporting images in reports for ASCET models. (#8194)
Reduce size of mxmr reports by omitting default structural details.
Reduced processing of model structure if user decides to only analyze subsystems.
Bug Fixes
Fixed unreliable initiation of MATLAB connection. (#8050)
Fixed compatibility between MXAM and the MES Quality Tools plugin for Jenkins. (#8204)
Fixed handling of unavailable library items when exporting reports. (#8007)
Updated the ASCET tool adapter to version 5.2.3:
Decode xml character encodings for ASCET online artifact locations. (#8112)
Fixed display of library item details if system browser has script debugging enabled. (#8106)
Respect filter for (de)select all in the artifact configuration. (#7999)
Prevent non-deterministic crash when releasing of licenses fails. (#8037)
Provide setting to allow user to not bypass proxy settings for MXAM webservice calls. (8085)
Fixed usage of -userDir command line option for logging. (#8239)
In the case that the utility function mes_periprocess filtered out all elements of an array, it may have returned one of its dimensions equal to 0 causing an abort for specific checks. This has been fixed. (#8042)
Guidelines, Checks, and Documents
Improvements
mcheck_misra_slsf_016_a: The check parameter MISRA_SL_SF.misra_slsf_016_a.ignoredBlocks has been introduced, so as to ignore blocks from the analysis. (#8097)
mcheck_mes_cgtl_4202, mcheck_ds_0103, mes_sdt_sc001, mes_sdt_sc007_b and mes_sdt_sc007_a: Executing one of these checks with TargetLink 5.0 installed, caused MATLAB printing a warning message in the command window. This message will be supressed.
Changes
mcheck_mes_slsf_9103: The check also ignores the System Requirements block as well as System Requirement Items. (#8099)
Bug Fixes
mcheck_ds_0100: The check aborted if a block with multiple outports, such as an S-R Flip-Flop, was used as a source block for an analyzed block in a TargetLink environment. This issue has been fixed (#8067).
mcheck_mes_slsf_9103: The check aborted if no elements to analyze were found. The issue was fixed. (#8089)
mcheck_misra_slsf_027_e: For certain modeling patterns, the check gave incorrect failed findings for signals named outside reusable subsystems. The issue has been fixed (#7918).
mcheck_misra_tl_4_4, mcheck_misra_slsf_008_a: The checks gave a failed finding for Math Function blocks where the option ‘SaturateOnIntegerOverflow’ is selected but not modifiable due to the selected ‘Function’ property. These blocks are now being ignored. (#8075)
V6.2.0 April 2020
Tool Framework
Synchronous MATLAB batch execution
It is now possible to execute the MATLAB batch analysis synchronously. Use the configuration option ‘b_synchronousExecution’ to enable this for your MATLAB batch analysis.
The API call will return the analysis results as a MATLAB struct to the calling script.
Clone group detection for MATLAB artifacts
The clone groups metric recognizes groups of almost identical subsystems within the model. These groups are potentially created by copy/paste and unnecessarily increase the complexity of a model.
An additional column in the metrics view shows the membership of subsystems in clone groups.
Improvements
Several layout improvements including a new splash screen, naming of menu entries, and new icons.
Added a new column in the Excel report export format showing the objectives of the guidelines.
Improved the performance of the MATLAB artifact structure analysis when MXRAY metrics are used.
Added new commandline parameters to configure license files and servers.
Improved the artifact configuration table to include a search field and make the columns sortable.
Included the image information of HTML reports within the HTML file itself. Reports in the HTML format now only consist of one file and do not create image files anymore.
Bug Fixes
Added support for Atomic Subcharts and Atomic Boxes in the artifact structure. (#7503, #7504)
Fixed handling for creating annotations of not yet saved artifacts. (#7731)
Fixed the behavior of views in the report perspective if a colored cell in the metrics view is selected. (#7588)
Fixed a problem with the uninstaller. (#7823)
Decreased memory comsumption when loading annotations that were saved using an older MXAM version. (#7794)
Fixed a problem that occurred when images were dragged and dropped out of the detail view. (#8008)
Guidelines, Checks, and Documents
Compatibility with MATLAB 2019b
Minor adjustments to ensure compatibility of framework and checks with MATLAB 2019b.
Compatibility with TargetLink 5.0
Minor adjustments to ensure compatibility of framework and checks with TargetLink 5.0.
mcheck_mes_cgtl_9002: Updated TL_ParameterList.xlsx according to TargetLink 5.0.
Update of TargetLink Known Problems checks (available in the Functional Safety Solution).
Improvements
The MXAM Developer Guide for developing MATLAB checks has been updated and improved. For further information, see Developing M-Checks.
mcheck_sdt_sc001, mcheck_sdt_sc007_a/b: The robustness of the data flow analysis has been significantly improved.
Changes
mcheck_misra_slsf_013_a: The check parameter “MISRA_SL_SF.misra_slsf_013_a.MinimumInputNumberOfMultiport” has been removed. Now the check analyzes each Multiport Switch block and gives a review finding if the number of its switch inputs equals one.(#6522)
Bug Fixes
Charts in linked subsystems may have caused failed model compilation or non-identification of TargetLink models. This has been fixed. In addition, data flow analysis was improved.
mcheck_ds_0028: The check gave a failed finding for the Matrix Concatenate block, although it was contained in the check parameter “dSPACE.checkds0028.AllowedBlocks_4”. This issue has been fixed. (#7319)
mcheck_ds_0041: The check gave a failed finding for the Matrix Concatenate block, although it was not contained in the check parameter “dSPACE.checkds0041.ProhibitedBlocks”. This issue has been fixed. (#7319)
mcheck_sdt_sc004_c: The check aborted while evaluating the range of a multidimensional signal going through a Gain block. This issue has been fixed. (#7643)
mcheck_misra_slsf_009_d: The parameter ‘followlinks’ was used incorrectly so that library blocks were ignored independently of the MXAM setting of ‘followlinks’. Now, library blocks are evaluated correctly. (#7668)
mcheck_ds_0100: Specifying a vector, a cell array or a string list for the ‘Number of inputs’ parameter of a Mux block may have caused aborts. This has been fixed. (#7725)
mcheck_misra_tl_7_7: The check aborted when an empty .c file was specified in the Custom Code block. This has been fixed and the check now gives a passed finding. (#7818)
mcheck_misra_slsf_008_b: Using data type casts in block properties, such as ‘uint32(…)’, may have caused an internal processing error. This issue has been fixed. (#7325)
mcheck_misra_slsf_006_b: The check gave false negative findings because of an incorrect analysis of some TargetLink blocks. This has been fixed. (#7589)
V6.1.0 January 2020
Tool Framework
View for MXRAY Metrics
A new view showing MXRAY metrics for selected elements is available in the report perspective.
Sorting, filtering, and color-coded metric values if a corresponding check reports a finding for the model element ease the identification of architectural problems.
Export of tables and trees to Excel files
Tables and trees displayed in MXAM can be exported to Excel files.
Sorting and filtering are applied to the exported data.
Support to edit tags of library items
Tags for checks, guidelines, and guideline documents can be edited in the library browser and the corresponding editors (assuming that the user has the necessary permission).
Improvements
Collecting additional MXRAY metrics, such as global MXRAY complexity metrics and block counts.
Added report validation markers to exported reports.
Moved recent project history to the file menu. Introduced preference setting for the number of recent projects to show.
Separated preferences for preconfiguration of MXAM installations into different files.
Bug Fixes
Fixed persistence of UI state which could prevent opening the report perspective. (#7232)
Fixed excel report design to prevent unwanted page breaks. (#7321)
Fixed a communication issue between MATLAB and MXAM for Java versions >8. (#7421)
Fixed an issue which prevented the connection between MATLAB and MXAM. (#7456)
Fixed the serialization of the mxmr-reports so that all artifact structure information is available when loading the reports in read-only mode. (#7223)
Fixed the customize check parameters wizard to filter global parameters by default. (#7352)
Fixed initial selections in the report perspective after a first analysis. (#7353)
Fixed the support for installing additional features into MXAM installation. (#7498)
Fixed control and dataflow analysis in the ASCET adapter. (#7234)
Adapted splash screen for correct DPI scaling. (#7260)
Guidelines, Checks, and Documents
New guideline and check for Embedded Coder (only available in the Functional Safety Solution)
mes_cgec_2201: The input signal of an Abs block should not be of an unsigned integer data type, since this most likely indicates functional errors. (Guideline referenced in documents MES Functional Safety Modeling Guidelines for Implementation with Embedded Coder and MES Guidelines - Collection of Best Practices)
New guideline and check for handling forbidden blocks (only available in the Functional Safety Solution)
mes_slsf_1700: Depending on the scope of the model or the development phase, certain Simulink, Embedded Coder or TargetLink blocks should not be used. This check allows a user-defined parametrization for these forbidden blocks. (Guideline referenced in document MES Guidelines - Collection of Best Practices)
New guidelines and check for subcharted and parallel states in Stateflow
misra_slsf_039_b: Subcharted states hide information, so that the comprehension of the state machine may be reduced. Avoid this by using subcharted states only if the state machine would otherwise be too difficult to view on screen or on printout.
misra_slsf_040_c: Reduces implicit delays in data processing by setting the execution order of the parallel states appropriately.
misra_slsf_040_d: Avoid erroneous changes of critical execution orders by documenting them appropriately.
All guidelines use the check mcheck_mes_sf_generic_0001 and they are referenced in the document MISRA AC SLSF - Modelling Design and Style Guidelines for the Application of Simulink and Stateflow.
Improvements
Checks could not read Excel sheets when executed in a Jenkins environment. This issue has been fixed for MATLAB Versions newer than 2013b. For older versions a workaround exists. (#7488)
misra_slsf_016_b: The example picture of the guideline has been improved. (#7406)
Changes
mcheck_misra_slsf_016_a: The check gave a failed finding for Signal Conversion blocks. Now Signal Conversion blocks are also allowed to create bus signals. (#7343)
mcheck_jm_0002_a: The check no longer analyzes custom masked blocks, i.e. blocks whose property ‘MaskDisplay’ is not empty and ‘MaskIconOpaque’ is set to either ‘Opaque’ or ‘On’ (depending on the MATLAB Version). (#7294, #7330)
Bug Fixes
Charts in linked subsystems may have caused failed model compilation or non-identification of TargetLink models. This has been fixed. (#6646, #7315, #7383, #7536)
mcheck_mes_slsf_3109: Inner transitions do not cause a review finding anymore. (#6849)
mcheck_ds_0064: The check now also returns a failed finding if MATLAB functionality is used through ‘matlab()’ in a condition/transition/state action in Stateflow. Before, only function calls through ‘ml’ were considered. (#7305, #7542)
mcheck_ds_0038: In case the check gave an overall info finding, this finding could not be mapped to a ‘passed’ with the use of the global parameter Global.CheckItemResultMappings. This has been fixed. (#7324)
mcheck_mes_sf_004: The check returned false failed findings for multiple broadcasts of a function-call output event. This has been fixed. (#7300)
V6.0.0 September 2019
Tool Framework
Architectural Analysis of MATLAB Models (BETA) (only available in the Functional Safety Solution)
MXRAY model metrics are available within MXAM now. It is possible to evaluate local complexity (by Halstead adapted for Simulink®/Stateflow:sup:®) and to measure the depth of a model with the level metric. Furthermore the user can analyze the interface of each subsystem with the metrics for inports/outports, unused inputs, and consider the cyclomatic complexity of Simulink® subsystems.
Standard functionalities for the analysis in MXAM such as parameters, ignore lists, annotations, and reporting are available.
Support for non-Oracle and newer Java Runtime Environments
The minimum required Java version is now 8.
Adding support for open-source Java implementations up to version 12.
There is no Java version included with the installation anymore. The tested version to work with MXAM is ‘AdoptOpenJDK 8’.
Improvements
Adding a show and hide feature for single columns of lists (configured layout is saved and restored).
Adding a new project settings page that allows users to set the global parameter values on the project level.
Annotations saved next to the artifact are stored in one file per artifact and not per configured subsystem name anymore. (#7069)
Bug Fixes
Fixed a layout problem when saving the project on small screens. (#7060)
Fixed a description text with a wrong plural form. (#7001)
Fixed an issue where ignore-list entries could be created based on report findings of virtual projects. (#7033)
Fixed a rendering issue of the user guide if seen in a view. (#7002)
Fixed an issue when showing a license exception message. (#6987)
Fixed an unwanted restriction when moving items in the guideline document editor. (#7165)
Fixed an issue where the dirty state of a project was wrong after trying to save it to a location without write access. (#7175)
Guidelines, Checks, and Documents
Compatibility with MATLAB 2019a
Minor adjustments to ensure compatibility of framework and checks with MATLAB 2019a.
mcheck_mes_slsf_9001: The check and the Excel file ‘SL_ParameterList’ with expected parameter values were updated to match MATLAB R2019a.
MXRAY model metric checks are available within MXAM now (only available in the Functional Safety Solution)
The checks create findings if the configured upper bounds are exceeded.
matlab_mxray_1301: Restricted Local Complexity (referenced in guideline mes_arch_1301, document Functional Safety Modeling Guidelines).
matlab_mxray_1302: Restricted Number of Hierarchy Levels (referenced in guideline mes_arch_1302, document Functional Safety Modeling Guidelines).
matlab_mxray_1303: Restricted Number of Inports (referenced in guideline mes_arch_1303, document Functional Safety Modeling Guidelines).
matlab_mxray_1304: Restricted Number of Outports (referenced in guideline mes_arch_1304, document Functional Safety Modeling Guidelines).
matlab_mxray_1305: Restricted Cyclomatic Complexity (referenced in guideline mes_arch_1305, document Functional Safety Modeling Guidelines).
matlab_mxray_1306: Effective Interfaces (referenced in guideline mes_arch_1306, document Functional Safety Modeling Guidelines).
Improvements
Several checks are now robust with respect to a missing TargetLink installation. (#7136)
The data flow analysis has been significantly improved in order to boost performance and robustness. (#7000, #7034)
mcheck_misra_slsf_026_c: The check provides a new parameter to configure whether Trigger and Enable ports should be analyzed or not. (#6674)
Changes
The MXRAY model metric guidelines were referenced in the document MXAM Starter Set - Extended Version (only available in the Functional Safety Solution).
mcheck_misra_slsf_030_c: The check now provides an automatic repair functionality that positions the Trigger, Enable, and Action port blocks within the correct region and range.
mcheck_ds_0100: The check now gives a failed finding for each block that has an integer output signal if its integer rounding method is not set to ‘Zero’. (#7164)
Bug Fixes
mcheck_mes_sltl_002_b: The data type of input arguments for graphical functions could not be determined. Stateflow data items of this type are properly analyzed now. (#6989)
The data type of the TargetLink Delay block could not be analyzed properly in cases where it was inherited from preceding blocks. This has been fixed. (#6955)
mcheck_ds_0100: The check gave a failed finding for Data Type Conversion or Rescaler blocks that converted a signal from a floating to a fixed-point data type. This has been fixed. (#7164)
V5.3.0 04-07-2019
Tool Framework
Advanced support of search query handling
All keywords for search queries in advanced search fields are summarized and described in the new lucene search fields’ help.
Support for ASCET (v6.4.4 pre-release)
All ASCET models created by ASCET in version 6.4.4 pre-release can be analyzed.
Providing access for ASCET autosar software components (SW-Cs) in the data model.
SW-Cs can be selected fully or partially according to their modeled hierarchical structure.
Full analysis support for Autosar software components including control and data flow.
Improvements
The amount of findings for one report is no longer limited.
Links from HTML reports to MATLAB model elements no longer require MXAM to be running. (#6856)
Support relative paths for attribute ‘secondArtifactLocation’ in MXAM report adapter artifact definitions. (#6935)
Introduced additional validation markers in case of an invalid tool preference setting like a missing path value. (#6294)
Bug Fixes
Fixed a problem that could cause a MATLAB crash when starting MXAM multiple times in MATLAB 2015. (#6687)
Fixed unexpected model closing by MATLAB after analysis. (#6869)
Fixed project handling that was changed by the MATLAB batch API. (#6868)
Removed falsely created validation markers. (#6905)
Fixed a problem where the context menu could not be used in the report navigation, if the report contains an error. (#6936)
Preserved selection in export guideline documents wizard if filtering is used. (#5687)
Disabled drag and drop feature if invalid guideline can be created by dropping. (#6755)
Fixed a problem where the ‘New Check’ dialog could not be completed. (#6860)
Fixed a problem where findings falsely remained in the report after a repair execution. (#6978)
Guidelines, Checks, and Documents
Custom Processing of Modularization Library Blocks (BETA)
Library blocks used for modularization purposes can now be identified in the MXAM analysis.
MXAM differentiates modularization library blocks from the standard reusable library blocks.
The hook function ‘mes_isModularizationLibBlock’ allows a user defined identification.
For further help, see Using the Application Programming Interface (API) for MATLAB.
Extended Support for Simulink Data Dictionary
The use of Simulink Data Dictionary (SLDD) elements is now supported by MXAM.
Improved evaluation of variables from the different workspaces and SLDD.
For custom check implementations, findings for SLDD objects can be linked in the report and highlighted in the model. (#6885)
Compatibility with TargetLink 4.4
Minor adjustments to ensure compatibility of framework and checks with TargetLink 4.4.
mcheck_mes_cgtl_9002: The check takes into account the new code generator options ‘InitializeVariablesViaRestartFunction’ and ‘RealTimePlatformSupport’. The value of ‘InitializeVariablesViaRestartFunction’ is analyzed by default.
Update of TargetLink Known Problems checks (available in the Functional Safety Solution).
tl_pr20080215_03: The guideline and check have been removed as they are no longer relevant to the TargetLink versions supported by MXAM.
New guideline and check for unconnected transitions in Stateflow
mcheck_mes_slsf_3300: Reduce undefined behavior during simulation and connection problems by connecting each transition to a destination. (Referenced in Guideline mes_slsf_3300, document MES Guidelines - Collection of Best Practices)
Improvements
Improved the analysis performance of TargetLink subsystems. (#6660)
mcheck_misra_slsf_012_a: The new check parameter ‘MISRA_SL_SF.misra_slsf_012_a.Threshold’ has been introduced for the value of the threshold. In addition, a repair action was added for the parameters ‘Threshold’ and ‘Criteria for passing first input’ of the Switch block.
mcheck_misra_slsf_053_c: Previously, the check may not have provided the complete label of a transition. Now, the full label shows in the finding message. (#6779)
mcheck_misra_slsf_025_a_1, mcheck_misra_slsf_025_b: The check parameters ‘MISRA_SL_SF.misra_slsf_025_a_1.Libs2Check’ and ‘MISRA_SL_SF.misra_slsf_025_b.Libs2Check’ now contain the TargetLink library ‘tllib’ by default so that TargetLink blocks can be found and analyzed. Furthermore, a warning finding is given if a library is inserted in the check parameter but cannot be loaded. (#6941)
Changes
mcheck_misra_slsf_006_c: The check no longer analyzes PreLookup blocks. (#6743)
mcheck_misra_slsf_004_a: The check no longer analyzes the option ‘DiscreteInheritContinuousMsg’ in MATLAB Versions 2015b or newer, since it was removed from the model configuration parameters dialog. (#6940)
Bug Fixes
mcheck_misra_slsf_025_a_1, mcheck_misra_slsf_025_b: Previously, the checks may have aborted when attempting to close opened library models. The checks properly close those models now. (#6874)
mcheck_misra_slsf_025_a_5: The check supports the new values ‘opaque’, ‘transparent’, and ‘opaque-with-ports’ of the mask parameter ‘MaskIconOpaque’ now. (#6907)
mcheck_misra_slsf_006_b: The check no longer analyzes Direct Look-up Tables and Interpolation Using Prelookup blocks. (#6890)
mcheck_mes_sf_001: The check may have given false failed findings for multi segmented transitions with non-junction destinations. (#6784)
V5.2.0 01-04-2019
Tool Framework
Wizard for the creation of guideline documents
A wizard provides help for the selection of guidelines in new guideline documents.
Guidelines are grouped by aspects which will result in corresponding chapters of the document.
Guidelines are filtered based on development project specific configurations:
used MATLAB toolboxes
used code generator
ISO 26262 safety requirements
Guidelines recommended by MES are selected by default.
Improvements
Increased usability of findings view for large reports.
Increased user awareness for active view filters with highlights.
Hide empty groups of markers in validation view. (#6438)
Added details for applied annotations to the report result which can be queried by MATLAB API.
Use the same filtering and advanced search capabilities in the findings view as in other views.
Added validation for guidelines that are included in multiple guideline documents selected for the active project.
Changed default report export format to HTML.
Separated tool and view entries in the main menu.
Added a “Show head version only” filter to ease the guideline documents selection in the project settings.
Moved navigation elements in HTML and PDF reports to ease navigation within the report.
Remember recent path in the artifact definition selection dialog.
Improved user interface layout for large library lists in new item wizards. (#6202)
Bug Fixes
Remove stale report validation markers when a report gets removed. (#6409)
Fixed update of markers shown in validation view when different reports get selected. (#6409)
Check user access rights for drag&drop in ignore list editor before moving rules. (#5502)
Enable Sorting in dialog for adding shared parameters. (#6371)
Prevent closing dialogs when pressing enter key while editing filter texts. (#6574)
Fixed a problem with a relative path given for the annotations located next to artifact if the target folder does not exist. (#6683)
Guidelines, Checks, and Documents
mcheck_mes_slsf_9103: Exclude specific library blocks from the analysis
The check has been equipped with a second check parameter ‘MES.mes_slsf_9103.IgnoredLibraries’ that enables the user to ignore library blocks additionally to project-wide ignored libraries.
mcheck_db_0141: Allow blocks in feedback loops
The check has a new check parameter ‘MAAB.db_0141.AllowedBlocksInLoops’ that allows you to specify blocks that may be orientated from right to left within a feedback loop. These blocks can be identified by particular blocktype-masktype combinations, or a single * as a wildcard character can be used.
Changes
mcheck_jc_0451: The check now also takes into account expressions that are explicitly converted to an unsigned integer type and variables whose data type is inherited from the chart definition. Moreover, multiplications of uint8/16/32-variables by (-1) are also reported. (#6484)
mcheck_ds_0070: In accordance with the dSPACE guideline TL_RULE_STATEFLOW_EMBEDDED_MATLAB, the check now also verifies the action language of the chart to be ‘C’. (#6512)
mcheck_misra_slsf_031_a: The check parameter ‘MISRA_SL_SF.misra_slsf_031_a.AllowedBlocksInLoops’ now additionally allows the specification of masktypes of blocks to be ignored within feedback loops. (#6474)
mcheck_misra_slsf_006_b: For Discrete Filter blocks the Simulink parameter ‘InitialDenominatorStates’ can not be modified via GUI, if the property ‘Filter Structure’ is ‘Direct form II’. Hence, these parameters are no longer considered by the check. (#6548)
mcheck_misra_slsf_026_c: The check description was changed: The third pass-fail criterion ‘Also use prefix or suffix if the port block name would be the same as any other block name, i.e. any block has the same name as a signal connected to a port’ was removed since it is not part of the respective guideline. (#5938)
mcheck_misra_tl_3_2: The check description was improved in order to clarify the check functionality concerning Look-Up Table blocks. (#6537)
Bug Fixes
mcheck_misra_slsf_031_a: In some cases the check gave redundant failed findings for left oriented destination blocks. Guideline violations are now only reported once per block. (#6657)
mcheck_na_0030: The check gave false failed findings for bus output signals of Bus Selectors. Moreover, for certain modeling patterns the check did not properly assess whether a signal was a bus signal. Both issues have been fixed. (#5941)
mcheck_ds_0093: The guideline TL_RULE_GENERAL_DIAGNOSTICS has a guideline parameter with different expected values for the parameter ‘Underspecified initialization detection’ depending on the used TargetLink version. When there was no TargetLink installation, the check reported this parameter as unknown. This issue was corrected and now the check gives a warning indicating the user should replace the expected value of the guideline parameter directly with the desired value. (#6443)
mcheck_ds_0105: The check aborted if a TargetLink Bus Inport block was used as an input signal source for the Selector block. This issue was fixed. (#6459)
mcheck_na_0009: The check gave an incorrect failed finding for signals with a propagated label, if the signals were located within a child subsystem of a library block. Now, those signals are passed. (#5939)
mcheck_na_0009: If a Bus Selector block had the option ‘OutputAsBus’ selected and if its output signal had no propagated signal name, the check gave an incorrect failed finding for this output signal. Now, those bus signals no longer get a failed finding, because they are new signals and also the signal propagation is not available. Exception: In MATLAB R2011b, the signal propagation is available in that case and hence, the check now gives a failed finding if the new bus signal is not named but has a propagated label. (#5940)
mcheck_mes_slsf_9003: In some cases the repair action returned a wrong finding message. This has been corrected. (#6513)
mcheck_jc_0451: In specific cases the check did not properly process white spaces in expressions. Moreover, some subtractions were incorrectly reported as failed. The issues were fixed. (#6484)
mcheck_misra_slsf_026_b: The check aborted if it was executed on a library model. This was fixed. (#6518)
mcheck_mes_slsf_9101: The check parameter ‘MES.mes_slsf_9101.CheckHiddenNames’ did not work correctly when set to false and the check analyzed blocks with the option ‘ShowName’ = ‘off’. This issue was fixed. (#6533)
mcheck_db_0110: The bit mask properties of Bitwise Operator blocks were always analyzed. Now, the bit mask no longer gets a failed finding if it is not used. (#6548)
V5.1.0 15-01-2019
Tool Framework
Comfortable loading of projects and reports via drag&drop
Projects and reports can be loaded into MXAM by dragging and dropping the corresponding files into the tool.
Configurable mapping strategy for annotations
The strategy to identify MATLAB elements is now configurable in the adapter preferences. This allows, for example, annotation re-mapping even if the path of the element has changed by using only the SID.
MATLAB elements of the same artifact can be identified by either ‘SID’, ‘Path’, or ‘SID and Path’.
The configuration can also be changed for previous reports in continue work mode.
The default strategy has been changed from ‘SID and Path’, used in previous tool versions, to ‘SID’. (compatibility considerations)
For further help, see Configurable identification of MATLAB elements.
Switching to 64bit architecture
This allows the configuration of an extended amount of memory, e.g. to support bigger reports.
Get extended help in the validation view
Added validation of project configuration before running the analysis so that the user is warned in case of potential problems.
Improved and enhanced validation of library content to ensure usage of consistent data.
Validation information gets persisted in the MXMR reports and is restored when reports are loaded. For reports loaded in ‘continue work’ mode, a re-validation is executed to update the validation results.
Improved the details shown for validation problems in the validation view.
Improvements
Enhanced matching of annotations for ASCET to use message ID and message parameters instead of message text. Now annotations are still re-mapped even if the message text was changed.
Eliminated necessity for restarting the MATLAB adapter and connected MATLAB for some preference changes.
Improved performance of annotation re-mapping by not searching for annotations files in child directories of search path anymore.
Added global guideline compliance statistic for each artifact to MXMR report.
Aligned fields for search/filters with corresponding names shown in the UI to ease the searchability. (#6235)
Allow predefined selection states of checks in the Guideline Document editor which can be overridden and saved for MXAM projects as needed. Added the option to reset the selection state in the project guidelines perspective to the one defined in the guideline document.
Added notifications for finished analysis and report import/export to the MXAM tray icon. Added menus to easily navigate to the working directory and the user directory.
Added support to export reports with the API in a short JUnit format.
Improved error handling for importing reports. (#6166)
Excluded findings better or equal to INFO from heat map in the HTML/PDF reports. (#6393)
Bug Fixes
Fixed typo in message dialog shown in case of an unavailable license. (#6249)
Fixed abort of report import in case user decided to cancel the project selection. (#6269)
Prevent saving projects with an invalid title, otherwise resulting in a broken list of recent projects. (#6245)
Fixed restart of MATLAB adapter, otherwise resulting in MATLAB connection problems and a missing tool artifact selection tab. (#6278)
Fixed handling of missing artifact location in annotation wizard, in case the MATLAB artifact to annotate was not saved yet. (#6160)
Fixed save of project in case user did not change the project settings but other changes have been made. (#5667)
Fixed cancel behavior of ‘Customize Check Parameters’ wizard in case of user is canceling a focus change. (#6103)
Fixed error handling in utility for command execution. (#6339)
Fixed display of annotation message in finding details view. (#6026)
Set UNKNOWN as default value for Ascet6Object’s type attribute to fix metamodel migration for reports. (#6267)
Fix duplicated UIDs of default guideline template and parameter definition. (#6405)
Fixed parameter handling for changed default values. (#6375)
Fixed initialization of Annotation Wizard. (#6396)
Fixed list of predefined values for parameters to ensure no empty value can be selected. (#6407)
Guidelines, Checks, and Documents
Compatibility with MATLAB 2018b
Minor adjustments to ensure compatibility of framework and checks with MATLAB 2018b.
New guideline and check for using Stateflow actions
mes_slsf_3110/mcheck_mes_slsf_3110: Reduce error probability and increase comprehensibility when modeling flow charts and state charts by using only one type of action in Stateflow.
Improvements
The dataflow analysis to determine compiled data types has been considerably improved.
Changes
mcheck_misra_slsf_006_b: For TargetLink blocks, the check gave findings for the tunable mask parameter ‘data’. This generic parameter is now ignored, as it holds TargetLink code generation data. Likewise, the blocks PreLookup, Model Info, Scope, and Clock are no longer reported. Also, signed named constants, e.g. ‘-x’, are not reported as failed. (#6364,#6168,#6441)
mcheck_sdt_il001_a: If a signal of an Inport or Outport originates from a conditionally executed block, a review finding is given. (#6265)
mcheck_ds_0097: In the case of multiple TargetLink subsystems, the check previously gave a warning finding. This warning has been removed because the check works fine for more than one subsystem. (#5928)
Bug Fixes
mcheck_na_0032_b, misra_tl_5_5: In the special case where a file named ‘tllib’ is contained in the MATLAB path although TargetLink is not installed, these checks might have aborted for particular modeling patterns. This has been fixed. (#6290)
mcheck_ds_0093: For the specific case that the Simulink diagnostics option ‘UnderspecifiedInitializationDetection’ should be analyzed, the check gave an incorrect finding. Also, the repair option did not work properly. This issue has been fixed. (#6197)
mcheck_na_0032_b: Signal branches of merge block input signals that are placed in front of conditionally executed subsystems are no longer marked as failed. (#5778)
mcheck_misra_slsf_025_a_1: Blocks with the Operator property are correctly identified even if that specific operator does not appear in the library. (#6158)
mcheck_misra_slsf_036_a: In cases where there is a feedback loop in the model, the check could previously get caught in an infinite loop during the analysis. This has been fixed. (#6217)
mcheck_tl_pr20050721_08: The check may have aborted due to an undefined internal variable. This has been corrected. (#6228)
mcheck_misra_slsf_012_a: If a TargetLink Switch block is located outside a TargetLink Subsystem, or if the analysis is executed from within a TargetLink Subsystem, the check may have given incorrect failed findings. Both issues have been fixed. Also, a warning finding is now given in the first case. (#6239)
mcheck_misra_slsf_030_c: The check may have given a false failed finding if a Port block was positioned in the correct region (left, center, right) but the region was smaller than the allowed range given by the parameter. (#6198, #6215, #6226)
mcheck_misra_slsf_030_ab, mcheck_misra_slsf_030_c: The checks gave a failed finding if only one block existed in a subsystem. Now, the checks always give a passed finding in such cases because it complies with the guideline. (#6198, #6215, #6226)
mcheck_sdt_il001_a: The check now properly analyzes bus elements when searching for signal duplications. (#6265)
mcheck_misra_slsf_006_b: The check gave a false failed finding when using enumeration elements in calibratable block parameters. (#6251)
mcheck_na_0002: The check may have given false positive or false negative findings for blocks whose source signal is contained in a nested bus. This has been fixed. (#6254)
mcheck_mes_sltl_002_b: Calling a certain TargetLink utility function while analyzing TargetLink Data Dictionary objects may have caused MATLAB 2017b to crash. This has been fixed. Also, in specific situations, properties of TargetLink Stateflow data with scope ‘Data Store Memory’ could not be analyzed. In those cases, the check now searches for the properties of the respective Data Store Memory block. (#6312)
mcheck_misra_slsf_016_d: For specific modeling patterns involving Selector blocks, the check may have aborted due to an erroneous determination of input signal indices. This issue has been fixed. (#6159)
mcheck_ds_0100: The check may have aborted for certain bus data involving non-scalar elements. This issue has been fixed. (#6212)
mcheck_cgtl_4301: The post-processing of the check results has been safeguarded to prevent an aborted result. (#6384)
mcheck_cgtl_4202: The analysis of DD variables of type ‘struct’ may have failed when using local scalings. This issue has been fixed. Moreover, the use of a specific TargetLink 4.3 utility function has been safeguarded in order to prevent MATLAB crashs. (#6404,#6411)
V5.0.0 27-09-2018
Tool Framework
Comprehensive support for the setup of an automated MXAM analysis.
Simply export your MXAM DRIVE project to a MATLAB script file using the GUI.
The generated file can directly be executed in MATLAB and uses the batch API of MXAM DRIVE.
Use these scripts in conjunction with the new MES Jenkins Plugin to easily setup your continuous integration.
This feature is only available with a Continuous Integration License (CIL).
For further help, see MATLAB Batch Exporter.
New report comparison checks to compare two MXAM DRIVE reports (BETA).
Compare two MXAM DRIVE reports according to their structural and semantical equality.
Differences are analyzed based upon findings, annotations and their guideline documents structure.
See statistical information about the amount of equal and different findings.
This feature is only available in the Functional Safety Solution.
For further help, see Perform an MXAM Report Comparison.
Licensing
Updated the license module to support parallel execution on the same machine.
Compatibility with MATLAB 2018a
Minor adjustments to ensure compatibility of framework and checks with MATLAB 2018a.
Minimum required version of MATLAB is now R2011b.
Improvements
Enhanced memory management to enable analysis with larger models. (#6139, #5964, #5889)
Reduced UI flaws in the document navigation tree when selecting findings. (#5714)
Updated the ASCET tool adapter to version 5.0.2.2 that supports more precise coordinate information for hierarchy connectors. (#5903)
Enhanced annotation handling from annotation libraries to reduce the time needed to map them. (#6032)
Added a new CLI option ‘copyDefaultUserDir’ that allows to copy settings from the default user directory to a custom user directory.
Removed public Java API that was previously marked as @Deprecated.
Enhanced handling of content with obsolete ID information. (#6058)
Minor improvements of displayed information in the UI. (#6151)
Bug Fixes
Fixed that the tool artifacts tab in the artifacts wizard would not appear in certain cases (#6136)
Fixed the relative paths handling for report names in the project settings and the export report dialog. (#6108)
Fixed broken links in the MXAM DRIVE Developer Guide. (#6081)
Fixed possible deadlocks between the customize check parameters and import report dialogs. (#6054)
Fixed selection states of checks for imported reports that reference the same check multiple times with different selection states. (#6012)
Fixed a problem where users without sufficient rights could save project settings. (#5882)
The attempts to unload compiled referenced models after check execution have been prevented. (#5880)
Added exception handling to the export report dialog in case no report has been opened. (#5792)
Fixed occurrences of guidelines that have been deleted in the project guidelines view. (#5721)
Fixed malfunction of filter options in the check parameter dialog. (#5654)
Guidelines, Checks, and Documents
New guideline document “Fit for Testing”
This guideline document is intended to support Simulink;, TargetLink®, and Embedded Coder® model tests. Compliance with this set of guidelines helps prepare models for efficient testing. The document includes guidelines that notably support
unique naming of potential test objects to help define between different test objects in a model simulation,
interface coherence to support a comprehensive test interface,
clear data flow to promote model understandability and transparency.
New MES-MATLAB guideline and associated check
mcheck_mes_slsf_9103: Unique Naming of Subsystems and Charts (referenced in guideline mes_slsf_9103, document mes_fit_for_testing).
New version of MXAM Starter Set and MXAM Starter Set Extended Version
Addition of several guidelines, mainly from the dSPACE TargetLink library.
Replacement of obsolete or redundant guidelines.
For a detailed account of the changes, see the Guideline Document’s history.
Improvements
Extended support for the analysis of multi-dimensional numerical arrays in block parameters and Stateflow expressions. (#5868)
Changes
mcheck_mes_slsf_006_b: The check implementation was renewed in order to suit the requirements of the corresponding guideline misra_slsf_006_b
mcheck_mes_cgtl_4301: Given that it only analyzes TargetLink properties, the check now requires a TargetLink installation. (#5853)
Dataflow Analysis: The base type of TargetLink’s built-in data type ‘Bool8’ is now considered as Boolean as long as the constraints have the default values. Previously, it was identified as UInt8.
mcheck_mes_slsf_9001: Suggested values for two “Diagnostics” settings were changed in order to not cause errors in SIL via TargetLink. (#6123)
mcheck_misra_slsf_030_abc: The check was split into two parts, mcheck_misra_slsf_030_ab and mcheck_misra_slsf_030_c. (#6001)
Bug Fixes
mcheck_na_0013: The check implementation deleted line breaks from transition labels, which may have led to a semantic change. The issue has been fixed. (#5918)
mcheck_mes_sltl_001, mcheck_na_0013: In some cases, expressions containing negative numbers as first operands were incorrectly identified as constants. The issue has been fixed. (#5868)
mcheck_sdt_sc002_e: In some specific cases of Stateflow data, the check aborted when an unknown variable was referenced. The check has also been improved to consider the TargetLink properties of charts in TargetLink models.(#5987)
mcheck_misra_tl_6_1: For block parameters, in the case of nested buses, the LSB was not correctly analyzed, which potentially led to false negative findings. This problem has been fixed. (#5799)
mcheck_misra_slsf_026_c: The description of the check parameter MISRA_SL_SF.misra_slsf_026_c.LabelSignalLinesConnectingReusableSubsystem has been modified in order to be consistent with its functionality. (#5759)
mcheck_ds_0107, mcheck_misra_tl_5_7: The specific case of the control input of a Multiport Switch block having an integer data type with a positive data range was not reported as a failed finding. This case is now correctly issued a failed finding. The failed findings have also been improved to avoid confusion. (#5691)
mcheck_sdt_il001_a: In specific cases, the check was stuck in an infinite loop while analyzing TargetLink Bus Inports or SWC ReceiverPorts. This has been fixed. (#5896)
mcheck_mes_sf_001: In specific cases, the check incorrectly reported transitions as a loop. This problem has been fixed. (#5776)
mcheck_tl_pr20060928_17, mcheck_mes_tl_001: Calling a certain TargetLink utility function while analyzing TargetLink Data Dictionary objects may have caused MATLAB 2017b to crash. This has been fixed. (#5911,#5949,#6120)
mcheck_misra_slsf_048_g: If a Chart contained at least two States, the check might have given the wrong State name in the finding message. This has been corrected. (#5959)
mcheck_ds_0102: The failed finding message was corrected to describe the data type of the block being reported. (#5976)
mcheck_misra_slsf_036_a: The check aborted when the source is the Data Store Memory block. The issue has been fixed. (#5982)
mcheck_sdt_sc004_c, mcheck_ds_0098: When the source of the arithmetic block is a Gain block, the check uses the Gain value to evaluate the range of the arithmetic operation. Previously, only constant values were considered. (#6052)
mcheck_misra_slsf_016_a: The check always gave a “passed” when the option ‘OutputAsBus’ of the Bus Selector block was set to ‘on’. Now, failed messages are created whenever this option is enabled and new bus signals are created. (#5635, #5925)
mcheck_misra_slsf_006_c: The check aborted in cases where the block parameters were entered as tables. This has been fixed. (#6116)
mcheck_mes_sltl_002_a: In certain cases, the check aborted for non-scalar input signals. The issue has been fixed. (#5900)
V4.7.0 21-06-2018
Tool Framework
Customization of guideline selection on project level
The selection of Guideline Documents can now be saved to the project. This allows given Guideline Documents to be tailored more easily to project-specific needs.
The choice to persist the selection state of checks and guidelines has moved from the Guideline Document editor to the MXAM project and is therefore not available in the Guideline Document editor anymore.
Existing projects will be converted to the new format if they are saved for the first time.
For further help, see Modify the set of Guidelines and Checks in a Project.
Direct navigation from the parameter view to the customization wizard
Double-clicking on a parameter or parameter setting from wherever it can be inspected will open the customization wizard.
The corresponding parameter will be preselected, allowing you to modify it to your needs immediately.
For further help, see Customize Check Parameters Wizard.
Guarantee consistent reporting
Reports are marked as potentially inconsistent when a rerun or repair has been conducted on only a subset of checks and/or artifacts.
This will warn the user that different checks might have been analyzed on different versions of the model and ensures complete reporting for quality management.
For further help, see Rerun Checks or Repair Check Findings.
Improvements
Windows command line parameters for ‘mxam.exe’ are now also available in MATLAB API for ‘mxam.m’ and ‘mxamapi_start_batch_execution.m’.
Adjustments to report formats aligning information contained therein and keywords that are used. (#5579)
The file ‘Content.m’ residing in MXAM’s root directory allows for the use of the MATLAB ‘ver’ command if the MXAM root is contained in the MATLAB path only. (#5474)
Improved filter information about selected artifacts in the Rerun/Repair dialog when used in combination with filters. (#5662)
Improved error handling and logging in MATLAB batch analysis. (#5755)
Minor improvements of UI and displayed information. (#5531, #5556, #5562, #5563, #5567, #5568, #5576, #5713)
Bug Fixes
In the dialog for selecting artifacts to rerun or repair, the actual selection could get out of sync when used in combination with filtering. (#5536)
Fixed an unintended behavior when canceling the deletion of reports. (#5569)
Fixed image size in exported reports from preventing label clipping.(#5630)
Fixed a problem with closing models after repair mode when using model referencing. (#5628)
Fixed an NPE in ASCET adapter that could occur when querying sequence calls for complex elements. (#5637)
Fixed an issue that prevented selection of artifacts for rerun on single checks. (#5661)
Fixed handling of non-ASCII chars in web services and reporting. (#5728)
Removed unintended output on MATLAB console when handling ignore-list options. (#5589)
Fixed a bug that allowed two projects to be opened simultaneously. (#5797)
Guidelines, Checks, and Documents
Compatibility with TargetLink 4.3
Minor adjustments to ensure compatibility of framework and checks with TargetLink 4.3.
For TargetLink 4.3, the guidelines TL_RULE_DISC_LIB_PERMITTED_BLOCKS and ds_0022 now allow the use of Delay blocks.
New dSPACE TargetLink checks
mcheck_mes_cgtl_4204: Restrictions with regard to the Fcn Block (referenced in Guideline TL_RULE_USERFUNC_LIB_FCN_BLOCK, document dSPACE Modeling Guidelines 4.0.3)
Extended support of TargetLink Enumerations
The robustness of the data flow analysis has been significantly improved. Now, TargetLink explicit enumeration data types can be analyzed.
Improvements
Enumeration elements in Stateflow Charts can now correctly be identified as constants in order to not be treated as variables. (#5715)
Specific non-variable block parameters such as enumeration elements, boolean and non-scalar literals as well as calls to MATLAB functions with literal parameters (e.g., ‘exp(1)’) are henceforth correctly identified as constants. (#5715)
The robustness of the data flow analysis has been enhanced with regard to different methods of block parameter specifications, including mask, base and model workspace parameters. (#5482)
mcheck_misra_tl_6_1: To ensure full compliance with the guideline TL_ADV_OPTI_POWER_OF_2, the check now also considers Stateflow data items. (#5636)
mcheck_ds_0093: The former check parameter ‘dSPACE.TargetLink.DiagnosticSettings’ is now named ‘dSPACE.TargetLink.ds_0093.DiagnosticSettings’. Furthermore, the check parameter ‘dSPACE.TargetLink.ds_0093.minDiagnosticsError’ has been introduced. If it is set to false (default value), only the values that are defined in the parameter ‘dSPACE.TargetLink.ds_0093.DiagnosticSettings’ are allowed. If the parameter is set to true, the check does not report a failed finding for parameters with stricter warning/error levels than the desired value. (#5580)
mcheck_mes_slsf_9001: The check can now also analyze configuration options that have been set in a configuration reference. The repair action and the check parameter MES.mes_slsf_9001.minDiagnosticsError are not available in this case. (#5718)
Changes (compatibility considerations)
mcheck_jc_0231: Inport and Outport blocks have been excluded from the analysis in this check since these blocks are already being analyzed by the check mcheck_jc_0211.
mcheck_misra_slsf_012_a, mcheck_jc_0231, mcheck_misra_tl_5_8: These checks no longer allow to specify all available switching criteria in the check parameter ‘Criteria’ at the same time. Now, they give a warning finding in that case and the model will not be analyzed. (#5431)
Bug Fixes
mcheck_mes_sltl_001: The specific case of vector-valued constants could not be handled by the check. The issue has been fixed. (#5845)
mcheck_sdt_sc007_b: In the specific case where the destination block of the Outport of a TargetLink Function Subsystem is a DataStoreWrite block, the check could not determine the output variable’s scaling type. The check now reads the scaling type of the corresponding DataStoreMemory block. (#5681)
mcheck_sdt_sc002_c: The determination of scaling properties for Stateflow data items now takes the width of referenced DD variables into account in order to correctly compare non-scalar scaling properties. (#5699)
mcheck_na_0027: The check aborted when a library referenced in the parameter ‘MAAB.na_0027.Libs2Check’ is a structured library. Also, in specific cases the check gave incorrect failed findings for Charts. Both have been fixed. (#5753)
mcheck_db_0032_a: In the specific case of a masked Chart, the check gave incorrect failed findings about signal lines inside the Chart. This has been fixed. (#5752)
mcheck_db_0123: The check also included MATLAB Function blocks. The analysis is now confined to Stateflow Charts. (#5761)
mcheck_sdt_ic002: In models where many conditional subsystems are connected to each other in deeper levels, the efficiency of the check was compromised and caused MATLAB to freeze. This issue has been fixed. (#5772)
mcheck_misra_slsf_006_c: A problem with the handling of vector-valued initial conditions in Simulink and TargetLink models has been fixed. Concerning the Integrator block, the wrapping parameters are ignored if the option WrapState is ‘off’. (#5824,#5848,#5831)
mcheck_misra_slsf_036_a: The compile mode is now required to conduct an in-depth analysis of bus structures. In addition, a more efficient data flow analysis has been implemented. (#5462)
mcheck_misra_tl_3_3: The proper identification of DD variables for the table option ‘InputPort’ of TargetLink blocks of type ‘Interpolation_n-D’ has been safeguarded. (#5608)
mcheck_db_0110: To identify tunable block parameters, the attribute ‘read-only-if-compiled’ is required. This fact is now taken into account, which prevents the analysis of certain non-tunable block parameters. (#5575)
mcheck_jc_0511: In certain cases, elements of graphical functions that did not match the return variable had been analyzed. The issue has been fixed. (#5573)
mcheck_mes_slsf_9101: The TargetLink block ‘CounterAlarm’ is only considered in the analysis if the library ‘tl_rtos_lib’ is installed. (#5550, #5587)
mcheck_mes_slsf_9001: The Excel file ‘SL_ParameterList’ with expected parameter values was updated to match MATLAB R2015b. Also, the expected value of the parameter ‘Element name mismatch’ was modified to ‘error’ due to TargetLink compatibility. The check has been improved to accept expected values for newer MATLAB versions as well. (#5642)
mcheck_misra_slsf_012_a, mcheck_jc_0231, mcheck_misra_tl_5_8: These checks gave an incorrect failed finding about the threshold value of a Switch block if more than one switching criterion was specified in the check parameter ‘Criteria’. This has been fixed. (#5431)
V4.6.0 29-03-2018
Tool Framework
Improved documentation of ignore rationales
It is now possible to directly trace the ignore rationale within the report for each ignored finding.
The rationale, defined in the ignore rule, is now displayed in the report annotation view for each ignored finding.
The rationale is also exported to the HTML, PDF, and Excel report (format: full).
For further help, see Ignore Parts of an Artifact (MXAM DRIVE User Guide > Use Case Scenarios > Manage a Project Setup > Using an ignore-list).
Extended report configuration (#3494, #4806, #5053)
The default report export settings can now be predefined in the project settings. The report export wizard can also be adjusted to use only those settings or adopt them as default values.
MXAM is now able to save reports next to an artifact in a multi-artifact analysis by identifying the report location as the artifacts’ common root path.
For further help, see Project Perspective (MXAM DRIVE User Guide > User Interface > Perspectives).
Extended repair and rerun options (#4806, #4814, #5053)
Perform the rerun and repair actions within the report perspective for selected artifacts.
Use the ‘interactive’ option to perform the repair action without user interaction. Please note that this automated action needs to be handled with care.
For further help, see Rerun checks in a report (MXAM DRIVE User Guide > Use Case Scenarios > Run a Guideline Compliance Analysis > Run an Analysis Using the User Interface) and Repair guideline violations (MXAM DRIVE User Guide > Use Case Scenarios > Evaluate Report Results > Repair guideline violations).
Improvements
Use the keyword ‘open variable editor’ in the check implementation of a custom check to create links to variables in the MATLAB workspace. (#5053)
Use drag and drop in the ignore-list editor to move rules between ignore-lists.
Buttons in the project perspective are only accessible if a useful action can be performed on the current selection.
Get an overview of all customized check parameters within the analysis configuration view in the report perspective.
If the initialization of MXAM DRIVE in MATLAB is triggered separately, the teardown will leave all paths in MATLAB untouched to guarantee integrity when other tools are integrated into MATLAB.
Updated ASCET tool adapter (v5.0.2) to support the final version 6.4.3 of ASCET. (#5413)
Improved behavior of license dialog on startup of MXAM. (#5394)
Bug Fixes
Fixed the report to also contain MATLAB’s model information for referenced models. (#5290)
The status handling of MXAM’s content to allow new versions of guidelines to be created has been fixed. (#5355)
Unified validation result of project’s settings regarding missing artifacts. (#5362)
Fixed handling of project’s ignore lists that could cause the same list to be added multiple times. (#5365)
Fixed handling of project’s managers to prevent the addition of the same manager multiple times. (#5364)
Fixed scaling of UI elements on resizing of respective dialogs and windows. (#5350, #5344)
A rare issue that caused problems in the Details view when browsing the findings of a report has been solved. (#5490)
After a batch analysis has been executed, the current project in MXAM is now loaded correctly. (#5489)
Fixed an issue with executing a batch analysis if MXAM is already running and MATLAB is not yet connected to MXAM. (#5484)
The MXMR export in combination with MATLAB R2009b could not be saved in some cases due to an unexpected format of SID. (#5522)
Fixed how license expiration of evaluation licenses is displayed. (#5306)
Guidelines, Checks, and Documents
Compatibility with MATLAB 2017b
Minor adjustments to ensure compatibility of framework and checks with MATLAB 2017b.
New dSPACE Targetlink checks with focus on runtime improvement, code size, and control flow in Stateflow
mcheck_mes_cgtl_4202: 64-Bit Operations (referenced in Guideline TL_RULE_OPTI_64_BIT, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_cgtl_4203: Use of Constraint Limits (referenced in Guideline TL_ADV_OPTI_CONSTRAINTS, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_slsf_4112: Use of Transitions in Control Flow (referenced in Guideline TL_RULE_STATEFLOW_TRANSITIONS_IN_CONTROL_FLOW, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_slsf_4113: Execution Order of Transitions (referenced in Guideline TL_RULE_STATEFLOW_USER_TRANSITION_ORDER, document dSPACE Modeling Guidelines 4.0.3)
New MES checks with focus on testability
mcheck_mes_slsf_9101: Blocks With Generic Name (referenced in mes_slsf_9101, document MES Best Practices)
mcheck_mes_slsf_9102: Naming of Logged Signals (Simulink/Embedded Coder) (referenced in mes_slsf_9102, document MES Best Practices)
Additional new checks
mcheck_na_0014_a, mcheck_na_0014_b, mcheck_na_0014_a: Use of Local Language in Simulink and Stateflow and TargetLink (referenced in na_0014, document MAAB 3.0)
mcheck_mes_slsf_3109: Avoid Transitions Crossing State Boundaries (referenced in mes_slsf_3109, document MES Functional Safety Modeling Guidelines)
Improvements
mcheck_na_0002: The functionality of the check has been considerably improved. The check now analyzes the actual data type of the input signal of the respective block instead of solely comparing the block lists that were given in the check parameters. The number of check parameters has been reduced to two: ‘BlocksRequiringBooleanInput’ and ‘BlocksRequiringNumericalInput’. These contain a list of blocks that are investigated by this check and can be extended. In addition, there is a new review finding for blocks receiving an enumerated data type and also a new review finding for cases where the data type cannot be evaluated due to an incompilable model. (#5067) (compatibility considerations)
mcheck_jc_0201, mcheck_jc_0211, mcheck_jc_0221, mcheck_jc_0231: The finding messages and the behavior of the repair actions have been enhanced. Beyond this, the replacement of blank spaces as a repair action for the check jc_0231 has been limited to the first character of the block name. (#5370), (#5379)
Robustness of the data flow analysis has been significantly improved.
mcheck_mes_cgtl_9002: The Excel file ‘TL_ParameterList.xlsx’, referenced in the check parameter ‘MES.mes_cgtl_9002.ParameterExcelFile’, has been cleaned up. (#5421)
mcheck_sdt_sc007_b: The classification of blocks that should not perform an implicit data type conversion at the TargetLink Function interface has been reduced and refined. For blocks where the implicit data type conversion is avoidable only under certain conditions, the check gives a review finding. (#5367), (#5284)
Bug Fixes
mcheck_sdt_sc006: The check incorrectly reported a failed finding for unconnected Inport blocks inside a Simulink Variant Subsystem block. This has been fixed. (#4821)
mcheck_misra_slsf_027_j: The check analyzed, among other things, output signals of Demux blocks. These output signals are ignored if the propagation of signals for Demux blocks is not available. (#5254), (#5401)
mcheck_jm_0001: The Discrete PID Controller block was excluded from the list of prohibited blocks, and the check no longer reports a failed finding for it. (#5252)
mcheck_jc_0281, mcheck_na_0009, mcheck_misra_slsf_007_a: The Simulink Function and some hidden blocks inside of Stateflow charts were incorrectly analyzed by the checks. These are now ignored. (#5250)
mcheck_jc_0231: Carriage returns were incorrectly reported as a failed result. The issue has been fixed. (#5258)
mcheck_ds_0059, mcheck_misra_slsf_043_a/_b/_d/_i: If the action language ‘C’ was used in a Chart, comments indicated by ‘//’ could not be identified by these checks and, as a result, incorrect failed findings were reported. Now, all Stateflow checks properly identify ‘C’ comments. (#5367)
mcheck_na_0028, mcheck_misra_tl_6_7, mcheck_ds_0100: The checks aborted in the specific case where a workspace variable is used in the parameter of the Demux block. Now, base and model workspace variables are properly evaluated. (#5373)
mcheck_db_0105: The specific case of a direct combination of an Assignment and a Selector block could cause an infinite loop. The check now handles this construct correctly. (#5381)
mcheck_misra_slsf_016_a: The check gave incorrect failed findings for ShadowInport blocks and Memory blocks, and excluded the analysis of the BusSelector block even though it is capable of creating new buses. Now, the BusSelector is analyzed and ShadowInport and Memory blocks are ignored by the check. (#5406, #5418)
mcheck_misra_slsf_012_a: In the specific case where the source of the control input of the Switch block is a DataStoreMemory block, the check reported incorrect failed findings. This has been fixed. (#5431)
V4.5.0 04-01-2018
Tool Framework
New ignore-list editor
Use the ignore-list editor to create or edit your ignore-list.
Define rules to ignore elements via blocktype, masktype (only MATLAB®), or path.
Combine rules and conditions to apply nested and/or-conditions.
Use the context menu on a finding in the MXAM report or on a block in Simulink® to add a predefined ignore-rule.
Save your old ignore-list with the editor to convert it to the new format. Ignore-lists in the previous format are still valid, but have a different behavior. For the applied changes, please see ignore-list compatibility (MXAM DRIVE User Guide > Use Case Scenarios > Manage a Project Setup > Using an ignore-list> Ignore-list file format compatibility). Note, that the format will be transformed the first time the ignore-list is saved with the new editor (compatibility considerations).
For more help, see Ignore Parts of an Artifact (MXAM DRIVE User Guide > Use Case Scenarios > Manage a Project Setup > Using an ignore-list).
Re-design of the project settings page
Separated sections help you to configure the project step by step.
Check the validation marker to evaluate if your project is set up properly.
For more help, see Project Perspective (MXAM DRIVE User Guide > User Interface > Perspectives).
Improvements
The dialog used to define an author of content elements (e.g. ignore-lists, documents, guidelines etc.) provides a list with authors and managers available in the content of loaded libraries .
Added option to cancel the analysis of the current artifact within a custom check. (#4753)
Added option to skip the analysis of a specific check on a specific artifact in MATLAB® via the hook function ‘dochooksmxam_hookSkipArtifact.m’. (#4655)
Added a column with the artifact’s name in Excel report. (#4751)
Bug Fixes
Fixed problems with retrieving the version of MXAM in MATLAB®. (#5183)
Fixed determination of data flow for certain ACSET® elements. (#5136)
Fixed a problem with saving artifact definitions rendering them unusable for the current session. (#5148)
Fixed a problem with missing write permissions for the index database files of the lucene search engine. (#5218)
Guidelines, Checks, and Documents
Changes
mcheck_ar_0001: The check has a new parameter ‘MAAB.ar_0001.IgnoredDirectoryNames’, and it will now ignore all files in the given directories. (#5094)
mcheck_sdt_sa003: Control signals of Switch blocks that originate from a Constant block with variable class CAL or MERGEABLE CAL are no longer reported as a warning result. (#5243)
mcheck_misra_slsf_029_f, db_0032_d: These checks do no longer report signal lines that branch off into opposite directions at the same branching point, i.e. the angle between the signal lines is 0° or 180°. (#5123)
mcheck_misra_slsf_030_abc: In Subsystems with Enable, Trigger, and Action ports, these ports may be big in relation to the Subsystem area, which made it difficult to comply with the guideline. For those Subsystems, the tolerance ratio has been increased so that the check gives a failed result only if more than 20% of the port is outside the desired region (left/right/center). (#5124)
Bug Fixes
mcheck_na_0002, mcheck_jc_0141: If the tllib was available in the MATLAB path but TargetLink was not installed, these checks might have aborted in particular modeling patterns. This has been fixed. (#4375, #5157)
mcheck_sdt_sc004_b: In specific cases, the check would not report a failed result for Product blocks if one of the sources was a block with output base data type ‘boolean’, e.g. the Logical Operator block. This has been fixed. (#5036)
mcheck_misra_slsf_045_d: Default transitions with an empty label caused an abort of the check. Default transitions are handled correctly now. (#5048)
mcheck_na_0002: Particular check parameter settings that contain the identifier ‘ErrorFcn’, caused an abort of the check. This has been fixed. (#5067)
mcheck_misra_slsf_034_a: Charts with action language ‘MATLAB’ have been analyzed although the option ‘Enable C-bit operations’ does not exist for these Charts. Now, the check only considers Charts with action language ‘C’. (#5080)
mcheck_db_0110: The check did not find expressions including ‘~’ or ‘ ‘ (white space). Also, the check did not analyze library blocks. Both have been corrected. (#5085)
mcheck_misra_slsf_036_c: The check incorrectly reported a failed result if a Chart port and a signal line were not named identically due to the automatically added ‘()’ for Function Call Triggers as output. This has been fixed. (#5100)
mcheck_sdt_sc007_b: Rescaler blocks connected to TargetLink Outport blocks were reported as a failed result due to the data type mismatch. Rescaler blocks are ignored now as this is an explicit data type conversion and therefore intended. (#5101)
mcheck_na_0013: In MATLAB R2011b, Charts in which no transition has a label caused an abort of the check. The check handles these Charts correctly now. (#5115)
mcheck_sdt_sc004_c: The check reported incorrect failed results because the determination of the source data types was incomplete and did not consider Merge blocks. This has been fixed. (#5150)
mcheck_misra_slsf_008_b: Math Function blocks without the setting ‘round towards zero’ in the block parameters dialog were being incorrectly reported as a failed result, because the option exists in the Simulink API. Now, the check considers only Math Function blocks that have the setting ‘round towards zero’ available and for which it is therefore a reasonable option. (#5187)
V4.4.0 04-10-2017
Tool Framework
Model referencing support
Set the global parameter ‘ResolveModelReferences’ in the project settings to ‘true’ to prepare the MXAM project for model referencing.
Use the tool artifact tab to analyze the model with its references or only one referenced child model.
Use the context menu in the artifact navigation to jump to the referenced models and back to the location where they are referenced within the report perspective.
For more help, see MXAM DRIVE User Guide > Use Case Scenarios > Run a Guideline Compliance Analysis > Running an analysis using the UI.
Distribution of guideline violations of artifacts
The overview view in the report perspective offers a summary of the overall aggregated result for each artifact.
Get an overview of each artifact’s guideline compliance.
For more help, see MXAM DRIVE User Guide > User Interface > Perspectives > Report Perspective.
Configure check parameters while working with the MXAM Main Window (#4404)
Use the ‘Customize Check Parameters Dialog’ simultaneously to using the MXAM Main Window. This enhances the workflow of configuring check parameters while inspecting the current report or referring to documentation.
For more help, see MXAM DRIVE User Guide > User Interface > Wizards > Customize Check Parameters Wizard
UI support for cleanup of unmapped annotations (#4809)
Use the new context menu on the unmapped category in the annotations view to remove all unmapped annotations.
Remove only annotations created with the report’s project via the option ‘Delete Unmapped Annotations for Selected Report’s Project’.
For more help, see MXAM DRIVE User Guide > User Interface > Perspectives > Report Perspective > Annotations.
ASCET Adapter
Use ASCET Formula objects as referenced objects of ASCET findings in the ASCET check implementation.
Mark an arbitrary location in the ASCET result image to highlight, for instance, signal crossings. (#4933)
Improvements
Memory usage during report generation has been improved to allow a higher number of reports to be generated in one batch execution. (#4901)
Improvement of matching algorithm for annotations.
Create an ignore list in the “File -> New …” Wizard. After a new MXAM ignore list file has been created, the Windows text editor will subsequently open the file. Thus, the user can directly modify the new file. (#4946)
Use the quick run on checks in the library browser to speed up your testing process while implementing checks.
Bug Fixes
Export of ASCET result images with previous ASCET versions fixed. (#4905)
Fixed a bug in the transformation logic when transforming the model to a lower version. (#4994)
Fixed rare error that did not allow report files to be written to disk. (#4780)
Fixed base ASCET check implementation for projects with modules to omit ‘inapplicable’ results on project artifacts that have modules. (#4941)
Fixed a bug where the structure of a Simulink model was not identified correctly. (#5005)
Guidelines, Checks, and Documents
Support of MATLAB 2017a
The diagnostic option ‘Mux blocks used to create Bus signal’ is always set to error, thus this will be ignored in the check execution.
Limitation: InBusElements and OutBusElements used in the model are not supported by MXAM.
Review support for MATLAB Functions in Simulink and Stateflow
The generic review checks mes_sl_generic_001 and mes_sf_generic_001 support MATLAB Functions and are referenced in the following guidelines:
na_0016
na_0017
na_0019
na_0021
na_0022
na_0025
na_0034.
New Check
mes_cgtl_4301: Avoidance of TargetLink Specifications for Stateflow Input Variables (referenced in Guideline TL_RULE_STATEFLOW_EXPLICIT_INPUT_SPEC, document dSPACE Modeling Guidelines 4.0.3)
Changes
mcheck_mes_slsf_9003: Issues a warning if a chart property is not available in the currently used MATLAB Version. (#4841)
mcheck_mes_slsf_9100: Define a free fragment for the naming convention pattern. See \librarieschecksMATLAB_MESmcheck_mes_slsf_9100v01NamingConventions_Example.xlsm for documentation. (#4224)
mcheck_misra_slsf_005_a: The check takes into account the libraries defined in the global parameter ‘Global.Ignored Libraries’, i.e. blocks linked to a globally ignored library will be ignored now. (#4887)
mes_mes_slsf_9001: The check has a new parameter ‘MES.mes_slsf_9001.b_minDiagnosticsError’. If the parameter is set to true, the check does not report a failed finding for parameters with a more strict warning/error level than the desired value. (#4882)
Bug Fixes
mcheck_misra_slsf_008_b, mcheck_misra_slsf_016_d, mcheck_ds_0100: An incorrect handling of Vector Concatenation blocks caused the abortion of the checks. This has been fixed. (#4911)
The analysis of labels containing the ‘<>’ operator did not work properly. The operator is now handled correctly in Stateflow checks. (#4900)
mcheck_na_0008: The check reported a failed result for ‘Compare To Constant’ blocks, as these where treated as subsystems (blocktype subsystem). ‘Compare To Constant’ blocks are handled correctly now. (#4867)
mcheck_mes_slstl_002_b: Due to an incorrect handling of an index, the control input of Switch blocks has been analyzed instead of the data inport. This resulted in a failed finding in some specific cases which has been fixed. (#4896)
mcheck_db_0110, mcheck_misra_slsf_006_a: These checks reported a failed for the ‘parameter data type’ of Gain blocks and for the ‘accumulator data type’ of Sum blocks if ‘fixdt()’’ was selected. This has been fixed. (#4973)
mcheck_mes_tl_001: An aborted result occurred because the check did not handle vector valued DD variables properly. This has been fixed. (#4981)
mcheck_misra_slsf_013_b: The check was aborted if the number of elements in a Demux block was defined by a base workspace variable. The check is now able to evaluate the base workspace variable correctly. (#5015)
V4.3.0 13-07-2017
Tool Framework
ASCET Adapter: Support of ASCET 6.4.3 alpha and the analysis of ASCET Classes
MXAM is able to connect to ASCET 6.4.3 and can analyze the exported models.
Use the Statement blocks in your check implementation via the ASCET Adapter API to navigate in the model and for data flow analysis.
Use the Conversion, Assert, MaxSizeX and MaxSizeY Operators in your check implementation via the ASCET Adapter API.
The new data types Limited and Wrapped Integer are now supported.
ASCET class checks can now be implemented by using the ASCET Adapter API. A check implementation example is provided in the documentation folder.
Improved report merge of MXMR report files
Combine several MXMR reports that have been created for different models using the same project configuration on the command line while running MXAM, too.
Get a visual support by displaying a progress bar to follow the current status of the merge process.
For more help, see the MXAM user guide: Use Case Scenarios > Run a Guideline Compliance Analysis > Run an analysis Using a batch Interface
Extended drag and drop behavior
Use drag and drop in the Library Editor to move chapters and guidelines from one level to another inside a document.
Also use drag and drop to move chapters and guidelines between different documents from one level to another.
For more help, see the MXAM user guide: MXAM DRIVE Editor Guide > Use Case Scenarios > Create a Custom Guideline Document > Copy content from one document to another.
Default location of user libraries for documents, guidelines and checks in the user directory
The MXAM User libraries for documents, guidelines, and checks will be generated in the windows user directory when MXAM is first started.
Create custom library items in the user libraries even if MXAM is installed in a protected directory.
Improvements
The size of the MXAM release has been reduced.
IgnoreLists that are applied by the ‘Apply ignore list’ check box in the project perspective overview are now documented in the report.
Extended support of library elements in Simulink models in the artifact navigation.
Added logging mechanism for MATLAB.
Relaxed artifact wizard selection constraints, e.g. to allow the selection of ASCET classes without their project or module.
The list of existing annotation definitions to choose from when adding a new annotation in the report perspective is now sorted alphabetically. (#3177)
Adding the context menu option “Expand Element” on tree views to expand all elements starting from user selected elements.
Bug Fixes
Fixed an issue with the MATLAB progress bar not showing up during analysis. (#4612)
Fixed an issue with the MATLAB progress bar not hiding after executing a link action on a closed model. (#4812)
Fixed report export wizard behavior with already existing files. (#4804)
Fixed an issue with relative paths in MATLAB. (#4657)
Fixed occurrence of an exception in the generated HTML report if shared parameters were used. (#4641)
Fixed MATLAB deadlock in cases where a host system already uses an MXAM web service port. (#4815)
Fixed behavior of temporary variables connected to hierarchies for ASCET. (#4672)
Fixed reset perspective also resetting the project editor. (#4715)
Fixed missing Lucene search help site. (#4730)
Fixed project settings updating the ignore-list and artifact definitions properly. (#4671)
Fixed an issue where the MXAM library browser did not show the content of the Details view. (#4787)
Guidelines, Checks, and Documents
Support of review process for guidelines that require a manual review for Stateflow elements
Additionally to the Simulink check mcheck_mes_sl_generic_0001 a generic check (mcheck_mes_sf_generic_0001) provides functionality to support your manual review process Stateflow elements. This check is referenced by the following guidelines:
na_0006
na_0007
na_0042
misra_slsf_049_a
TL_ADV_STATEFLOW_STATES_VS_CONTROL_FLOW
New Guideline Documents
MES Modeling Guidelines for Implementation with Embedded Coder also available in the Misra Solution.
New version 3 of the MXAM Starter Set.
New Guidelines and Checks
mcheck_mes_cgec_2001: Prohibited Simulink Blocks for Code Generation (referenced in Guideline mes_cgec_2001, document MES Modeling Guidelines for Implementation with Embedded Coder’)
mcheck_mes_cgec_2002: Reuse of Atomic Subsystem for Code Generation (referenced in Guideline mes_cgec_2002, document MES Modeling Guidelines for Implementation with Embedded Coder’)
mcheck_mes_cgec_2003: Avoid Usage of Test Point Signals (referenced in Guideline mes_cgec_2003, document MES Modeling Guidelines for Implementation with Embedded Coder’)
mcheck_mes_slsf_4109: Relational Operator with IsInf, IsNaN, IsFinite Checks (referenced in Guideline TL_RULE_LOGICBIT_LIB_RELOP_NAN, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_slsf_4110: Restrictions with Regard to the From and Goto Block (referenced in Guideline TL_RULE_SIGNALROUT_LIB_FROMGOTO, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_slsf_4111: Simulink Bus Objects for Structured Variables in Stateflow (referenced in Guideline TL_RULE_STATEFLOW_BUS_OBJECTS, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_cgtl_4112: Use of Bitfields (referenced in Guideline TL_RULE_SWDESIGN_BITFIELDS_MISRA, document dSPACE Modeling Guidelines 4.0.3)
mcheck_mes_cgtl_4302: Graphical Functions with Multiple Data Outputs (referenced in Guideline TL_RULE_STATEFLOW_GRAPH_FUNC_MULTIPLE_OUTS, document dSPACE Modeling Guidelines 4.0.3)
mcheck_db_0151: State Machine Patterns for Transition Actions (referenced in Guideline db_0151, document MAAB 3.0)
mcheck_tl_pr20050222_03: Variable Merge for Block Variables of Struct Types (referenced in Guideline tl_pr20050222_03, document tl_kpr_guidelines)
Changes
TL_RULE_DISC_LIB_INTEGRATOR_SETTINGS: removed second check (old version)
TL_RULE_GENERAL_NAMING: referenced additional checks ds_0055, ds_0080
misra_slsf_018_b: New check parameter CreateFindingEmptySignal for mcheck_misra_slsf_018_b_1 and mcheck_misra_slsf_018_b_2.
Bug Fixes
jc_0451: The check was aborted when the sign combinations ‘*=’ ‘/=’ or ‘^=’ were used in Stateflow transitions, due to a problem while splitting the transitions text. This has been fixed by adding the mentioned sign combinations to the possible cases. (#4796)
jc_0481: The check was aborted in 2 scenarios. First, when the model could not be set to compile mode. In this case, the check now gives a warning message. Second, when there were hard equalities with the boolean values true or false in Stateflow conditions (i.e. [variable_a==true]). This has been fixed. (#4795)
na_0013: The check did not report a failed result when Stateflow conditions had more than one line. The check has been fixed so now it handles the suspension points properly when splitting the string of Stateflow conditions. (#4788)
ds_0100: The check erroneously gave warnings for Sum blocks while investigating the data type of the input signal through a Bus Creator, Bus Selector, Mux, or Demux combination. This has been fixed. (#4762)
misra_slsf_027_ab: The check was being aborted due to an incorrect handling of the function ‘cellfun’. This has been fixed. (#4754)
db_0110: In case of masked Simulink blocks, the check did not analyze if the mask parameters were specified as tunable. The check now analyzes each tunable parameter of an unmasked block and each tunable mask parameter of a masked block. (#4747)
db_0125: The check was aborted in some cases because the linkaction caused inconsistencies in the code. The linkaction has been deactivated to fix this. (#4727)
jc_0231: The check did not report a failed result because the names of the Simulink objects were not correctly obtained and cleaned. This has been fixed. (#4726)
db_0110: The check gave a fail when the ‘Accumulator Data Type’ of a Sum block was set to ‘fixdt’, even if the check was supposed to ignore standard block settings. This has been fixed. (#4695)
misra_slsf_048_g: The check did not work as expected since the string ‘i’ was interpreted as a complex number. This bug has been fixed for the string ‘pi’ as well. (#4660)
sdt_sc006: The check was aborted because of the incorrect handling of negative variable values. This has been fixed. (#4652)
ds_0105: The check was aborted due to a missing variable initialization. This has been fixed. (#4649)
misra_tl_5_10: The check gives a Review finding if the floating-point option of Custom block cannot be analyzed. (#4647)
tl_pr_20060404_06: The check was aborted because operands to ‘or’ and ‘and’ operators must be convertible to logical scalar values. Also, constant blocks can have a vector value inside. The issue was fixed. (#4645)
mes_is_0011: The check was aborted when no transition action existed. The issue was fixed. (#4631)
misra_slsf_008_b: Abort in check due to MES internal utility function to mes_getOutputDataInfo. The issue was fixed. (#4594)
jc_0521: The check gave a false positive for graphical functions used in conditional statements. The issue was fixed. (#4590)
db_0143: The check now identifies blocks with a library link correctly and also analyzes the topmodel. (#4583)
jc_0451: The check was aborted when input/output signal datatype was inherited from Simulink. The issue was fixed and the result is now Review. (#4571)
ds_0056: The check was aborted if subsystems were commented out. The issue was fixed. (#4570)
V4.2.0 31-03-2017
Tool Framework
Improved headless batch configuration to address MATLAB models directly
Configure MATLAB models directly in the headless batch parameters file (MXAM-INSTALLATION/headlessAnalysis.txt).
Use the new parameter ‘-adapter MATLAB -matlabArtifacts’ to define a list of models with an absolute path or only the model name.
For more help, see the MXAM user guide: Use Case Scenarios > Run a Guideline Compliance Analysis > Run an analysis Using a batch Interface
Read results from an MXMR report file within MATLAB to post-process report results
Use the new MATLAB function mxamapi_getReportResults() to get a struct with summarized report results
Syntax: result = mxamapi_getReportResults(‘C:/MXAM_Reports/report.mxmr’);
Combine several MXMR reports to get one management overview (BETA)
MXMR reports that have been created for different models using the same project configuration can be combined to get one report overview in HTML and PDF format.
The report overview has the same statistic information as in the short report format: Artifact overview, guidelines and check compliance overview, findings summary, heatmap, …
For more help, see the MXAM user guide: Use Case Scenarios > Run a Guideline Compliance Analysis > Run an analysis Using a batch Interface
Exact annotation mapping of a finding when reusing checks for different guidelines
Annotations are now mapped to exactly one finding with respect to the corresponding guideline and check ID.
Open an MXMR report with the web service automation plug-in ** (optional plug-in on request)**
A new command ‘openReport’ can be sent to the web service interface to open an MXMR report in the MXAM client.
Send a support request for MXAM or specific check findings to a configurable JIRA ticket system (optional plug-in on request)
Users can create JIRA tickets within MXAM addressing a companies centralized tool chain support. This feature can be used by companies that have custom checks and a JIRA ticket system.
The JIRA ticket can be created in the toolbar of MXAM for a general support request, specific checks, and findings. The ticket content is context-sensitive, meaning the attributes of the selected element will be automatically filled in.
Select a check or finding in the report perspective to create a ticket that refers to the selected element.
The JIRA system and ticket properties can be pre-configured in a configuration file.
Improvements
UI improvements in the Guideline Document editor.
The ‘Select ALL’ and ‘Deselect ALL’ operation in trees now changes only visible tree elements in case a filter is set.
The Annotations view shows only annotations of the selected report.
Improved connectability to MATLAB.
Added option to export a guideline document with selected guidelines and checks only. (#4513)
Bug Fixes
Fixed initialization of MXAM when _JAVA_OPTIONS were set in the environment. (#4468) - Fixed issue for MATLAB ignore lists to ignore Blocktypes and Masktypes that reside in a library when this library is used within a model. (#4525) - Fixed MXAM’s installer to accept an automated install XML with relative path. (#4491) - Fixed MXAM’s checking for write access to protected directories. (#4523) - Fixed link action for Stateflow elements in Artifact Navigation view if model has been closed. (#4531). - Fixed annotation mapping for ASCET findings by assuring that each finding has a unique ID. (#4561)
Guidelines, Checks, and Documents
Support of review process for guidelines that require a manual review (BETA)
A new generic check (mcheck_mes_sl_generic_0001) provides functionality to support your manual review process for Simulink blocks. The use of guidelines that are not automatically checkable and require a manual review are now supported by MXAM. Due to parametrization at guideline level, the check can be configured to report a finding of result type ‘review’ e.g. for the model, all subsystems, or specified blocks depending on the guideline specification. These findings can be used to navigate into the model, review the model part regarding the guideline aspect, and use annotations to document the developer’s/reviewer’s decision. This check is referenced by the following guidelines:
db_0040
db_0115
db_0116
db_0144
In the future, we plan for this check to be referenced by all guidelines that require a manual review.
TargetLink 4.2 Support
The Vector Concatenation block is handled in the data flow analysis of the checks as this block is now supported by TargetLink.
mes_cgtl_9002: Updated TL_ParameterList.xlsx according to TargetLink 4.2.
New Checks
mes_sl_generic_0001: Generic Review Check for Simulink Blocks
mes_cgtl_4106: Assertion Signals in Model Verification Library (referenced in Guideline TL_RULE_MODELVERIFY_LIB_ASSERT_SIGNAL, document dSPACE Modeling Guidelines 4.0.3)
mes_cgtl_4107: Simulink Function-Call Subsystems in a Stateflow Chart (referenced in Guideline TL_RULE_STATEFLOW_SIMULINK_FUNCTION, document Modeling Guidelines for dSPACE TargetLink 4.0.3)
mes_misra_slsf_052_b: State Labelling - State Name and Data Items (document MISRA AC SLSF 1.0)
Changes (compatibility considerations)
Improved bus support:
Buses can be created as a variable and type definition in the Data Dictionary, thus the verification of variables and the data flow analysis have been adapted in the checks to support this construct.
Buses can have class default while simultaneously having a data type and scaling defined. This is handled in the data flow analysis now.
misra_slsf_041_a: The check analyzed the position of blocks in a graphical way; this has been changed, as the main aspect of the guideline is to verify whether boxes are only used for text (annotations).
db_0110: Corrected name of Parameter MAAB.db_0110.AllowedDocumentationBlocks and changed definition. Now several documentation blocks can be given by a name value pair. (#4438)
Bug Fixes
misra_slsf_024_a: The check reported a failed result for intermediate layers of TargetLink subsystems and analyzed the content of library blocks. These blocks are now ignored. (#4251)
ds_0028: For older TargetLink versions, the check result was passed for the ‘Reshape’ and ‘Permute Dimension’ block due to an incorrect evaluation of the currently used TargetLink version. (#4372)
sdt_sa004_b: The property ‘zeroindex’ of the Simulink MultiportSwitch was not extracted for processing the data type of a control input to a MultiportSwitch. Thus the range of the control input was not evaluated correctly and the check result was passed. This has been fixed now. (#4393)
jc_0451: An incorrect concatenation of messages caused an abortion of the check if only one finding was reported. Further, a review result has been added if the Stateflow data type is set to ‘Inherit: Same as Simulink’. (#4571)
V4.1.0 31-12-2016
Tool Framework
Rerun multiple checks in the report perspective to see repaired Improvements
A rerun for multiple checks can be executed in the Report Document Navigation view. Any element in the document can be selected to rerun all checks below the selected element. All settings are applied as set in the original run.
New powerful search syntax for library browser views to quickly find documents, guidelines, and checks
The new search syntax is based on the Apache Lucene search engine that provides powerful search algorithms:
phrase queries, wildcard queries, proximity queries, regular expression queries, fuzzy queries and more
fielded searching (e.g. ID, Title, Status, …)
operators: AND, OR, NOT, +, -
Example query: Search guidelines in MISRA libraries that belong to ISO 26262 table 1.1e and that contain 3 digits in the ID.
Syntax: Library:MISRA AND ISO\ 26262-6\ Mapping:T1.1e AND ID:/.*[0-9]{3}.*/
Loading MXAM reports in all MXAM versions >= 4.0
Downwards compatibility for MXAM reports (.mxmr) to open reports that were created with an older MXAM version in the respective latest MXAM version (>= version 4.0).
Identifying Stateflow elements for highlighting and annotation mapping
Using the persistent SID available in newer MATLAB versions to highlight and identify Stateflow elements throughout sessions. Former Stateflow ID’s are volatile and only valid as long as a model stays open.
Using the persistent SID for Simulink and Stateflow elements for a unique mapping between finding and annotation.
Improved usability for guideline document editor
The document editor has been re-structured to improve usability and performance. All operations to edit document properties, add chapters and guidelines etc. are now available using the context menu of the document tree. The tabs on the right-hand side are removed which improves the performance when selecting a tree element.
Filter relevant project guidelines
New filter ‘Show Selected Guidelines Only’ in Project Guidelines perspective to see only relevant guidelines that are selected for the analysis.
Improvements
New option in report export wizard to enable or disable opening the generated report file.
Result details for passed checks are no longer shown in the compact HTML/PDF report so that only relevant information requiring action is displayed.
An evaluation information is displayed in the report header if an evaluation license is used.
MATLAB: A warning is raised for conflicts within the MATLAB search path with different MXAM versions.
Bug Fixes
Fixed behavior on closing unsaved guideline document editors.
Guidelines, Checks, and Documents
New Guideline Property for ISO 25119 Mapping
Mapping of the guideline to the respective category as defined in ISO 25119-3 Table 3. MES suggests a mapping for guidelines as part of the original distribution.
MATLAB 2016b Support
Adaption of mes_preprocess as nargin is not supported in scripts anymore. If customer checks are used with MATLAB 2016b, the check implementation must be adapted by adding ‘d_nargin = nargin’ before calling mes_preprocess. (compatibility considerations)
Legacy Simulink library ‘simulink_need_slupdate’ is handled.
misra_slsf_016_a/b: PreeLookup Table block can handle bus signals, thus this block is allowed to be used with bus signals.
mes_cgec_9004: Added new ‘Configuration Parameter’ considerations to EC_ParameterList.
New dSPACE TargetLink Checks
mes_cgtl_4103: No Support for Mealy or Moore State Machine Types (referenced in Guideline TL_RULE_STATEFLOW_MEALYMOORE_CHART)
mes_cgtl_4104: No Output initialization When Chart Wakes Up (referenced in Guideline TL_RULE_STATEFLOW_OUTPUT_CHART_WAKEUP)
mes_cgtl_4105: No Chart Execution with Super Step Semantics (referenced in Guideline TL_RULE_STATEFLOW_SUPERSTEP_CHART)
Changes (compatibility considerations)
ds_0079_c: Added a check parameter ‘dSPACE.IgnoreHiddenBlockNames’ to ignore the hidden block names and ‘dSPACE.CaseSensitiveAnalysis’ to perform a case sensitive analysis.
misra_slsf_054_a: Changed result type to ‘review’ and default value of parameter MISRA_SL_SF.misra_slsf_054_a.MaxDistBetweenTransitionAndLabel to 30.
misra_slsf_026_a and misra_slsf_026_b: Modified check parameter ‘BlocksWithoutCalibrationData’. User can define the blocks to be ignored giving blocktype and masktype as reference now. (#4160)
misra_slsf_026_c, jm_0010_a: Added check parameter ‘CheckEmptySignalNames’ to ignore empty signals. (#3163, #4167)
misra_slsf_026_b: Added Parameter ‘BlocksToCheck’, to specify the blocks to be checked. Default value is set to ‘all’.
Bug Fixes
misra_slsf_029_be: Removed checking of crossings with blocks, as this is handled by misra_slsf_029_c. (#4098)
sdt_sc005 and misra_slsf_027_ab: Restricted the findings to selected model/ subsystem level. When source and destination, both are out of selected system, the findings are ignored.
ds_0100, misra_slsf_008_b and misra_slsf_016_d: If a variable is in the field of a block, used in a source block of a signal handled in a mux block, the check was aborted. This has been fixed. (#3638)
ds_0079_c: Removed double check of signals and ports. (#4152)
misra_slsf_024_a: Library blocks were reported as a failed if they were located on the toplevel (e.g TL Main Dialog). This has been fixed. (#4251)
V4.0.1 11-11-2016
Tool Framework
Improvements
When loading reports in ‘continue work’ mode, opened models will be kept open after the report has been loaded.
MATLAB: Improved handling of MXAM paths within MATLAB. Preset paths will be kept on closing of MXAM.
Changed result aggregation for checks with findings of type ‘Inapplicable’. A check with ‘Inapplicable’ findings has the result ‘Passed with Infos’.
Improved user interface for ‘Customize Check Parameter’ dialog and ‘Create new guideline/check/document’ dialog.
Improved logging behavior.
Bug Fixes
MATLAB: Fixed problem when loading reports of systems with masks or systems within libraries.
Guidelines, Checks, and Documents
Changes
Changed default parameter of misra_slsf_031_a to ignore UnitDelay and Memory block.
Bug Fixes
ds_0029: The check caused an aborted if the output data type has not been analysed correctly. This can have multiple causes. To avoid the aborted of the check, a warning is raised for the single block if an error occurs, but the check is not aborted (#4054).
misra_slsf_008_b, sdt_sc004_b and sdt_sc006 caused an aborted if a matrix signal with min/max values has been analysed. This has been fixed (#4135).
jc_0231: The check result was aborted with the message ‘Saturate block does not have a parameter named ‘SrcBlockHandle’. This has been fixed (#4146).
jc_0281: Corrected name of parmeter jc_0281.LabelSignalLinesConnectingReusableSubsystem.
V4.0.0 01-10-2016
Tool Framework
Reloadable reports to share and view analysis results and continuously work on the report (BETA)
The new MXAM report format can be saved and re-opened for two different use cases:
View results: Opens the report in read-only mode to view results and make use of the filter and search options in MXAM.
Continue work: Opens the report by restoring the analysis environment (opening platform and artifact) to use operations such as rerun, repair, link actions, and annotation editing.
The report can also be created running a batch analysis using the ‘MXMR’ export type.
The syntax of the MXAM report format is XML and can be used to post-process results.
When closing the MXAM client window MXAM asks the user to save unsaved reports.
Improvements
Hook functions that are executed during analysis are now listed in the report.
New tooltips for artifact and parameter tables.
Scrolling in all Report and Detail views improved with only one scrollbar that reacts on mouse-over.
Response-time of expanding trees in Project documents and Report Navigation views improved.
Generating the table of contents (TOC) can be disabled when exporting a guideline document to avoid heap space problems. The TOC can be generated in Word afterwards.
Setting the author and timestamp for modified annotations.
New MXAM installer file extension .exe instead of jar. A JRE is included in the installer such that a host Java installation is not needed.
Focus set to comment input field in annotation wizard such that the user can start typing right away.
New Icon-set for: MXAM Project, Guideline Document, Chapter, Guideline, Check, Open Project, Open Report, Export Report, all view icons in report perspective.
Ignore-list path entries with wild cards have been improved:
fuelsys/fuel* ignores paths below fuelsys that start with ‘fuel’.
fuelsys/* ignores everything below fuelsys.
MATLAB Adapter
Support for MATLAB R2016a - New MES function mes_nargchk to avoid incompatibilities in different MATLAB versions with nargchk.
Bug Fixes
Applying ignore-lists to elements that have line breaks in the path has been fixed.
Scrollbar in report export wizard for list of reports fixed (#3988).
Exporting large guideline documents to Word or PDF can lead to a heap space error, especially while creating the table of contents. Generating the table of contents is now optional and can be created in Word afterwards (#3951).
MATLAB Adapter: Link Action to dSPACE Data Dictionary elements has been fixed.
Guidelines, Checks, and Documents
New Guideline Documents
The ‘MES Guidelines - Collection of Best Practices’ document contains new guidelines regarding model configuration, naming conventions and other modeling standards. The document will be expanded continuously.
The ‘Modeling Guidelines for dSPACE TargetLink - Version 4.0.3’ contains all guidelines of the official dSPACE TargetLink guidelines document in version 4.0.3.
New MES Checks (only available in Functional Safety Solution)
mes_slsf_9100: Naming Conventions.
mes_slsf_2102: Usage of UnitDelay and Memory blocks.
mes_slsf_3106: Avoid Global Stateflow Functions.
mes_cgtl_4102: Data Type Conversion Block in TargetLink Models.
mes_cgtl_4101: Tolerance Value of TargetLink Constant and Gain Block.
mes_cgtl_4201: Consistency of TargetLink and Simulink Data Types in TargetLink Blocks.
mes_slsf_9003: Consistent Stateflow Chart Properties.
Guideline ID Changes
mes_sltlec_001 to mes_cgec_9004.
mes_sk_002 to mes_cgtl_9002.
mes_sk_001 to mes_slsf_9001.
Bug Fixes
mes_sltl_002, sdt_sc002, jc_0481: Each check compared the data type of the Stateflow input even if the option ‘createinputvariable’ is not set. A util function has been adapted to consider the option ‘createinputvariable’ in Stateflow inports. If this option is enabled, the TL data type of this port is taken. If the option is disabled, the data type of the inport’s source is taken (#3526).
sdt_sc001: The check was aborted if the signal dimension differs between the source (Mux) with vector signal and destination block TargetLink Inport, whose dimension is not adapted to the incoming vector signal. This is shown as failed now (#3955).
na_0038: Modified the string concatenation of an array to avoid a warning in the command window. Warning appears in latest versions of MATLAB (#3748).
db_0146: Adapted the check to consider the coordinates of the model window of new MATLAB version (#3791).
misra_slsf_053_b: There could be a junction and transitions overlapping on this junction within a state chart. This case was not considered before. The check takes care of such situation now (#3748).
misra_slsf_053_b: The crossing of an inner transition with the parent state will not report a failed result any more (#3969).
misra_slsf_037_h: The check reported a failed result if the type property of a Stateflow data is set to ‘inherit’ with scope ‘Data Store Memory’. This will be ignored now (#3743).
mes_tl_001: Adapted the check to extract signal names and information from TargetLink bus outport for MATLAB version R2010b and below (#3770).
sdt_sc006: The check traced the signal back over Data Store blocks. Now a stopping condition for Data Stores has been added such that these are identified as signal source (#3753, #3707).
sdt_sc007_b: An incorrect concatenation of logical and scalar values caused an aborted. This has been fixed (#3792).
misra_slsf_012_a, jc_0141: A check abort has been raised due to a wrong initialization. This has been fixed (#3832).
sdt_sc002_b and sdt_sc002_c: The util function ‘mes_evalBlockParamValue’ is now used to evaluate the size of a variable in base and model workspace to prevent a check abort (#3995).
na_0002: Blocks (Relational, Logical etc) which gives boolean outputs, are checked if they are connected to a block which can receive boolean input. In case they are connected to inport (within a subsystem), the blocks are ignored from checking (#3954).
Fixed several problems for referenced models that are TargetLink components (#3780, #3993).
Quick Contact to the MXAM Developer- and Support Team
Here you can ask us all questions regarding the MES Model Examiner® (MXAM). Please also use this form to be kept up to date on MES tool updates and release notes (quarterly tool update newsletter). You can also send us a detailed support request.