Download presentation
Presentation is loading. Please wait.
1
オープンソースソフトウェア開発に見る SCM中心型ソフトウェア開発
松下誠 大阪大学大学院情報科学研究科
2
今日の話題 「オープンソースソフトウェア(OSS)」とは OSS開発概観 OSS開発におけるSCMの役割 開発事例 まとめ
Nov/01/2005 第15回S-openホットセッション
3
オープンソースソフトウェア(OSS)とは
“The Open Source Definition,” (OSSのひとつである)Debianが採用していた The Debian Free Software Guidelines に由来 OSSが満たすべき10の条件を列挙 ソースコードや派生ソフトウェアの頒布,再頒布の自由 差別の禁止,特定の状況下のみ有効なライセンスの禁止,など 開発プロセスでも製品でもなく,製品の「ライセンス形態」 しかし,一般的には… 「とりあえず無料で入手できるソフト」「良いらしい」 なんだかよくわからないけど,好きな人が勝手に作っている Nov/01/2005 第15回S-openホットセッション
4
OSSとOSS「開発」 OSSそのものは「結果」 OSS開発は「ソフトウェアの開発(過程)」
誰が,いつ,どのようにして作成したかには依存しない 手に入れたバイナリやソースコードがすべて 作った人が存在しているかどうかも関係ない 場合によっては,その後自分自身が作ることも可能 OSS開発は「ソフトウェアの開発(過程)」 人の手によって,ソフトウェアがscratchから作られる 通常のソフトウェア開発と「何も」違わない お金や時間などでは解決できない制約下での開発 ユーザ不在(あるいは,開発者自身がユーザ) 開発「組織」があいまい(互いに何らかの制約を持つことはまれ) 時間や空間を共有しにくい(世界中に分散した開発者) Nov/01/2005 第15回S-openホットセッション
5
OSS開発概観 OSS開発は多様な形態がありえる 比較的「良くある」OSS開発の場合…
互いに独立している複数の開発者(グループ) 「利用者」と「開発者」の境界はあいまい 開発に参加している理由づけもあいまい(かもしれない) Internet上で(ほぼすべての)開発者相互のやり取りを行う コミュニケーション ( , irc, wiki, blog, …) 成果物 (code, documents, …) 個人(グループ)開発の寄せ集めによる開発作業 これからの開発内容は決まっていないかもしれない 何をいつまでにやるべきかも決まっていないかもしれない Nov/01/2005 第15回S-openホットセッション
6
OSS開発におけるSCMの役割 「使いたい」ではなく「ないと困る」SCM 生成物を保持するための貯蔵庫
自分の作ったものを起き,他人に利用してもらう 必要な部分だけを入手,あるいは保存 開発プロセスを円滑に進めるための支援システム 作業者や変更内容の把握 変更理由をあわせて管理 議論の材料 Nov/01/2005 第15回S-openホットセッション
7
貯蔵庫としてのSCM 開発形態からくる制約 個別に行われた作業をまとめる場所 ソフトウェアを配布する手段
個人で行っているならば不要(かもしれない) 全体の取りまとめ役をSCMに任せる ソフトウェアを配布する手段 (開発対象となる)最新のソースコードを配布 任意の時点でのソースコードを提供可能 Nov/01/2005 第15回S-openホットセッション
8
開発プロセス支援としてのSCM 作業者や変更内容の把握 変更理由の管理 議論の材料 誰がいつどんな変更をしたのか記録したい
逐一変更報告するのは面倒 変更理由の管理 修正した「理由」を登録時にあわせて記録できる 変更の歴史が残る 議論の材料 「この修正が問題だ」と示す 過去の変更履歴を保持している メーリングリスト等との連携 「こういう修正はどうか」と示す 任意の時点のコードに対する差分を容易に作れる バグ管理システム等との連携 Nov/01/2005 第15回S-openホットセッション
9
OSSで使われるSCMの例 CVS: http://www.nongnu.org/cvs/ 最近使われつつある新しいSCM
RCSからの派生物,古いが事実上の標準 ロックなし check-in/check-out モデル 差分情報を保存(RCS互換のテキストデータ) ブランチ作成等,基本的な機能は一通りそろっている 最近使われつつある新しいSCM subversion: “better CVS” として一から作成される ネットワーク対応,一貫性の保証,容易なブランチ操作 Perforce: Perforce社による商用製品 OSS開発向けに無償ライセンスを提供 Nov/01/2005 第15回S-openホットセッション
10
CVSと共に用いられるツール 電子メールやメーリングリスト Webインターフェイス: CVSweb, viewcvs, etc
開発用メーリングリストに変更内容のメールを流す Webインターフェイス: CVSweb, viewcvs, etc CVSリポジトリ閲覧用 手元にCVSの利用環境がなくても使える CVSup: CVSリポジトリに特化したファイル同期用ツール CVSサーバ もともとcvsはネットワーク環境下での利用を想定していない 遠隔操作を安全に行うためのサーバ sandbox構築,cvsd などの専用サーバ,など Nov/01/2005 第15回S-openホットセッション
11
OSS開発事例: FreeBSD いわゆる BSD UNIX のひとつ 開発当初よりCVSを採用 開発組織
過去のBSDはSCMとしてSCCSを採用 11年分のソースコードが約1.4GBのCVSリポジトリへ格納(ソースコード全体で約440MB) 開発組織 総計約340人(うち220人がソースコード修正可能) 開発者相互の選挙で選ばれた core team 目的別のチーム リリース管理,ports (アプリケーション集),ほか Nov/01/2005 第15回S-openホットセッション
12
FreeBSDにおけるソフトウェア開発 一般に公開されたCVSリポジトリ CVSリポジトリと連動したメーリングリスト
CVSupを用いて世界中に複製される(必要なら手元にも) 適宜リポジトリからソースコードを取り出して利用 単にコンパイルして使うだけ,という形態もある CVSリポジトリと連動したメーリングリスト 開発者向けだが,最新の開発動向を知ることも可能 CVSへの登録時につけたコメントから生まれる議論 その修正は間違っている,その理由付けには疑問がある,など 開発者や利用者相互のメーリングリスト 修正はCVSリポジトリ内のコードに対する差分で示される Nov/01/2005 第15回S-openホットセッション
13
SCMを用いた開発が行われる理由 「SCMは有用である,ないと困る」という意識 ソースコードを自由に手に入れたい 残された記録の重要
いちいち他人の手を煩わせたくはない 欲しいときに,欲しいものを,いつでも 残された記録の重要 なぜそういうコードが書かれたかを知る 修正した人がわかれば直接聞ける 過去のミスを繰り返さないための記録 Nov/01/2005 第15回S-openホットセッション
14
まとめ OSSとOSS開発 OSS開発におけるSCMの役割 SCMの利用事例 ファイル共有 開発プロセス支援
CVSを用いたFreeBSD開発 Nov/01/2005 第15回S-openホットセッション
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.