反復型開発(Iterative and Incremental Development)は、従来のウォーターフォールモデルの欠点を補うために開発された
ソフトウェア開発手法です。この手法では、
ソフトウェアシステムを一度に完成させるのではなく、段階的に開発を進めていきます。開発者は、過去の開発経験から得られた知見を活かし、実際に使えるシステムを段階的にリリースしていくのが特徴です。
反復型開発のライフサイクル
反復型開発の基本的な考え方は、まず
ソフトウェアシステムの単純なサブセットから開発を始め、それを徐々に改良していくことです。最終的には、完全なシステムを実装することを目指します。開発プロセスは、初期段階と反復段階で構成され、プロジェクト制御リストが伴います。
初期段階では、システムの基本となる部分を作成します。この段階の目標は、ユーザーが試用できる製品を実装することです。問題の本質を捉え、簡単な解決策を見つけて提供します。このプロセスを導くために、必要な作業をリストアップしたプロジェクト制御リストを作成します。リストには、新しい機能や既存の解決策の再設計が必要な箇所などが含まれます。制御リストは、分析フェーズの結果を受けて継続的に更新されます。
反復段階では、プロジェクト制御リストやシステムの現状分析に基づいて、再設計や実装などの必要な作業を行います。各反復での作業量や複雑さは小さく抑え、モジュール化を考慮して実装する機能を選択します。この際、コード自体が
ソフトウェアドキュメントの主要な情報源となることもあります。各反復における分析は、主にユーザーからのフィードバックに基づいて行われます。プログラム解析ツールも活用し、構造、モジュール性、
ユーザビリティ、効率、目標達成率などを分析します。これらの分析結果に基づいて、プロジェクト制御リストが更新されます。
実装と分析のガイドラインには、以下のような項目が含まれます。
何らかの変更によって、設計、コーディング、テストで問題が発生した場合は、再設計や再コーディングが必要となる。
修正は、独立したモジュール群に簡単に適用できることが望ましい。そうでない場合は、再設計が必要となる。
テーブルの修正は、特に容易に実行できるようにする。修正が容易でない場合は、再設計が必要となる。
修正は、反復を繰り返すにつれて容易になるべきである。そうならない場合は、設計の流れに根本的な問題があると考えられる。
パッチは、1、2回の反復の間だけ存在するのが一般的である。パッチは、実装時に再設計が必要な場合に、応急処置として使用される。
現状の実装を頻繁に分析し、プロジェクトの目標達成度を測定する。
プログラム解析ツールを積極的に利用し、プログラムを分析する。
ユーザーの反応を分析し、現状の実装における問題点を明らかにする。
反復型開発の特徴
反復型開発の重要な特徴は、分析と計測に基づいて
改善を行う点です。これにより、開発プロセスの効率性を高め、製品の品質を向上させます。開発チームは、分析と計測を通してプロジェクトを学び、環境に適応していきます。同様の分析と計測をアジャイル開発手法に取り入れることも可能です。
反復型開発では、計測の活用が大きな利点となります。計測結果は、比較対象がないと評価が難しいですが、反復型開発では反復ごとの計測結果を比較することで、目標達成状況を明確にできます。例えば、ある時点の製品について、サイズ、複雑さ、結合度、凝集度などを計測することで、それらが
改善されているか、悪化しているかを確認できます。
このモデルを用いて、さまざまな
ソフトウェアが開発されてきました。初期段階では動作するだけの製品でも、リリースを重ねるごとに機能が追加され、バグが減っていきます。代表的な例として、Yahoo! Messenger、Azureus、各種セキュリティ
ソフトウェア、P2P
ソフトウェアなどが挙げられます。
参考文献
History Of Iterative
関連項目
ソフトウェア開発工程
RAD (計算機プログラミング環境)
Dynamic Systems Development Method (DSDM)
エクストリーム・プログラミング
スパイラルモデル
ラショナル統一プロセス
改善
統一プロセス (UP)
情報アーキテクチャ
OpenUP/Basic
インタラクションデザイン
外部リンク
Going round and round and getting nowhere eXtremely fast? Another look at incremental and iterative development from Methods & Tools
The “Case” for Waterfall Development from From The Trench
Iterative Development and The Leaning Tower of Pisa from From The Trench
SRA RUPホームページ