システム開発の標準的な工程モデル「SDLC」を理解することは、開発工程に関する問題の基礎です。
学習範囲は、IPAの基本情報技術者試験シラバスと共通フレーム2013で示されるライフサイクルの考え方に沿っています。
システム開発って、どんな順番で進めていくの?
SDLCは、作って終わりではなく、企画・要件定義 → 設計 → 実装 → 統合・テスト → 導入 → 運用・保守 → 廃棄までを捉える考え方よ。
ウォーターフォールやアジャイルは、これらの活動をどう並べ、反復するかという進め方の違いなの。
要件定義は最上流で「何を作るか」を決める。
設計フェーズで「どう作るか」を決め、実装で実際にコードを書く。
テストにも、いろんな種類があるんですよねぇ?
そう。
単体テスト → 結合テスト → システムテスト → 受入テストという順で、段階的に進めていくのよ。
開発全体のモデルとしてはウォーターフォールやスパイラル、アジャイルなどいろいろあって、プロジェクトの性質で使い分けるのよ。
じゃあ、アジャイルなら要件定義や設計をしなくていいわけじゃないんだね!
その通り。
短い単位で要件・設計・実装・テストを反復するのであって、必要な活動が消えるわけではないわ。
リリース後も監視、障害対応、変更、保守を続けるのよ。
具体例: ECサイトの注文機能
要件定義では、機能要件として『利用者が商品をカートに入れて注文できる』、非機能要件として応答時間・可用性・セキュリティなどを明確にします。
設計では、画面やデータベース、APIの分け方を決めるんですねぇ。
ええ。
実装では設計書に基づいてコードと単体テストを作り、結合テストでカート・在庫・決済の連携を確認する。
システムテストでは全体が要件を満たすか、受入テストでは利用者側が業務に使えるかを確認するの。
要件とテストを対応付けるトレーサビリティも重要です。
『注文確定時に在庫を減らす』という要件に、設計・実装・テスト結果が結び付いているか追跡できます。
確認クイズ
ソフトウェア開発工程で最も上流に位置するフェーズはどれか。
- 要件定義
- 詳細設計
- プログラミング
- テスト
こたえを見る
正解: 1. 要件定義
要件定義は最も上流のフェーズで「システムが何を実現すべきか」を明確化します。ここで決まった内容が後続の全工程の基盤となるため、最も重要なフェーズです。
確認クイズ
ECサイトの『通常時は2秒以内に検索結果を表示する』という条件は、主にどの分類に当たるか。
- 機能要件
- 非機能要件
- プログラム仕様
- 受入テスト結果
こたえを見る
正解: 2. 非機能要件
応答時間はシステムの性能を定める非機能要件です。『商品を検索できる』は機能要件、『2秒以内』はその品質・性能条件、と切り分けます。