レビュー

このページでは、承認レビューと成果物レビュー、ウォークスルー・インスペクション・ラウンドロビンなどの手法、デザインレビューのポイント、形式手法がわかります。

  • 一言で言うと:
    • 設計書やプログラムなどの成果物を、人の目で確かめて、早いうちに問題を見つける話
    • 「誰が進行役をするか」で、レビューの手法が分かれる

レビューの種類(承認レビュー・成果物レビュー、IV&V)→ 代表的な手法(ウォークスルー、インスペクションなど)→ 設計書のレビュー(デザインレビュー)→ 数学で確かめる(形式手法)

覚え方の軸

  • レビューの目的は2つ
    • 承認レビューは、次の工程に進むための関門
    • 成果物レビューは、問題を早く見つけて品質を上げる、要求を満たしているかを確かめる
  • ピアレビューの手法は「誰が仕切るか、集まるか」で分ける
    • 作成者が説明して進めるのが、ウォークスルー
    • 作成者以外のモデレータが仕切るのが、インスペクション
    • 持ち回りで責任者をするのが、ラウンドロビン
    • 集まらずに個別に見てもらうのが、パスアラウンド
  • 上流のミスほど、直すのが高くつく
    • だから、レビューで早く見つけることが大事

レビューの種類と代表的なレビュー手法(★)

  • レビュー:
    • 各種設計書やプログラムソースなどの成果物の、問題点や曖昧な点、成果物としての妥当性を検証すること
  • レビューが大事な理由:
    • システムへの要求仕様は、開発の各工程で少しずつ詳しくなっていくので、設計上のミスはできるだけ早く見つける必要がある
    • 上流工程の設計ミスが見つからずに、下流のプログラミングやテストまで引き継がれると、直すコストは、プログラムのミスを直すコストに比べて莫大になる
    • そこで、エラーを早く見つけるのに有効な手段の1つがレビュー
    • また、IV&Vをプロジェクトの早い工程から取り入れると、より大きな効果が得られる
  • レビューの例え:
    • 家の設計図の段階で「窓が足りない」と気づけば、線を1本足すだけで済む。家を建ててから気づくと、壁を壊す工事になる

① レビューの種類

種類 目的
承認レビュー 成果物の内容を審査して、次の工程に進むための関門として行う
成果物レビュー 成果物の問題点を早く見つけて品質を上げること、また、成果物が要求事項を満たしているかの確認(遵守度合いの検査)を目的に行う
  • IV&V(Independent Verification and Validation:独立検証及び妥当性確認):
    • 開発チームとは独立した組織が、検証と妥当性確認(遵守度合いの検査)を行うこと
    • 開発チームとIV&V組織が同じタイミングでレビューをし、IV&V組織が問題を見つけたら、開発チームに報告して解決方法を話し合う
    • 例えば、自分で書いた作文を、別のクラスの先生にも同時に読んでもらう

② 代表的なレビュー手法(ピアレビュー)

  • ピアレビュー:
    • 一般にソフトウェアのレビューといえば、同じプロジェクトの同僚や専門家仲間と行うピアレビューを指す
    • 代表的な手法は、ウォークスルー、インスペクション、ラウンドロビンのレビューなど
手法 進行役 特徴
ウォークスルー 成果物の作成者が説明者 作成者とその関係者で行う。参加者は対等
インスペクション 作成者以外のモデレータ 役割を事前に決め、チェックシートで焦点を絞って迅速に評価する
ラウンドロビン 参加者が持ち回りで責任者 全員が責任者を務めるので、参画意欲が高まる
パスアラウンド (集まらない) 成果物を複数のレビューアに個別に見てもらう

ウォークスルー

  • ウォークスルー:
    • レビュー対象物の作成者が説明者になって行うレビュー
    • 成果物の作成者と、その関係者で行う
  • ウォークスルーが生まれた理由:
    • 従来のミーティング形式のレビューには、「成果物の品質評価が作成者の評価になりやすい」「だらだらと長時間になりやすい」という欠点があった
    • それをなくしたのがウォークスルー
  • プログラムのウォークスルー:
    • プログラマが主催し、複数の関係者が集まって、プログラムリストを追跡してエラーを探す
    • 入力を仮定してソースコードを追跡するように、ステップごとに手順をシミュレーションしてレビューする
  • ウォークスルーの特徴:
    • 作成者が内容を順に説明し、参加者は説明に沿って対象物を追跡・検証して、不明点や問題点を指摘する
    • 参加者はお互いに対等な関係
    • 見つかったエラーの修正は作成者に任される
    • 修正作業は検討テーマにしない(その場では直し方を話し合わない)
  • ウォークスルーの例え:
    • 旅行の計画を立てた人が、「朝8時に駅に着いて、この電車に乗って…」と順に説明し、みんなで「その乗り換えは間に合う?」と指摘する

インスペクション

  • インスペクション:
    • 作業成果物の作成者以外の参加者が、モデレータとして会議の進行を仕切って行うレビュー
    • あらかじめ参加者の役割を決めておき、レビューの焦点を絞って迅速に評価する
  • モデレータ:
    • レビューを主導し、参加者にそれぞれの役割を果たさせるようにする人
  • コードインスペクション:
    • ソースコードに対するインスペクション
  • インスペクションの特徴:
    • モデレータが進行を仕切り、事前に作ったチェックシートと照らし合わせて検証する
    • 絞られた問題について、いろいろな角度から分析する
    • 問題点は問題記録表に記録し、作成者に指摘して、問題点が処置されるまで追跡する
  • レビューの心がけ:
    • 作成者を非難しない。成果物の内容に焦点を当てて、課題や欠陥を指摘する
  • インスペクションの例え:
    • 車検。検査員(モデレータ)が、チェックリストに沿って決まった項目を手早く調べ、不合格の箇所は直るまで追いかける

