ソフトウェア開発時における 版管理システムを利用した コミュニケーション支援システムの提案 石川武志 山本哲男 松下誠 井上克郎 大阪大学大学院基礎工学研究科 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 背景 ソフトウェアの開発形態が多人数化,分散化 複数の開発者が,互いにソースコードを共有しながら 同時に一つの開発作業に携わることが一般的である ネットワーク環境の充実 各開発者がそれぞれ異なる拠点で作業を行うことも 珍しくない オープンソースソフトウェアが注目されている 2001/09/19 2 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University オープンソースソフトウェア (Open Source Software, OSS) 開発中のソースコードを広く公開することにより, 複数の開発者が並列的に開発作業を行うことが できる OSS開発には,世界中の開発者が,潜在的に, いつでも開発に参加することが可能である FreeBSD, GNU Software,Linux, etc. OSS開発環境は,既存多くのツールから構成され ている 2001/09/19 3 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University OSS開発環境の構成例 開発者 ソースコードの 取得・編集 CVS 開発者 ファイルの配布 内容検索 WWW ftp デバッグ支援 コミュニケーション 電子メール メーリングリスト CVS CVS リポジトリ アーカイブ GNATS OSS開発環境 2001/09/19 4 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 版管理システム ソフトウェア開発の際に,その開発過程を履歴と して管理するシステム 例) CVS, RCS, ClearCase, Visual SourceSafe, PVCS, etc. リポジトリに格納されたファイルをリビジョン単位で 管理するために,内部的にリビジョン情報を作成 し,保持している – – – – – リビジョン番号 リビジョン間の差分情報 更新日時 更新作業者 更新時のコメント 2001/09/19 5 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University CVS (Concurrent Versions System) 最も広く用いられている版管理システムの一つで ある ファイルをロックしない checkin/checkout 方式で リポジトリ内のリビジョン管理を行う 多数の開発者によって、並列的にソースコードが 扱われる場合の開発管理に適している 2001/09/19 6 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University OSS開発の問題点 版管理システムを用いたOSS開発では,分散した 複数の開発者が同時に作業を行っている • 開発者間のコミュニケーション支援不足の問題 • ソフトウェアの再利用の問題 2001/09/19 7 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 開発者間のコミュニケーション支援不足 OSS開発に参加している開発者は,普段から 開発作業に専念しているのではなく,個人的 な時間を利用して作業を行っていることが多い 並列的に作業を行っている他の開発者の進捗状況を 綿密に追跡する時間が十分に確保できず,その把握 が難しい 開発者間のコミュニケーション支援が不足している 2001/09/19 8 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 開発者間のコミュニケーション支援不足 リビジョン情報の情報量不足 現状では,多くの開発者が版管理システムのリポジトリ から取得できるリビジョン情報を参照する一方で,電子 メール等を用いてコミュニケーションを行う 版管理システムリポジトリから取得できるリビジョン 情報には,電子メールによるコミュニケーション時の 記録が含まれていないという問題点がある 2001/09/19 9 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 開発者間のコミュニケーション支援不足 リビジョン情報の情報量不足 電子メール アーカイブ 議論 t-yamamt t-yamamt matusita inoue t-ishikw CVS 情報取得 matusita 更新作業 リビジョン情報 revision 1.3 t-yamamt inoue 2001/09/19 10 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 開発者間のコミュニケーション支援不足 ツール/機能間の連係不足 開発作業の支援を目的として、多くのツール/機能が 提供される 例) SourceForge, SourceCast, OSDL, etc. 提供される各ツール/機能は互いに独立しており, 単一の環境として相互に連係を持っているわけでは ないため、開発者がこれらを利用して必要な情報を 参照することは非常に困難である 2001/09/19 11 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 開発者間のコミュニケーション支援不足 ツール/機能間の連係不足 t-ishikw 参照 CVS 1.4.2.2 1.3 閲覧 bonsai 情報取得 関連無し 情報取得 不可 関連有り 入出力の 最適化 電子メール メーリングリスト アーカイブ 2001/09/19 12 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University OSS開発向けの支援環境 現在,版管理システムを用いた分散ソフトウェア 開発の一例であるOSS開発を対象として,分散 開発支援環境の構築について研究を行っている 本支援環境は,OSS開発の生産性を高めること を目的として,開発者に対する作業支援を行う 設計方針 既存の開発環境を壊さないようにする 既存のツールが保持する情報を有効に利用する 2001/09/19 13 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University OSS開発向けの支援環境 本支援環境は,コミュニケーション支援システムと ソフトウェア再利用支援システムから構成される コミュニケーション支援システム コミュニケーション支援システム制御部 統合情報データベースシステム ソフトウェア再利用支援システム ソフトウェア再利用支援システム制御部 統合情報データベースシステム 版管理システム CVS 電子メール/アーカイブ 情報抽出ツール 2001/09/19 14 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University OSS開発向けの支援環境 CVSリポジトリ CVS (再利用コードリポジトリ) 開発者 電子メール メーリングリスト 情報抽出ツール CVS 再利用部品 リビジョン情報 ソースコード取得 参照結果 参照要求 参照要求 参照結果 抽出情報 システム制御部 アーカイブ コミュニケーション 情報 アーカイブ取得 システム制御部 統合情報 ソフトウェア 再利用支援システム 統合情報 データベースシステム 統合情報 コミュニケーション 支援システム OSS開発向けの支援環境 2001/09/19 15 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University コミュニケーション支援システム 本支援システムは,システム制御部と,統合情報 データベースシステムから構成される システム制御部 統合情報データベースシステム CVS情報生成部 CVS情報データベース 電子メール情報生成部 電子メール情報データベース 統合情報生成部 統合情報管理データベース 2001/09/19 16 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University システム制御部 提供する機能 参照要求フォームの提供 GUI等のインターフェイスを利用して開発者に参照要求 フォームを提供し,開発者からの参照要求を受け付ける 参照要求の解析 受け付けられた要求フォームから開発者の参照要求を 解析し,統合情報データベースシステムへの入力となる 参照クエリに変換する 参照結果の解析 参照結果として得られた統合情報を解析することにより、 他のシステムと連係して、開発者の要求する参照結果 を取得し、提供する 2001/09/19 17 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報データベースシステム CVS情報データベースの構築 CVS情報生成部 CVSから取得したリビジョン情報を保持するファイルから, 「CVS情報」を記録する CVS情報データベース CVS情報生成部によって生成されたCVS情報を管理する 2001/09/19 18 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University CVS情報 ファイルパス リビジョン番号 更新日時 更新作業者 ログメッージ ブランチタグ情報 識別番号 関連識別番号 識別番号 c382 ファイルパス test/hello.cpp,v リビジョン番号 1.3 更新日時 2001/08/20 17:05:33 更新作業者 t-ishikw ログメッセージ optimized ブランチタグ情報 (none) 関連識別番号 c383 識別番号 c383 ファイルパス test/goodby.cpp,v リビジョン番号 1.5 更新日時 2001/08/20 17:05:33 更新作業者 t-ishikw ログメッセージ optimized ブランチタグ情報 (none) 関連識別番号 c381, c382 2001/09/19 19 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報データベースシステム 電子メール情報データベースの構築 電子メール情報生成部 既存の形態素解析器等を情報抽出ツールとして 利用することにより得られる膨大な抽出情報から, 「電子メール情報」を生成する 電子メール情報データベース 電子メール情報生成部によって生成された電子 メール情報を管理する 2001/09/19 20 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 電子メール情報 送信者 サブジェクト 送信日時 議論対象のファイルパス キーワード 議論者名 識別番号 関連識別番号 識別番号 m138 送信者 [email protected] サブジェクト optimize input methods 送信日時 2001/08/19 12:37:29 ファイルパス test/hello.cpp,v キーワード optimize, input, output 議論者名 t-ishikw, t-yamamt, matusita 関連識別番号 m125, m128, m134, m141 識別番号 m141 送信者 [email protected] サブジェクト Re: optimize input methods 送信日時 2001/08/20 02:32:15 ファイルパス test/hello.cpp,v キーワード debug, output, input 議論者名 t-ishikw, t-yamamt 関連識別番号 m128, m134, m138 2001/09/19 21 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報データベースシステム 統合情報管理データベースの構築 統合情報生成部 CVS情報と電子メール情報から情報を抽出し,両者を結合 させて,「統合情報」を生成する 統合情報データベース 統合情報生成部によって生成された統合情報を管理する 2001/09/19 22 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報の生成手法 結合すべきCVS情報と電子メール情報の間には, 高い関連性が必要である 判断基準として,結合する際に以下の3つの要素を 比較する • 「ファイルパス」が同じである • 「更新日時」と「送信日時」が一定の期間内である • 「更新作業者」と「議論者名」に同じ開発者が含まれる 2001/09/19 23 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報 ファイルパス リビジョン番号 更新日時 更新作業者 ログメッージ ブランチタグ情報 送信者 サブジェクト 送信日時 キーワード 議論者名 識別番号 関連識別番号 2001/09/19 24 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報 識別番号 i78 ファイルパス test/hello.cpp,v リビジョン番号 1.3 更新日時 2001/08/20 17:05:33 更新作業者 t-ishikw ログメッセージ optimized 送信者 [email protected] サブジェクト optimize input methods 送信日時 2001/08/19 12:37:29, 2001/08/20 02:32:15 キーワード optimize, input, output, debug 議論者 t-ishikw, t-yamamt, matusita 関連識別番号 c382, m138, m141 2001/09/19 25 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University コミュニケーション支援システム CVS 電子メール メーリングリスト 開発者 参照要求 参照結果 ソースコード取得 リビジョン情報 システム制御部 統合情報 CVS情報 生成部 CVS情報 コミュニケーション 情報 アーカイブ 情報抽出ツール アーカイブ取得 抽出情報 統合情報 データベースシステム 統合情報データベース 電子メール情報 生成部 電子メール情報 統合情報 CVS情報データベース CVS情報 統合情報生成部 電子メール情報データベース 電子メール情報 コミュニケーション支援システム 2001/09/19 26 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 統合情報の参照方法 検索キーによる参照 開発者は,参照したい語句を検索キーに指定する データベースシステムは,この検索キーを全ての統合 情報が持つ要素の値と比較する 特定要素検索による参照 統合情報は,各要素の値として情報を保持している ため,その要素に条件を与える形での検索が可能で ある 2001/09/19 27 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 本システムの利用例 リビジョン情報の情報量不足 電子メール アーカイブ コミュニケーション 支援システム 参照結果 参照要求 t-ishikw 情報取得 統合情報 revision 1.3 t-yamamt matusita inoue t-yamamt matusita inoue CVS リビジョン情報 revision 1.3 t-yamamt 2001/09/19 28 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 本システムの利用例 t-ishikw ツール/機能間の連係不足 参照結果 参照要求 入出力の最適化 1.3, 1.4.2.2 コミュニケーション 支援システム 情報取得 CVS 1.4.2.2 1.3 関連有り 入出力の 入出力の 最適化 最適化 関連有り アーカイブ 電子メール メーリングリスト 2001/09/19 29 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University まとめ 既存の開発環境では支援が不十分な,開発者 相互のコミュニケーションを支援するシステムを提案 した 既存の版管理システム CVS と,電子メールのアー カイブ等が互いに分散して保持する各種の情報を, 有機的に結合させた統合情報を管理するデータ ベースシステムの構築を行った 2001/09/19 30 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 今後の課題 システムの詳細な設計と共に,実装を進める 実際にシステムを利用することにより,本システム の有効性について検証を行いたいと考えている 2001/09/19 31 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 終 2001/09/19 32 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University ソフトウェアの再利用 再利用可能なソフトウェア部品の認識不足 互いに分散した環境で作業が行われるため,ソースコードの 断片等の再利用可能な部品コンポーネントの存在を,開発 者に認識させることが難しい 開発者が再利用しようと思わなければ,ソフトウェア 部品が再利用可能でも無用な存在になってしまう 2001/09/19 33 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University ソフトウェアの再利用 再利用可能なソフトウェア部品の単位 他者の開発プロダクトや,以前に開発されたソフトウェアの 一部に手を加えて別の開発に役立てることが多い 「クラス単位」,「メソッド単位」のように構文的な単位 で部品を再利用できるよりも,複数のクラスやメソッド の一部から機能的,あるいは,意味的な単位で部品 を抽出して再利用できることが求められている 2001/09/19 34 第133回 ソフトウェア工学研究会 133-4 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
© Copyright 2025 ExpyDoc