オープンソース開発支援のための...

22
2002/2/26 1 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University オオオオオオオオオオオオオオオ オオオオオオオオオオオオオオオオオオオオ オオオオオオオオオオオオオオ オオオオオ オオオ オ

description

オープンソース開発支援のための リビジョン情報と電子メールの検索システム.  大阪大学基礎工学部情報科学科          井上研究室        佐々木 啓. ソースコード管理 リビジョン情報取得. 意思疎通 作業進捗状況. オープンソースソフトウェア開発. プロダクトを公開し並列に作業を行う開発手法 誰でも自由に開発作業に参加することができる 世界中に分散した開発者が並列に開発を行う ( 例 ) FreeBSD, Linux, Apache. 版管理システム CVS. 開発者. 開発者. 電子メール アーカイブ. 既存の開発支援システム. - PowerPoint PPT Presentation

Transcript of オープンソース開発支援のための...

2002/2/26

1Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

オープンソース開発支援のためのリビジョン情報と電子メールの検索

システム

 大阪大学基礎工学部情報科学科  

       井上研究室       佐々木 啓

2002/2/26

2Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

オープンソースソフトウェア開発

プロダクトを公開し並列に作業を行う開発手法

誰でも自由に開発作業に参加することができる世界中に分散した開発者が並列に開発を行う

( 例 )   FreeBSD, Linux, Apache

版管理システム    CVS

電子メールアーカイブ

開発者

開発者

ソースコード管理リビジョン情報取得

意思疎通作業進捗状況

2002/2/26

3Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

既存の開発支援システムシステムに蓄積された情報を解析することで開発作業に役立つ情報を提供することができる(例) CVSSearch, GUISearch, CVSWeb

システムごとに蓄積している情報の形式が違うシステム間の連係が少ないため各システムの情報は孤立している

2002/2/26

4Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

開発支援システムの問題点

(例)オープンソース開発工程でバグの処理に対して過去の事例を参照することで修正を行いたいCVS のリビジョン情報の中から該当する情報を取り出す

 →膨大なデータ量の中から検索することは困難CVS の情報に関連する情報を電子メールから検索

 → CVS ・電子メールが関連性を持たないため,コスト大

膨大な情報の中から利用者が必要な情報を特定することは困難であり,特定のファイルを検索しても,大規模なプロジェクトの全体を把握することは難しい

2002/2/26

5Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

これまでの研究成果

CVS が情報の特定が可能

他の CVS 情報との関連情報を入手できない

一つのファイルから関連する CVS や電子メールの情報を用いてプロジェクト全体の把握が可能  

                    情報を特定する機能がないので情報検索が難しい

2002/2/26

6Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の目的特定のソースコードや開発履歴情報からそれらに関連する開発情報を入手することで開発のコストを軽くしたい

CoDS,SPxR の機能を統合することで、必要とする履歴情報とそれに関連する情報を検索する開発支援システム CoxR の試作

2002/2/26

7Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

Co x R の機能1.ソースコードによる検索2. CVS 情報による検索3.電子メール情報による検索

ソースコード片

   CVS 情報  

ソースコード

ファイルパス 類似度    

リビジョン番号開発者名  

更新日時 コミットログ 

  関連する開発履歴情報該当する開発履歴情報

CVS 情報 電子メール情報ファイルパス リビジョン番号開発者名   更新日時   キーワード  

送信者     コミット日時  

ファイルパス  リビジョン番号  キーワード   

CVS 情報一覧

電子メール情報一覧CoxR

2002/2/26

8Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

類似コード検索データベース

データベースの構成

差分情報

ファイルパス

更新日時開発者名

ログメッセージ

リビジョン番号

類似コード検索データベースCVS 情報データベース電子メール情報データベース統合情報データベース

入力ソースコードと比較を行う差分情報

CVS の開発履歴情報

2002/2/26

9Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データベースの構成

識別番号ファイルパスリビジョン番号

更新日時開発者名キーワード関連番号

CVS 情報データベース類似コード検索データベース

電子メール情報データベース統合情報データベース

CVS の開発履歴情報

コミットログ中の頻出頻度の高い単語

同一のキーを持つ識別番号の集合

レコード固有の番号

2002/2/26

10Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データベースの構成

類似コード検索データベースCVS 情報データベース

統合情報データベース

識別番号送信者名送信日時

サブジェクトキーワード関連番号開発者名更新日時

ファイルパスリビジョン番号

電子メール情報データベース

電子メール情報

レコード固有の番号

同一キーを持つレコードの識別番号の集合本文中の頻出頻度の多い単語

CVS のコミットメール情報

2002/2/26

11Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データベースの構成

類似コード検索データベースCVS 情報データベース電子メール情報データベース

識別番号関連番号

統合情報データベース電子メール DB 識別番号

CVS DB 識別番号

電子メール情報に関連する

CVS 情報がある場合

CVS DB 識別番号

電子メール DB 識別番号

CVS 情報に関連する

電子メール情報がある場合

