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 Checks in the Simulink documentation.

MAAB Guideline - Version 3.0By Task > Modeling Standards for MAAB subfolderModel Advisor check
na_0026: Consistent software environment

Not applicable

No check
ar_0001: FilenamesNaming ConventionsCheck file names
ar_0002: Directory namesNaming ConventionsCheck folder names
na_0035: Adoption of naming conventions

Not applicable

No check

jc_0201: Usable characters for Subsystem names

Naming ConventionsCheck subsystem names

jc_0211: Usable characters for Inport blocks and Outport blocks

Naming ConventionsCheck port block names

jc_0221: Usable characters for signal line names

Naming ConventionsCheck character usage in signal labels

na_0030: Usable characters for Simulink Bus names

Naming ConventionsCheck Simulink bus signal names

jc_0231: Usable characters for block names

Naming ConventionsCheck character usage in block names

na_0014: Use of local language in Simulink and Stateflow

Not applicable

No check

na_0006: Guidelines for mixed use of Simulink and Stateflow

Not applicable

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

Not applicable

No check

db_0143: Similar block types on the model levels

Model ArchitectureCheck for mixing basic blocks and subsystems

db_0144: Use of Subsystems

Not applicable

No check

db_0040: Model hierarchy

Not applicable

No check

na_0037: Use of single variable variant conditionals

Model ArchitectureCheck use of single variable variant conditionals

na_0020: Number of inputs to variant subsystems

Model ArchitectureCheck unused ports in Variant Subsystems

na_0036: Default variant

Model ArchitectureCheck use of default variants

jc_0301: Controller model

Not applicable

No check

jc_0311: Top layer/root level

Not applicable

No check
jc_0321: Trigger layer

Not applicable

No check

jc_0331: Structure layer

Not applicable

No check

jc_0341: Data flow layer

Not applicable

No check

jc_0011: Optimization parameters for Boolean data types

Model Configuration OptionsCheck Implement logic signals as Boolean data (vs. double)

jc_0021: Model diagnostic settings

Model Configuration OptionsCheck model diagnostic parameters

na_0004: Simulink model appearance

SimulinkCheck for Simulink diagrams using nonstandard display attributes

db_0043: Simulink font and font size

SimulinkCheck font formatting

db_0042: Port block in Simulink models

SimulinkCheck positioning and configuration of ports

na_0005: Port block name visibility in Simulink models

SimulinkCheck visibility of block port names
na_0027: Use of only standard library blocksSimulinkCheck usage of non-compliant blocks

jc_0081: Icon display for Port block

SimulinkCheck display for port blocks

jm_0002: Block resizing

Not applicable

No check

db_0142: Position of block names

SimulinkCheck whether block names appear below blocks

db_0032: Simulink signal appearance

SimulinkCheck Simulink signal appearance

jc_0061: Display of block names

SimulinkCheck the display attributes of block names

db_0146: Triggered, enabled, conditional Subsystems

SimulinkCheck position of Trigger and Enable blocks

db_0140: Display of basic block parameters

SimulinkCheck for nondefault block attributes

na_0032: Use of merge blocks

SimulinkCheck usage of merge blocks

db_0141: Signal flow in Simulink models

Not applicable

No check

jc_0171: Maintaining signal flow when using Goto and From blocks

SimulinkCheck usage of Goto and From blocks between Subsystems

jm_0010: Port block names in Simulink models

SimulinkCheck for matching port and signal names

jc_0281: Naming of Trigger Port block and Enable Port block

SimulinkCheck Trigger and Enable block names

na_0008: Display of labels on signals

SimulinkCheck signal line labels

na_0009: Entry versus propagation of signal labels

SimulinkCheck for propagated signal labels

db_0097: Position of labels for signals and busses

Not applicable

No check

db_0081: Unconnected signals, block inputs and block outputs

SimulinkCheck for unconnected ports and signal lines

na_0003: Simple logical expressions in If Condition block

SimulinkCheck logical expressions in 'If' blocks

na_0002: Appropriate implementation of fundamental logical and numerical operations

SimulinkCheck fundamental logical and numerical operations

jm_0001: Prohibited Simulink standard blocks inside controllers

SimulinkCheck for prohibited blocks in discrete controllers

hd_0001: Prohibited Simulink sinks

SimulinkCheck for prohibited sink blocks

na_0011: Scope of Goto and From blocks

SimulinkCheck scope of From and Goto blocks

jc_0141: Use of the Switch block

SimulinkCheck usage of Switch blocks

jc_0121: Use of the Sum block

Not applicable

No check

jc_0131: Use of Relational Operator block

SimulinkCheck usage of Relational Operator blocks

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

Not applicable

No check

