連載
» 2012年04月06日 10時53分 公開

状態遷移表による設計手法(1):状態遷移表設計手法の概要 (2/3)

[塚田 雄一 キャッツ,@IT MONOist]

設計図を中心とした開発とは

 他の業界でも、機械系なら図面を、電気系なら回路図を、建築系なら構造図を書くことから始めます。このように、多くのエンジニアリング分野では、モノを作る前にきちんと設計図を作成し、その設計図通りに作り始めます。

 しかし、ソフトウェア開発の場合は、設計図の作成をおろそかにしてしまいがちです。その理由としては、“作り直しがそれほど困難ではないこと”や、成果物がソースコードなので“修正することに対してあまり抵抗がないこと”などが考えられます。また、いくら正しい設計図が作成されていたとしても、エンジニアとしてはコーディングだけではなく、動作確認までしてみないと不安であるという心理から、自ら手を動かすことを優先し、結果的に設計図をおろそかにしてしまうということも理由として考えられます。

 では、設計図をおろそかにした結果、不具合(バグ)が出て、その修正作業が発生してしまったらどうでしょうか。設計図に不備があると考えると、おそらく問題は1箇所だけではないでしょう。不具合が見つかり、修正するという作業が繰り返し行われていくわけです……。これでは効率的な作業だとはいえません。

 つまり、不具合が出たら修正するという作業を繰り返すのではなく、他のエンジニアリング分野と同様にソフトウェア開発においても、不具合が出ないように設計・開発することが重要なのです。

 そこで、ソースコードを中心とした開発ではなく、設計図を中心とした開発手法が求められ、「モデルベース開発」に注目が集まったのです。

モデルベース開発 = 設計図を中心とした開発



モデルベース開発は「設計品質の向上」に効果あり

 ソフトウェア開発における一番の課題である設計品質の向上に対して、モデルベース開発はどのような効果があるのでしょうか。

 図4は、モデルベース開発の効果についてのアンケート結果です(※経済産業省調べ)。これによると、モデルベース開発は「情報の共有」「設計品質」に効果があったという結果が出ています。「大幅に改善」「多少改善」の割合を合わせてみると、モデルベース開発における効果は、設計品質に一番効果があったといえます。

2009年版 組み込みソフトウェア産業実態調査<プロジェクト責任者向け> 図4 2009年版 組み込みソフトウェア産業実態調査<プロジェクト責任者向け>(出典:経済産業省)

組み込みソフトウェアで一番使われているモデルは「状態遷移図/表」

 “モデルベース開発”と一言でいっても、「モデル」にはさまざまな種類があります。

 モデルと聞いてまず思い浮かぶものは、やはり標準化された「UML」ではないでしょうか。その他にも「制御モデル(Simulinkなど)」、モデル検査に使用される「形式的仕様記述」などがあります。

 それでは、組み込みソフトウェア開発において、どのモデルが一番使用されているのかを見てみましょう(図5)。

プロジェクトで利用した手法・技法(出典:経済産業省) 図5 プロジェクトで利用した手法・技法(出典:経済産業省)

 そうです。組み込みソフトウェア開発では、「状態遷移図/表」が一番多く使われているのです。

組み込みソフトウェアで「状態遷移図/表」が使われている理由

 先ほどの図5の結果から、組み込みソフトウェア開発では、状態遷移図/表が最も多く使われていることが分かりました。では、どんな理由により一番使われているのでしょうか。以降で少し考えてみましょう。

 そもそも、組み込みソフトウェアは、さまざまな事象(イベント)が常に発生しているシステムの上で動作しており、そのイベントに対し、その時の状態に応じた処理を設計することが要求されます。

 例えば、携帯電話機であれば、どのような電波の受信状態であっても常に応答する必要があります。また、ユーザーからのキー入力に応じて画面を変化させ、その時の画面(状態)に応じた処理を行わせる必要があります。そして、常に電源(バッテリー)を監視し、バッテリーが少なくなってきた際は、画面を切り替えて休止モードにするなど、常に入力(イベント)に対して、その時の状態に応じた処理を行うことが要求されます。また、現代における大規模・複雑な組み込みシステムでは、多くの状態が存在しており、その状態の組み合わせの数も非常に膨大です(図6)。

 このように状態の組み合わせの数が膨大であっても、それらを明確化し、整理して設計できるモデル――。それが状態遷移図/表などの状態遷移系のモデルなのです。

組み込みソフトウェアは状態に応じた処理を行う 図6 組み込みソフトウェアは状態に応じた処理を行う

「状態遷移系」モデルの適用分野

 それでは実際に、状態遷移系モデルが使用されている適用分野を見てみましょう。

 状態遷移系モデルは、デジタルカメラ、ビデオカメラ、メディアプレーヤー、エアコン、冷蔵庫などの家電製品をはじめ、OA機器、半導体製造装置、情報機器、医療機器、航空宇宙関係、車載システムなど、あらゆる分野で適用されています(図7)。

状態遷移系モデルの適用分野 図7 状態遷移系モデルの適用分野

 組み込みソフトウェアを使用したシステムのほとんどの分野で適用されているといっても過言ではありません。そして、それは同時に組み込みソフトウェアの開発においては“状態”を意識した開発を行う必要があり、そのために、状態遷移系モデルを使用した設計手法が有効であるということを示しています。

 詳しくは、下記Webサイトの適用事例をご覧ください。さまざまな分野での適用事例が参照できます。


Copyright © ITmedia, Inc. All Rights Reserved.