2002/2/26

12Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データの流れ

類似コード検索 DB

差分情報

ファイルパス

更新日時

開発者名

ログメッセージ

リビジョン番号

データ表示部

識別番号

リビジョン番号

更新日時

キー

ワー

ファイル

パス 開発者名 関連番号 送信者送信日時

サブジェ

電子メール情報 DB

ソースコード片開発者名

識別番号

関連番号

統合情報 DB

リビジョン番号

識別番号

ファイル

パス更新日時開発者名

キー

ワー

ド関連番号

CVS 情報 DB

2002/2/26

13Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

 ファイル名類似リビジョン

開発者名更新日時

コミットログ

ソースコード

CoxR の概要

字句解析ツール トークン比較ツール

Cox R( Server)

CVS 情報 DB

CVS DB 生成部

統合情報 DB

統合 DB 生成部

E-mail DB

E-mailDB 生成部検索用 DB

DB 生成ツール

CVS リポジトリ 電子メールアーカイブ

データベース表示部 (CGI main)

user 関連ファイル情報ファイル名キーワード開発者名更新日時

CoDS部

SPxR 部類似コード検索部

開発履歴データベース管理部

2002/2/26

14Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

CoxR の実装開発環境

CPU : Pentium IV 1.5GHz

RAM : 512MB(SDRAM)

OS : Debian GNU/Linux

開発言語  Perl , C類似コード検索部( Perl : 900 行  C : 1500 行)開発履歴データベース管理部( Perl : 1700 行)データ表示部( Perl :   2000 行 )

2002/2/26

15Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験(1 / 5)FreeBSD の開発から得られたデータを用いる

CVS 情報 : FreeBSD 開発で開発されたソースコード ファイル総数 : 51379 リビジョン総数 : 511054

電子メール : 2001 年にやり取りされたコミットメールと返信メール         メール総数 : 49736通

実験の対象として FreeBSD 開発内の OpenSSH のパスワードに対するセキ ュリティーの修正事例をもとに検証を行う従来の方法ではパスワードをパ ケット送信する 際に文字列長も含まれてしまう ・・・ パスワード 攻撃の対象パスワード送信の 際に長さを隠蔽して送信する処理はないか?

2002/2/26

16Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験(2 / 5)

類似コードの特定と関連情報の検索を行う

userif (i != 0)

error("Permission denied, please try again.");password = read_passphrase(prompt, 0);

packet_start(SSH_CMSG_AUTH_PASSWORD); packet_put_string(password, strlen(password));  memset(password, 0, strlen(password));  

  xfree(password);     packet_send();   packet_write_wait();  

OpenSSH のパスワードのパ ケット送信に関するコード

2002/2/26

17Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験(3 / 5)類似コード検索結果

複数のファイルの中からコミットログと    差分を参照する事により該当する      

   プログラムの差分情報を検索する       

pad passwords sent tonot give hints to the length

関数 packet_put_string を   関数 ssh_put_password に変更

関数 ssh_put_password の定義は記載されていない    

 

2002/2/26

18Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験(4 / 5)関連情報検索

該当ファイルの変更履歴の表示 同一時間帯にコミットした 

  ファイルやメールの情報の表

示キーワード 「 openssh」による検索 ・・・開発時期や開発者が同一なら   関連している可能性は高いと考

 えられる               関数 ssh_put_passworの定義の記述

関連性を持ったファイルから明確な修正法を取得できた 

2002/2/26

19Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験(5 / 5)

類似コードの検索・・・修正箇所の明示関連情報の参照・・・ OpenSSH のセキュリティ強化に おける具体的な関数の変更方法

            修正事例の理解

与えた入力に対して,類似した部分の履歴を検索することができるため,必要な情報が特定しやすい他の関連情報を検索することで修正の意図や関連部分のバグ修正が明確になり,プロジェクト全体に関する理解を深めることができる

2002/2/26

20Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

まとめと今後の課題版管理システムのリビジョン情報と電子メールアーカイブの情報を用いて関連する開発情報を検索できるシステムの実装を行った実際のオープンソース開発でやりとりされたデータを用いて適用実験を行い,複数のシステムが連係した検索が行えることを確認できた

より大規模な環境での適用実験検索手法の改善(複数のキーワードによる検索)関連する情報に重要度を設定することによって、関連情報の強弱をつける

2002/2/26

21Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

2002/2/26

22Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データの作成

類似コード検索 DB

差分情報

ファイルパス

更新日時

開発者名

ログメッセージ

リビジョン番号

識別番号

リビジョン番号

更新日時

キー

ワー

ファイル

パス 開発者名 関連番号 送信者送信日時

サブジェ

電子メール情報 DB

識別番号

関連番号

統合情報 DB

CVS

E-mailアーカイ

リビジョン番号

識別番号

ファイル

パス更新日時開発者名

キー

ワー

ド関連番号

CVS 情報 DB

CVS 情報に関連する電子メール情報がある場合電子メール情報に関連する

CVS 情報がある場合