450 likes | 536 Views
オープンなソフトウェアと オープンなプロセス. 山田 正樹 masaki@metabolics.co.jp ( 有 ) メタボリックス /IIOSS コンソーシアム. 自己紹介. メタボリックス オブジェクト・テクノロジ ソフトウェア・プロセス IIOSS コンソーシアム オープンなプロセスをサポートする、 オープン・ソースのツールを提供する団体 UML ツール Java 開発支援ツール. ソフトウェア開発の潮流. スコープ プロダクト中心から プロセス中心へ アクティビティ プログラミング中心から モデリング中心へ. ソフトウェア・プロセス.
E N D
オープンなソフトウェアとオープンなプロセスオープンなソフトウェアとオープンなプロセス 山田 正樹 masaki@metabolics.co.jp (有)メタボリックス/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 • オブジェクト指向コミュニティで育てられたノウハウの蓄積 • コミュニケーション重視 • オブジェクト指向のよさを最大限生かす • 小~中規模プロジェクト向き • よりインフォーマル
計画ゲーム 小さなリリース メタファ 単純さ最優先 テストが最初 リファクタリング ペア・プログラミング みんなで共有 いつも統合 週40時間作業 顧客同室 コーディング基準 XPのプラクティス
オープン・ソース・ソフトウェア・エンジニアリングオープン・ソース・ソフトウェア・エンジニアリング • 多数の,多様な,分散した開発者 • 低コスト • 徹底的なレビュー • 現在はコーディング中心 • これからは?
OSSEの主なツール • Email • CVS(分散構成管理) • Web • http://www.sourceforge.org/ • バグ・トラッキング • Chat • “熱意のある開発者”
現状のOOSEの問題点 • コミュニケーション => ○ • 知識管理 => ○ • 計画と見積もり => ??? • 分析/設計 => × • モデリング => × • アーキテクチャ => ……
現状のOOSEの問題点 • プログラミング => ○ • オブジェクト的なテクノロジは? • テスト/レビュー => ○ • 数千個の眼で • ドキュメント => △ • 必要なものは誰かが作る • ソース・コードがドキュメント
問題の原因 • スキルが一般的なものでない • UML、マネージメント … • ツールが高価、使いにくい • “ものが動く”喜びに直結しない • これらは一般的なプロジェクトにも共通する
解決 • オープンなプロセス • 標準 • メンタリング、トレーニング、コンサルティング • リソース • オープンなツール • コスト => 無償 • 適応性/拡張性 =>オープン・ソース • “動く”モデル
IIOSSプロジェクトのご紹介 • IntegratedInter-exchangeableObject-modeling andSimulationSystem • オブジェクト指向プロセス全体を統一的にサポートするツール(群)
IIOSSプロジェクトの特徴 • オープン・ソース • UML • XMI / XML • Java • 複数のソフトウェア・ハウス/大学メンバの協同作業
IIOSSプロジェクトのミッション • オープンなツール • オープンなプロセスをサポート • フリー(無料/自由) • 必要ならばコンサルティング/メンタリング/トレーニングを提供
IIOSSの提供するプロセスとワークフロー • 要求 - UMLエディタ (ユースケース図など) • 設計 - UMLエディタ (クラス図など) • 設計の検証 - モデル・デバッガ • プロトタイピング - インタフェイス・ビルダ • 設計から実装へ - モデル・トランスレータ • 実装 - インタフェイス・ビルダ • 設計と実装の統合 - モデル・デバッガ
Model Editing Facility • UMLグラフィカル・モデル・エディタ • UML1.1/XMI準拠 • based on Argo/UML (tigrisプロジェクト) • 運用図を除くすべてのダイアグラム • 静的な無矛盾性チェック • モデル要素間のハイパーリンク • ダイアグラムのグループ化 • UML1.3対応(予定) • SVG対応(予定)
Model Debugging Facility • UMLモデル・デバッガ/シミュレータ • 振る舞い図のシミュレート • モデル・オブジェクトと実オブジェクト間のメッセージ交換 • リアルタイム/組み込みシステムへの対応(予定) • OCL(予定)
Format Conversion Facility • JavaとUMLモデル(XMI)との相互変換 • クラス図からJavaソースコード・スケルトンを生成 • Javaソースコードからクラス図を生成 • ラウンドトリップ(予定) • 他の言語への対応(予定) • ドキュメント生成(予定) • 振る舞い図からのコード生成(予定)
Interface Building Facility • インタフェイス・ビルダ • based on Korfe • ユーザ・インタフェイス - Swing • ネットワーク・インタフェイス • Java RMI • CORBA IDL • データベース・インタフェイス • JDBC (RDB) • ODMG (OODB)
Database Facility • オブジェクト指向データベース • ODMG3.0 (現状では一部) • based on sO • バージョニング • XMLハンドリング • すべてのIIOSSツールにサービス提供 • ODMG3.0完全準拠(予定) • セキュリティ(予定) • 分散データベース(予定)
Integrated Development Environment • すべてのIIOSSツールの統合環境 • ファイル管理 • プロジェクト管理 • ツール呼び出し • ユーティリティ • ヘルプ
IIOSSの将来 • メタ・モデル・エディタ • スクリプティング • CORBA/IIOPによるツールの分散・統合 • ソフトウェア・プロセスのサポート • モデル・コンポーネント • Precise UML • ……
IIOSSの将来 • 最初のパブリック・リリース • その後,定期的にリリース予定 • どうぞ使ってみてください • どうぞ参加してください • 開発・改良・拡張 • ユーザとして
オープンなプロセスとしてのIIOSS • 標準的でオープンなツール • Java, linux, XML, CVS, … • 分散開発 • 沖縄、博多、愛媛、湘南、東京 • 多様なメンバ • 他のプロジェクトの成果を利用 • 連携には難しい点がある • 品質 ー これから
最後に • IIOSSコンソーシアム • info@iioss.org • 03-5804-3987 • http://www.iioss.org/ • IIOSSプロジェクトは情報処理振興事業協会(IPA)が推進する「ビジネスオブジェクト関連システム開発事業」の一環として行われております