シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として - 松川 文一 井上研究室 背景 ソフトウェアの生産性と品質の向上, 低コスト開発へ の要求の高まり ソフトウェアレビュー ソフトウェアのプロダクトの内容について, 作成者と他の開発者たちとの間 で議論し, プロダクト内のバグを早期発見することを目的とする. これまでに多くの手法が提案されている. Checklist-based Reading(CBR) Scenario-based Reading(SBR) - Perspective-based Reading(PBR) etc… 2015/10/1 特別研究報告会 2 CBRとPBR(1/2) チェックリスト クラス図,状態図,シーケンス図,コンポーネント図に対し て,以下の項目についてチェックしてください.チェックした際 にバグを見つけた時には, 図上のバグの箇所に印をつけて ,バグ調査表に記入してください. CBR(Checklist-based Reading) いくつかのチェック項目を並べ たリストを元に, それに対して yes/no形式で答えながらレ ビューを行う yes/no形式で答えるのでレ ビューは容易に行うことができ る反面,プロダクトの全体を網羅 する必要があり, レビューに費 やす時間や負担は大きくなって しまう 2015/10/1 クラス図 1. 2. 3. 4. 5. 特別研究報告会 クラス図と要求仕様書 の間に矛盾はありませ んか? 必要なクラス,関連が 全て定義されています か? 冗長なクラ スはありま せんか? yes no yes no yes no 全ての関連について多 重度は定義されていま すか? プログラムを書く上で十 分な情報が記入されて いますか? yes no yes no 3 CBRとPBR(2/2) チェックリスト(ユーザ) PBR(Perspective-based Reading) プロダクトに関わるいくつか の立場(ユーザ, 設計者, プロ グラマ等)を設定し, それぞれ の異なった視点からレビュー を行う 各役割毎に, レビューの順序, 方法, チェック項目等が記さ れたシナリオを用いる 各役割でのレビュー対象が プロダクトの一部に限られる ので, レビューにかかる時間 や負担は少ない 2015/10/1 あなたはこのソフトウェアのユーザであると思ってください.あなたの目標は,要求仕 様書,ユースケース図,状態図,シーケンス図があなたの要求を満たしているかどうか をチェックすることです.具体的には,ユーザの立場で,状態図とシーケンス図にバグが ないかどうかをチェックしてもらいます. チェックは,以下のStep1~Step5に従って行ってください.各Step では指定された設 計図を用意して,チェック項目に従って確認してください.バグを発見した時には,図上 のバグの箇所に印をつけて,バグ調査表に記入してください. シーケンス図と要求仕様書をチェックします. Step4 要求仕様書から,あなたが必要と思われるオブジェクトをリ ストアップしてください.次にシーケンス図に表れているオブ ジェクトをリストアップしてください.2つのリストを比較して, 以下の質問に答えてください. 4.1 要求仕様書から得られたオブジェクトが少なくとも一 つのシーケンス図上にありますか? シーケンス図とユースケース図をチェックします. Step5 ユースケース図の各ユースケースの横に,対応するシーケ ンス図の名前を書いてください.次に,以下の質問に答え なさい. 特別研究報告会 4 関連研究 レビュー手法の比較評価 オブジェクト指向設計で用いられる開発言語 UML(Unified Modeling Language)で記述された設計 仕様書に対する2つのレビュー手法(CBR, PBR)の比 較評価実験[1] 実験で用いられたUML図は2種類(クラス図, コラボ レーション図)であったため, 様々なコンテキストに対し て比較評価を行う必要がある. [1]O. Laitenberger, C. Atkinson, M. Schlich, K. El Emam. “An experimental comparison of reading techniques for defect detection in UML design documents”, The Journal of Systems and Software, 53:183204, 2000. 2015/10/1 特別研究報告会 5 目的 より多くの種類のUML図に対してCBR, PBRの2つの手法での比較評価実験を行う 2015/10/1 特別研究報告会 6 評価実験(1/2) 被験者 情報科学科3年生59人 レビュー対象システム セミナ情報システム 医療情報システム PBR CBR ユーザ 設計者 プログラマ セミナ情報システム 7 6 6 11 医療情報システム 7 6 6 10 2015/10/1 特別研究報告会 7 評価実験(2/2) 入力 出力 CBR 要求仕様書 UML図 - ユースケース図 - クラス図(バグ数3) - ステートチャート図 (バグ数4) - シーケンス図(バグ数5) - コンポーネント図 (バグ数3) チェックリスト(シナリオ) UML図 - 検出したバグの該当 場所に印を付けたもの PBR(ユーザ) PBR(設計者) バグ報告書 - 検出バグについて該 当UML図, チェックリス トの項目, 検出時刻等 を記録 PBR(プログラマ) 2015/10/1 特別研究報告会 8 収集データ バグ 時間 ( min ) 人数 セミナ情報システム 医療情報システム 2015/10/1 検出 可能数 平均 発見数 max/min 平均 max/min PBR(ユーザ) 7 7 4.43 6/3 60.43 90 / 46 PBR(設計者) 6 6 5.00 6/4 65.50 80 / 51 PBR(プログラマ) 6 9 6.50 9/5 76.67 95 / 40 CBR 11 15 10.55 13 / 8 74.64 90 / 62 PBR(ユーザ) 7 7 4.43 6/3 48.29 70 / 25 PBR(設計者) 6 6 3.83 5/3 59.17 73 / 30 PBR(プログラマ) 6 9 6.33 7/5 63.30 77 / 44 CBR 10 15 10.50 12 / 8 70.10 94 / 60 特別研究報告会 9 バグ検出率 CBR (%) PBR 80 70 60 50 全体 ユーザが検出可能なバグ 設計者が検出可能なバグ プログラマが検出可能なバグ 検出率 = (検出バグ数)/(検出可能バグ数) どの項目においても大きな差は見られなかった 2015/10/1 特別研究報告会 10 バグ検出率(バグの種類別) バグのタイプ別 CBR PBR (%) 90 80 70 60 50 構文的バグ 意味的バグ 他図との関連バグ 構文的なバグについてはCBR, 意味的なバグや他の図との関連バグについ てはPBRに高い検出率 CBRは広くチェックする分, 表面的なバグは発見しやすい PBRは範囲が限られる分, より深くチェックできる 2015/10/1 特別研究報告会 11 バグ検出率(UML図別) U ML図別 (%) CBR PBR 90 80 70 60 50 クラス図 ステートチャ-ト図 シーケンス図 コンポーネント図 クラス図についてはCBR, その他の図においてはPBRに高い検出率 クラス図には構文的なバグが多い ⇒ CBRで検出しやすい コンポーネント図には他の図に関連したバグが多い ⇒ PBRで検出しやすい 2015/10/1 特別研究報告会 12 チーム間の比較 一般的にレビューは複数の人数(チーム)で行う 被験者で仮想的にチームを作り, バグ検出数につ いて比較を行った 検出可能バグ数 CBR - 1(人/チーム) PBR - 3(人/チーム, 各役割から無作為に一人ずつ選ぶ) ⇒PBRに有効性 人数 CBR - 3(人/チーム, 無作為に選ぶ) PBR - 3(人/チーム, 各役割から無作為に一人ずつ選ぶ) ⇒CBRに有効性 2015/10/1 特別研究報告会 13 まとめと今後の課題 まとめ UMLで記述された設計仕様書を対象とし, 2つのレ ビュー手法CBRとPBRを用いた評価実験を行った 構文的なバグ検出にはCBRに, 意味的なバグ検出に関 してはPBRに有効性が認められた 今後の課題 チーム間でのより詳細な比較分析 更なる追証実験によるデータ収集 2015/10/1 特別研究報告会 14 2015/10/1 特別研究報告会 15 バグについて(1) 番号 図 1 クラス図 クラス間の関連が無い 2 クラス図 冗長なクラスの存在 3 クラス図 クラス間の多重度の定義漏れ 4 状態図 要求仕様に矛盾した状態の存在 5 状態図 状態の名前漏れ 6 状態図 状態の順番の違い 7 状態図 冗長な状態の存在 2015/10/1 内容 特別研究報告会 16 バグについて(2) 8 シーケンス図 必要なオブジェクトが存在していない 9 シーケンス図 矛盾したメソッド呼び出し 10 シーケンス図 メッセージ名の漏れ 11 シーケンス図 必要なユースケースが実現されていない 12 シーケンス図 重複したメソッド呼び出し 13 コンポーネント図 必要なクラスが存在していない 14 コンポーネント図 必要なコンポーネントが存在しない 15 コンポーネント図 冗長なコンポーネントの存在 2015/10/1 特別研究報告会 17 チームの組み合わせについて CBR C1 C2 母平均の差の検定 グループ1 2015/10/1 設計者 (U1.. U7) (D1.. D6) 総比較回数 7P6 × 6! × 6! = 3,628,000 プログラマ (I1.. I6) U1 D1 I1 U2 D2 I2 : : U6 D6 I6 U1 D1 I6 U2 D2 I1 : : D6 I5 : : : : C10 ユーザ : U6 特別研究報告会 PBR グループ1 グループ2 : : : 18
© Copyright 2024 ExpyDoc