Model Advisor Checks for MAAB Guidelines

Simulink® Check™ provides Model Advisor MAAB checks which correspond to a subset of MAAB guidelines. You can run the checks using the Model Advisor.

The MAAB guidelines and corresponding Model Advisor checks are summarized in the following table. Not all guidelines have Model Advisor checks. For some of the guidelines without Model Advisor checks, it is not possible to automate checking of the guideline. Guidelines without a corresponding check are noted as not applicable. For information on using the Model Advisor, see Run Model Advisor Checks in the Simulink documentation.

MAAB Guideline - Version 3.0Model Advisor check
na_0026: Consistent software environmentNo check
ar_0001: FilenamesCheck file names (Simulink Check)
ar_0002: Directory namesCheck folder names (Simulink Check)
na_0035: Adoption of naming conventionsNo check

jc_0201: Usable characters for Subsystem names

Check subsystem names (Simulink Check)

jc_0211: Usable characters for Inport blocks and Outport blocks

Check port block names (Simulink Check)

jc_0221: Usable characters for signal line names

Check character usage in signal labels (Simulink Check)

na_0030: Usable characters for Simulink Bus names

Check Simulink bus signal names (Simulink Check)

jc_0231: Usable characters for block names

Check character usage in block names (Simulink Check)

na_0014: Use of local language in Simulink and Stateflow

No check

na_0006: Guidelines for mixed use of Simulink and Stateflow

No check
na_0007: Guidelines for use of Flow Charts, Truth Tables and State MachinesNo check

db_0143: Similar block types on the model levels

Check for mixing basic blocks and subsystems (Simulink Check)

db_0144: Use of Subsystems

No check

db_0040: Model hierarchy

No check

na_0037: Use of single variable variant conditionals

Check use of single variable variant conditionals (Simulink Check)

na_0020: Number of inputs to variant subsystems

Check unused ports in Variant Subsystems (Simulink Check)

na_0036: Default variant

Check use of default variants (Simulink Check)

jc_0301: Controller model

No check

jc_0311: Top layer/root level

No check
jc_0321: Trigger layerNo check

jc_0331: Structure layer

No check

jc_0341: Data flow layer

No check

jc_0011: Optimization parameters for Boolean data types

Check Implement logic signals as Boolean data (vs. double) (Simulink Check)

jc_0021: Model diagnostic settings

Check model diagnostic parameters (Simulink Check)

na_0004: Simulink model appearance

Check for Simulink diagrams using nonstandard display attributes (Simulink Check)

db_0043: Simulink font and font size

Check font formatting (Simulink Check)

db_0042: Port block in Simulink models

Check positioning and configuration of ports (Simulink Check)

na_0005: Port block name visibility in Simulink models

Check visibility of block port names (Simulink Check)
na_0027: Use of only standard library blocksCheck usage of non-compliant blocks (Simulink Check)

jc_0081: Icon display for Port block

Check display for port blocks (Simulink Check)

jm_0002: Block resizing

No check

db_0142: Position of block names

Check whether block names appear below blocks (Simulink Check)

db_0032: Simulink signal appearance

Check Simulink signal appearance (Simulink Check)

jc_0061: Display of block names

Check the display attributes of block names (Simulink Check)

db_0146: Triggered, enabled, conditional Subsystems

Check position of Trigger and Enable blocks (Simulink Check)

db_0140: Display of basic block parameters

Check for nondefault block attributes (Simulink Check)

na_0032: Use of merge blocks

Check usage of merge blocks

db_0141: Signal flow in Simulink models

No check

jc_0171: Maintaining signal flow when using Goto and From blocks

Check usage of Goto and From blocks between Subsystems (Simulink Check)

jm_0010: Port block names in Simulink models

Check for matching port and signal names (Simulink Check)

jc_0281: Naming of Trigger Port block and Enable Port block

Check Trigger and Enable block names (Simulink Check)

na_0008: Display of labels on signals

Check signal line labels (Simulink Check)

na_0009: Entry versus propagation of signal labels

Check for propagated signal labels (Simulink Check)

db_0097: Position of labels for signals and busses

No check

db_0081: Unconnected signals, block inputs and block outputs

Check for unconnected ports and signal lines (Simulink Check)

na_0003: Simple logical expressions in If Condition block

Check logical expressions in If blocks (Simulink Check)

na_0002: Appropriate implementation of fundamental logical and numerical operations

Check fundamental logical and numerical operations (Simulink Check)

jm_0001: Prohibited Simulink standard blocks inside controllers

Check for prohibited blocks in discrete controllers (Simulink Check)

hd_0001: Prohibited Simulink sinks

Check for prohibited sink blocks (Simulink Check)

na_0011: Scope of Goto and From blocks

Check scope of From and Goto blocks (Simulink Check)

jc_0141: Use of the Switch block

Check usage of Switch blocks (Simulink Check)

jc_0121: Use of the Sum block

No check

jc_0131: Use of Relational Operator block

