システム開発プロセス (SDLC)

開発工程の標準的な流れを学びます。

システム開発の標準的な工程モデル「SDLC」を理解することは、開発工程に関する問題の基礎です。

学習範囲は、IPAの基本情報技術者試験シラバスと共通フレーム2013で示されるライフサイクルの考え方に沿っています。

日野 こむぎ(普段) 日野 こむぎ

システム開発って、どんな順番で進めていくの?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

SDLCは、作って終わりではなく、企画・要件定義 → 設計 → 実装 → 統合・テスト → 導入 → 運用・保守 → 廃棄までを捉える考え方よ。
ウォーターフォールやアジャイルは、これらの活動をどう並べ、反復するかという進め方の違いなの。

青木 澪(普段) 青木 澪

要件定義は最上流で「何を作るか」を決める。
設計フェーズで「どう作るか」を決め、実装で実際にコードを書く。

桃井 すみれ(普段) 桃井 すみれ

テストにも、いろんな種類があるんですよねぇ?

青木 澪(普段) 青木 澪

そう。
単体テスト → 結合テスト → システムテスト → 受入テストという順で、段階的に進めていくのよ。

藤森 さやか 先生(普段) 藤森 さやか 先生

開発全体のモデルとしてはウォーターフォールやスパイラル、アジャイルなどいろいろあって、プロジェクトの性質で使い分けるのよ。

日野 こむぎ(びっくり) 日野 こむぎ

じゃあ、アジャイルなら要件定義や設計をしなくていいわけじゃないんだね!

藤森 さやか 先生(笑顔) 藤森 さやか 先生

その通り。
短い単位で要件・設計・実装・テストを反復するのであって、必要な活動が消えるわけではないわ。
リリース後も監視、障害対応、変更、保守を続けるのよ。

具体例: ECサイトの注文機能

青木 澪(普段) 青木 澪

要件定義では、機能要件として『利用者が商品をカートに入れて注文できる』、非機能要件として応答時間・可用性・セキュリティなどを明確にします。

桃井 すみれ(普段) 桃井 すみれ

設計では、画面やデータベース、APIの分け方を決めるんですねぇ。

藤森 さやか 先生(普段) 藤森 さやか 先生

ええ。
実装では設計書に基づいてコードと単体テストを作り、結合テストでカート・在庫・決済の連携を確認する。
システムテストでは全体が要件を満たすか、受入テストでは利用者側が業務に使えるかを確認するの。

青木 澪(普段) 青木 澪

要件とテストを対応付けるトレーサビリティも重要です。
『注文確定時に在庫を減らす』という要件に、設計・実装・テスト結果が結び付いているか追跡できます。

確認クイズ

ソフトウェア開発工程で最も上流に位置するフェーズはどれか。

  1. 要件定義
  2. 詳細設計
  3. プログラミング
  4. テスト
こたえを見る

正解: 1. 要件定義

要件定義は最も上流のフェーズで「システムが何を実現すべきか」を明確化します。ここで決まった内容が後続の全工程の基盤となるため、最も重要なフェーズです。

確認クイズ

ECサイトの『通常時は2秒以内に検索結果を表示する』という条件は、主にどの分類に当たるか。

  1. 機能要件
  2. 非機能要件
  3. プログラム仕様
  4. 受入テスト結果
こたえを見る

正解: 2. 非機能要件

応答時間はシステムの性能を定める非機能要件です。『商品を検索できる』は機能要件、『2秒以内』はその品質・性能条件、と切り分けます。

藤森さやか先生、青木澪が図書室で読書会を楽しむ様子

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。