BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 統一プロセスの諸相

統一プロセスの諸相

原文(投稿日:2010/02/20)へのリンク

ラショナル統一プロセス® (RUP®)は1990年代にソフトウエア開発の最良のプラクティスを実践するためのフレームワークとして開発された。このフレームワークの中心的な特色である反復開発、平易さ、価値への着目、継続的なフィードバックなどはソフトウエア開発を成功させるための重要な要素だと考えられている。RUPを出発点として、異なるプロジェクトの領域に統一プロセスを適用する方法を確立した人もいる。

 ラショナル統一プロセス®の背景    
 
ラショナル統一プロセス® (RUP®)はソフトウエア開発のためのフレームワークを提供する目的で設計された。Rational Software社は1997年までにソフトウエア開発の7つのベストプラクティスをまとめた。
  1. リスクに対処することを主要な推進力にして反復的に開発する
  2. 要求を管理する
  3. コンポーネントベースの設計を採用する
  4. ソフトウエアを視覚的にモデル化する
  5. 継続的に品質を検証する
  6. 変更を管理する
  7. カスタマイズ可能
 
Rational社は上記のようなプロセスとプラクティスのフレームワークを商品として構築した。この商品は次の3つのコンポーネントを提供した。
  • 開発を導く変更可能なプロセス
  • プロセスの適用を自動化するツールtools
  • プロセスとツールを適用しやすくするサービスservices
 
RUPはプロジェクト全体に渡って適用できる作業分野とそのプロジェクトの主要な部分を定義する反復的な手法に基づいている。下の図(Hump Chartと呼ばれる)は4つのフェーズの中でどの作業分野に焦点があたっているのかを示している。
 
Hump Chart 

画像の出典: http://en.wikipedia.org/wiki/File:Development-iterative.gif

中心となる作業分野と同じようにRUP®は構成管理、変更管理、プロジェクト管理、環境支援のような補助的な作業分野も定義している。RUP®についてのさらなる詳細はこちらを参照されたい。

IBM社は2003年にRational Software社を買収し、RUP®の商用展開を続けている。
 
最初のRUPフレームワークの開発者であるPhilippe Kruchten氏は2002年の“Agility with the RUP”と題したペーパーで下記の意見を表明している。
ソフトウエア開発を行う組織にとって機敏さは、周囲の環境がもたらす変化や要求に対して迅速かつ正確に反応し、適応するための能力です。アジャイルプロセスはこのような適応能力を素早く発揮することを支援します。したがって、プロセスの規模やプロセスの進み具合ではなく柔軟性が重要な関心事になります。この記事ではラショナル統一プロセス® (RUP®)がどのような点において柔軟性を実現しているのかを説明するつもりです。
中心にある7つのプラクティスに加えてRUP®は下記のような原則に基づいている、と氏は説明する。
·         必要なものだけ実装する。
·         結果をどのように生み出したかではなく、価値のある結果に着目する。
·         ドキュメントの作成を最小限にする。
·         柔軟に動く。
·         失敗から学ぶ。
·         リスクを定期的に検討する。
·         進捗のための客観的で計測可能な基準を確立する。
·         大変で面倒で間違えやすい作業は自動化する。
·         小さくそして強力なチームを使う。
·         計画を立てる。
 
RUP®が提供するフレームワークはアジャイルの技術や手法と連携しやすい、と氏は結論を下している。
 
IBM社を去った後、Kruchten氏はブリティッシュコロンビア大学の電子情報工学部のソフトウエア工学の教授に就任した。

本質的統一プロセス

Rational Software社の創業者のひとりであるIvar Jacobson氏は本質的統一プロセス(ESSUP)を提案している。
本質的統一プロセス(EssUP)はソフトウエア開発のライフサイクル全体を形成する実践を集めたものです。この実践を中心に据えた手法は既存のベストプラクティスを含み、その上に構築されます。EssUPのプラクティスは統一プロセスやアジャイルなどの原則と統合され、手法の構造や機敏さ、プロセス自体の改善など、それらの手法のよいところを取り入れます。

ESSUPは一揃えの本質的原則として提供される。これらの原則は無料でダウンロードできるドキュメントとして入手できる。生み出すべきこと、するべきこと、鍵となる能力の3つを一組にしてひとつの原則が形成され、それぞれに説明とガイドラインが記述されている。

OpenUP - リーン統一プロセス

