Winter Workshop in Kanazawa -プロセスと方法論- 井上克郎 落水浩一郎 大阪大学 JAIST 情報処理学会ソフトウェア工学研究会 2001年6月1日
個別ミーティングの流れ 各ポジションペーパーの発表 プロセスをテーマにしている者が、今、何に興味を持っているか? 全員での議論
ポジションペーパー(1) プロセスと方法論に関する課題共有に向けて落水(JAIST) 現状認識、UML, Rational Unified Process, Open Source, … 分散開発環境のためのプロジェクト情報管理システム 矢野(富士通) 日程、工程による管理(製造業) → 成果物のViewを中心とした管理(ソフトウェア、R&D) Open sourceにおけるプロジェクト管理を元にしたプロジェクト情報管理システムPI-CEEの提案 Repository(CVS)を活用して成果物管理につなげる
ポジションペーパ(2) オープンソースソフトウェアの開発プロセス 藤枝(JAIST) オープンソースの開発プロセスの現状 オープンソースソフトウェアの開発プロセス 藤枝(JAIST) オープンソースの開発プロセスの現状 Raymondの本はLinuxにバイアス Linuxは管理ほとんどやってないので余り参考にならない コアメンバーの権限、役割、責任など明確化必要 権限を得るためのプロセス、実行するためのプロセスをきちんとしているプロジェクトある CVSはこの種の管理をサポートする必要ある 権限モデルを差し替えるシステム設計中
ポジションペーパー(3) リポジトリを中心としたオープンソース開発支援環境 松下(阪大) 現状システムを基礎に ボトムアップアプローチ リポジトリを中心としたオープンソース開発支援環境 松下(阪大) 現状システムを基礎に ボトムアップアプローチ リポジトリ(CVS)+α(機能の作りこみ、バグフィックスなどの作業スレッドの履歴を管理し、利用することにより CVSに対する操作履歴収集 オープンソースプロジェクトの現状把握
ポジションペーパー(4) オープンソースソフトウェアの開発プロセスについて 藤田(JAIST) CVSのログとメールからもう少し情報を取れる 今何をやっているのかわかる
ポジションペーパ(5) コンポーネント指向ソフトウェア開発プロセスの観察と分析 飯田(NAIST) アーキテクチャはプロセスに対するアンチテーゼ?(by 玉井) オープンソースもそうじゃないか(by 飯田) コンポーネントもそう。ぐるである。便利な機能があればプロセスはいらないのでは? だがしかし、プロセスには使える何かある。 コンテンツプログラムの開発技術 井上(阪大) Extreme Programming
議論の整理 既存のリジットな方法論やプロセスに対するアンチテーゼ オープンソース開発 コンポーネント開発 Extreme Programming
オープンソースを議論の対象 プロセス・方法論絶対必要か? 情報公開による、原始共産主義。 皆の立場: オープンソースのやりかた支持できる 皆の立場: オープンソースのやりかた支持できる 情報公開による、原始共産主義。 インターネットの発達によって可能になった 情報寡占時代に開発されたSEの諸技術を必要としないのではないか?
オープンソースの発展・現状 ソフトウェア開発 by Internet 記憶媒体(テープ、紙)のシェアからインターネット経由の情報共有へ ソースの配布とフィードバック by FTP,mail 文句を言うだけでなくパッチを作る 参加する人間の増加 管理作業 CVSなどのツール利用 WEBの利用(ドキュメンテーション) もてはやす人 (アンチプロセス) 昔からやっている人
論点 オープンソース開発の前提 既存ソフトウェア工学技術はいらない? Internetの存在 コードを直さずにはいられない人々の存在 一定以上のユーザ数 魅力的なソフトウェア 既存ソフトウェア工学技術はいらない? △ 要求、再利用、アーキテクチャ、プロセス ○ 計測と解析
なぜならば △ 要求: 手間をかけて要求を獲得する必要がない。後でどんどん追加、変更していく △ 要求: 手間をかけて要求を獲得する必要がない。後でどんどん追加、変更していく △ 再利用: 公開情報を元にしてソースに手を入れるので十分。手間をかけて将来の変更を考えない △ アーキテクチャ: 優秀な中心人物が最初に提示すればいい。あとで必要なら改変をいとわない ○ 計測と解析: 情報公開し、魅力あるプロジェクトにするために、情報収集し、公開する
まとめ プロセス・方法論の若手研究者はオープンソースに多大な興味を持っている オープンソースは、プロセス・方法論のみならず、他のSEの分野に多大な影響を与える オープンソースの考え方、やり方の本質は何か、どう現状の開発に利用できるか考える必要がある