開発の流れにMDAを取り込むMDAのしくみ(2)

» 2004年03月10日 12時00分 公開
[樫山雄一(ボーランド),@IT]

MDAをいかに開発に取り込むか

 第1回「MDAのメリットを考える」では、MDAの概要とメリットについて解説しました。今回は、MDAをいかに開発に取り込むかという視点で解説をします。MDAは、ある個人で利用するよりもチームで利用する方がより効果が上がります。また、事業部や会社での採用によりさらなる効果を期待できます。

モデリングの流れとMDA

 現在、どのようなスタイルでモデリングを行い、実装につなげているかを考えてみましょう。下記の表にモデリングの流れの概要を示します。最終的な実装までにどのようなモデルを作成するかは、さまざまな方法がありこの方法が一般的とはいえません。分析モデルを省略するケースも多いですし、実装モデルを作成しないケースもあるでしょう。

モデル 目的
概念モデルの作成 システムの境界をはっきりさせる
単語の意味をチーム内で統一する
システムの全体の構造を把握する
分析モデルの作成 実装に依存しないビジネスモデルを作成する
実装モデルの作成 利用するプラットフォームに依存したモデルを作成する。J2EEであれば、ServletやEJBに対応するクラスであることを明確にしてモデルを作成する
表 モデリングの流れ:(注)概念モデルと分析モデルによって、ビジネスモデルが表現されます

 では、このような流れがMDAの登場後にどのようになるのかを考えてみましょう。図1に簡単な概要を示しました。分析モデルは、PIMを用いて作成されます。概念モデルからPIMへは従来どおりの方法で作成されます。PIMからPSMへは、MDA対応ツールにより自動的に作成されます。

ALT 図1 MDAを用いた開発の流れ

開発プロセスとMDA

 ウォーターフォール型の開発では、顧客からの要求をすべて決定して開発する範囲が決まってから開発に入るため、図1のプロセスは基本的に1回流れることになります。次に図2にウォーターフォール型のプロセスの概要を示します。MDAが登場するのは、STEP2からとなりますが、UMLを用いて要求を表現する場合は、STEP1にも関連しているといえます。

ALT 図2 ウォーターフォール型のプロセス概要

 ウォーターフォール型のプロセスで、モデリングをどのように取り入れるかは、多くの方法がありますが、ここでは一例を述べることにします。図2のプロセスでは、STEP1で、概念モデルの作成を行い、STEP2で分析モデルを作成、STEP3で設計モデルの作成をします。MDAを用いた場合は、概念モデルはそのままSTEP1で作成し、PIMをSTEP2で作成します。STEP2で作成したモデルは、STEP2で決定されたアーキテクチャに従い、MDA対応ツールにてSTEP3でPSMに変換されることになります。

ALT 図3 FDDのプロセス概要

 次にアジャイルプロセスへの適用を考えてみます。アジャイルプロセスは、数多く存在します。それぞれに対して適用を考えるべきですが、ここではFDD(Feature Driven Development)を例に取って説明します。詳しいFDDの解説に関しては、下記のコラムを参照していただければと思います。

 図3にFDDのプロセスの概要を示しました。FDDでは、要求開発のフェイズはプロセスの対象外のためFDDのプロセスが開始されるときには要求開発のフェイズは終わっていると考えてください。MDAをFDDプロセスで利用する場合は、Process1で概念モデルを作成後、Process4でPIMとPSMを作成します。

FDD(Feature Driven Development)について

 FDDは、アジャイルプロセスの1つでピーター・コード(Peter Coad)らによって提案されたプロセスです(参考:「ピーター・コードが語る開発プロセスの選び方」)。ターゲットとなる開発規模は、40〜50人程度の開発者が参加するプロジェクトが最も適しているといわれています。プロセスの大きな特徴としては、ユーザーの要求をFeatureと呼ばれる2週間以内で開発できる単位にすべて分割してから、開発計画を立てるという点です。プロセスは、図3に示すように5つのプロセスに分割されます。プロセス3までで計画を終了して、プロセス4とプロセス5の間でイテレーションを行いながら開発を進めます。FDDに比べればXP(eXtreme Programming)は比較的小規模、UP(Unified Process)は大規模向きであるといえます。



