東芝情報システム株式会社

モデルベース開発とは?
メリット・デメリットや導入の課題などを徹底解説 第2回 (全4回)

モデルベース開発とは?メリット・デメリットや導入の課題などを徹底解説

第1回目では、従来型開発でレビューや検証でさまざまな課題が発生することや、その課題を解決するモデルベース開発の下記の3つの特徴についてご紹介しました。

  1. モデルが動く仕様書となる
  2. 自動コード生成できる
  3. 適合・評価の精度向上と期間短縮

第2回目では、この3つの特徴がもたらすメリットは何か?そしてデメリットはないのか?などを詳しくご紹介します。

モデルベース開発のメリットとは?モデルベース開発の「うれしさ」

モデルベース開発にはたくさんのメリットがあります。そのモデルベース開発の5つのうれしさをご紹介しましょう。

モデルベース開発のメリット

モデルベース開発のメリット1 バリデーション (妥当性検証)

モデルベース開発の大きなメリットの一つが、設計時点でバリデーション(妥当性検証)を行えることです。妥当性検証の意味はPMBOK*では、「プロダクト、サービス、システムなどが顧客や特定のステークホルダーのニーズを満たしているということを確認すること」と定義されています。
従来型のプロセスではシステムが完成するまで妥当性の検証ができなかったのですが、モデルベース開発では設計段階でシミュレーションを行うことで、バリデーションを行うことが可能になります。これによって、試作回数低減や、開発スピードの向上に効果を発揮します。

モデルベース開発

* PMBOK(Project Management Body of Knowledge): アメリカの非営利団体PMI(Project Management Institute) が1987年に発表したガイドブックに端を発し、現在では事実上のプロジェクトマネージメントの世界標準となっている。

モデルベース開発のメリット2 ベリフィケーション

ベリフィケーション(Verification)とは、細かくチェックや検証を重ねることをいいます。まさに、モデルベース開発は、このベリフィケーションがポイントとなります。

ちなみにPMBOKでは、ベリフィケーションは「プロダクト、サービス、システムなどが規制、要求、仕様、指定された条件などに適合しているかどうかを評価するプロセス」と定義されています。

従来型の開発プロセスでは、ソフトウェア設計時点で上位のシステム設計との動的なベリフィケーションを行うことができずレビューを行うしか方法がありませんでした。そのためレビュアーのスキルによって設計品質が左右されることもありました。
モデルベース開発ではソフトウェア設計書の動的検証を行うことができます。検証データはシステム設計の検証時に作成したユースケース/データをベースに作成します。シミュレーションによって動的な検証ができるため、結果の定量的な評価ができます。
また、従来型では手計算で算出するため非常に時間がかかった期待値については、システム設計時にシミュレーションした結果をそのまま利用することができるため、品質と効率向上に大きく寄与します。

モデルベース開発のメリット3 フォールトインジェクション

故障注入(Fault Injection)のこと。システム欠陥を意図的に作成し、検証することです。ソフトウェアであれば容易なことですが、ハードウェアに欠陥をあえて加えるのは、簡単なことではありません。場合によってはそのハードウェアが二度と使えなくなり、コストにも影響します。

モデルベース開発ではシミュレータを使って意図的に故障を注入することが可能なため、実際にハードウェアを利用して検証するよりも、はるかに容易にフォールトインジェクションの検証を行うことができます。また、これによりあらゆる状況をシミュレーションにて確認することができるため、品質の向上に大きく寄与することになります。

モデルベース開発のメリット4 トレーサビリティ

開発経路・経緯が追跡可能な状態にあることがトレーサビリティ(Traceability)です。農業や製造業で一般的な言葉ですが、システム開発でも重要なキーワードです。

従来型開発の場合、コーディングしたプログラムにミスが見つかると、その場でプログラムのみ修正し、仕様書/設計書へのフィードバックを怠ってしまうケースがあります。

モデルベース開発では作成したモデルがシステム設計書となり、その後にソフトウェアの設計書となるため、"動く仕様書"としてトレーサビリティーが確保されます。さらに自動コード生成によってソースコードとのトレーサビリティも保たれるため、従来型の開発プロセスに比べてトレーサビリティの確保が容易になります。

モデルベース開発のメリット5 モデルの再利用

従来の開発プロセスでも再利用することで、生産性や品質向上に積極的に取り組んでいると思います。当然モデルベース開発においても同様のことが言えますが、再利用のしやすさという意味ではモデルベースの方が圧倒的に有利です。その理由は下記です。

  1. モデルは「Simulinkのブロック=箱」として描かれるため、機能的にも視覚的にも再利用を促進させることを目的として体裁を整える必要がありません。
  2. 「モデル=仕様書」なので再利用のための仕様書を改めて作る必要がありません。
  3. 利用者は、ブロックをコピーするだけで、結果的にプログラムも仕様書も取り込むことができ、さらにシミュレーションとして即動作させて確認することが可能です。