OpenUPもソフトウエア開発に必要なプロセス、原則、実践、役割、成果物、タスクについて定義している。OpenUPはEclipse Process Framework (EPF)として配布されている。

OpenUPは反復的でインクリメンタルな方法を構造化されたライフサイクルに適用するリーン統一プロセスです。OpenUPが採用するのは、ソフトウエア開発の恊働的な側面に着目する実践的なアジャイルの哲学です。ツールに捕われず形式的な要素も少ないプロセスで、さまざまなプロジェクトのタイプを扱えるようにするための拡張も可能です。

Bjorn Gustafsson氏が書いたOpenUPの手法とツール についての記事によると、

EPFはIBM RationalのRUPについての成果物や技術のある部分に支援されて2006年に開始したオープンソースイニシアティブです。開始当初からこのプロジェクトは20を超える企業の参加を得て、2007年の9月には最初のリリースを行いました。Eclipseプロジェクトの一環として始まったにもかかわらず、EclipseでのJ2EE開発だけでなくMicrosoft Visual Studioを使った.NET開発等、どんな種類の開発でもこのプロセスを作成できるようになっています。

この記事で氏はEPFの背景を説明し、また、OpenUPの配置についても説明している。氏の結論は、

この新しいOpenUPはRUPとアジャイルから作られたベストプラクティスであり、軽量さや素早さの点でもRUPとアジャイルの代替方法になり得ます。RUPを起源に持つので、反復的でインクリメンタルで、ユースケース駆動でかつリスク駆動であり、アーキテクチャを中心に据えた手法です。これらの方法論はアジャイルプロジェクトの習慣でもあります。OpenUPが提供するプラクティスは多くのプロジェクトにそのまま適用できます。しかし、プロジェクトに対して最適なプロセスに仕立てるために、EPF Composerツールを使ってサードパーティ製のプロプライエタリなプラクティスの拡張を追加することもできます。

エンタープライズ統一プロセス

RUP®のもうひとつの派生はScott Ambler氏のエンタープライズ統一プロセスだ。

エンタープライズ統一プロセス(EUP)はRUPの拡張だ。ProductionフェーズとRetirementフェーズを新たに追加している。ガバナンスとサポートがしっかり定義されていて、それに従わなければならないような環境でプロジェクトの成果を出していくことを可能にするのがEUPの目的だ。
 
EUPのウェブサイトによれば、
RUPが定義するのはソフトウエア開発のライフサイクルですが、EUPはこれを情報技術(IT)全体のライフサイクルに拡張します。EUPではふたつの新しいフェーズを導入しました。それは、ProductionRetirementです。そしていくつかの新しい作業分野を定義しています。それは運営と支援であり、エンタープライズ分野における7つの作業分野です(エンタープライズビジネスモデリングポートフォリオ管理エンタープライズアーキテクチャ戦略的再利用要員管理企業経営ソフトウエアプロセス改善)。
アジャイル統一プロセス
 
その他の思い切った手法として、氏はアジャイル統一プロセスも定義している。この手法は、アジャイルの原則や価値の中の最小限のプラクティスに着目した軽量な手法だ。アジャイル統一プロセスのウェブサイトによるとアジャイルUPは、
ラショナル統一プロセス(RUP)を単純化した手法です。この手法はRUPに従いながらもアジャイルの技法と概念を使いながらビジネスアプリケーションを開発するための方法を記述します。アジャイルUPの手法も、その記述内容も可能な限り単純にしておくことが目標のひとつです。記述は単純で適切です。詳細について知りたければリンク(ウェブ上)先で確認できます。この手法では以下のようなアジャイルの技法を利用します。テスト駆動開発(TDD)アジャイルモデル駆動開発(AMDD)変更管理データベースリファクタリング。これは生産性を高めるためです。

このウェブサイトにはRUPの作業分野とアジャイルUPの作業分野の違いについて説明してある。

アジャイルUPの成果物はすべてZIPファイル形式でダウンロードできる。このZIPにはHTMLページが含まれていて、そこにはアジャイルUPで利用するフェーズや作業分野、マイルストーン、役割そして成果物についての説明がある。また、実践するためのガイドラインも含まれている。

上に見てきた手法はすべて統一プロセスの変形と派生だ。

あなたもこの中のどれかの手法を利用してみて、アジャイルの世界とどれくらい馴染むのか確かめてみてはどうだろう。

この記事に星をつける

おすすめ度
スタイル

BT