Thursday, January 04, 2007

RUP とは

Rational Unified Process(ラショナル統一プロセス)のこと。いわゆる Unified Process の原型はこれだろう。オブジェクト指向ソフトウェアエンジニアリングのベストプラクティスをまとめたものといえる。

UP は、ウォーターフォールプロセスと異なり、反復的で段階的な開発プロセスである。これは、プロジェクトの進展につれて、次のようなフェーズをたどり、

  • 方向フェーズ
  • 推敲フェーズ
  • 作成フェーズ
  • 移行フェーズ
各フェーズは1つ以上の反復から構成される。反復とは、時間を区切って、その中で達成すべき目標を明らかにしたものである。各反復終了後に、完了したものについて評価し、必要ならばプロジェクト計画を調整し、次の反復のための詳細な計画を練る。

各反復でおこなわれる作業は次のような分野に分けられる。

  • ビジネスモデリング
  • 要求
  • 分析・設計
  • 作成
  • 移行
  • 構成と変更管理
  • プロジェクト管理
  • 環境
この中で最後の3つは、各反復の評価期間になされるようなことだろうか。これらの作業はフェーズによって重みが違ってくる。たとえば、ビジネスモデリングや要求などは、方向付けフェーズ・推敲フェーズで比重が大きいだろうし、分析・設計などは推敲フェーズでの比重がもっとも大きいだろう。もちろん、要求作業が作成フェーズに入るような場合もある。要求漏れや要求の変更に対応できるようにするためであり、これがウォーターフォールと違い、反復・段階的なプロセスの利点である。

RUP では、誰が(役割)、何を作成するために(成果物)、何をするのか(作業)ということが決められている。

4つのフェーズの各々は、その終点を特徴付ける目標とマイルストーンをもっている。各マイルストーンは、次のフェーズに進むときのリスクを軽減するために達成する必要があり、それを評価するために作成しなければならない成果物が決められている。

方向付けフェーズの終点では、

  • プロジェクトの範囲(開発すべきもの)・予算・高水準のスケジュールについて、利害関係者(ユーザ、買主、開発者、プロジェクト管理者など)が合意していること。
  • 要求(製品に対する期待と優先度)を利害関係者が理解していること。
  • 気がついたリスクについて合意し、それに対する対処策が考えられていること。
が求められる。推敲フェーズでは、

  • 主要なアーキテクチャの決定がなされ、それを実装した実行可能なアーキテクチャ(プロトタイプ)が完成する。
  • それが製品に対する要求を満たしていることを確認すること。
  • 作成フェーズの全体的な計画と各反復計画が立てられていること。
  • 適切な支援環境と開発基盤が確立されていること。
が求められる。作成フェーズでは、

  • 製品の α ヴァージョン(最初のユーザへリリースできる程度の成熟度をもっている)が完成していること。
  • ユーザがテストや使用の準備が整っていること。
が求められる。そして、移行フェーズでの成果物は、

  • 開発された製品
  • リリースノート
  • 導入および設定手順書、スクリプト
  • エンドユーザ支援資料
ということになる。

RUP で定義されている作業や成果物をすべて作成しなければならないということではない。プロジェクトの性格にあわせて柔軟に取捨選択すればいい。

No comments: