モデル駆動開発の威力

モデル駆動開発(MDD)について知人と話をしていて議論が微妙に噛み合わなかったので、よくよく話を聞いてみたら、ソースコードの自動生成など高機能なツールの存在を知らなかったのが原因だった。確かに、モデル駆動開発と一言で言っても対象が幅広いし、それを使う人によっても定義が違っていたりするので要注意なのだが、今回もその辺のスタート地点の認識から異なっていたらしい。

例えば、「IBM Rational Rhapsody」などを使うと、UMLで描いたクラス図や状態遷移図から動作の状況を可視化出来るので、動作のシーケンス図をアニメーションで表示させたり、各オブジェクトの状態遷移を示せるので、システム全体として何がどのような状況になっているのか一目で分かり大変便利だ。しかも、その仕様に従って各プラットフォームに応じた完全に動作するソースコードを出力してくれるので、開発効率が劇的に向上したりする。私も初めてデモを見せられた時には驚きを覚えると同時に、その優れた機能に少々興奮したように記憶している。

こんな優れたツールを使うと、ソースコードという「チマチマしたもの」から、モデルという「より抽象度の高いもの」への変化の流れを感じ取ることが出来て感慨深い。「職人芸の世界」にこだわる開発者は、そんなコードの「実行速度」とか「リソース消費量」を問題として指摘することが多く、確かにそんな問題は無いとは言い切れないものの、ケタ違いの生産性の高さは非常に魅力的だ。少々高価だけど、こんな優れた開発ツールが広く出回ってくると、上手く使いこなせる・使いこなせない組織とか、モデリングで開発出来る・出来ない開発者の差が如実に表れてくるような気がする。ソースコードレベルの議論ももちろん大切だけど、これからはモデル駆動開発という抽象度の高い開発手法も抑えておきたいものだ。

Rhapsodyがほかのツールと一線を画す特徴として「モデルを利用したソースコードの生成も可能」なことが挙げられる。RhapsodyはJava、C/C++、Ada(※)などのプログラミング言語に対応しており、特にC言語のためのソフトウェア開発標準規格「MISRA-C」のコーディング規約に対応する形でコード生成が可能である。

モデル駆動型開発に役立つツール「IBM Rational Rhapsody」 - TechTargetジャパン システム開発