開発モデルの種類 – スパイラルモデル、プロトタイプモデル、アジャイル の違い
2017/06/05
ひとまず定義の確認….
スパイラルモデル
- 反復型開発モデル
- 1回のループは6ヶ月から2年とされていた。(wikipedia)
- 設計とプロトタイピングを繰り返して開発していく手法である。(wikipedia)
- スパイラルモデルは大規模プロジェクトでよく使われる。小さいプロジェクトでは、アジャイルソフトウェア開発の方が良く使われるようになってきた。アメリカ軍は Future Combat Systems の開発にスパイラルモデルを適用している。(wikipedia)
プロトタイプモデル
- プロトタイプモデルとは、システム開発の初期段階において、機能を制限したり簡易化したりした試作機(プロトタイプと呼ばれる)を作成し、ユーザーに評価させる工程を設け、トータルの開発工数を減らすための開発手法のことである。(wikipedia)
プロトタイプモデルは、ユーザーによる評価目的ではなく、本格的な開発に取りかかる前に、設計方式の妥当性、あるいは、性能の検証を行うことで後工程での手戻りを最小限に止めることを目的とする場合もある。(wikipedia)
参考:
アジャイル(XP)
- アジャイルソフトウェア開発手法の多くは、反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リスクを最小化しようとしている。 1つの反復の期間は、プロジェクトごとに異なるが、1週間から4週間くらいであることが多い。
アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1つの機能を開発する(⇒反復型開発)。そして、この反復のサイクルを継続して行うことで、1つずつ機能を追加的に開発してゆくのである。また、各々の反復は、小規模なソフトウェア開発プロジェクトに似ている。なぜなら、計画、要求分析、設計、実装(コーディング)、テスト、文書化といった、ソフトウェアプロジェクトに要する全ての工程を、1つの反復内で行うからである。(wikipedia)
- XPは、軽量開発手法あるいはアジャイルソフトウェア開発手法と呼ばれる、同種の開発手法のなかで代表的なものである。柔軟性の高い開発手法であるが、古典的には開発が進むにつれ変更コストは大きくなると言うことを前提に開発手法が構築されているのに対して、自動テストを導入するなど様々な対策をすることにより開発が進んでも変更コストが大きくならないような工夫を持ち込むことにより、変更に対する柔軟性を実現している。(wikipedia)
参考:
まとめてみる
うーんと。
プロトタイプモデルは、シンプルな考え方で、最初に試作版を作って、ユーザー評価を入れて最終成果物の精度を上げようというもの。それだけ。
スパイラルとアジャイルはどちらも「反復開発型モデル」に分類される。ので似ている。
でも、繰り返す内容と期間に違いあり。
スパイラルが繰り返すのは、設計+プロトタイピング。
プロトタイピング上で触れたとおり、試作品の作成とユーザー評価だから。プロトタイピングの繰り返しにより、リリース物の質を上げたり、要求仕様の変化に対応しよう。というもの。
アジャイルが繰り返すのは、要件定義・設計から、テスト・リリースまで全ての開発作業フロー。
また、プロトタイプと違い、1つずつ機能を追加的に開発してゆく。
プロトタイプはAサービスを作成するぞ、というときに、
「Aの試作品→チェック、また試作品→チェック」 でOKになったらリリース
アジャイルは、
「Aサービスを構成する、Bの機能を今月作る。Bの開発は要件定義から、リリース・コミットまで、Bの開発にかかわる作業は全部ここで終わらす」
次の反復で、Cを作る。あるいはここで要件を変える(Bの機能拡張としてB’を作る)とか。
ウォーターフォールモデルでも、色々な理由で、多段階リリースをすることがあると思うが、一定の期間でそれを繰り返すイメージ。
ざっくり言うとこんな印象。
スパイラル:反復により成果物の質をあげよう。OR 妥協点を早めに洗い出そう。(プロトタイプモデルの強化版)
アジャイル:優先度の高いものから開発・リリースしよう。
ちなみに、同じものを作った場合、反復があるので、どちらもトータルのパワーはウォーターフォールよりかかる、と考えられる。
アジャイルにはいろんな実装があって、その代表格がXP。
Xpは、開発者寄りのルール(ベストプラクティス)が定義されているので、人気を博した。という所か。
こんな所かな。
- PREV
- Robocopyのログの意味
- NEXT
- ハウジング・ホスティング・レンタル・VPS・クラウド違い
関連記事
-
-
メールサーバーとMTAの違い
メール転送エージェント – Wikipedia メール配送エージェン …
-
-
【セキュリティ】マルウェアウェア、ウイルス、ボットの違い
Contents1 マルウェア2 ウイルス3 ボット(twitterのボットとも …
-
-
build(ビルド)とdeploy(デプロイ)、リリース・ローンチ 意味・違い整理
ビルド(build) http://www.m-bsys.com/keyword …
-
-
ハウジング・ホスティング・レンタル・VPS・クラウド違い
ハウジングサービス 顧客の通信機器や情報発信用のコンピュータ(サーバ)などを、自 …
-
-
GAメモ_ディメンションとか、指標とか、アドバンスドセグメントとか 違い
■ディメンションとは 集計結果の1要素の単位で表現するか。1要素を何で区切るのか …