(57)【要約】【課題】並行開発で予測不能な任意のタイミングで依存関係が生成されるような開発工程における変更影響把握の困難さを解決すること。【解決手段】設計情報の変更の影響の程度を、それを参照する設計プロセスに手戻りとしての追加作業量の合計として定義する。設計変更の影響分析の要求時、プロジェクト監視部から、変更する設計情報を直接・間接に参照していたすべてのプロセスを取り出す。取り出された各プロセスに対して、参照している設計情報が変更になったことによる変更影響を計算する。プロセスが参照を行った時点での参照情報を元にした設計情報の成熟度と、変更が適用される時点での設計情報の成熟度を取り出し、それらの差分を無駄になる可能性のある作業量とする。参照が行われた時点での参照情報の成熟度、および依存度を取得し、それらと参照情報の変更規模から、無駄になる可能性のある作業量のうち、実際に無駄になる作業量を確率的に求める。【選択図】図１
2008040760.tif 000002
【特許請求の範囲】
【請求項１】
設計開発工程において一の設計情報の変更が他の設計情報に与える影響を分析するための装置であって、
変更対象設計情報ならびに該設計情報の変更規模の入力を受付ける入力部と、
前記変更対象設計情報ならびに前記変更規模、設計情報間の依存関係ならびに依存強度、および前記変更対象設計情報を参照する他の設計情報の作成工程における前記参照後の作業量に基づいて、前記作成工程に対する変更影響度を計算する変更影響計算部と、
前記変更影響度を外部に出力する出力部と、
を備える装置。
【請求項２】
前記変更影響計算部は、間接的な参照関係にある設計情報に対する前記変更影響度を再帰的に計算する、請求項１に記載の装置。
【請求項３】
前記変更規模は、前記作業量のうち手戻りによって無駄となる作業の割合であるリワーク率として定義される、請求項１に記載の装置。
【請求項４】
前記依存強度は、一の設計情報が参照する他の設計情報に依存する割合として定義される、請求項１に記載の装置。
【請求項５】
前記変更影響度は、確率密度関数を用いて変更の影響の揺らぎを含める、請求項３に記載の装置。
【請求項６】
前記変更対象設計情報を参照する設計情報の前記参照後の作成工程の工程終了時間が確率密度関数で与えられたときに、該確率密度関数に対して、前記揺らぎを含んだ変更の影響を下記数式により更新する、請求項５に記載の装置。
【数１】
2008040760.tif 000004
ここで、前記工程終了時間をｔ、更新前の確率密度関数をｇ（ｔ）、変更対象設計情報を参照してからの現在時刻までの作業量をｗ１、ｒ０１をリワーク率、ｐ１（ｒ０１）をリワーク率の確率密度関数、更新された確率密度関数をｇ（ｔ）’とする。
【請求項７】
前記依存強度は、ＧＵＩによって設計情報間の依存関係を取得する際に取得される、請求項１に記載の装置。
【請求項８】
前記依存強度は、過去のプロジェクト情報ログに蓄積された設計情報に基づき、前記変更影響計算部に対する直接入力値または前記入力部におけるユーザ入力のデフォルト値として利用される、請求項１に記載の装置。
【請求項９】
前記設計開発工程は、自動車の部品を設計する開発工程であり、前記設計情報は、前記部品の設計情報である、請求項１に記載の装置。
【請求項１０】
設計開発工程において一の設計情報の変更が他の設計情報に与える影響を分析する方法であって、
変更対象設計情報ならびに該設計情報の変更規模の入力を受付けるステップと、
前記変更対象設計情報ならびに前記変更規模、設計情報間の依存関係ならびに依存強度、および前記変更対象設計情報を参照する他の設計情報の作成工程における前記参照後の作業量に基づいて、前記作成工程に対する変更影響度を計算するステップと、
前記変更影響度を外部に出力するステップと、
を含む方法。
【請求項１１】
設計開発工程において一の設計情報の変更が他の設計情報に与える影響を分析するコンピュータ・プログラムであって、情報処理装置に、
変更対象設計情報ならびに該設計情報の変更規模の入力を受付けるステップと、
前記変更対象設計情報ならびに前記変更規模、設計情報間の依存関係ならびに依存強度、および前記変更対象設計情報を参照する他の設計情報の作成工程における前記参照後の作業量に基づいて、前記作成工程に対する変更影響度を計算するステップと、
前記変更影響度を外部に出力するステップと、
を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製品開発プロセスにおける変更影響度を分析する装置および方法に関する。更に詳しくは、製品開発プロセスのランタイム時における設計変更が他の開発プロセスに与えるインパクトを分析する装置および方法に関する。
【背景技術】
【０００２】
従来、製品開発を始めとして、各種のプロジェクト管理手法やツール、ソフトウェアの変更分析手法、プロジェクト構成の最適化技法などに関して様々な手法が提案されている。
【０００３】
プロジェクト管理手法やそれを実現するツールとして、例えば、特許文献１には、設計情報に変更要求が発生した際にそれを関係エンジニアに伝達したり、提案されているその変更要求に影響を受ける可能性のある成果物やタスクを洗い出し、過去の類似するプロセスなどの情報と、あらかじめ定義された成果物を介するプロセス間の依存関係の情報に基づいて、成果物の変更の影響の分析を行う方法が開示されている。
【０００４】
また、特にソフトウェア開発におけるソフトウェアの変更影響分析手法も数多く提案されている（例えば、非特許文献１、２）。非特許文献１は、オブジェクト指向言語においてソースコードに対する変更の影響の範囲を捉えるための方法で、特に実行された変更に対して再度行う必要のあるテストを洗い出すことを目的としている。この方法では、ソースコードの編集（すなわち変更）の種類（クラスを加えるとかメソッドを作成するなど）に応じてそれが変化させる実行時のメソッドディスパッチを追跡する方法と、ｃａｌｌ−ｇｒａｐｈによる手法とを用いて、ある編集を加えたことにより再実行が必要となるテストを洗い出すことができる。
【０００５】
一方、非特許文献２は、前述のアプローチとは異なり、成果物に対して特定の形式を仮定しない方法も提案されている。ここでは、全ての成果物（その構成要素も含む）、およびそれらの間の依存関係に型を定義する。またそれと同時に、成果物またはそれらの間の依存関係が満たさなければならない整合性プロパティを定義しておく。このようにしておいて、成果物やその依存関係に変更（これにも型が存在する）が与えられると、依存関係や整合性プロパティから、整合性を保持するために必要な変更を洗い出す。これら洗い出された変更が本当に必要なものかを絞り込むために、ユーザに問い合わせる方法や、あらかじめ、ある変更がどの変更を呼び起こすかを定義した変更パターンを定義しておき、そのルールにマッチするものだけを実際に行う変更として捉える方法である。
【０００６】
また、プロジェクト構成の最適化技法として、例えば、非特許文献３の方法は、プロセスアーキテクチャ（プロセスをどの順で実行するか、どのタイミングで開始するかといったようなプロセス全体の構成）の最適化のためのシミュレーション技法を提案しているが、ここでは成果物の変更によって、それを利用する（入力とする）プロセスにリワークが生ずるものとして変更の影響をモデル化している。
【０００７】
【特許文献１】特開２００４−２４０４８６号公報
【非特許文献１】Ｂａｒｂａｒａ  Ｇ．  Ｒｙｄｅｒ  ａｎｄ  Ｆｒａｎｋ  Ｔｉｐ．  Ｃｈａｎｇｅ  ｉｍｐａｃｔ  ａｎａｌｙｓｉｓ  ｆｏｒ  ｏｂｊｅｃｔ−ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＰＡＳＴＥ  ２００１，  ＰＰ．４６−５３，Ｊｕｎｅ  ２００１．
【非特許文献２】Ｊｕｎ  Ｈａｎ．  Ｓｕｐｐｏｒｔｉｎｇ  ｉｍｐａｃｔ  ａｎａｌｙｓｉｓ  ａｎｄ  ｃｈａｎｇｅ  ｐｒｏｐａｇａｔｉｏｎ  ｉｎ  ｓｏｆｔｗａｒｅ  ｅｎｇｉｎｅｅｒｉｎｇ  ｅｎｖｉｒｏｎｍｅｎｔｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ８ｔｈ  Ｉｎｔｌ．  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｏｆｔｗａｒｅ  Ｔｅｃｈｎｏｌｏｇｙ  ａｎｄ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｐｒａｃｔｉｃｅ  （ＳＴＥＰ’９７），  ＰＰ．  １７２−１８２，  Ｊｕｌｙ  １９９７  （ｈｔｔｐ：／／ｃｉｔｅｓｅｅｒ．ｉｓｔ．ｐｓｕ．ｅｄｕ／ｈａｎ９６ｓｕｐｐｏｒｔｉｎｇ．ｈｔｍｌ）
【非特許文献３】Ｔｙｓｏｎ  Ｒ．  Ｂｒｏｗｎｉｎｇ  ａｎｄ  Ｓｔｅｖｅｎ  Ｄ．  Ｅｐｐｉｎｇｅｒ．Ｍｏｄｅｌｉｎｇ  ｉｍｐａｃｔｓ  ｏｆ  Ｐｒｏｃｅｓｓ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｏｎ  ｃｏｓｔ  ａｎｄ  ｓｃｈｅｄｕｌｅ  ｒｉｓｋ  ｉｎ  ｐｒｏｄｕｃｔ  ｄｅｖｅｌｏｐｍｅｎｔ．  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＥＮＧＩＮＥＥＲＩＮＧ  ＭＡＮＡＧＥＭＥＮＴ，  Ｖｏｌ．  ４９，  Ｎｏ．４，  Ｎｏｖｅｍｂｅｒ  ２００２．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
一般的に、プロジェクトの進行中に起きる計画や設計の変更は、他の作業に大きな影響を与え、工期やコストを増大させる要因となる。そのため、これらの変更を適切に管理することは、プロジェクト管理において重要なアクティビティである。このような変更管理を実施するためには、ある変更が他に及ぼす影響の範囲やその度合いを知ること（変更影響分析）が必要となる。
【０００９】
しかし、一般にそれらの把握は困難で時間やコストのかかる作業である。例えば、現状の多くの開発プロジェクトでは、変更要求を受け取ると、各作業の担当者へのインタビューを通して変更の影響を見積もり、それらをまとめてプロジェクト全体への最終的な変更の影響を見積もる。その後、見積もられた変更の影響に基づいて、対応が計画・実行されるわけだが、この対応を計画する際にも、それぞれの対応には異なる設計情報の変更が必要となる可能性があるため、それぞれの対応でどの程度の影響が生ずるのかを見積もる必要がある。また、変更要求への対応コストが、その変更によって得られる価値に対して大きければ、その変更要求の採否も含めた対応を考える必要がある。
【００１０】
このように、変更要求を受け取ってからその対応を決めるまでには、現状では多くのコストや時間を要する。そのような状況では、例えばエンジニアが設計中に、ある品質向上に寄与する変更を思い立っても、エンジニアはその影響について容易に知ることはできず、その状況はともすれば、エンジニアに不要な遠慮を呼び起こし、最終的な製品の品質の向上を阻害する要因ともなりうる。また、実際に変更要求を受け取ってからその対策が打ち出されるまでの期間が長ければ、他の関連する作業のリワークを防ぐためにその作業を中断することによりアイドリング・タイムが増大したり、変更要求の存在を知らないまま作業が進行してしまうなど、見積もり開始当初よりも変更による影響が大きくなってしまう危険性が高い。
【００１１】
上述したような既存技術の中にはこれらを効率化する手法がいくつか存在する。しかしながら、特に自動車の車両開発等におけるすり合わせ開発においては、多数のプロセスが同時並行的に実行されており、プロセス同士で、その実行の途中段階においてアドホックに未完成の設計情報の交換をしながら成果物を作り込んでゆく。従って、それらの間にどのような依存関係が生じるかはあらかじめ特定できない場合が多い。この場合、情報間の依存関係やプロセス間の依存関係、または過去の類似するプロセスに要した時間などの静的な情報のみを利用した既存の変更影響分析手法では、適切に変更の影響を見積もることはできない。従って、並行開発を含むプロジェクトにも利用可能な、低コストの変更影響分析手法が必要である。
【００１２】
しかしながら、特許文献１のような方法では、自動車のような大規模多層で、すり合わせ開発が行われるようなプロジェクトでは、いつどんな依存関係が成果物間で発生するか、事前に把握することは不可能であるため、この方法を適用することはできない。
【００１３】
また、変更の影響としては再度実行する必要のあるテストが出力となり、分析されている内容は影響が及ぶ範囲に留まる。従って、それらを修正するのに要するコストや時間などといった定量化は行われず、プロジェクトのスケジュールやコストに対する影響を直接見ることはできない。また、その分析手段はオブジェクト指向言語のプログラムコードを前提としているため、非特許文献１のような方法では、本発明が目的とするような一般的な設計情報に対する変更影響分析を行うことはできない。
【００１４】
また、非特許文献２のような方法では、上記のように、入力された変更に対して実行しなければならない変更を洗い出すことができるが、そのためには全ての成果物、その依存関係、起こりうる変更等にあらかじめ型を定義しておかなくてはならず、それらの間の整合性プロパティも定義しておく必要がある。更に、変更影響分析を自動化するためには、全ての変更に対して変更パターンが定義されていなければならず、ソフトウェアのようにその形式およびタイプがあらかじめ定義されているようなケースには適用が可能であるが、車両開発のように、その成果物が任意の形式を持ち、かつ大量に存在し、それらの依存関係も事前には不明であるようなケースには適用できない。また、この手法の分析結果は、変更の対応に必要な作業の列挙であり、その定量化には触れていない。
【００１５】
また、非特許文献３の方法では、全てのプロセスは完成した入力を受け取ることで開始されることを前提としており、各プロセスが終了した段階で、確率的に入力が変更になる場合をモデル化している。ここでは変更となった際の影響の度合いを、典型的な場合に限って事前のエンジニアに対するインタビューから取得しており、特に車両開発のように依存関係が動的に構築され、事前にそれらを知ることのできないようなケースには適用できない。
【００１６】
そこで、本発明では、上記のような課題に鑑み、成果物や設計情報を扱う、並行開発を含む任意の開発プロジェクトの実行時において、変更影響分析時の多くのユーザ入力や、事前のプロセス間の依存関係の定義情報等を必要としない低コストの変更影響分析手法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の一つの形態として、下記のような装置を提供する。
【００１８】
設計開発工程において一の設計情報の変更が他の設計情報に与える影響を分析するための装置であって、変更対象設計情報ならびに該設計情報の変更規模の入力を受付ける入力部と、前記変更対象設計情報ならびに前記変更規模、設計情報間の依存関係ならびに依存強度、および前記変更対象設計情報を参照する他の設計情報の作成工程における前記参照後の作業量に基づいて、前記作成工程に対する変更影響度を計算する変更影響計算部と、前記変更影響度を外部に出力する出力部と、を備える装置。
【００１９】
この装置の特徴は、変更対象の設計情報とその変更規模、設計情報間の依存関係と依存強度、および変更対象の設計情報を参照する他の設計情報の作成工程（変更を参照した側の参照後の設計情報作成工程）の作業量に基づいて、この作成工程に対する変更影響度を計算して出力することである。
【００２０】
更に、本装置の変更影響計算部は、間接的な参照関係にある設計情報に対する前記変更影響度を再帰的に計算する。このことによって、一つの設計情報の変更が他の設計情報に直接または間接的に与える影響を連鎖的に求めることができる。
【００２１】
なお、前記の変更規模は、既に行った参照した側の作業量のうち手戻りによって無駄となる作業の割合であるリワーク率として定義される。また、前記の依存強度は、一の設計情報が参照する他の設計情報に依存する割合として定義される。
【００２２】
更に、本装置は、設計情報の変更の影響の揺らぎを確率密度関数によって表現することも可能にする。この確率密度関数で表現された変更の影響（揺らぎを含んだ形の変更の影響）を、その変更された設計情報を参照する他の工程の終了時間を別の確率密度関数として表したときに、この確率密度関数に解析的に組み込むことを可能にする。すなわち、変更の影響を表した確率密度関数を用いて工程終了時間の確率密度関数を更新する。
【００２３】
また、この装置は、各機能のステップを行う方法、またはコンピュータをはじめとする任意の情報処理装置をこの装置として機能させるコンピュータ・プログラムの発明として捉えることもできる。
【００２４】
これらの機能を言い換えると、開発過程における設計情報の変更の影響の程度を、それを参照して行っていた設計開発工程に手戻りとして生じる追加作業量の合計として定義する。設計変更の影響分析の要求があったとき、開発過程をモニターしていたシステム（例えば、後述のプロジェクト監視部）から、変更する設計情報を参照していたプロセス（工程）、また、そのプロセスが作成した設計情報を参照していたプロセス、更に、それを参照していたプロセスと参照関係で連鎖する全てのプロセスを取り出す。次に、取り出された各プロセスに対して、そのプロセスが参照している情報が変更になったことによる影響を見積もる。まず、そのプロセスが参照を行った時点で公示されていた、そのプロセスが参照情報を元に作成している設計情報の成熟度と、変更が適用される時点での同設計情報の成熟度を取り出し、それらの差分を無駄になる可能性のある作業量とする。ここで成熟度とは各設計情報がどの程度完成に近づいたかを示す指標とする。更に、参照が行われた時点での参照情報の成熟度、および参照プロセスが宣言した依存度を取得し、それらと参照情報の変更の規模から、無駄になる可能性のある作業量のうち、実際に無駄になる作業量を確率的に求める。
【発明の効果】
【００２５】
本発明によれば、一般的な開発プロジェクト、および車両開発のような並行開発を多用するプロジェクトにおいて、これまで作業担当者に対するインタビューのような多くのコストや時間を要する方法でしか実現できていなかった変更影響分析を、半自動、低コストで実現可能にすることで、プロジェクト管理に欠かすことのできない変更管理の効率化や、設計が固定化しないことによるリスクの分析を可能にすることができる。
【発明を実施するための最良の形態】
【００２６】
図１は、本発明に係る変更影響分析装置１０の機能ブロックの概略を示す図である。本装置は、最小構成として、入力部１、変更影響計算部２、出力部３で構成され、典型的には、プロジェクト監視部４、プロジェクト情報データベース５、過去のプロジェクト情報ログ６から構成される。本装置の中心部である変更影響計算部２は、ユーザ（多くの場合、開発エンジニア）からそのユーザが変更しようとする設計情報とその変更規模の入力を受け、更にプロジェクト監視部４から（実際はプロジェクト情報データベース５に格納された情報から）設計情報間の依存関係や依存強度、変更対象設計情報を参照している設計情報の参照後の作業量（作業の進捗または経過時間）の入力を受ける。また、過去のプロジェクト情報が存在する場合は、プロジェクト情報ログ６から依存強度の情報などを得ることができる。プロジェクト監視部４や過去のプロジェクト情報ログ６が存在しない場合は、入力部１から全ての入力情報を得るようにしてもよい。入力部１は、キーボードやマウスのような一般的なユーザの入力装置である他、他の情報システムや通信装置であってもよい。
【００２７】
変更影響計算部２は、与えられた入力情報から、後述するようなモデルを用いて、当該設計情報の変更が他の設計情報の作成工程に与える影響度（変更影響度）を計算する。計算された変更影響度は、出力部３を介して、ユーザや他のシステムに出力される。出力部３は、通常のＣＲＴや液晶表示装置あってもよいし、ハード・ディスクのような記憶装置、または外部システムと連結された通信装置であってもよい。
【００２８】
図２は、変更影響計算部２の処理の流れを示したものである。すなわち、ステップＳ１において、設計情報間の依存関係と依存強度、変更された設計情報を参照した設計情報の作成工程への参照後の作業量（仕事の進捗または経過時間）の取得、および変更対象設計情報に対する変更規模の入力を受ける。次に、ステップＳ２において、変更対象設計情報、および変更対象設計情報を参照している設計情報が存在するかどうかを判定する。この判定がＹｅｓであれば、ステップＳ３に移り、変更対象設計情報を参照している設計情報を「参照設計情報」とし、全ての参照設計情報に対する変更影響度を計算する。更に、ステップＳ４において、今、影響を計算された参照設計情報のうち、影響がある閾値よりも低いものを除き、それ以外を変更対象設計情報とする。その後、ステップＳ２からの処理を繰り返す。
【００２９】
ステップＳ２において判定がＮｏの場合は、影響を受ける設計情報それぞれに対する影響とそれらの総和を影響度の結果とし、処理を終了する。
【００３０】
本発明では、自分が参照している情報が変更になったことによる、自分の作業への時間的な（または作業量上の）影響が、「自らが参照している情報に基づいて行った仕事の量」に大きく依存すると仮定し、参照している情報の変更の影響を、「参照した設計情報に基づいて行った仕事の一部（または全体）が、被参照情報の変更によって無駄になるために生ずるリワークの量」と定義する。本発明では、特にすり合わせ開発等のように、プロセスの途中の予測不可能な任意のタイミングで情報交換がなされるようなケースにおいては、「情報を参照してから行った仕事の量」、つまり「参照を行ったタイミング以後の作業の進捗」が、ここで定義したリワークの量を見積もるために重要な情報となることに着目し、「参照を行ったタイミング以後の作業の進捗」を考慮したモデルを提案する。
【００３１】
このモデルにより、既存技術では取り扱いが困難であった、すり合わせ開発等における変更影響分析を可能にする。ここでは設計情報間の依存関係等このモデルで前提となる各種の入力が取得できていることを前提に話を進めるが、それらの取得方法については、＜変更影響分析時のユーザ入力を軽減する入力情報の取得方法＞の節で述べる。同節で述べる方法（タイミング）で入力情報を取得することにより、変更の影響を分析する際のユーザによる入力の手間を非常に小さくすることができる。
【００３２】
＜参照後の作業の進捗を考慮したモデル＞
図３は、本発明の基本となるリワーク算出モデルを示したものである。ここでは、プロセス０で設計情報Ｄ０を作成し、プロセス１で設計情報Ｄ１を作成しているものとする。Ｄ１はあるタイミングでＤ０を参照しており、参照してから現在時刻までｗ１だけ作業の進捗があったものとする。この時、Ｄ０が変更になるものとし、その変更要求の入力（変更対象の設計情報およびその変更規模）がｒ０であるとする。また、Ｄ１がＤ０をある依存強度ｃ０１で参照しているものとする。ここでｒ０やｃ０１、ｗ１といった値の実際の取得や意味に関する詳細は後述する。
【００３３】
ここで、Ｄ０の変更に伴い、Ｄ１にどの程度のリワークが発生するかを見積もる（これが本発明の一つの目的となる）。変更要求の入力ｒ０および依存強度ｃ０１（または他の任意の情報）を入力として、参照後の仕事ｗ１のうちリワークとなる率（リワーク率）を算出する関数をｆとすると、実際のリワークの量はｆ（ｒ０，ｃ０１）・ｗ１と表される。
【００３４】
上記のように、このモデルでは、変更要求の入力、参照関係に与えられる依存強度およびその他の任意の情報を用いてリワーク率を算出し、その値と参照関係が生じてからの仕事の量との積を変更の影響により生じるリワークの量として見積もる。ここでそれら入力およびリワーク率算出関数を適切に調整すれば、設計情報の内容にかかわらず、変更影響分析を行うことができる。
【００３５】
＜変更影響分析時のユーザ入力を軽減する入力情報の取得方法＞
本発明では、上記リワークの量の算出に必要な入力の多くをプロセスの実行時に得られる情報から取得することで、変更影響分析時のユーザ入力を軽減する。前節のモデルで変更の影響を見積もるためには、「設計情報間の依存関係」、「参照後の仕事の量」、「変更要求の入力」、「依存強度」という少なくとも４つの入力が必要となる。このうち、「設計情報間の依存関係」、「参照後の仕事の量」についての具体的な取得方法については実施例に記す。つまり、プロセスの実行時に各種情報を取得するときに、「依存強度」についても同時に取得することにより、変更影響分析時には「変更要求の入力」のみをユーザ入力として得るだけで、変更影響分析が実行可能となる。
【００３６】
＜応用＞
上記のように、変更影響分析の実行が非常に低コストで実現できれば、例えば変更影響分析を全ての設計情報に適用することで、どの設計情報が変更されるとプロジェクト全体に対して影響が大きいかなどのリスク分析を行うことも可能となる。
【００３７】
［実施形態１］
ここでは、＜参照後の作業の進捗を考慮したモデル＞の節で定義したモデル（以後基本モデルと呼ぶ）において、確率的な拡張を適用した例を示す。
【００３８】
基本モデルにおいて、リワーク率を算出する関数ｆの出力を定数ではなく、確率密度関数とする。すなわち、ｆはリワーク率を確率変数とし、その確率密度の分布を表す関数を出力する。このようにすることで、推定値やモデルによる誤差などの確率的な振る舞いを表現することができる。図４は、この揺らぎを含んだリワーク算出モデルを示した図である。ｆ（ｒ０，ｃ０１）は確率密度関数ｐ１（ｒ０１）を出力する。この時ｒ０１は、リワーク率を表し、これとｗ１の積がリワーク量となる。また、参考文献（ＮｅｔＭＢＡ．ｃｏｍ，ＰＥＲＴ，［２００６／０７／０３  検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｎｅｔｍｂａ．ｃｏｍ／ｏｐｅｒａｔｉｏｎｓ／ｐｒｏｊｅｃｔ／ｐｅｒｔ／＞）のように、プロセスの終了タイミングに揺らぎを持たせた表現をとる手法が知られている。すなわち、プロセスの終了時間ｔを確率変数とし、その確率密度分布の関数が与えられる。図４においては、ｇ（ｔ）がそれにあたる。この場合、算出されたリワーク率の確率密度関数ｐ１（ｒ０１）をｇ（ｔ）に解析的に組み込むことができ、変更の影響を受けて更新されたプロセスの終了時間の確率密度分布関数は、
【数１】
2008040760.tif 000003
と表すことができる。
【００３９】
［実施形態２］
ここでは、基本モデルにおいて、従来の手法と同様、間接的（二次的）な変更の影響についても取り扱うことができることについて示す。ここで「間接的な変更の影響」とは、変更の影響を受けて変更となった設計情報によって更に影響を受けて変更となる設計情報を作成しているプロセスに生じるリワークを指す。この時、間接的に影響を受ける設計情報には変更要求の入力値が存在しないため、この値はそれが直接参照している設計情報に対して見積もられた影響から算出する。
【００４０】
また、上記のように算出された変更の影響を、単純に各プロセスの作業量に追加していった場合、それぞれの対応作業が、変更が通知されてから同時に行われるようにモデル化されることになる。一方で、自らの参照している情報の変更の完了を待って自らを変更するような場合には、実際には待ち時間が発生することが考えられる。このような待ちを考慮する場合は、自分が参照している設計情報を作成しているプロセスに生じるリワークの量（待ち時間も含む）を、待ち時間として自分のプロセスの工期に足してやることで、表現が可能である。並行開発のようなケースでは、場合によっては自らの参照している情報の変更の完了を待たずに対応作業を開始する場合もある。このような場合は、待ちのないモデルで影響を算出し、待ちが生じるケースについては待ちを考慮した影響の算出を行う。
【００４１】
［実施形態３］
前述の基本モデルにおいては、リワーク率算出関数など、いくつかの定式化の具体的な方法は示していない。従って、ここで、変更要求の入力や、依存強度、またリワーク率算出関数を実際にどのように定義および定式化するかの一例を示す。
【００４２】
まず、図５にあるように、設計情報Ｄ１が、設計情報Ｄ０を参照して作成されているものとする。ここで、設計情報Ｄ０が変更の対象となるものとし、変更要求の入力ｒ０を、この変更要求がＤ０のこれまでの作業の何割をやり直しとするような変更であるかを表す指標（以後変更規模と呼ぶ）、依存強度ｃ０１を、設計情報Ｄ１の作成作業の何割が設計情報Ｄ０に基づいているかを表す指標とする。Ｄ１がＤ０を参照してから現在までに行った仕事の量をｗ１とすると、ここではＤ０が変更になることによってＤ１に生ずるリワークの量はｒ０・ｃ０１・ｗ１となる。つまりここではリワーク率算出関数を、入力変更規模と依存強度の積としている。
【００４３】
このモデルでのコンセプトを説明する。まず、変更要求により、Ｄ０の変更の度合いｒ０が決定される。従って、プロセス０ではｒ０・ｗ０だけの仕事がやり直し（すなわちリワーク）となる。今、Ｄ１が参照している情報量は、プロセス０でなされた仕事全体のうちｗ０’の仕事で生成された分だけである。ここで、このＤ０における変更が、Ｄ１に与える影響（発生させるリワークの量）を見積もるためには、ｗ０’のうちどの程度の仕事がリワークとなったか、言い換えるとｗ０’で生成されたＤ０の情報量のうちどの程度が無効となったかを捉える必要がある。
【００４４】
しかしながら、これを現場から正確に見積もることは困難であるため、ここではプロセス０のＤ０の生成にかけた仕事の量が全てのタイミングで均等に無効になったものと仮定する。すると、Ｄ１が参照しているプロセス０の仕事ｗ０’のうち、ｒ０・ｗ０’の分だけの仕事が無効になったものとみなすことができる。今、依存強度ｃ０１は、Ｄ０の情報に依存して行われるプロセス１のＤ１作成に必要な作業の、Ｄ１を作成する作業全体に対する比率を表しているため、Ｄ１が参照しているＤ０の情報量のうちｒ０の割合だけ無効となるから、プロセス１でＤ１を作成するために行われた作業ｗ１のうち、ｒ０・ｃ０１・ｗ１だけ無効となったと考えることができる。
【００４５】
［実施形態４］
ここでは、実施形態３における定式化の例（以後基本モデルの定式化例と呼ぶ）が、実施形態２における変更の二次的な伝播を取り扱う場合にどのように定式化されるかについて示す。
【００４６】
図６は、二次的伝播を含むリワーク算出モデルの一例を示した図である。この図に示すように、Ｄ２は変更対象であるＤ０を間接的に参照しており、Ｄ２もＤ０の変更の影響を受ける。この時、Ｄ２に対する変更規模ｒ１は、Ｄ１に対するリワーク量がプロセス２が参照した仕事量に対してどの程度の割合かで求める。図中では、プロセス２が参照した仕事量は、ｗ１’＋ｗ１””である。一方、プロセス１におけるＤ１に対する仕事はｗ１（＝ｗ１’’＋ｗ１’’’）のうちｒ０・ｃ０１・ｗ１だけリワークとなっている。これがｗ１の中で均等に分散していると考えると、プロセス２が参照した仕事に対してリワークとなった量はｒ０・ｃ０１・ｗ１’’となる。最終的にＤ２が参照した仕事の何割が変更になったかは、ｒ１＝ｒ０・ｃ０１・ｗ１’’／（ｗ１’＋ｗ１’’）として与えられる。これをＤ１のＤ２にとっての変更規模とみなす。するとＤ２のリワーク量は、ｒ１・ｃ１２・ｗ２となる。
【００４７】
［実施形態５］
ここでは、基本モデルの定式化例に、実施形態１における確率的な拡張を適用する例について示す。後述の実施例で触れるが、変更入力値以外では、依存強度をユーザの入力から取得する場合がある。この場合、依存強度の値は誤差を含むことが予想される。そこで、例えば、依存強度を定数ではなくそれを確率変数とする確率密度関数とし、この関数を、ユーザ入力とそのユーザの特性から決定するようにする。その一例として、この確率密度関数を、平均を入力値、分散をユーザの熟練度や、そのユーザの過去の見積もりの誤差などから算出した値とする正規分布としてもよい。例えば、リソース管理システムにデータとしてそのエンジニアの予想精度の情報を上記分布の分散の値として保持しておき、依存強度を入力したエンジニアの情報から、自動的にその予想精度の情報を取得し、分布を決定することなどが考えられる。このようにして計算されたリワーク率（または量）は確率的に与えられることになり、実施形態１で示したように、確率的に定義されたスケジュール見積もりに解析的に組み込むことができる。
【００４８】
［実施形態６］
＜変更影響分析時のユーザ入力を軽減する入力情報の取得方法＞で述べたように、ここで、本発明の実施に必要な入力情報の具体的な取得方法について示す。
【００４９】
まず、プロセス担当者が自らが必要とする情報の請求をシステムに登録・更新し（情報請求）、同時に自らが作成する情報もシステムに登録・更新（情報公開）する。登録されたこれらの情報請求と情報公開のマッチングを行うことで、設計情報間の依存関係を構築することができる。また、情報公開（ここでは公開内容が更新されることも情報公開と呼んでいる）の際のプロセス担当者による入力、あるいはその他イベントからその情報の成熟度（作業の進捗）の情報を得ることで、任意の時点における各設計情報の成熟度を取得することもできる。
【００５０】
本発明の変更影響分析では、「設計情報間の依存関係」、「参照後の仕事の量」、「変更の入力」、「依存強度」という少なくとも４つの入力が必要となる。このうち、「設計情報間の依存関係」と、「参照後の仕事の量」については、次の図で説明するような業務管理システムを構築することによって得ることができる。
【００５１】
図７は、この業務管理システムの一例を示したものである。このシステムでは、情報表示部４００は、既に情報記録部４５０に記録されている工程情報の識別情報の各々に対応付けて、その識別情報によって識別される工程情報に含まれる情報項目の一覧を、その差作業者の作業者端末３０−２の画面上に表示する。
【００５２】
要求受付部４１０は、一の業務工程の作業者から、この業務工程を開始するために必要な工程情報の要求を受け付ける。要求表示部４２０は、受け付けられたその要求を他の作業者に表示する。回答受付部４３０は、当該他の作業者が担当する各々の業務工程において生成される各々の工程情報のうち、要求された工程情報の識別情報の回答を当該他の作業者から受け付ける。
【００５３】
フロー生成部４４０は、工程情報の識別情報の回答が受け付けられたことに応じ、その工程情報を生成する業務工程に当該第１の業務工程が要求されたその工程情報を介して依存することを示す依存情報を生成する。
【００５４】
依存記録部４６０は、フロー生成部４４０の処理によって、業務を構成する複数の業務工程が互いに依存関係を示す工程フロー情報を生成する。ユーザ記録部４７０は、作業者の識別情報と、作業者の名称、および、作業者の職務を対応付けて記録している。通知部４８０は、作業者端末３０−１〜Ｎの何れかから、ある業務工程の工程情報が完成した旨の通知を受ける。そして、通知部４８０は、検出したその業務工程の担当者に対し、その業務工程を開始する条件が満たされた旨を通知する。その業務工程の担当者が誰であるかは、ユーザ記録部４７０を参照することで特定できる。
【００５５】
工程管理部４９０は、要求された情報項目に対応付けて情報記録部４５０に記録されている成熟度および提供予定日と、要求受付部４１０により要求された成熟度および希望提供日とに基づいて、既に記録されている業務工程を分割し、または、新たな業務工程を生成して情報記録部４５０に記録する。工程表示部４９５は、情報記録部４５０、依存記録部４６０、およびユーザ記録部４７０に記録された各種の情報に基づいて、各業務工程の依存関係および属性を管理者端末２０の画面上に表示する。
【００５６】
このような業務管理システムを用いることで、「設計情報間の依存関係」を得ることができる。
【００５７】
「参照後の仕事の量」は、参照が発生した時点での成熟度と変更影響を見積もる時点での成熟度との差分により得ることができる。この仕事の量は、成熟度が離散的な粗いレベルでしか定義されていない場合など、場合によっては単に参照タイミングからの時間経過で進捗を捉えてもよい。「変更の入力」は、変更影響分析時のユーザ入力から受け付けるようにする。
【００５８】
一方、「依存強度」は、情報を利用する側のユーザ入力から得る方法や、過去に蓄積したデータ等から得る方法、またはそれらを組み合わせた方法が考えられる。
【００５９】
図８は、図７で示した業務システムにおける情報請求画面の一例を示す図である。例えば、ユーザ（開発エンジニア）は、この図のような情報請求画面からＧＵＩを通して情報請求をシステムに入力する。ここでは、画面左側のＯＤＭＭ（Ｏｎ−Ｄｅｍａｎｄ  Ｍａｔｕｒｉｔｙ  Ｍｏｄｅｌｉｎｇ）情報ツリーに「プロジェクトＸＸ」の設計情報がツリービューで表示されている。画面右側では、「Ａピラートリム検討図」を作成しようとする開発エンジニア「山田太郎」が、請求したい情報名として「ドアオープニングライン」を要求し、参照希望タイミングとして「今すぐ参照したい」を指定している。
【００６０】
図９は、この情報請求画面に更に拡張を加え、符号５１で示すような依存強度に関する段階的な選択肢を設けてユーザに選択させるようにしたものである。ここでは、依存強度として、「参考にするが、影響少ない」と「影響が高い利用」の２段階のみが示されているが、更に多段階にしてもよい。もちろん、その依存強度を数値として直接入力させるようにしてもよい。
【００６１】
また、本発明における各種パラメータを具体的に設定した場合、依存強度の値に制約が生じる可能性がある。基本モデルの定式化例では、一つの設計情報が複数の設計情報を参照している場合、自らが依存している全ての設計情報に対する依存強度の和が１以下になる必要がある。
【００６２】
図１０は、情報請求画面に依存強度の制約条件を強制する入力を設けた例を示す図である。ここでは、情報請求フォームに、符号５２で示す領域に既に依存している情報の依存強度（長さが固定されている）、符号５３で示す領域に新たに設定する情報の依存強度（長さの調整が可能）、および符号５４に示す領域に依存強度の最大値を現す外枠を表示し、ユーザに入力させる。
【００６３】
また、このようなユーザによる入力をさせる以外にも過去に蓄積された情報から、ある種の設計情報が別の設計情報にどの程度の依存強度を持つかが推測可能な場合には、この情報をデフォルト値として提供したり、ユーザからの入力を受けずにこの値で計算するなどの方法が考えられる。
【００６４】
また、情報の請求を行う段階で、請求対象の設計情報がシステムに登録されていれば、その情報の成熟度を見ることも可能である。従って、例えば、参照しようとしている設計情報の成熟度が低い（すなわち変更になる可能性が高い）のに、それに大きく依存して設計を進めることはないと仮定し、被参照設計情報の規模やその成熟度から依存強度を算定してデフォルト値を提供するなどしてもよい。これは、例えばあらかじめ各設計情報に段階的に定義された成熟度に対応する依存強度を定義しておくなどの方法で実現できる。また、これを利用して、成熟度の低い設計情報に対して高い依存強度の参照を行おうとした際にアラートを上げるなどのサービスを組み込むこともできる。
【００６５】
上記のように入力を得ることで、変更影響分析のつど多くのユーザに入力を求める必要がなく、分析に必要なコストを低減することができる。
【００６６】
図１１は、本発明の装置の典型的なハードウェア構成例として情報処理装置１０００を示したものである。以下、この情報処理装置１０００のハードウェア構成の一例を示す。情報処理装置１０００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１０、バスライン１００５、通信Ｉ／Ｆ１０４０、メインメモリ１０５０、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１０６０、パラレルポート１０８０、ＵＳＢポート１０９０、グラフィック・コントローラ１０２０、ＶＲＡＭ１０２４、音声プロセッサ１０３０、Ｉ／Ｏコントローラ１０７０、ならびにキーボードおよびマウス・アダプタ等１１００の入力手段を備える。Ｉ／Ｏコントローラ１０７０には、フレキシブル・ディスク（ＦＤ）ドライブ１０７２、ハード・ディスク１０７４、光ディスク・ドライブ１０７６、半導体メモリ１０７８、等の記憶手段を接続することができる。
【００６７】
音声プロセッサ１０３０には、増幅回路１０３２およびスピーカ１０３４が接続される。また、グラフィック・コントローラ１０２０には、表示装置１０２２が接続されている。
【００６８】
ＢＩＯＳ１０６０は、情報処理装置１０００の起動時にＣＰＵ１０１０が実行するブートプログラムや、情報処理装置１０００のハードウェアに依存するプログラム等を格納する。ＦＤ（フレキシブル・ディスク）ドライブ１０７２は、フレキシブル・ディスク１０７１からプログラムまたはデータを読み取り、Ｉ／Ｏコントローラ１０７０を介してメインメモリ１０５０またはハード・ディスク１０７４に提供する。
【００６９】
光ディスク・ドライブ１０７６としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＡＭドライブ、ＣＤ−ＲＡＭドライブを使用することができる。この際は各ドライブに対応した光ディスク１０７７を使用する必要がある。光ディスク・ドライブ１０７６は光ディスク１０７７からプログラムまたはデータを読み取り、Ｉ／Ｏコントローラ１０７０を介してメインメモリ１０５０またはハード・ディスク１０７４に提供することもできる。
【００７０】
情報処理装置１０００に提供されるコンピュータ・プログラムは、フレキシブル・ディスク１０７１、光ディスク１０７７、またはメモリーカード等の記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、Ｉ／Ｏコントローラ１０７０を介して、記録媒体から読み出され、または通信Ｉ／Ｆ１０４０を介してダウンロードされることによって、情報処理装置１０００にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
【００７１】
前述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク１０７１、光ディスク１０７７、またはメモリーカードの他に、ＭＤ等の光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハード・ディスクまたは光ディスク・ライブラリ等の記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムを情報処理装置１０００に提供してもよい。
【００７２】
以上の例は、情報処理装置１０００について主に説明したが、コンピュータに、情報処理装置で説明した機能を有するプログラムをインストールして、そのコンピュータを情報処理装置として動作させることにより上記で説明した情報処理装置と同様な機能を実現することができる。従って、本発明において一つの実施形態として説明した情報処理装置は、方法およびそのコンピュータ・プログラムによっても実現可能である。
【００７３】
本発明の装置は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実施では、所定のプログラムを有するコンピュータ・システムでの実施が典型的な例として挙げられる。かかる場合、該所定のプログラムが該コンピュータ・システムにロードされ実行されることにより、該プログラムは、コンピュータ・システムに本発明にかかる処理を実行させる。このプログラムは、任意の言語、コード、または表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接実行すること、または（１）他の言語、コード、もしくは表記への変換、（２）他の媒体への複製、の何れか一方もしくは双方が行われた後に、実行することを可能にするものである。もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体を含むプログラム製品もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハード・ディスク装置、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ可読媒体に格納することができる。かかるプログラムは、コンピュータ可読媒体への格納のために、通信回線で接続する他のコンピュータ・システムからダウンロードしたり、他の媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。
【００７４】
最後に、上記の本発明による手法を、実際のプロジェクト管理に利用する場合について述べる。まず、図７で示したような業務管理システムにおいて分析に必要なパラメータをプロジェクトの実行時に抽出しておく。ここでは、依存関係と依存強度、各設計情報の成熟度の変遷を時系列を追って（参照などが発生したタイミングにおいて）取得することができる。あるタイミングである設計情報の変更を行う必要が生じた場合、その影響を見積もるユーザが本発明の手法を用いたプログラム等にその変更の程度（変更規模）を入力することで、その変更がプロジェクト全体の工期やコストにどのような影響を与えるかを概算することができる。これに基づき、その変更の採否または、一つの変更を達成するために複数の選択肢がある場合には、それらの中から最も影響の小さな変更を採用するなどといったことが考えられる。
【００７５】
また、プロジェクト実行時においてそのリスク分析を行いたい場合、本手法を利用することで、どの情報に変更が発生すると影響が大きいかなどといった情報が自動的に得られる。例えば、全ての設計情報に対して、ある一定の変更規模を入力としてその影響を見積もる。すると、どの設計情報に変更が生じるとプロジェクト全体に大きな影響を与えるかといったことがわかり、これを基に各種の対策を講じることができる。
【００７６】
更に、既に述べたような過去のプロジェクトにおけるログが利用可能である場合、本手法を用いて過去のプロジェクトにおいてどのような設計情報に対する変更がプロジェクト全体に大きな影響を及ぼし得たかという情報を得ることができる。このような情報を、新たな類似するプロジェクトに対するリソースプランニングの際などに使用することもできる。
【００７７】
従来技術では、成果物の形式を利用して変更の影響を見積もる手法や、過去の類似するプロセスの情報やあらかじめ定義されたプロセス間の依存関係の情報に基づいて変更の影響を見積もる手法は提案されているが、本発明のように実際に依存関係が発生したタイミングの情報等をプロセスの実行過程から取得し、依存関係が発生した後に行われた作業の量（つまり参照している情報に基づいて行った仕事の量）を考慮して変更の影響を見積もる手法は存在しない。
【００７８】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態または実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【００７９】
【図１】本発明の一形態における装置の機能ブロックの概略を示した図である。
【図２】本発明の一形態における変更影響計算の処理の流れを示した図である。
【図３】本発明の基本となるリワーク算出モデルを示した図である。
【図４】本発明の実施形態１における揺らぎを含んだリワーク算出モデルを示した図である。
【図５】本発明の実施形態３におけるリワーク算出モデルの一例を示した図である。
【図６】本発明の実施形態４における二次的伝播を含むリワーク算出モデルの一例を示した図である。
【図７】本発明の実施形態６における業務管理システムを示した図である。
【図８】図７で示した業務システムにおける情報請求画面を示した図である。
【図９】図８で示した業務システムにおける情報請求画面に依存強度の選択肢を設けた例を示した図である。
【図１０】図９で示した情報請求画面に依存強度の制約条件を強制する入力を設けた例を示した図である。
【図１１】本発明に一形態における変更影響分析装置の典型的なハードウェア構成例として情報処理装置１０００を示した図である。
【符号の説明】
【００８０】
１  入力部
２  変更影響計算部
３  出力部
４  プロジェクト監視部
５  プロジェクト情報データベース
６  過去のプロジェクト情報ログ
１０  変更影響分析装置
２０  管理者端末
３０  作業者端末
４０  業務管理システム
５１  依存強度に関する段階的な選択肢
５２  既に依存している情報の依存強度
５３  新たに設定する情報の依存強度
５４  依存強度の最大値を表す外枠
４００  情報表示部
４１０  要求受付部
４２０  要求表示部
４３０  回答受付部
４４０  フロー生成部
４５０  情報記録部
４６０  依存記録部
４７０  ユーザ記録部
４８０  通知部
４９０  工程管理部
１０００  情報処理装置
【図１】
2008040760.tif 000005
【図２】
2008040760.tif 000006
【図３】
2008040760.tif 000007
【図４】
2008040760.tif 000008
【図５】
2008040760.tif 000009
【図６】
2008040760.tif 000010
【図７】
2008040760.tif 000011
【図８】
2008040760.tif 000012
【図９】
2008040760.tif 000013
【図１０】
2008040760.tif 000014
【図１１】
2008040760.tif 000015