45
オオオオオオオオオオオオ オオオオオオオオオ オオ オオ [email protected] ( オ ) オオオオオオオ /IIOSS オオオオオオオ

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

Embed Size (px)

DESCRIPTION

オープンなソフトウェアと オープンなプロセス. 山田 正樹 [email protected] ( 有 ) メタボリックス /IIOSS コンソーシアム. 自己紹介. メタボリックス オブジェクト・テクノロジ ソフトウェア・プロセス IIOSS コンソーシアム オープンなプロセスをサポートする、 オープン・ソースのツールを提供する団体 UML ツール Java 開発支援ツール. ソフトウェア開発の潮流. スコープ プロダクト中心から プロセス中心へ アクティビティ プログラミング中心から モデリング中心へ. ソフトウェア・プロセス. - PowerPoint PPT Presentation

Citation preview

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

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

山田 正樹 [email protected]

( 有 ) メタボリックス /IIOSS コンソーシアム

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

自己紹介

• メタボリックス– オブジェクト テクノロジ・– ソフトウェア プロセス・

• IIOSS コンソーシアム– オープンなプロセスをサポートする、– オープン・ソースのツールを提供する団体

• UML ツール• Java 開発支援ツール

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

ソフトウェア開発の潮流

• スコープ– プロダクト中心から– プロセス中心へ

• アクティビティ– プログラミング中心から– モデリング中心へ

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

ソフトウェア プロセス・• プロダクトをいかに うまく よく 作る

か– 高い品質– 短いスケジュール– 良質で柔軟なアーキテクチャ– 高い顧客満足度– ハッピーな開発者

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

オブジェクト モデリング・• 上流工程から下流工程までを• 一貫した手法と考え方で• できるだけシームレスに行なう

– 開発フェーズ間のギャップを埋める– 現実とのギャップを埋める– ハードウェアとのギャップを埋める

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

モデリングを支えるテクノロジ

• UML (Unified Modeling Language)– オブジェクト・モデリングの標準言語– おもにダイアグラムを規定– 今後は

• 仕様記述 / シミュレーション• ドメイン・モデルの構築

• co-design– ソフトウェア + ハードウェア

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

オープン ソース・ソフトウェ・ア

• 開発者にとって ( かつての UNIX/GNU)

– 自分たちの生活環境を自分に適合させることができる

– 道具を自分で簡単に作ることができる– コミュニティで優秀な道具を共有できる– 暗黙に標準的なプロセスを提供する

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

オープン ソース ソフトウェ・ ・ア

• 社会にとって– ソフトウェアは社会基盤になりつつある– 社会基盤である以上、過度に独占的 / 不可

視的なものは受け入れ難い– ソフトウェアは特に目に見えにくい

• 例えばウィルス

– テクノロジへの市民の参加

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

オープンなソフトウェア開発の条件

• 開発者は地球規模で分散している• 開発者は多様 ( 専門性、レベル、動機 )

• 顧客やユーザが積極的に参加• 高いコストを掛けることはできない• 必ずしも明確な要求定義はない

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

オープンなソフトウェアを支えるプロセス

• 誰でもアクセスできる– 安価 ( 無料 )– 広くサポートされている– 導入のオーバヘッドや敷居が低い– 標準化されている

• 簡単に拡張できる– 多様なプロジェクトに適応

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

普通のソフトウェア開発の実状

• 開発者は外注さんが多い• 開発者のスキル・レベルはばらばら• ユーザ中心でないとやっていけない• 余計なコストは掛けられない• 要件が曖昧で、しょっちゅう変わる• => 実はオープン・ソース開発と一緒 ?

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

導入したくてもできないプロセス

• コストがかかる ( 値段 /時間 )

• ベンダのいいなりになるしかない• 導入に精神的な反発が大きい• 周りでは誰も使っていない• ……

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

注目すべき三つのプロセス

• Unified Process (UP)*1

• eXtreme Programming (XP)*2

• オープン・ソース・ソフトウェア・エンジニアリング *3

*1 ラショナル統一プロセス入門 , クルーシュテン , 1999, ピアソン *2 eXtreme Programming explained, K. Beck, 2000, AWL*3 オープンソースソフトウェア , 倉骨訳 , 1999, オライリー

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

Unified Process

• よく知られたモダンな方法論の統合• 繰り返し型• 比較的フォーマル• オブジェクト指向• ツール重視• 上流重視

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

eXtreme Programming

• オブジェクト指向コミュニティで育てられたノウハウの蓄積

• コミュニケーション重視• オブジェクト指向のよさを最大限生か

す• 小~中規模プロジェクト向き• よりインフォーマル

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

XP のプラクティス

• 計画ゲーム• 小さなリリース• メタファ• 単純さ最優先• テストが最初• リファクタリング

• ペア・プログラミング

• みんなで共有• いつも統合• 週 40時間作業• 顧客同室• コーディング基準

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

オープン ソース ソフトウェア・ ・ ・エンジニアリング

• 多数の,多様な,分散した開発者• 低コスト• 徹底的なレビュー• 現在はコーディング中心

– これからは ?

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

OSSE の主なツール

• Email• CVS( 分散構成管理 )• Web

– http://www.sourceforge.org/

