Differences Between JMAAB Version 5.1 and JMAAB Version 6.0 Model Advisor Checks
R2026bThe Japan MathWorks Automotive Advisory Board (JMAAB) publishes modeling guidelines for developing automotive control software using Model-Based Design. JMAAB Version 5 (v5.1) establishes a set of guidelines for model structure, data types, and signal handling. JMAAB Version 6 (v6.0) expands coverage to include MATLAB and Stateflow programming guidelines and consolidates overlapping guidelines into guideline-specific rules.
The Model Advisor contains check folders for both guideline versions. To help you decide which version of the checks to apply to your project, this topic lists checks that are exclusive to v6.0 and describes differences between checks that are in both folders and share the same name.
Note
MAB (MathWorks Automotive Advisory Board) v5.0 is equivalent to JMAAB v5.1, and MAB v6.0 is equivalent to JMAAB v6.0.
Checks Exclusive to JMAAB v6.0
Stateflow Checks
| Modeling Guideline | Model Advisor Check | Check ID | Check Behavior |
|---|---|---|---|
| jc_0900: Usable characters for Data Type definition | Check bus and enumeration data type names | mathworks.jmaab_v6.jc_0900 | Detects trailing underscores, consecutive underscores, and reserved MATLAB words in bus/enumeration data type names. |
| jc_0901: Length restriction for Data Type definition | Check length of bus and enumeration data type names | mathworks.jmaab_v6.jc_0901 | Validates that bus/enumeration data type names meet minimum and maximum length requirements. |
| jc_0902: Arrowhead size of transition lines | Check arrowhead size of transition lines | mathworks.jmaab_v6.jc_0902 | Validates consistent arrowhead sizes on Stateflow transitions. |
| jc_0903: Prohibition of overlapping/crossing of blocks and signal line | Check for prohibited overlapping or intersecting blocks and signal lines | mathworks.jmaab_v6.jc_0903 | Detects blocks and signal lines that overlap or intersect each other. Includes configurable threshold. |
| jc_0904: Prohibition of overlap/intersection of states and transition lines | Check for prohibited overlapping of states and transition lines in Stateflow charts | mathworks.jmaab_v6.jc_0904 | Detects overlapping states and overlapping transitions in Stateflow charts. |
| jc_0905: Usable characters for data names in MATLAB function | Check data names in MATLAB functions | mathworks.jmaab_v6.jc_0905 | Validates naming conventions for data in MATLAB functions, including external .m files. |
| jc_0906: Length restriction for data names in MATLAB function | Check the length of data names in MATLAB functions | mathworks.jmaab_v6.jc_0906 | Checks minimum and maximum length of data names in MATLAB functions, including external .m files. |
| jc_0907: Size of junctions | Check size of junctions | mathworks.jmaab_v6.jc_0907 | Validates consistent junction sizes in Stateflow charts. |
MATLAB Programming
| Modeling Guideline | Model Advisor Check | Check ID | Check Behavior |
|---|---|---|---|
| mp_0007: How to describe execution statements | Check description of execution statements | mathworks.jmaab_v6.mp_0007 | Validates one execution statement per line and proper semicolon usage. Supports external .m files. |
| mp_0008: Format of parenthesis | Check for spaces between function or variable names and left parenthesis symbol | mathworks.jmaab_v6.mp_0008 | Checks for proper spacing between function/variable names and parentheses. |
| mp_0010: How to describe the priority of operators | Check for operator precedence | mathworks.jmaab_v6.mp_0010 | Validates use of parentheses to clarify operator precedence in complex expressions. |
| mp_0011: How to insert one single-byte space | Check spaces in expressions | mathworks.jmaab_v6.mp_0011 | Validates proper spacing around binary and unary operators in MATLAB and C action language. |
| mp_0022: How to describe conditional expression | Check description of conditional expressions | mathworks.jmaab_v6.mp_0022 | Validates logical type usage, operator count limits, and line break conventions in conditionals. |
| mp_0023: How to describe relational operators | Check relational operators usage | mathworks.jmaab_v6.mp_0023 | Checks variable/constant placement conventions in relational expressions. |
| mp_0032: Function headers | Check function headers | mathworks.jmaab_v6.mp_0032 | Validates if functions include required descriptive header items. |
| mp_0034: Number of lines of functions | Check number of lines of functions | mathworks.jmaab_v6.mp_0034 | Validates that functions do not exceed configurable maximum line counts. Option to exclude comments. |
| mp_0040: Utilizing the return value of functions | Check for utilization of the return value of functions | mathworks.jmaab_v6.mp_0040 | Detects function calls where return values are not assigned or used. |
| mp_0046: How to describe array indexes | Check array indices | mathworks.jmaab_v6.mp_0046 | Enforces simple indexing patterns. |
| mp_0047: The conditions for non-empty statements to be satisfied | Check for usage of nonempty statements | mathworks.jmaab_v6.mp_0047 | Detects dead code or statements that produce no effect. |
Differences Between Checks for JMAAB v5.0 and v6.0
Subcheck Changes
| Modeling Guideline | Model Advisor Check | Check ID | Subcheck Changes in v6.0 |
|---|---|---|---|
| db_0032: Signal line connections | Check signal line connections | mathworks.jmaab_v6.db_0032 |
|
| db_0097: Position of labels for signals and buses | Check position of signal labels | mathworks.jmaab_v6.db_0097 |
|
| db_0129: Stateflow transition appearance | Check for Stateflow transition appearance | mathworks.jmaab_v6.db_0129 |
|
| jc_0232: Usable characters for parameter names | Check usable characters for parameter names | mathworks.jmaab_v6.jc_0232 |
|
| jc_0627: Usage of Discrete-Time Integrator blocks | Check usage of Discrete-Time Integrator block | mathworks.jmaab_v6.jc_0627 |
|
| na_0011: Scope of Goto and From blocks | Check scope of From and Goto blocks | mathworks.jmaab_v6.na_0011 |
|
| jc_0741: Timing to update data used in state chart transition conditions | Check updates to variables used in state transition conditions | mathworks.jmaab_v6.jc_0741 |
|
| jc_0770: Position of transition label | Check placement of Label String in Transitions | mathworks.jmaab_v6.jc_0770 |
|
| jc_0009: Signal name propagation | Check signal name propagation | mathworks.jmaab_v6.jc_0009 |
|
| jc_0630: Usage of Multiport Switch blocks | Check settings for data ports in Multiport Switch blocks | mathworks.jmaab_v6.jc_0630 |
|
| jc_0644: Type setting | Check type setting by data objects | mathworks.jmaab_v6.jc_0644 |
|
| na_0020: Number of inputs to variant subsystems | Check for missing ports in Variant Subsystems | mathworks.jmaab_v6.na_0020 |
|
| jc_0651: Implementing a type conversion | Check Output data type of operation blocks | mathworks.jmaab_v6.jc_0651 |
|
| jc_0753: Condition actions and transition actions in Stateflow | Check condition actions and transition actions in Stateflow | mathworks.jmaab_v6.jc_0753 |
|
| jm_0012: Usage restrictions of events and broadcasting events | Check for usage of events in Stateflow charts | mathworks.jmaab_v6.jm_0012 |
|
| db_0127 | Check for MATLAB expressions in Stateflow charts | mathworks.jmaab_v6.db_0127 |
|
Input Parameter Changes
| Modeling Guideline | Model Advisor Check | Check ID | Parameter Changes in v6.0 |
|---|---|---|---|
| ar_0002: Usable characters for folder names | Check folder names | mathworks.jmaab_v6.ar_0002 |
|
| db_0032: Signal line connections | Check signal line connections | mathworks.jmaab_v6.db_0032 |
|
| db_0097: Position of labels for signals and buses | Check position of signal labels | mathworks.jmaab_v6.db_0097 |
|
| db_0125: Stateflow local data | Check definition of Stateflow data | mathworks.jmaab_v6.db_0125 |
|
See Also