Main Content

MATLAB 関数

himl_0001: 標準化された MATLAB 関数ヘッダーの使用

ID: タイトルhiml_0001: 標準化された MATLAB® 関数ヘッダーの使用
説明

MATLAB 関数を使用する場合、標準化されたヘッダーを使用して、関数の目的と使用方法に関する情報を提供してください。

根拠

標準化されたヘッダーを使用すると、可読性が高まるとともに MATLAB 関数のドキュメンテーションが強化されます。このヘッダーには、関数の説明と使い方に関する情報を記述してください。

モデル アドバイザー チェックCheck usage of standardized MATLAB function headers (Simulink Check)
参考文献

  • DO-331, Section MB.6.3.4.e – Source code is traceable to low-level requirements

  • ISO 26262-6, Table 1 (1g) – Use of style guides

参考
最終更新R2018b

標準化された関数ヘッダーには、通常、以下の内容を記述します。

  • 関数名

  • 説明

  • 入出力 (可能であればサイズと型も記述)

  • 前提条件と制限

  • リビジョン履歴

例:

% FUNCTION NAME:
%   avg
%
% DESCRIPTION:
%   Compute the average of three inputs
%
% INPUT:
%   in1 - (double) Input one
%   in2 - (double) Input two
%   in3 - (double) Input three
%
% OUTPUT:
%   out - (double) Calculated average of the three inputs
%
% ASSUMPTIONS AND LIMITATIONS:
%   None
%
% REVISION HISTORY:
%   05/02/2018 - mmyers
%       * Initial implementation
%

himl_0002: MATLAB 関数の境界での厳密な型指定

ID: タイトルhiml_0002: MATLAB 関数の境界での厳密な型指定
説明

MATLAB 関数のインターフェイスにおいて厳密な型指定をサポートするには、以下の項目を設定して、入力信号、出力信号、パラメーターのインターフェイスを明示的に定義します。

  • 実数/複素数

根拠

定義済みのインターフェイス:

  • インターフェイスの一貫性をチェックすることができます。

  • 型が異なる入出力に対し、予期せぬ関数が生成されるのを防ぎます。

  • テストケースの数を抑えることで、関数のテストが簡略化されます。

モデル アドバイザー チェックCheck for MATLAB Function interfaces with inherited properties (Simulink Check)
参考文献
  • IEC 61508-3, Table B.9 (6) - Fully defined interface

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1c) - Enforcement of strong typing
    ISO 26262-6, Table 1 (1f) - Use of unambiguous graphical representation

  • EN 50128, Table A.1 (11) - Software Interface Specifications

  • DO-331, Section MB.6.3.2.b - Low-level requirements are accurate and consistent

参考
最終更新R2016a

推奨:

入力 u1 の実数/複素数および型を以下のように指定してください。

  • [実数/複素数][オフ] に設定

  • [型][uint16] に設定

非推奨:

入力 u1 の実数/複素数および型を以下のように "指定しない" でください。

  • [実数/複素数][継承] に設定

  • [データ型][Inherit:Simulink と同じ] に設定します。

メモ

入力を変更するには、MATLAB Function ブロック エディターのツール バーから、[データの編集] を選択します。

himl_0003: ユーザー定義の MATLAB 関数の複雑度

ID: タイトルhiml_0003: ユーザー定義の MATLAB 関数の複雑度
説明

MATLAB 関数を使用する場合、MATLAB コードのサイズと複雑度が大きくなりすぎないようにしてください。MATLAB 関数のサイズと複雑度は、以下の項目で表されます。

  • コードの行数

  • 関数の入れ子レベル

  • 循環的複雑度

  • コメントの密度 (コード行数に対するコメント行数の比)

メモ

サイズと複雑度に関する制限は、プロジェクトによって異なります。標準的な制限を以下の表に示します。

メトリクス制限
コードの行数MATLAB 関数 1 つにつき 60 行
関数の入れ子レベル31,2
循環的複雑度15
コメントの密度コード 1 行に対してコメント 0.2 行

1 外部関数に対する純粋なラッパーは、レベルの数としてカウントしません。

2 標準の MATLAB ライブラリ関数は、レベルの数としてカウントしません。

根拠
  • 可読性

  • 理解容易性

  • トレーサビリティ

  • 保守性

  • テスト容易性

モデル アドバイザー チェックCheck MATLAB Function metrics (Simulink Check)
参考文献
  • IEC 61508-3, Table B.9 (6) - Fully defined interface

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1a) - Enforcement of low complexity
    ISO 26262-6, Table 1 (1f) - Use of unambiguous graphical representation

  • EN 50128, Table A.1 (11) - Software Interface Specifications

  • DO-331, Sections MB.6.3.1.e - High-level requirements conform to standards
    DO-331, Sections MB.6.3.2.e - Low-level requirements conform to standards

参考
最終更新R2021b