TOP
>
プロジェクト管理
> モデル駆動型開発の本質
開発方法論の本質〜基本に立ち返り本質に目をむけよ〜
第2回:開発プロセスの本質とモデル駆動開発
著者:
マイクロソフト 成本正史
2006/10/10
前のページ
1
2
3
モデル駆動型開発の本質
ここまで紹介したように、開発プロセスとはシステムに関わるステークホルダの観点から見た要件を具現化する工程だと考えることができる。通常、要件から最終的な成果物を生成する過程で、ステークホルダ間の要件のすり合わせなどを行う。これら一連の作業を行う際にモデルを最大限利用するのが、モデル駆動型開発である。
モデル駆動に関する一般的な誤解として、モデルからコード生成する部分だけがハイライトされ、過去に存在したケースツールと混同されて理解されていることがある。ここで述べるのは、それとは次元が違うことを理解していただきたい。以降では、モデル駆動の本質について述べていこう。
モデル駆動では、ステークホルダの持つ意図をモデルという形式で一旦把握し、そのモデル間で整合性のチェックを行うことで、徐々に精度をあげながら最終的な成果物を構築していくのである。
システムを構築していく上でビジネスモデリングから物理的なインフラストラクチャまで、また構築フェーズのすべてにおいて複数のモデリング対象がある。今後のモデル駆動型開発とは、これらモデル対象に最適なモデリング環境を提供するDomain Specific Modelingが主流となろう。
そして重要なのは、そのモデラーの持つ知識・意図であってツールや表記法(モデリング言語)を使いこなすスキルではない。つまりモデラーごとに使いやすい表記法、ツールが存在していて、知識・意図を正確にインプットして各モデル間の連携・整合性が確保されていればよいのだ。
図3は、左上のビジネスモデルから右下のインフラストラクチャに至るまで各モデリング対象に最適化された環境を提供し、それぞれの成果物として生成されたモデル間を自動的にマッピングすることで、整合性を保つという思想を表現したものである。
図3:モデリング対象の関係性
モデル間のマッピングをどのように自動化するかというと、例えばデータに関しては、概念モデルとしてその企業で利用されているデータ(顧客、製品、在庫など)を抽出し、論理的なデータパターンを適用することで、アプリケーションで処理しやすいモデルへと変換する。
そして最終的にはデータベースサーバでのデータスキーマ(構造)に変換される。その際にはデータベースサーバが最大の性能を発揮できるようにスキーマが生成される。データ以外の分野についても同様にパターンを適用することで、モデル間のマッピングを達成する。
このような垂直方向のマッピングとは別に水平方向のマッピングも存在する。まずシステムがどのようなサービスで構成されるのかという「アプリケーションアーキテクチャ」の観点だ。そしてどういったインフラストラクチャで構成されるのかという「インフラストラクチャアーキテクチャ」の観点がある。
この2つの間で整合性をとる作業もモデルを駆使することで、作業効率や精度をあげることが可能である。最終成果物より一段高い抽象化レイヤであるモデルを利用することで、ステークホルダ間の意図を連携させながら各種作業を実施するということだ。
例えばリファクタリングというと通常はクラスやプログラミング言語レベルでソフトウェアの構造を最適化することを意味するが、今後はアプリケーション構成図やシステム構成図といったより高いレベルでのリファクタリングができる。
またモデルをベースとしてテストケースやテストスクリプト、テスト用データベースといったテスト環境構築の自動化や構成管理の自動化の達成が可能となる。さらにモデルにより定義されたデータセンターの構成とソフトウェアの配置をモデルの段階で検証し、検証された結果を基にして実際にソフトウェアの配置を自動化することも可能となる。
このようにモデルを中心に据えて各種作業の連携をはかりつつ、煩雑な作業の自動化を達成することがモデル駆動型開発の提供する大きな利点であるのだ。
まとめ
ここまでの話をまとめるとモデル駆動型の開発手法をドメインに特化した形で進めることでソフトウェア資産の再利用性は高まり、かつカスタマイズの必要な部分についてもドメイン特化のモデル言語(DSL)を使用することで、従来と比べてはるかに高い効率で作業を行うことが可能となる。このようにモデル駆動は開発効率を向上させる大きな可能性を持っているのだ。
次回の第3回ではソフトウェア開発効率を飛躍的に向上させる試みについて紹介する。
前のページ
1
2
3
著者プロフィール
マイクロソフト株式会社 成本正史
デベロッパー&プラットフォーム統括本部
戦略企画本部 戦略担当部長
ファクトリーオートメーションの分野でソフト・ハードの開発を担当し、当時日本ではじめてVBAスクリプトの実装を手がける。1999年にマイクロソフトに入社。COMや.NETに関する開発コンサルティングを行い、現在「アーキテクトエバンジェリスト」として技術面の啓蒙活動中。
・blog「地中海から未来予測」
http://d.hatena.ne.jp/Gianpaolo/
INDEX
第2回:開発プロセスの本質とモデル駆動開発
はじめに
開発プロセスの本質
モデル駆動型開発の本質