いまさら聞けない モデルベース開発入門:開発プロセス改善手法解説(2/2 ページ)
あなたは人に「モデルベース開発」を正しく説明できるだろうか? プロセス改善手法の1つであるモデルベース開発の概念や特徴について解説
モデルベース開発における「モデル」――「実行可能な仕様書」
モデルベース開発の第一の特徴として、開発の対象となるシステムの仕様を抽象的に記述した“モデル”の存在が挙げられます。
経済産業省の調べによると、状態遷移図やフローチャートといった基本的なレベルでのモデルは、70%以上のプロジェクトで導入が進んでおり、その結果として、情報共有やドキュメント化、設計品質の向上といった点において改善効果が認められているようです(図5)(図6)。
実際、モデルの構造からシステムの内部構造や処理フローを直感的に理解することが可能となります。しかしながら、図やチャートをただ紙に記述するだけでは、従来の紙ベースの仕様書と大して変わりはないでしょう。単にドキュメント記述をするためのチャート作成ツールとは別に、モデルベース開発のコンセプトにのっとった各種ツールが存在している理由はそこにあります。つまり、モデルベース開発ツールには図やチャートといったモデルの描画機能だけでなく、その記述によって表現されるモデルの出力結果も確認できる機能が備わっているわけです。このようなモデルベース開発ツール、およびツールで作成されるモデルの重要な機能としては、「対象となるシステムの挙動をコンピュータ上でシミュレーションできること」が挙げられます。
シミュレーションによる設計
モデルベース開発の特徴として次に挙げられるのは、シミュレーションにより設計の詳細化、妥当性検証を行うということです。
通常、モデルベース開発ツールで作成されたモデルは「実行可能な仕様書」などと呼ばれ、開発プロセスの上流から下流に至るまでの各工程において、さまざまな形で利用されます。前述のように、モデルベース開発ツールで作成されたモデルは、コンピュータ上でシミュレーションを実行することが可能です。この実行可能な仕様書モデルとともに、紙の仕様書では記述し切れなかった設計情報、つまり、シミュレーション条件や実行結果といった情報が付加され、システム設計の段階で設計情報として共有することが可能となります。また、シミュレーション結果から、所望の出力結果も明示的になり、これをよりどころとして設計の詳細化を進めることができます。そして、モデル化されたシステム全体のシミュレーションを実行し、その結果をシステムの内部を機能単位ごとに分析することで、コンポーネント間の相互作用を把握できます。実際のシステム開発は、機能単位に分割して分業で進められることも多く、プロジェクト内で「実行可能な仕様書」モデルの共有を進めることにより、エラーの早期検出や、工程間にわたるエラー要因の特定の際のコミュニケーション改善においても効果が期待できます。
さらに、システムパラメータを変更した際の影響などを分析、評価するうえでは、できる限り多くのサンプルで試行することが信頼性につながります。実環境では発生しにくいような条件設定もシミュレーションでは可能であるといったことが多く、再現性も100%ですから、設計エラーを徹底的に検出、修正するためにまさにうってつけの方法といえます。このように、システム設計に必要な詳細情報を抽出、整理し、エラーを抑制する手法として、「シミュレーションによる設計」は極めて有効です。
さらに理解を深めるために――モデルベース開発ツール
モデルベース開発について情報収集する際には、資料で言及されているモデルが何を抽象表現したものなのかを正しく把握することで、より理解を深めることができると思います。ちなみに、書籍、Webなどのさまざまな情報を見てみると、そこで取り上げられているモデルベース開発ツールは、ツールで扱われるモデルが表現するものによって、大きく2種類に分類できます。
いかがでしたでしょうか。「モデルベース開発とは何か」という疑問は解消されたでしょうか?
本稿では、モデルベース開発の特徴をなす4つの構成要素のうちの2つ、すなわち「実行可能な仕様書」および「シミュレーションによる設計」について、これらのもたらす効果について解説しましたが、そのほかの2つ「自動コード生成」「テスト・検証」については言及しておりません。読者の皆さんの中には「自動コード生成はモデルベース開発を語るうえで外せない」という方もいらっしゃると思います。実際、雑誌やWebに掲載されている新製品情報などでも、自動コード生成ツールが取り上げられるケースは非常に多く、“モデルベース開発=自動コード生成”というふうにも見られがちです。
ではなぜ今回、「自動コード生成」について言及しなかったのか? それは、“自動コード生成はモデルベース開発の必須条件ではない”ということを強調したかったからです。むしろ、モデルベース開発を適用する際には、開発プロセスにモデルが導入され、シミュレーションによる設計が定着することが重要です。この下地が前提として存在しなければ、自動コード生成の導入効果も薄れてしまうと筆者は考えます。
最後にもう一度、モデルベース開発を一言で定義します。モデルベース開発とは、
「モデルをよりどころとして、電子機器製品に含まれる組み込みシステムの開発プロセスを改善する手法」
です。本稿が少しでも皆さんの理解の手助けになれば幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.