オープンなソフトウェアと オープンなプロセス

Download Report

Transcript オープンなソフトウェアと オープンなプロセス

オープンなソフトウェアと
オープンなプロセス
山田 正樹 [email protected]
(有)メタボリックス/IIOSSコンソーシアム
自己紹介
• メタボリックス
– オブジェクト・テクノロジ
– ソフトウェア・プロセス
• IIOSSコンソーシアム
– オープンなプロセスをサポートする、
– オープン・ソースのツールを提供する団体
• UMLツール
• Java開発支援ツール
ソフトウェア開発の潮流
• スコープ
– プロダクト中心から
– プロセス中心へ
• アクティビティ
– プログラミング中心から
– モデリング中心へ
ソフトウェア・プロセス
• プロダクトをいかに うまく よく 作るか
–
–
–
–
–
高い品質
短いスケジュール
良質で柔軟なアーキテクチャ
高い顧客満足度
ハッピーな開発者
オブジェクト・モデリング
• 上流工程から下流工程までを
• 一貫した手法と考え方で
• できるだけシームレスに行なう
– 開発フェーズ間のギャップを埋める
– 現実とのギャップを埋める
– ハードウェアとのギャップを埋める
モデリングを支えるテクノロジ
• UML (Unified Modeling Language)
– オブジェクト・モデリングの標準言語
– おもにダイアグラムを規定
– 今後は
• 仕様記述/シミュレーション
• ドメイン・モデルの構築
• co-design
– ソフトウェア+ハードウェア
オープン・ソース・ソフトウェア
• 開発者にとって(かつてのUNIX/GNU)
– 自分たちの生活環境を自分に適合させること
ができる
– 道具を自分で簡単に作ることができる
– コミュニティで優秀な道具を共有できる
– 暗黙に標準的なプロセスを提供する
オープン・ソース・ソフトウェア
• 社会にとって
– ソフトウェアは社会基盤になりつつある
– 社会基盤である以上、過度に独占的/不可視
的なものは受け入れ難い
– ソフトウェアは特に目に見えにくい
• 例えばウィルス
– テクノロジへの市民の参加
オープンなソフトウェア開発の条
件
•
•
•
•
•
開発者は地球規模で分散している
開発者は多様(専門性、レベル、動機)
顧客やユーザが積極的に参加
高いコストを掛けることはできない
必ずしも明確な要求定義はない
オープンなソフトウェアを
支えるプロセス
• 誰でもアクセスできる
–
–
–
–
安価(無料)
広くサポートされている
導入のオーバヘッドや敷居が低い
標準化されている
• 簡単に拡張できる
– 多様なプロジェクトに適応
普通のソフトウェア開発の
実状
•
•
•
•
•
•
開発者は外注さんが多い
開発者のスキル・レベルはばらばら
ユーザ中心でないとやっていけない
余計なコストは掛けられない
要件が曖昧で、しょっちゅう変わる
=> 実はオープン・ソース開発と一緒?
導入したくてもできない
プロセス
•
•
•
•
•
コストがかかる(値段/時間)
ベンダのいいなりになるしかない
導入に精神的な反発が大きい
周りでは誰も使っていない
……
注目すべき三つのプロセス
• Unified Process (UP)*1
• eXtreme Programming (XP)*2
• オープン・ソース・ソフトウェア・エンジニア
リング*3
*1 ラショナル統一プロセス入門, クルーシュテン, 1999, ピアソン
*2 eXtreme Programming explained, K. Beck, 2000, AWL
*3 オープンソースソフトウェア, 倉骨訳, 1999, オライリー
Unified Process
•
•
•
•
•
•
よく知られたモダンな方法論の統合
繰り返し型
比較的フォーマル
オブジェクト指向
ツール重視
上流重視
eXtreme Programming
• オブジェクト指向コミュニティで育てられた
ノウハウの蓄積
• コミュニケーション重視
• オブジェクト指向のよさを最大限生かす
• 小~中規模プロジェクト向き
• よりインフォーマル
XPのプラクティス
•
•
•
•
•
•
計画ゲーム
小さなリリース
メタファ
単純さ最優先
テストが最初
リファクタリング
•
•
•
•
•
•
ペア・プログラミング
みんなで共有
いつも統合
週40時間作業
顧客同室
コーディング基準
オープン・ソース・ソフトウェア・
エンジニアリング
•
•
•
•
多数の,多様な,分散した開発者
低コスト
徹底的なレビュー
現在はコーディング中心
– これからは?
OSSEの主なツール
• Email
• CVS(分散構成管理)
• Web
– http://www.sourceforge.org/
• バグ・トラッキング
• Chat
• “熱意のある開発者”
現状のOOSEの問題点
•
•
•
•
•
•
コミュニケーション => ○
知識管理 => ○
計画と見積もり => ???
分析/設計 => ×
モデリング => ×
アーキテクチャ => ……
現状のOOSEの問題点
• プログラミング => ○
– オブジェクト的なテクノロジは?
• テスト/レビュー => ○
– 数千個の眼で
• ドキュメント => △
– 必要なものは誰かが作る
– ソース・コードがドキュメント
問題の原因
• スキルが一般的なものでない
– UML、マネージメント …
• ツールが高価、使いにくい
• “ものが動く”喜びに直結しない
• これらは一般的なプロジェクトにも共通す
る
解決
• オープンなプロセス
– 標準
– メンタリング、トレーニング、コンサルティング
– リソース
• オープンなツール
– コスト => 無償
– 適応性/拡張性 =>オープン・ソース
• “動く”モデル
IIOSSプロジェクト
IIOSSプロジェクトのご紹介
• Integrated
Inter-exchangeable
Object-modeling and
Simulation
System
• オブジェクト指向プロセス全体を統一的に
サポートするツール(群)
IIOSSプロジェクトの特徴
•
•
•
•
•
オープン・ソース
UML
XMI / XML
Java
複数のソフトウェア・ハウス/大学メンバの
協同作業
IIOSSプロジェクトのミッション
•
•
•
•
オープンなツール
オープンなプロセスをサポート
フリー(無料/自由)
必要ならばコンサルティング/メンタリング/ト
レーニングを提供
IIOSS
概要とデモンストレーション
IIOSS
Model Editing Facility
Model Debugging Facility
File Conversion Facility
Interface Building Facility
Database Facility
Integrated Development Environment
.......
IIOSSの提供する
プロセスとワークフロー
•
•
•
•
•
•
•
要求 - UMLエディタ (ユースケース図など)
設計 - UMLエディタ (クラス図など)
設計の検証 - モデル・デバッガ
プロトタイピング - インタフェイス・ビルダ
設計から実装へ - モデル・トランスレータ
実装 - インタフェイス・ビルダ
設計と実装の統合 - モデル・デバッガ
プロセスとワークフロー
Model Editing Facility
•
•
•
•
•
•
•
•
•
UMLグラフィカル・モデル・エディタ
UML1.1/XMI準拠
based on Argo/UML (tigrisプロジェクト)
運用図を除くすべてのダイアグラム
静的な無矛盾性チェック
モデル要素間のハイパーリンク
ダイアグラムのグループ化
UML1.3対応(予定)
SVG対応(予定)
Model Editing Facility
Model Debugging Facility
• UMLモデル・デバッガ/シミュレータ
• 振る舞い図のシミュレート
• モデル・オブジェクトと実オブジェクト間の
メッセージ交換
• リアルタイム/組み込みシステムへの対応
(予定)
• OCL(予定)
Model Debugging Facility
Format Conversion Facility
•
•
•
•
•
•
•
JavaとUMLモデル(XMI)との相互変換
クラス図からJavaソースコード・スケルトンを生成
Javaソースコードからクラス図を生成
ラウンドトリップ(予定)
他の言語への対応(予定)
ドキュメント生成(予定)
振る舞い図からのコード生成(予定)
Format Conversion Facility
Interface Building Facility
•
•
•
•
インタフェイス・ビルダ
based on Korfe
ユーザ・インタフェイス - Swing
ネットワーク・インタフェイス
– Java RMI
– CORBA IDL
• データベース・インタフェイス
– JDBC (RDB)
– ODMG (OODB)
Interface Building Facility
Database Facility
•
•
•
•
•
•
•
•
•
オブジェクト指向データベース
ODMG3.0 (現状では一部)
based on sO
バージョニング
XMLハンドリング
すべてのIIOSSツールにサービス提供
ODMG3.0完全準拠(予定)
セキュリティ(予定)
分散データベース(予定)
Database Facility
Integrated Development
Environment
•
•
•
•
•
•
すべてのIIOSSツールの統合環境
ファイル管理
プロジェクト管理
ツール呼び出し
ユーティリティ
ヘルプ
Integrated Development
Environment
IIOSSの将来
•
•
•
•
•
•
•
メタ・モデル・エディタ
スクリプティング
CORBA/IIOPによるツールの分散・統合
ソフトウェア・プロセスのサポート
モデル・コンポーネント
Precise UML
……
IIOSSの将来
•
•
•
•
最初のパブリック・リリース
その後,定期的にリリース予定
どうぞ使ってみてください
どうぞ参加してください
– 開発・改良・拡張
– ユーザとして
オープンなプロセスとしての
IIOSS
• 標準的でオープンなツール
– Java, linux, XML, CVS, …
• 分散開発
– 沖縄、博多、愛媛、湘南、東京
• 多様なメンバ
• 他のプロジェクトの成果を利用
– 連携には難しい点がある
• 品質 ー これから
最後に
• IIOSSコンソーシアム
– [email protected]
– 03-5804-3987
• http://www.iioss.org/
• IIOSSプロジェクトは情報処理振興事業協会
(IPA)が推進する「ビジネスオブジェクト関連シス
テム開発事業」の一環として行われております