Main Content

Metrics for generated code complexity

mathworks.hism.himl_0013

Since R2021b

Dependencies: Simulink® Check™

Usage: High-Integrity System Modeling

Guideline: himl_0013: Limitation of built-in MATLAB Function complexity

Description

Use this check to identify the usage of built-in MATLAB® functions that result in generated code with high code complexity.

Check Parameters

Use the Model Advisor Configuration Editor to define the scope of the analysis by specifying the input parameters.

ParameterDescription
Check external .m files referenced in the model

Specify whether to run on referenced MATLAB files in the model.

on (default) | off

Follow links

Specify whether to include content of library-linked blocks in the analysis.

on (default) | off

Look under masks

Specify whether to include masked model elements in the analysis.

all (default) | none | graphical | functional

  • all — Check analysis includes all masked model elements.

  • none — Check analysis excludes masked model elements.

  • graphical — Check analysis includes only the graphical masked model elements.

  • functional — Check analysis includes only the functional masked model elements.

Complexity threshold

Specify the cyclomatic complexity threshold (a positive integer value) for flagging MATLAB functions that result in generated code with high code complexity.

40 (default)

Functions excluded from analysis

Specify MATLAB functions to exclude from analysis. Add multiple functions to this field by mentioning the function names and separating them with commas.

[] (default)

Recommended Actions and Results

Review the violations that are flagged by the check and the recommended action for fixing the issue. After applying the changes, save the model and rerun the check analysis.

Modeling ConditionRecommended Action
Some built-in MATLAB functions used in the model can cause high code complexity when generating code.
  • Review functions with significant size and complexity to determine whether the full complexity of the function is required.

  • Use simpler alternatives to reduce code complexity, or add the functions to exclusion list in Model Advisor Configuration Editor.

Capabilities and Limitations

  • Does not run on library models

  • Allows exclusions of blocks and charts

  • Analyzes only active variant choices

  • Performs model compilation

Version History

Introduced in R2021b