FE EXAM

反復型(イテレーティブ)開発(繰り返して積み上げる)

開発を繰り返しの単位に分けて少しずつ完成させるモデル。

DIAGRAM
1回の反復(設計→実装→テスト)
積み上がる機能
イテレーション1設計実装テスト動くソフト(機能1まで)イテレーション2設計実装テスト動くソフト(機能2まで)イテレーション3設計実装テスト動くソフト(機能3まで)反復を重ねるごとに機能が積み上がっていく反復1反復2反復3
解説

📌
反復型開発とは

反復ごとに機能が積み上がる反復1反復2反復3

反復型(イテレーティブ)開発とは、開発全体を「イテレーション」と呼ばれる短い繰り返しの単位に分け、各反復で機能を少しずつ完成させていく進め方のことです。イテレーション(iteration)は「繰り返し・反復」という意味です。

身近な例で考えると、レゴブロックで作品を作るのに似ています。一気に完成形を組むのではなく、まず土台を作って動きを確認し、次に壁、次に屋根…と1パーツずつ確かめながら積み上げることで、途中で気づいた修正も取り入れやすくなります。

上の図解のように、1回の反復ごとに「設計→実装→テスト」を一通り行い、動くソフトを完成させるのがポイントです。反復を重ねるたびに機能が増えていきます。

📌
利点

早く動く各反復で確認変化に強い次の反復で修正

反復型開発には次のような利点があります。
早く動くものが見られる:各反復の終わりに動くソフトが得られ、進捗を実感できる
問題を早く見つけられる:早い段階で動作を確認するため、不具合や誤りに早く気づける
仕様変更に対応しやすい:次の反復で要望を取り入れられるため、変化に強い
リスクを分散できる:一度にすべてを作らないので、失敗の影響を小さく抑えられる

ウォーターフォールでは最後のテスト工程まで動くソフトが出てこないため、終盤で大きな誤りが見つかると手戻りが大きくなりがちです。反復型ならこまめに確認しながら進めるので、その不安を大きく減らせます。一方で、反復の計画や全体の管理に手間がかかる点には注意が必要です。

📌
アジャイルとの関係

反復型開発(土台)アジャイル開発

アジャイル開発は、この反復型開発の「短い反復を繰り返す」という考え方を土台にした開発の進め方です。アジャイルでは反復をさらに短くし、変化への対応や利用者との協調をいっそう重視します。

両者の関係を整理すると次のようになります。
反復型開発:開発を反復に分ける、という大きな考え方そのもの
アジャイル開発:反復型を土台に「素早く・変化に強く」を突き詰めた進め方
スクラム:アジャイルの代表的な手法。スプリントという短い反復を繰り返す

つまり「反復型 ⊃ アジャイル ⊃ スクラム」のように、大きな考え方から具体的な手法へと範囲が狭まっていく関係だと捉えると整理しやすいです。

練習問題

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

Q1.反復型(イテレーティブ)開発の説明として最も適切なものはどれか。
A.開発を繰り返しの単位に分け、少しずつ完成させていく
B.工程を上流から下流へ一度だけ進め、逆戻りしない
C.試作品だけを作って本開発は行わない
D.設計とテストを同時に1回だけ行う
Q2.反復型開発の利点として最も適切なものはどれか。
A.一度も動くソフトが出てこない
B.早い段階から動くソフトを確認でき、問題や仕様変更に対応しやすい
C.仕様変更を一切受け付けない
D.すべての機能を最後にまとめて作る
Q3.反復型開発とアジャイル開発の関係として適切なものはどれか。
A.アジャイル開発は反復型開発の考え方を土台にしている
B.両者はまったく無関係である
C.アジャイルは1回で作りきる方式である
D.反復型はアジャイルより新しい考え方である

関連コンテンツ