170 likes | 240 Vues
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム. 井上研究室 石川 武志. オープンソース. 一般に広く公開されたソフトウェア 誰でも自由に使用できる 広くフィードバックを得ることが可能となる オープンソース開発 プロダクトを広く公開することを基礎とする開発手法 各開発者は,い つでも自由に参加することができる 分散した多くの開発者が,並列的に開発作業を行える オープンソースの持つ高い品質を支えている. ソースコード管理 リビジョン情報取得. 意思疎通 作業進捗. 電子メール アーカイブ. CVS. 連係なし.
E N D
オープンソース開発支援のためのソースコード及びメールの履歴対応表示システムオープンソース開発支援のためのソースコード及びメールの履歴対応表示システム 井上研究室 石川 武志
オープンソース • 一般に広く公開されたソフトウェア • 誰でも自由に使用できる • 広くフィードバックを得ることが可能となる • オープンソース開発 • プロダクトを広く公開することを基礎とする開発手法 • 各開発者は,いつでも自由に参加することができる • 分散した多くの開発者が,並列的に開発作業を行える • オープンソースの持つ高い品質を支えている 修士論文発表会
ソースコード管理 リビジョン情報取得 意思疎通 作業進捗 電子メール アーカイブ CVS 連係なし オープンソース開発環境 開発者 開発者 開発者 修士論文発表会
このリビジョンの 話題がメールに あったかも… あの話題に関する 議論の続きは? 開発者Aの 作業履歴は? ファイル数:約100,000個 リビジョン数:約700,000個 データサイズ:約1.5GB メール総数:約1,000,000通 (約3000通/week) データサイズ:約2.6GB 電子メール アーカイブ CVS 連係なし 現状の問題点 (1/2) 開発者 開発者 開発者 修士論文発表会
現状の問題点 (2/2) • 各システムの持つ情報を再利用しにくい 各システムが,それぞれ固有の形式で開発情報を蓄積しているため,開発者がそれらの情報を利用しにくい 例)CVSは,ファイル単位でリビジョン情報を管理する • ファイル単位での情報取得は容易に可能である • ファイル単位以外での情報取得は困難である • 開発者,更新日時,キーワード,etc. • 各システムの相互連係が不足している 各システムが互いに連係を持たず,開発情報が分散して存在する 例)CVSのリビジョン情報と電子メールの話題は連係を持たない • リビジョン情報を参照しながら,関連する電子メールを参照するのは難しい • 電子メールを参照しながら,関連するリビジョン情報を参照するのは難しい 修士論文発表会
研究の目的 • ソースコード及びメールの履歴対応表示システム SPxR (Software Products CROSS Reference system) • 取得した情報をデータベース化して管理する • 過去の膨大な開発履歴や,現状の開発作業に関するさまざまな情報を,開発者の要求に応じて表示・検索し,提供することが可能になる • 「システム間の連係不足」を補うために,統合情報を生成する • 分散して存在する各システムから取得した情報の中で,関連があるものを統合して,相互の情報に連係を持たせることが可能になる 修士論文発表会
参照要求 参照結果 情報取得 統合情報データベース CVS情報データベース 電子メール情報データベース CVS情報生成ツール 電子メール情報生成ツール 統合情報生成ツール CVS情報管理部 統合情報管理部 電子メール情報管理部 電子メールアーカイブ CVS 情報取得・生成 ソースコード及びメールの履歴対応表示システム 開発者 開発者 履歴データ表示システム 履歴データベースシステム ソースコード及びメールの 履歴対応表示システム (SPxR) 修士論文発表会
情報のデータベース化 • CVS および電子メールアーカイブをデータベース化する • 情報をデータベース化することによる利点 • 情報を取得するコストが大幅に削減できる • 一度取得した情報が変化することはない • 同じデータを何度も取得する必要がない • 必要な情報を付加して管理することが可能となる • 関連情報などの付加が容易に行える • 情報の検索能力が向上する • 情報間の関連が変化することはない • 検索する際に情報を取得する必要がない 修士論文発表会
電子メール情報 • メッセージID:200104261715.f3QHFvs90663@freefall.freebsd.org • 送信者(電子メールアドレス):Maxim Sobolev (sobomax@FreeBSD.org) • 送信日時(エポック秒):Thu, 26 Apr 2001 10:15:57 -0700 (PDT) (988305357) • サブジェクト:cvs commit: src/bin/ln ln.1 ln.c • キーワード:NetBSD • 内部識別番号:m16118 • 関連識別番号:m16128, m16143, m16158, m16168, m16259 • 更新作業者:sobomax • 更新日時:2001/04/26 10:15:57 PDT • 更新ファイルパスとリビジョン番号:src/bin/ln/ln.1; 1.15 • 電子メール情報 • メッセージID:200104261715.f3QHFvs90663@freefall.freebsd.org • 送信者(電子メールアドレス):Maxim Sobolev (sobomax@FreeBSD.org) • 送信日時(エポック秒):Thu, 26 Apr 2001 10:15:57 -0700 (PDT) (988305357) • サブジェクト:cvs commit: src/bin/ln ln.1 ln.c • キーワード:NetBSD • 内部識別番号:m16118 • 関連識別番号:m16128, m16143, m16158, m16168, m16259 • 更新作業者:sobomax • 更新日時:2001/04/26 10:15:57 PDT • 更新ファイルパスとリビジョン番号:src/bin/ln/ln.1; 1.15 • CVS情報 • ファイルパス:src/bin/ln/ln.1,v • リビジョン番号:1.15 • 更新日時(エポック秒):2001/04/26 17:15:57 (988305357) • 更新作業者:sobomax • キーワード:NetBSD • 内部識別番号:c260678 • 関連識別番号:c260708 • 統合情報 • 内部識別番号:m16118 • 関連識別番号 c260708, m16128, m16143, m16158, m16168, m16259 • 電子メール情報 • メッセージID:20010426203418.A72921@sunbay.com • 送信者(電子メールアドレス):Ruslan Ermilov (ru@FreeBSD.org) • 送信日時(エポック秒):Thu, 26 Apr 2001 20:34:18 +0300 (988306458) • サブジェクト:Re: cvs commit: src/bin/ln ln.1 ln.c • キーワード:NetBSD • 内部識別番号:m16128 • 関連識別番号:m16118, m16143, m16158, m16168, m16259 • CVS情報 • ファイルパス:src/bin/ln/ln.c,v • リビジョン番号:1.19 • 更新日時(エポック秒):2001/04/26 17:15:57 (988305357) • 更新作業者:sobomax • キーワード:NetBSD • 内部識別番号:c260708 • 関連識別番号:c260678 • CVS情報 • ファイルパス:src/bin/ln/ln.c,v • リビジョン番号:1.19 • 更新日時(エポック秒):2001/04/26 17:15:57 (988305357) • 更新作業者:sobomax • キーワード:NetBSD • 内部識別番号:c260708 • 関連識別番号:c260678 • 統合情報 • 内部識別番号:c260708 • 関連識別番号:c260678, m16128 情報の関連 • CVS情報 • 同じ更新作業者が,同じ更新日時に更新作業を行った複数のリビジョンがあるとき,それらの情報は相互に関連を持つ • 電子メール情報 • 一方の電子メールが他方の電子メールの返信であるとき,それらの情報は相互に関連を持つ • 統合情報 • CVS情報と電子メール情報が,同じファイルパス,リビジョン番号に関する情報を持つとき,それらの情報は相互に関連を持つ • CVS情報と電子メール情報が同じキーワードを持つとき,それらの情報は相互に関連を持つ 修士論文発表会
参照 参照 情報の検索 CVS情報 統合情報 電子メール情報 修士論文発表会
システムの実装 • ソースコード及びメールの履歴対応表示システム(SPxR)の実装を行った • 目的 • CVS情報と電子メール情報を取得し,データベース化して管理する • 両者の情報から統合情報を生成し,データベース化して管理する • データベース化された情報を開発者に効率よく提供することで,作業を支援することができる • 開発環境 • CPU : PentiumIII 1GHz • RAM : 256MB • OS : Linux version 2.4.17 修士論文発表会
履歴データベースシステム • 言語 : perl 5.6.1 約2100行 • データベース : PostgreSQL 7.1.3,BerkeleyDB(perl5) • CVS情報管理部 • CVS情報生成ツール(cvsinfogen.pl) • CVS情報データベース • 電子メール情報管理部 • 電子メール情報生成ツール(mailinfogen.pl) • 電子メール情報データベース • 統合情報管理部 • 統合情報生成ツール(integinfogen.pl) • 電子メール情報データベース 修士論文発表会
電子メール情報を 基準とした 統合情報 表示画面 CVS情報を 基準にした 統合情報 表示画面 CVS情報 表示画面 電子メール情報表示画面 トップ画面 履歴データ表示システム • 言語 : perl 5.6.1 (CGI) 約1500行 • WEBサーバ : Apache 1.3.23 • 履歴データ表示システム(spxr.cgi) 修士論文発表会
統合情報の妥当性 (1/2) • システム統合情報:システムが生成した統合情報 • 開発者統合情報:開発者が生成した統合情報 • あるメーリングリストの電子メール100通を対象とした システム 統合情報 開発者 統合情報 a2 a1 a3 修士論文発表会
統合情報の妥当性 (2/2) • メーリングリストcvs-all • 主にコミットメールが多いため,システム統合情報と開発者統合情報に含まれるものが多い • コミットメールの場合には,本文中に更新されたファイルパスとリビジョン番号が記述されているため,関連を持つCVS情報が特定しやすい • メーリングリストfreebsd-questions • ほとんどが議論メールであるため,システム統合情報と開発者統合情報に含まれるものが少なくなり,一方に含まれるものが多くなる • 議論メールの場合には,本文中からいくつかのキーワードを抽出して,CVS情報のキーワードと比較するため,コミットメールの場合と比べると,関連を持つCVS情報が特定しにくい • 電子メールから有効なキーワードを抽出する工夫が必要 修士論文発表会
まとめ • 現状のオープンソース開発環境における問題点を指摘した • 「システム固有の情報蓄積」 • 「システム間の連係不足」 • ソースコード及びメールの履歴対応表示システム(SPxR)を設計し,その実装を行った • 情報のデータベース化 • 情報の関連,統合情報 • 実際のオープンソース開発で用いられているデータを用いて本システムの適用実験を行った • 統合情報の妥当性に関する検証を行った 修士論文発表会
今後の課題 • 実行速度と検索能力の向上 • 実行速度の向上については,データベース構造やテキスト処理を工夫することが可能であり,改善の余地を残している • 検索能力の向上については,複数の電子メールの中から関連を持つメールを検索するシステムに関する研究が行われている • 実際のオープンソース開発へ適用 • オープンソース開発者からフィードバックを得る • 現状のオープンソース開発環境に貢献する 修士論文発表会