(57)【要約】【課題】  プロセス又はプロセス定義の編集の支援を行うことを目的とする。【解決手段】  プロセス又はプロセスのテンプレートであるプロセス定義を編集する際に、プロセスに係る制約条件に基づいて、編集の支援を行う編集支援手段を有することによって上記課題を解決する。【選択図】  図４
2005227960.tif 000002
【特許請求の範囲】
【請求項１】
プロセス又はプロセスのテンプレートであるプロセス定義を編集する際に、プロセスに係る制約条件に基づいて、前記編集の支援を行う編集支援手段を有することを特徴とするプロセス編集支援装置。
【請求項２】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ又はプロセスの成果物同士の関連性に係る条件であることを特徴とする請求項１記載のプロセス編集支援装置。
【請求項３】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティと、該アクティビティ又はプロセスの成果物と、の関連性に係る条件であることを特徴とする請求項１又は２記載のプロセス編集支援装置。
【請求項４】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ同士の関連性に係る条件であることを特徴とする請求項１乃至３何れか一項記載のプロセス編集支援装置。
【請求項５】
制約条件管理手段において管理されている前記制約条件を、参照する参照手段を更に有することを特徴とする請求項１乃至４何れか一項記載のプロセス編集支援装置。
【請求項６】
前記編集の支援に係る画面を表示する支援画面表示手段を更に有することを特徴とする請求項１乃至５何れか一項記載のプロセス編集支援装置。
【請求項７】
前記プロセスは、動作中のプロセスであることを特徴とする請求項１乃至６何れか一項記載のプロセス編集支援装置。
【請求項８】
プロセス又はプロセスを構成するアクティビティの成果物を登録する成果物登録手段を有することを特徴とするプロセス管理装置。
【請求項９】
前記プロセスに係る制約条件を管理する制約条件管理手段を有することを特徴とする請求項８記載のプロセス管理装置。
【請求項１０】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ又はプロセスの成果物同士の関連性に係る条件であることを特徴とする請求項９記載のプロセス管理装置。
【請求項１１】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティと、該アクティビティ又はプロセスの成果物と、の関連性に係る条件であることを特徴とする請求項９又は１０記載のプロセス管理装置。
【請求項１２】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ同士の関連性に係る条件であることを特徴とする請求項９乃至１１何れか一項記載のプロセス管理装置。
【請求項１３】
コンピュータに、
プロセス又はプロセスのテンプレートであるプロセス定義を編集する際に、プロセスに係る制約条件に基づいて、前記編集の支援を行う編集支援手順を実行させることを特徴とするプロセス編集支援プログラム。
【請求項１４】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ又はプロセスの成果物同士の関連性に係る条件であることを特徴とする請求項１３記載のプロセス編集支援プログラム。
【請求項１５】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティと、該アクティビティ又はプロセスの成果物と、の関連性に係る条件であることを特徴とする請求項１３又は１４記載のプロセス編集支援プログラム。
【請求項１６】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ同士の関連性に係る条件であることを特徴とする請求項１３乃至１５何れか一項記載のプロセス編集支援プログラム。
【請求項１７】
制約条件管理手段において管理されている前記制約条件を、参照する参照手順を更に有することを特徴とする請求項１３乃至１６何れか一項記載のプロセス編集支援プログラム。
【請求項１８】
前記編集の支援に係る画面を表示する支援画面表示手順を更に有することを特徴とする請求項１３乃至１７何れか一項記載のプロセス編集支援プログラム。
【請求項１９】
前記プロセスは、動作中のプロセスであることを特徴とする請求項１３乃至１８何れか一項記載のプロセス編集支援プログラム。
【請求項２０】
コンピュータに、
プロセス又はプロセスを構成するアクティビティの成果物を登録する成果物登録手順を実行させることを特徴とするプロセス管理プログラム。
【請求項２１】
前記プロセスに係る制約条件を管理する制約条件管理手順を有することを特徴とする請求項２０記載のプロセス管理プログラム。
【請求項２２】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ又はプロセスの成果物同士の関連性に係る条件であることを特徴とする請求項２１記載のプロセス管理プログラム。
【請求項２３】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティと、該アクティビティ又はプロセスの成果物と、の関連性に係る条件であることを特徴とする請求項２１又は２２記載のプロセス管理プログラム。
【請求項２４】
前記プロセスに係る制約条件は、プロセスを構成するアクティビティ同士の関連性に係る条件であることを特徴とする請求項２１乃至２３何れか一項記載のプロセス管理プログラム。
【請求項２５】
請求項１３乃至１９何れか一項記載のプロセス編集支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２６】
請求項２０乃至２４何れか一項記載のプロセス管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２７】
プロセス又はプロセスのテンプレートであるプロセス定義を編集する際に、プロセスに係る制約条件に基づいて、前記編集の支援を行う編集支援段階を有することを特徴とするプロセス編集支援方法。
【請求項２８】
プロセス又はプロセスを構成するアクティビティの成果物を登録する成果物登録段階を有することを特徴とするプロセス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス編集支援装置、プロセス管理装置、プロセス編集支援プログラム、プロセス管理プログラム、記録媒体、プロセス編集支援方法及びプロセス管理方法に関する。
【背景技術】
【０００２】
近年、複数の担当者がネットワークを経由して仕事をする際に、該仕事を円滑に進めるため、担当者間で受け渡すドキュメントや情報の流れを管理し、自動化するワークフローシステムが知られている（例えば、非特許文献１〜３参照。）。
【非特許文献１】速水治夫、「ここまできたワークフロー管理システム（１）」情報処理学会誌、Ｖｏｌ．３９、ＮＯ．１１、ｐ１１６０−ｐ１１６５（１９９８）
【非特許文献２】速水治夫、阪口俊昭、渋谷亮一、「ここまできたワークフロー管理システム（２）」情報処理学会誌、Ｖｏｌ．３９、ＮＯ．１２、ｐ１２５８−ｐ１２６３（１９９８）
【非特許文献３】速水治夫、渋谷亮一、鈴木登雄、生駒順一、寺下陽介、植野直樹、金子聡、林潔、「ここまできたワークフロー管理システム（３）」情報処理学会誌  Ｖｏｌ．４０、ＮＯ．５、ｐ５０７−ｐ５１３（１９９９）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のワークフローシステムにおいては、ユーザが、プロセス又はプロセス定義を編集する際に、プロセスに係る制約条件に違反して編集していないか自分自身で判断しながら編集する必要がある問題があった。
【０００４】
本発明は、上記の点に鑑みなされたもので、プロセス又はプロセス定義の編集の支援を行うことを目的とする。
【課題を解決するための手段】
【０００５】
そこで、上記問題を解決するため、本発明のプロセス編集支援装置は、プロセス又はプロセスのテンプレートであるプロセス定義を編集する際に、プロセスに係る制約条件に基づいて、前記編集の支援を行う編集支援手段を有することを特徴とする。
【０００６】
本発明によれば、プロセス又はプロセスのテンプレートであるプロセス定義を編集する際に、プロセスに係る制約条件に基づいて、前記編集の支援を行う編集支援手段を有することにより、プロセス又はプロセス定義の編集の支援を行うことができる。
【０００７】
また、本発明のプロセス管理装置は、プロセス又はプロセスを構成するアクティビティの成果物を登録する成果物登録手段を有することを特徴とする。
【０００８】
本発明によれば、プロセス又はプロセスを構成するアクティビティの成果物を登録する成果物登録手段を有することにより、プロセス又はプロセスを構成するアクティビティの実行の結果としての成果物を保持、管理することができる。
【０００９】
また、上記課題を解決するための手段として、プロセス編集支援プログラム、プロセス管理プログラム、記録媒体、プロセス編集支援方法及びプロセス管理方法としてもよい。
【発明の効果】
【００１０】
本発明によれば、プロセス又はプロセス定義の編集の支援を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面に基づいて説明する。初めに、サーバ１のハードウェア構成の一例を、図１を用いて説明する。図１は、サーバの一例のハードウェア構成図である。
【００１２】
図１に示されるサーバ１のハードウェア構成は、それぞれバスで相互に接続されている入力装置１１と、表示装置１２と、ドライブ装置１３と、記録媒体１４と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１７と、インターフェース装置１８と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１９と、から構成されている。
【００１３】
入力装置１１は、サーバ１の利用者が操作するキーボード及びマウス等で構成され、サーバ１に各種操作信号を入力するのに用いられる。表示装置１２は、サーバ１の利用者が利用するディスプレイ等で構成され、各種情報を表示する。インターフェース装置１８は、サーバ１をネットワーク等に接続するインターフェースである。
【００１４】
後述する、ソフトウェアに対応するプログラム、例えばプロセス定義管理部２２、プロセス定義データベース２３、ワークフローエンジン２５、プロセスインスタンスデータベース２６、制約条件データベース２８等は、例えばＣＤ−ＲＯＭ等の記録媒体１４によってサーバ１に提供されるか、ネットワークを通じてダウンロードされる。記録媒体１４は、ドライブ装置１３にセットされ、プログラムが記録媒体１４からドライブ装置１３を介してＨＤＤ１９にインストールされる。
【００１５】
ＲＯＭ１５は、データ等を格納する。ＲＡＭ１６は、サーバ１の起動時にＨＤＤ１９からプログラム等を読み出して格納する。ＣＰＵ１７は、ＲＡＭ１６に読み出され格納されたプログラム等に従って処理を実行する。
【００１６】
以下、クライアント３のハードウェア構成の一例を、図２を用いて説明する。図２は、クライアントの一例のハードウェア構成図である。
【００１７】
図２に示されるクライアント３のハードウェア構成は、それぞれバスで相互に接続されている入力装置３１と、表示装置３２と、ドライブ装置３３と、記録媒体３４と、ＲＯＭ３５と、ＲＡＭ３６と、ＣＰＵ３７と、インターフェース装置３８と、ＨＤＤ３９と、から構成されている。
【００１８】
入力装置３１は、クライアント３の利用者が操作するキーボード及びマウス等で構成され、クライアント３に各種操作信号を入力するのに用いられる。表示装置３２は、クライアント３の利用者が利用するディスプレイ等で構成され、各種情報を表示する。インターフェース装置３８は、クライアント３をネットワーク等に接続するインターフェースである。
【００１９】
後述する、ソフトウェアに対応するプログラム、例えばプロセス定義ツール２１、プロセス実行時編集ツール２７、ワークフローアプリケーション２４等は、例えばＣＤ−ＲＯＭ等の記録媒体３４によってクライアント３に提供されるか、ネットワークを通じてダウンロードされる。記録媒体３４は、ドライブ装置３３にセットされ、プログラムが記録媒体３４からドライブ装置３３を介してＨＤＤ３９にインストールされる。
【００２０】
ＲＯＭ３５は、データ等を格納する。ＲＡＭ３６は、クライアント３の起動時にＨＤＤ３９からプログラム等を読み出して格納する。ＣＰＵ３７は、ＲＡＭ３６に読み出され格納されたプログラム等に従って処理を実行する。
【００２１】
以下、本明細書中で用いる用語を、図３を用いて説明する。図３は、明細書中で用いる用語を説明するための図である。
【００２２】
本明細書中では、プロセスとは、ある仕事を遂行するための処理の流れのことである。また、アクティビティとは、プロセスを構成する個々の仕事である。アクティビティは、開始、終了、待機等の状態を持っており、該状態の推移によって、例えば後述するソフトウェア等から成るワークフローシステム（以下、単にワークフローシステムともいう）は、プロセスの進行状況を表現する。また、トランジションは、アクティビティと、アクティビティと、の処理の順序を規定するものである。なお、トランジションも状態を持っており、該状態によって、ワークフローシステムは、接続するアクティビティの状態遷移条件を決定する。
【００２３】
また、フローは、アクティビティと、トランジションと、で表現した処理の流れ図である。また、プロセス定義は、プロセスのテンプレートであり、実行前のプロセスのフローを定義する。また、プロセスインスタンスフローは、実行中のプロセスのフローである。
【００２４】
ここで、プロセスインスタンスは、プロセス定義を実体化したものであり、実際の仕事のコンテンツを含んでいる。上述したプロセスインスタンスフローは、プロセスインスタンスのフロー定義であり、通常は、元になったプロセス定義と同じものである。
【００２５】
しかしながら、後述するように、本ワークフローシステムにおいては、プロセスインスタンスフローと、プロセス定義と、を異なる実体として扱い、個別に操作可能となっている。したがって、本ワークフローシステムにおいて、プロセスインスタンスフローを変更した場合、該変更は、元となったプロセス定義に反映されることはなく、また、プロセス定義に対する変更も、既にインスタンス化されたプロセスに反映されることはない。
【００２６】
以下、サーバ１及びクライアント３に実装されるソフトウェア構成の一例を、図４を用いて説明する。図４は、ソフトウェア構成図である。
【００２７】
図４に示されるソフトウェア構成は、プロセス定義ツール２１と、プロセス定義管理部２２と、プロセス定義データベース２３と、ワークフローアプリケーション２４と、ワークフローエンジン２５と、プロセスインスタンスデータベース２６と、プロセス実行時編集ツール２７と、制約条件データベース２８と、を含む。
【００２８】
プロセス定義ツール２１は、プロセスの定義を行うツールであり、ユーザからのプロセスの定義又はプロセス定義の編集の要求に基づいて、制約条件データベース２８に格納されている制約条件を参照し、ユーザに対して定義又は編集の支援を行ったり、プロセス定義管理部２２を介して、編集した又は新たに作成したプロセス定義をプロセス定義データベース２３に登録したり、プロセス定義管理部２２を介して、プロセス定義データベース２３からプロセス定義を取得したりする。なお、ユーザとは、例えばワークフローの参加者等のことをいう。以下においても同様である。また、図４においては、プロセス定義ツール２１が、直接制約条件データベース２８に格納されている制約条件を参照するように示してあるが、例えば、ワークフローエンジン２５を介して、直接制約条件データベース２８に格納されている制約条件を参照するようにしてもよい。
【００２９】
プロセス定義管理部２２は、プロセス定義データベース２３に格納されているプロセス定義を管理する管理部であって、プロセス定義ツール２１からの要求に基づいて、対応するプロセス定義をプロセス定義データベース２３から取得したり、対応するプロセス定義をプロセス定義データベース２３に登録したりする。
【００３０】
プロセス定義データベース２３は、プロセス定義を格納するデータベースである。
【００３１】
ワークフローアプリケーション２４は、アクティビティを実行するアプリケーションであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６よりプロセスを構成するアクティビティやトランジションのステータスを取得したり、プロセスインスタンスデータベース２６に登録されているプロセスを構成するアクティビティやトランジションのステータスを変更したりする。また、ワークフローアプリケーション２４は、ワークフローエンジン２５を介して、プロセス定義データベース２３よりプロセス定義を取得し、該プロセス定義に基づいて、プロセスのインスタンス化を行い、該インスタンス化されたプロセスを、プロセスインスタンスデータベース２６に格納する。
【００３２】
ワークフローエンジン２５は、ワークフローアプリケーション２４からの要求に応じてプロセス定義データベースより対応するプロセス定義を取得し、該プロセス定義に基づいて、プロセスのインスタンス化を行い、プロセスインスタンスデータベース２６に格納したり、要求に基づいて、プロセスを構成するアクティビティやトランジションのステータスをプロセスインスタンスデータベース２６より取得したり、プロセスインスタンスデータベース２６に登録されているプロセスを構成するアクティビティやトランジションのステータスを変更したりする。
【００３３】
また、ワークフローエンジン２５は、プロセス実行時編集ツール２７又はプロセス定義ツール２１からの要求に応じて、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを抽出したり、プロセス実行時編集ツール２７からの要求に応じて、プロセスインスタンスデータベース２６に格納されているプロセスインスタンスフローを更新したりする。なお、プロセスインスタンスフローの更新としては、例えばアクティビティの保留や、アクティビティの先取り、アクティビティの追加等がある。
【００３４】
また、ワークフローエンジン２５は、ワークフローアプリケーション２４等からの要求に応じて、例えばアクティビティ又はプロセスの結果としての成果物を制約条件データベース２８の成果物管理表に登録する。
【００３５】
プロセスインスタンスデータベース２６は、プロセスインスタンスを格納するデータベースである。
【００３６】
プロセス実行時編集ツール２７は、プロセスの編集を行うツールであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを取得したり、ユーザからのプロセスインスタンスフロー（又はプロセス）の編集の要求に基づいて、制約条件データベース２８に格納されている制約条件を参照し、ユーザに対して編集の支援を行ったり、ユーザが行った編集を反映させたプロセスインスタンスフロー（又はプロセス）を、ワークフローエンジン２５を介してプロセスインスタンスデータベース２６に格納し、プロセスインスタンスフロー（又はプロセス）を更新したりする。なお、図４においては、プロセス実行時編集ツール２７が、直接制約条件データベース２８に格納されている制約条件を参照するように示してあるが、例えば、ワークフローエンジン２５を介して、直接制約条件データベース２８に格納されている制約条件を参照するようにしてもよい。
【００３７】
制約条件データベース２８は、制約条件を格納するデータベースであり、アクティビティ又はプロセスの結果としての成果物を管理する成果物管理表と、アクティビティ同士の関連性を保持するアクティビティ関連表と、アクティビティとアクティビティ又はプロセスの結果としての成果物との関連性を保持するアクティビティ成果物関連表と、アクティビティ又はプロセスの結果としての成果物同士の関連性を保持する成果物関連表と、を含む。
【００３８】
なお、制約条件データベース２８に格納されている制約条件には、アクティビティの実行結果と、フローの進行条件（トランジションの発火条件）と、については定義していないため、アクティビティの実行結果と、フローの進行条件と、の組み合わせによって発生するデッドロックが生じする可能性がある。しかしながら、本発明に係るワークフローシステムにおいては、通常のワークフロー作成ツール等と同様の手法を用い、フローを変更登録する前に、プロセス定義ツール２１又はプロセス実行時編集ツール２７を用いてデッドロックを検出することができる。したがって、変更登録されたフローはデッドロックを発生することがない。
【００３９】
なお、上述したように、例えばプロセス定義ツール２１、プロセス実行時編集ツール２７、ワークフローアプリケーション２４等はクライアント３に実装され、プロセス定義管理部２２、プロセス定義データベース２３、ワークフローエンジン２５、プロセスインスタンスデータベース２６、制約条件データベース２８等はサーバ１に実装される。また、例えばプロセス定義ツール２１、プロセス実行時編集ツール２７、ワークフローアプリケーション２４、プロセス定義管理部２２、プロセス定義データベース２３、ワークフローエンジン２５、プロセスインスタンスデータベース２６、制約条件データベース２８等を、Ｗｅｂサービスとして実装するようにしてもよい。このような構成とした場合、クライアント３と、サーバ１と、の間では、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等をベースとしたＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に従って、通信が行われる。
【００４０】
以下、プロセス定義ツール２１におけるプロセス更新処理の一例を、図５を用いて説明する。図５は、プロセス更新処理を説明するためのシーケンス図（その１）である。
【００４１】
初めにプロセス定義ツール２１は、プロセス定義管理部２２に対して、プロセス定義の取得要求を送信する（シーケンスＳＱ１０）。
【００４２】
プロセス定義ツール２１よりプロセス定義の取得要求を受信したプロセス定義管理部２２は、プロセス定義データベース２３から、要求に応じた対応するプロセス定義を取得する（シーケンスＳＱ１１）。
【００４３】
プロセス定義管理部２２は、取得したプロセス定義を含むプロセス定義の取得応答を作成し、プロセス定義ツール２１に送信する（シーケンスＳＱ１２）。
【００４４】
プロセス定義を取得したプロセス定義ツール２１は、プロセス定義等を含む画面を作成し、ユーザに表示して、該ユーザによるプロセス定義の変更内容を含む変更要求を受け取る（シーケンスＳＱ１３）。
【００４５】
プロセス定義ツール２１は、プロセス定義の変更内容に基づいて、制約条件データベース２８に格納されている制約条件を参照する（シーケンスＳＱ１４、シーケンスＳＱ１５）。
【００４６】
また、プロセス定義ツール２１は、参照した結果に基づいて、プロセス定義の変更内容のチェックを行い、チェックの結果、例えばプロセス定義の変更内容に、制約条件より必要とされるアクティビティを追加する（シーケンスＳＱ１６）。
【００４７】
プロセス定義ツール２１は、例えばアクティビティを追加されたプロセス定義の変更内容を含む、プロセス定義の更新要求を、プロセス定義管理部２２に送信する（シーケンスＳＱ１７）。
【００４８】
プロセス定義ツール２１よりプロセス定義の更新要求を受信したプロセス定義管理部２２は、要求に応じて、プロセス定義データベース２３の対応するプロセス定義を更新する（シーケンスＳＱ１８）。
【００４９】
図５に示されるような処理を行うことによって、ユーザは、支援に基づいて、制約条件に沿ってプロセス定義を更新することができる。また、図５に示されるような処理を行うことによって、制約条件に反したプロセス定義の更新を防ぐことができる。
【００５０】
以下、プロセス定義ツール２１におけるプロセス更新処理の他の例を、図６を用いて説明する。図６は、プロセス更新処理を説明するためのシーケンス図（その２）である。
【００５１】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスインスタンスフローの取得要求を送信する（シーケンスＳＱ２０）。
【００５２】
プロセス実行時編集ツール２７よりプロセスインスタンスフローの取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６から、要求に応じた対応するプロセスインスタンスフローを取得する（シーケンスＳＱ２１）。
【００５３】
ワークフローエンジン２５は、取得したプロセスインスタンスフローを含むプロセスインスタンスフローの取得応答を作成し、プロセス実行時編集ツール２７に送信する（シーケンスＳＱ２２）。
【００５４】
プロセスインスタンスフローを取得したプロセス実行時編集ツール２７は、プロセスインスタンスフロー等を含む画面を作成し、ユーザに表示して、該ユーザによるプロセスインスタンスフロー（又はプロセス）の変更内容を含む変更要求を受け取る（シーケンスＳＱ２３）。
【００５５】
また、プロセス実行時編集ツール２７は、プロセスインスタンスフロー（又はプロセス）の変更内容に基づいて、制約条件データベース２８に格納されている制約条件を参照する（シーケンスＳＱ２４、シーケンスＳＱ２５）。
【００５６】
また、プロセス実行時編集ツール２７は、参照した結果に基づいて、プロセスインスタンスフロー（又はプロセス）の変更内容のチェックを行い、チェックの結果、例えばプロセスインスタンスフロー（又はプロセス）の変更内容に、制約条件より必要とされるアクティビティを追加する（シーケンスＳＱ２６）。
【００５７】
プロセス実行時編集ツール２７は、例えばアクティビティを追加されたプロセスインスタンスフロー（又はプロセス）の変更内容を含む、プロセスインスタンスフロー（又はプロセス）の更新要求を、ワークフローエンジン２５に送信する（シーケンスＳＱ２７）。
【００５８】
プロセス実行時編集ツール２７よりプロセスインスタンスフロー（又はプロセス）の更新要求を受信したワークフローエンジン２５は、要求に応じて、プロセスインスタンスデータベース２６の対応するプロセスインスタンスフロー（又はプロセス）を更新する（シーケンスＳＱ２８）。
【００５９】
図６に示されるような処理を行うことによって、ユーザは、支援に基づいて、制約条件に沿ってプロセスインスタンスフロー（又はプロセス）を更新することができる。また、図６に示されるような処理を行うことによって、制約条件に反したプロセスインスタンスフロー（又はプロセス）の更新を防ぐことができる。
【００６０】
なお、以下では、プロセス定義ではなく、プロセスインスタンスフロー（又はプロセス）を編集し、更新する例を用いて説明を行う。
【００６１】
以下、成果物とアクティビティとの関連性に基づくプロセス更新処理の一例を、図７を用いて説明する。図７は、成果物とアクティビティとの関連性に基づくプロセス更新処理の一例を説明するためのフローチャートである。
【００６２】
ステップＳ１０においてプロセス実行時編集ツール２７は、ユーザ等からの要求に応じてプロセスに成果物を追加する。なお、成果物とはプロセスの成果物又はアクティビティの成果物のことをいう。以下においても、特に言及しない限り同様である。
【００６３】
ステップＳ１０に続いてステップＳ１１に進み、プロセス実行時編集ツール２７は、ステップＳ１０において追加された成果物に関連するアクティビティを、制約条件データベース２８より検索する。
【００６４】
ステップＳ１１に続いてステップＳ１２に進み、プロセス実行時編集ツール２７は、ステップＳ１１において検索した検索結果に基づいて、ステップＳ１０において追加した成果物に関連して追加すべきアクティビティが存在するかどうかを判定する。
【００６５】
プロセス実行時編集ツール２７は、追加すべきアクティビティが存在すると判定すると（ステップＳ１２においてＹＥＳ）、ステップＳ１３に進み、追加すべきアクティビティが存在しないと判定すると（ステップＳ１２においてＮＯ）、処理を終了する。
【００６６】
ステップＳ１３においては、プロセス実行時編集ツール２７が、ステップＳ１０において追加された成果物に関連するアクティビティをプロセスに追加する。
【００６７】
図７に示されるような処理を行うことによって、プロセス実行時編集ツール２７は、ユーザが追加した成果物に関連するアクティビティをプロセスに追加することができる。
【００６８】
以下、成果物同士の関連性に基づくプロセス更新処理の一例を、図８を用いて説明する。図８は、成果物同士の関連性に基づくプロセス更新処理の一例を説明するためのフローチャートである。
【００６９】
ステップＳ２０においてプロセス実行時編集ツール２７は、ユーザ等からの要求に応じてプロセスに成果物を追加する。
【００７０】
ステップＳ２０に続いてステップＳ２１に進み、プロセス実行時編集ツール２７は、ステップＳ２０において追加された成果物に関連する他の成果物を、制約条件データベース２８より検索する。
【００７１】
ステップＳ２１に続いてステップＳ２２に進み、プロセス実行時編集ツール２７は、ステップＳ２１において検索した検索結果に基づいて、ステップＳ２０において追加した成果物に関連して追加すべき成果物が存在するかどうかを判定する。
【００７２】
プロセス実行時編集ツール２７は、追加すべき成果物が存在すると判定すると（ステップＳ２２においてＹＥＳ）、ステップＳ２３に進み、追加すべき成果物が存在しないと判定すると（ステップＳ２２においてＮＯ）、処理を終了する。
【００７３】
ステップＳ２３においては、プロセス実行時編集ツール２７が、ステップＳ２０において追加された成果物に関連する成果物をプロセスに追加し、ステップＳ２１からの処理を繰り返す。
【００７４】
図８に示されるような処理を行うことによって、プロセス実行時編集ツール２７は、ユーザが追加した成果物に関連する成果物をプロセスに追加することができる。
【００７５】
なお、図８においては説明を省略したが、例えば、ステップＳ２０及びステップＳ２３においてプロセスに成果物を追加された際に成果物とアクティビティとの関係もチェックし、図７に示したような処理を実行するようにしてもよい。
【００７６】
以下、アクティビティ同士の関連性に基づくプロセス更新処理の一例を、図９を用いて説明する。図９は、アクティビティ同士の関連性に基づくプロセス更新処理の一例を説明するためのフローチャートである。
【００７７】
ステップＳ３０においてプロセス実行時編集ツール２７は、ユーザ等からの要求に応じてプロセスにアクティビティを追加する。
【００７８】
ステップＳ３０に続いてステップＳ３１に進み、プロセス実行時編集ツール２７は、ステップＳ３０において追加されたアクティビティに関連する他のアクティビティを、制約条件データベース２８より検索する。
【００７９】
ステップＳ３１に続いてステップＳ３２に進み、プロセス実行時編集ツール２７は、ステップＳ３１において検索した検索結果に基づいて、ステップＳ３０において追加したアクティビティに関連して追加すべきアクティビティが存在するかどうかを判定する。
【００８０】
プロセス実行時編集ツール２７は、追加すべきアクティビティが存在すると判定すると（ステップＳ３２においてＹＥＳ）、ステップＳ３３に進み、追加すべきアクティビティが存在しないと判定すると（ステップＳ３２においてＮＯ）、処理を終了する。
【００８１】
ステップＳ３３においては、プロセス実行時編集ツール２７が、ステップＳ３０において追加されたアクティビティに関連するアクティビティをプロセスに追加し、ステップＳ３１からの処理を繰り返す。
【００８２】
図９に示されるような処理を行うことによって、プロセス実行時編集ツール２７は、ユーザが追加したアクティビティに関連するアクティビティをプロセスに追加することができる。
【００８３】
以下、制約条件データベース２８に格納されている成果物関連表の一例を、図１０に示す。図１０は、成果物関連表の一例を示す図である。
【００８４】
図１０（Ａ）は、成果物同士の関連性を包含関係で表した一例である。また、図１０（Ｂ）は成果物同士の関連性を依存関係で表した一例である。
【００８５】
以下、制約条件データベース２８に格納されているアクティビティ成果物関連表の一例を、図１１に示す。図１１は、アクティビティ成果物関連表の一例を示す図である。
【００８６】
図１１（Ａ）は、アクティビティと成果物との関連性を包含関係で表し一例である。また、図１１（Ｂ）は、アクティビティと成果物との関連性を依存関係で表した一例である。
【００８７】
以下、制約条件データベース２８に格納されているアクティビティ関連表の一例を、図１２に示す。図１２は、アクティビティ関連表の一例を示す図である。
【００８８】
図１２に示されるように、アクティビティ関連表には、アクティビティの順序関係（例えば、先行、後続等）や、開始条件（例えば、パラメータと条件等）が含まれている。
【００８９】
以下、プロセスの一例を、図１３に示す。図１３は、プロセスの一例を示す図である。なお、図１３では、プロセスの一例として、開発プロセスを示している。また、該開発プロセスは、サブフローとして、要求分析と、仕様分析と、設計と、コーディングとテストと、出荷と、を含んでいる。また、アクティビティとして、分析／検討会議と、会議やレビュー等のミーティングと、ドキュメント作成（要求仕様書、ソフトウェア仕様書、構造設計書、詳細設計書、マニュアル）と、コーディングと、単体テストと、結合テストと、パッケージングと、がある。
【００９０】
以下、図１３に示した開発プロセスにおける制約条件の一例を、図１４から図１６を用いて説明する。図１４は、開発プロセスにおける成果物同士の関連性の一例を示す図である。成果物の関連性は、ある成果物を変更するときは、該変更する成果物に関連する他の成果物を変更しなければならないことを示している。
【００９１】
なお、図１４ｃ．において双方向の矢印になっているのは、相互依存があることを表しており、成果物「詳細設計書」を変更したら、成果物「ソースコード」を変更する必要があり、同様に、成果物「ソースコード」を変更したら、成果物「詳細設計書」を変更する必要があることを表している。
【００９２】
また、図１４ｂ．に（場合により）と書かれているように、制約条件には、必須の制約条件（必須制約条件）と、条件付の制約条件（条件付制約条件）と、がある。条件付制約条件は、条件により適用するかどうかを決定し、ユーザが実行する際に適用の有無を判断し、決定するようにしてもよい。
【００９３】
図１５は、開発プロセスにおけるアクティビティと成果物との関連性の一例を示す図である。例えば、図１５（１）には、アクティビティ「構造設計分析」、アクティビティ「構造設計検討会議」、アクティビティ「構造設計書作成」と、その結果として生み出される成果物「構造設計書」と、の関連性が示されている。
【００９４】
図１６は、開発プロセスにおけるアクティビティ同士の関連性の一例を示す図である。図１６には、アクティビティの順序関係が示されている。
【００９５】
以下、開発プロセスにおけるプロセス更新処理の一例を、図１７を用いて説明する。図１７は、開発プロセスにおけるプロセス更新処理を説明するための図（その１）である。
【００９６】
図１７に示されるように現在位置は、アクティビティの「詳細設計仕様確認会議」である。ここで、詳細設計仕様確認会議において、成果物「詳細設計書」を追加することになり、ユーザが所定の操作を行うと、プロセス実行時編集ツール２７は、成果物「詳細設計書」を追加した後に、図１５に示した制約条件（２）より、図１７に示されるように、アクティビティ「詳細設計分析」と、アクティビティ「詳細設計検討会議」と、アクティビティ「詳細設計書作成」と、を追加する。
【００９７】
また、プロセス実行時編集ツール２７は、図１６に示した制約条件Ａ）のアクティビティの順序関係より、アクティビティ「詳細設計仕様確認会議」を追加する必要があるが、ここでは追加位置と一致するので追加しない。
【００９８】
また、プロセス実行時編集ツール２７は、図１４に示した制約条件ｂ．より、構造設計書の変更が必要となる可能性があると判定し、構造設計書の変更の必要性を確認する。例えばプロセス実行時編集ツール２７は、構造設計書を変更するかどうかをユーザ等に表示して、ユーザからの指示に応じて、構造設計書の変更の必要性を確認する。
【００９９】
プロセス実行時編集ツール２７は、構造設計書の変更が必要であると判定すると、成果物「構造設計書」を追加し、構造設計書の変更が必要でないと判定すると、成果物「構造設計書」を追加しない。なお、以下では、説明の簡略化のため、プロセス実行時編集ツール２７が、構造設計書の変更が必要であると判定して、成果物「構造設計書」を追加したとして処理を説明する。
【０１００】
プロセス実行時編集ツール２７は、成果物「構造設計書」を追加すると、図１５に示した制約条件（１）より、アクティビティ「構造設計分析」と、アクティビティ「構造設計検討会議」と、アクティビティ「構造設計書作成」と、を追加する。
【０１０１】
また、プロセス実行時編集ツール２７は、図１６に示した制約条件Ａ）のアクティビティの順序関係より、アクティビティ「構造設計仕様確認会議」を追加する。
【０１０２】
以下、開発プロセスにおけるプロセス更新処理の他の例を、図１８を用いて説明する。図１８は、開発プロセスにおけるプロセス更新処理を説明するための図（その２）である。
【０１０３】
図１８に示されるように現在位置は、アクティビティの「単体テスト」である。ここで、単体テストにおいて、ユーザが内部的な機能を追加するため成果物「ソースコード」を追加することになり、ユーザが所定の操作を行うと、プロセス実行時編集ツール２７は、成果物「ソースコード」を追加した後に、図１５に示した制約条件（３）より、図１７に示されるように、アクティビティ「コーディング」を追加する。
【０１０４】
また、プロセス実行時編集ツール２７は、図１６に示した制約条件Ｂ）より、アクティビティ「単体テスト」＆アクティビティ「コードレビュー」を追加する。なお、プロセス実行時編集ツール２７は、図１６に示した制約条件Ｂ）のアクティビティ「単体テスト結果報告」以降は未実施のため追加しない。
【０１０５】
次にプロセス実行時編集ツール２７は、図１４に示した制約条件ｃ．により、成果物「詳細設計書」を追加する。
【０１０６】
また、プロセス実行時編集ツール２７は、図１４に示した制約条件ｂ．より、構造設計書の変更が必要となる可能性があると判定し、構造設計書の変更の必要性を確認する。例えばプロセス実行時編集ツール２７は、構造設計書を変更するかどうかをユーザ等に表示して、ユーザからの指示に応じて、構造設計書の変更の必要性を確認する。
【０１０７】
プロセス実行時編集ツール２７は、構造設計書の変更が必要であると判定すると、成果物「構造設計書」を追加し、構造設計書の変更が必要でないと判定すると、成果物「構造設計書」を追加しない。なお、以下では、説明の簡略化のため、プロセス実行時編集ツール２７が、構造設計書の変更が必要であると判定して、成果物「構造設計書」を追加したとして処理を説明する。
【０１０８】
プロセス実行時編集ツール２７は、成果物「構造設計書」を追加すると、図１６に示した制約条件Ａ）より、成果物「詳細設計書」及び成果物「構造設計書」それぞれに対して、アクティビティ「分析」、アクティビティ「検討会議」、アクティビティ「仕様書作成」、アクティビティ「仕様確認会議」の流れを追加する。
【０１０９】
以下、開発プロセスにおけるプロセス更新処理の他の例を、図１９を用いて説明する。図１９は、開発プロセスにおけるプロセス更新処理を説明するための図（その３）である。
【０１１０】
図１９に示されるように現在位置は、アクティビティの「コードＦＩＸ承認会議」である。ここで、ユーザが、アクティビティ「結合テスト」の後に、アクティビティ「負荷テスト」を追加することになり、ユーザが所定の操作を行うと、プロセス実行時編集ツール２７は、アクティビティ「負荷テスト」を追加した後に、図１６に示した制約条件Ｃ）より、アクティビティ「単体テスト」、アクティビティ「結合テスト」、アクティビティ「テストデータ作成」を追加しようとするが、アクティビティの依存関係だけの場合、実施済みのアクティビティは追加しないとのルールを適用して、アクティビティ「テストデータ作成」のみを追加する。
【０１１１】
以下、開発プロセスにおけるプロセス更新処理の他の例を、図２０を用いて説明する。図２０は、開発プロセスにおけるプロセス更新処理を説明するための図（その４）である。
【０１１２】
図２０に示されるように、ユーザが所定の操作を行ってアクティビティ「詳細設計分析」と、アクティビティ「詳細設計検討会議」と、の順序を入れ替えるよう要求すると、プロセス実行時編集ツール２７は、例えば図１６に示した制約条件Ａ）を参照しても、アクティビティ「分析」と、アクティビティ「検討会議」と、に順序関係の制約はないので、ユーザからの要求を許可し、アクティビティ「詳細設計分析」と、アクティビティ「詳細設計検討会議」と、の順序を入れ替える。
【０１１３】
一方、ユーザが所定の操作を行ってアクティビティ「詳細設計書作成」と、アクティビティ「詳細設計仕様確認会議」と、の順序を入れ替えるよう要求すると、プロセス実行時編集ツール２７は、例えば図１６に示した制約条件Ａ）を参照して、アクティビティ「仕様書作成」と、アクティビティ「仕様書確認会議」と、は順序関係の制約があるため、アクティビティ「詳細設計書作成」と、アクティビティ「詳細設計仕様確認会議」と、の順序の入れ替えは出来ない旨をユーザに表示する。
【０１１４】
以下、クライアント３等に実装されているプロセス実行時編集ツール２７におけるＧＵＩの一例を、図２１に示す。図２１は、プロセス実行時編集ツールにおけるＧＵＩの一例を示す図である。
【０１１５】
例えばユーザは、図２１に示されるように、現在実行中のプロセスのフローのアクティビティの内、「ソフトウェア仕様書作成」を選択し、アクティビティ「特許提案書作成」を追加すると、制約条件より、アクティビティ「特許分析」と、アクティビティ「特許検討会議」と、アクティビティ「特許承認会議」と、が追加される。
【０１１６】
また、アクティビティの結果として生み出される成果物として、成果物の管理ビューである「Ｄｏｃｕｍｅｎｔ  Ｖｉｅｗ」に、成果物「特許提案書」と、成果物「特許検討報告書」と、が追加される。
【０１１７】
上述したように、本発明のワークフローシステムを用いることによって、例えば、ユーザが実行中のワークフローを変更する際に、制約条件に基づいて、警告を表示したり、ユーザの変更によって必要となる関連するアクティビティ又は成果物の追加等をサポートしたりすることができる。
【０１１８】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１１９】
【図１】サーバの一例のハードウェア構成図である。
【図２】クライアントの一例のハードウェア構成図である。
【図３】明細書中で用いる用語を説明するための図である。
【図４】ソフトウェア構成図である。
【図５】プロセス更新処理を説明するためのシーケンス図（その１）である。
【図６】プロセス更新処理を説明するためのシーケンス図（その２）である。
【図７】成果物とアクティビティとの関連性に基づくプロセス更新処理の一例を説明するためのフローチャートである。
【図８】成果物同士の関連性に基づくプロセス更新処理の一例を説明するためのフローチャートである。
【図９】アクティビティ同士の関連性に基づくプロセス更新処理の一例を説明するためのフローチャートである。
【図１０】成果物関連表の一例を示す図である。
【図１１】アクティビティ成果物関連表の一例を示す図である。
【図１２】アクティビティ関連表の一例を示す図である。
【図１３】プロセスの一例を示す図である。
【図１４】開発プロセスにおける成果物同士の関連性の一例を示す図である。
【図１５】開発プロセスにおけるアクティビティと成果物との関連性の一例を示す図である。
【図１６】開発プロセスにおけるアクティビティ同士の関連性の一例を示す図である。
【図１７】開発プロセスにおけるプロセス更新処理を説明するための図（その１）である。
【図１８】開発プロセスにおけるプロセス更新処理を説明するための図（その２）である。
【図１９】開発プロセスにおけるプロセス更新処理を説明するための図（その３）である。
【図２０】開発プロセスにおけるプロセス更新処理を説明するための図（その４）である。
【図２１】プロセス実行時編集ツールにおけるＧＵＩの一例を示す図である。
【符号の説明】
【０１２０】
１    サーバ
３    クライアント
１１    入力装置
１２    表示装置
１３    ドライブ装置
１４    記録媒体
１５    ＲＯＭ
１６    ＲＡＭ
１７    ＣＰＵ
１８    インターフェース装置
１９    ＨＤＤ
２１    プロセス定義ツール
２２    プロセス定義管理部
２３    プロセス定義データベース
２４    ワークフローアプリケーション
２５    ワークフローエンジン
２６    プロセスインスタンスデータベース
２７    プロセス実行時編集ツール
２８    制約条件データベース
３１    入力装置
３２    表示装置
３３    ドライブ装置
３４    記録媒体
３５    ＲＯＭ
３６    ＲＡＭ
３７    ＣＰＵ
３８    インターフェース装置
３９    ＨＤＤ
【図１】
2005227960.tif 000003
【図２】
2005227960.tif 000004
【図３】
2005227960.tif 000005
【図４】
2005227960.tif 000006
【図５】
2005227960.tif 000007
【図６】
2005227960.tif 000008
【図７】
2005227960.tif 000009
【図８】
2005227960.tif 000010
【図９】
2005227960.tif 000011
【図１０】
2005227960.tif 000012
【図１１】
2005227960.tif 000013
【図１２】
2005227960.tif 000014
【図１３】
2005227960.tif 000015
【図１４】
2005227960.tif 000016
【図１５】
2005227960.tif 000017
【図１６】
2005227960.tif 000018
【図１７】
2005227960.tif 000019
【図１８】
2005227960.tif 000020
【図１９】
2005227960.tif 000021
【図２０】
2005227960.tif 000022
【図２１】
2005227960.tif 000023