ウィンターワークショップ・イン・金沢

リポジトリを中心としたオープンソース開発支援環境
松誠y下

近年，インターネットを用いて複数の開発者が自由にソフトウェア開発を行う形態，オープンソース開発が急速に拡大しつつある．しかしながら，この種の開発形態を支援する環境の整備は遅れている．本稿では，オープンソース開発を支援する環境について，プロダクト等を管理するリポジトリを中心にして考察する．

Repository-Oriented Opensource Development Environments

Makoto MatsushitayOpensource development environments, that lots of engineers are freely joined into, arerapidly increased via the Internet. However, there are very few supports for such development
environments.

This paper describes a supporting environment for opensource developmentwith repositories which organize, manage, and distribute software products.

1.

作業者

はじめに作業者

近年，企業等によって行われるソフトウェア開発ではなく，インターネット等を利用した多くの個人による共同作業としてのソフトウェア開発形態 (オープンコード修正

閲覧/入手メール送受信

ソース開発) が広まってきている．また，この種の開発形態から生まれてきたソフトウェアは，質の高さやCVS機能の豊富さなどから，特に注目されてきつつある6) ．

ソースコードオープンソース開発における開発プロセスは特に明電子メール/リスト
WWW
FTP/sup/rsync

ドキュメント/マニュアル

確となっているわけではなく，各作業者に強く依存し

図1

GNATS
メールアーカイブ

オープンソース開発環境の例ていることが多い．また，作業が個人に依存したものとなっているため，開発されている各ソフトウェアごトウェア開発支援環境と同種の開発環境の構築方法にとに異なる開発手続きが用いられている．このために，ついて，ソースコード等のプロダクトを管理する際にこの種の開発作業を支援する試みは，一部のごく簡単用いられているリポジトリを中心にして述べる．

な作業等に限られており，包括的な支援には至っていない．

2.

オープンソース開発の現状と問題

一方，従来のソフトウェア開発プロセス中心型支援

オープンソース開発では，それぞれの作業者が，ソー環境は，開発プロセスがあらかじめ明確になっている

スコードやドキュメント等の開発，保守，設計やレ状況で，何らかの開発組織や共通の開発環境が存在ビュー等の作業を互いに協力しあいながら進めている．

できることを仮定している．しかしながら，オープン作業によって得られた成果は，各開発グループ毎に存

ソース開発においては，これらの仮定を置くことが不在する，CVS2) 等によって構築されたリポジトリに蓄可能であり，従来の開発プロセスや支援環境をそのま積される．この時，1 つの開発グループへ複数人が参ま適用することは非常に困難である．

加することはもちろん，一人が複数の開発グループに

本稿では，今後さらに発展が期待されているオープ
ンソースア開発に対し，従来の開発組織に対するソフy 大阪大学大学院基礎工学研究科
Graduate School of Engineering Science, Osaka University

参加することも珍しくない (図 1)．
しかし，オープンソース開発においては，作業者が自由に作業を行っているため，プロセスを明確にすることが難しい．また作業者が複数の作業を同時に進めている場合，個別の開発グループ毎に存在しているリウィンターワークショップ・イン・金沢
ポジトリをそれぞれ別個に扱わなければならず，作業として，複数の異なる UI を提供するソフトウェアリ者の負担が指数的に増大してしまう．さらに，従来のポジトリを中心とした，ソースコードやドキュメントプロセス中心型開発環境では，これらの状況に対応でを統合した環境が考えられる (図 2)．

きないといった問題がある．
作業者

3.

作業者

開発支援環境筆者はこれまで，リポジトリにおいてバージョン管理が行われることに着目して，リポジトリを中心としコード修正た開発支援環境について研究を行ってきた．具体的に閲覧/入手

メール送受信WWW/FTP等

電子メール

は，テストの際，各バージョン間の差分情報を用いてデバッグ作業を効率良く行うための手法3) ，開発プロ

CVS

統合インターフェイス/リポジトリエンジン

セスの内容をリポジトリを用いて自動的に収集，分析するシステム5) ，複数のリポジトリを開発者の視点か

ソースコード等

GNATS

4)

ら自由に統合するための仮想リポジトリシステム ，メールアーカイブ

ソフトウェアリポジトリ
図 2 考えられるオープンソース開発環境支援環境などである．
これまでの研究を通じ，筆者はオープンソース開発を支援する環境を構築する際には，以下のような点に留意する必要があると考えている．

 リポジトリを利用する

4.

おわりに

本稿では，オープンソース開発に対する開発支援環

開発プロセスが明確ではなく，また，作業者のス境について，リポジトリを環境の中心に置いた場合にキルや環境がまちまちであることから，作業の結ついて考察を行った．今後，本稿で述べるような単純果を蓄積するリポジトリを環境の中心に置いて考な構成を保ちつつ，高度な支援を行う手法について考えざるを得ない．

察する必要があろう．

 リポジトリ内の情報を活用する
リポジトリは一般的に，プロダクトを蓄え，後に取りだすだけの物だと考えられがちである．しかし，リポジトリには結果的に開発プロセスの結果が時系列順に管理されている物である，と捉えることができる．これらの情報を有効に活用し，不明確な開発プロセスをより明確にすることが可能であると考えられる．

 ボトムアップの手法を利用する
オープンソース開発では，組織による活動があいまいであるため，トップダウンに何らかの考えを適用することが困難である．作業者個人に着目し，ボトムアップの手法を用いて全体を支援する手法を用いなければ，具体的な支援環境を構築することは困難だと思われる．

 既存の環境と共存する
従来のプロセス中心型開発環境に対する反省として，独自のツール等を用いた支援環境は実際の開発には使われない，という点が挙げられる1) ．オー
プンソース開発においては，さまざまな個人が開発に参加するため，その傾向はより強くなりやすいと考えられる．
これらを満たすことができる開発支援環境の 1 つ参考

文 献

1) Fuggetta, A.: \Software Process: A Roadmap",
In Proceedings of The Future of Software Engineering 2000, pp. 27 { 33 (2000).
2) Berliner, B.: \CVS II: Parallelizing SoftwareDevelopment", in Proceedings of 1990 Winter
USENIX Conference (1990).
3) 田原靖太，寺口正義，松下誠，井上克郎: \プログラムの差分情報を用いたデバッグ手法の評価実
験", 情報処理学会第 61 回全国大会講演論文集,

pp. 1-327 { 1-328 (2000).
4) 田中義己，松下誠，井上克郎: \複数のリポジトリを共有できる仮想的なバージョン管理システムの提案", 情報処理学会研究報告, 2000-SE-129-7,

pp. 49 { 56 (2000).
5) Yamamoto, T., Matsushita, M., and Inoue,
K.: \Accumulative Versioning File System
Moraine and Its Application to Metrics Environment MAME", In Proceedings of The
Eighth International Symoposium on Foundation of Software Engineering, pp. 80 { 87(2000).
6) \Open Source Software, A (New?) Development Methodology", http://www.opensource.org/halloween/halloween1.html.