再利用を促進するためには、作ったブロックをライブラリとして共有できるように構成管理ツールなどを活用して開発者各々が登録できる仕組みを作るだけで大きな成果を得られます。

このように、モデルベース開発では、バリデーション、ベリフィケーション、フォールトインジェクション、トレーサビリティ、モデルの再利用という、5つのうれしさがあります。

モデルベース開発のデメリット・課題

モデルベース開発のメリットをご紹介しましたが、次にデメリットもご紹介しましょう。

モデルベース開発のデメリット1 設計工数が増える

モデルベース開発では設計工程(V字プロセスの左側)でモデルを作成しシミュレーションを行う必要があります。

モデルベース開発

シミュレーションを行うことで設計の妥当性の確認を動的に行うことができる反面、従来の開発プロセスに比べると工数が増大してしまいます。工数を増大させる主な原因は下記です。

  1. モデルを作成するための技術の習熟に時間がかかる。
  2. シミュレーションするためには開発対象のモデル(制御モデル)とは別に、制御される対象となるモデル(プラントモデル)を作る必要がある
  3. 妥当性を検証するための検証用データを作成する必要がある。
  4. シミュレーション結果を確認し、設計の不備を修正する必要がある。
モデルベース開発導入前・導入後の開発工数

ただし、モデルベース開発を導入することで、「ソフトウェア作成/単体検査」「ソフトウェアテスト」「システムテスト」は劇的に短縮され、次のグラフのように全体で37%(当社比)の工数短縮を実現しています。

モデルベース開発のデメリット2 教育・人材育成に時間がかかる

モデルベース開発は従来の開発に比べてツールの利用率が高く、設計者自身がシミュレーションを行う必要があるため、設計者はツールなどを使いこなすための習熟に時間がかかります。したがって、従来開発で設計を行っていたメンバーがそのまま設計に従事することができず、設計者を育成する必要があります。

モデルベース開発のデメリット3 開発体制の不均衡が生じる

上図「モデルベース開発導入前・導入後の開発工数」を見ていていただくと解りやすいと思いますが、モデルベース開発では、V字プロセスの左側の工数が大きくなり、右側の工数が極端に少なくなります。従来型の場合は検証工程(V字の右側)に多くの工数を要していたため、人員配置もV字の右側に多くの人員を配置しています。

モデルベース開発ではV字の左側に多くの工数がかかるため、従来のままの人員配置では設計者が極端に不足します。これまで検証工程に従事していた人を減らして、設計者を増やす必要があります。言葉では簡単ですが、これまで検証に従事していた人をいきなり設計に配置転換することは簡単ではなく、教育、育成、配置転換など組織全体で取り組む必要があります。

モデルベース開発の「向く分野と向かない分野」

モデルベース開発がすべての組込みシステムに今すぐ役立つかといわれれば、必ずしもそうではありません。

現在、日本でモデルベース開発の採用が進んでいるのは自動車産業です。ワールドワイドでは航空・宇宙産業での採用が進んでいます。
キーポイントは制御とシミュレーションです。
安全を担保するためにさまざまな状況を想定して制御の検証を行う必要があり、何度も試作を繰り返したのちに製品化するようなシステムには親和性が高いと考えられます。

モデルベース開発は、開発プロセスにシミュレーションを導入することで、実機の試作回数を減らすことができます。その結果、開発コストの削減と開発期間の短縮効果をもたらします。さらに、実機検証だけでは網羅しきれないようなケースをシミュレートすることができるため、システムの安全性、品質の向上を実現することができます。
これらの理由から、今後採用が進むと考えられる分野は、鉄道やロボット、物流機器、医療機器などが考えられます。

当然ながらモデルベース開発に向いていない分野もあります。たとえば事務用ソフトやスマホアプリのような、制御を伴わないUI中心のソフトウェアの開発には現在のところでは向かないと考えられる分野です。

現在注目されている、ディープラーニングやAIといった分野に関しては今のところはモデルベース開発が採用されているという話はあまり聞きません。しかし、モデルベース開発ツールのデファクトスタンダードであるMATLABにはディープラーニングの機能も備わっているため、近い将来、AIと連動した制御が当たり前となり、こちらもモデルベース開発の採用が進む可能性もあります。


以上、モデルベース開発のメリット・デメリットと向いている分野、向いていない分野についてご紹介しました。
次回は、モデルベース開発が必要な理由とその歴史について詳しくご紹介します。

「第3回 モデルベース開発が必要な理由」へ

↑ページトップへ

お気軽にお問い合わせください。

電話番号044-246-8320

受付時間:9:00~17:45
但し、土曜・日曜・祝日および当社休業日を除く