Check usage of Relational Operator blocks (Simulink Check)

jc_0161: Use of Data Store Read/Write/Memory blocks

No check

db_0112: Indexing

Check for indexing in blocks (Simulink Check)

na_0010: Grouping data flows into signals

Check usage of buses and Mux blocks (Simulink Check)

db_0110: Tunable parameters in basic blocks

Check usage of tunable parameters in blocks (Simulink Check)

na_0012: Use of Switch vs. If-Then-Else Action Subsystem

No check

db_0114: Simulink patterns for If-then-else-if constructs

No check

db_0115: Simulink patterns for case constructs

No check

na_0028: Use of If-Then-Else Action Subsystem to Replace Multiple Switches

No check

na_0031: Definition of default enumerated value

Check usage of enumerated values (Simulink Check)

db_0116: Simulink patterns for logical constructs with logical blocks

No check

db_0117: Simulink patterns for vector signals

No check

jc_0351: Methods of initialization

No check

jc_0111: Direction of Subsystem

Check orientation of Subsystem blocks (Simulink Check)

db_0123: Stateflow port names

Check for names of Stateflow ports and associated signals (Simulink Check)

db_0129: Stateflow transition appearance

Check for Stateflow transition appearance (Simulink Check)

db_0137: States in state machines

Check usage of exclusive and default states in state machines (Simulink Check)

db_0133: Use of patterns for flow charts

No check

db_0132: Transitions in flow charts

Check transition orientations in flow charts (Simulink Check)

jc_0501: Format of entries in a State block

Check entry formatting in State blocks in Stateflow charts (Simulink Check)

jc_0511: Setting the return value from a graphical function

Check return value assignments in Stateflow graphical functions (Simulink Check)

jc_0531: Placement of the default transition

Check default transition placement in Stateflow charts (Simulink Check)

jc_0521: Use of the return value from graphical functions

Check usage of return values from Stateflow graphical functions (Simulink Check)

na_0001: Bitwise Stateflow operators

Check for bitwise operations in Stateflow charts (Simulink Check)

jc_0451: Use of unary minus on unsigned integers in Stateflow

Check usage of unary minus operations in Stateflow charts (Simulink Check)

na_0013: Comparison operation in Stateflow

Check for comparison operations in Stateflow charts (Simulink Check)

db_0122: Stateflow and Simulink interface signals and parameters

Check for Strong Data Typing with Simulink I/O (Simulink Check)

db_0125: Scope of internal signals and local auxiliary variables

Check Stateflow data objects with local scope (Simulink Check)

jc_0481: Use of hard equality comparisons for floating point numbers i01n Stateflow

Check usage of floating-point expressions in Stateflow charts (Simulink Check)

jc_0491: Reuse of variables within a single Stateflow scope

Check reuse of variables within a Stateflow scope (Simulink Check)

jc_0541: Use of tunable parameters in Stateflow

No check

db_0127: MATLAB commands in Stateflow

Check for MATLAB expressions in Stateflow charts (Simulink Check)

jm_0011: Pointers in Stateflow

Check for pointers in Stateflow charts (Simulink Check)

db_0126: Scope of events

No check

jm_0012: Event broadcasts

Check for event broadcasts in Stateflow charts (Simulink Check)

db_0150: State machine patterns for conditions

No check

db_0151: State machine patterns for transition actions

Check transition actions in Stateflow charts (Simulink Check)

db_0148: Flow chart patterns for conditions

No check

db_0149: Flow chart patterns for condition actions

No check

db_0134: Flow chart patterns for If constructs

No check

db_0159: Flow chart patterns for case constructs

No check

db_0135: Flow chart patterns for loop constructs

No check
na_0038: Levels in Stateflow chartsCheck nested states in Stateflow charts (Simulink Check)

na_0039: Use of Simulink in Stateflow charts

Check use of Simulink in Stateflow charts (Simulink Check)

na_0040: Number of states per container

Check number of Stateflow states per container (Simulink Check)

na_0041: Selection of function type

No check

na_0042: Location of Simulink functions

No check

na_0033: Enumerated Types Usage

No check

na_0018: Number of nested if/else and case statement

Check MATLAB Function metrics (Simulink Check)

na_0019: Restricted Variable Names

Check usage of restricted variable names (Simulink Check)

na_0025: MATLAB Function Header

No check

na_0034: MATLAB Function block input/output settings

Check input and output settings of MATLAB Functions (Simulink Check)
na_0024: Global VariablesCheck MATLAB code for global variables (Simulink Check)

na_0022: Recommended patterns for Switch/Case statements

Check usage of recommended patterns for Switch/Case statements (Simulink Check)

na_0016: Source lines of MATLAB Functions

Check MATLAB Function metrics (Simulink Check)

na_0017: Number of called function levels

Check the number of function calls in MATLAB Function blocks (Simulink Check)

na_0021: Strings

Check usage of character vector inside MATLAB Function block (Simulink Check)