シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -

Slides:



Advertisements
Similar presentations
1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会.
Advertisements

1 EASE プロジェクトにおける EPM ( Empirical Project Monitor) を用いたプロジェクト管理デモ 奈良先端科学技術大学院大学 産学官連携研究員 松村 知子 2005 年 9 月 30 日 JISA 経営者セミナー.
システム開発におけるユーザ要求の 明示的表現に関する一検討
シーケンス図の生成のための実行履歴圧縮手法
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
4 相互作用図 後半 FM13001 青野大樹.
相互作用図 FM11010 田中健太.
東京工科大学 コンピュータサイエンス 亀田弘之
RコマンダーでANOVA 「理学療法」Vol28(7)のデータ
機能実現期間の測定による プログラマ能力の実験的評価
OJT研修 「テスト実施、テスト設計の技術習得」 日時: 8月22日(月)  場所: 本社5階.
ユースケース図 FM12012 比嘉久登.
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
ユースケース図2-4~ FM11012 中島拓也.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
クラス動作シナリオ可視化手法の プログラム理解作業に対する有効性評価
UMLとは           032234 田邊祐司.
オブジェクト指向モデリング [3] 2003年10月14日.
プログラム実行履歴を用いたトランザクションファンクション抽出手法
練習問題アイテムバンクの開発研究 ~再生形式~
オブジェクト指向プログラムのための 動的結合メトリクスの評価
UMLメタモデルの変更に対応した ダイアグラム間整合性検証環境の 自動生成手法
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
その他の図 Chapter 7.
組込みシステムの外部環境分析のためのUMLプロファイル
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
UMLで記述された設計仕様書を対象とした レビュー手法CBRとPBRの比較評価実験
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
社会シミュレーションのための モデル作成環境
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
オブジェクト指向モデリング [2] 2003年10月 7日.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
ソフトウェア保守のための コードクローン情報検索ツール
(別紙1) プレゼンテーション の実施方法 ・期末試験期間の後,1組,2組, 夜間主の全グループが一会場で行う.
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
UMLの概要とオブジェクト指向の基本概念
プログラムの織り込み関係を可視化するアウトラインビューの提案と実装
コーディングパターンの あいまい検索の提案と実装
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
「マイグレーションを支援する分散集合オブジェクト」
アスペクト指向言語のための視点に応じた編集を可能にするツール
オブジェクトの動的支配関係解析を 用いたシーケンス図の縮約
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
メソッドの同時更新履歴を用いたクラスの機能別分類法
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
データ中心システム設計方法論“DATARUN” 
栗原正純 UEC Tokyo 電気通信大学 情報通信工学科 2007/5/2(修正2008/08/21)
ソフトウェア工学 知能情報学部 新田直也.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コードクローン解析に基づく デザインパターン適用候補の検出手法
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
木構造の比較に基づく メソッド呼び出し履歴の変化の可視化手法
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
プログラム理解のための 付加注釈 DocumentTag の提案
Presentation transcript:

シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として - 松川 文一 井上研究室

背景 ソフトウェアの生産性と品質の向上, 低コスト開発への要求の高まり ソフトウェアレビュー  ソフトウェアのプロダクトの内容について, 作成者と他の開発者たちとの間で議論し, プロダクト内のバグを早期発見することを目的とする. これまでに多くの手法が提案されている. Checklist-based Reading(CBR) Scenario-based Reading(SBR) - Perspective-based Reading(PBR) etc… 2019/4/26 特別研究報告会

CBRとPBR(1/2) CBR(Checklist-based Reading) チェックリスト    クラス図,状態図,シーケンス図,コンポーネント図に対して,以下の項目についてチェックしてください.チェックした際にバグを見つけた時には, 図上のバグの箇所に印をつけて,バグ調査表に記入してください.  CBR(Checklist-based Reading) いくつかのチェック項目を並べたリストを元に, それに対してyes/no形式で答えながらレビューを行う yes/no形式で答えるのでレビューは容易に行うことができる反面,プロダクトの全体を網羅する必要があり, レビューに費やす時間や負担は大きくなってしまう クラス図   1. クラス図と要求仕様書の間に矛盾はありませんか?  yes  no 2. 必要なクラス,関連が全て定義されていますか? 3. 冗長なクラスはありませんか? 4. 全ての関連について多重度は定義されていますか? 5. プログラムを書く上で十分な情報が記入されていますか? 2019/4/26 特別研究報告会

CBRとPBR(2/2) PBR(Perspective-based Reading) チェックリスト(ユーザ)    あなたはこのソフトウェアのユーザであると思ってください.あなたの目標は,要求仕様書,ユースケース図,状態図,シーケンス図があなたの要求を満たしているかどうかをチェックすることです.具体的には,ユーザの立場で,状態図とシーケンス図にバグがないかどうかをチェックしてもらいます.  チェックは,以下のStep1~Step5に従って行ってください.各Step では指定された設計図を用意して,チェック項目に従って確認してください.バグを発見した時には,図上のバグの箇所に印をつけて,バグ調査表に記入してください. PBR(Perspective-based Reading) プロダクトに関わるいくつかの立場(ユーザ, 設計者, プログラマ等)を設定し, それぞれの異なった視点からレビューを行う 各役割毎に, レビューの順序, 方法, チェック項目等が記されたシナリオを用いる 各役割でのレビュー対象がプロダクトの一部に限られるので, レビューにかかる時間や負担は少ない シーケンス図と要求仕様書をチェックします.   要求仕様書から,あなたが必要と思われるオブジェクトをリストアップしてください.次にシーケンス図に表れているオブジェクトをリストアップしてください.2つのリストを比較して,以下の質問に答えてください. 要求仕様書から得られたオブジェクトが少なくとも一つのシーケンス図上にありますか? シーケンス図とユースケース図をチェックします. ユースケース図の各ユースケースの横に,対応するシーケンス図の名前を書いてください.次に,以下の質問に答えなさい. Step4 4.1 Step5 2019/4/26 特別研究報告会

