2003 Fiscal Year Annual Research Report
オープンソースを対象とした大規模ソースプログラム・コーパスの開発とその応用
Project/Area Number |
14380148
|
Research Institution | Aichi Prefectural University |
Principal Investigator |
山本 晋一郎 愛知県立大学, 情報科学部, 助教授 (40240098)
|
Co-Investigator(Kenkyū-buntansha) |
直井 徹 岐阜大学, 工学部, 助教授 (10207699)
粕谷 英人 愛知県立大学, 情報科学部, 助手 (10295579)
大久保 弘崇 愛知県立大学, 情報科学部, 助手 (40295580)
蜂巣 吉成 南山大学, 数理情報学部, 講師 (30319298)
吉田 敦 和歌山大学, システム情報学センター, 講師 (50283495)
|
Keywords | ソフトウェア / オープンソース / 検索 / 関数呼出依存グラフ / コーパス |
Research Abstract |
ソースコードにはコーディングにおけるさまざまな"ノウハウ"が埋め込まれている.我々は多くのソフトウェアで共通のボキャブラリとして利用されているライブラリ関数に着目する.そのライブラリ関数を利用するためのノウハウを抽出し,そのノウハウを容易に参照できるようにカテゴライズする手法を提案した. ライブラリ関数は他のライブラリ関数と組み合わせる事により,要求された機能を実現している.この組み合わせをライブラリ関数を利用するためのノウハウと考え,これを容易に参照するための手法を提案した.この組み合わせを表現するために,既に提案した関数呼び出し依存グラフ(FCDG)を用いる. FCDGはソースコードを抽象化した表現であり,複数のプログラムから同じグラフが抽出される.しかし,多くのプログラムから得られる同じFCDGは返り値チェックだけからなるグラフなどノードの数が少ないものが多い.これらのFCDGにはノウハウが少ない.逆に一部のプログラムからしか得られない同じFCDGは他の関数との組み合わせを表現するノード数の多いFCDGである.これは全く同じ使われ方が少ないからである. そこで,ノード数の多いFCDGを効率的に参照できるようにするために,類似したFCDGをカテゴライズする.そのために,FCDGの類似度を定義した.この類似度が高いものどうしをまとめる事により類似した利用例毎にライブラリ関数のノウハウを分類する事ができる. 実際にFreeBSDのソースツリーに対してFCDGを抽出した結果,fopenは332,socketは212,getoptは75個得られた.この中で同じグラフをまとめる事により,fopenは78個,socketは43個,getoptは22個のグラフパターンが存在した.さらに提案した類似度により,fopenは10,socketは6,getoptは4個のカテゴリに分類できた.
|
Research Products
(6 results)
-
[Publications] 吉田一, 山本晋一郎, 阿草清滋: "XMLを用いた汎用的な細粒度ソフトウェアリポジトリの実装"情報処理学会論文誌. Vol.44,No.6. 1509-1516 (2003)
-
[Publications] 沢田洋平, 大久保弘崇, 粕谷英人, 山本晋一郎: "付箋によるコミュニケーション機能を備えたソフトウェアプラウザ"電子情報通信学会ソフトウェアサイエンス研究会. Vol.103,No.189. 13-18 (2003)
-
[Publications] 山本晋一郎, 丸山勝久: "Javaを対象とした細粒度リポジトリと付箋機能を備えたブラウザ"情報処理学会OO2003シンポジウム. 189-190 (2003)
-
[Publications] 吉田一, 山本晋一郎, 阿草清滋: "RDFの細粒度ソフトウェアリポジトリへの応用"日本ソフトウェア科学会FOSE'03. 101-104 (2003)
-
[Publications] 新美健一, 山本晋一郎, 阿草清滋: "抽象ソフトウェアエレメントによるCASEツール開発のためのフレームワーク"電子情報通信学会ソフトウェアサイエンス研究会. Vol.103,No.582. 19-24 (2003)
-
[Publications] 笠原史郎, 大久保弘崇, 粕谷英人, 山本晋一郎: "構文解析器の開発支援環境"情報処理学会ソフトウェア工学研究会. Vol.2004,No.30. 55-60 (2003)