UMLで記述された設計仕様書を対象とした レビュー手法CBRとPBRの比較評価実験 大阪大学大学院情報科学研究科 松川 文一 Giedre Sabaliauskaite 楠本 真二 井上 克郎 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 発表内容 研究の背景 実験に用いたレビュー手法について CBR(Checklist-based Reading) PBR(Perspective-based Reading) 研究の目的 評価実験 実験概要 データ分析 まとめと今後の課題 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 2 研究の背景 ソフトウェアレビュー ソフトウェアのプロダクトの内容について,作成者と他の開発者た ちとの間で議論し,プロダクト内のバグを早期発見,修正すること を目的とする レビューのプロセス[1] 1. 2. 3. 4. 5. 始動 個人チェック グループチェック 完了 プロセス改善 •Checklist-based Reading(CBR) •Perspective-based Reading(PBR) [1] T. Gilb, D.Graham, 伊土 誠一, 富野 壽[監訳], “ソフトウェアインスペクション”, 共立出版, 1999. 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 3 CBR CBR(Checklistbased Reading) いくつかのチェック項目を 並べたリストを元に,それ に対してyes/no形式で 答えながらレビューを行う 項目は基本的にチェック を行う場所,バグ発見の 指針となる問題点のリス トからなる 2015/10/1 チェックリスト クラス図,アクティビティ図,シーケンス図,コンポーネント 図に対して,以下の項目についてチェックしてください.チェッ クした際にバグを見つけた時には, 図上のバグの箇所に印 をつけて,バグ調査表に記入してください. クラス図 1. 2. 3. 4. 5. クラス図と要求仕様書 の間に矛盾はありませ んか? 必要なクラス,関連が 全て定義されています か? 冗長なクラ スはありま せんか? yes no yes no yes no 全ての関連について多 重度は定義されていま すか? プログラムを書く上で十 分な情報が記入されて いますか? yes no yes no オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 4 PBR PBR(Perspectivebased Reading) プロダクトに関わるいくつかの 立場(ユーザ, 設計者,等) を設定し, それぞれの異なっ た視点からレビューを行う 各視点毎に作成されたシナ リオを用いる シナリオにはレビュー順序, 作業, チェック項目等が記さ れている チェックリスト(ユーザ) あなたはこのソフトウェアのユーザであると思ってください.あなたの目標は,要求仕 様書,ユースケース図,アクティビティ図,シーケンス図があなたの要求を満たしている かどうかをチェックすることです.具体的には,ユーザの立場で,アクティビティ図とシー ケンス図にバグがないかどうかをチェックしてもらいます. チェックは,以下のStep1~Step5に従って行ってください.各Step では指定された設 計図を用意して,チェック項目に従って確認してください.バグを発見した時には,図上 のバグの箇所に印をつけて,バグ調査表に記入してください. シーケンス図と要求仕様書をチェックします. Step4 要求仕様書から,あなたが必要と思われるオブジェクトをリ ストアップしてください.次にシーケンス図に表れているオブ ジェクトをリストアップしてください.2つのリストを比較して, 以下の質問に答えてください. 4.1 要求仕様書から得られたオブジェクトが少なくとも一 つのシーケンス図上にありますか? シーケンス図とユースケース図をチェックします. Step5 ユースケース図の各ユースケースの横に,対応するシーケ ンス図の名前を書いてください.次に,以下の質問に答え なさい. 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 5 CBRの特徴 CBR yes/no形式で答えるのでレビューは容易に行うこ とができ,バグ検出の効率も上げることができる プロダクトの全体を網羅することができるが,レ ビューに費やす時間や負担は大きい チェック項目は過去のバグ情報に基づくことが多く, それまでにないタイプのバグは検出しにくい可能性 がある 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 6 PBRの特徴 PBR 各視点でのレビュー対象がプロダクトの一部に限ら れるので,レビューにかかる時間や負担は少ない 特定の視点で特定の部分に集中してチェックを行 うため,より微細なバグも検出できる 各視点それぞれでのチェックを総合した時に,その 範囲がプロダクトの全体を網羅するように,各視 点(役割)を正確に設定する必要がある 対象となるプロダクトを考慮したシナリオを作成す る必要があるため,その作成にコストがかかる 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 7 関連研究 レビュー手法の比較評価 UML(Unified Modeling Language)で記述さ れた設計仕様書に対するCBR, PBRの比較評 価実験[2] バグの平均検出率,バグ1個あたりの平均検出コ スト(分/バグ)でそれぞれPBRの方が有効であった 実験で用いられたUML図が2種類(クラス図, コラ ボレーション図)のみであったことなどから,より様々 なコンテキストにおいて比較評価を行う必要性が 指摘 [2]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 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 8 研究の目的 UMLとレビューに関する予備知識を持った学生を対 象とし,より多くの種類のUML図で記述された仕様 書を用いてCBR, PBRの2つの手法でのレビュー実 験を行う バグ検出率,レビュー時間,バグ検出コストについて 両手法の比較評価を行う 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 9 実験概要 被験者 大阪大学情報科学科3年生59人 レビュー対象の仕様書 セミナ情報システム 医療情報システム 人数配分 PBR CBR ユーザ 設計者 プログラマ セミナ情報システム 7 6 6 11 医療情報システム 7 6 6 10 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 10 レビュー対象の仕様書 セミナ情報システム セミナ会社がセミナの企画からセミナの実施,資格の認定 までを行うことを支援するシステム セミナ会社の職員,受講者,講師間の関連,データの処 理及び流れ等について設計 医療情報システム 病院における,患者に対する段階的な処理や業務を支 援するシステム 医者をはじめとするさまざまな担当者や患者間における 関連及びデータ処理について設計 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 11 実験プロセス 入力 出力 CBR 要求仕様書 UML図 - ユースケース図 - クラス図(3) - アクティビティ図(4) - シーケンス図(5) - コンポーネント図(3) チェックリスト(CBR) シナリオ(PBR) UML図 - 検出したバグの該当 場所に印を付けたもの PBR(ユーザ) PBR(設計者) バグ報告書 - 検出バグについて該 当UML図, チェックリス トの項目, 検出時刻等 を記録 PBR(プログラマ) 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 12 ドキュメントについて 各システムのドキュメント数とその割当て ドキュメント数 セミナ情報 システム 医療情報 システム 割当て PBR CBR ユーザ 設計者 プログラマ 要求仕様書 1 1 ユースケース図 1 1 クラス図 1 1 アクティビティ図 8 7 シーケンス図 12 7 コンポーネント図 1 1 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 13 バグについて(1/3) 番号 図 分類 1 クラス図 構文的 クラス間の関連が無い 2 クラス図 意味的 冗長なクラスの存在 3 クラス図 構文的 クラス間の多重度の定義漏れ 4 アクティビティ図 意味的 要求仕様に矛盾した状態の存在 5 アクティビティ図 構文的 状態の名前漏れ 6 アクティビティ図 意味的 状態の順番の違い 7 アクティビティ図 意味的 冗長な状態の存在 2015/10/1 内容 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 14 バグについて(2/3) 8 シーケンス図 意味、関連 必要なオブジェクトが存在していない 9 シーケンス図 意味、関連 矛盾したメソッド呼び出し 10 シーケンス図 構文的 メッセージ名の漏れ 11 シーケンス図 意味的 必要なユースケースが実現されていない 12 シーケンス図 意味的 重複したメソッド呼び出し 13 コンポーネント図 他図との関連 14 コンポーネント図 意味的 必要なコンポーネントが存在しない 15 コンポーネント図 意味的 冗長なコンポーネントの存在 2015/10/1 必要なクラスが存在していない オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 15 バグについて(3/3) PBRにおいては各視点で用いるシナリオによって検出でき るバグ数が異なる 検出 内訳 できる クラス図 アクティビティ図 シーケンス図 コンポーネント図 バグ数 (バグ数3) (バグ数4) (バグ数5) (バグ数3) ユーザ 7 - 4 3 - 設計者 6 3 - 3 - プログラマ 9 3 - 3 3 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 16 バグの例(構文的バグ) 正 2015/10/1 誤 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 17 バグの例(意味的バグ) 問診 問診 診察の案内をした 診察の案内をした 正 受診待ち 受診待ち 誤 患者を呼び出した 問診. 患者を呼び出した 受診 2015/10/1 受診 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 18 バグの例(他の図との関連バグ) : 受講者 : 資格認定証 : 受講者 : 受講者 : 資格 : 資格認定証 : 受講者 資格認定証受取り() 資格認定証受取り() 認定内容参照( ) 認定内容参照( ) 資格名参照( ) 正 誤 資格名,受講者コード 資格名,受講者名 資格名 資格名,受講者コード 資格名,受講者名 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 19 収集データ バグ レビュー時間(min) 人数 検出 可能数 平均 発見数 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 セミナ情報システム 医療情報システム 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 20 バグ検出率(手法) CBR (%) PBR 80 70 60 50 全体 ユーザが検出可能なバグ 設計者が検出可能なバグ プログラマが検出可能なバグ 検出率 = (検出バグ数)/(検出可能バグ数) どの項目においても大きな差は見られなかった 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 21 バグ検出率(バグの種類別) バグの種類別 CBR PBR (%) 90 80 70 60 50 構文的バグ 意味的バグ 他図との関連バグ 構文的なバグについてはCBR, 意味的なバグや他の図との関連バグについてはPBR に高い検出率 CBRは広範にチェックする分, 表面的なバグは発見しやすい PBRは範囲が限られる分, より詳細にチェックできる 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 22 バグ検出率(UML図別) UML図別 CBR (%) PBR 90 80 70 60 50 クラス図 アクティビティ図 シーケンス図 コンポーネント図 クラス図についてはCBR, コンポーネント図においてはPBRに高い検出率 クラス図には構文的なバグが多い ⇒ CBRで検出しやすい コンポーネント図には意味的,他の図に関連したバグが多い ⇒ PBRで検出しやすい 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 23 個人データ比較 構文的なバグの検出にはCBR,意味的なバグや他 の図との関連によるバグの検出にはPBRに,それぞ れ有効性が認められた CBRはひとつの図それぞれに対して表面的に項目 に答えていく形式 PBRはシナリオの中で他の図との一貫性や関連を 確認する作業が含まれている 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 24 仮想的チームデータでの分析 被験者で仮想的にチームを作り,バグ検出数, レビュー時間,バグ検出コストについて比較 人数(基準A) CBR:3(人/チーム, 無作為に選ぶ) PBR:3(人/チーム, 各視点から無作為に1人ずつ選ぶ) 検出可能バグ数(基準B) CBR:1(人/チーム) PBR:3(人/チーム, 各視点から無作為に1人ずつ選ぶ) 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 25 チームのグループ化 1グループあたりのチーム数 基準A・・・CBR:3 PBR:6 グループでのバグ検出数、レビュー時間、バグ検出コ ストを算出,比較 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 26 チームのグループ化(図式化) PBR CBR(C1 .. C10) ユーザ 設計者 プログラマ C1 C2 C3 C4 C5 C6 U1 D1 I1 C7 C8 C9 U2 D2 I2 : : U6 D6 I6 (U1.. U7) (D1.. D6) : グループ1 (I1.. I6 ) C1 C2 C3 C4 C5 C6 U1 D1 I6 C7 C8 C10 U2 D2 I1 : : D6 I5 グループ2 : : 2015/10/1 ・ バグ検出数 ・ レビュー時間 ・ バグ検出コスト を比較 : U6 グループ1 グループ2 : : : オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 27 データ算出方法 バグ検出数: 15個のバグについて重複するものを1 つとし,3人の検出数を算出(チームの Bug 1 Bug 2 Bug 3 ・・・ Bug 15 バグ検出数とする) C1 ○ × ○ ・・・ × C2 × × ○ ・・・ × レビュー時間:3人のレビュー時間のうちの最長時間 (チームのレビュー時間とする) C3 ○ ○ ○ ・・・ × Team ○ ○ ○ ・・・ × バグ検出コスト:(チームのレビュー時間)÷(チームの バグ検出数)をチームのバグ検出コ ストとする 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 28 チームデータ比較(1/2) 比較結果 バグ検出数 レビュー時間 バグ検出コスト 基準A CBR PBR CBR 基準B PBR PBR PBR 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 29 チームデータ比較(2/2) 文献[2]の実験ではPBRに有効性 仮想的チームデータでの比較では,どちらの手法が有効であ るかを結論付けることはできず バグ報告について この実験では想定していたバグについてのみ考慮したが,文献[2] の実験では,用意していた以外のバグが報告された場合に,それ が正しければ新たにバグとして追加,分析に反映 → PBRで多く検出していた可能性? 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 30 まとめと今後の課題 まとめ UMLで記述された設計仕様書を対象とし, 2つのレビュー手 法CBRとPBRを用いた評価実験を行った 個人データに関しては、構文的なバグ検出にはCBRに, 意 味的なバグ検出に関してはPBRに有効性が認められた 仮想的チームデータに関しては、どちらの手法が有効である かを決定付けることはできなかった 今後の課題 チームデータのより詳細な分析 仮想的ではなく,実際のチームレビューをした上での評価 準備作業でのコストについて考慮 更なる比較評価実験によるデータ収集 2015/10/1 オブジェクト指向シンポジウム2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University 31
© Copyright 2024 ExpyDoc