Main Content

チャート アーキテクチャ

hisf_0004: 再帰関数の呼び出しから保護してコードの準拠性を高める

ID: タイトルhisf_0004: 再帰関数の呼び出しから保護してコードの準拠性を高める
説明生成されるコードの準拠性を高めるため、関数の再帰呼び出しをしないようにします。これには、グラフィカル関数、真理値表関数、MATLAB® 関数、または Simulink® 関数の任意の組み合わせが含まれます。
前提条件
メモ再帰は、関数が自分自身を直接的、あるいは他の関数呼び出しから間接的に呼び出す際に発生します。
根拠有界の関数呼び出し動作を促進する。
モデル アドバイザー チェックCheck usage of recursions (Simulink Check)
参考文献
  • IEC 61508-3, Table B.1 (6) 'Limited use of recursion'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 6 (1j) 'No recursions'

  • EN 50128, Table A.12 (6) 'Limited Use of Recursion'

  • DO-331, Section MB.6.3.2.g 'Algorithms are accurate'
    DO-331, Section MB.6.3.3.d 'Software architecture is verifiable'

  • MISRA C:2012, Rule 17.2

最終更新R2021a

Stateflow® には、再帰になりうるパターンが複数あります。

再帰的関数呼び出し

既定のステート A を入力すると、A の入力アクションでイベント Evn がブロードキャストされます。Evn は解釈アルゴリズムの再帰的呼び出しになります。A はアクティブであるため、A の出力遷移がテストされます。現在のイベント Evn は遷移イベントと一致し (条件がないため)、条件アクションが実行され、Evn を再度ブロードキャストします。これによって解釈アルゴリズムの新しい呼び出しが発生し、スタック オーバーフローまで同じ順序でステップを反復します。

再帰的関数呼び出し

hisf_0013: 遷移パスの使用方法 (パラレル ステートの境界を越える)

ID: タイトル

hisf_0013: 遷移パスの使用方法 (パラレル ステートの境界を越える)

説明

理解しにくいブロック線図を作成しないようにするには、以下に従ってください。

Aパラレル ステート間を横切る遷移の作成を避ける。
メモ

このガイドラインを使用して、整合性の高いプロジェクトでモデリング言語のサブセットを管理できます。

根拠Aモデルの可読性を向上させる。
モデル アドバイザー チェック

Check Stateflow charts for transition paths that cross parallel state boundaries (Simulink Check)

参考文献
  • IEC 61508-3, Table A.3 (3) 'Language subset’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

  • EN 50128, Table A.4 (11) 'Language Subset'

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

最終更新R2017b

次の例では、Out_A が 4 の場合、両方の親ステート (A_ParentB_Parent) が再入されます。親ステートを再入すると、Out_AOut_B の値がゼロにリセットされます。

hisf_0014: 遷移パスの使用方法 (ステートを通過する)

ID: タイトル

hisf_0014: 遷移パスの使用方法 (ステートを通過する)

説明

紛らわしく、有用でない遷移パスを含むブロック線図を作成しないようにするには、以下に従ってください。

Aサブステートで終わらずにステートに出入りする遷移パスを避ける。
メモ

このガイドラインを使用して、整合性の高いプロジェクトでモデリング言語のサブセットを管理できます。

根拠Aモデルの可読性を向上させる。
モデル アドバイザー チェック

Check for inappropriate use of transition paths (Simulink Check)

参考文献
  • IEC 61508-3, Table A.3 (3) 'Language subset’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

  • EN 50128, Table A.4 (11) 'Language Subset'

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

最終更新R2018b

hisf_0015: 厳密なデータ型指定 (変数とパラメーターを式で変換する)

ID: タイトル

hisf_0015: 厳密なデータ型指定 (変数とパラメーターを式で変換する)

説明

厳密なデータ型指定を容易にするために、Stateflow でデータ型の異なる変数やパラメーターを明示的に型キャストする。

メモ

Stateflow ソフトウェアは、異なる型の変数を同じデータ型に自動的に変換します。このガイドラインは中間変数のデータ型を明確にするのに役立ちます。

根拠A厳密なデータ型指定を適用する。
モデル アドバイザー チェック

Check Stateflow charts for strong data typing (Simulink Check)

参考文献
  • IEC 61508-3, Table A.3 (2) ‘Strongly typed programming language’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1c) 'Enforcement of strong typing'

  • EN 50128, Table A.4 (8) 'Strongly Typed Programming Language'

  • DO-331, Section MB.6.3.2.g 'Algorithms are accurate'

  • MISRA C:2012, Rule 10.1
    MISRA C:2012, Rule 12.2

最終更新R2021a

推奨

非推奨

hisf_0016: Stateflow の端子名

ID: タイトル

hisf_0016: Stateflow の端子名

説明Stateflow の入力または出力の名前は、対応する信号と同じでなければなりません。このガイドラインの例外は、再利用可能な Stateflow ブロックが異なる端子名をもつことができるという点です。
根拠トレース可能なコードの生成のサポート。
モデル アドバイザー チェック

Check naming of ports in Stateflow charts (Simulink Check)

参考文献
  • DO-331, Section MB.6.3.2.b 'Low-level requirements are accurate and consistent'

  • IEC 61508-3, Table A.3 (3) 'Language subset'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

  • EN 50128, Table A.4 (11) 'Language Subset'

最終更新2018a

hisf_0017: Stateflow データ オブジェクトのスコープ

ID: タイトル

hisf_0017: Stateflow データ オブジェクトのスコープ

説明ローカル スコープをもつ Stateflow データ オブジェクトはチャート レベル以下で定義しなければなりません。
根拠トレース可能なコードの生成のサポート。
モデル アドバイザー チェック

Check scoping of Stateflow data objects (Simulink Check)

参考文献
  • DO-331, Section MB.6.3.2.b 'Low-level requirements are accurate and consistent'

  • IEC 61508-3, Table A.3 (3) 'Language subset'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

  • EN 50128, Table A.4 (11) 'Language Subset'

最終更新2018a

推奨

非推奨