Date: Sat, 20 Sep 1997 19:54:43 +0900
From: Java Conference
Subject: JavaGrandprix:予選通過通知

1997年9月20日
中所 武司、松本 光由 殿
                                     Javaに関する技術・応用・表現大賞'97
                                      審査委員会  委員長      井田 昌之
                                                  技術部門長  松岡 聡
Java大賞'97技術部門への応募、真にありがとうございます。
さて、貴殿の応募作品である

        TI2950 M-base:モデリング&シミュレーションツール
        
は、厳正な審査の上、技術部門の予選を見事に通過されました。

M-base:モデリング&シミュレーションツール
TI2950
中所 武司,松本 光由
明治大学 理工学部 情報科学科
??@??.jp


1.応募の技術的主張の概要

 業務の専門家が自ら業務モデルを構築することがそのまま情報システムの構築につながるような分散オブジェクト指向設計技法を開発した.本技法では,このようなエンドユ−ザコンピュ−ティング実現のために,プログラミングの概念を排した新しいパラダイムとして,
 ・A domain model ≡ a computation model (業務モデルと計算モデルの一致)
 ・Analysis ≡ design ≡ programming (分析,設計,プログラミングの一体化)
という基本コンセプトを設定している.現在,ワークフローシステムやグループウェアに代表される分散オフィスシステムを本技法に基づいてエンドユーザ主導で開発するための開発環境M-baseを研究開発している.今回,その主要ツールとして,モデリング&シミュレーションツールとスクリプト言語の処理系をJava言語を用いて開発した.

 モデリング&シミュレーションツールは,オブジェクト指向概念に基づく分散協調型モデルを用いて業務モデルの動的ふるまいを表現するものである.アイコン操作を基本としたビジュアルな機能を用いて,外部インタフェース,オブジェクト間の動的なふるまい,個々のオブジェクトの内部処理の順にモデリングを行ない,その基本的な動作をシミュレーションによって確認することにより,エンドユーザ主導の開発を可能にしている.

 スクリプト言語では,Java言語サブセットを基本としながらメッセージの送受信方式に特徴を持たせた.すなわち,オブジェクト間の協調作業のための業務の委託方法に柔軟性を持たせるために,オブジェクト間の交信は複数のメッセージの列からなるメッセージセット単位で行う方式を考案した.本機能により,本来メッセージの流れを管理する立場のオブジェクトがそのメッセージの流れ全体をメッセージセットとして指定することができるようになった.さらに,オブジェクトをネットワーク上の任意のノードで稼働させる機能をもたせ,分散システムの構築を容易にしている.

 これらのツールは一体化して利用でき,ビジュアルなモデリングによってスクリプト言語プログラムの大半を自動生成できるようにしている.


2. 応募の背景

2.1.対象ユーザ

 一般に,エンドユーザの範囲は広いが,本システムでは,ユーザ企業のエンドユーザ部門に所属する基幹業務担当者および一般にオフィスワーカーといわれるような人達を対象とする.特に後者は,業務の専門家としてDB検索や表計算などの市販のアプリケーションパッケージを利用している人達で,今後急速に増加すると思われる.このような人達が利用するアプリケーションおよびその開発のために自ら用いる開発環境はマルチプラットフォーム対応の必要があるが,本システムでは開発環境も実行環境もJavaで作成することでそれを実現している.

2.2.対象ソフトウェア

 本システムでは,「すべての日常的な業務をコンピュータ化する」,即ち,「日常的業務はマニュアル化でき,マニュアル化できればコンピュータ化できる」という観点から,オフィスの業務に用いるグループウェアやワークフローシステムなどの分散システムを対象とする.規模的には,中,小規模のアプリケーションソフトウエアを想定することになるが,ネットワーク接続するによりシステムとしては大規模化することもある.なお,分散したオブジェクト間の通信にはRMIを用いる.

2.3.開発・保守形態

 本システムでは,エンドユーザが自ら開発・保守を担当するという観点から,最初に問題領域の業務モデルを作成し,そのモデル上でシミュレーションしてモデルの妥当性を検証した後,実用に際しては,そのモデルをインタプリタにより実行するか,あるいは必要に応じて実際のプログラムを自動生成するという方法をとる.本システムで対象とするアプリケーションは利用開始後も頻繁に変更されることを想定しているので,特にクライアント側のプログラムをインターネット経由で簡単にダウンロードできることが望ましいが,それにはJavaが適している.

