0
1

制御対象状態を減らし,試験をし易くするMISRA-C 制御(2)

Last updated at Posted at 2024-05-18

制御対象状態を減らして,状態遷移試験をし易くするためのMISRA-C
https://researchmap.jp/blogs/blog_entries/view/82322/2666542fba6ca4954428647491dbea41?frame_id=445675

TEF東海の状態遷移試験の勉強会に参加しました。


ソフトウェア試験の技術者は、状態遷移試験を最初に勉強するとよいという話が一番共感できました。原理的なところから押さえていけば、体系的に勉強できるので、無駄なく理解できると感じています。

発言したこと、考えたことなどは別途記録します。

まず、2つの大事なことを記録します。

状態方程式について
 状態を計算する演習をしました。
 状態方程式を計算していることを説明すれば、すごく分かり易いと思いました。
 状態方程式の計算をしているから、行列の掛算をしているという話をすれば、
 電気屋さんも、制御屋さんも、自分がやっていることと同じだと分かるので、
 すぐに馴染むと感じました。

MISRA-Cについて
 MISRA-Cはコード規約です。
 MISRA-Cが、C言語の部分集合を定義している理由については、一つは
 函数プログラミングをすることによって振舞の異なる記述をしないように
 なるという仮設を確認中です。
 同じように、MISRA-Cは、状態の数,状態遷移の数を減らすことによって、
 振舞の異なる記述をしないようにしているという仮設を確認中です。


状態方程式については、会合で簡単に触れました。

出力=状態行列×入力という式です。

状態遷移試験をする場合に,課題として状態の数,状態遷移の数があります。
状態の数,状態遷移の数が多いと、試験が爆発的に多くなります。

MISRA-Cは、厳密なプログラムを書くための手法として状態の数,状態遷移の数を減らす手法として考えるとよいことが分かります。

自由にプログラムをすると、不必要に状態の数が増えてしまう可能性があります。

MISRA-Cでは、不必要な状態の数の増大を防ぐ方法の例を示します。

1 静的記憶のみの利用
 動的記憶の利用は、状態の数を爆発的に増やす可能性があります。
 
2 不必要な副作用の回避
 不必要な副作用を回避することは、振舞の違いを回避することが目的です。
 振舞の違いを回避することは、状態遷移の違いを回避することになります。
 状態遷移の違いを回避することは、状態遷移の数を減らすことになります。
 不必要な副作用を回避することは、状態遷移の数を減らすことになります。

3 変数の範囲の限定と、変数の代入の際の範囲の限定
 変数の型,型変換を厳密に記述することによって、変数の代入などの際に,
 不必要に状態が増加することを防いでいる。

コード規約,制御理論,論理回路など関係理論は、
ソフトウェアを試験する際の理論と結びついていることを示すと,
覚えることが少ないことが分かるかもしれません。

<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.

自己参照

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

Error一覧(C/C++, python, bash...) Error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394

TOPPERSまとめ #名古屋のIoTは名古屋のOSで
https://qiita.com/kaizen_nagoya/items/9026c049cb0309b9d451

官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧 
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

小川清最終講義、小川清最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.

文書履歴(document history)

ver. 0.01 初稿  20240504

最後までおよみいただきありがとう4ざいました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1