モデルの管理

 PIMでビジネスモデルをモデリングできるようになったために、PIMをしっかりと作成して管理しておくことにより、成果物を知識として蓄え、再利用性を向上させることが可能になります。第1回「MDAのメリットを考える」での解説のとおり、ビジネスモデルをPIMで構築しておけば、PIMの性質からビジネスモデルを技術の進歩から、切り離すことができます。よって、ソースコードと同様にPIMを管理することにより、システムのマイグレーションのコストを継続的に削減することが可能になります。

要求管理とMDA

 ここ数年、要求を管理して上流フェイズでの失敗を少なくしようという考えが導入されつつあります。要求管理のツールもいくつか国内で利用可能になっています。システムに対する要求は、図4のように階層構造により管理されます。一番下の層の要求が設計に利用する要求となります。この最下層の要求の粒度は、各メソドロジーにより異なるために、ここでは言及しませんが、ある組織や対象となる開発アイテムで統一しておいた方が望ましいでしょう。

ALT 図4 要求の構造

 実際には、最下層の要求は担当者に割り当てられて、設計フェイズに入ります。ここから再度ユースケースを起こす場合もあるでしょうし、最下層の要求をユースケースとして作成することも考えられます。

ALT 図5 要求とユースケース(1)
ALT 図6 要求とユースケース(2)

 ユースケースは、XMIを用いてXML文書として保存可能なため、文書として要求に関連付けることが可能です。このような管理は、ワープロやスプレッドシート、HTMLなどを用いて行うことも可能だとは思いますが、かなりの労力を必要とします。実際には、専用のツールを用いて管理を行います。一般的には、図7のように要求とPIM、PSMのモデルを管理するといった方法がとられます。

ALT 図7 要求とPIM、PSM

 このように要求から、PIM、PSMを管理することにより、いくつかのメリットが出てきます。以下に3つのメリットを示します。

(1)要求変更への対応

 現在、ウォーターフォール型の開発を行う場合でも、開発中の仕様変更はある程度認める方向になってきています。よって、開発中の仕様変更に対応できるような考え方を導入しておく必要があります。要求とPIMを対応付けておくことにより、変更になった要求からすぐにどのPSMを変更するべきかをトレースすることが可能になります。また、仕様変更のモデルへの影響度も推測できるために、開発計画へのフィードバックも迅速に行えるメリットがあります。

(2)テストでの障害の対応

 テストにおいて障害が発見された場合も基本的には、仕様変更の場合の対応と同様になります。テストは、システムの要求を満足しているかという視点で作成されます。よって、テストケースは、すべて要求に関連付いています。よって、障害が発見された場合は、どの要求の障害かを特定可能です。要求が特定できれば、どのPIMに障害があるかを特定することが可能です。このように修正すべきモデルまでを迅速に特定することが可能になります。

(3)再利用

 第1回「MDAのメリットを考える」で、コンポーネントの面からの再利用についての解説をしました。ここでは、少し違った視点で再利用を考えてみます。

 どのような開発プロセスにおいても、要求を分解して設計に移行する作業を行います。この要求に分解された段階で、ほかのプロジェクトの要求を検索し同様あるいは類似した要求を見つけ出すことができれば、再利用の対象のPIMを見つけ出すことができます。MDAでは、ほかのプロジェクトで用いたプラットフォームに依存しないPIMでモデリングがされているので、過去のプロジェクトとは異なったプラットフォームや新しいバージョンのプラットフォームでの再利用が可能になります。

まとめ

 今回は、MDAが実際の開発プロセスの中でどのようなメリットを出していけるのかを解説しました。ボーランドでは、今回解説をしたような開発プロセスの中での要求、モデル、テストケース、ソースコードなどを統合的に管理するソリューションを提供しています。今後もMDA対応が計画されています。

 次回は、MDAを構成する各仕様について解説し、MDAを実現するしくみについて理解することを目的とします。

この記事に対するご意見をお寄せください

managemail@atmarkit.co.jp


著者紹介

▼樫山友一

 大手電機メーカー研究所でオブジェクト指向によるシステム開発に従事する。1996年よりJavaへの取り組みをはじめ、J2EEアプリケーションサーバを活用したWebシステム構築のコンサルタントとして多数のプロジェクトを手掛ける。2003年4月に日本ボーランド株式会社プロフェッショナルサービス本部・本部長に就任。著書に「わかりやすいUML入門」、「Webサイトがわかる本」(いずれもオーム社)がある。


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