3. 応募の構成・新規性・有用性

3.1.モデリングプロセスの概要

 今後増加していくと思われるエンドユーザコンピュ−ティングの分野に分散オブジェクト指向設計技法を適用するためには,モデリングの初期の段階で,従来の技法であまり明確に示されていないオブジェクト群の動的な振舞いを記述することが重要である.我々は,図1に示すように,インスタンスの振舞いをベースにした分析モデルOAM(Object-based Analysis Model)とクラス定義をベースとした設計モデルCDM(Class-based Design Model)の2段階のモデリングプロセスを導入して,1.で述べた基本的コンセプトを実現した.

図1
図1: M-baseのモデリングプロセス

3.2.開発環境の概要

 M-baseの開発環境とアプリケーション・アーキテクチャの関係を図2に示す.

図2
図2: M-baseの開発環境(外側)とアプリケーション・アーキテクチャ(内側)

 開発環境は主に次のような構成要素からなる. これらのツールを用いて開発されるアプリケーションは大まかには次の3つの部分から 構成される

 モデルはアプリケーションに固有の処理を行う本体である.動的モデル(ドメインモデル)に対応するOAMの部分をモデリング&シミュレーションツールを用いて作成する.静的モデル(設計モデル)に対応するCDMの部分をスクリプト言語を用いて作成する.

 ユーザインタフェースはそのアプリケーションのユーザとの対話処理部分であり,モデルと独立させることにより,クライアント/サーバシステムや3層アーキテクチャなどのシステム構成,およびクライアント端末のマルチプラットフォーム化が容易になる.その構築ツールとしてUIビルダがある.

 コンポーネントウェアには分野に共通の基本部品と特定業務分野向きの部品がある.後者が充実してくるとエンドユーザによるアプリケーション構築が容易になる.このようなコンポーネント化を支援するためにコンポーネントビルダを用意する.共通プラットフォームはミドルウェアと基本ソフトウェアの部分で,オープンシステムや部品の流通の観点からは特に分散オブジェクト管理機能が重要である.

3.3.モデリング&シミュレーションツールの概要

 モデリング&シミュレーションツールは,主にマウス操作により動的モデルを構築するツールである.動的モデルは,オブジェクトとメッセージパッシングで構成される.システムの動的モデルをアイコン表示などで視覚的に判りやすく表し,かつ,オブジェクト指向の概念を素直に表現できるようにしている.

 既存のビジュアルプログラミングツールでも,オブジェクト間をリンクで結んでアプリケーションを構築していくものがある.しかし,これらのツールでは データベースからデータを検索し,その結果の表を作成したり,さらにそれをグラフ表示するといった典型的な処理には向いているが,非定型の業務をモデル化の段階から支援してアプリケーションを構築するようにはなっていない.

 我々が開発したツールでは,オブジェクト指向概念に基づく分散協調型モデルを用いて業務モデルの動的な振舞いを表現できるようにした.


4. 応募システムの実行例

 本システムで目標としているエンドユーザ自身による開発,保守の例題として,次のような会議開催業務を自動化するアプリケーションを想定し,実際の開発手順にしたがってモデリング&シミュレーション技法を説明する.

■ 事 例 : 会議開催システム ■

 会議開催システムは,グループウェアの代表的なアプリケーションパッケージであるスケジューリングシステムの一種であると考えて良い.ここで想定する主な機能は,事務局に会議開催の指示が出されると,事務局はその会議のために会議室の予約とOHPなどの備品の予約を行なうと共に,会議開催通知を出席者に送り,出欠の返事を返してもらうというものである.

4.1.外部仕様の作成

 まずはじめにシステムの利用方法を明確にするために,OOSEなどに見られる手法と同様の一般的な手法をとる.すなわち,システムの利用者(アクタ)を抽出し,各々の外部入力から開始される機能概要(ユースケース)を記述する.

 会議開催システムでは,会議開催者と会議参加者が利用者であり,会議の予約,変更,取消の機能が存在し,それぞれの機能概要を記述することになる.また,入出力メッセージについては,会議の予約を例にとると「会議室名と日時を指定する」といったものになる.

