勉強できない技術者の勉強ノート

勉強のアウトプット用に作成しています。

モデルベース開発とは

 事前認識(&イメージ)

  • 制御開発で行われてきた手法で、それが開発全般にも使われるようになってきた
  • 仕様をモデルであらわすため、誰が見てもわかりやすい
  • モデルは動かせるため、動く仕様書とも言われる
  • 開発上流での完成度が上がり、開発期間短縮が見込める
  • 国内ではマツダのSKYACTIVEの開発が有名

 

モデルとは

 ここでいうモデルはいわゆる「数理モデル」で、数式で現象を表現したもの。

 イメージ図のような概念図や模型ではない。

 

 要するに、製品の機能を数式で表現したモデルを作成し、それを仕様として、それを基に製品開発を進めていくのがモデルベース開発。

 

 

 

モデルベース開発(ソフトウェア開発における)

開発プロセス改善手法解説:いまさら聞けない モデルベース開発入門 (1/2) - MONOist(モノイスト)

 

モデルベース開発において言及される代表的な特徴

  • モデルによる仕様の表現・定義「実行可能な仕様書」
  • モデルのシミュレーションによる設計の詳細化、妥当性検証
  • モデルから自動コード生成による実装
  • テスト・検証におけるモデルの再利用

従来手法の問題点として指摘されていた、紙の仕様書で不足する情報を補完するために「モデル」を用いることで、「仕様を明確化する」「開発プロセス全体のコミュニケーションを改善する」「開発の上流工程を重視する」というコンセプトはどれも共通

これは組み込みソフトウェア設計におけるモデルベース開発の考え方。モデルからのコード生成など、プログラミングを意識させる部分はあるものの、製品開発全般に拡張しても違和感は無い。というか、違う意味で使うなら用語変えるか。

 

雑記

最近、思うこと

モデルベース開発はモデルで仕様を表現することにより、誰が見てもわかるというのがある。

でも、複雑なモデルだったら、複雑なプログラムコードを読むように簡単にはわからないし、そもそも数学的な基礎知識、リテラシーが必要。

効率的に運用するなら専門的知識(ある程度のリテラシー)を持った専門家の領域になるだろうし、誰にも使えるようになると、具体的かつ平易にわかりやすくしないといけない。

基本的には専門家がわかりやすくする工夫とそれ以外の人が基礎知識として知識の底上げをしていく努力の両方が必要だと思うけど、なかなか難しいよね。どちらにしても面倒だし。