スパイラルモデル
スパイラルモデルとは
スパイラルモデルとは、システムを複数のサブシステム(もしくはフェーズ)に分割して、それぞれのサブシステム毎に順番に開発を進めていく手法のことです。
スパイラルモデルは、まずシステムを複数のサブシステム(もしくはフェーズ)に分ける作業から始まります。
なぜ複数のサブシステムに分けるかというと、開発規模が大きいシステムでは、発注したお客様が完成品を確認するまでに時間がかかるからです。
サブシステムに分けることで、サブシステムの開発が完了した時点で、お客様に見せることができ、手戻りが少なくなり、システム全体の完成度を高めていくことができます。
スポンサーリンク
複数に分けたサブシステムを順番に開発していきます。
まるで螺旋階段のように徐々にシステムの完成度を高めていきます。
スパイラルモデルの開発の流れは下記の通りです。
- システムを複数のサブシステム(もしくはフェーズ)に分割する。
- サブシステム1の開発を行う。
- サブシステム1が完了したら、お客様に確認してもらう。
- 次にサブシステム2の開発を行う。(サブシステム1で出たお客様の要望は、サブシステム2にも反映していく)
- サブシステム2が完了したら、再びお客様に確認してもらう。
- このサブシステム作成→確認の流れをシステム全体が完了するまで繰り返す。
スパイラルモデルのメリット
スパイラルモデルのメリットは仕様変更に柔軟に対応できる点が上げられます。
有名な開発手法であるウォーターフォールモデルは、要件定義の段階でお客様の要求がすべて明確になっている必要があり、要件定義の内容から「設計」→「開発」→「テスト」と各工程を行っていきます。
そのため、途中で仕様が変わった場合、"手戻り"が発生し、想定外なコストが掛かってしまいます。
スポンサーリンク
その点、スパイラルモデルは短い期間に「設計」→「開発」→「テスト」を繰り返して品質を高めていく手法の為、途中の仕様変更にも柔軟に対応しやすい開発手法です。
またサブシステム(またはフェーズ)に分けることにより、サブシステムが完成する度に、発注したお客様がシステムを確認する事が出来るのもスパイラルモデルのメリットです。
スパイラルモデルのデメリット
スパイラルモデルは「設計」→「開発」→「テスト」と各工程を繰り返して行い、仕様変更にも柔軟に対応できる事から、初期の想定よりシステムの仕様が肥大化してコストが増大する危険性がある開発手法といえます。
ウォーターフォールモデルは「前の工程には戻らない」というのが前提の開発手法の為、要件定義の段階でしっかり要件を固めて開発を進めていきます。
スパイラルモデルの場合は、初期段階で全体の要件をしっかり固めなくても、はじめに開発するサブシステム(またはフェーズ)の部分の要件だけを固めれば、開発できます。
その後、少しずつ要件を固めていき、全体の品質を高めながらシステムを完成させていきます。そのため、初期の想定よりシステムの仕様が肥大化し、その分 コストが増大化する可能性があります。
スパイラルモデルとアジャイルの違い
スパイラルモデルとアジャイルはどちらも短い期間でサブシステム(またはフェーズ)を繰り返していく開発手法です。
スパイラルモデルとアジャイル型開発の違いは、アジャイル型開発はサブシステム(またはフェーズ)の開発を終えた時点で、機能追加したソフトウェアをリリースします。
スポンサーリンク
またアジャイル型開発は、スパイラルモデルより短い期間でサブシステム(またはフェーズ)の開発を繰り返していく開発手法です。
全体をサブシステムに分けて、「設計」→「開発」→「テスト」と各工程を繰り返し全体が完成するまで品質を高めていく手法がスパイラルモデル。(リリースは全体が完成した時に行う)
サービスは稼働させておいて、短い期間でリリースを繰り返し、システムの機能が改良されていく手法がアジャイル型開発です。
まとめ
本記事ではスパイラルモデルの説明とスパイラルモデルのメリット・デメリットを紹介しました。
スパイラルモデルは全体をサブシステム(またはフェーズ)に分けて「設計」→「開発」→「テスト」と各工程を繰り返し全体が完成するまで品質を高めていく手法であり、仕様変更にも柔軟な開発手法です。
しかし、初期の想定よりシステムの仕様が肥大化してコストが増大する可能性がある開発手法でもあります。
[その他 開発手法]