1 / 45

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

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

myra-boone
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. オープンなソフトウェアとオープンなプロセスオープンなソフトウェアとオープンなプロセス 山田 正樹 masaki@metabolics.co.jp (有)メタボリックス/IIOSSコンソーシアム

  2. 自己紹介 • メタボリックス • オブジェクト・テクノロジ • ソフトウェア・プロセス • IIOSSコンソーシアム • オープンなプロセスをサポートする、 • オープン・ソースのツールを提供する団体 • UMLツール • Java開発支援ツール

  3. ソフトウェア開発の潮流 • スコープ • プロダクト中心から • プロセス中心へ • アクティビティ • プログラミング中心から • モデリング中心へ

  4. ソフトウェア・プロセス • プロダクトをいかに うまく よく作るか • 高い品質 • 短いスケジュール • 良質で柔軟なアーキテクチャ • 高い顧客満足度 • ハッピーな開発者

  5. オブジェクト・モデリング • 上流工程から下流工程までを • 一貫した手法と考え方で • できるだけシームレスに行なう • 開発フェーズ間のギャップを埋める • 現実とのギャップを埋める • ハードウェアとのギャップを埋める

  6. モデリングを支えるテクノロジ • UML (Unified Modeling Language) • オブジェクト・モデリングの標準言語 • おもにダイアグラムを規定 • 今後は • 仕様記述/シミュレーション • ドメイン・モデルの構築 • co-design • ソフトウェア+ハードウェア

  7. オープン・ソース・ソフトウェア • 開発者にとって(かつてのUNIX/GNU) • 自分たちの生活環境を自分に適合させることができる • 道具を自分で簡単に作ることができる • コミュニティで優秀な道具を共有できる • 暗黙に標準的なプロセスを提供する

  8. オープン・ソース・ソフトウェア • 社会にとって • ソフトウェアは社会基盤になりつつある • 社会基盤である以上、過度に独占的/不可視的なものは受け入れ難い • ソフトウェアは特に目に見えにくい • 例えばウィルス • テクノロジへの市民の参加

  9. オープンなソフトウェア開発の条件 • 開発者は地球規模で分散している • 開発者は多様(専門性、レベル、動機) • 顧客やユーザが積極的に参加 • 高いコストを掛けることはできない • 必ずしも明確な要求定義はない

  10. オープンなソフトウェアを支えるプロセス • 誰でもアクセスできる • 安価(無料) • 広くサポートされている • 導入のオーバヘッドや敷居が低い • 標準化されている • 簡単に拡張できる • 多様なプロジェクトに適応

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

  12. 導入したくてもできないプロセス • コストがかかる(値段/時間) • ベンダのいいなりになるしかない • 導入に精神的な反発が大きい • 周りでは誰も使っていない • ……

  13. 注目すべき三つのプロセス • Unified Process (UP)*1 • eXtreme Programming (XP)*2 • オープン・ソース・ソフトウェア・エンジニアリング*3 *1 ラショナル統一プロセス入門, クルーシュテン, 1999, ピアソン *2 eXtreme Programming explained, K. Beck, 2000, AWL *3 オープンソースソフトウェア, 倉骨訳, 1999, オライリー

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

  15. eXtreme Programming • オブジェクト指向コミュニティで育てられたノウハウの蓄積 • コミュニケーション重視 • オブジェクト指向のよさを最大限生かす • 小~中規模プロジェクト向き • よりインフォーマル

  16. 計画ゲーム 小さなリリース メタファ 単純さ最優先 テストが最初 リファクタリング ペア・プログラミング みんなで共有 いつも統合 週40時間作業 顧客同室 コーディング基準 XPのプラクティス

  17. オープン・ソース・ソフトウェア・エンジニアリングオープン・ソース・ソフトウェア・エンジニアリング • 多数の,多様な,分散した開発者 • 低コスト • 徹底的なレビュー • 現在はコーディング中心 • これからは?

  18. OSSEの主なツール • Email • CVS(分散構成管理) • Web • http://www.sourceforge.org/ • バグ・トラッキング • Chat • “熱意のある開発者”

  19. 現状のOOSEの問題点 • コミュニケーション => ○ • 知識管理 => ○ • 計画と見積もり => ??? • 分析/設計 => × • モデリング => × • アーキテクチャ => ……

  20. 現状のOOSEの問題点 • プログラミング => ○ • オブジェクト的なテクノロジは? • テスト/レビュー => ○ • 数千個の眼で • ドキュメント => △ • 必要なものは誰かが作る • ソース・コードがドキュメント

  21. 問題の原因 • スキルが一般的なものでない • UML、マネージメント … • ツールが高価、使いにくい • “ものが動く”喜びに直結しない • これらは一般的なプロジェクトにも共通する

  22. 解決 • オープンなプロセス • 標準 • メンタリング、トレーニング、コンサルティング • リソース • オープンなツール • コスト => 無償 • 適応性/拡張性 =>オープン・ソース • “動く”モデル

  23. IIOSSプロジェクト

  24. IIOSSプロジェクトのご紹介 • IntegratedInter-exchangeableObject-modeling andSimulationSystem • オブジェクト指向プロセス全体を統一的にサポートするツール(群)

  25. IIOSSプロジェクトの特徴 • オープン・ソース • UML • XMI / XML • Java • 複数のソフトウェア・ハウス/大学メンバの協同作業

  26. IIOSSプロジェクトのミッション • オープンなツール • オープンなプロセスをサポート • フリー(無料/自由) • 必要ならばコンサルティング/メンタリング/トレーニングを提供

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

  28. IIOSSの提供するプロセスとワークフロー • 要求 - UMLエディタ (ユースケース図など) • 設計 - UMLエディタ (クラス図など) • 設計の検証 - モデル・デバッガ • プロトタイピング - インタフェイス・ビルダ • 設計から実装へ - モデル・トランスレータ • 実装 - インタフェイス・ビルダ • 設計と実装の統合 - モデル・デバッガ

  29. プロセスとワークフロー

  30. Model Editing Facility • UMLグラフィカル・モデル・エディタ • UML1.1/XMI準拠 • based on Argo/UML (tigrisプロジェクト) • 運用図を除くすべてのダイアグラム • 静的な無矛盾性チェック • モデル要素間のハイパーリンク • ダイアグラムのグループ化 • UML1.3対応(予定) • SVG対応(予定)

  31. Model Editing Facility

  32. Model Debugging Facility • UMLモデル・デバッガ/シミュレータ • 振る舞い図のシミュレート • モデル・オブジェクトと実オブジェクト間のメッセージ交換 • リアルタイム/組み込みシステムへの対応(予定) • OCL(予定)

  33. Model Debugging Facility

  34. Format Conversion Facility • JavaとUMLモデル(XMI)との相互変換 • クラス図からJavaソースコード・スケルトンを生成 • Javaソースコードからクラス図を生成 • ラウンドトリップ(予定) • 他の言語への対応(予定) • ドキュメント生成(予定) • 振る舞い図からのコード生成(予定)

  35. Format Conversion Facility

  36. Interface Building Facility • インタフェイス・ビルダ • based on Korfe • ユーザ・インタフェイス - Swing • ネットワーク・インタフェイス • Java RMI • CORBA IDL • データベース・インタフェイス • JDBC (RDB) • ODMG (OODB)

  37. Interface Building Facility

  38. Database Facility • オブジェクト指向データベース • ODMG3.0 (現状では一部) • based on sO • バージョニング • XMLハンドリング • すべてのIIOSSツールにサービス提供 • ODMG3.0完全準拠(予定) • セキュリティ(予定) • 分散データベース(予定)

  39. Database Facility

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

  41. Integrated Development Environment

  42. IIOSSの将来 • メタ・モデル・エディタ • スクリプティング • CORBA/IIOPによるツールの分散・統合 • ソフトウェア・プロセスのサポート • モデル・コンポーネント • Precise UML • ……

  43. IIOSSの将来 • 最初のパブリック・リリース • その後,定期的にリリース予定 • どうぞ使ってみてください • どうぞ参加してください • 開発・改良・拡張 • ユーザとして

  44. オープンなプロセスとしてのIIOSS • 標準的でオープンなツール • Java, linux, XML, CVS, … • 分散開発 • 沖縄、博多、愛媛、湘南、東京 • 多様なメンバ • 他のプロジェクトの成果を利用 • 連携には難しい点がある • 品質 ー これから

  45. 最後に • IIOSSコンソーシアム • info@iioss.org • 03-5804-3987 • http://www.iioss.org/ • IIOSSプロジェクトは情報処理振興事業協会(IPA)が推進する「ビジネスオブジェクト関連システム開発事業」の一環として行われております

More Related