2010...
TRANSCRIPT
発表論文
• タイトル
– 「要求変更によるソースコードへの
インパクトを分析するシステムの開発と評価」
• 著者
–海谷治彦、長田晃、原賢一郎、海尻賢二
• 出典
–電子情報通信学会論文誌. D, 情報・システムJ93-D(10), 1822-1835, 2010-10-01
0
概要
• 目的:要求変更によるソースコードへの
インパクトを特定するため
• 手法:インパクト分析の支援ツールを作成
• 結果:実際にインパクトを受ける関数を
特定できた
1
背景1
ソフトウェア開発の大部分は、
既存ソフトウェアの修正
動作実績があるソフトウェアの修正は、
リスクが伴う
インパクト分析(修正箇所の特定)が不可欠
2
背景2
• 開発関係の書類は、日本語で記述
• 設計書に関しては、「要求仕様書で利用される用語」と「ソースコードの識別子」が混同
• 書類・ソースコードを追跡し、変更予測するのが一般的
• 「文書・ソースコードの追跡」
• 「変更の可能性がある箇所の検索」
を自動化したい 3
• プロセス0
→インパクトがあると想定される期待関数を選択
• プロセス1
→変更要求のキーワードをもとに、
設計書を検索するためのSDKを構成
• プロセス2
→設計書にSDKを適応し、ドキュメントの一部を出力
• プロセス3
→ソースコード中に現れる可能性が高い
関数名・変数名を抽出し、SCKを構成
• プロセス4
→ソースコードにSCKを適応し、候補関数を抽出
• プロセス5
→期待関数が候補関数に包含されているか確認、
包含されていなかったらやり直し 4
インパクト分析の作業手順
SDKとSCKの形式例
• SDK
キーワード1 MIN 4 AND キーワード2
–キーワード1が4回以上出てきて、
かつキーワード2が1回以上出てくる部分
• SCK
{語1,語2 ,語3 …} MIN 閾値
–含まれている、語1,語2,語3…の合計が閾値以上になる関数
5
支援ツール1(期待関数の設定)
6
1.ソースコードを指定
2.クリック
3.関数一覧が表示
4.インパクトがあると期待される関数を選択
支援ツール2( SCKの導出)
7
1.設計書を指定
2.SDKを指定
3.クリック
4.検索された節が表示
5.クリック
6.SCKが表示
支援ツール3(候補関数の検索)
8
1.閾値を指定
0.SCKが表示
2.候補関数が表示
• ヒット期待関数数:期待関数数
• 期待ヒット数:期待関数∩候補関数
• 再現率:擬似再現率
• 適合率:擬似適合率
• 総関数数:存在する全関数
• ヒット関数数:全関数∩候補関数
• 候補率:全関数に対する候補関数
の割合
評価
• 実験1
–期待関数(3個)を与え、擬似再現率・擬似適合率を参照しながら実験を行わせる
–正解関数(13個)を使った真再現率・真適合率と比較
• 実験2
– SDKのキーワードの数を変化させ、結果を評価
• 実験3
– SCKの閾値を変化させ、結果を評価
9
実験1
• 最終的に、
– 再現率:0.76
8割正解(10/13)
– 適合率:0.16
50個はごみ(10/61)
– 候補率:0.19
変更箇所を、全関数
の2割まで絞った
– レビュー時間
60%(40%短縮)10
• 熟練開発者が、
8個のキーワードを選択(閾値は5)
• 8個のキーワードに優先度をつける
– 優先度順で実験
– 逆順で実験
• 優先度順の方が、再現率が高い
• キーワードの重要性がわかれば
なおよい
実験2
11
優先度順
逆順
実験3
• 閾値:0~116で実験
(SDKは常に8個)
• 閾値が上がれば、
– 再現率は下がる
– 適合率は上がる
• 擬似再現率を1に
する範囲で閾値を設定
12
まとめ
既存システムを変更してシステム開発を行う
場合、インパクト分析が重要
インパクト分析支援ツールを作成・評価
インパクトを受ける関数を特定できた
13
私見
• 長所
–実際の開発現場の状況を説明した後に、
アプローチや評価実験の説明をしていて、
研究のイメージがつかみやすい
• 短所
–評価実験は一人の被験者にだけやらせるのではなく、複数人で行い結果を比較すべき
14
附録1:仕様書の様式の実情
15
附録2:変更予測・変更手順の実情
16