前に、
プログラミング教育って、意味あるの?
という記事を書いたときに、
むかし、このブログで開発の最初から最後までというシリーズをやっていたけど、たしかKAOSからはやっていなかった気がする・・・
と書いた。そのKAOSからのシリーズを始めてみたいと思う。
前のシリーズが、
「開発の初めから順番に書いていってみる」
だったので、今度のシリーズは頭に新をつけて
「新:開発の初めから順番に書いていってみる」
にしてみます。今回は全体像。
■開発の全体像
開発の全体像としては、新人教育のテキスト
最近は改定されて・・・
になったみたいなんだけど、こんなのに書いてあると思う。
ざっくりこんなかんじ
(1)要求分析
ステークホルダーの要求を聞いて、システムが満たすべき要件定義書を作成する
(2)外部設計
要件定義書を受けて、システムの外側から見える部分である、画面・帳票・DB定義書(設計書)を作成する。この段階まででは、プログラミング言語の差はあまりない。
(3)詳細設計(内部設計)
外部設計を受けて、プログラミング可能な文書を作成する。ここでは言語・フレームワークを意識する(ということは言語によって異なる可能性がある)
(4) 実装・プログラミング
プログラミング言語に落として、プログラムできるようにする
(5)テスト
プログラムが設計、要求を満たしているか確認する
ということは、設計書(定義書)、要求(要件定義書)に対応したしけんが存在するということ。
この試験を、実際には詳細設計→外部設計→要求分析としたからやっていく。以下のように書くと、V字になるので、V字型モデルという
要求分析 総合テスト(受入テスト)
外部設計 結合テスト
詳細設計 単体テスト
プログラミング
テストには有名な↓の教科書がある
(5-1)単体テスト(ユニットテスト)
ソースコードに対応して(このようにソースコードを見てやるテストをホワイトボックステストという)仕様書の期待通りのものになっているか試験する。試験レベルに応じて
C0:命令は通っている(命令網羅)
C1:条件のすべては通っている(条件網羅)
C2:組み合わせのすべてを確認した(組み合わせ網羅)
C0,C1は網羅率100%になるようにする。
C2を100%とすると、組み合わせ爆発するため、どこかで止める。この組み合わせをどこまでやるかで、pair-wize法や直行表がある
これらのテストによって、内部(詳細)設計書の内容が担保される
(5-2)結合テスト(インテグレーションテスト:IT)
単体のユニットを組み合わせてテストする。ITテストには2種類分けて行うことがある。
IT1:低レベルの結合テスト
あるユニットの出力が、別のユニットの入力になっているようなとき、出力と入力が矛盾しないかを確認するため、そのユニットを結合して行うテスト。内部(詳細)設計書のインターフェースが担保される。
IT2:高レベルの結合テスト
画面設計書に基づき、画面項目の全項目について、仕様通り動いているかを確認する。これで外部設計書の内容が担保される。外部設計書はソースコードは現れないのでブラックボックステストになる
ただし、IT1とIT2を分けなかったり、この間にテストがあり、IT1,IT2,IT3,IT4…となるときもある。プロジェクトによる。
(5-3)総合テスト
要求仕様書を満たしているかをテストする。
負荷試験とかがそれにあたる。
また、受け入れに際し、実際の業務にあっているかということで、業務に基づいた(=業務シナリオ)試験が行われたり、エンドでの試験(E2Eテスト)が行われる。
受け入れの際に、移行作業が発生する
全体像はこんな感じ。
(このシリーズの)次回からは、要求分析から説明していきます。