pulpul 日本の試験

エンベデッドシステムスペシャリスト 概念書 · 組込み・コンピュータシステム

状態遷移と組込みソフトの設計

状態遷移とは、組込みシステムがイベントを受け取るたびに現在の状態から次の状態へ移り、必要な動作を行う振る舞いのことである。組込みソフトウェアの設計では、この振る舞いを状態遷移図や状態遷移表として整理し、どの状態でどのイベントを受け取ると何をするかを漏れなく定義することが出発点になる。あわせて、機能をハードウェアとソフトウェアのどちらで実現するかを決めるコデザインの考え方も、同じ設計段階で検討される。

状態遷移の原理と仕組み

状態遷移モデルは、状態、イベント(入力)、遷移先、遷移時の動作の四つの要素で構成される。ある状態にいるとき、その状態が受け付けるイベントによってだけ次の状態が決まるため、状態は過去に受け取った入力の要約として働く。有限オートマトンでは、入力列の末尾に関する情報だけを状態に持たせれば十分であり、末尾の条件に合う状態を受理状態に定めることで入力列の判定ができる。たとえば、末尾が110で終わるビット列を受理する場合は、直前の2ビットが10である状態を受理状態にすればよい。

イベントを受けても状態が変わらない遷移は自己ループと呼ばれ、イベントを読み流す動作として扱われる。自己ループを含むイベント列では、状態が実際に変わる遷移だけを追えば最終状態を求められる。そのため、同じ状態に留まる箇所を明確にしてから順に遷移先を書き出すと誤りを減らせる。

さらに、同じ状態名が遷移表の複数箇所に現れる場合は、その状態名を仮に当てはめてイベント列を一つずつ追い、最終状態が条件を満たすかを確かめる方法が有効である。仮定が条件に合わなければ、別の状態名を当てはめて検証し直す。この手順は、試験の問題だけでなく、設計した状態遷移表の動作を確認する場面でも使われる。

判断の基準と遷移条件の定義

状態遷移の設計では、遷移条件が観測可能な事象として定義されているかが判断の基準になる。探査機の海中での状態遷移を扱う設問では、遷移条件を答える際に特定の装置状態の検出を条件から除外する前提が示されており、どの事象を遷移の根拠にするかを限定して考える必要がある。

また、タスク間で受け渡す通知の種類が、遷移条件そのものを決める。どの情報が何の状態変化を意味するかを整理しなければ、遷移の根拠が曖昧になる。データ管理タスクへ通知される情報を答えさせる設問は、この通知内容を明確に区別する重要性を示している。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む