• バグ・トラッキング• Chat• “ 熱意のある開発者”

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

現状の OOSE の問題点

• コミュニケーション => ○• 知識管理 => ○

• 計画と見積もり => ???• 分析 /設計 => ×

• モデリング => ו アーキテクチャ => ……

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

現状の OOSE の問題点

• プログラミング => ○– オブジェクト的なテクノロジは ?

• テスト / レビュー => ○– 数千個の眼で

• ドキュメント => △– 必要なものは誰かが作る– ソース・コードがドキュメント

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

問題の原因

• スキルが一般的なものでない– UML 、マネージメント …

• ツールが高価、使いにくい• “ものが動く”喜びに直結しない• これらは一般的なプロジェクトにも共

通する

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

解決

• オープンなプロセス– 標準– メンタリング、トレーニング、コンサルティン

グ– リソース

• オープンなツール– コスト => 無償– 適応性 / 拡張性 => オープン ソース・

• “動く”モデル

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

IIOSS プロジェクト

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

IIOSS プロジェクトのご紹介

• IntegratedInter-exchangeableObject-modeling andSimulationSystem

• オブジェクト指向プロセス全体を統一的にサポートするツール (群 )

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

IIOSS プロジェクトの特徴

• オープン ソース・• UML

• XMI / XML

• Java

• 複数のソフトウェア ハウス・ /大学メンバの協同作業

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

IIOSS プロジェクトのミッション

• オープンなツール• オープンなプロセスをサポート• フリー ( 無料 / 自由 )

• 必要ならばコンサルティング / メンタリング / トレーニングを提供

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

IIOSS概要とデモンストレーション

Model Editing Facility

Model Debugging Facility

File Conversion Facility

Interface Building Facility

Database Facility

Integrated Development Environment

.......

IIOSS

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

IIOSS の提供するプロセスとワークフロー

• 要求 - UMLエディタ ( ユースケース図など )

• 設計 - UMLエディタ ( クラス図など )• 設計の検証 - モデル デバッガ・• プロトタイピング - インタフェイス ビルダ・• 設計から実装へ - モデル トランスレータ・• 実装 - インタフェイス ビルダ・• 設計と実装の統合 - モデル デバッガ・

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

プロセスとワークフロー

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

Model Editing Facility

• UML グラフィカル モデル エディタ・ ・• UML1.1/XMI 準拠• based on Argo/UML (tigris プロジェクト )

• 運用図を除くすべてのダイアグラム• 静的な無矛盾性チェック• モデル要素間のハイパーリンク• ダイアグラムのグループ化• UML1.3対応 (予定 )

• SVG対応 (予定 )

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

Model Editing Facility

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

Model Debugging Facility

• UML モデル デバッガ・ / シミュレータ• 振る舞い図のシミュレート• モデル オブジェクトと実オブジェク・

ト間のメッセージ交換• リアルタイム /組み込みシステムへの対応 (予定 )

• OCL(予定 )

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

Model Debugging Facility

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

Format Conversion Facility

• Java と UML モデル (XMI) との相互変換• クラス図から Java ソースコード・スケルト

ンを生成• Java ソースコードからクラス図を生成• ラウンドトリップ (予定 )• 他の言語への対応 (予定 )• ドキュメント生成 (予定 )• 振る舞い図からのコード生成 (予定 )

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

Format Conversion Facility

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

Interface Building Facility

• インタフェイス ビルダ・• based on Korfe

• ユーザ インタフェイス ・ - Swing

• ネットワーク インタフェイス・– Java RMI

– CORBA IDL

• データベース インタフェイス・– JDBC (RDB)

– ODMG (OODB)

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

Interface Building Facility

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

Database Facility

• オブジェクト指向データベース• ODMG3.0 ( 現状では一部 )

• based on sO

• バージョニング• XML ハンドリング• すべての IIOSS ツールにサービス提供• ODMG3.0完全準拠 (予定 )

• セキュリティ (予定 )

• 分散データベース (予定 )

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

Database Facility

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

Integrated Development Environment

• すべての IIOSS ツールの統合環境• ファイル管理• プロジェクト管理• ツール呼び出し• ユーティリティ• ヘルプ

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

Integrated Development Environment

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

IIOSS の将来

• メタ モデル エディタ・ ・• スクリプティング• CORBA/IIOP によるツールの分散・統

合• ソフトウェア・プロセスのサポート• モデル・コンポーネント• Precise UML• ……

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

IIOSS の将来

• 最初のパブリック リリース・• その後,定期的にリリース予定• どうぞ使ってみてください• どうぞ参加してください

– 開発・改良・拡張– ユーザとして

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

オープンなプロセスとしてのIIOSS

• 標準的でオープンなツール– Java, linux, XML, CVS, …

• 分散開発– 沖縄、博多、愛媛、湘南、東京

• 多様なメンバ• 他のプロジェクトの成果を利用

– 連携には難しい点がある• 品質 ー これから

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

最後に• IIOSS コンソーシアム

[email protected]– 03-5804-3987

• http://www.iioss.org/• IIOSS プロジェクトは情報処理振興事業協会

(IPA) が推進する「ビジネスオブジェクト関連システム開発事業」の一環として行われております