ラウンドロビンのレビュー

  • ラウンドロビンのレビュー:
    • レビュー参加者が持ち回りでレビュー責任者を務めながら、全体としてレビューを進める技法
    • 参加者全員が、それぞれの分担で責任者を務めるので、全員の参画意欲が高まる
    • 例えば、会議の司会を毎回交代でやると、全員が当事者意識を持つ

パスアラウンド

  • パスアラウンド:
    • レビュー対象の成果物を、複数のレビューアに個別にレビューしてもらう方法
  • パスアラウンドのやり方:
    • 電子メールなどで、レビューアに配布する方式
    • 複数のレビューアに、回覧形式で順番に見てもらう方式
    • 一か所(掲示板など)で閲覧してもらう方式
    • 例えば、回覧板。集まらずに、順番に目を通してもらう

③ デザインレビュー

  • デザインレビュー:
    • 検証する成果物が設計仕様書であるレビュー
    • 外部設計、内部設計などの各設計工程で、その成果物である設計書を対象に、曖昧な点や問題点を見つけるために行う
  • コードレビュー:
    • デザインレビューが設計段階で設計書や仕様書を対象に行うのに対し、ソフトウェア構築段階でプログラム(ソースコード)を対象に行うレビュー
  • 外部設計書のデザインレビューのポイント:
    • ユーザが要求したシステム要件が定義されているか
    • 外部設計書で定義した内容の実現可能性や妥当性
  • 内部設計書のデザインレビューのポイント:
    • 外部設計書との整合性。機能がもれなく設計されているか
    • プログラム間インタフェースの誤りや、論理的矛盾はないか
    • 設計書(ドキュメント)が標準に準拠しているか
    • プログラム設計へ配慮された内部設計書になっているか
  • 外部と内部の見分け方:
    • 外部設計書は、「ユーザの要求」と照らし合わせる
    • 内部設計書は、「外部設計書」と照らし合わせ、次の「プログラム設計」につながるかを見る

形式手法

  • レビューの弱点:
    • レビューでは、仕様に対する明確な検証基準がない
    • 品質確保の程度が、レビュー担当者の能力に左右されることがある
  • 形式手法:
    • 論理学や離散数学を基礎とした形式的な仕様記述とモデル検証(形式検証)によって、品質を確保しようという手法
  • 形式仕様記述言語:
    • 明確で矛盾がない(数学的に正しいと証明される)仕様記述ができる言語
    • これを使って、システムの仕様(状態、振舞い)を曖昧さのないモデルで表し、明確な検証基準のもとで検証する
  • 代表的なモデル規範型形式仕様記述言語:
    • VDM-SLや、それをオブジェクト指向に拡張したVDM++など
  • 形式手法の例え:
    • 「だいたい合っている」と人が目で確かめるのではなく、数学の証明のように「必ず正しい」と示す

混同しやすいペア

  • 承認レビュー / 成果物レビュー
    • 承認レビューは、次の工程に進むための関門
    • 成果物レビューは、問題点を早く見つけて品質を上げる、要求を満たしているかを確かめる
  • IV&V / ピアレビュー
    • IV&Vは、開発チームと独立した組織が検証と妥当性確認を行う
    • ピアレビューは、同じプロジェクトの同僚や専門家仲間と行う
  • ウォークスルー / インスペクション
    • ウォークスルーは、作成者が説明者。参加者は対等。修正は作成者に任せ、修正方法は話し合わない
    • インスペクションは、作成者以外のモデレータが仕切る。役割を決め、チェックシートで検証し、処置されるまで追跡する
  • ラウンドロビン / パスアラウンド
    • ラウンドロビンは、持ち回りでレビュー責任者を務める。参画意欲が高まる
    • パスアラウンドは、集まらずに、メールや回覧などで個別に見てもらう
  • インスペクション / コードインスペクション
    • インスペクションは、成果物全般が対象
    • コードインスペクションは、ソースコードが対象
  • デザインレビュー / コードレビュー
    • デザインレビューは、設計段階で、設計書や仕様書が対象
    • コードレビューは、ソフトウェア構築段階で、ソースコードが対象
  • 外部設計書のデザインレビュー / 内部設計書のデザインレビュー
    • 外部設計書は、ユーザの要求が定義されているか、実現可能で妥当か
    • 内部設計書は、外部設計書と整合しているか、インタフェースの誤りや矛盾はないか、標準に準拠しているか
  • レビュー / 形式手法
    • レビューは、人が確かめる。明確な検証基準がなく、担当者の能力に左右される
    • 形式手法は、数学に基づく形式仕様記述言語(VDM-SLなど)で、明確な基準のもとで検証する
  • ウォークスルー(レビュー手法) / ウォークスルー法(システム監査技法)
    • レビューのウォークスルーは、作成者が説明して、成果物を追跡・検証する
    • 監査のウォークスルー法は、監査人がデータの流れとコントロールを、書面上や実際に追跡する

← 09 開発技術の目次に戻る

タイトルとURLをコピーしました