ソフトウェア開発プロセス 包括的調査レポート
調査日: 2026-02-19
対象: ウォーターフォール型 / アジャイル・スクラム型
1. 開発プロセスと各工程で作成する成果物・ドキュメント一覧
1.1 ウォーターフォール型
| # | 工程 | 主な実施内容 | 主な成果物・ドキュメント | ドキュメント概要 |
| 1 | 要件定義 | 顧客ヒアリング、業務分析、要件の洗い出し・合意形成 | 要件定義書 (BRD/SRS)、機能要件一覧、非機能要件一覧、業務フロー図、ユースケース図、画面一覧、画面モック/ワイヤーフレーム、帳票一覧・レイアウト、外部システム関連図、要件トレーサビリティマトリクス (RTM) | 「何を作るか」を網羅的に定義する最重要フェーズ |
| 2 | 基本設計 (外部設計) | システム全体のアーキテクチャ設計、ユーザーインターフェース設計 | 基本設計書、システム構成図、ネットワーク構成図、画面設計書、帳票設計書、ER図 (概念/論理)、テーブル定義書、機能一覧、IF (インターフェース) 設計書 | 「どう見える/動くか」をユーザー視点で定義 |
| 3 | 詳細設計 (内部設計) | プログラムロジック設計、DB物理設計、API設計 | 詳細設計書 (クラス図/シーケンス図/状態遷移図)、DB物理設計書、API仕様書 (Swagger/OpenAPI)、バッチ処理設計書、共通部品設計書 | 「どう作るか」を開発者視点で定義 |
| 4 | 実装 (コーディング) | プログラム作成、コードレビュー、単体テスト | ソースコード、コーディング規約、単体テスト仕様書/成績書、ビルド/デプロイ手順書、環境構築ガイド | 設計書に基づきコード化 |
| 5 | 結合テスト (IT) | モジュール間の結合確認、インターフェーステスト | 結合テスト計画書、結合テスト仕様書/成績書、不具合管理表(BTS)、テストデータ仕様 | モジュール連携の正常性を検証 |
| 6 | システムテスト (ST) | システム全体の機能・非機能テスト | システムテスト計画書、テスト仕様書/成績書、性能テスト報告書、セキュリティテスト報告書 | システム全体の品質を検証 |
| 7 | 受入テスト (UAT) | ユーザーによる業務シナリオベースの最終確認 | 受入テスト計画書、受入テスト仕様書/成績書、受入検収書 | ビジネス要件の充足を確認 |
| 8 | 運用・保守 | リリース、監視、障害対応、改善 | 運用マニュアル、保守手順書、障害報告書、リリースノート、変更管理台帳、改善提案書 | 安定稼働と継続的改善 |
1.2 アジャイル・スクラム型
| # | イベント/活動 | 主な実施内容 | 主な成果物 | 補足 |
| 1 | プロダクトバックログ管理 | ビジョン策定、要件の洗い出し・優先順位付け | プロダクトビジョン、プロダクトバックログ (ユーザーストーリー一覧)、ペルソナ定義 | POが継続的に管理 |
| 2 | バックログリファインメント | ストーリーの詳細化、見積もり、受入基準定義 | リファイン済みバックログアイテム (受入基準・見積もり付き)、ユビキタス言語集 | スプリント前の準備作業 |
| 3 | スプリントプランニング | スプリントゴール設定、対象アイテム選択、タスク分解 | スプリントゴール、スプリントバックログ | スプリント開始イベント |
| 4 | デイリースクラム | 毎日15分の進捗・課題共有 | カンバンボード更新、障害ログ | チーム同期 |
| 5 | 開発 (設計・実装・テスト) | スプリント内で設計→実装→テストを一気通貫実施 | インクリメント (動作するソフトウェア)、ソースコード、自動テスト (UT/IT)、API仕様書、アーキテクチャ設計書 (ADR) | スプリントの本作業 |
| 6 | スプリントレビュー | インクリメントのデモ、ステークホルダーからのフィードバック収集 | フィードバック記録、バックログ更新内容 | スプリント終了イベント① |
| 7 | スプリントレトロスペクティブ | チームの振り返り、改善アクション決定 | KPT表/Start-Stop-Continue、改善アクションアイテム | スプリント終了イベント② |
| 8 | リリース | プロダクション環境へのデプロイ | リリースノート、バーンダウン/バーンアップチャート、ベロシティチャート | 必要に応じて随時 |
2. 各成果物の具体的な内容イメージ
2.1 要件定義書 (SRS) の構成例
1. はじめに
1.1 目的 — 本書はXXシステムの要件を定義する
1.2 スコープ — 対象範囲と除外範囲
1.3 用語定義 — ドメイン用語一覧
2. システム概要
2.1 システムの目的と背景
2.2 ユーザーと利害関係者
2.3 前提条件と制約
3. 機能要件
3.1 FR-001: ユーザー登録機能
- 概要: 新規ユーザーがメール/パスワードでアカウント作成
- 入力: メールアドレス、パスワード、氏名
- 処理: バリデーション → DB登録 → 確認メール送信
- 出力: 登録完了画面
- 例外: 重複メール → エラーメッセージ表示
3.2 FR-002: ログイン機能
...
4. 非機能要件
4.1 性能: 画面応答3秒以内、同時接続1000ユーザー
4.2 可用性: 99.9% SLA
4.3 セキュリティ: OWASP Top10対応
4.4 運用: 24/365監視体制
5. 外部インターフェース
5.1 外部API連携 (決済ゲートウェイ、SSO等)
6. データ要件
6.1 データモデル概要
6.2 データ量見積もり
2.2 基本設計書の構成例
1. システムアーキテクチャ
1.1 全体構成図 (Web/AP/DBの3層構成)
1.2 サーバー/インフラ構成
1.3 ネットワーク構成
2. 画面設計
2.1 画面遷移図
2.2 画面一覧
2.3 各画面のワイヤーフレーム + 詳細仕様
- 画面ID: SCR-001
- 画面名: ログイン画面
- URL: /login
- 表示項目: メールアドレス(text), パスワード(password), ログインBtn
- バリデーション: メール形式チェック, パスワード8文字以上
- イベント: ログインBtn押下 → API呼び出し → ダッシュボードへ遷移
3. データベース設計
3.1 ER図
3.2 テーブル定義一覧
- テーブル名: users
- カラム: id(PK), email(UNIQUE), password_hash, name, created_at, updated_at
4. API設計
4.1 API一覧
4.2 各APIの入出力仕様 (リクエスト/レスポンス例)
2.3 ユーザーストーリーの具体例 (スクラム)
[ストーリーID] US-042
[タイトル] 商品検索機能
[ストーリー] ECサイトの利用者として、
キーワードで商品を検索したい。
なぜなら、欲しい商品を素早く見つけたいからだ。
[受入基準 (Acceptance Criteria)]
✅ 商品名での部分一致検索ができる
✅ カテゴリでフィルタリングできる
✅ 検索結果は価格順/新着順でソートできる
✅ 検索結果が0件のとき「見つかりませんでした」と表示する
✅ 1ページに20件表示、ページネーション可能
[ストーリーポイント] 5
[優先度] Must (MoSCoW)
2.4 テスト仕様書の具体例
[テストケースID] TC-FR001-003
[対象機能] ユーザー登録
[テスト区分] 結合テスト
[前提条件] テスト用DBがクリーンな状態
[テスト手順]
1. 登録画面を開く
2. メール: test@example.com を入力
3. パスワード: P@ssw0rd123 を入力
4. 「登録」ボタンをクリック
[期待結果]
- HTTP 201 が返却される
- DBにユーザーレコードが1件追加される
- 確認メールが送信される
- 登録完了画面に遷移する
[実施結果] ○ (Pass)
[実施日] 2026-02-15
[実施者] 田中太郎
[備考] メール到達確認済み
3. 開発プロセス シーケンス図
3.1 ウォーターフォール型
sequenceDiagram
participant CL as 顧客
participant PM as プロジェクトマネージャー
participant SA as システムアーキテクト
participant DEV as 開発チーム
participant QA as QAチーム
participant OPS as 運用チーム
rect rgb(255, 245, 235)
Note over CL,OPS: 【Phase 1】要件定義
CL->>PM: 要望・課題のヒアリング
PM->>SA: 業務分析・要件整理
SA->>PM: 要件定義書 (SRS) 作成
PM->>CL: 要件定義書レビュー・承認
CL-->>PM: 署名・合意
end
rect rgb(235, 245, 255)
Note over CL,OPS: 【Phase 2】基本設計
SA->>SA: システム構成・DB設計
SA->>DEV: 基本設計書作成 (画面/DB/API)
PM->>CL: 基本設計レビュー
CL-->>PM: 承認
end
rect rgb(235, 255, 245)
Note over CL,OPS: 【Phase 3】詳細設計
SA->>DEV: 詳細設計書作成
DEV->>DEV: クラス図・シーケンス図作成
PM->>SA: 詳細設計レビュー
end
rect rgb(255, 255, 235)
Note over CL,OPS: 【Phase 4】実装
DEV->>DEV: コーディング
DEV->>DEV: 単体テスト実施
DEV->>PM: 単体テスト成績書提出
end
rect rgb(255, 235, 245)
Note over CL,OPS: 【Phase 5】テスト
DEV->>QA: 結合テスト実施
QA->>QA: システムテスト実施
QA->>PM: テスト成績書・不具合報告
QA->>CL: 受入テスト実施依頼
CL->>CL: UAT実施
CL-->>PM: 検収書発行
end
rect rgb(245, 235, 255)
Note over CL,OPS: 【Phase 6】運用・保守
OPS->>OPS: 本番環境デプロイ
OPS->>CL: リリースノート提出
OPS->>PM: 障害発生時→障害報告書
end
3.2 アジャイル・スクラム型
sequenceDiagram
participant SH as ステークホルダー
participant PO as プロダクトオーナー
participant SM as スクラムマスター
participant DT as 開発チーム
rect rgb(230, 247, 255)
Note over SH,DT: 【初期】プロダクトバックログ作成
SH->>PO: ビジネス要件・ビジョン共有
PO->>PO: プロダクトバックログ作成 (優先順位付き)
PO->>DT: バックログリファインメント (詳細化・見積り)
end
loop スプリント (2週間)
rect rgb(255, 245, 230)
Note over SH,DT: スプリントプランニング
PO->>DT: スプリントゴール提示
DT->>DT: バックログからアイテム選択・タスク分解
DT->>SM: スプリントバックログ完成
end
rect rgb(230, 255, 240)
Note over SH,DT: 開発 (設計→実装→テスト)
loop 毎日
DT->>SM: デイリースクラム (15分)
SM->>DT: 障害除去
end
DT->>DT: 設計・実装・テスト (一気通貫)
DT->>DT: インクリメント完成 (DoD充足)
end
rect rgb(255, 240, 245)
Note over SH,DT: スプリントレビュー
DT->>SH: インクリメントのデモ
SH->>PO: フィードバック
PO->>PO: バックログ更新
end
rect rgb(245, 240, 255)
Note over SH,DT: レトロスペクティブ
DT->>SM: KPT振り返り
SM->>DT: 改善アクション決定
end
end
4. 各工程で生産性を高めるために必要なこと
| 工程 | 生産性向上のための施策 | 具体的手法・ツール |
| 要件定義 | ステークホルダーとの密な合意形成・プロトタイピングによる認識齟齬の早期発見 | Figma/Adobe XDでのモックアップ、ユーザーストーリーマッピング、INVEST原則 |
| 設計 | 再利用可能なアーキテクチャの採用、標準パターンの活用 | マイクロサービスパターン、DDD (ドメイン駆動設計)、ADR (Architecture Decision Records) |
| 実装 | フロー状態の確保、自動化ツールの最大活用 | IDE拡張 (Copilot等)、CI/CD (GitHub Actions)、ペアプログラミング、コードレビュー自動化 |
| テスト | テスト自動化 (シフトレフト)、継続的テスト | Selenium/Cypress/Playwright、Jest、JUnit、テストピラミッド戦略 |
| 運用・保守 | IaC (Infrastructure as Code)、オブザーバビリティ | Terraform、Kubernetes、Datadog/Grafana、SRE実践 |
| マネジメント | 自律的チーム運営、心理的安全性の確保 | OKR、スクラムイベントの遵守、1on1ミーティング |
5. 各工程の現時点での問題点
| 工程 | 問題点・ボトルネック | 影響度 |
| 要件定義 | ❌ 要件の曖昧さと頻繁な変更 → 手戻りの最大要因 | 🔴 高 |
| ❌ ドキュメント作成の工数過多と形骸化 (作っても読まれない) | 🟡 中 |
| ❌ ステークホルダー間の認識齟齬の発見遅れ | 🔴 高 |
| 設計 | ❌ 技術的負債の蓄積 (急ぎの対応による設計破綻) | 🔴 高 |
| ❌ 設計ノウハウの属人化・知識共有不足 | 🟡 中 |
| ❌ 非機能要件 (性能/セキュリティ) の考慮不足 | 🟡 中 |
| 実装 | ❌ 割り込みや会議によるコンテキストスイッチの多さ | 🔴 高 |
| ❌ ボイラープレートコードの単純記述作業 | 🟡 中 |
| ❌ ライブラリ/フレームワークの選定・学習コスト | 🟡 中 |
| テスト | ❌ 手動テスト依存とヒューマンエラー | 🔴 高 |
| ❌ テストデータの作成・管理コスト | 🟡 中 |
| ❌ テストケース網羅性の担保が困難 | 🟡 中 |
| 運用・保守 | ❌ レガシーシステムの塩漬け・ブラックボックス化 | 🔴 高 |
| ❌ 障害対応のナレッジ共有不足 | 🟡 中 |
| マネジメント | ❌ マイクロマネジメントによるモチベーション低下 | 🔴 高 |
| ❌ 非現実的な納期設定と過度なプレッシャー | 🔴 高 |
| ❌ チーム間のコミュニケーション不全 (サイロ化) | 🟡 中 |
6. 生成AI中心の開発になった場合の変化予測
6.1 全体的な変化
| 観点 | 現状 (従来型) | 生成AI中心 (2025〜) |
| 開発者の役割 | コードを「書く」人 | AIの出力を「レビュー・統合する」人 (AIアーキテクト/検証者) |
| プログラミング方法 | プログラミング言語の構文を記述 | 自然言語によるプロンプト指示 + AI生成コード |
| 生産性 | ベースライン | 20〜50%向上 (McKinsey/PwC推定) |
| ドキュメント | 手動作成→陳腐化しやすい | コードから自動生成→常に最新 |
| 品質保証 | 手動テスト中心 | AI自動テスト生成 + 予測的品質管理 |
6.2 各工程での具体的変化
🔵 要件定義の高度化
| 項目 | 変化内容 |
| 会議録音 → 自動文書化 | ヒアリング音声からBRD/SRSを自動生成 |
| 要件の矛盾・欠落検出 | 過去プロジェクトのデータと照合し、漏れや矛盾をAIが指摘 |
| ユーザーストーリー自動生成 | ビジネス要件から受入基準付きストーリーを自動作成 |
🟢 設計プロセスの加速
| 項目 | 変化内容 |
| アーキテクチャ案の自動生成 | 要件からシステム構成図、ER図、API仕様を即座に生成 |
| 設計パターン提案 | 複数案を自動提示しメリット・デメリットを比較 |
| プロトタイプ自動生成 | ワイヤーフレームからインタラクティブなプロトタイプを生成 |
🟡 実装の爆発的効率化
| 項目 | 変化内容 |
| AIペアプログラミング | GitHub Copilot / Claude Code / Gemini でコードの大部分を自動補完 |
| ボイラープレート即時生成 | CRUD操作、API エンドポイント等が一瞬で生成 |
| テストコード同時生成 | 実装と同時にユニットテストを自動作成 |
| コードレビュー自動化 | PR作成時にAIがセキュリティ/品質問題を自動検出 |
🔴 テストと品質保証の自動化
| 項目 | 変化内容 |
| テストケース自動生成 | 仕様書やコード差分から網羅的なテストケースを自動作成 |
| エッジケース発見 | AIが予期しない入力パターンやエッジケースを提案 |
| バグ修正案の提示 | テスト失敗時に修正コードを同時に提案 |
🟣 運用・保守の高度化
| 項目 | 変化内容 |
| 予測的障害検知 | AIモデルがシステム障害を事前に予測 |
| レガシーコード変換 | COBOL等からモダン言語への自動トランスパイル |
| 自動ドキュメント更新 | コード変更に応じてドキュメントが自動同期 |
6.3 新たに生まれる課題
[!WARNING] 生成AIの活用には以下のリスクへの対処が不可欠です。
- AIハルシネーション: AIが存在しないAPI/ライブラリを提案するリスク
- セキュリティ脆弱性: AI生成コードに潜む脆弱性の見逃し (78%の開発者がAI生成コードを完全に信頼していない)
- 著作権問題: 学習データに含まれるOSSライセンス違反の可能性
- スキル空洞化: 基盤技術の理解が浅い開発者の増加リスク
- コンテキスト理解の限界: 65%の開発者が「AIがリファクタリング・テスト等で重要なコンテキストを見落とす」と報告
7. 参考資料 (調査に使用したURL)
ウォーターフォール型
アジャイル・スクラム型
生産性・問題点
生成AI
8. Draw.io ダイアグラム
以下のリンクから各開発プロセスのフロー図をDraw.ioエディタで開いて編集できます。
ウォーターフォール型フロー図
waterfall_process.drawio
各工程(要件定義→基本設計→詳細設計→実装→テスト→運用保守)を色分けした上下フロー図。各工程の横に主な成果物を注釈で表示。
アジャイル・スクラム型フロー図
agile_scrum_process.drawio
スプリントサイクル(プランニング→デイリースクラム→設計/実装/テスト→スプリントレビュー→レトロスペクティブ)を循環フローで表現。3つのロールと3つの成果物も図示。
[!TIP] .drawio ファイルはVS Codeの Draw.io拡張機能、またはブラウザで app.diagrams.net を開き「Open Existing Diagram」から読み込めます。