ソフトウェア開発時における 版管理システムを利用した

ソフトウェア開発時における
版管理システムを利用した
コミュニケーション支援システムの提案
石川武志 山本哲男 松下誠 井上克郎
大阪大学大学院基礎工学研究科
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