ソースコードの編集状況に応じた ソフトウェア部品の自動推薦システム 井上研究室 島田 隆次 修士論文発表会 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 発表概略 背景 ソフトウェア部品の再利用⇒開発効率や品質の向上 提案手法・システム 再利用できる部品を開発中に自動的に推薦する手法 部品自動推薦システム A-SCORE を作成 評価実験 被験者(学生)にプログラミング課題を行ってもらった A-SCOREが再利用を促進させることが示された 2 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ソフトウェア部品の再利用 ソフトウェアの品質や生産性の向上のために, ソフトウェア部品の再利用が行われている ソフトウェア部品(部品) モジュールやクラスなど,ソフトウェアの構成要素 再利用 既存の部品を別のシステムで利用すること 再利用を支援する手法が広く研究されている 3 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 部品自動推薦 コーディング中に自動的に部品を検索して推薦する手法 従来の部品検索:存在すると思われていないと検索されない 部品自動推薦:存在すると思われていなくても検索される 部品検索 システム 検 索 (手動)検索の場合 自動推薦の場合 提 示 部品検索 エンジン 検 索 コーディング 開発環境 コーディング 推薦 結 果 開発環境 4 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 既存研究 – CodeBroker 検索手法 メソッド定義を書き始めた時に検索開始 1. ドキュメントコメントの類似したメソッドを検索 2. 引数や戻値の型が一致するメソッドだけを抽出 形態 \ 場面 部品を修正なしで そのまま使う 部品に修正を加えて使う メソッドの書き始め メソッドの本体 を書いている時 クラス定義を 書いている時 ・・・・ CodeBrokerが 対象とする範囲 この範囲全てをカバーしたい 部品の一部(コード片) のみを使う * Ye, Y. and Fischer, G.: Reuse-Conducive Development Environments, Automated Software Engineering, Vol. 12, No. 2, pp. 199–235 (2005). Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 5 提案手法の概要 目的 広い範囲の再利用に対応した部品自動推薦手法 方針 メソッド本体の情報も利用して検索を行う 曖昧さを許容した検索を行う ⇒編集中のソースコードから特徴を抽出して利用 ローカル変数,メソッド,クラスなどの識別子に含まれる単語 コメント,ドキュメントコメントに含まれる単語 6 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 提案手法の流れ 推薦処理 編集 内容 編集の 区切りの 検出 ソースコード とカーソル位置 開発者 特徴 抽出 特徴 検索開始 指示 ソースコードの 編集 エディタ 部品の 推薦 索引作成処理 推薦画面 検索 クエリ 生成 部品の ソースコード 索引 作成 検索 クエリ 検索 索引 推薦部品 一覧 7 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 編集の区切りの検出 編集の区切り 文やコメントを入力し終わったタイミング import java.awt.event.*; // Select all text in editor class SelectAllAction implements ActionListener { 区切り記号が 入力された時など ● ● ● エディタ上でのソースコードの編集を監視 編集の区切りを検出したら検索開始 8 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 検索クエリの生成 ソースコードとカーソル位置を元に検索クエリを生成 検索クエリの内容:組<特徴,重み>の集合 特徴:識別子やコメントに含まれる単語 重み:カーソル位置に近い特徴ほど大きな値 3: class SelectAllAction { 4: 5: public void action() { 6: int length; 3行目: select, all, action 5行目: action 6行目: length ● ● ● 抽出した特徴と位置情報 ● ● ● カーソル位置:3行目 select all action length 重み1.0 重み1.0 重み1.8 重み0.6 ● ● ● エディタで編集中のソースコード カーソル位置情報 検索クエリ 9 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 部品自動推薦システム A-SCORE エディタ インポート ソ ー ス 表 示 推薦画面 10 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 評価実験 被験者(学生4人)にプログラミング課題を行ってもらった 課題 課題α:CSVファイル読込処理の実装 課題β:ファイルコピー処理の実装 開発効率と品質について以下の3点を評価 部品の再利用数 ⇒ ○増加 不具合の数 ⇒ ○減少 作業時間 ⇒ ×増加 結果 11 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 実験結果:再利用した部品数 (値は再利用部品数の合計) A-SCOREあり A-SCOREなし 課題α 2 0 課題β 4 0 A-SCOREを使用しなかった場合は再利用が行われていない 何故,再利用しなかったのか? 「目的の機能を持った部品があるとは思わなかった」 「探したけど使えそうな部品が見つからなかった」 A-SCOREを使用した場合は再利用が行われている CodeBrokerでは対応できない種類の再利用も行われていた 12 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University まとめと今後の課題 広い範囲の再利用に対応した部品自動推薦手法 開発者による編集を監視して自動的に検索 識別子とコメントに基づき再利用できる部品を提示 システムを作成して評価 提案システムによって再利用が促進されることが示された 今後の課題 評価実験の拡充 ユーザインターフェイスの改善 13 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
© Copyright 2024 ExpyDoc