リバースモデリング
リバースモデリングとは:既存システムからシステムモデルを起こす
リバースモデリングとは、既存システムをリバースエンジニアリングの考え方で分析し、その結果から一段抽象度の高いモデルを作ることです。設計書が現物とずれてしまった製品でも、変更の前に「いまのシステムがどうなっているか」をモデルとして共有できるようになります。
リバースモデリングの定義
リバースエンジニアリングは、完成した製品やソフトウェアを分析して、その構造や動作を明らかにする活動です。リバースモデリングはその結果を、部品の一覧や調査メモのままにせず、構造、機能、インターフェース、要件のつながりを持つモデルとして表現します。ソースコードや図面よりも抽象度が高いため、システム全体の見通しを得やすく、関係者が同じモデルを見ながら議論できます。
目的は、既存システムを丸ごと描き直すことではありません。これから変更する部分と、それに関係する部分について、判断に必要な粒度のモデルを用意することです。
日本の組込み製品・機械製品で重要な理由
日本の製造業では、ゼロからの新規開発よりも、既存製品をベースに機能を追加・変更する派生開発が多くを占めます。組込みソフトウェアは機種ごとに積み重なり、機械設計は前モデルの図面を流用して進みます。その結果、長く使われてきた製品ほど、設計書が現物やソースコードと一致しなくなり、当時の担当者しか知らない前提が増えていきます。
この状態で変更を加えると、影響範囲の見落としが起きやすくなります。電源容量、取付寸法、通信インターフェースのように、複数の部品やチームにまたがる要素ほど危険です。リバースモデリングは、こうした暗黙知をモデルとして見える形にし、変更の判断材料にするための手段です。
よくある進め方
リバースモデリングの進め方は、大きく次の2つに分かれます。
- 新規部分だけをモデル化する。追加・変更する機能だけをモデルで設計し、既存部分はブラックボックスとして扱います。着手は早い一方、既存部分とのインターフェースが曖昧なままだと、結合の段階で問題が見つかります。
- 既存部分もモデル化する。変更に関係する既存部分を分析してモデル化し、その上に新規部分を設計します。工数はかかりますが、影響範囲をモデル上で確認できるようになります。
実務では、変更に関係する範囲に限って既存部分をモデル化し、新規部分と同じモデルで扱う中間的な進め方が現実的です。
自動変換だけではうまくいかない理由
ソースコードからモデルを全自動で生成するツールに期待が集まることがあります。しかし、コードから機械的に作った図は実装の細部をそのまま写したものになりがちで、システムの意図や要件は表れません。読めるモデルにするには、変換前にコードやデータを整理し、変換後にも不要な要素の削除、名前の付け直し、抽象化といった手作業の編集が大量に必要になります。その結果、期待したほど工数が減らないことがよくあります。
リバースモデリングで価値があるのは、どの要件をどの部品が満たし、部品同士がどのインターフェースでつながっているかという関係です。これは変換ツールだけでは得られず、エンジニアの判断を入れて組み立てる必要があります。
システムモデルで進めるリバースモデリング
システムモデルを使うと、既存システムの分析結果を次の3つのつながりとして保持できます。
- 要件のトレーサビリティ。既存の要件文書や要件管理ツールにある要件を、それを満たす部品や機能に結び付けます。
- 部品と構成。部品表や CAD アセンブリから、製品の構成と数量をモデルの部品として表します。
- インターフェース。電気的な接続や機械的な取り合いを、部品間のインターフェースとして明示します。
この3つがそろうと、変更したい部品から関係する要件とインターフェースをたどれます。これは派生開発での影響範囲の確認にそのまま使えます。詳しくは派生開発(差分開発)と MBSEを、段階的な導入については既存システムへの MBSE の事後適用をご覧ください。
MBEstudio でのリバースモデリング
MBEstudio は、すでにお持ちの設計データから既存システムのモデルを作ります。STEP AP242 の CAD アセンブリからは製品構成を配置済みの部品として取り込み、各ボディには推定値と明示したエンベロープを与え(形状を捏造することはありません)、データムと幾何公差を保持します。QIF 3.0 の特性と測定結果、KiCad XML ネットリスト(部品の値とフットプリントを持つ基板と、インターフェースとしてのネット)、Onshape BOM CSV のアセンブリ情報と数量、ReqIF による要件(識別子を保持し、IBM DOORS とも ReqIF で連携できます)も取り込めます。PDF、Word、CSV、テキスト、Markdown のドキュメントは、ナレッジグラフ上で該当する要素に関連付けます。
モデルは SysML v2 のテキストで、コンパイラが検証します。要件は形状、質量、電力に対して評価され、値、上限、マージンが示されます。AI エージェント(MBEstudio 内蔵のエージェント、または MCP 経由の Claude Code、Codex、Cursor など)が不足しているインターフェース、機能、要件を提案し、エンジニアが1件ずつ承認または却下します。なお、ソースコード、バイナリ、3D スキャン、点群、写真からのリバースエンジニアリングや、CAD の詳細形状の再構築には対応していません。
対応データの一覧はリバースモデリング・派生開発、エージェントについてはエージェント、プランについては料金のページをご覧ください。
よくある質問
リバースモデリングとリバースエンジニアリングの違いは何ですか?
リバースエンジニアリングは、既存の製品やソフトウェアを分析して構造や動作を明らかにする活動です。リバースモデリングはその分析結果を使い、要件、部品、インターフェースのつながりを持つ、より抽象度の高いモデルを作ることを指します。
既存システムをすべてモデル化する必要がありますか?
いいえ。変更に関係する部分から始めるのが現実的です。MBEstudio ではサブシステムを1つずつモデル化し、あとからフェデレーションで統合できます。
MBEstudio はソースコードからモデルを生成できますか?
いいえ。MBEstudio はソースコードやバイナリからのリバースエンジニアリングには対応していません。CAD(STEP AP242)、QIF、KiCad ネットリスト、部品表、ReqIF の要件、ドキュメントからモデルを作ります。