(57)【要約】      （修正有）【課題】プロセスモデリングの効率を向上させることができるプロセスモデル作成システム、方法及びそのプログラムを提供する。【解決手段】コンピュータは、所定の業務における複数のプロセス図を組み合わせていくことにより統合プロセス図に統合されるように構成された多重ツリーと、プロセス図に対してそれぞれ異なる生成処理を行うためのルール定義情報１２４とをデータベース３００に記憶し、データベース３００に記憶された多重ツリー及びルール定義情報１２４のうち少なくとも一つのプロセス図とルール定義情報１２４がユーザインタフェース部２００によって選択されると、選択されたプロセス図及びルール定義情報１２４に基づきプロセス図を作成する。【選択図】図１５
2008276394.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて所定の業務におけるプロセスモデルを作成するプロセスモデル作成システムであって、
前記コンピュータは、
情報入力手段と、
前記業務における複数のプロセスモデルのそれぞれを組み合わせていくことにより一つのプロセスモデルに統合するように構成されたプロセスモデル体系と、プロセスモデルに対してそれぞれ異なる生成処理を行うための複数の生成情報とを記憶する記憶手段と、
プロセスモデルを作成する際に、記憶手段に記憶されたプロセスモデル体系及び各生成情報のうち情報入力手段によって選択された少なくとも一つのプロセスモデルと生成情報に基づきプロセスモデルを作成する作成手段とを備える
ことを特徴とするプロセスモデル作成システム。
【請求項２】
前記作成手段は、
作成されるプロセスモデルにおけるプロセスの有無を表す有無情報を、情報入力手段によって選択された少なくとも一つのプロセスモデルと生成情報に基づいて生成し、生成された有無情報に基づきプロセスモデルを作成する
ことを特徴とする請求項１記載のプロセスモデル作成システム。
【請求項３】
前記作成手段は、
作成されるプロセスモデルにおけるプロセス間の遷移を表す遷移情報を、情報入力手段によって選択された少なくとも一つのプロセスモデルと生成情報に基づいて生成し、生成された遷移情報に基づきプロセスモデルを作成する
ことを特徴とする請求項１または２記載のプロセスモデル作成システム。
【請求項４】
前記コンピュータは、
記憶手段に記憶されたプロセスモデル体系のうち情報入力手段によって選択されたプロセスモデルを表示するとともに、表示されたプロセスモデルの基となる単位プロセスモデルと、該単位プロセスモデルの表示レベルとが情報入力手段によって選択されると、選択された単位プロセスモデル及びその表示レベルに基づき該プロセスモデルの表示態様を変更する表示手段を備える
ことを特徴とする請求項１、２または３記載のプロセスモデル作成システム。
【請求項５】
コンピュータを用いて所定の業務におけるプロセスモデルを作成するプロセスモデル作成方法であって、
前記コンピュータは、
所定の業務における複数のプロセスモデルのそれぞれを組み合わせていくことにより一つのプロセスモデルに統合するように構成されたプロセスモデル体系と、プロセスモデルに対してそれぞれ異なる生成処理を行うための複数の生成情報とを所定の記憶部に記憶し、
記憶部に記憶されたプロセスモデル体系及び各生成情報のうち少なくとも一つのプロセスモデルと生成情報が所定の情報入力部によって選択されると、選択されたプロセスモデル及び生成情報に基づきプロセスモデルを作成する
ことを特徴とするプロセスモデル作成方法。
【請求項６】
前記コンピュータは、
作成されるプロセスモデルにおけるプロセスの有無を表す有無情報を、前記情報入力部によって選択された少なくとも一つのプロセスモデルと生成情報に基づいて生成し、生成された有無情報に基づきプロセスモデルを作成する
ことを特徴とする請求項５記載のプロセスモデル作成方法。
【請求項７】
前記コンピュータは、
作成されるプロセスモデルにおけるプロセス間の遷移を表す遷移情報を、前記情報入力部によって選択された少なくとも一つのプロセスモデルと生成情報に基づいて生成し、生成された遷移情報に基づきプロセスモデルを作成する
ことを特徴とする請求項５または６記載のプロセスモデル作成方法。
【請求項８】
前記コンピュータは、
前記記憶部に記憶されたプロセスモデル体系のうち前記情報入力部によって選択されたプロセスモデルを所定の表示部に表示するとともに、表示されたプロセスモデルの基となる単位プロセスモデルと、該単位プロセスモデルの表示レベルとが該情報入力部によって選択されると、選択された単位プロセスモデル及びその表示レベルに基づき該プロセスモデルの表示態様を変更する
ことを特徴とする請求項５、６または７記載のプロセスモデル作成方法。
【請求項９】
請求項５乃至８何れか１項記載の方法をコンピュータに実行させるためのプロセスモデル作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフローマネジメントシステム（ＷＦＭＳ）の処理内容（プロセス）を定義するシステム、方法及びそのプログラム技術に関する。
【背景技術】
【０００２】
ワークフローマネジメントシステム（ＷＦＭＳ）とは、ワークフロー図に表された処理内容（プロセス）の順序に基づきプロセス制御を行うミドルウェアを指す。ＷＦＭＳについては非特許文献１に詳しく説明されている。
【０００３】
ＷＦＭＳに提供されるビジネスプロセスは、一般的に、ワークフロー図等の形態で表されたプロセスモデルをグラフィカルに作成・編集可能に構成された開発環境を用いて定義される。近年、複数の開発環境がワークフロー定義ツールまたはプロセス定義ツールとしてリリースされており、市販パッケージやフリーソフトとして容易に入手できるようになっている。特に、米国非営利団体ＢＰＭＩ（Business Process Management Initiative）において定められた標準仕様「ＢＰＭＮ  １．０」（ＢＰＭＮは、Business Process Modeling Notation（ビジネスプロセス・モデリング表記法）の略）では、ワークフロー図等のプロセスモデルの表記法が統一されているだけではなく、ソフトウェア開発の知識を持たないユーザでもワークフロー図を容易に理解・作成可能となっており、この仕様は、現在リリースされている殆どの開発環境に採用されている。
【０００４】
上記のようにプロセスモデルの表記法から技術色を除去しようとする背景には、「業務知識を豊富に有する当該業務従事者であれば、ビジネスプロセスの考察・検討を理想的に行うことができ、その結果を電子データ化する手段を提供しさえすれば、開発工程上の問題が解決する」という思想がある。そして、この思想が一般に広く受け入れられたため、ＷＦＭＳ及びワークフロー定義ツール等の開発環境は、業務システムを短時間且つ柔軟に作成・変更可能なものとして位置づけられている。
【非特許文献１】David Hollingsworth,“Workflow Reference Model (Issue 1.1)”, The Workflow Management Coalition Specification WfMC-TC-1003, Workflow Management Coalition, 19 Jan 95
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ワークフロー図は、処理の前後関係が図によって表示されることにより、場合分けや、並行実行による分岐・合流のイメージを容易に把握することができるというメリットを有しているが、同時に以下のデメリットも有している。
【０００６】
(1)記述された情報量を表示するのに必要な面積が、プログラム言語や自然言語等の文字表記に比べて大きい。
【０００７】
(2)プログラム言語のような抽象化のしくみや自然言語のような概念化の能力が貧弱であるため、複雑な内容を表現することができない。
【０００８】
これらのデメリットは、実用的なビジネスプロセスを定義しようとした場合に、成果物の品質の低下という形で開発工程全体に以下のような悪影響を及ぼす。
【０００９】
まず、第一の問題として、業務の全体的なプロセスを記述しようとすると、ワークフロー図が際限なく大きくなってしまうことが挙げられる。
【００１０】
この問題の対応策として、業務上の状態の一定のまとまり毎に別々のフロー図を作成することが考えられる。例えば、業務を開始するときの条件がＸ＝ｘ１、Ｙ＝ｙ１の場合のフローと、業務条件がＸ＝ｘ１、Ｙ＝ｙ２の場合のフローとをそれぞれ分けて作成する。しかし、この場合には、互いに類似する部分が各フロー図のそれぞれに含まれることが、しばしば発生する。
【００１１】
次に、第二の問題として、業務上の状態の一定のまとまり毎に別々のフロー図を作成した場合には、類似したフロー図のバリエーションが多くなることにより、記述が冗長化することが挙げられる。
【００１２】
この問題の対応策として、複数のフロー図に散逸した冗長なフロー情報を一箇所にまとめることが考えられる。例えば、上記の例において業務条件Ｙの内容に関係しない部分をサブフローとして別途定義し、これを共通的に呼び出すようにすることが考えられる。しかし、例えば業務条件Ｚの内容によって処理の有無や処理の種類が変わる場合等のように、業務条件Ｙの内容に関係しない部分が完全に一致せず、差異が生じる場合がしばしば発生する。また、業務条件Ｙの内容に関係しない部分が業務条件Ｙの内容に関係する部分によって分断されることにより、冗長なフロー情報が一つにまとまらない場合がしばしば発生する。
【００１３】
さらに、第三の問題として、複数のフロー図に散逸した冗長なフロー情報を一箇所にまとめた場合に、冗長なフロー情報をサブフローとして定義することができず、処理を抽象化（モジュール化）することができないことが挙げられる。
【００１４】
これらの三つの問題は、実際の開発工程において、以下の二つの現象として顕在化する。
【００１５】
(1)表示における理解のしやすさが低下する。
【００１６】
(2)作成・編集における操作の手数が増大することにより、思考が分断される。
【００１７】
これらの現象は、ユーザがプロセスについて試行錯誤的に考察を加え、内容を検証しながら定義を行う作業（プロセスモデリング）において大きな障害となる。つまり、フロー図の表面的な正確さという観点よりも、元々の設計意図自体が論理的に矛盾するか否かという本質的な妥当性の観点において品質が低下することにより、最終的には開発工程全体に悪影響を及ぼす。
【００１８】
以上のように、ＢＰＭＮを用いて考察・検討可能な処理の複雑度は極めて限定されており、例え業務知識を豊富に持っていたとしても、依然として開発工程上の問題が解決しないことは明らかである。つまり、ＢＰＭＮの思想の根拠であるプロセス表記形式の普及度に起因する問題は実際のところ表面的なものであり、プロセスに対するモデリング操作やブラウジング手段に起因する問題の方が本質的に重要な位置を占めると考えられる。
【００１９】
本来、プロセス開発環境には、プロセス定義データの作成・編集を支援するエディタとしてではなく、プロセスモデリングそのものを支援する環境としての役割が期待される。このような意味において、ＢＰＭＮ仕様や、現在市場に存在する定義ツールの能力は不十分である。
【００２０】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、プロセスモデリングの効率を向上させることができるプロセスモデル作成システム、方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明のプロセスモデル作成システムは、前記目的を達成するために、コンピュータを用いて所定の業務におけるプロセスモデルを作成するプロセスモデル作成システムであって、前記コンピュータは、情報入力手段と、前記業務における複数のプロセスモデルのそれぞれを組み合わせていくことにより一つのプロセスモデルに統合するように構成されたプロセスモデル体系と、プロセスモデルに対してそれぞれ異なる生成処理を行うための複数の生成情報とを記憶する記憶手段と、プロセスモデルを作成する際に、記憶手段に記憶されたプロセスモデル体系及び各生成情報のうち情報入力手段によって選択された少なくとも一つのプロセスモデルと生成情報に基づきプロセスモデルを作成する作成手段とを備えている。
【００２２】
また、本発明のプロセスモデル作成方法は、前記目的を達成するために、コンピュータを用いて所定の業務におけるプロセスモデルを作成するプロセスモデル作成方法であって、前記コンピュータは、所定の業務における複数のプロセスモデルのそれぞれを組み合わせていくことにより一つのプロセスモデルに統合するように構成されたプロセスモデル体系と、プロセスモデルに対してそれぞれ異なる生成処理を行うための複数の生成情報とを所定の記憶部に記憶し、記憶部に記憶されたプロセスモデル体系及び各生成情報のうち少なくとも一つのプロセスモデルと生成情報が所定の情報入力部によって選択されると、選択されたプロセスモデル及び生成情報に基づきプロセスモデルを作成している。
【００２３】
さらに、本発明のプロセスモデル作成プログラムは、前記目的を達成するために、前記プロセスモデル作成方法をコンピュータに実行させる。
【００２４】
これにより、記憶手段に記憶されたプロセスモデル体系及び各生成情報のうち少なくとも一つのプロセスモデルと生成情報を選択することによりプロセスモデルを作成することが可能となる。
【発明の効果】
【００２５】
本発明のプロセスモデル作成システム、方法及びそのプログラムによれば、記憶手段に記憶されたプロセスモデル体系及び各生成情報のうち少なくとも一つのプロセスモデルと生成情報を選択することによりプロセスモデルを作成することができるので、プロセスモデルを自動生成することができ、プロセスモデルの作成者の属人性を排除することができるとともに、プロセスモデルの作成における作業時間及び作業量を低減することができる。従って、プロセスモデリングの効率を向上させることができるとともに、体系的で一貫性のある柔軟なモデリング環境を実現することができる。
【発明を実施するための最良の形態】
【００２６】
以下に図面を参照して本発明の一実施形態を説明する。
【００２７】
＜用語定義（フロー図と状態遷移図の一般化）＞
ワークフロー図の一例として、ビジネスプロセス図を図１（ａ）に、業務フロー図を図１（ｂ）にそれぞれ示す。また、状態遷移表の一例を図２（ａ）に、状態遷移図の一例を図２（ｂ）にそれぞれ示す。状態遷移図とワークフロー図の表面上の違いは以下のとおりである。
【００２８】
(1)状態遷移図にはループが正常系として存在するが、ワークフロー図には存在しない。
【００２９】
(2)状態遷移図にはスレッド（トークン）が１つのみ存在するが、ワークフロー図には複数存在する。
【００３０】
(3)状態遷移図には条件分岐が通常の記述に存在しないが、ワークフロー図には存在する。
【００３１】
これらを考慮すると、ワークフロー図と状態遷移図及び状態遷移表との対応付けは、図３のように示される。
【００３２】
なお、本実施形態では、図４に示すように、ワークフロー図、状態遷移図及び状態遷移表等のプロセスモデルを総称してプロセス図10と呼ぶ。また、ワークフロー図における点要素（アクティビティ）や状態遷移図における状態ノード等のプロセスを、総称してステイトと呼ぶ。
【００３３】
本実施形態におけるプロセスモデリングは、対象業務に関するフロー情報（通常であれば複数のプロセス図に分けて記述される内容）を全て含む統合プロセス図20を、開発環境の内部表現データとして作成・保持することで実現される。モデリング作業において必要なフロー図の表示・編集・修正といった処理は、統合プロセス図20に対して行われる。
【００３４】
統合プロセス図20は、簡素化された複数のプロセス図を組み合わせることにより構成される。本実施形態では、この組み合わせ処理を「合成」と称し、合成操作における原材料／成果物の組み合わせ関係を記憶するようになっている。
【００３５】
なお、合成操作における原材料／成果物について、本実施形態では、図５に示すように原材料として用いられるプロセス図を要素プロセス図11、成果物として生成されるプロセス図を合成プロセス図12と称し、これらの組み合わせ関係は、図６のように示される。
【００３６】
また、合成プロセス図12を原材料としてさらに合成操作を行うことができる。この合成操作を繰り返してより複雑なプロセス図を作成していく過程を記憶することで、図７に示すように各プロセス図20,21,22の依存関係を表すプロセスモデル体系としての多重ツリーが構成される。ここで、多重ツリーにおける根、枝及び葉のそれぞれに対応するプロセス図を、統合プロセス図20、中間プロセス図21及び単位プロセス図22と称する。
【００３７】
多重ツリーのノード（ルート、ブランチ、リーフ）に対応する各プロセス図20,21,22については、各プロセス図20,21,22におけるステイトの有無に関する情報が多次元配列として内部表現される。ここで、多次元配列の各軸は、該多次元配列に対応するノード（プロセス図）のサブツリーのリーフに対応する単位プロセス図22のステイト集合によって表される。即ち、多重ツリー上の任意のプロセス図に含まれるステイト集合は、該プロセス図のサブツリーのリーフに相当する単位プロセス図22に含まれるステイト集合の直積に対応する。
【００３８】
また、各プロセス図20,21,22におけるステイト間の遷移を表す情報（遷移リンクの有無に関する情報であり、以下「遷移情報」という。）は、前記多次元配列を二乗した大きさの配列として内部表現される。プロセス図の遷移情報は、ステイトの事前条件を表す多次元配列と、ステイトの事後条件を表す多次元配列との組として表されることから、遷移情報を記憶するためには、もとの多次元配列の軸毎に事前事後２種類の軸を具備する新たな多次元配列が必要となる。なお、内部表現における配列の大きさが変わるだけであって、遷移情報に関するモデリングの扱いは、ステイトの有無に関する情報が表現された多次元配列に対する扱いと同様である。
【００３９】
＜シンプル化＞
本実施形態では、基本機能をシンプルに構成するため、扱えるプロセスの内容に制限を加えている。
【００４０】
ただし、基本機能に付加機能を追加することで、実用的なプロセスを扱うことができるような拡張性を考慮している。本実施形態のフロー図に与えられる制限を以下に示す。
【００４１】
(1)ループを含まない。
【００４２】
(2)分岐・合流についてはＡＮＤ条件のみ扱うこととし、ＯＲ条件を扱わない。
【００４３】
(3)フロー図における通常の記述として条件付き分岐を扱わない。
【００４４】
(4)フロー図における通常の記述としてサブフロー図を扱わない。
【００４５】
なお、本実施形態のプロセスモデル作成システムを用いたモデリング操作によって、(3)及び(4)の制限を実質的に解除することが可能である。
【００４６】
また、本実施形態では、フロー図の他に状態遷移図を作成することが可能である。状態遷移図は後述のように、フロー図を補助するものとして使用される。状態遷移図には、フロー図と同様に、基本機能をシンプルにするための制限が以下のように与えられている。
【００４７】
(1)遷移リンクは全て双方向で表される。
【００４８】
(2)状態の分裂（並列実行）は存在しない。
【００４９】
(3)状態遷移図における通常の記述として条件付き遷移リンクを扱わない。
【００５０】
(4)状態遷移図における通常の記述として入れ子の状態ノードを扱わない。
【００５１】
なお、本実施形態のプロセスモデル作成システムを用いたモデリング操作によって、(3)及び(4)の制限を実質的に解除することが可能である。
【００５２】
＜合成操作＞
本実施形態における「合成操作」とは、図８（ａ）に示すように各要素プロセス図11a,11bのステイト集合の直積、または図８（ｂ）に示すように各要素プロセス図11a,11bの直和を求めることにより、合成プロセス図12a,12bを生成する操作を言う。要素プロセス図11及び合成プロセス図12を順次合成していき、当該業務上の全てのプロセス図を間接・直接に合成することにより、統合プロセス図20が生成される。
【００５３】
次に、合成プロセス図12の各ステイトを、その基となる複数の要素プロセス図11の各ステイトの直積によって表す場合について説明する。例えば、図９に示すように、ステイトとしてＸ，Ｙ，Ｚを有する要素プロセス図11cと、ステイトとしてＡ，Ｂ，Ｃを有する要素プロセス図11dとを合成した場合には、合成プロセス図12cのステイトは３×３＝９個であって、これらの内容はＡＸ＝Ａ・Ｘ，ＡＹ＝Ａ・Ｙ，ＡＺ＝Ａ・Ｚ，…，ＣＹ＝Ｃ・Ｙ，ＣＺ＝Ｃ・Ｚとなる。但し、実際のプロセスモデリングでは、単純に状態集合の直積をとることができるケースが少ない。仮にステイトの除去の操作を一切行わなければ、最終的に得られる統合プロセス図は単純に全てのプロセス図を重ね合わせたものになることから、膨大な数のステイトを含むことになる。例えば、Ｘを東西方向に延びる道路の信号の状態（ステイト）を含むプロセス図とし、Ｙを南北方向に延びる道路の信号の状態（ステイト）を含むプロセス図とすると、ＸとＹを合成したプロセス図（Ｚ）には、交差点全体の信号が全て青になる状態が存在してはならない。
【００５４】
そこで、本実施形態では、合成プロセス図12において不要なステイトを除去することができるようになっている。これにより、ＢＰＭＮ等の従来のプロセス定義ツールを用いて作成されたプロセスモデルと同様のプロセスモデルを容易に作成することができる。
【００５５】
この合成操作は、多次元配列を生成し、該多次元配列の各要素に値を設定することにより実現される。図９を参照して説明すると、各単位プロセス図11c,11dの各ステイトにそれぞれ対応する複数のインデックスを抽出し、各インデックスを合成プロセス図12cに対応する多次元配列30aの各軸のインデックスとする。この場合、合成プロセス図12cにおけるステイトは、多次元配列30aの１つの要素に対応する。ここで、合成プロセス図12cにおいて必要となるステイトに対応する要素には「１(true)」を代入し（図では「○」で表現されている）、不要となるステイトに対応する要素には「０(false)」を代入する（図では空白で表現されている）。このようにして、合成プロセス12cにおけるステイトの有無を表す多次元配列30aが生成され、合成プロセス図12cは、各要素プロセス図11c,11dと多次元配列30aに基づき生成される。
【００５６】
次に、一般例として、多重ツリーの枝要素に対応する２つの中間プロセス図21を合成する場合について説明する。合成されたプロセス図に対応する多次元配列の次元数は、各中間プロセス図21を先祖とするサブツリーの葉、即ち単位プロセス図22の数に相当する。なお、多重ツリーの特徴として、合成しようとする中間プロセス図21が共通して複数の単位プロセス図22を有する場合があるので、重複して数えないように注意する必要がある。そのため、各中間プロセス図21のサブツリーの葉（次元軸）の和集合を求めることによって、合成後のプロセス図に対応する多次元配列の軸を決定する。
【００５７】
一般例において直積による合成操作を行う場合について説明する。まず、単位プロセス図22の配列を中間プロセス図21と同じ大きさの配列に拡張する。この場合、不足している空間軸方向に単位プロセス図22の配列における各要素の値をスウィープすることで、配列を拡張することができる。このようにして得られた複数の単位プロセス図22に対応する配列に対し、各要素（同じ添え字を持つもの）の積（ＡＮＤ）を求めることにより得られた値を合成プロセス図に対応する配列の当該要素に設定する。
【００５８】
多重ツリーの下位のブランチノードから順にステイト集合の絞り込みを行っていくことで、ユーザは把握しやすい範囲の要求仕様に着目してモデリングを行うことができる。上位のブランチノードでは、下位で絞り込まれたアクティビティ集合から生成される直積集合を雛形としてモデリングを行うため、考慮しなければならない範囲を適切に狭めることができる。
【００５９】
このように、ボトムアップなモデリング環境を提供することにより、複雑なプロセスモデルの定義に対する支援を可能とする。
【００６０】
＜ステイト集合の直和表現＞
また、合成プロセス図12のステイトを、要素プロセス図11のステイト集合の直積ではなく、直和として生成したい場合がある。この場合、要素プロセス図11にダミーのステイトφをデフォルトで持たせることで直和を求めることが可能となる。例えば、図１０に示すように、要素プロセス図11cと要素プロセス図11dのステイトを単純に足した合成プロセス図12dを作成した場合には、合成プロセス図12dのステイト集合Ｚ’の内容は、Ｚ’＝｛Ａ＝Ａ・φ２、Ｂ＝Ｂ・φ２、Ｃ＝Ｃ・φ２、Ｘ＝Ｘ・φ１、Ｙ＝Ｙ・φ１、Ｚ＝Ｚ・φ１｝となる。また、このように直和表現で構成された合成プロセス図12dを作成する場合には、各要素の値が図１０に示すように設定された多次元配列30bを作成すればよい。これにより、合成プロセス12dにおけるステイトの有無を表す多次元配列30bが生成され、合成プロセス図12dは、各要素プロセス図11c,11dと多次元配列30bに基づき生成される。
【００６１】
さらに、プロセス図のある部分については直積をとり、他の部分については直和をとりたい場合も、各要素の値が例えば図１１に示すように設定された多次元配列30cを生成することにより、直積及び直和が混在した合成プロセス図12eを作成することが可能となる。このように、プロセス図の合成操作そのものは、直積・直和の何れか一方に統一しなくても、自由に混在した形で実行することができる。
【００６２】
また、実際にステイトの有無をどのように選択するか、即ち多次元配列の各要素の値をどのように設定するかによって、ＢＰＭＮを用いてモデリングを行った場合と同様の処理を行うことができる。例えば、アクティビティのサブフロー型の対応関係を生成する場合には、各要素の値が図１２に示すように設定された多次元配列30dを作成すればよい。ここでは、一例として、要素プロセス図11cのアクティビティ「Ｂ」を、要素プロセス図11dを呼び出すためのアクティビティとして指定した場合について示している。この場合、各要素プロセス図11c,11dに対して多次元配列30dを用いることにより、合成プロセス図12fが生成される。また、アクティビティの条件分岐型の対応関係を生成する場合には、各要素の値が図１３に示すように設定された多次元配列30eを作成すればよい。この場合、各要素プロセス図11c,11eに対して多次元配列30eを用いることにより、合成プロセス図12gが生成される。本実施形態では、多次元配列の各要素に値を設定するためのデフォルト値設定ルールを、直積、直和、サブフロー型及び条件分岐型等の合成操作の種類毎に予め作成している。
【００６３】
本実施形態のシステムにおける編集（フロー図の作成・追加・削除を含む）操作は、従来のフロー図作成のメタファ（サブフロー化、条件分岐など）に対応して多種類提供される。しかしながら、全ての編集操作は、多重ツリーを構成する各プロセス図20,21,22の何れかに対して合成操作を行うという共通処理が内部で行われていることになる。つまり、個々の編集操作の種類の違いは、前記操作において多次元配列の各要素に適用するデフォルト値代入ルールの違いとして表される。従って、合成操作を内部的に実現するための多次元配列の計算アルゴリズムを共通に使用することができる。
【００６４】
このようにして、開発環境のＧＵＩ上のモデリング操作を容易に実現することができる。即ち、ユーザがサブフロー作成・条件分岐作成・フロー併合のいずれの操作メニューを選んだ場合も、該操作メニューに対応するデフォルト値代入ルールを抽出し、抽出されたデフォルト値代入ルールに基づきプロセスモデルを生成することができる。
【００６５】
さらに、フローを抽象化するためにステイトの選択・除去等の例外的な操作を行う場合においても、上記と同様に対処することが可能である。即ち、ステイトの選択・除去等の例外的な操作については、多次元配列30の要素に設定されたデフォルト値を上書きすることにより、当該要素の値を変更すればよい。
【００６６】
＜多重ツリー構造＞
合成操作によって形成される多重ツリーは、厳密には上半束構造を有する。ここで、上記合成操作の関係が単純なツリー構造にならないのは、葉の要素を複数の枝が共有する場合が許されるからである。ここで、図１４に示すように、前述した信号機の動作を一例として説明すると、夜間に黄色点滅になる時間帯や、休日に歩行者天国となる時間帯があれば、３つの時間帯（通常、夜間及び休日）を表す状態「動作時間帯」を定義することができる。東西信号機（固定動作）と「動作時間帯」の重ね合わせ、南北信号機（固定動作）と「動作時間帯」の重ね合わせは、それぞれ東西信号機（時間帯別動作）と南北信号機（時間帯別動作）に定義することができ、これらのプロセス図をさらに合成することで全体のプロセス図（交差点信号機（時間帯別））を定義することができる。この場合、「動作時間帯」というプロセス図は、東西信号機（時間帯別動作）というプロセス図と南北信号機（時間帯別動作）というプロセス図の２つに共有されることになる。
【００６７】
＜表示＞
本実施形態のシステムにおける表示（プロセス図上のステイトの縮退表示、プロセス図の分岐優先順位の転換表示、業務上の特定状態だけを取り出した切断表示）操作は、プロセス図に対応する多次元配列に対してスライシング、ドリリング、ダイシング操作を行うことにより実現される。これによって、任意の観点に基づいて表示態様を変更することにより見やすくしたプロセス図を、システムに保持された統合プロセス図20から動的に生成して表示することができる。
【００６８】
このように、多様なブラウジング手段を提供しつつ、内部表現や表示アルゴリズムを統一することにより、開発環境に対してアドホックにブラウジング手段を追加することを不要とし、体系的で一貫性のある柔軟なモデリング環境を実現できる。
【実施例１】
【００６９】
図１５にプロセスモデル作成システムの基本構成を示す。
【００７０】
本発明のプロセスモデル作成システムは、周知のＣＰＵを主体として構成されたコンピュータからなり、図１５に示すようにプロセスモデル作成部100、ユーザインタフェース部200、データベース300及びグラフィック情報記憶部400から構成されている。
【００７１】
プロセスモデル作成部100は、プロセス図の作成、編集及び表示を行うためのモジュールであり、モデリング処理部110、プロセスモデル管理部120及びフロントエンド部130から構成される。モデリング処理部110、プロセスモデル管理部120及びフロントエンド部130は、保持する情報を相互に送受信する。
【００７２】
モデリング処理部110は、プロセス図を編集・統合するモジュールであり、多次元配列演算部111と多次元配列生成部112から構成されている。
【００７３】
多次元配列演算部111は、プロセス図に対応する多次元配列の各要素に対して値を設定するモジュールである。
【００７４】
多次元配列生成部112は、プロセス図に対応する多次元配列を生成するモジュールである。
【００７５】
プロセスモデル管理部120は、プロセス図等を管理するモジュールであり、依存関係情報121、局所操作情報122、ルール適用情報123及びルール定義情報124を保持している。なお、これらの情報121〜124はデータベース300に記憶されており、プロセスモデル管理部120は、各情報121〜124をデータベース300から適宜抽出して保持するようになっている。また、プロセスモデル管理部120は、プロセスモデリングにおいて作成されたプロセス図等をデータベース300に記憶する。
【００７６】
依存関係情報121には、図１６のようなプロセスモデル体系としての多重ツリーと、該多重ツリーを構成する各プロセス図の依存関係と、各プロセス図の名前とが格納されている。
【００７７】
局所操作情報122は、フロー図におけるアクティビティや状態遷移図における遷移の作成・削除等の局所操作の履歴を表すデータの集合であり、図１７に示すように局所操作の内容が当該操作の引数とともに格納されている。ユーザがＧＵＩ上でプロセス図に対する編集操作を行うことにより、内部的に局所操作が実行され、履歴データが追記される。
【００７８】
ルール適用情報123は、合成操作において適用したルールの履歴を表すデータの集合であり、図１８に示すように合成操作時に適用されたルールの内容が、当該ルールの引数とともに格納されている。ユーザが「サブフロー化」や「条件分岐」等のメタファに基づきＧＵＩ上でメニューや図形を選択すると、内部的にルールが適用され、ルール適用履歴データが追記されるようになっている。
【００７９】
ルール定義情報124は、図１９に示すように、プロセス図に対してそれぞれ異なる生成処理の内容を定義した情報の集合であり、前述したデフォルト値代入ルールが各処理毎に格納されている。
【００８０】
フロントエンド部130は、図２０に示すようなメインウィンドウ500及び図２１に示すようなプロセス図表示ウィンドウ600をユーザインタフェース部200に描画するためのモジュールであり、多次元配列参照処理部131、プロセス図描画処理部132、プロセス編集局所操作部133及びプロセス統合関係指定部134から構成されている。
【００８１】
メインウィンドウ500は、図２０に示すように、多重ツリーを表示する統合関係表示部510と、プロセス図の編集を指示するための編集指示部520と、プロセス図の合成・分解処理を指示するための統合操作部530と、直積、直和、サブフローまたは条件分岐といった合成操作を指示するためのルール適用部540とから構成されている。本システムの動作時には、メインウィンドウ500が後述のユーザインタフェース部200の情報表示部に表示される。
【００８２】
プロセス図表示ウィンドウ600は、図２１に示すように、表示されたプロセス図に対してドリリング操作を指示するためのドリリング指示部610と、表示されたプロセス図に対してダイシング操作を指示するためのダイシング指示部620と、表示されたプロセス図に対してスライシング操作を指示するためのスライシング指示部630と、プロセス図を表示するためのプロセス図表示部640と、プロセス図に対して局所操作を行うための編集操作部650とから構成されている。
【００８３】
ドリリング指示部610は、プロセス図に対応する多次元配列のうち縮退処理を行う軸（単位プロセス図）を指定するための縮退軸指定部611と、プロセス図に対応する多次元配列のうち展開処理を行う軸（単位プロセス図）を指定するための展開軸指定部612とから構成されている。
【００８４】
ダイシング指示部620は、プロセス図に対応する多次元配列の各軸について展開処理の優先度を指定するための優先度指定部621から構成されている。
【００８５】
スライシング指示部630は、プロセス図に対応する多次元配列のうちスライシング（切断）処理を行う軸（単位プロセス図）を指定するための切断軸指定部631と、当該軸における切断面（ステイト）を指定するためのステイト指定部632とから構成されている。
【００８６】
編集操作部650には、ステイト（アクティビティ、遷移）の作成・削除・対応付け・対応解放に対応した図形が表示されており、図形を選択することにより該図形に対応する局所操作が行われるようになっている。
【００８７】
多次元配列参照処理部131は、ドリリング指示部610、ダイシング指示部620及びスライシング指示部630において指定された内容を取得するためのモジュールである。
【００８８】
プロセス図描画処理部132は、プロセス図表示部640にプロセス図を描画するためのモジュールである。
【００８９】
プロセス編集局所操作部133は、編集操作部650にて指定された内容を取得するためのモジュールである。
【００９０】
プロセス統合関係指定部134は、メインウィンドウ500にて指定された内容を取得するためのモジュールである。
【００９１】
ユーザインタフェース部200は、キーボードやマウス等の情報入力部（図示省略）及びディスプレイ等の表示機器である情報表示部（図示省略）を備え、プロセスモデル作成部100に対する情報アクセスが可能になっている。また、ユーザインタフェース部200は、プロセスモデリングを行うユーザが情報を入力するための受付部であり、データベース300に記憶されているプロセス図の表示及び作成結果を表示するものである。
【００９２】
グラフィック情報記憶部400は、プロセス図をグラフィカルに表示する際に必要となる図形の形状データや配置データ等の情報を記憶するためのモジュールである。
【００９３】
以上のように構成されたプロセスモデル作成システムにおいて、プロセスモデル作成部100の動作の概略を図２２のフロー図を参照して説明する。プロセスモデル作成部100のフロントエンド部130は、システム起動時にメインウィンドウ500を情報表示部に表示させる。このとき、メインウィンドウ500の統合関係表示部510には、プロセスモデル管理部120がデータベース300から取得した依存関係情報121の多重ツリーが表示される。そして、ユーザが統合関係表示部510に表示された多重ツリーのうち所望のプロセス図を情報入力部を用いて選択すると、プロセス図表示ウィンドウ600が表示される。このとき、プロセス図表示ウィンドウ600のプロセス図表示部640には、選択されたプロセス図が表示される。
【００９４】
次に、ユーザが編集指示部520を選択すると、プロセス作成部100は、プロセス図の編集処理を行う（ステップＳ１００）。また、プロセス作成部100は、ユーザがドリリング指示部610、ダイシング指示部620またはスライシング指示部630の何れかを選択した場合にはプロセス図の表示処理を行い（ステップＳ１１０）、ユーザが統合操作部530を選択した場合にはプロセス図の統合処理を行う（ステップＳ１２０）。
【００９５】
次いで、編集処理における動作を図２３のフロー図を参照して説明する。編集指示部520において「変更操作」が選択された後に、ユーザがプロセス図表示部640に表示されたプロセス図に対して編集操作部650にて図形を選択することにより変更操作を行うと（ステップＳ２００）、プロセスモデル管理部120は、変更内容をデータベース300に記憶する（ステップＳ２１０）。また、編集指示部520において「新規作成」が選択された後に、ユーザが編集操作部650にて図形を選択することにより新たなプロセス図をプロセス図表示部640に作成すると（ステップＳ２１０）、プロセスモデル管理部120は、作成内容をデータベース300に記憶する（ステップＳ２２０）。なお、新規に作成されたプロセス図は、他のプロセス図との依存関係が無い状態で依存関係情報121に追記される。また、編集処理の内容は、局所操作情報122に記憶される。
【００９６】
次に、表示処理における動作を図２４のフロー図を参照して説明する。この表示処理は、プロセス図に対応する多次元配列が生成された後に、選択されたメニュー（ドリリング、ダイシング、スライシング）に応じて多次元配列を操作することにより行われる。この配列操作は、一般にＯＬＡＰ集計(online analytical processing）と呼ばれる配列操作と同様である。
【００９７】
まず、プロセス図をスライシング操作により表示する場合について説明する。ユーザが統合関係表示部510に表示された多重ツリーから表示対象のプロセス図を指定すると（ステップＳ３００）、多次元配列生成部111は、当該プロセス図の多次元配列を生成する（ステップＳ３０１）。そして、ユーザが、多次元配列の各軸のうちスライシングの対象となる軸（単位プロセス図）及びその軸に含まれるステイトを切断軸指定部631及びステイト指定部632にて選択すると（ステップＳ３０２）、選択された軸及びその軸に含まれるステイトに基づき多次元配列の断面が抽出され（スライシング操作）、これにより得られたプロセス図がプロセス図表示部640に表示される（ステップＳ３０３）。このとき、既に同一の軸及びその軸に含まれるステイトに基づきプロセス図が表示されていた場合には、その際に用いられたグラフィック情報を表示するようにしてもよく、表示されていない場合には、デフォルトのグラフィック情報を表示するようにしてもよい。
【００９８】
また、プロセス図をドリリング操作により表示する場合には、上記と同様にユーザが多重ツリーから表示対象のプロセス図を指定すると（ステップＳ３１０）、多次元配列が生成される（ステップＳ３１１）。そして、ユーザが、多次元配列の各軸のうち縮退軸及び展開軸を縮退軸指定部611及び展開軸指定部612にて選択すると（ステップＳ３１２）、選択された縮退軸及び展開軸に基づきドリリング操作されたプロセス図がプロセス図表示部640に表示される（ステップＳ３１３）。
【００９９】
さらに、プロセス図をダイシング操作により表示する場合には、上記と同様にユーザが多重ツリーから表示対象のプロセス図を指定すると（ステップＳ３２０）、多次元配列が生成される（ステップＳ３２１）。そして、ユーザが、多次元配列の各軸の優先度を優先度指定部621にて選択すると（ステップＳ３２２）、選択された各軸の優先度に基づきダイシング操作されたプロセス図がプロセス図表示部640に表示される（ステップＳ３２３）。
【０１００】
次いで、統合処理における動作を図２５のフロー図を参照して説明する。まず、合成操作を行う場合について説明する。ユーザが、統合操作部530において「合成」を選択した後に、合成操作の基となる２つのプロセス図を統合関係表示部510に表示された多重ツリーから選択し（ステップＳ４００）、合成操作に用いるデフォルトルールをルール適用部540にて選択すると（ステップＳ４０１）、プロセスモデル作成部100は、選択されたルールに基づき新たなプロセス図を作成し、該プロセス図をその基となった各プロセス図との関係付けを行った後に依存関係情報121の多重ツリーに追記する（ステップＳ４０２）。なお、デフォルトルールが適用されたときの動作の詳細については後述する。
【０１０１】
また、分解操作については合成操作の逆の操作を行うことで実現することができる。即ち、分解の対象となるプロセス図と、該プロセス図の基となった２つのプロセス図のうち一方のプロセス図（比較プロセス図）が統合関係表示部510にて指定され、分解操作に用いられるデフォルトルールがルール適用部540にて選択されると（ステップＳ４１０）、プロセスモデル作成部100は、選択されたルールに基づき前記２つのプロセス図のうち他方のプロセス図を抽出し、抽出されたプロセス図を分解対象のプロセス図との関係付けを行った後に依存関係情報121の多重ツリーに追記する。分解操作のデフォルトルールを指定した後、分解により抽出されるフロー図ともとのフロー図を関係付けて多重ツリーに追加する（ステップＳ４１１）。また、ユーザが、２つに分解された各プロセス図間のアクティビティの対応付けを情報入力部を用いて行うと、プロセスモデル管理部120は、この処理結果を局所操作情報122に追記する（ステップＳ４１２）。
【０１０２】
次に、デフォルトルールが適用されたときの動作を図２６のフロー図を参照して説明する。ユーザが、適用対象とする合成操作箇所（ブランチノード）を統合関係表示部510にて指定した後に、ルール適用部540にて「直積指定」を指定すると（ステップＳ５００）、プロセスモデル管理部120は、「直積指定」に対応するルール適用履歴データをルール適用情報123に追記する（ステップＳ５０１）。この場合、図１８に示された２番目または４番目のルール適用履歴データと同様のデータが追記され、追記されたデータには、合成操作箇所に対応するプロセス図の名前が格納される。また、モデリング処理部110は、適用されたルールに基づきルール定義情報124を用いて合成操作箇所に対応するプロセス図の多次元配列を再生成する。また、再生成された多次元配列に対応するプロセス図は、プロセス図表示部640に表示される（ステップＳ５０２）。
【０１０３】
また、ユーザが、適用対象とする合成操作箇所（ブランチノード）を統合関係表示部510にて指定した後に、ルール適用部540にて「直和指定」を指定すると（ステップＳ５１０）、プロセスモデル管理部120は、「直和指定」に対応するルール適用履歴データをルール適用情報123に追記する（ステップＳ５１１）。この場合、図１８に示された１番目または３番目のルール適用履歴データと同様のデータが追記され、追記されたデータには、合成操作箇所に対応するプロセス図の名前が格納される。また、モデリング処理部110は、適用されたルールに基づきルール定義情報124を用いて合成操作箇所に対応するプロセス図の多次元配列を再生成する。また、再生成された多次元配列に対応するプロセス図は、プロセス図表示部640に表示される（ステップＳ５１２）。
【０１０４】
さらに、ユーザが、適用対象とする合成操作箇所（ブランチノード）を統合関係表示部510にて指定した後に、ルール適用部540にて「サブフロー指定」を指定し（ステップＳ５２０）、サブフロー呼び出し側のアクティビティを指定すると（ステップＳ５２１）、プロセスモデル管理部120は、「サブフロー指定」に対応するルール適用履歴データをルール適用情報123に追記する（ステップＳ５２２）。この場合、図１８に示された５番目のルール適用履歴データと同様のデータが追記され、追記されたデータには、合成操作箇所に対応するプロセス図の名前及び呼び出し側のアクティビティ名が格納される。また、モデリング処理部110は、適用されたルールに基づきルール定義情報124を用いて合成操作箇所に対応するプロセス図の多次元配列を再生成する。また、再生成された多次元配列に対応するプロセス図は、プロセス図表示部640に表示される（ステップＳ５２３）。
【０１０５】
さらにまた、ユーザが、適用対象とする合成操作箇所（ブランチノード）を統合関係表示部510にて指定した後に、ルール適用部540にて「条件分岐指定」を指定し（ステップＳ５３０）、分岐条件を表す状態とアクティビティの組を指定すると（ステップＳ５３１）、プロセスモデル管理部120は、「条件分岐指定」に対応するルール適用履歴データをルール適用情報123に追記する（ステップＳ５３２）。この場合、図１８に示された６番目のルール適用履歴データと同様のデータが追記され、追記されたデータには、合成操作箇所に対応するプロセス図の名前及び条件分岐後のステイタス名が格納される。また、モデリング処理部110は、適用されたルールに基づきルール定義情報124を用いて合成操作箇所に対応するプロセス図の多次元配列を再生成する。また、再生成された多次元配列に対応するプロセス図は、プロセス図表示部640に表示される（ステップＳ５３３）。
【０１０６】
次に、モデリング処理部110の動作について図２７のフロー図を参照して説明する。まず、多次元配列生成部112は、統合関係表示部510にて指定されたプロセス図の名前を受け取ると（ステップＳ６００）、指定されたプロセス図の子プロセス図に対応する多次元配列を自己再帰的に生成する（ステップＳ６０１）。なお、ここで生成された多次元配列の各要素には、子プロセス図に存在するステイトに応じた値が設定されている。次に、多次元配列生成部112は、各子プロセス図のそれぞれについてサブツリーとして関係付けられた単位プロセス図のステイト（空間軸に相当する）の和集合を用いることにより、多次元配列を新たに生成する（ステップＳ６０２）。なお、ここで生成される多次元配列の各要素には値が設定されていない。そして、多次元配列生成部112は、多次元配列演算部111を呼び出す（ステップＳ６０３）。
【０１０７】
多次元配列演算部111は、適用されたルール即ちルール適用情報123に追記されたルール適用履歴データが、ルール定義情報124の１番目から４番目の情報の何れかに該当する場合に、該当する情報に対応したデフォルト値代入ルールに基づいて多次元配列に所定の値を設定する（ステップＳ６１０）。また、ルール適用情報123に追記されたルール適用履歴データが、ルール定義情報124の５番目または６番目の情報の何れかに該当する場合に、該当する情報に対応したデフォルト値代入ルールに基づいて多次元配列に所定の値を設定する（ステップＳ６１１）。さらに、生成対象となる配列が局所操作情報に該当する場合、多次元配列に所定の値を設定する（ステップＳ６１２）。
【０１０８】
多次元配列生成部112は、各要素の値が設定された多次元配列を、呼び出し元の処理に出力する（ステップＳ６０４）。
【０１０９】
＜実装上の工夫＞
多次元配列の操作や演算は、多次元データベースを利用することが考えられる。予めプロセスモデル作成システムで扱われる多次元配列の次元数の最大値を決めておき、内部データの生成において、当該データベース上に前記次元数の多次元配列を生成する。開発環境上で合成操作を繰り返し、内部データの次元数が増えるごとに、データベース上のデータの次元を順次割り当てていく。
【０１１０】
多次元配列をデータベース及びコンピュータを用いて内部表現するにあたり記憶領域の消費が懸念される。本発明の方法によれば、操作系列が多重ツリー構造で保持されているため、中間のノードでは多次元配列の内容をスパースに抑えることが可能となる。
【０１１１】
多次元データベースでは、スパース配列を効率よく格納する工夫がされているため、この特性を利用することができる。また、コンピュータの内部表現においては、多重ツリー上の操作対象の周辺領域だけを扱い、大きな変更を順次伝播していくことにより、プロセス図データの大きさを抑えることができる。
【０１１２】
このように、本実施形態のプロセスモデル作成システム、方法及びそのプログラムによれば、多重ツリーのプロセス図とルール定義情報124を選択することによりプロセス図を作成することができるので、プロセス図を自動生成することができ、プロセス図の作成者の属人性を排除することができるとともに、プロセス図の作成における作業時間及び作業量を低減することができる。従って、プロセスモデリングの効率を向上させることができるとともに、体系的で一貫性のある柔軟なモデリング環境を実現することができる。
【０１１３】
特に、アクティビティの存在有無に関する情報を多次元配列の要素の値（１若しくは０）で表現することにより、以下の効果が得られる。
【０１１４】
＜実行可能なアクティビティとの関連付けにおける効果＞
本実施形態のプロセスモデルのアクティビティは、実行可能なオブジェクトコード等と直接的・固定的に関連付けられていない。このため、作成されたプロセスモデルを実際のソフトウェアプログラムとして実行するためには、プロセスモデルのアクティビティ（現実の世界から見るとロール）や遷移リンク（現実の世界から見るとイベント）を、具体的なアクティビティ（オブジェクトコードを呼び出すための識別子）や遷移リンク（システム内で受け渡されるイベントデータの識別子）と関連付ける必要がある。
【０１１５】
統合プロセスモデル（あるいは中間プロセスモデル）におけるアクティビティは、単位プロセスモデルのアクティビティ（複数）の直積として生成される。そこで、単位プロセスモデルのアクティビティに識別子を関係付け、上位のプロセスモデル上のアクティビティは、それら識別子の集合によって表現する。個々の識別子集合と逐一関係付けることは煩雑な作業となるが、識別子の存在有無に関する論理式を付与することによって、一定のまとまりごとに関係付けを行うことができる。
【０１１６】
このような方法をとることで、プロセスにおける役割の組み合わせから、適切なプログラムを割り当てることになるため、プログラム作成時に想定しなかった状態においてオブジェクトコードが実行されることを防止することができる。
【０１１７】
＜編集：サブフロー、条件分岐、その他のパターン展開における効果＞
本開発環境における編集操作は、多次元配列に対してデフォルト値代入ルールを適用することにより実現される。これにより、サブフローや条件分岐などの従来のフロー定義における概念が統一的に扱える。また、上記概念の例外的な部分が発生した場合も、特別な拡張を不要とすることができる。即ち、ルール適用後のフロー図に対して手作業による編集操作を行い、局所操作情報を追加すればよい。このことは、予め全ての状況を把握して、即ち例外的な部分が発生しないように構想をたててプロセスモデルを作成することが極めて困難な状況において、実用的な機能である。
【０１１８】
また、例外に対する許容性は、様々なフロー図を重ね合わせることにより最終的なプロセスモデルを得るという作業の流れの中では必須である。即ち、あるフロー図を変更したことで、一時的に例外箇所が多数発生する場面が容易に予想されるからである。このような場合も、開発環境が変更を禁止したり拒絶したりするのではなく、全体的に例外箇所が少なくなる方向に、試行錯誤的にモデルを修正していくことができる柔軟な枠組みが不可欠である。
【０１１９】
また、開発環境のハードコード部分を変更せずにルール定義を追加することによって、業務ドメインに特化したモジュール構成を実現することができ、開発効率を向上することができる。即ち、単位フロー図上のアクティビティ名に命名規則を設け、名前に対する文字列マッチングの条件をルールに持たせる、あるいは、アクティビティに属性値を与えて、それに対する述語条件をルールに持たせる、等の方法により、メタレベルでのモジュール定義を行うことが可能である。類似した業務ドメインの開発を過去に行っている場合には、まずその開発において定義した業務ドメイン用ルールを取捨選択して再利用することで、早期の開発立ち上げを実現することができる。
【０１２０】
＜スライシング操作による効果＞
ＯＬＡＰツールと同様に、ある空間軸における特定の状態に限定した場合のプロセスモデルをブラウジングすることができる。これによって、注目したい部分だけのフロー図を表示・編集することが可能となる。
【０１２１】
＜ドリリング操作による効果＞
ＯＬＡＰツールと同様に、フロー図上で区別したい状態集合の空間軸と、同一視したい状態集合の空間軸をそれぞれ指定することで、縮退させたプロセスモデルをブラウジングすることができる。これによって、ある観点でプロセスモデルを俯瞰した場合のフロー図を表示・編集することが可能となる。
【０１２２】
＜ダイシング操作による効果＞
ＯＬＡＰツールと同様に、フロー図上で区別する状態集合の空間軸を複数指定する場合に、展開の優先度をあわせて指定することができる。これによって、プロセスモデルの何れの観点を大域的に見て、何れの観点を詳細に見るかを切り替えることができ、フロー図を表示・編集することが可能となる。
【０１２３】
なお、ＯＬＡＰツールでは、２次元の表の縦方向ならびに横方向に加え、奥行き方向を入れた、３種類の展開方向を指定することができる。しかし、フロー図として表示する場合は、処理の流れの上での分岐・合流の入れ子の優先度に限られる。即ち、１種類の展開方向しかないことに注意する必要がある。
【０１２４】
図２８にその事例を示す。ここでは、Ｘ、Ｙ及びＺの３軸によるプロセスモデルのブラウジングを扱っている。図２８（ａ）では、Ｘ、Ｙ、Ｚの優先順でフローを表示している。ここで、Ｘ＝Ｔの場合に実行されるアクティビティを追加した場合には、図２８（ｂ）に示すように、一つのアクティビティ700が表示されることになる。さらにＹ＝Ｔで実行されるアクティビティとＹ＝Ｆで実行されるアクティビティを追加した場合には、図２８（ｃ）に示すように、Ｘ＝Ｔのアクティビティと併せて計５つのアクティビティ700〜704が表示される。
【０１２５】
しかし、空間軸の優先度をＹ、Ｘ、Ｚの順に変更した場合には、図２８（ｄ）に示すように、Ｙ＝Ｔで実行されるアクティビティ701,703及びＹ＝Ｆで実行されるアクティビティ702,704がそれぞれアクティビティ705とアクティビティ706にまとめて表示される。また、Ｘ＝Ｔのアクティビティ700は、２つのアクティビティ707,708として表示される。つまり、全体として４つのアクティビティとして表示されることになり、Ｘ、Ｙ、Ｚの優先順で表示する場合と比べて冗長性が減少している。
【０１２６】
実際、他にも多数のアクティビティがフロー上に散在するため、前述した例よりもさらに動的表示切り替えによる変化が大きく、従来の編集操作では不可能な操作となる。従って、優先度の変更を自由に行えることによる作業性向上の効果は大きい。
【０１２７】
＜表示における工夫＞
また、プロセスモデル作成部100の表示処理における動作の説明では省略したが、プロセス図を、或る空間軸において縮退させて表示したときに、当該軸における状態集合に対して全ての状態でアクティビティが存在する場合には、各アクティビティを実線で表示してもよい。また、ある空間軸において縮退させて表示したときに、当該軸における状態集合に対して一部状態にしかアクティビティが存在しない場合には、各アクティビティを破線で表示するようにしてもよい。これにより、フロー図によって表されるプロセスモデルを把握しやすくする効果が得られる。
【０１２８】
また、アクティビティ間の遷移情報（遷移リンクの有無に関する情報）を多次元配列として表現することにより、以下の効果が得られる。
【０１２９】
＜フロー図における遷移リンクの有無の内部表現＞
開発環境上で入力されるフロー図は、グラフィカルな図形配置情報をオプショナルに持ち、フロー図としてのグラフ構造情報を配列の形式で内部表現することが可能となる。具体的には、グラフ理論における有向グラフと同じ表現形式となる。
【０１３０】
同様に状態遷移図も、グラフィカルな図形配置情報をオプショナルに持ち、遷移図としてのグラフ構造情報を配列の形式で内部表現することができる。
【０１３１】
＜合成操作における効果＞
プロセス図のステイトの有無についての合成操作における効果は既に説明したとおりである。これらに基づき存在の有無が決定されたステイトの間に、以下のルールにしたがって遷移リンクが生成される。
【０１３２】
・合成操作によって生成されたステイトの任意の順序対について、それぞれのステイトの合成の基となった全てのプロセス図において、当該ステイトに対応する当該プロセス図のステイトの順序対を求め、それらの間に遷移リンクが定義されており且つその逆の順序対の間に遷移リンクが定義されていない場合にのみ、合成操作後の新しい遷移リンクを生成する。
【０１３３】
上記ルールを満たす処理は、遷移リンクを表す多次元配列の直積を求めることにより実現でき、ステイトの有無についての多次元配列処理を共通に使用することができる。
【０１３４】
＜自己遷移リンクの扱い＞
プロセス図では、ステイトの自己遷移リンクを明示的に記述していない。しかし、合成操作で自己遷移リンクがあるものとみなしてステイト集合の直積を求める方がモデリング操作上のメタファに合致する。
【０１３５】
例えば、図２９に示すように、厳密には、合成前の各プロセス図11c,11dの各アクティビティにおいて自己遷移リンク（図において破線で表した部分）を補う必要がある。自己遷移リンクが存在しない場合には、合成後のプロセス図12cにおいて一点鎖線で表される遷移しか生成されないからである。このように、全てのステイトが自己遷移リンクをデフォルトで有するものとして多次元配列の内容を設定することにより、初めて操作者側の直感に近い合成操作を行うことが可能となる。
【０１３６】
但し、合成後の遷移において余分な遷移が含まれる場合もある。即ち、操作者が図２９において一点鎖線に示した遷移を意図していない場合も想定される。このような場合には、操作者が合成後のプロセス図12c上で余分と判断する遷移を除去する作業を行う。なお、図２９のように、ステイト数の多いプロセス図を合成する場合には、不足している線分を逐一追加するように図形編集作業を行うよりも、余分な線分を一括して除去するように図形編集作業を行う方が手数を軽減させることができる。従って、自己遷移リンクをデフォルトで持たせるか否かを、合成後のプロセス図におけるステイト数が多いか否かによって設定できるようにデフォルト値代入ルールを構成することが望ましい。
【０１３７】
さらに、図３０に示すように、ダミーアクティビティ「Φ２」とアクティビティ「Ｓ２」との間の遷移、ダミーアクティビティ「Φ２」とアクティビティ「Ｆ２」との間の遷移及びダミーアクティビティ「Φ２」の自己遷移を補うことも厳密には必要である。このように自己遷移を補うか否か、またはダミーアクティビティとの間の遷移を補うか否かについては、合成操作の内容によって処理が異なる。
【０１３８】
以上の要件を満たすように、遷移リンクを何れの箇所にデフォルトで生成すべきかをルール定義情報124に記述することにより、操作者の自然な操作感覚に沿った合成操作を行うことが可能になり、作業の効率をより向上させることができる。
【０１３９】
＜表示における工夫＞
プロセス図を、或る空間軸において縮退させて表示したときに、当該軸における状態集合に対して全ての状態で遷移リンクが存在する場合には、各遷移リンクを実線で表示してもよい。また、ある空間軸において縮退させて表示したときに、当該軸における状態集合に対して一部状態にしか遷移リンクが存在しない場合には、各遷移リンクを破線で表示するようにしてもよい。これにより、フロー図によって表されるプロセスモデルを縮退軸方向について把握しやすくする効果が得られる。
【０１４０】
なお、上記の実施形態は本発明の具体例に過ぎず、本発明が上記実施形態のみに限定されることはない。例えば、本発明は、周知のコンピュータに記録媒体もしくは通信回線を介して、図１５の構成図に示された機能を実現するプログラムあるいは図２２乃至図２７のフローに示された手順を備えるプログラムをインストールすることによっても実現可能である。
【０１４１】
また、上記実施形態では特に説明していないが、以下に説明するオプション機能を本発明のシステムに実装することも可能である。
【０１４２】
＜入口や出口のないアクティビティや遷移リンクの扱い＞
フロー図同士の合成操作やフロー図上の修正を行っていくと、統合プロセスモデル上の定義としては妥当だが、それを実際に実行するプロセスとして捉えた場合意味のない箇所が発生する場合がある。例えば、多次元状態空間上で存在する遷移リンクが、行き詰まりになっている場合や、開始状態からそこに進入してくる実行経路がない場合などである。ここではこれを孤立遷移リンク（孤立アクティビティ）とよぶ。
【０１４３】
このような孤立遷移リンクは、削除した方が良い場合と、残しておくことに意義がある場合の両方が考えられる。例えば、統合プロセスモデルを、他システムへ自動的に処理を割り振る能動的なプロセス制御モジュールに適用する場合には、自ら行き詰まり状態に陥ることは回避しなければならない。このような観点から、孤立遷移リンクはあらかじめ削除した方が良いと捉えることができる。一方、統合プロセスモデルを、実行時のシステム状態（多次元状態空間）に応じて、オペレータに実行可能なアクティビティを提示し、そこからの選択指示にしたがって処理を実行する受動的プロセス制御モジュールに適用する場合は、あえてオペレータが意図した状態であれば、行き詰まり状態であっても、そこへの遷移手段をモデルとして保持しているほうが良いと捉えることができる。（このような場面は、当初の統合プロセスモデルの記述の範囲を超える、別の系のシステム状態やそれに関係する要件に応える必要が生じた場合に発生する）
以上の考え方から、プロセスモデル開発環境として、孤立リンクであっても定義どおり表現できることは必要な要件であり、それを実際的観点から除去するか留保するか（そもそも自動的に識別するかどうか）を操作・判定する機能は、オプショナルな要件として扱われるべきである。
【０１４４】
＜設計者のフロー情報入力の意図に反する遷移リンク不在の扱い＞
フロー図同士の合成操作やフロー図上の修正を行っていくと、統合プロセスモデル上の遷移リンクが間接的に削除されることが通常的に発生する（直積による合成を介して、複数の単位フロー間での記述の相互関係によって発生する）。このような場合に、統合プロセスモデル上の遷移リンクが削除されたことで、その投影にあたるいずれかの単位フロー図上の遷移リンク自体の存在意義がなくなる現象が考えられる。ここで存在意義とよんでいるのは、当該遷移リンク（単位フロー図上のもの）を投影するもととなった、統合プロセスモデル上の遷移リンク集合が空集合に（全く存在しなく）なってしまう状況を指す。
【０１４５】
本来、モデリングを行ったオペレータが単位フロー図上に遷移リンクを作成する背後には、最終的な統合プロセスモデル上で対応する遷移リンクが少なくとも１つは存在する、というモデリング作業上の認識や意図があると考えられる。上記の状況は、その認識や意図に反するものと位置づけられる。このようなコンフリクトを解消するためには、以下の例にあげられるような、いくつかの選択肢の中から対応する必要がある。
【０１４６】
・オペレータ側の認識が間違っていたと捉え、単位フロー図上の遷移リンクを削除する。
【０１４７】
・他の単位フロー図上の遷移リンクの記述が漏れていたと捉え、それを追加する。
【０１４８】
・合成操作の内容が間違っていたと捉え、それを修正する。
【０１４９】
これらの対応方法は、モデリングの場面、対象業務ドメインまたはオペレータ自身のモデリング方針等に強く依存し、開発環境の機能として最適な方法を固定的に強制することは実用的ではない。
【０１５０】
以上の考え方から、プロセスモデル開発環境として、複数の単位フロー図上の遷移リンクの存在有無と、統合プロセスモデル上の遷移リンクの存在有無の間の整合性保障のしくみや矛盾の自動解消機能は、オプショナルな要件として扱われるべきである。
【０１５１】
以上説明した要件については、本発明が解決しようとする課題に本質的な影響を与えないことは明らかである。なぜならば、モデル定義として表現できる範囲が広いことは、実際的観点において或るモデル部分を除去するか否かという要件を妨げることに対して何ら影響を与えない。また同様に、表現できる状態の範囲が広いということは、複数のフロー図の間における遷移リンクの存在有無に関する整合性を保証する、あるいは矛盾を自動解消するという要件を妨げることに対して何ら影響を与えない。即ち、プロセスモデル開発環境の基盤技術と、その上に実現される多様なオプション機能とは、明確に分離できると言える。
【０１５２】
このように、機能を分離する必要性は、上記にあるように、実用上の多様な状況にあわせて逐次開発環境を作りかえることを回避するだけではなく、オプション機能を実現するための優れた手法や発明を実現するための環境を広く公開する意味もある。上記実施形態では、プロセスモデルを多次元行列として内部表現しており、業務ドメインや一般的プロセス定義作業に根拠を置いたヒューリスティックをハードコーディングしていない。一方で、多次元行列要素の値の設定におけるルール定義の差し替えによって、これらヒューリスティックに相当する処理を低コストで導入・更新することができる。これは、開発環境としての機能と、その上で必要とされる多様なノウハウを明確に分離する機構を実現していることを意味する。このように、オプション機能を実現するための基盤技術として拡張手段を提供することは、本発明の実用的な価値をさらに向上するものであると位置づけられる。
【０１５３】
なお、上記実施形態では、ＷＦＭＳに提供するプロセス定義について説明したが、他にもソフトウェア開発におけるプロセス、手順及び状態遷移等を扱う開発にも適用することができる。具体的には、組み込みソフトウェア開発における振舞定義や、通信装置間のプロトコル設計等にも本発明のプロセスモデル作成システム、方法及びそのプログラムを適用することが可能である。
【図面の簡単な説明】
【０１５４】
【図１】ワークフロー図の一例を示す図
【図２】状態遷移表及び状態遷移図の一例を示す図
【図３】ワークフロー図と状態遷移図及び状態遷移表との対応付けを示す図
【図４】プロセス図の定義を説明する図
【図５】プロセス図の種類を説明する図
【図６】要素プロセス図と合成プロセス図の関係を示す図
【図７】多重ツリーを示す図
【図８】合成操作の一例を示す図
【図９】直積による合成操作の一例を示す図
【図１０】直和による合成操作の一例を示す図
【図１１】直積と直和を組み合わせた合成操作の一例を示す図
【図１２】サブフロー型による合成操作の一例を示す図
【図１３】条件分岐型による合成操作の一例を示す図
【図１４】合成操作を用いたプロセスモデリングの一例を示す図
【図１５】本発明の一実施形態におけるプロセスモデル作成システムの構成を示す図
【図１６】多重ツリーを示す図
【図１７】局所操作情報の構成を示す図
【図１８】ルール適用情報の構成を示す図
【図１９】ルール定義情報の構成を示す図
【図２０】メインウィンドウを示す図
【図２１】プロセス図表示ウィンドウを示す図
【図２２】プロセスモデル作成部の動作の概略を示す図
【図２３】編集処理における動作を示すフロー図
【図２４】表示処理における動作を示すフロー図
【図２５】統合処理における動作を示すフロー図
【図２６】デフォルトルールが適用されたときの動作を示すフロー図
【図２７】モデリング処理部の動作を示すフロー図
【図２８】ダイシング操作による効果を説明する図
【図２９】直積による合成操作の一例を示す図
【図３０】直和による合成操作の一例を示す図
【符号の説明】
【０１５５】
100…プロセスモデル作成部、110…モデリング処理部、120…プロセスモデル管理部、121…依存関係情報、124…ルール定義情報、130…フロントエンド部、200…ユーザインタフェース部、300…データベース、500…メインウィンドウ、600…プロセス図表示ウィンドウ。
【図１】
2008276394.tif 000003
【図２】
2008276394.tif 000004
【図３】
2008276394.tif 000005
【図４】
2008276394.tif 000006
【図５】
2008276394.tif 000007
【図６】
2008276394.tif 000008
【図７】
2008276394.tif 000009
【図８】
2008276394.tif 000010
【図９】
2008276394.tif 000011
【図１０】
2008276394.tif 000012
【図１１】
2008276394.tif 000013
【図１２】
2008276394.tif 000014
【図１３】
2008276394.tif 000015
【図１４】
2008276394.tif 000016
【図１５】
2008276394.tif 000017
【図１６】
2008276394.tif 000018
【図１７】
2008276394.tif 000019
【図１８】
2008276394.tif 000020
【図１９】
2008276394.tif 000021
【図２０】
2008276394.tif 000022
【図２１】
2008276394.tif 000023
【図２２】
2008276394.tif 000024
【図２３】
2008276394.tif 000025
【図２４】
2008276394.tif 000026
【図２５】
2008276394.tif 000027
【図２６】
2008276394.tif 000028
【図２７】
2008276394.tif 000029
【図２８】
2008276394.tif 000030
【図２９】
2008276394.tif 000031
【図３０】
2008276394.tif 000032