生産性を10倍に!

Domain-Specific Modeling is fundamentally faster than manual coding with a programming language. 過去、最も飛躍的であった生産性の向上は、数十年前のアセンブラ言語から第三世代言語(C、COBOL など)への移行。それ以来、新しいプログラミング言語は殆ど生産性には寄与しない。抽象レベルを際立てて上げることがないので。例えばJavaによる生産性はBASIC に比較して平均20%程度の改善のみに留まる (Software Productivity Research).

UML のような従来式のモデリング言語でも状況は殆ど変わらない。なぜならコアのモデルは実質的にサポートするプログラミング言語と同レベルの抽象度なので。またモデルとコードの同期は完全に自動化されないので、ビジュアルモデリングの恩恵も相殺されてしまう。実際、コード構造の一部が静的なモデルに複製され、残りの設計、ユーザビュー、動的振舞い、相互作用、コードは人手によってメンテナンスされることになる。

ドメインスペシフィックモデリング言語なら根本的に抽象レベルを上げることができると同時に、デザイン空間の範囲を限定できる(単一メーカの単一製品系列にまで)。ドメインスペシフィックな言語なら、慣れ親しんだドメインのコンセプトで解決空間をモデル化することで問題空間を解決できる。そして最終製品は、高レベルの仕様からコードジェネレータによって自動生成されるので、もはや間違いのもとになるドメインコンセプトとデザインコンセプトのマッピング、およびプログラミング言語のコンセプトへのマッピングなどは不要になる。このアプローチなら、従来手法の5~10倍の生産性が得られることが報告されている。抜本的な生産性向上は、数十年のギャップの後、再び実現可能になったということである。