オープンなソフトウェアと オープンなプロセス 山田 正樹 [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)が推進する「ビジネスオブジェクト関連シス テム開発事業」の一環として行われております
© Copyright 2025 ExpyDoc