― 2000年度修士論文発表会 ― メッセージフローモデルに基づく エンドユーザ主導型アプリケーション 構築・検証技法の実現と評価 石榑 久嗣 明治大学大学院 理工学研究科 基礎理工学専攻 [email protected] 2001年2月23日 1 本発表の構成 前半 研究の背景と目的 モデリングプロセスの概要 適用事例 後半 主要な技術課題とその解決方法 再利用技術に基づく開発 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 2 はじめに 背景 インターネットやイントラネットの急速な普及 オフィス業務のコンピュータ化の促進 情報処理の専門家を中心としたシステム開発 問題点 小さな部門、個人の業務、頻繁に機能変更が 発生するものには従来の開発方法は適さない メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 3 研究の目的と対象 研究の目的 対象ユーザ 市販のパッケージソフトを利用している業務の専門家 対象ソフトウェア エンドユーザ主導のアプリケーション開発の実現 オフィスなどにおける小規模な業務アプリケーション 開発・保守形態 モデリング&シミュレーションによる開発 開発はSEの支援を受けるが保守はエンドユーザのみ メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 4 M-baseにおける モデリングプロセスの概要 1. 業務仕様の詳細化 システム利用者とユースケースの抽出 2. ドメインモデルの作成 メッセージフローに基づく業務モデルの定義 3. ユーザインタフェースの構築 UI自動生成および遷移図による要求検証 4. シミュレーション実行による検証 作成したドメインモデルの妥当性を検証 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 5 適用事例 例題 情報処理学会ソフトウェア工学研究会要求工 学ワーキンググループで共通問題とされてい る「国際会議のプログラム委員長の業務」 概要 国際会議のスケジュール決定、CFPの作成・ 配布、プログラム委員の選出、投稿論文管理 などの業務を支援するシステムの開発 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 6 (1)業務仕様の詳細化 スケジュール決定 開催日を入力することにより、過去の同様の 国際会議の経験的データから原案を自動生 成し、これを修正してスケジュールを決める。 CFP作成 原本となるホームページ掲載版は、表示の雛 型を用意し、各項目に順に入力することで作 成する。次にこれを用いてメーリングリスト利 用版とポスター版を自動生成する。 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 7 (2)ドメインモデルの作成 ―オブジェクトとメッセージの抽出― <スケジュール決定> <CFP作成・配布> <プログラム委員選出> <投稿論文登録> メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 8 (2)ドメインモデルの作成 ―コンポーネント内部の詳細化― メソッド プロパティ 処理内容 を詳細化 実行スクリプト メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 9 (3)ユーザインタフェース構築 特徴 入出力情報をもとに UIを自動生成 モデルとの連携処理 部分も生成 必要に応じてカスタ マイズ可能 <自動生成されたUIの例> メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 10 (4)シミュレーション検証 ステップ実行によりモデルの動作確認を行う 制御 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 11 主要な技術課題 フロー分岐の記述方法 簡素で柔軟な業務フロー定義が必要 シミュレーション検証 厳密でわかりやすい検証が必要 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 12 フロー分岐の記述方法 ―従来方式― 分岐記述の必要性 フローが実行時に決定する場合 A ? B ? M-baseにおける従来の記述方法 C D スクリプト言語を用いる方法 [松本97] ビジュアルな制御部品を用いる方法 [岩田98] メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 13 フロー分岐の記述方法 ―スクリプト言語による方法― 記述例(CFP作成:書類受理メソッド) public 書類受理(CFP) { [ (作業継続==true && 印刷の有無==true) [印刷.印刷(CFP), this.印刷終了通知()], (作業継続==true && 印刷の有無==false) [CFP配布.配布(CFP), メール送信.送信()] ]; } 複雑な処理を記述できるが習得が難しい メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 14 フロー分岐の記述方法 ―ビジュアルな制御部品による方法― 記述例(CFP作成:書類受理メソッド) わかりやすいが修正に負担がかかる メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 15 フロー分岐の記述方法 ―ルールを用いた解決法― 解決方法 ルール構成 フロー分岐のためのルールを記述する 条件部(プロパティ値による論理演算の組合 せ) 行動部(次に送信するメッセージ名) ルール記述単位 オブジェクトのメソッド単位で記述 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 16 フロー分岐の記述方法 ―ルール記述例― 記述例(CFP作成:書類受理メソッド) (1)作業継続=false ならば 実行終了 (2)印刷の有無=true ならば 印刷依頼 (3)印刷の有無=false ならば CFP配布依頼 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 17 フロー分岐の記述方法 ―ルールエディタによる記述支援― エディタを用いたルールの編集例 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 18 フロー分岐の記述方法 ―ルールに関する考察― ルール方式の利点 ルールの追加、削除、変更が容易 直感的にわかりやすく保守にも有効 局所的な例外処理を組み込むことが可能 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 19 主要な技術課題 フロー分岐の記述方法 簡素で柔軟な業務フロー定義が必要 シミュレーション検証 厳密でわかりやすい検証が必要 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 20 シミュレーション検証 ―3種類の図式表現の併用― コラボレーション図 シーケンス図 作成したモデル上で業務フローを確認 メソッドの処理内容を時系列で確認 プロパティシート 新規追加 実際の値を表示する厳密な確認 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 21 シミュレーション検証 ―コラボレーション図― 特徴 作成したモデル図上で 業務フローの確認を行 える 並行処理を表現するの に優れている 問題点 個々のオブジェクトの処 理内容は確認できない メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 22 シミュレーション検証 ―シーケンス図― 特徴 コンポーネント間のメッ セージの送受信と個々 のオブジェクトの処理 内容を時系列で確認 問題点 厳密な確認は行えない メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 23 シミュレーション検証 ―プロパティシート― 特徴 オブジェクトプロパティの 実際の値を表示 変数の値は動的に変更 することが可能 UIとモデルの整合性、ス クリプトの妥当性、ルー ルの妥当性など厳密な 検証が可能 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 24 再利用に基づく開発 コンポーネントによる再利用 コンポーネント組合せによる再帰的開発 パターンによる再利用 モデル構築のノウハウをパターン化 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 25 コンポーネントによる再利用 ―コンポーネントの分類― ユ ー ザ 大 の 負 担 小 ユーザ定義部品 スケジュール決定 テンプレート部品 特定分野部品 投稿論文管理 狭い スケジュール表 基本部品 メール送信 広い 適用範囲 このような異なる性質を持つコンポーネント群を 統一的に扱うエンドユーザ向きの枠組みが必要 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 26 コンポーネントによる再利用 ―コンポーネントモデルの定義― UML1.3記法に基づくクラス図 (1)~(3) UML1.3 モデルの特徴 * Message 1 ComponentEdito r (2) 1 1 MbaseComponent CompositeComp (1) * Property 1 LeafComp * Method 1 * Service * Rule (3) メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 27 コンポーネントによる再利用 ―コンポーネントモデルの特徴― 1. コンポーネントの階層化 部品組合せによる再帰的な開発を実現 2. 専用カスタマイザによる設定変更 様々な部品のカスタマイズを実現 3. 提供するサービスの抽象化 既存プログラムのラッピングを実現 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 28 再利用に基づく開発 コンポーネントによる再利用 コンポーネント組合せによる再帰的開発 パターンによる再利用 モデル構築のノウハウをパターン化 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 29 パターンによる再利用 ―パターンの分類― 本研究におけるパターン ドメインモデルを作成する際に発生する典型 的な問題とその解決方法 パターンの分類 コンポーネント抽出に関するパターン メッセージパッシングに関するパターン コンポーネント接続に関するパターン メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 30 パターンによる再利用 ―パターンの抽出― コンポーネント抽出に関するパターン メッセージパッシングに関するパターン 適切な粒度でのコンポーネント抽出 (例)データ管理、受付… 業務フローの実行順序の制御 (例)分岐、繰返し、並行… コンポーネント接続に関するパターン コンポーネント連携による複合的サービスの提供 (例)データ管理+メール送信→登録通知 (例)受付+データ管理→2層システム メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 31 パターンによる再利用 ―既存パターンとの比較― アーキテクチャパターン[Buschmann98] デザインパターン[Gamma94] 本パターンは、固定されたアーキテクチャ上でのモデル 構築の指針であるため、性質の異なるものである。 パターンの分類方法は似ているが、本パターンは柔軟 な開発を実現するものでなく、実世界の業務をドメイン モデルに変換するためのノウハウである点が異なる。 アナリシスパターン[Fowler96] 業務の専門家を対象としているため最も近いが、本パ ターンはデータを中心とした静的な概念モデリングだけ ではなく、動的側面も考慮している点が異なる。 メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 32 おわりに エンドユーザ主導型開発技法 ルールを用いたフロー分岐記述 3種類の図式表現を併用したモデル検証 コンポーネントとパターンによる再利用 プロトタイプの実装 プログラム言語(Java2 Standard Edition) スクリプト言語(Pnuts1.0) プログラムサイズ(240クラス 23,300ステップ) メッセージフローモデルに基づくエンドユーザ主導型アプリケーション構築・検証技法の実現と評価 33
© Copyright 2024 ExpyDoc