関連研究 レビュー手法の比較評価 オブジェクト指向設計で用いられる開発言語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:183-204, 2000. 2019/4/26 特別研究報告会

目的 より多くの種類のUML図に対してCBR, PBRの2つの手法での比較評価実験を行う 2019/4/26 特別研究報告会

評価実験(1/2) 被験者 レビュー対象システム 情報科学科3年生59人 セミナ情報システム 医療情報システム 7 6 11 10 PBR CBR ユーザ 設計者 プログラマ セミナ情報システム 7 6 11 医療情報システム 10 2019/4/26 特別研究報告会

評価実験(2/2) 入力 要求仕様書 UML図 チェックリスト(シナリオ) 出力 UML図 バグ報告書 - ユースケース図 - クラス図(バグ数3) - ステートチャート図 (バグ数4) - シーケンス図(バグ数5) - コンポーネント図 (バグ数3) チェックリスト(シナリオ) 出力 UML図 - 検出したバグの該当場所に印を付けたもの バグ報告書 - 検出バグについて該当UML図, チェックリストの項目, 検出時刻等を記録 CBR PBR(ユーザ) PBR(ユーザ) PBR(設計者) PBR(プログラマ) 2019/4/26 特別研究報告会

収集データ 人数 バグ 時間 ( min ) 検出 可能数 平均 発見数 max/min セミナ情報システム PBR(ユーザ) 7 4.43 6 / 3 60.43 90 / 46 PBR(設計者) 6 5.00 6 / 4 65.50 80 / 51 PBR(プログラマ) 9 6.50 9 / 5 76.67 95 / 40 CBR 11 15 10.55 13 / 8 74.64 90 / 62 医療情報システム PBR(ユーザ) 48.29 70 / 25 3.83 5 / 3 59.17 73 / 30 6.33 7 / 5 63.30 77 / 44 10 10.50 12 / 8 70.10 94 / 60 2019/4/26 特別研究報告会

バグ検出率 検出率 = (検出バグ数)/(検出可能バグ数) どの項目においても大きな差は見られなかった (%) 2019/4/26 特別研究報告会

バグ検出率(バグの種類別) CBRは広くチェックする分, 表面的なバグは発見しやすい PBRは範囲が限られる分, より深くチェックできる (%) 構文的なバグについてはCBR, 意味的なバグや他の図との関連バグについてはPBRに高い検出率  CBRは広くチェックする分, 表面的なバグは発見しやすい  PBRは範囲が限られる分, より深くチェックできる 2019/4/26 特別研究報告会

バグ検出率(UML図別) クラス図には構文的なバグが多い ⇒ CBRで検出しやすい (%) クラス図についてはCBR, その他の図においてはPBRに高い検出率 クラス図には構文的なバグが多い ⇒ CBRで検出しやすい コンポーネント図には他の図に関連したバグが多い ⇒ PBRで検出しやすい 2019/4/26 特別研究報告会

チーム間の比較 一般的にレビューは複数の人数(チーム)で行う 被験者で仮想的にチームを作り, バグ検出数について比較を行った 検出可能バグ数 CBR - 1(人/チーム) PBR - 3(人/チーム, 各役割から無作為に一人ずつ選ぶ) ⇒PBRに有効性 人数 CBR - 3(人/チーム, 無作為に選ぶ) ⇒CBRに有効性 2019/4/26 特別研究報告会

まとめと今後の課題 まとめ 今後の課題 UMLで記述された設計仕様書を対象とし, 2つのレビュー手法CBRとPBRを用いた評価実験を行った チーム間でのより詳細な比較分析 更なる追証実験によるデータ収集 2019/4/26 特別研究報告会

2019/4/26 特別研究報告会

バグについて(1) 番号 図 内容 1 クラス図 クラス間の関連が無い 2 冗長なクラスの存在 3 クラス間の多重度の定義漏れ 4 状態図 要求仕様に矛盾した状態の存在 5 状態の名前漏れ 6 状態の順番の違い 7 冗長な状態の存在 2019/4/26 特別研究報告会

バグについて(2) 8 シーケンス図 必要なオブジェクトが存在していない 9 矛盾したメソッド呼び出し 10 メッセージ名の漏れ 11 必要なユースケースが実現されていない 12 重複したメソッド呼び出し 13 コンポーネント図 必要なクラスが存在していない 14 必要なコンポーネントが存在しない 15 冗長なコンポーネントの存在 2019/4/26 特別研究報告会

チームの組み合わせについて PBR CBR 7P6 × 6! × 6! U1 D1 I1 U2 D2 I2 C1 : : : C2 ユーザ   設計者  プログラマ (U1.. U7) (D1.. D6) (I1.. I6) PBR CBR U1 D1 I1 U2 D2 I2 : : : U6 D6 I6 グループ1 C1 C2 : C10 U1 D1 I6 U2 D2 I1 : : : U6 D6 I5 母平均の差の検定 グループ2 : 総比較回数 7P6 × 6! × 6! = 3,628,000 グループ1 2019/4/26 特別研究報告会