システム開発概論 - SDLC と V字モデル

SDLCの工程順序、設計とテストを対応させるV字モデル、ウォーターフォールとアジャイルの違い、DevOpsとCI/CDまでを会話形式でやさしく整理。

編集・検証: ITパスポートスタディ編集部 公式情報: IPA ITパスポート試験公式ページ 制作・検証方針

システムは思いつきで作り始めると必ず失敗します。要件定義からテスト、運用・保守まで、決められた順番で進める道筋を「SDLC」と呼びます。今回はSDLCの全体像と、設計とテストをきれいに対応させたV字モデル、そして代表的な開発モデルの違いを、試験で迷わないレベルまで整理しましょう。

SDLCの工程と設計の役割

星見 めい(普段) 星見 めい

せんせー、システムって結局どんな順番で作るの? いきなりプログラム書きはじめるわけじゃないんだよね?

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

ふふ、いい質問ね。
家を建てるのと同じよ。
いきなり木材を切り出す大工さんはいないでしょう? まず『どんな家が欲しいか』を聞いて、設計図を引いて、それから建てるの。

システムも同じで、この一連の流れをSDLCと呼ぶのよ。
順番は 要件定義 → 設計 → 実装(プログラミング)→ テスト → 運用 → 保守。
これが基本の背骨になるわ。

小夜川 ほのか(普段) 小夜川 ほのか

ようけんていぎ…って、なにを決めるんですかぁ?

蜂谷 まこと(普段) 蜂谷 まこと

要件定義です。
『何を作るか』をはっきりさせる最初の工程ですね。
ここが曖昧だと、後の工程すべてがズレてしまいます。

星見 めい(笑顔) 星見 めい

なるほど。
じゃあ次の『設計』はもう作る準備って感じ?

蜂谷 まこと(普段) 蜂谷 まこと

そうです。
ただ設計はひとくくりではなく、ふつう2段階に分かれます。
先に外部設計、次に内部設計です。

補足すると、外部設計は『利用者の目に映る部分』、内部設計は『中身の作り方』。
外から決めて、だんだん中へ入っていくイメージですね。

小夜川 ほのか(笑顔) 小夜川 ほのか

おもての設計から、うらの設計へ…なるほどなのぉ。

テスト段階とV字モデルの対応

紫垣 こはる 先生(普段) 紫垣 こはる 先生

実装が終わったらテストね。
テストも1回で終わりじゃなくて、小さい単位から大きい単位へ4段階で確認していくの。
単体テスト → 結合テスト → システムテスト → 受入テスト よ。

星見 めい(びっくり) 星見 めい

マジか、テストだけで4段階? 部品ひとつずつ→組み合わせて→全体で→最後にお客さん確認、って階段みたいだね。

蜂谷 まこと(普段) 蜂谷 まこと

覚え方は『単・結・シ・受(たん・けつ・し・じゅ)』。
小さいものから大きいものへ、最後はユーザの目線、と押さえると順番を間違えません。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

そこでね、設計の段階とテストの段階を左右に並べて対応させた図があるの。
それがV字モデルよ。

それぞれのテストが『どの設計を確かめているか』がひと目でわかるの。
たとえば外部設計はシステムテストで、内部設計は結合テストで確認する、というふうに左右がペアになっているわ。
Vの底が実装ね。

星見 めい(笑い) 星見 めい

あー! 左側で『こう作る』って決めたことを、右側の同じ高さで『ちゃんとそうなってる?』って答え合わせするんだ。
Vの形、めっちゃ覚えやすいじゃん。

代表的な開発モデルの比較

蜂谷 まこと(普段) 蜂谷 まこと

その理解で完璧です。
ちなみにV字モデルは、工程を上から順に進めるウォーターフォールモデルを前提にした考え方です。

紫垣 こはる 先生(普段) 紫垣 こはる 先生

そう、開発の進め方にも種類があるの。
代表は2つ。
今のウォーターフォールと、対照的なアジャイル開発ね。
ITパスではこの2つの違いが本当によく出るわ。

星見 めい(普段) 星見 めい

ウォーターフォールは滝で一方通行、アジャイルは…ぐるぐる回す感じ?

蜂谷 まこと(普段) 蜂谷 まこと

そのイメージで合っています。
ウォーターフォールは計画どおりに一直線で手戻りが苦手。
アジャイルは『作る→使ってみる→直す』を短く何度も繰り返すので、途中の仕様変更に強いです。
代表的な手法に、数週間ごとに区切って開発するスクラムがあります。

ほかにも、早めに試作品を作って確認するプロトタイピングや、反復しながら少しずつ完成度を上げるスパイラルモデルもありますよ。

DevOpsとCI/CD

小夜川 ほのか(普段) 小夜川 ほのか

DevOpsっていうのも聞いたことありますぅ〜。
あれはどのお仲間なのぉ?

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

いいところに気づいたわね。
DevOpsは、作る人(開発)と動かす人(運用)の壁を取り払って、スピーディーにシステムを届け続ける考え方よ。
アジャイルと相性がいいの。

星見 めい(笑い) 星見 めい

開発(Dev)と運用(Ops)をくっつけて DevOps か。
名前そのまんまじゃん! で、それって人が手作業でポチポチやってたのを自動でやっちゃうの?

蜂谷 まこと(普段) 蜂谷 まこと

それを技術で支える仕組みがCI/CDです。
コードを書いたら、ビルド・テスト・配布までを自動でつないで実行します。
人手のミスが減り、何度でも素早くリリースできるのが利点ですね。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

最後に整理するわ。
SDLCは『要件定義→設計→実装→テスト→運用→保守』の背骨。
設計とテストの対応を見える化したのがV字モデル。
進め方は一直線のウォーターフォールと反復のアジャイルが二大巨頭。
そして開発と運用をつなぐDevOpsを、CI/CDが技術で支える。
この流れで覚えれば怖くないわ。

確認クイズ

システム開発のテスト工程を、実施する順番に正しく並べたものはどれか。

  1. 単体テスト → 結合テスト → システムテスト → 受入テスト
  2. 受入テスト → システムテスト → 結合テスト → 単体テスト
  3. 結合テスト → 単体テスト → システムテスト → 受入テスト
  4. システムテスト → 結合テスト → 単体テスト → 受入テスト
こたえを見る

正解: 1. 単体テスト → 結合テスト → システムテスト → 受入テスト

テストは小さい単位から大きい単位へ進むため、単体 → 結合 → システム → 受入が正しい順序です。最初は部品単位(単体)、次に組み合わせ(結合)、全体(システム)と広げ、最後に利用者側が検収する受入テストで締めます。他の選択肢はこの『小→大』の流れや、受入が最後である点に反しているため誤りです。V字モデルでは各テストが対応する設計工程とペアになります。

蜂谷まこと、星見めいが放課後の教室でボードゲームを楽しむ様子

🔖 この記事の関連書籍

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