列挙型の値を比較する際、「<」や「>=」を使用するのは、モデリングガイドラインにひっかかることはあるのか?
2 ビュー (過去 30 日間)
古いコメントを表示
現在自動車メーカーにて、制御モデルの作成をSimulink, Stateflowにて行っております。
現在使用しているモデルにおいては、列挙型の値を「<」や「>=」を用いて比較を行っている部分があり、違和感を感じております。
列挙型の値の例としては、High, Middle, Lowのような大きさを表す尺度だけではなく、Start, Stop, Stayなどの状態を表すものもあります。
Stop = 0, Stay = 1, Start = 2とすると、「StatusがStopでなければ」という条件を表すブロックとして、
「Status != Stop」ではなく「Status >= Stay」というように表現されており、非常にわかりにくくなっております。
これを改善するように指摘したところ、
「現状の『Status >= Stay』というモデルで動作に問題がないので、これを変更して不具合が混入するというリスクを犯したくない」という理由で却下されてしまいました。
そのため、「Status >= Stay」という表現に問題があるということを客観的な根拠をもとに主張しようと考えております。
そこで質問なのですが、「Status >= Stay」という表現がMISRA CやCERT C, ISO 26262やJMAABといったモデリングガイドライン、あるいはコーディングガイドラインに引っかかるといったことはあるのでしょうか?
(先ほど自分でもモデルアドバイザーを使用してみましたが、特に上記のような表現がもとで引っかかっているようなところはありませんでした、、、)
2 件のコメント
Atsushi Ueno
2023 年 10 月 10 日
>引っかかるといったことはあるのでしょうか?
質問の様なルールは見た記憶がありません
【余談】
これは確かに改善したい内容ですが「現状で動作に問題がない。変更して不具合が混入するリスクを犯したくない」を覆す強い理由が見当たらないです。
CのSwitch文においてフォールスルーを使うのに似てますね。余談ですがMATLABのSwitch文ではフォールスルーを使う事が出来ません。
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 命名規則 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!