Document

リポジトリ分析ツールを作るために
松下誠
大阪大学大学院情報科学研究科
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
自己紹介
学生時代はプロセス屋(博士論文もプロセス話)
プロセスモデル、記述言語
プロセス中心型ソフトウェア開発支援(連絡支援)
プロセス評価
その後開発支援環境関連の話へ
反省からくる「開発支援環境 is not 統合開発環境」
背景にオープンソースソフトウェア開発の話
プロダクトを作るための環境は触らない支援ツール
• XHTML/JavaScript検証
• CVS, mail, Java, Webベース, ...
Jan/27/2005
ウィンターワークショップ・イン・伊豆2005
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
リポジトリ分析ツール
ソフトウェアリポジトリに蓄積された内容の分析
古くからあるが、近年再度注目を集めている
• オープンソースソフトウェアの台頭、インターネットによる配布
• SourceForgeなど、リポジトリ提供サービスの出現
• MSR2004 (Mining Software Repositories)など、分野内で特化した国
際会議/ワークショップの登場
固定化した分析対象・手法
• CVS、電子メール、BTS
• 検索、メトリクス計算、統計処理
多岐にわたる用途
• 情報検索、プロダクト管理、再利用、...
• プロジェクト管理、プロセス追跡、コミュニティ分析、...
Jan/27/2005
ウィンターワークショップ・イン・伊豆2005
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
ツールに求められる仕様と困難さ
対象の抽象化
CVSやメールなど、元の対象は比較的単純
対象と等価な情報を持つかどうかはあまり問題ではない
「どういう」抽象化がよいのかよくわからない
抽象化された内容に対する操作の定義と実現
演算自体は単純なものの組み合わせ
ツールが実現する機能によって操作の意味づけが異なる
得られた結果の表現
「人間がみて」わかる表現への再変換
出力される内容の質が高くても「見え」なければ意味がない
仕方がないのですべて自分で何らかの解を作ることになる
Jan/27/2005
ウィンターワークショップ・イン・伊豆2005
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
やってみたこと(その1)
CVS/メール/BTSの中身をさくさく読めるブラウザを構築
CoDS, SPxR, 発展形の CoxR (合計3修士人)
抽象化(全体をグラフとして表現)
revision, mail, PR それぞれ1つづつが1要素
各要素が持っているメタ情報を整理して持つ
相互の関連をあらわす情報も各要素が持っている
操作
中身のデータを対象に検索(先に作ったグラフとは別)
要素を特定したらそこからグラフ探索(人が行う)
表現
Webベースのシステム
検索エンジンとブラウジング
Jan/27/2005
ウィンターワークショップ・イン・伊豆2005
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
やってみたこと(その2)
Javaソースコード(クラス)を対象とした検索システム
SPARS-J (合計1博士人+3修士人+α)
抽象化
ソースコードの中身をindex化、メトリクス計測
呼び出し関係グラフ
操作
Google風検索(キーワードを与えてクラスが得られる)
各種情報は事前にあるものをクリックして選択
表現
Webベースのインターフェイス
4-pane でソースコードを閲覧、HTMLの基本能力でそれなりに
Jan/27/2005
ウィンターワークショップ・イン・伊豆2005
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
6
実現していないありがちな解決にむけて
なんとか作ったものは共有できないのか?
「誰かが作ったもの」を使えばいいはず、でもそうならない
•
•
•
•
遅い、使いにくい、C/Java/Perlは嫌い、etc...
よくわからない、手に入らない、etc...
抽象化の時点でどこまで立ち入るか(意味、構文、字面だけ)
基本的な操作とは? どこまで抽象化された操作が定義できるか?
なにができそうか (or tool developers meet OSS world?)
• とりあえず作ってみる:デザインと実装
• 作ったものはちゃんと他人に(無理やり)見せる
• 作ったものについて議論を行う(査読者だけでなく)
できるのか、どうしていまできないのか
Jan/27/2005
ウィンターワークショップ・イン・伊豆2005
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7