PowerPoint プレゼンテーション

シナリオを用いたレビュー手法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