db_0112: Indexing

SimulinkCheck for indexing in blocks

na_0010: Grouping data flows into signals

SimulinkCheck usage of buses and Mux blocks

db_0110: Tunable parameters in basic blocks

SimulinkCheck usage of tunable parameters in blocks

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

Not applicable

No check

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

Not applicable

No check

db_0115: Simulink patterns for case constructs

Not applicable

No check

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

Not applicable

No check

na_0031: Definition of default enumerated value

SimulinkCheck usage of enumerated values

db_0116: Simulink patterns for logical constructs with logical blocks

Not applicable

No check

db_0117: Simulink patterns for vector signals

Not applicable

No check

jc_0351: Methods of initialization

Not applicable

No check

jc_0111: Direction of Subsystem

SimulinkCheck orientation of Subsystem blocks

db_0123: Stateflow port names

StateflowCheck for names of Stateflow ports and associated signals

db_0129: Stateflow transition appearance

StateflowCheck for Stateflow transition appearance

db_0137: States in state machines

StateflowCheck usage of exclusive and default states in state machines

db_0133: Use of patterns for flow charts

Not applicable

No check

db_0132: Transitions in flow charts

StateflowCheck transition orientations in flow charts

jc_0501: Format of entries in a State block

StateflowCheck entry formatting in State blocks in Stateflow charts

jc_0511: Setting the return value from a graphical function

StateflowCheck return value assignments in Stateflow graphical functions

jc_0531: Placement of the default transition

StateflowCheck default transition placement in Stateflow charts

jc_0521: Use of the return value from graphical functions

StateflowCheck usage of return values from Stateflow graphical functions

na_0001: Bitwise Stateflow operators

StateflowCheck for bitwise operations in Stateflow charts

jc_0451: Use of unary minus on unsigned integers in Stateflow

StateflowCheck usage of unary minus operations in Stateflow charts

na_0013: Comparison operation in Stateflow

StateflowCheck for comparison operations in Stateflow charts

db_0122: Stateflow and Simulink interface signals and parameters

StateflowCheck for Strong Data Typing with Simulink I/O

db_0125: Scope of internal signals and local auxiliary variables

StateflowCheck Stateflow data objects with local scope

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

StateflowCheck usage of floating-point expressions in Stateflow charts

jc_0491: Reuse of variables within a single Stateflow scope

StateflowCheck reuse of Variables within a Stateflow scope

jc_0541: Use of tunable parameters in Stateflow

Not applicable

No check

db_0127: MATLAB commands in Stateflow

StateflowCheck for MATLAB expressions in Stateflow charts

jm_0011: Pointers in Stateflow

StateflowCheck for pointers in Stateflow charts

db_0126: Scope of events

Not applicable

No check

jm_0012: Event broadcasts

StateflowCheck for event broadcasts in Stateflow charts

db_0150: State machine patterns for conditions

Not applicable

No check

db_0151: State machine patterns for transition actions

StateflowCheck transition actions in Stateflow charts

db_0148: Flow chart patterns for conditions

Not applicable

No check

db_0149: Flow chart patterns for condition actions

Not applicable

No check

db_0134: Flow chart patterns for If constructs

Not applicable

No check

db_0159: Flow chart patterns for case constructs

Not applicable

No check

db_0135: Flow chart patterns for loop constructs

Not applicable

No check
na_0038: Levels in Stateflow chartsStateflowCheck nested states in Stateflow charts

na_0039: Use of Simulink in Stateflow charts

StateflowCheck use of Simulink in Stateflow charts

na_0040: Number of states per container

StateflowCheck number of Stateflow states per container

na_0041: Selection of function type

Not applicable

No check

na_0042: Location of Simulink functions

Not applicable

No check

na_0033: Enumerated Types Usage

Not applicable

No check

na_0018: Number of nested if/else and case statement

MATLAB FunctionsCheck MATLAB Function metrics

na_0019: Restricted Variable Names

MATLAB FunctionsCheck usage of restricted variable names

na_0025: MATLAB Function Header

Not applicable

No check

na_0034: MATLAB Function block input/output settings

MATLAB FunctionsCheck input and output settings of MATLAB Functions
na_0024: Global VariablesMATLAB FunctionsCheck MATLAB code for global variables

na_0022: Recommended patterns for Switch/Case statements

MATLAB FunctionsCheck usage of recommended patterns for Switch/Case statements

na_0016: Source lines of MATLAB Functions

MATLAB FunctionsCheck MATLAB Function metrics

na_0017: Number of called function levels

MATLAB FunctionsCheck the number of function calls in MATLAB Function blocks

na_0021: Strings

MATLAB FunctionsCheck usage of character vector inside MATLAB Function block