メッセージフローモデルに基づく エンドユーザ主導型

― 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