FE EXAM

スパイラルモデル(螺旋を描いて少しずつ)

リスク評価を繰り返しながら段階的に開発を進めるモデル。

DIAGRAM
リスク評価
開発
評価
① 計画② リスク評価危険な部分を見極める③ 開発設計・実装・テスト④ 評価利用者が確認し次へ目標・代替案を決める② リスク評価危険な部分を見極める③ 開発設計・実装・テスト④ 評価利用者が確認し次へ開始123
解説

📌
スパイラルモデルとは

渦巻きを描きながら外へ大きくなる

スパイラルモデルとは、「計画→リスク評価→開発→評価」というサイクルを何度も繰り返しながら、少しずつ完成度を高めていく開発の進め方のことです。スパイラル(spiral)は「螺旋(らせん)・渦巻き」という意味で、回るたびに少しずつ規模が大きくなる様子を表しています。

身近な例で考えると、料理の味見に似ています。一気に作りきるのではなく「少し作る→味見して問題点を確認→直してまた作る」を繰り返すと、失敗のリスクを抑えながら良いものに近づけられますよね。

上の図解では、中心の「開始」から渦巻きが外へ広がっています。1周するたびに開発が一段階進むと考えると分かりやすいです。

📌
サイクルの考え方

計画リスク評価開発評価

1周(1サイクル)の中では、次の4つの活動を順番に行います。
計画:このサイクルで何を実現するか目標と代替案を決める
リスク評価:失敗しそうな危険な部分を洗い出し、対策を検討する
開発:設計・実装・テストを行い、その部分を作り上げる
評価:できたものを利用者に確認してもらい、次のサイクルへつなげる

ここで一番大事なのが「リスク評価(=うまくいかなそうな部分を前もって見極めること)」です。危険な部分を先に小さく作って試すことで、大きな失敗を防ぎます。1サイクルごとに開発する範囲を広げ、渦巻きが外へ広がるように完成へ近づけていきます。

📌
ウォーターフォールとの違い

項目スパイラルウォーターフォール
進め方サイクルを繰り返す工程を一方向に1回
リスク評価毎サイクル行う特に行わない
仕様変更対応しやすい対応しにくい
向く開発不確実で大規模要件が固い大規模

ウォーターフォールが工程を上流から下流へ一度だけ流すのに対し、スパイラルは同じようなサイクルを何度も繰り返す点が決定的に違います。

繰り返すたびにリスクを評価して対策できるため、要件があいまいだったり、新しい技術を使ったりする不確実性の高い開発に向いています。次のサイクルへ進む前に問題を見つけられるので、最後にまとめてやり直す手戻りを減らせるのが強みです。

📌
リスクを先に潰す理由

早く発見修正コスト小遅く発見修正コスト大

スパイラルモデルで言う「リスク」とは、「うまくいかないかもしれない危険な部分」のことです。たとえば「この新しい技術、本当に使えるのか」「この機能、本当に作れるのか」という不安要素がリスクにあたります。

なぜリスク評価を毎サイクルの最初に行うのか。それは、問題は早く見つけるほど修正コストが小さくて済むからです。
早期発見:まだ小さく作った段階なので、直す量が少ない
遅い発見:大量のコードや設計書を作り終えた後なので、やり直す量が膨大になる

身近な例で考えると、旅行の計画に似ています。ホテルの予約が取れるか不安なら、ルートを全部決め切る前に先にホテルだけ確認しますよね。スパイラルモデルは「不安なことを先に確かめてから次へ進む」という考え方です。

📌
3つのモデルの使い分け

要件が固い要件があいまいウォーターフォールスパイラル大規模プロト小規模プロト=プロトタイピング

3つのモデルは、「要件が最初から決まっているか」と「規模がどのくらいか」によって使い分けられます。
ウォーターフォール:要件が固い大規模開発。計画どおりに進めたいとき
スパイラル:要件がある程度あいまいで、かつ規模が大きく失敗できないとき。リスクを先に潰しながら進めたい大型プロジェクト向け
プロトタイピング(=試作品を作って利用者に確認してもらう方式):要件がはっきりしない比較的小規模な開発。「作ってみて確かめる」が有効なとき

スパイラルとプロトタイピングはどちらも「繰り返す」点では似ていますが、スパイラルは「リスクを評価して大きなシステムを段階的に作り上げる」ことに重点があり、プロトタイピングは「利用者に見せて要件を確定する」ことに重点があります。目的が少し異なります。

練習問題

🎯
基本情報技術者 練習問題

Q1.スパイラルモデルの説明として最も適切なものはどれか。
A.工程を上流から下流へ一度だけ順番に進める
B.リスク評価を含むサイクルを繰り返しながら段階的に開発を進める
C.完成品を一括で納品してから保守だけを行う
D.設計を行わずにいきなり実装から始める
Q2.スパイラルモデルが特に重視している点はどれか。
A.ドキュメントを一切作らないこと
B.各サイクルでリスクを評価し対策を打つこと
C.一度書いたコードを修正しないこと
D.すべての機能を最初のサイクルで完成させること
Q3.スパイラルモデルとウォーターフォールモデルの違いとして適切なものはどれか。
A.スパイラルは工程を1回しか通らない
B.ウォーターフォールはリスク評価を繰り返す
C.スパイラルは同じような工程のサイクルを何度も繰り返す
D.両者にまったく違いはない

関連コンテンツ

スパイラルモデル | Vizigo