JP2009122874A - プロセスシミュレーションシステム - Google Patents
プロセスシミュレーションシステム Download PDFInfo
- Publication number
- JP2009122874A JP2009122874A JP2007294972A JP2007294972A JP2009122874A JP 2009122874 A JP2009122874 A JP 2009122874A JP 2007294972 A JP2007294972 A JP 2007294972A JP 2007294972 A JP2007294972 A JP 2007294972A JP 2009122874 A JP2009122874 A JP 2009122874A
- Authority
- JP
- Japan
- Prior art keywords
- activity
- information
- probability
- storage means
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 209
- 238000004088 simulation Methods 0.000 title claims abstract description 50
- 230000000694 effects Effects 0.000 claims abstract description 194
- 238000012545 processing Methods 0.000 claims abstract description 73
- 230000007704 transition Effects 0.000 claims abstract description 71
- 238000009826 distribution Methods 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims description 82
- 230000007547 defect Effects 0.000 claims description 78
- 238000013500 data storage Methods 0.000 description 9
- 239000006185 dispersion Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 6
- 238000012384 transportation and delivery Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000005315 distribution function Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】本発明は、各アクティビティ毎の所要時間等の確率情報に基づき、プロセス実行時のプロセス全体の所要時間等の予測統計情報を、シミュレーションによって取得することを目的とするものである。
【解決手段】プロセス定義の各アクティビティ毎に記憶された所要時間や遷移先アクティビティ等の確率分布情報と、乱数とによって、所要時間・遷移先アクティビティ等を決定し、決定した所要時間・遷移先アクティビティ等を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行するシミュレーションを、多数回実行することにより、所要時間等の予測統計情報を取得する。
【選択図】図1
【解決手段】プロセス定義の各アクティビティ毎に記憶された所要時間や遷移先アクティビティ等の確率分布情報と、乱数とによって、所要時間・遷移先アクティビティ等を決定し、決定した所要時間・遷移先アクティビティ等を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行するシミュレーションを、多数回実行することにより、所要時間等の予測統計情報を取得する。
【選択図】図1
Description
本発明は、プロセスシミュレーションシステムに関するものである。
近年、業務のプロセスを、コンピュータシステムの支援によって設計・運用することにより、業務の生産性を上げる取り組みが、多くの企業でなされており、ワークフローの設計・運用ソフトウエアも多く発売されている。ワークフローは、WfMC(Workflow Management Coalition)(http://www.wfmc.org)によって、標準化が推進されている。
定型業務以外であっても、ソフトウエア開発のプロジェクト等では、アローダイアグラムやガントチャート図等を用いた進捗計画を立て、プロジェクトはその進捗計画に基づいて業務を実行するべきであるとされている。この進捗計画は、プロセス定義の一種であると言える。
業務プロセスをあらかじめ定義して実行することは、業務を制御し改善していくために有効である。しかし、あらかじめ定義した手順自体に問題があると、現場業務に混乱をきたすこともあるため、プロセス定義は、実際の作業内容をふまえ、問題がないかを十分に検討して設計されなくてはならない。
なお、本発明における「プロセス」「プロセス定義」「アクティビティ」の用語の意味はWfMCの定義に従う。
また、アクティビティ間で引き継がれる文書・情報・タスク等の欠陥、瑕疵、問題点等を「不具合」と呼び、不具合の発見により文書・情報・タスク等の引き継ぎが中断され、以前に実行したアクティビティへ戻されることを「差し戻し」と呼ぶこととする。
特開2000−250967号公報
特開2007−109068号公報
特開平8−190587号公報
Workflow Management Coalition Terminology & Glossary (1999年2月)(http://www.wfmc.org)
プロセス定義は、実際の作業内容をふまえ、問題がないかを十分に検討して設計されなくてはならない。しかし、実際の作業内容を把握しても、それを業務プロセスの設計に反映させるのは困難である。たとえば、プロジェクト管理において全体納期等を見積もるためにPERTという手法が知られているが、プロセス実行時の条件によって複数のアクティビティから1つを選択して実行する場合や、差し戻しが発生する場合について手法を適用することはできない。また、各アクティビティの所要時間は、業務の難易度や担当者のスキルによってばらつくが、そのバラツキ具合の情報を反映させることができない。
このため、プロセス定義の最適化や改善は、プロセス定義設計者の主観、経験、技量に頼る部分が大きいのが現状である。
また、プロセス運用後の結果によって、プロセス定義の良し悪しを判断することも難しい。なぜなら、プロセス運用後の結果には、担当者のスキルや士気など、プロセス定義以外の要因が多く含まれているためである。全く同じ条件で複数のプロセスの結果を客観的な数値によって比較することができない限り、純粋にプロセス定義の良し悪しを判断することはできない。
本発明は、各アクティビティ毎の所要時間等の確率情報に基づき、プロセス実行時のプロセス全体の所要時間等の予測統計情報を、シミュレーションによって取得することを目的とするものである。
この課題を解決するための請求項1〜2の発明は、図1のように構成されるシステムである。
請求項1に記載の発明では、1は確率情報記憶手段であり、プロセス定義の各アクティビティ毎に、アクティビティの所要時間の確率分布の情報と、遷移先アクティビティの確率分布の情報とを記憶する。
2は乱数発生手段であり、乱数、または、疑似乱数を発生する。
3はシミュレーション処理・結果記憶手段であり、確率情報記憶手段1から取得した確率情報と、乱数発生手段2から取得した乱数とによって、所要時間・遷移先アクティビティを決定し、決定した所要時間を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行する。
4は統計処理・情報表示手段であり、シミュレーション処理・結果記憶手段3を多数回実行した結果の統計情報を表示する。
請求項2に記載の発明では、1は確率情報記憶手段であり、プロセス定義の各アクティビティ毎に、アクティビティの所要時間の確率分布の情報と、アクティビティ実行により混入される不具合の個数の確率分布の情報と、既に混入された不具合を発見する確率の情報とを記憶する。
2は乱数発生手段であり、乱数、または、疑似乱数を発生する。
3はシミュレーション処理・結果記憶手段であり、確率情報記憶手段1から取得した確率情報と、乱数発生手段2から取得した乱数と、不具合混入元情報(混入済みの各不具合がどのアクティビティで混入されたかの情報)とによって、所要時間・遷移先アクティビティ・新たに混入される不具合の個数を決定し、不具合混入元情報を更新し、決定した所要時間を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行する。
4は統計処理・情報表示手段であり、シミュレーション処理・結果記憶手段3を多数回実行した結果の統計情報を表示する。
本発明により、各アクティビティ毎の所要時間等の確率情報に基づき、プロセス実行時のプロセス全体の所要時間等の予測統計情報を、シミュレーションによって取得することができる。
これにより、アクティビティの選択実行や差し戻しが発生するプロセスであっても、それらの確率を設定することにより、プロセス実行結果の予測統計情報を得ることができる。また、各アクティビティの所要時間のバラツキ具合を、予測統計情報に反映させることができる。さらに、複数のプロセス定義の生産性を、全く同じ条件下で、客観的な数値によってシミュレーション比較することが可能である。
このシステムをワークフロー作成・運用ソフトや、プロジェクト進捗計画・管理ソフトなどに組み込むことにより、作成したプロセス定義を実際に運用する前に、プロセスの生産性を評価することが可能である。生産性に問題があれば、プロセス定義の一部を変更し、再度シミュレーションして効果を確認し、生産性が改善したらそれを採用するというトライ&エラーの手法によって、運用前にプロセスの完成度を上げることができる。
さらに、たとえば、ウオーターフォールモデルとスパイラルモデルではどちらが品質・コスト・納期面でそれぞれ優れているか、といった開発プロセスの問題を、個別のプロジェクトの特性に応じて検討することが可能である。各開発プロセスについてプロセス定義データを作成し、各アクティビティの確率情報を過去のプロジェクトの実績値を元に見積もり、本発明のシステムを実行することにより、各開発プロセス毎の品質・コスト・納期の平均・分散を得ることができる。たとえば、納期の平均が小さく分散が大きい場合、平均して短納期だが納期遅延のリスクが高い開発プロセスである、という評価をすることができる。
さらに、請求項2の発明では、経過時間毎の不具合数の平均・標準偏差(σ)を取得することも可能である。プロジェクト計画時に予想不具合数の平均、および、平均±1σの推移をグラフとして作成し、プロジェクト実行時に実際の不具合数が±1σより外れた場合に原因を調査するというようにして、プロジェクト管理のモニタリング指標として使用するといった応用方法が考えられる。
本発明の実施の形態を以下の実施例1〜3に説明する。
以下、第一の発明の実施形態を、図2〜図5に基づいて説明する。図2は本発明の実施の形態の構成図、図3はプロセス定義データの例、図4は確率情報記憶手段に記憶された情報の例、図5はシミュレーション処理・結果記憶手段がプロセス終了時に記録する情報の例である。
図2において、1は確率情報記憶手段、2は乱数発生手段、3はシミュレーション処理・結果記憶手段、4は統計処理・情報表示手段、5はプロセス定義データ記憶手段である。プロセス定義データ記憶手段5は、例えば、図3のUMLアクティビティ図で示すような、プロセスの開始と終了、各アクティビティの実行順序、並列実行(フォーク/ジョイン)、選択実行(デシジョン/マージ)などの情報を記憶する。実際のシステム内部では、配列等のデータ構造で記憶するが、詳細なデータ構造の説明は省略する。
確率情報記憶手段1は、各アクティビティ毎に、「所要時間の平均・分散」と、「各アクティビティへ遷移する確率」の情報を記憶する。
これらの確率情報は、プロセス定義データ、および、過去の類似作業の統計データや経験による推測値などから、あらかじめ算出・決定し、確率情報記憶手段1に記憶させておく。全ての数値をユーザーに入力させる方法のほか、プロセス定義データから自動的に決まる部分はシステムにより自動的に計算して記憶し、必要な部分のみユーザーに入力させる方法、ユーザーに手入力させる代わりに過去の統計データをそのまま入力させ、本システムが使用するフォーマットに変換する方法、いくつかの確率情報パターンのうちから一つをユーザーに選択させる方法、ワークフロー運用ツールの運用結果の統計データを使用する方法等が考えられる。
図4は確率情報記憶手段1に記憶された情報の例である。図3のプロセス定義の例について、アクティビティ毎に、「所要時間の平均・分散」と、「各アクティビティへ遷移する確率」の情報を記憶している。
たとえば、図3のプロセス定義の例では、アクティビティ2実行後、アクティビティ3かアクティビティ4を選択実行する定義となっている。この情報と、過去の統計データ等を用いて、「各アクティビティへ遷移する確率」を決定する。図4の例では、過去の類似作業の統計データから、アクティビティ2実行後、アクティビティ3へ遷移する確率が40%、アクティビティ4へ遷移する確率が50%、不具合が発見され差し戻される確率が10%であると判断した場合を想定し、アクティビティ1へ遷移する確率を0.1、アクティビティ3へ遷移する確率を0.4、アクティビティ4へ遷移する確率を0.5とした。
遷移先のアクティビティが並列実行である、とプロセス定義データに定義されている場合は、並列実行する全てのアクティビティについてそのアクティビティへ遷移する確率を同じ確率とする。図3において、アクティビティ1実行後アクティビティ2とアクティビティ5を並列実行する定義となっているため、図4では、アクティビティ2へ遷移する確率とアクティビティ5へ遷移する確率がともに1.0となっている。
アクティビティ終了後プロセスが終了する、とプロセス定義データに定義されている場合は、終了以外の確率(以前のアクティビティへの差し戻しの確率)のみを各アクティビティへ遷移する確率に記憶させる。図3において、アクティビティ6実行後プロセス終了と定義されているため、図4では、アクティビティ1〜5へ遷移する確率をそれぞれ0.1としている。1.0からこれらの和を引いた値(0.5)が、終了する確率となる。
乱数発生手段2は、シミュレーション処理・結果記憶手段3からの指示に従って、都度、0.0以上1.0以下の乱数値を生成する。
シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から取得した確率情報と、乱数発生手段2から取得した乱数とによって、所要時間・遷移先アクティビティを決定し、決定した所要時間を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行する。具体的手順を、以下に説明する。
まず、シミュレーション処理・結果記憶手段3は、プロセス定義データ記憶手段5からプロセスの最初のアクティビティの番号の情報を取得し、それを「現在のアクティビティの番号」として記憶する(手順1)。
次に、シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から「現在のアクティビティの番号」の行の確率情報を取得する(手順2)。
そして、シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から取得した「所要時間の平均・分散」の情報と、乱数発生手段2とから取得した乱数値とによって、所要時間を決定する(手順3)。決定方法は次の通りである。「所要時間の平均・分散」の情報から、所要時間をtとしたときの累積分布関数F(t)を作成する。また、乱数発生手段2から乱数値aを取得する。F(t)について、tを0.0から始めて、0.1ずつ進め、F(t)が初めて乱数値aを超えたときのtを所要時間として決定する。なお、本例では、tを0.0から始めて、0.1ずつ進めているが、所要時間の単位や求められる精度によって、値をユーザーがカスタマイズできるようにする。また、本例では所要時間は正規分布に従うと想定しているが、他の分布を用いても良く、ユーザーが設定により選択できるようにするのが望ましい。また、「所要時間の平均・分散」の代わりに、過去の統計データをそのまま分布情報として使用することも可能である。F(t)は必ずしも数式で表される必要はなく、入力tに対してその累積分布を出力するプログラムとして表現できればよい。
また、シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から取得した「各アクティビティへ遷移する確率」の情報と、乱数発生手段2とから取得した乱数とによって、遷移先アクティビティ番号を決定する(手順4)。決定方法は次の通りである。「各アクティビティへ遷移する確率」の情報から、遷移先アクティビティ番号をnとしたときの累積分布関数G(n)を作成する。また、乱数発生手段2から乱数値bを取得する。G(n)について、nを1から始めて、最後のアクティビティ番号まで、1ずつ進め、G(n)が初めて乱数値bを超えたときのnを遷移先アクティビティ番号として決定する。最後までG(n)が乱数値を超えなかったときは、プロセスが終了するものとみなす。
ただし、遷移先が並列に実行される場合は、番号が小さい方のアクティビティへ遷移する確率のみを累積分布関数G(n)に反映し、それ以外のアクティビティへ遷移する確率は0.0とみなしてG(n)を作成する。遷移先が並列に実行されるか否かの情報は、プロセス定義データ記憶手段5から取得する。
最後に、「現在のアクティビティの番号」と、前記(手順3)で決定した所要時間とを記録し、前記(手順4)で決定した遷移先アクティビティ番号を「現在のアクティビティの番号」として記憶した後、前記(手順2)から処理を繰り返す。ただし、前記(手順4)でプロセス終了と決定した時は、終了する。
遷移先が並列に実行される場合は、並列に実行されるべきアクティビティの番号を「並列実行アクティビティ」として記憶した後、「並列実行アクティビティ」のうちいずれか1つのアクティビティの番号を取得してそれを「現在のアクティビティの番号」に設定し、前記(手順2)からの処理を繰り返す。そして、並列実行の結合点に到達したら、記憶しておいた「並列実行アクティビティ」から未実行のアクティビティの番号を取得してそれを「現在のアクティビティの番号」に設定し、前記(手順2)からの処理を繰り返す。これを全ての「並列実行アクティビティ」について繰り返す。
並列実行中、遷移先アクティビティが、並列に分岐する以前のアクティビティとなった場合は、記憶しておいた「並列実行アクティビティ」の情報を削除してから、遷移先アクティビティに遷移させる。これは、並列実行中、何らかの問題により差し戻された場合、全ての並行処理を中止して、前のアクティビティに戻る、という業務手順の場合を想定している。並列実行中、いずれかのアクティビティでのみ問題が発見された場合の業務手順は、業務の分野やユーザーによって異なると思われるため、分野やユーザーによって処理手順をカスタマイズできるようにする。他の業務手順としては、並行処理はそのまま進めつつ、差し戻しが発生したルートのみやり直す、という業務手順などが考えられる。また、業務手順を現場のその時々の判断に任せざるをえない場合は、いくつかの処理手順の中から、あらかじめ設定した確率情報と乱数とによって、採用する処理手順を決定するというオプションも選択できるようにする。
遷移先アクティビティが、以前に実行したアクティビティであり、かつ、そのアクティビティは並列実行されていたアクティビティであったときは、他の並列実行されていたアクティビティを再実行することはせず既に実行済みであると見なし、遷移先アクティビティからのルートのみを再実行する。これも、業務分野やユーザーによって業務手順が異なると思われるため、業務分野やユーザーによって処理手順をカスタマイズできたり、確率情報と乱数によって処理手順を決定したりするようにする。
以前実行したアクティビティに差し戻され、一度通ったルートを再度やり直す場合、各アクティビティの所要時間は最初に通る場合よりも少ないことが考えられる。これを考慮して、一度通ったルートを再度通る場合は、前記(手順3)の手順で求めた値から80%引きした値を所要時間とするなど、あらかじめ設定したルールにしたがって減らす。業務分野やユーザーによって、処理手順をカスタマイズできるようにする。
また、以前実行したアクティビティに差し戻される場合、差し戻しが発生するアクティビティ(問題を発見したアクティビティ)は、差し戻しを行わず普通にプロセスが進行する場合に比べて、所要時間が異なることが考えられる。たとえば、差し戻し理由を説明するための文書を作成することにより所要時間が増加したり、そのアクティビティで実行すべき処理を実行しないために所要時間が減少したりする。これを考慮して、前記(手順3)の手順で求めた値から50%引きした値を所要時間とするなど、あらかじめ設定したルールにしたがって増減させる。また、遷移先アクティビティ毎に所要時間の確率分布情報を記憶し、遷移先決定後に、その遷移先に従って所要時間を決定する、という方法もある。業務分野やユーザーによって、処理手順をカスタマイズできるようにする。
以上の手順の結果として、プロセスを最初から最後まで実行したときの、アクティビティの番号とその所要時間とをその実行順に記録した情報が得られる。これは、プロセスの運用結果の可能性の1つである。
シミュレーション処理・結果記憶手段3がプロセス終了時に記録する情報の例を図5に示す。この記録情報の例は、図3のプロセス定義について、次のようなルートをたどったときの結果の例である。まず、最初のアクティビティは1であるため、アクティビティ1を実行し記録番号1に記録する。次は、アクティビティ2とアクティビティ5の並列実行である。まず、アクティビティ2を実行し記録番号2に記録する。さらにアクティビティ3を実行し記録番号3に記録する。次に、アクティビティ2、アクティビティ3と並列実行されるべきアクティビティである、アクティビティ5を実行し、記録番号4に記録する。アクティビティ5において、遷移先がアクティビティ1であると決定されたため、確率情報と乱数から決定した所要時間を50%引きして記録番号4に記録した後、アクティビティ1へ遷移する。さらにアクティビティ1から処理を繰り返すが、差し戻しであるため確率情報と乱数から決定した所要時間を80%引きして記録番号5に記録する。以降、プロセスが終了するまで記録されるが、説明は省略する。なお、統計処理・情報表示手段4においてより詳細な統計情報を作成するため、図5のように、「開始時の経過時刻」などの付加情報を適宜追加する。
統計処理・情報表示手段4は、シミュレーション処理・結果記憶手段3を多数回(例えば100万回)実行し、その結果の統計情報を表示する。統計情報とは、たとえば、プロセス全体の所要時間の分布、各アクティビティ毎の累積所要時間の分布、各アクティビティ毎の実行回数の分布、総コストの分布、平均コストの推移などである。
実施例1では、同時に実行されるプロセスインスタンスは1つしかない。つまり、たとえば、文書の作成・レビュー・承認のプロセスを考えたとき、同時に複数の文書を処理することは考えられていない。しかし、現実には、複数の文書を同時に処理することも多く、この場合、ボトルネックとなるアクティビティの処理能力によって、プロセス全体の処理能力が決まってくる。よって、複数のプロセスインスタンスを同時進行するシミュレーションができた方が良い。以下、第二の発明の実施形態として、複数のプロセスインスタンスを同時進行するシミュレーションの実施例を図6に基づいて説明する。図6は本発明の実施の形態の構成図である。
図6における1〜5の説明は、実施例1に示したものと同様である。ただし、シミュレーション処理・結果記憶手段3は、同時に実行されうるプロセスインスタンスの個数以上用意する。6は時刻情報記憶手段であり、シミュレーション上の現在時刻を記憶する。7はプロセスインスタンス発生確率情報記憶手段であり、プロセスインスタンスの発生確率の情報と、「プロセスインスタンスの内容量」(たとえば文書の枚数)の平均・分散の情報とを記憶する。たとえば、プロセスインスタンスの発生はポアソン分布にしたがい平均到着率(λ)が0.3であり、「プロセスインスタンスの内容量」の平均は10.3、分散は3.5である、といった情報を記憶する。8はリソース使用状況記憶手段であり、各アクティビティ毎に、その最大リソース数および使用中リソース数が記憶されている。最大リソース数とは、そのアクティビティが同時に処理できるプロセスインスタンスの数であり、例えば担当者の人数である。あるプロセスインスタンスがアクティビティを開始すると、そのアクティビティの使用中リソース数を+1し、アクティビティが終了すると使用中リソース数を−1する。使用中リソース数が最大リソース数と同じ場合、アクティビティの開始は、他のプロセスインスタンスがリソースを解放するまで、待たされることとなる。
まず、統計処理・情報表示手段4は、時刻情報記憶手段6の時刻情報を0に設定する。
以後、統計処理・情報表示手段4は、時刻情報記憶手段6の時刻情報に0.1を加算する処理を繰り返し、加算する処理を実行するたびに、時刻更新の情報をシミュレーション処理・結果記憶手段3に伝達する。
また、統計処理・情報表示手段4は、時刻情報更新のたびに、前回のプロセスインスタンス発生時刻からの経過時間と、プロセスインスタンス発生確率情報記憶手段7に記憶されたプロセスインスタンス発生確率の情報、乱数発生手段2から取得した乱数とによって、プロセスインスタンスを発生させるか否かを決定する。プロセスインスタンスを発生させる場合は、さらに、プロセスインスタンス発生確率情報記憶手段7に記憶された「プロセスインスタンスの内容量」の平均・分散の情報、乱数発生手段2から取得した乱数とによって、「プロセスインスタンスの内容量」を決定する。そして、プロセスインスタンス実行中でないシミュレーション処理・結果記憶手段3に対し、プロセスの実行を指示する。
シミュレーション処理・結果記憶手段3の処理手順は実施例1と同様であるが、アクティビティの遷移については、アクティビティの所要時間・遷移先アクティビティを決定、記録した後、すぐに遷移させる代わりに、「アクティビティの開始時刻」を記憶しておき、次回以降に統計処理・情報表示手段4から時刻情報更新を伝達されたタイミングで、「アクティビティの開始時刻」と、記録されたアクティビティの所要時間との和が現在時刻以降となったかどうかを判定し、現在時刻以降であれば遷移させる。また、並列実行については、「現在のアクティビティの番号」を複数記憶できるようにし、統計処理・情報表示手段4から時刻情報更新を伝達されたタイミングで、並列実行中のアクティビティそれぞれについて遷移させるかどうかの判定を行うことにより、時刻情報記憶手段6の時刻情報に従って並列に実行させる。
また、所要時間は、実施例1に記述した決定方法で決定した時間に、「プロセスインスタンスの内容量」の値を乗じた値を用いる。
また、シミュレーション処理・結果記憶手段3は、アクティビティ遷移時に、リソース使用状況記憶手段8を参照し、使用中リソース数が最大リソース数と同じ場合、アクティビティ実行を開始せず、次回以降に統計処理・情報表示手段4から時刻情報更新を伝達されたタイミングで、リソース使用状況記憶手段8を参照してリソース数の判定を行い、使用中リソース数が最大リソース数未満となったら、アクティビティ実行を開始する。また、アクティビティ開始時に使用中リソース数を+1し、終了時に−1する。
シミュレーション処理・結果記憶手段3はプロセスが終了したら、統計処理・情報表示手段4へ結果を通知する。統計処理・情報表示手段4はその結果を統計情報に反映させる。
以上の処理を多数回実行し、その結果の統計情報を表示する。
以下、第三の発明の実施形態を、図2,図7〜図8に基づいて説明する。図2は本発明の実施の形態の構成図、図7は確率情報記憶手段1に記憶された情報の例、図8は不具合混入元情報の例である。
図2において、1は確率情報記憶手段、2は乱数発生手段、3はシミュレーション処理・結果記憶手段、4は統計処理・情報表示手段、5はプロセス定義データ記憶手段である。
確率情報記憶手段1は、各アクティビティ毎に、「所要時間の平均・分散」と、「混入される不具合の個数の平均・分散」と、「既に混入された不具合を発見する確率」の情報を記憶する。
図7は確率情報記憶手段1に記憶された情報の例である。図3のプロセス定義の例について、アクティビティ毎に、「所要時間の平均・分散」と、「混入される不具合の個数の平均・分散」と、「既に混入された不具合を発見する確率」の情報を記憶している。これらの確率情報は、プロセス定義、および、過去の類似作業の統計データや経験による推測値などから、あらかじめ算出・決定し、確率情報記憶手段1に記憶させておく。
たとえば、アクティビティ2の行は、アクティビティ2の実行により、その成果物に不具合を平均3.5個混入し、その分散は5.0であることを示している。また、アクティビティ2を開始した時点で混入されていた不具合を発見する確率が0.6であることを示している。これは、アクティビティ2を開始した時点で混入されていた不具合が5個であれば、アクティビティ2の実行によって平均3個を発見するということを意味している。
乱数発生手段2は、シミュレーション処理・結果記憶手段3からの指示に従って、都度、0.0以上1.0以下の乱数値を生成する。
シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から取得した確率情報と、乱数発生手段2から取得した乱数と、不具合混入元情報(混入済みの各不具合がどのアクティビティで混入されたかの情報)とによって、所要時間・遷移先アクティビティ・新たに混入される不具合の個数を決定し、不具合混入元情報を更新し、決定した所要時間・遷移先アクティビティを記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行する。具体的手順を、以下に説明する。
まず、シミュレーション処理・結果記憶手段3は、プロセス定義データ記憶手段5からプロセスの最初のアクティビティの番号の情報を取得し、それを「現在のアクティビティの番号」として記憶する(手順1)。
次に、シミュレーション処理・結果記憶手段3は、「現在のアクティビティの番号」の行の確率情報を確率情報記憶手段1から取得する(手順2)。
そして、シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から取得した「所要時間の平均・分散」の情報と、乱数発生手段2とから取得した乱数とによって、所要時間を決定する(手順3)。決定方法は実施例1と同じである。
また、シミュレーション処理・結果記憶手段3は、「不具合混入元情報」と、確率情報記憶手段1から取得した「既に混入された不具合を発見する確率」の情報と、乱数発生手段2とから取得した乱数と、プロセス定義データ記憶手段5から取得した通常の遷移先の情報とによって、遷移先アクティビティを決定する(手順4)。「不具合混入元情報」とは、混入済みの各不具合についてその不具合がどのアクティビティで混入されたかの情報であり、シミュレーション処理・結果記憶手段3が「不具合混入元情報」を記憶する。プロセス開始時には「不具合混入元情報」は空である。また、遷移先アクティビティに遷移する前に、アクティビティの番号・所要時間とともに現在の「不具合混入元情報」を記録する。「不具合混入元情報」の例を図8に示す。
遷移先アクティビティの決定方法は次の通りである。現在の「不具合混入元情報」の各不具合について、乱数発生手段2から乱数を取得し、取得した乱数が、確率情報記憶手段1から取得した、「既に混入された不具合を発見する確率」以上であった場合、その不具合が現在のアクティビティで発見されるものとみなす。発見された不具合のうち、混入したアクティビティの番号がもっとも小さいものを遷移先のアクティビティ番号として決定する。
不具合が1つも発見されなかった場合は、プロセス定義データ記憶手段5から通常の遷移先の情報を取得し、それを遷移先のアクティビティ番号として決定する。遷移先を選択する必要がある場合は、確率を均等に割り振り、乱数によって決定する。実施例1と同様に、遷移先アクティビティ番号の確率情報を確率情報記憶手段1に含め、確率情報と乱数によって遷移先を決定するという方法もある。
さらに、シミュレーション処理・結果記憶手段3は、確率情報記憶手段1から取得した「混入される不具合の個数の平均・分散」の情報と、乱数発生手段2とから取得した乱数とによって、混入される不具合の個数を決定する(手順5)。決定方法は次の通りである。「混入される不具合の個数の平均・分散」から、不具合の個数をmとしたときの累積分布関数H(m)を作成する。また、乱数発生手段2から乱数値cを取得する。H(m)について、mを0から始めて、1ずつ進め、H(m)が初めて乱数値cを超えたときのmを不具合の個数として決定する。なお、本例では不具合個数は正規分布に従うと想定しているが、他の分布を用いても良く、ユーザーが設定により選択できるようにするのが望ましい。また、過去の統計データをそのまま分布情報として使用することも可能である。H(m)は必ずしも数式で表される必要はなく、入力mに対してその累積分布を出力するプログラムとして表現できればよい。
ただし、そのアクティビティを実行するのが2回目以降の場合は、混入される不具合の個数は上記で求めた不具合の個数より減らす。たとえば、k回目の実行であれば、上記で求めた不具合の個数×((0.2)のk乗)(小数点以下切り捨て)を不具合の個数とする。これは、差し戻されて再度同じアクティビティを実行する場合は、さらに新たに混入する不具合は最初よりも少ないと考えられるためである。
そして、シミュレーション処理・結果記憶手段3は、現在の「不具合混入元情報」から前記(手順4)で発見された不具合情報を削除し、前記(手順5)で決定した不具合個数分だけ不具合情報を追加する(手順6)。たとえば、「不具合混入元情報」にアクティビティ1で発生した5個の不具合の情報が記載されており、アクティビティ2でそのうちの2つを発見し、新たに不具合が3個混入されたのであれば、更新された「不具合混入元情報」は図8のようになる。6個の不具合の情報が記載され、混入元アクティビティ番号は、それぞれ、1,1,1,2,2,2となる。
最後に、「現在のアクティビティの番号」と、前記(手順3)で決定した所要時間と、前記(手順6)で更新された「不具合混入元情報」とを記録し、前記(手順4)で決定した遷移先アクティビティ番号を「現在のアクティビティの番号」として記憶した後、前記(手順2)から処理を繰り返す。ただし、前記(手順4)でプロセス終了と決定した時は、終了する。
遷移先が並列に実行される場合の処理手順は、実施例1と同様である。
差し戻された場合の処理手順についても、実施例1と同様である。さらに、不具合を発見しても差し戻さず修正作業と通常ルートの作業を並行作業するなどの業務手順も考えられるため、できる限り様々な業務手順を考慮し、現実の業務に即した処理手順をユーザーが選択できるようにする。また、差し戻されたときに同時に発見された不具合の個数に従って、再実行するアクティビティの所要時間を増減させる。例えば、(1回目の実行の場合の所要時間)*0.03*(同時に発見された不具合の個数)を所要時間とする。
不具合については、発見しても重要度が低ければ修正しないということも考えられる。これを考慮して、不具合毎に重要度を確率情報と乱数とから決定し、重要度が低いものは差し戻さずそのままにするといったオプションをユーザーが選択できるようにする。
また、不具合を発見した場合、関連する不具合を同時に発見する可能性が高いことを考慮し、前記(手順4)の不具合発見の決定手順において、発見不具合1つごとに一定の確率でもう1つの不具合を発見不具合に追加するオプションをユーザーが選択できるようにする。
以上の手順の結果として、プロセスを最初から最後まで実行したときの、アクティビティの番号とその所要時間と不具合混入元情報とをその実行順に記録した情報が得られる。これは、プロセスの運用結果の可能性の1つである。
統計処理・情報表示手段4は、シミュレーション処理・結果記憶手段3を多数回(例えば100万回)実行し、その結果の統計情報を表示する。統計情報とは、たとえば、プロセス全体の所要時間の分布、各アクティビティの累積所要時間の分布、各アクティビティの実行回数の分布、不具合数の推移、最終的に残存する不具合数の分布などである。
なお、実施例2と同様にして、実施例3について複数のプロセスインスタンスが同時進行する場合のシミュレーションを行うことができる。この場合、混入される不具合数は、前記(手順5)に記述した決定方法で決定した数に、「プロセスインスタンスの内容量」を乗じた値を用いる。
1 確率情報記憶手段
2 乱数発生手段
3 シミュレーション処理・結果記憶手段
4 統計処理・情報表示手段
5 プロセス定義データ記憶手段
6 時刻情報記憶手段
7 プロセスインスタンス発生確率情報記憶手段
8 リソース使用状況記憶手段
2 乱数発生手段
3 シミュレーション処理・結果記憶手段
4 統計処理・情報表示手段
5 プロセス定義データ記憶手段
6 時刻情報記憶手段
7 プロセスインスタンス発生確率情報記憶手段
8 リソース使用状況記憶手段
Claims (2)
- プロセス定義の各アクティビティ毎に、アクティビティの所要時間の確率分布の情報と、遷移先アクティビティの確率分布の情報とを記憶した確率情報記憶手段と、
乱数発生手段と、
前記確率情報記憶手段から取得した確率情報と、前記乱数発生手段から取得した乱数とによって、所要時間・遷移先アクティビティを決定し、決定した所要時間を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行する、シミュレーション処理・結果記憶手段と、
前記シミュレーション処理・結果記憶手段を多数回実行した結果の統計情報を表示する統計処理・情報表示手段とからなることを特徴とする、
プロセスシミュレーションシステム。 - プロセス定義の各アクティビティ毎に、アクティビティの所要時間の確率分布の情報と、アクティビティ実行により混入される不具合の個数の確率分布の情報と、既に混入された不具合を発見する確率の情報とを記憶した確率情報記憶手段と、
乱数発生手段と、
前記確率情報記憶手段から取得した確率情報と、前記乱数発生手段から取得した乱数と、不具合混入元情報(混入済みの各不具合がどのアクティビティで混入されたかの情報)とによって、所要時間・遷移先アクティビティ・新たに混入される不具合の個数を決定し、不具合混入元情報を更新し、決定した所要時間を記録し、決定した遷移先アクティビティを新たな処理対象アクティビティとする処理を、プロセスの最初のアクティビティから始めて、プロセスが終了するまで繰り返し実行する、シミュレーション処理・結果記憶手段と、
前記シミュレーション処理・結果記憶手段を多数回実行した結果の統計情報を表示する統計処理・情報表示手段とからなることを特徴とする、
プロセスシミュレーションシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007294972A JP2009122874A (ja) | 2007-11-13 | 2007-11-13 | プロセスシミュレーションシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007294972A JP2009122874A (ja) | 2007-11-13 | 2007-11-13 | プロセスシミュレーションシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009122874A true JP2009122874A (ja) | 2009-06-04 |
Family
ID=40814971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007294972A Pending JP2009122874A (ja) | 2007-11-13 | 2007-11-13 | プロセスシミュレーションシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009122874A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012141909A (ja) * | 2011-01-06 | 2012-07-26 | Hitachi Ltd | 異常検知方法およびそれを用いた情報処理システム |
JP2018195040A (ja) * | 2017-05-17 | 2018-12-06 | 株式会社日立製作所 | ビジネスプロセス評価装置及びビジネスプロセス評価方法 |
-
2007
- 2007-11-13 JP JP2007294972A patent/JP2009122874A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012141909A (ja) * | 2011-01-06 | 2012-07-26 | Hitachi Ltd | 異常検知方法およびそれを用いた情報処理システム |
JP2018195040A (ja) * | 2017-05-17 | 2018-12-06 | 株式会社日立製作所 | ビジネスプロセス評価装置及びビジネスプロセス評価方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7483841B1 (en) | Project management system and method | |
US20080046862A1 (en) | Business task management | |
US8418178B2 (en) | Evaluation of synchronization gateways in process models | |
US20100138268A1 (en) | Progress management platform | |
JP4439580B2 (ja) | プロセスマネジメント支援システム、及びシミュレーション方法 | |
US8694487B2 (en) | Project management system | |
US9727447B1 (en) | System, method, and computer program for automated exploratory testing | |
Goren et al. | Optimization of schedule robustness and stability under random machine breakdowns and processing time variability | |
JP2016194736A (ja) | プロジェクト実行計画立案支援方法、プロジェクト実行計画立案支援プログラム、および、プロジェクト実行計画立案支援システム | |
US8214245B2 (en) | Method and system for synchronizing inclusive decision branches | |
US20090198775A1 (en) | System And Method Of Collaboration For System Development | |
KR102151550B1 (ko) | 일정-평가 아이템 및 할일-평가 아이템 기반의 업무전략의 수행을 지원하는 업무전략맵 관리 방법 및 장치 | |
JP5196991B2 (ja) | 製造工程管理装置、製造工程管理方法、及びコンピュータプログラム | |
US20220261243A1 (en) | System and method for automated simulation of releases in agile environments | |
JP3726903B2 (ja) | 情報処理システムおよび情報処理システムによる作業の流れ管理方法 | |
US20090327020A1 (en) | Intelligent task Deactivation In Project Scheduling Application | |
JP2009122874A (ja) | プロセスシミュレーションシステム | |
JP2006018529A (ja) | ワークフローシステムおよびワークフローシステムの制御方法およびプログラムおよび記録媒体 | |
Tytkowska et al. | Project management in the scrum methodology | |
Maserang | Project management: Tools & techniques | |
JP2008065580A (ja) | ワークフロー連携プログラムおよびワークフロー管理システム | |
Salhab et al. | Schedule compression and emerging waste in construction: an assessment of overlapping activities | |
US20080216084A1 (en) | Measure selection program, measure selection apparatus, and measure selection method | |
JP5277847B2 (ja) | 作業管理装置、作業管理プログラム | |
JP2005216020A (ja) | プロジェクト評価システム,プログラムよび記憶媒体 |