| コンポーネント開発サイクル | ....ODG主体の開発サイクル |
| システム開発サイクル | ....ADG主体の開発サイクル |
| 主体となるチーム | ライフサイクル | スタイル | |
|---|---|---|---|
| コンポーネント開発サイクル | コンポーネント開発(ODG)チーム | 再利用クラス開発に依存 | 積み上げ反復 |
| システム開発サイクル | システム開発(ADG)チーム | 開発対象に依存 | カスケード・ウォータフォール |
積み上げ反復(コンポーネント開発サイクル)
積み上げ反復とは、ソフトウェアを小さな増分(increment)の積み重ねにより組み立てる方法である。新たに増分されるものは、それだけでも十分利用可能な機能を有するものであり、それを積み木のように積み上げていくアプローチである(機能を限定したものを段階的に拡張・変形するアプローチではない)。
この開発スタイルは、再利用コンポーネントの構築プロセスに最適なサイクルである。なぜなら、再利用コンポーネントは、パッケージ(利用される単位に再利用コンポーネントをグループ化したもの)を単位として、序々に積み上げ拡張するからである。従来の手法(非オブジェクト指向)では、新規の増分を融合する際、技術的な問題があった。それは、ソフトウェアを小さな増分(部品)としてまとめるための手法と実装技術がなかったためである。非オブジェクト指向の開発では、データと機能を別々にモデル化し実装しようとした。一方、オブジェクト指向では、データと機能をカプセル化する技術や、似たような構造を組織化するクラスと継承などの技術により、積み上げ反復は部品構築の領域に採用できるようになった。
カスケード・ウォータフォール(システム開発サイクル)
カスケード・ウォータフォールとは、従来のウォータフォールモデルの欠点を補うために、それぞれのフェーズが重なり合うことができるように改良したものである。このモデルは、「前フェーズが完了しなくとも後フェーズを並行して行うことができる」と定義することで、適度な柔軟性を導入する。それによって、ウォータフォールモデルから以下の長所を継承しつつ、前フェーズの遅れによる作業の停滞を解消できることや、フェーズ間を行き来しやすい構造をもたらす。
プロトタイプ開発
プロトタイプ開発は、Dropの開発サイクルの一部として開発フェーズの中に組み込む形で使用される。開発フェーズの中で、プロトタイプを目的に応じて計画的に使用することで、システム要求の決定を早めたり、実現可能性の早期検証を即したりすることが可能となる。詳しくは「第12章 プロトタイプ開発の利用」で述べる。
| 契約主導型開発サイクル | 「第10章 開発サイクルの基本形」の10.2 契約主導型開発サイクル |
|---|---|
| 発想主導型開発サイクル | 「第11章 開発サイクルの応用形」の11.1 発想主導型開発サイクル |
| 形態 | 例 | 説明 | 特徴 |
|---|---|---|---|
| 契約主導型 | 受注開発 製品開発 | ソフトウェア開発が、他社との契約行為によって始められる。約束された開発期間、約束された開発内容が何よりも重視される。ソフトウェアの品質は要求定義に定めた約束事に沿って評価される。 | 詳細な要求定義がなされ、開発依頼側と合意してから開発に取り組む。実績のある技術が採用される傾向がある。 | 発想主導型 | 研究開発 製品開発 | ソフトウェア開発の動機が、個人または複数人のアイデアを実現することから始められる。ソフトウェアの価値は、アイデアをソフトウェアとして具現化できるかである。なお、具現化とは、研究開発の場合は研究目的の達成であり、製品開発の場合は市場を獲得することである。 | ソフトウェアの改良・改善のための試作開発を繰り返し、同時に市場の要求を吸収していくことで、最終的に完成されたソフトウェアを目指す。最新技術を採用される傾向がある。 |
| 形態 | 項目 | 内容 |
|---|---|---|
| 契約主導型 | 長所 |
| 短所 |
| 対策 |
|
| 発想主導型 | 長所 |
| 短所 |
| 対策 |
|