非ウォーターフォール・モデル

2009年4月16日(木)
上川 伸彦

スパイラル・モデル

 スパイラル・モデルとは、システム全体を幾つかの部分に分け、分けられた部分を単位として開発を進める開発プロセスです(図2)。スパイラル・モデルでは、システム全体を分割した単位で、設計~テストのサイクルを繰り返しながら開発を進めていきます。これにより、ウォーターフォール・モデルにおける「工程の最初の段階でしか要件を決められない」というデメリットを解決しよう、という考え方です。

 スパイラル・モデルと一口に言っても、「反復型」と「インクリメンタル型」に分けることができます。

・反復型
 サイクルを繰り返していくことで、実装する機能を深めていく。システム全体を部分に分ける際には、機能の深さ(優先度や重要度)によって分割するイメージ。各部分を、プロトタイプ・モデルとして進めていくと考えて良い。

・インクリメンタル型
 サイクルを繰り返していくことで、実装する機能を広げていく。システム全体を、機能ごとにサブシステムとして分割するイメージ。各部分を、ウォーターフォール・モデルとして進めていくと考えて良い。

 このため、スパイラル・モデルにおいては、システム全体を分割する単位が非常に重要となります。反復型においては、プロトタイプ・モデルと同じような問題点(さじ加減の難しさ)がありますし、インクリメンタル型においては、システム全体の境界線をうまく引けるかどうかが難しい、という問題点があります。

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

 スパイラル・モデルのメリットとしては、以下の点が挙げられます。

・開発単位が小さい
 開発の局面において、「動くシステム」を比較的早い段階でリリースすることができます。これにより、リリースしたシステムの評価や新たに発生した要件等のフィードバックを、これから開発する部分に適用できるため、要件の追加や変更に対応しやすいと言えるでしょう。

 また、稼働の局面においては、システム変更によるインパクトを小さく抑えることができ、また、段階的な稼働も可能となります。例えば、企業への業務システム導入等は、業務変更へのインパクトがエンドユーザーへの大きな負担となることがあるので、段階的稼働のメリットは無視できません。

 対して、デメリットとしては、次の点が挙げられます。

・開発の初期段階でシステム全体を見通せない
 スパイラル・モデルでは、ある意味、開発の初期段階ではシステム全体を詳細に見極めないでも、開発を進めることが可能となっています。そのため、分割された各部分をそれぞれ進めていく中で、進むべき方向性が違うことに気がつくことがあります。この場合には、すでに完成している部分を修正するコストが膨らんでしまいます。

 また、システム全体を詳細に見極めていないことから、部分への分割がうまくいかないこともあるでしょう。例えば、システム全体を機能ごとにサブシステムとして分割することは、よくあると思います。この際、各サブシステムの開発を進めていった過程で、関連が弱いと思われていたサブシステム間での密な連携を行わなければならないことが判明した場合には、連携機能を別途開発しなければならなくなります。このような分割ミスもスケジュール遅延やコストを押し上げる要因となります。

株式会社ビーブレイクシステムズ
(株)ビーブレイクシステムズ技術担当取締役。RDB製品の開発、各種業界団体におけるXML/EDI標準の策定やSOA基盤の設計等に従事。最近は、業務システムの構築に携わることが多く、お客様からの無理難題と向き合う日々を送っている。http://www.bbreak.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています