連載
» 2010年03月11日 00時00分 UPDATE

体験! MBD&MDDによる組み込みシステム開発(1):組み込みシステム開発における“モデル”とは?

組み込み開発に不可欠な2つの世界 ―ソフトウェアと制御― のモデルを使ってどのように開発が行われるのかを解説

[藤井 律行(永和システムマネジメント),@IT MONOist]

組み込みシステムのモデル

 皆さん、「モデル」という言葉を聞いたことがありますか?

モデリングするぞ!
これは良いモデルだなぁ
モデル駆動開発をしよう!!

など、情報通信技術(ICT:Information and Communication Technology)系、組み込み技術(ET:Embedded Technology)系を問わず、システムの分析・設計をしているとモデルという言葉がよく出てきます。

 私があるセミナーに出席したときも、“モデル”が出てきました。しかし、ぼんやりと聞いているうちにそのモデルとは、私の知っているICT系のソフトウェアの世界のモデルとは違うということに気が付きました。それは制御の世界のモデルで、当時私が属していたICT系のソフトウェアの世界の住人が知っているモデルとは異なるものでした……。そう、モデルは1つではなかったのです。

 では、そもそも“モデル”って何でしょうか? 汎化していうと「さまざまな現象を説明するために使用される単純化されたモノ」といえるでしょうか。だとすると、いろいろな世界のモデルがあってしかるべきです。本連載では組み込みシステム開発に必要不可欠な2つの世界<ソフトウェア><制御>のモデルを使ってどのように組み込みシステムが開発されていくのか、実際に手を動かしながら紹介していきたいと思います。

 記念すべき連載第1回では、組み込みシステムに登場する2つのモデル――「ソフトウェアのモデル」と「制御のモデル」――について整理していきたいと思います。

ソフトウェアの世界のモデル

 ソフトウェアの世界のモデルは、先ほどの表現に倣うと、

ソフトウェアの構造・振る舞いを説明するための単純化されたモノ

となります。

 ソフトウェアの開発エンジニアであれば、この辺の感覚はよくお分かりだと思います。システムの分析・設計で「UML(Unified Modeling Language)」に代表されるモデルが使用され、それらを基にシステムが形作られていきます。が、組み込みシステム開発には、もう1つの世界――制御の世界のモデル――があります。

制御の世界のモデル

 制御の世界のモデルも基本的にはソフトウェアの世界のモデルと考えは同じで、

制御したい対象を説明するための単純化されたモノ

といえるでしょう。

 では、制御の世界のモデルはどのように作られていくのでしょうか? モデリングの手法を見ていくことにしましょう。

制御の世界のモデリング

 モデリング方法には、以下の3つの方法があります(表1)。

モデリング手法 内容
ホワイトボックスモデリング 第1原理モデリングや、物理モデリングといわれるもので、運動方程式などを作って物理的にモデリングする方法です。モデリングの基本です。システム全体の構造などが明らかで、かつシステム全体を表現する数式が明らかである必要があります。対象の内部を解析するため、「ホワイトボックスモデリング」といわれます
ブラックボックスモデリング 実験などで得られた対象からの大量の入出力データを基に、統計的にモデリングする方法です。対象の内部について知る必要がないため、「ブラックボックスモデリング」といわれます
グレーボックスモデリング 第1原理モデリングをベースに、一部の未知なパラメータをブラックボックスモデリングの手法で推定するモデリング方法です。ホワイトボックスモデリング、ブラックボックスモデリングを併用するため、「グレーボックスモデリング」といわれます
表1 モデリング手法

 なお、ブラックボックスモデリング、グレーボックスモデリングのように対象を入出力データから推定する手法のことを「システム同定」と呼びます。

 いかがでしょうか。ソフトウェアのモデリングとは全然違いますね。組み込みシステムの場合は、機器の制御を主目的にしていることがほとんどで、制御対象を明らかにして目的の制御をすることは、製品そのものの価値につながります。

活用されるモデル

 モデルは単純化されているため、対象・現象の把握をするのに大変分かりやすいものといえます。ソフトウェアの世界でも、制御の世界でもモデルが使われるのはそのためです。

 最近では、擦り合わせ開発などにおける共通言語としても注目されています。また、単に意思疎通のためにモデルを使うのではなく、「モデルベース開発(MBD:Model Based Development)」や「モデル駆動開発(MDD:Model Driven Development)」といった、モデルをより効果的に使った開発にも使用され、活躍の場はますます広がっています。

 では、MBDやMDDといったモデルを使用した開発は、どのようなプロセスで行われるのでしょうか?

制御のモデルベース開発

 制御の世界ではMBDと呼ばれ、モデルを使用して制御対象を分析し、制御ロジックを作り込んでいく作業になります。一般的に次のようなプロセスをたどります(図1)。

制御のモデルベース開発プロセス 図1 制御のモデルベース開発プロセス

ソフトウェアのモデル駆動開発

 ソフトウェアの世界では、MDDと呼ばれ、モデルを使ってシステムの分析・設計を行い、ソフトウェアを作り込んでいきます。一般的に次のようなプロセスをたどります(図2)。

ソフトウェアのモデル駆動開発プロセス 図2 ソフトウェアのモデル駆動開発プロセス

 いずれの開発プロセスでも、出来上がったモデルの質がそのまま性能・品質に影響します。



 今回は、組み込みシステムに登場する2つのモデルについて簡単に整理しました。次回からは、MBDとMDDの2つの開発プロセスを用いて、制御の世界のモデルとソフトウェアの世界のモデルの両方を使い、実際に簡単な組み込みシステムを作っていきたいと思います。お楽しみに!(次回に続く)


Copyright© 2017 ITmedia, Inc. All Rights Reserved.