4.2.動的モデルの作成

 次に,各シナリオに対するシステムの動的な振舞い,即ち,インスタンスベースのメッセージのやりとりをモデリングしていく.個々の業務を擬人化した各々のオブジェクトに1つずつ割り当てることにより,メタファベースのモデル化を行う.実世界と同じように一つのオブジェクトに複数の業務を割り当てることも可能であるが,柔軟性と保守性を重視して「1オブジェクト1業務」の割り当てを原則とした.

 この事例では,事務局オブジェクト,会議室管理オブジェクト,備品管理オブジェクト,個人オブジェクトという4種類のオブジェクトを導入した.図3に示すように,これらのオブジェクトをアイコンにより表示し,メッセージをアイコン間を結んでいる線により表示している.また,メッセージに付けられている番号はメッセージパッシングされる順番を示している.この順番はメッセージ変換列を表現するために用いる.これに基づき,直列や並列の処理を表現し,スクリプト言語のメッセージセットを生成する.

図3
図3: 動的モデルの作成画面

4.3.オブジェクトの詳細化

 基本的には,図4に示すようなウィンドウを用いて,メンバの決定,メソッドの意味定義の記述,メソッド内部のスクリプティングの3ステップでオブジェクトの詳細を決めていく.特にメソッドの意味定義は,エンドユーザがシミュレーションによる動作確認を行なう時に有用である.

図4
図4: オブジェクトの詳細化

4.4.シミュレーション

 シミュレーションは,作成した業務フローの基本的な動作の確認のために行なう.このシミュレーション時にメソッドが起動されるたびにメソッドの意味定義を表示することで,視覚的にわかりやすくなる.システムが動作を開始すると,起動されたメソッドの定義内容が事象トレース図上に表示されていくので,オブジェクト間通信の全体のシーケンスを見渡すことが可能である.図5がその例であり,事務局オブジェクトの会議の予約の処理の中で,会議室管理オブジェクトと,備品管理オブジェクトにメッセージを送り,現在,備品の予約処理を行なっているところである.実行済みの業務フローは,太い線で表示する.

 モデリング段階で作成されたオブジェクトとメッセージ変換列から自動生成されたスクリプトはインタプリタにより実行され,その途中経過が視覚的に表示されている.このインタプリタはモデリング&シミュレーションツールと独立して動作するので,アプリケーション運用時はインタプリタのみの実行になる.

図5
図5: イベントトレース図を用いたシミュレーション画面


5. まとめ

 「モデリング&シミュレーション」を支援するアプリケーション開発環境のツールをJavaを用いて実現し,業務の動的な振舞いをモデリングすることでアプリケーションを構築することが実現可能であることを確認した.


参考文献

[1]
松本光由,小西裕治,中所武司 「「ドメインモデル≡計算モデル」を志向したアプリケーションソフトウエア開発環境M-baseにおける分析・設計技法」,情報処理学会オブジェクト指向'97シンポジウム,オブジェクト指向最前線,朝倉書店,128-135 (July 1997)
[2]
松本光由,中所武司「「ドメインモデル≡計算モデル」を志向したアプリケーションソフトウエア開発環境M-baseにおけるモデリング&シミュレーション技法」 情報処理学会ウィンターワークショップ・イン・松山(Jan. 1997)
[3]
T. CHUSHO, Y. KONISHI and M. YOSHIOKA. " M-base : An Application Development Environment for End-user Computing based on Message Flow", APSEC'96, IEEE Computer Society (Dec. 1996)
[4]
小西,中所 「分散協調型アプリケーションのためのオブジェクト指向分析・設計言語Hoopの設計とその記述実験」 情報処理学会オブジェクト指向'96シンポジウム pp.87-94(July 1996)
[5]
中所,小西,濱,吉岡 「「ドメインモデル≡計算モデル」を志向したアプリケーションソフトウエア開発環境M-baseの開発技法」 情報処理学会ソフトウェア工学研究会資料 95-SE-109, 109-2, pp.9-16(May 1996)
[6]
小西,中所 「オブジェクト指向分析・設計言語Hoopにおける分散協調型モデルの表現方法」 ソフトウェア科学会第12回大会論文集,pp.197-200 (Sep. 1995)
[7]
中所 「M-base:「ドメインモデル≡計算モデル」を志向したアプリケーションソフトウエア開発環境の基本概念」 情報処理学会ソフトウェア工学研究会資料,95-SE-104, 104-4, pp.25-32(May 1995)