広告 システム開発

スパイラルモデルとは

スパイラルモデルとは

スパイラルモデルとは、システムを複数のサブシステム(もしくはフェーズ)に分割して、それぞれのサブシステム毎に順番に開発を進めていく手法

スパイラルモデルモデルとは

スパイラルモデルは、まずシステムを複数のサブシステム(もしくはフェーズ)に分ける作業から始まります。なぜ複数のサブシステムに分けるかというと、開発規模が大きいシステムでは、発注したお客様が完成品を確認するまでに時間がかかります

サブシステムに分けることで、サブシステムの開発が完了した時点でお客様に見せることができ、手戻りが少なくなり、システム全体の完成度を高めていくことができるのです。

スポンサーリンク

複数に分けたサブシステムを順番に開発していきます。まるで螺旋階段のように徐々にシステムの完成度を高めていく手法です。

サブシステムを順番に作る

 

スパイラルモデルの開発の流れは下記の通り

  1. システムを複数のサブシステム(もしくはフェーズ)に分割します。(上図ではサブシステム1~3に分割しています)
  2. サブシステム1の開発を行います。
  3. サブシステム1が完了したら、依頼主のお客様に確認してもらいます。
  4. 次にサブシステム2の開発を行います。(サブシステム1で出たお客様の要望はサブシステム2にも反映していく)
  5. サブシステム2が完了したら、再び依頼主のお客様に確認してもらいます。
  6. このサブシステム作成→確認の流れをシステム全体が完了するまで繰り返していきます。

スパイラルモデルのメリット

スパイラルモデルのメリットは仕様変更に柔軟に対応できる点があげられます。

有名な開発手法であるウォーターフォールモデルは、要件定義の段階でお客様の要求がすべて明確になっている必要があり、要件定義の内容から「設計」→「開発」→「テスト」と各工程を行っていきます。そのため途中で仕様が変わった場合、"手戻り"が発生し、想定外なコストが掛かってしまいます。

スポンサーリンク

その点、スパイラルモデルは短い期間に「設計」→「開発」→「テスト」を繰り返して品質を高めていく手法の為、途中の仕様変更にも柔軟に対応しやすい開発手法です。

スパイラルモデルのメリット

またサブシステム(またはフェーズ)に分けることにより、サブシステムが完成する度に、発注したお客様がシステムを確認する事が出来るのもスパイラルモデルのメリットです。

スパイラルモデルのデメリット

スパイラルモデルは「設計」→「開発」→「テスト」と各工程を繰り返して行い、仕様変更にも柔軟に対応できる事から、初期の想定よりシステムの仕様が肥大化してコストが増大する危険性がある開発手法といえます。

ウォーターフォールモデルは「前の工程には戻らない」というのが前提の開発手法の為、要件定義の段階でしっかり要件を固めて開発を進めていきます。

 

スパイラルモデルの場合は、初期段階で全体の要件をしっかり固めなくても、はじめに開発するサブシステム(またはフェーズ)の部分の要件だけを固めれば、開発することが出来ます。

その後、少しずつ要件を固めていき、全体の品質を高めながらシステムを完成させていきます。そのため初期の想定よりシステムの仕様が肥大化し、その分コストが増大化する可能性があるのです。

スパイラルモデルとアジャイルの違い

スパイラルモデルとアジャイルはどちらも短い期間でサブシステム(またはフェーズ)を繰り返していく開発手法です。

スパイラルモデルとアジャイル型開発の違いは、アジャイル型開発はサブシステム(またはフェーズ)の開発を終えた時点で機能追加されたソフトウェアをリリースします

スポンサーリンク

またアジャイル型開発はスパイラルモデルより短い期間でサブシステム(またはフェーズ)を繰り返していく開発手法です。

スパイラルモデルとアジャイルの違い

全体をサブシステムに分けて、「設計」→「開発」→「テスト」と各工程を繰り返し全体が完成するまで品質を高めていく手法がスパイラルモデル。(リリースは全体が完成した時に行う)

サービスは稼働させておいて短い期間でリリースを繰り返し、システムの機能が改良されていく手法がアジャイル型開発です。

まとめ

本記事ではスパイラルモデルの説明とスパイラルモデルのメリット・デメリットを紹介しました。

スパイラルモデルは全体をサブシステム(またはフェーズ)に分けて「設計」→「開発」→「テスト」と各工程を繰り返し全体が完成するまで品質を高めていく手法であり、仕様変更にも柔軟な開発手法です。

しかし初期の想定よりシステムの仕様が肥大化してコストが増大する可能性がある開発手法でもあります。

[その他 開発手法]

helpful