JP5142132B2 - 設計プロセスの順序の決定を支援する技術 - Google Patents

設計プロセスの順序の決定を支援する技術 Download PDF

Info

Publication number
JP5142132B2
JP5142132B2 JP2007285482A JP2007285482A JP5142132B2 JP 5142132 B2 JP5142132 B2 JP 5142132B2 JP 2007285482 A JP2007285482 A JP 2007285482A JP 2007285482 A JP2007285482 A JP 2007285482A JP 5142132 B2 JP5142132 B2 JP 5142132B2
Authority
JP
Japan
Prior art keywords
design process
constraint
constraints
strength
data
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.)
Expired - Fee Related
Application number
JP2007285482A
Other languages
English (en)
Other versions
JP2009116411A (ja
Inventor
俊博 ▲高▼橋
昭夫 小出
真 加納
武朗 吉澤
貴行 恐神
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007285482A priority Critical patent/JP5142132B2/ja
Priority to US12/262,275 priority patent/US20090119632A1/en
Publication of JP2009116411A publication Critical patent/JP2009116411A/ja
Application granted granted Critical
Publication of JP5142132B2 publication Critical patent/JP5142132B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Description

本発明は、設計プロセスの順序の決定を支援する技術に関する。
自動車などの製品の開発は、膨大な数の設計プロセスを要する。例えば第1の設計プロセスにおいてはドアが設計され、第2の設計プロセスにおいてはドアを取り付ける開口部が設計される。その他にも、製品が複雑かつ大規模になればなるほど、多数の設計プロセスが必要になる。
複数の設計プロセスは相互に依存する場合もある。例えば、ドアの設計が終了しないとその開口部の設計はできない。一方で、開口部の設計が終了しないとドアの設計ができない場合もあるかもしれない。このような場合には、一方の設計プロセスを先に処理するのはやむを得ないが、他方の設計プロセスを終了した後に当該一方の設計プロセスに手戻りが生じる場合がある。
業務工程の最適化に関する背景技術については下記の特許文献1を参照されたい。
特開2007−079868号公報
このように多数の複雑な設計プロセスが相互に依存する場合においては、エンジニアが勘と経験に基づいて、どの設計プロセスを先に処理するべきかを決定することもできる。しかしながら、そのような決定によっては、手戻りによって生じる追加の工数が多くなってしまう場合がある。追加の工数は、開発期間の遅れまたは開発費用の増大を招くおそれがある。これに対し、コンピュータなどで依存関係を解析して設計プロセスの処理手順を決定することも考えられる。
しかしながら、製品の開発においては、様々な例外的状況が生じる場合がある。例えば、先行する設計プロセスにおいて設計変更が発生すると、既に開始した後続の設計プロセスをやり直さなければならない場合がある。また、後続の設計プロセスにおいて作業の優先順位に変化が生じたために、先行の設計プロセスにおいて一部の作業をやり直さなければならない場合がある。このため、単に1つの処理手順を決定したのでは、そのような例外的状況に対応できない場合がある。
そこで本発明は、上記の課題を解決することのできるシステム、プログラムおよび方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の形態においては、設計プロセスの順序の決定を支援するシステムであって、それぞれの設計プロセスに対し他のそれぞれの設計プロセスが与える制約の強さを示すデータである制約データを記憶する記憶装置と、前記記憶装置にアクセスして、ある設計プロセスが他の設計プロセスの制約を受ける関係の循環を前記制約データから検出する検出部と、前記記憶装置にアクセスして、検出した前記循環の中から、除外すると前記循環を解消できる、制約の強さが最小の制約を選択する選択部と、前記制約データから、選択した前記制約を除外して、それぞれの設計プロセスが満たすべき制約を示すデータとして出力する出力部とを備え、前記選択部は、ある設計プロセスが他の設計プロセスから受ける第1の強さの制約、および、他の設計プロセスがある設計プロセスから受ける第2の強さの制約を、前記第1の強さよりも前記第2の強さが強いことを条件に、他の設計プロセスがある設計プロセスから受ける前記第1及び第2の強さの差分の強さの制約に置換するシステムを提供する。また、当該システムとしてコンピュータを機能させるプログラム、および、当該システムにより設計プロセスの順序の決定を支援する方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係るコンピュータ100の概要を示す。コンピュータ100は、基本的なハードウェアとして、例えば通信インターフェイス・カードなどの通信インターフェイス102と、例えばハードディスクドライブなどの記憶装置104とを備える。また、コンピュータ100は、記憶装置104から読み出したプログラムをCPUなどの演算装置で実行することにより、支援システム106として機能する。
支援システム106は、ある製品を開発するための複数の設計プロセスについて、設計プロセス間の制約の入力を利用者から受け付けると共に、その制約をできるだけ充足させるような、設計プロセスの処理順序を決定して出力する。利用者は、この処理順序に従って製品開発を進めることで、例えば設計変更による手戻りを減少させて、開発期間を減少し、または、開発費用を低減できる。以下、具体的に説明する。
図2aは、本実施形態に係る記憶装置104のデータ構造の一例を示す。記憶装置104は制約データを記憶している。制約データは、それぞれの設計プロセスに対し他のそれぞれの設計プロセスが与える制約の強さを示すデータである。このデータは、図2aのように、非対称の行列として表されてよい。また、図2bは、本実施形態に係る制約データを表すグラフ(DAG:Directed acyclic graph)の一例を示す。
w1−w10のそれぞれは、設計プロセスを表し、グラフにおいてはノードとして表される。また、設計プロセスと設計プロセスとの間には制約の強さが定義されており、グラフにおいてはエッジとして表される。このエッジは、制約する設計プロセスから制約を受ける設計プロセスに向けた、制約の強さを重みとする有向エッジである。
具体的には、設計プロセスw1は、設計プロセスw2を制約する。この制約は、必ず満たすべき制約を示す。このような制約については制約の強さは定義されていなくてもよいし、無限大の強さの制約が定義されてもよい。図2aにおいてはこの制約を「+」または「−」として表す。また、図2bにおいてはこの制約を実線の有向エッジとして表す。
また、設計プロセスw2は、設計プロセスw8により制約される。この制約は、満たさないと手戻りが発生する制約を示し、この制約の強さは手戻りに要する時間として表される。この手戻りの所要時間は、例えば1単位時間(例えば1人で作業して1時間かかることに相当する)である。図2aにおいてはこの制約の強さを+1として表す。また、図2bにおいてはこの制約を点線の有向エッジとして表す。
ここで、例えば設計プロセスw2、設計プロセスw6、および、設計プロセスw8に注目されたい。設計プロセスw2は設計プロセスw6を制約し、設計プロセスw6は設計プロセスw8を制約し、設計プロセスw8は設計プロセスw2を制約する。このように、制約データは、ある設計プロセスが他の設計プロセスの制約を受ける関係の循環が含まれる場合がある。
制約データがこのような循環を含む場合においては、何れかの制約が満たされないのはやむを得ない。だからといって、満たさないこととする制約を任意に選択したのでは、手戻りに要する時間が多すぎる場合がある。これに対し、いわゆる全数探索と呼ばれる手法で、手戻りの所要時間を最小化することが考えられる。
例えば、w1−w10のそれぞれを、制約とは全く無関係に、処理可能なあらゆる順序でそれぞれ処理すると仮定する。そして、それぞれの順序に対応して、その順序で処理した場合における手戻りの所要時間を算出する。この所要時間は、記憶装置104を走査して、その順序で処理したならば満たされなくなる制約に対応する手戻りの時間を合計することで算出される。
そして、支援システム106は、手戻りの所要時間の合計が最も小さくなる順序を、w1−w10を処理するべき順序として決定する。このような全数探索によって、支援システム106が、手戻りの所要時間の合計を最小化する処理順序を決定することもできる。しかしながら、この全数探索では、設計プロセスの総数が多くなると処理に膨大な時間が必要となって現実的な時間で処理が完了しないおそれがある。
これに対し、本実施形態に係る支援システム106は、手戻りの所要時間を最小化する処理順序を、現存のコンピュータを利用しても現実的な時間で完了する、極めて高速な手順で決定してゆく。
図3は、本実施形態に係る支援システム106の機能構成を示す。支援システム106は、入力部300と、検出部310と、選択部320と、出力部350とを有する。入力部300は、利用者から制約データの入力を受け付けて記憶装置104に格納する。検出部310は、記憶装置104にアクセスして、制約データの中から、ある設計プロセスが他の設計プロセスの制約を受ける関係の循環を検出する。
選択部320は、記憶装置104にアクセスして、検出したその循環の中から、除外すると循環を解消できる、制約の強さの合計が最小の制約の組を選択する。制約データがグラフで表される場合において、この制約の組は、除外するとグラフ内の循環を解消できる、重みの合計が最小の有向エッジの組に相当する。具体的には、選択部320は、複製部325、削除部330、および、対応制約選択部340を有する。複製部325は、制約データの複製である複製データを生成して記憶装置104に格納する。
削除部330は、記憶装置104にアクセスし、予め定められた手順に従って、循環を解消するための除外するべき制約の強さに影響しない設計プロセスおよび制約を、複製データから削除する。例えば、循環に含まれない制約は除外されないことが明らかである。また、他の制約の強さと比較して非常に強い制約は、除外するべき制約の強さを最小化する観点からは、除外するべきとして選択されることはない。従って、削除部330は、このような除外されないことが明らかな制約を複製データから削除してゆく。
対応制約選択部340は、設計プロセスおよび制約を削除したその複製データのうち、除外すると循環を解消できる、制約の強さの合計が最小の制約の組を選択する。そして、対応制約選択部340は、選択した当該制約の組に対応する、もとの制約データにおける制約の組を選択する。出力部350は、記憶装置104にアクセスして、もとの制約データから、対応制約選択部340により選択された制約の組を除外して、それぞれの設計プロセスが満たすべき制約を示すデータを出力する。
このように、本実施形態に係る支援システム106においては、選択部320が制約データの中から制約の組を直接選択するのではなく、複製部325が複製データを縮退することで規模の縮小したグラフから、対応制約選択部340が制約の組を選択する。これにより、選択するべき制約の組を決定するための処理時間を低減することができる。
図4は、本実施形態に係る記憶装置104により制約データが加工されて出力される処理の流れを示す。入力部300は、制約データの入力を受け付けて、入力されたその制約データを記憶装置104に格納する(S400)。次に、入力部300は、矛盾して充足し得ない制約、および、冗長・不要な制約を除去する(S410)。その具体例を図5−7に示す。
図5は、不要または冗長な制約を含む制約グラフの第1例を示す。設計プロセスw1は設計プロセスw2を制約し、設計プロセスw2は設計プロセスw4を制約し、設計プロセスw4は設計プロセスw1を制約している。但し、w2からw4への制約、および、w4からw1への制約は、必ず満たすべき制約ではないので、ここでは制約の矛盾は生じていない。
一方、設計プロセスw1は設計プロセスw2を制約し、設計プロセスw2は設計プロセスw3を制約し、設計プロセスw3は設計プロセスw1を制約している。そして、何れの制約も、満たさないと単に手戻りが生じる制約ではなく、必ず満たすべき制約である。
このように、循環に含まれる全ての制約が、必ず満たすべき制約である場合には、入力部300は、記憶装置104に記憶している制約データを変更するための入力を利用者から受け付ける。例えば、入力部300は、制約が矛盾している旨のメッセージを、矛盾している制約の識別情報(例えばw1→w2、w2→w3およびw3→w1などのシンボル)に対応付けて表示したうえで、何れの制約を削除するかを利用者に入力させてよい。この入力に応じて、記憶装置104に記憶された制約データは変更される。
図6は、不要または冗長な制約を含む制約グラフの第2例を示す。この第2例において、検出部310は、他の複数の制約によって推移的に定まる制約を削除する。具体的には、この第2例において、設計プロセスw1は、本発明に係る第6の設計プロセスの一例である。また、設計プロセスw2は、本発明に係る第7の設計プロセスの一例である。また、設計プロセスw3は、本発明に係る第8の設計プロセスの一例である。
設計プロセスw2は設計プロセスw1から必ず満たすべき制約を受ける。設計プロセスw3は設計プロセスw2から必ず満たすべき制約を受ける。設計プロセスw3は設計プロセスw1から必ず満たすべき制約を受ける。そして、設計プロセスw2が他の何れの設計プロセスからも制約を受けない。また、設計プロセスw2は他の何れの設計プロセスをも制約しない。この場合には、検出部310は、設計プロセスw3が設計プロセスw1から受ける必ず満たすべき制約を制約データから削除する。
図7は、不要または冗長な制約を含む制約グラフの第3例を示す。この第3例において、検出部310は、ある設計プロセスと他の設計プロセスの間に、必ず満たすべき制約及び満たさないと手戻りが発生する制約のそれぞれが存在することを条件に、当該手戻りが発生する制約を制約データから削除する。
具体的には、第3例において、設計プロセスw5は設計プロセスw4から必ず満たすべき制約を受ける。また、設計プロセスw4は設計プロセスw5から満たさないと手戻りが発生する制約を受ける。その場合には、検出部310は、当該手戻りが発生する制約を制約データから削除する。
また、第3例において、設計プロセスw3は設計プロセスw1から、満たさないと手戻りが発生する制約を受ける。一方、設計プロセスw2は設計プロセスw1から、必ず満たすべき制約を受け、設計プロセスw3は設計プロセスw2から、必ず満たすべき制約を受ける。この結果、推移的には、設計プロセスw3は設計プロセスw1から、必ず満たすべき制約を受ける。
従って、設計プロセスw3およびw1の間には、必ず満たすべき制約および満たさないと手戻りが発生する制約のそれぞれが存在する。検出部310は、このような場合には、満たさないと手戻りが発生する制約を制約データから削除する。この結果、設計プロセスw3が設計プロセスw1から受ける、満たさないと手戻りが発生する制約が制約データから削除される。
図4の説明に戻る。次に、検出部310は、上記のように各種処理により制約を削除し、または、変更した制約データから、制約の循環を検出する(S420)。その処理の具体例を図8および図9に示す。
図8は、図4のS420における処理の流れの詳細を示す。検出部310は、まず、循環の検出のための各種データを初期化する(S810)。この初期化処理においては、まず、制約データをノードおよびエッジで表した制約グラフが定義される。具体的には、検出部310は、集合Nを、各設計プロセスを表すノードの集合とし、集合Eを、各制約を表すエッジの集合とする。
ノードおよびエッジには、それぞれ、1から順に通し番号が識別情報として付与されているものとする。この場合において、NおよびEのそれぞれは、その後の演算によって参照・変更が可能なように、例えば集合の各要素を識別する識別情報の配列としてRAMなどの記憶装置に記憶されてよい。
また、検出部310は、フラグの集合であるNv(n)の記憶域を記憶装置に確保する。Nv(n)は、ノードnが訪問済み(図9に示す循環検出処理で処理済であることをいう)かどうかを示すフラグを表す。例えば、Nv(1)=1であれば、ノード1が訪問済みであることを示す。Nv(n)は、例えば、整数型または論理値型の配列変数として実現されてよい。
また、検出部310は、id番号の集合であるid(n)の記憶域を記憶装置に確保する。id(n)は、ノードnが所属するグループのIDを表す。初期化処理の段階において、まだ何れのノードもグループに所属していないので、検出部310は、全てのnについてid(n)=−1と初期化する。
また、検出部310は、スタック型のデータ記憶域Nstackを記憶装置に確保する。以降、このデータ記憶域に要素をプッシュすることを、単にNstackに要素をプッシュするといい、このデータ記憶域から要素をポップすることを、単にNstackから要素をポップする、という。
次に、検出部310は、集合Nの全てのnについて、処理が完了したかどうかを判断する(S820)。例えば、集合N内の何れのノードnについても、Nv(n)=1であれば、集合N内の全てのノードnについて処理が完了したと判断される。
処理が完了した場合には(S820:YES)、支援システム106は、図8の処理を終了する。一方、処理が完了していなければ(S820:NO)、検出部310は、集合Nの中から未処理のノードを選択する。選択されたノードをノードnとする。そして、検出部310は、そのノードnについて、循環の検出処理を行う(S840)。
循環の検出処理は、例えばC言語などの関数型プログラム言語の関数、または、Java(登録商標)言語などのオブジェクト指向プログラム言語のメソッドで実現されてよい。その場合においては、この循環の検出処理の対象となるノードn(厳密にはその通し番号である数値n)が、関数またはメソッドの引数として与えられてよい。この場合において、数値n以外の各種集合および変数は、いわゆる大域変数として、呼び出された関数またはメソッド内においても同一シンボルにより参照される。
後述するS840の処理を終えると、検出部310は、S820に処理を戻して、未処理の次のノードnについて同様の処理を繰り返す。
図9は、図8のS840における処理の流れの詳細を示す。まず、検出部310は、例えば引数として与えられたノードnを、Nstackにプッシュする(S900)。
次に、検出部310は、Nv(n)=0かどうかを判断する(S905)。Nv(n)=0であれば(S905:YES)、検出部310は、Nv(n)=1とする(S910)。また、検出部310は、ノードnから制約を受ける他のノード(ノードnの子と称す)を制約データから検出して、その集合をNcとする。集合Ncは、実体はノードの通し番号の配列であり、その記憶域は記憶装置内に確保されてよい。
次に、検出部310は、Ncが空集合かを判断する(S915)。Ncが空集合でなければ(S915:NO)、検出部310はNcからノードncを取り出す(S920)。Ncからncは除外される。そして、検出部310は、ノードncについて、循環の検出処理を再帰的に行う(S925)。これは、例えばノードnc(正確にはその通し番号nc)を引数とする関数またはメソッドの再帰呼び出しにより実現される。
循環の検出処理が完了すると、検出部310は、S915に処理を戻して、Ncに含まれる次のノードncについて処理する。一方、Ncが空集合であれば(S915:YES)、検出部310は、Nstackからノードnをポップして(S980)、図9の処理を終了する。
一方、Nv(n)=0で無い場合に(S905:NO)、検出部310は、Nstackのトップを除きNstackにノードnが含まれるかどうかを判断する(S930)。Nstackにノードnが含まれない場合に(S930:NO)、検出部310は、Nstackからノードnをポップして(S980)、図9の処理を終了する。
一方、Nstackにノードnが含まれる場合に(S930:YES)、検出部310は、Nstackのうちノードnよりもスタックトップ側にあるノードの集合(スタックトップに存在するノードn自体も含む)を求める(S935)。その集合をNloopとする。
次に、検出部310は、id(n)=−1かどうかを判断する(S940)。id(n)=−1であれば、検出部310は、新しいIDをid(n)に付与する。新しいIDとは、例えば、既に何れかのノードmについてid(m)の値として設定した整数の最大値の次に大きい整数である。まだ何れのノードmについてもid(m)を設定していなければ、当該新しいIDは0である。
次に、検出部310は、Nloopに含まれる全てのノードの各々(nloopと呼ぶ)について、id(nloop)を設定する処理が終了したかどうかを判断する(S945)。終了していなければ(S945:NO)、検出部310は、Nloopから未処理のノードであるnloopを選択する(S950)。
検出部310は、id(nloop)=−1かどうかを判断する(S955)。id(nloop)=−1であれば(S955:YES)、検出部310は、id(nloop)の値をid(n)と同一の値に設定する(S960)。一方、id(nloop)=−1でなければ(S955:NO)、検出部310は、id(n´)がid(nloop)と等しいすべてのn´をNの中から検索して、検索したそれぞれのn´について、id(n´)の値をid(n)と同一の値に設定する(S970)。
そして、検出部310は、S945に処理を戻してNloopの全てについて処理を終了するまでid(nloop)に値を設定する処理を繰り返す。Nloopの全てについて処理を終了した場合に(S945:YES)、検出部310は、Nstackからノードnをポップして(S980)、図9の処理を終了する。
以上の処理により、同じ循環に含まれるノードには、同じidの値が付与される。例えば、あるノードnおよびノードmが同じ循環に含まれる場合には、id(n)はid(m)と等しくなる。これにより、制約データ中に循環が幾つあって、かつ、それぞれの循環がどのようなノードを含むかを判別することができる。
図4の説明に戻る。次に、選択部320は、循環を解消するために除外するべき制約の組を選択する(S430)。その処理の詳細を図10に示す。
図10は、図4のS430における処理の流れの詳細を示す。複製部325は、制約データの複製である複製データを生成する(S1000)。また、選択部320は、以降の処理に使用する各種のデータを初期化する(S1005)。
具体的には、選択部320は、集合Nを、各設計プロセスを表すノードの集合とし、集合Eを、各制約を表すエッジの集合とする。ノードおよびエッジには、それぞれ、1から順に通し番号が識別情報として付与されているものとする。この場合において、NおよびEのそれぞれは、その後の演算によって参照・変更が可能なように、例えば集合の各要素を識別する識別情報の配列としてRAMなどの記憶装置に記憶されてよい。
選択部320は、また、それぞれのエッジeについて、エッジの集合Eown1(e)およびEown2(e)を定義する。即ち例えば、選択部320は、Eown1について、エッジの集合を格納するための記憶域を、エッジの数だけ記憶装置内に確保する。また、Eown2について、選択部320は、エッジの集合を格納するための記憶域を、エッジの数だけ記憶装置内に確保する。
そして、選択部320は、それぞれのエッジeについて、Eown1(e)をそのエッジe自体のみを含む集合によって初期化する。また、選択部320は、それぞれのエッジeについて、Eown2(e)を空集合によって初期化する。
次に、削除部330は、第1の削除処理を行う(S1010)。その詳細を図11aおよび図11bに示す。
図11aは、図10のS1010における処理の流れの詳細を示す。まず、削除部330は、集合Nに含まれる全てのノードnについて処理が完了したかどうかを判断する(S1100)。全てのノードnについて処理が完了したならば(S1100:YES)、削除部330は、図11aに示す第1の削除処理を終了する。
何れかのノードnが未処理ならば、削除部330は、未処理のノードnを集合Nから1つ選択する(S1110)。そして、削除部330は、選択したノードnに入ってくるエッジが1つ、かつ、選択したノードnから出てゆくエッジが1つであるかを判断する(S1120)。
選択したノードnに入ってくるエッジが1つ、かつ、選択したノードnから出てゆくエッジが1つであれば(S1120:YES)、削除部330は、ノードnに入ってくるエッジをr1とおき、かつ、ノードnから出てゆくエッジをr2とおく(S1130)。
そして、削除部330は、エッジr1の元にあるノードとエッジr2の先にあるノードとが同一かどうかを判断する(S1140)。同一であれば(S1140:YES)、削除部330は、S1100に処理を戻して次のノードについて判断する。
同一でなければ(S1140:NO)、削除部330は、エッジr1が表す制約の強さw(r1)とエッジr2が表す制約の強さw(r2)を比較する(S1150)。w(r1)<w(r2)であれば(S1150:YES)、削除部330は、集合Nからノードnを削除する(S1160)。また、削除部330は、エッジr1を、エッジr1の元のノードからエッジr2の先のノードへ張り直し、エッジr2を集合Eから削除する。
w(r1)<w(r2)でなければ(S1150:NO)、削除部330は、集合Nからノードnを削除する(S1170)。また、削除部330は、エッジr2を、エッジr1の元のノードからエッジr2の先のノードへ張り直し、エッジr1を集合Eから削除する。そして、削除部330は、S1100に処理を戻して次のノードnについて処理を繰り返す。
図11bは、図10のS1010により制約関係が除去されるグラフの一例を示す。この例において、設計プロセスw1は、本発明に係る第3の設計プロセスの一例であり、設計プロセスw2は、本発明に係る第4の設計プロセスの一例であり、設計プロセスw3は、本発明に係る第5の設計プロセスの一例である。
そして、設計プロセスw2は設計プロセスw1から第3の強さの制約、例えば、4単位時間の手戻りの発生を示す制約を受ける。また、設計プロセスw3は設計プロセスw2から第4の強さの制約、例えば、7単位時間の手戻りの発生を示す制約を受ける。さらに、設計プロセスw2は他の何れの設計プロセスからも制約を受けず、かつ、設計プロセスw2は他の何れの設計プロセスをも制約しない。
この場合において、削除部330は、これらの制約を、設計プロセスw3が設計プロセスw1から受ける、第3および第4の強さのうち何れか小さい方の強さの制約に置換する。即ちここでは、第3の制約の強さは4単位時間であり、第4の制約の強さである7単位時間より小さいから、これらの制約は、設計プロセスw3が設計プロセスw5から受ける4単位時間の制約に置換される。
このような置換の妥当性は、直感的には以下の通りである。この例において、設計プロセスw2に関して発生する手戻りの時間は、設計プロセスw1およびw3との順序関係に依存して定まる。例えば設計プロセスw1の後に設計プロセスw3を処理するという前提において、設計プロセスw1、w2およびw3の順で処理すれば手戻りは発生しない。
一方、設計プロセスw3の後に設計プロセスw1を処理するという前提においては、設計プロセスw3、w2およびw1の順で処理することが、手戻りを最小化する観点からは最善である。但し、この場合において4単位時間の手戻りが発生する。
以上より、設計プロセスw1を設計プロセスw3より前に処理したとしても、設計プロセスw1を設計プロセスw3より後に処理したとしても、その他の設計プロセスを最善の順序で処理するならば、設計プロセスw2およびw3の間に定義された7単位時間の手戻りは発生することが無い。
従って、削除部330は、このような手戻りが発生し得ない制約については複製データから除外する。そのような制約は、必ず充足される制約であり、循環を解消するためであっても除外されることが無いからである。
なお、設計プロセスw1およびw3の何れを先に処理するべきかについては、その他の設計プロセスとの間の関係によって定まる。
図10の説明に戻る。次に、削除部330は、第2の削除処理を行う(S1020)。その詳細を図12aおよび図12bに示す。
図12aは、図10のS1020における処理の流れの詳細を示す。削除部330は、集合Nに含まれる全てのノードnについてS1020の処理が完了したかどうかを判断する(S1200)。完了した場合には(S1200:YES)、削除部330は、図12aに示す第2の削除処理を終了する。
完了していない場合には(S1200:NO)、削除部330は、集合Nから未処理のノードを選択する(S1210)。選択したノードをノードnとする。そして、削除部330は、そのノードnには、入ってくるエッジしか存在しないか、または、出てゆくエッジしか存在しないかを判断する(S1220)。
入ってくるエッジしか存在しないか、または、出てゆくエッジしか存在しない場合に(S1220:YES)、削除部330は、集合Nからノードnを除外すると共に、集合Eからノードnに接続しているエッジを除外する(S1230)。そして、削除部330は、S1200に処理を戻して他のノードについて図12aの処理を繰り返す。
図12bは、図10のS1020により制約関係が除去されるグラフの一例を示す。本例において設計プロセスw4には、入ってくるエッジしか存在しない。即ち、設計プロセスw4は、少なくとも何れか1つの設計プロセスの制約を受け、かつ、何れの設計プロセスをも制約しない。このような場合に、削除部330は、この設計プロセスw4を複製データから削除する。
これに加えて、削除部330は、出てゆくエッジしか存在しない設計プロセス、即ち、少なくとも何れか1つの設計プロセスを制約し、かつ、何れの設計プロセスの制約をも受けない設計プロセスを、複製データから削除する。このように、循環の解消に影響しない設計プロセスは、後の処理の所要時間を短くするために複製データから削除される。
図10の説明に戻る。次に、削除部330は、第3の削除処理を行う(S1030)。その詳細を図13aおよび図13bに示す。
図13aは、図10のS1030における処理の流れの詳細を示す。削除部330は、集合Eの中の全てのエッジについて、S1030の処理が終了したかどうかを判断する(S1300)。終了した場合には(S1300:YES)、削除部330は、図13aに示す第3の削除処理を終了する。
何れかのエッジについて処理がまだ終了していなければ(S1300:NO)、削除部330は、集合Eから未処理のエッジを選択する(S1310)。選択したエッジをエッジeとする。そして、削除部330は、エッジeと両端のノードを共有するエッジを集合Eから検索して、検索されたエッジの集合を集合Esとする。
例えば、エッジeがある第1の設計プロセスが第2の設計プロセスから受ける第1の強さの制約を示す場合において、このエッジと同じ向きのエッジ、即ち第1の設計プロセスが第2の設計プロセスから受ける他の制約を示す他のエッジが、集合Esの要素として選択される。また、エッジeと逆向きのエッジ、即ち第2の設計プロセスが第1の設計プロセスから受ける制約を示す他のエッジについても、集合Esの要素として選択される。また、集合Esにはエッジe自体も含められる。
次に、削除部330は、集合Esの要素がエッジeのみであるか判断する(S1330)。集合Esの要素がエッジeのみである場合に(S1330:YES)、削除部330は、S1300に処理を戻して、集合Eに含まれる他のエッジeについて処理を繰り返す。
集合Esの要素がエッジeのみではない場合に(S1330:NO)、削除部330は、集合Esを2つの集合Es1およびEs2に分類する(S1340)。集合Es1は、エッジeと同じ向きのエッジを示し、集合Es2は、エッジeと逆向きのエッジを示す。
また、削除部330は、集合Es1に含まれるエッジの重み、つまり制約の強さの合計を計算する。制約の強さの合計とは、例えば本実施形態においては、手戻りの所要時間の合計であってよい。その合計値をw1とする。
同様に、削除部330は、集合Es2に含まれるエッジの重み、つまり制約の強さの合計を計算する。制約の強さの合計とは、例えば本実施形態においては、手戻りの所要時間の合計であってよい。その合計値をw2とする。
次に、削除部330は、合計値w1を合計値w2と比較する(S1350)。合計値w1が合計値w2より大きい場合に(S1350:YES)、削除部330は、集合Eから集合Esを削除する。そして、集合Esに含まれる各エッジを、合計値w1から合計値w2を減じた差分の大きさを重みとする新たなエッジenewに置換する。
エッジenewには、新たな通し番号(例えば既に使用されている通し番号の最大値よりも大きい値)が付与される。エッジenewは、エッジeと同じ向きのエッジである。即ち、エッジenewはエッジeの元のノードからエッジeの先のノードに至るエッジである。
また、後に複製データと元の制約データとの対応関係を認識し易くするために、この置換の処理による置換前のエッジおよび置換後のエッジを対応付けるための処理を行うことが望ましい。具体的には、削除部330は、集合を表す変数Eown1(enew)に、Eown1(Es1)およびEown2(Es2)の和集合を代入する。また、削除部330は、集合を表す変数Eown2(enew)に、Eown2(Es1)およびEown1(Es2)の和集合を代入する。
ここで、Eown1(Es1)は、集合Es1に含まれる各エッジについての変数Eown1の和集合を示し、Eown2(Es2)は、集合Es2に含まれる各エッジについての変数Eown2の和集合を示す。また、Eown2(Es1)は、集合Es1に含まれる各エッジについての変数Eown2の和集合を示し、Eown1(Es2)は、集合Es2に含まれる各エッジについての変数Eown1の和集合を示す。
一方、合計値w1が合計値w2より小さい場合に(S1350:NO)、削除部330は、集合Eから集合Esを削除する。そして、集合Esに含まれる各エッジを、合計値w2から合計値w1を減じた差分の大きさを重みとする新たなエッジenewに置換する。即ち、エッジenewはエッジeの先のノードからエッジeの元のノードに至るエッジである。
また、削除部330は、集合を表す変数Eown1(enew)に、Eown1(Es2)およびEown2(Es1)の和集合を代入する。また、削除部330は、集合を表す変数Eown2(enew)に、Eown2(Es2)およびEown1(Es1)の和集合を代入する。以上の処理が完了すると、削除部330はS1300に処理を戻して次のエッジについて処理を繰り返す。
図13bは、図10のS1030により制約関係が除去されるグラフの一例を示す。設計プロセスw1は、本発明に係る第1の設計プロセスの一例であり、設計プロセスw2は、本発明に係る第2の設計プロセスの一例である。また、設計プロセスw1は設計プロセスw2から、第1の強さの一例である所要時間が3単位時間の、制約を受ける。また、設計プロセスw2は設計プロセスw1から、第2の強さの一例である所要時間が7単位時間の、制約を受ける。
ここでは、第1の強さよりも第2の強さが強いので、もとのこれらの制約は、設計プロセスw2が設計プロセスw1から受ける、第1および第2の強さの差分の強さの制約によって置換される。この結果、設計プロセスw1は設計プロセスw2から、所要時間が5単位時間である制約を受ける。
図10の説明に戻る。次に、削除部330は、第1から第3の削除処理によって、制約グラフが変化したか、即ち置換または削除されたエッジまたはノードが存在したかどうかを判断する(S1040)。そのようなエッジまたはノードが存在した場合には(S1040:YES)、削除部330は、S1010に処理を戻して、削除または置換することのできる設計プロセスがなくなるまで複製データに対し同様の処理を繰り返す。
一方、削除または置換することのできる設計プロセスがなくなると(S1040:NO)、対応制約選択部340は、複製データのうち、除外すると循環を解消することのできる、制約の強さの合計が最小の制約の組を選択する(S1050)。この制約の組の選択には、例えば、既に述べた全数探索などの手法を利用できる。そのよう手法を利用しても、各種置換・削除処理の後の複製データは、もとの制約データと比較して極めて規模が小さいので、現実的な計算時間で処理が完了する。
これに代えて、対応制約選択部340は、動的計画法などの各種の手法により、制約の強さの合計が最小の制約の組を選択してもよい。さらには、対応制約選択部340は、必ずしも論理的に最小でなくとも、制約の強さの合計を近似的に最小化できれば、他の手法により制約の組を選択してよい。
そして、対応制約選択部340は、選択した制約の組に含まれるそれぞれの制約に対応する上記Eonw1によって表される集合を、もとの制約データにおいて除外するべき制約の集合として選択する。
但し、削除部330による各種削除処理によって、複製データ上では既に循環が解消されている場合がある。例えば、各種削除処理によって、複製データは2つのノードおよびそれらのノードを接続する1つのエッジのみを含む場合がある。この場合においては、対応制約選択部340は、当該各種削除処理によって削除されてきた制約の集合を、もとの制約データにおいて除外するべき制約の集合として選択する。例えば、複製データが1つのエッジのみを含む場合において、対応制約選択部340は、そのエッジに対応する上記Eown2によって表される集合を、元の制約データにおいて除外するべき制約の集合として選択する。
なお、何れの場合においても除外するべき制約は、必ず満たすべき制約ではなく、満たさないと手戻りが発生する制約の中から選択される。
図4の説明に戻る。次に、出力部350は、選択部320により選択された制約の組を、制約データから除外する(S440)。そして、出力部350は、制約の組を除外した当該制約データを、例えば表示部に表示することにより、利用者に対し出力する(S450)。その一例を図14に示す。
図14は、本実施形態に係る出力部350により出力される制約グラフの一例を示す。図2bに示す制約グラフと比較して一部の制約が削除されている。具体的には、設計プロセスw2が設計プロセスw8から受ける制約、および、設計プロセスw5が設計プロセスw7から受ける制約が削除されている。この結果、設計プロセスの間の制約関係の循環が解消するので、利用者は、何れの設計プロセスを先に処理するべきかを容易に認識できる。
また、利用者の利便性向上のため、出力部350は、この制約グラフを以下の2つの例のように表示してもよい。
(1)処理可能なプロセスの表示
開発の各段階において、入力部300は、既に終了した設計プロセスの入力を受け付ける。例えば、設計プロセスw1、w2およびw3が既に終了した旨の入力を受け付けてよい。すると、出力部350は、制約データが示す制約において既に終了した当該設計プロセスの制約を受け、まだ終了していない設計プロセスの制約は受けない設計プロセスを選択する。
この例では、設計プロセスw2は、既に終了した設計プロセスw1の制約を受けるが、他の何れの設計プロセスの制約も受けていない。このため、設計プロセスw2は出力部350により選択される。また、設計プロセスw5は、既に終了した設計プロセスw3の制約を受けるが、他の何れの設計プロセスの制約も受けていない。このため、設計プロセスw5は出力部350により選択される。
一方で、設計プロセスw6は、既に終了した設計プロセスw2の制約を受けるが、まだ終了していない設計プロセスw5の制約も受けている。従って、設計プロセスw6は出力部350により選択されない。同じように、設計プロセスw9は、既に終了した設計プロセスw3の制約を受けるが、まだ終了していない設計プロセスw5の制約も受けている。設計プロセスw9は出力部350により選択されない。
そして、出力部350は、選択したそれぞれの設計プロセスを、他の設計プロセスとは識別可能に表示する。例えば、出力部350は、設計プロセスw2およびw5を示すノードを、他の設計プロセスとは異なる色で着色して表示してよい。また、出力部350は、設計プロセスw2およびw5を示すノードを点滅表示してもよいし、他の設計プロセスを示すノードより大きなサイズで表示してもよい。
これにより、利用者は、次に取り掛かると効率がよい設計プロセスを正確に認識することができる。
(2)違反する制約の表示
(1)の例と同様に、開発の各段階において、入力部300は、既に終了した設計プロセスの入力を受け付ける。例えば、設計プロセスw1、w6およびw3が既に終了した旨の入力を受け付けてよい。すると、出力部350は、制約データが示す制約において既に終了した当該設計プロセスがまだ終了していない設計プロセスの制約を受けるかどうかを判断する。
出力部350は、既に終了した当該設計プロセスがまだ終了していない設計プロセスの制約を受けるかどうかを判断する。例えば、既に終了した設計プロセスw6が、まだ終了していない設計プロセスw2の制約を受けている。このため、出力部350は、このような制約を、他の制約とは識別可能な形態で表示する。例えば、出力部350は、このような制約を、他の制約とは異なる色彩で表示してもよいし、例えば矢印を太線にする等、異なる形態で表示してもよい。
図15は、本実施形態に係るコンピュータ100のハードウェア構成の一例を示す。コンピュータ100は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、上記通信インターフェイス102の一例であり、ネットワークを介して外部の装置と通信する。ハードディスクドライブ1040は、上記記憶装置104の一例であり、コンピュータ100が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、コンピュータ100の起動時にCPU1000が実行するブートプログラムや、コンピュータ100のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
コンピュータ100に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して、記録媒体から読み出されコンピュータ100にインストールされて実行される。プログラムがコンピュータ100等に働きかけて行わせる動作は、図1から図14において説明した支援システム106における動作と同一であるから、説明を省略する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ100に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、本実施形態に係るコンピュータ100の概要を示す。 図2aは、本実施形態に係る記憶装置104のデータ構造の一例を示す。 図2bは、本実施形態に係る制約データを表すグラフの一例を示す。 図3は、本実施形態に係る支援システム106の機能構成を示す。 図4は、本実施形態に係る記憶装置104により制約データが加工されて出力される処理の流れを示す。 図5は、不要または冗長な制約を含む制約グラフの第1例を示す。 図6は、不要または冗長な制約を含む制約グラフの第2例を示す。 図7は、不要または冗長な制約を含む制約グラフの第3例を示す。 図8は、図4のS420における処理の流れの詳細を示す。 図9は、図8のS840における処理の流れの詳細を示す。 図10は、図4のS430における処理の流れの詳細を示す。 図11aは、図10のS1010における処理の流れの詳細を示す。 図11bは、図10のS1010により制約関係が除去されるグラフの一例を示す。 図12aは、図10のS1020における処理の流れの詳細を示す。 図12bは、図10のS1020により制約関係が除去されるグラフの一例を示す。 図13aは、図10のS1030における処理の流れの詳細を示す。 図13bは、図10のS1030により制約関係が除去されるグラフの一例を示す。 図14は、本実施形態に係る出力部350により出力される制約グラフの一例を示す。 図15は、本実施形態に係るコンピュータ100のハードウェア構成の一例を示す。
符号の説明
100 コンピュータ
102 通信インターフェイス
104 記憶装置
106 支援システム
300 入力部
310 検出部
320 選択部
325 複製部
330 削除部
340 対応制約選択部
350 出力部

Claims (13)

  1. 設計プロセスの順序の決定を支援するシステムであって、
    それぞれの設計プロセスに対し他のそれぞれの設計プロセスが与える制約の強さを示すデータである制約データを記憶する記憶装置と、
    前記記憶装置にアクセスして、ある設計プロセスが他の設計プロセスの制約を受ける関係の循環を前記制約データから検出する検出部と、
    前記記憶装置にアクセスして、検出した前記循環の中から、除外すると前記循環を解消できる、制約の強さが最小の制約を選択する選択部と、
    前記制約データから、選択した前記制約を除外して、それぞれの設計プロセスが満たすべき制約を示すデータとして出力する出力部と
    を備え
    前記選択部は、ある設計プロセスが他の設計プロセスから受ける第1の強さの制約、および、他の設計プロセスがある設計プロセスから受ける第2の強さの制約を、前記第1の強さよりも前記第2の強さが強いことを条件に、他の設計プロセスがある設計プロセスから受ける前記第1及び第2の強さの差分の強さの制約に置換するシステム。
  2. 前記制約データは、満たさないと手戻りが発生する制約を示し、
    前記記憶装置は、前記制約の強さとして、発生する手戻りに要する時間を記憶する、請求項1に記載のシステム。
  3. 前記制約データは、必ず満たすべき制約を更に示し、
    前記選択部は、必ず満たすべき制約でなく、満たさないと手戻りが発生する制約の中から、制約の強さが最小の制約を選択する、請求項1または2に記載のシステム。
  4. 検出された前記循環に含まれる全ての制約が、必ず満たすべき制約であることを条件に、前記記憶装置が記憶している前記制約データを変更するための入力を受け付ける入力部、を更に備える請求項1から3のいずれか1項に記載のシステム。
  5. 前記選択部は、
    前記制約データの複製である複製データを生成して前記記憶装置に格納する複製部と、
    前記複製データから、予め定められた手順に従って、前記循環を解消するために除外する制約の強さに影響しない設計プロセスおよび制約を削除する削除部と、
    設計プロセスおよび制約を削除した前記複製データのうち、除外すると前記循環を解消できる、制約の強さの合計が最小の制約の組を選択して、選択した当該制約の組に対応する前記制約データにおける制約の組を選択する、対応制約選択部と
    を有する、請求項1から4のいずれか1項に記載のシステム。
  6. 前記削除部は、少なくとも何れか1つの設計プロセスの制約を受け、かつ、何れの設計プロセスをも制約しない設計プロセス、または、少なくとも何れか1つの設計プロセスを制約し、かつ、何れの設計プロセスの制約を設けない設計プロセスを、前記複製データから検出して、検出した当該設計プロセス及び当該設計プロセスと他の設計プロセスとの間の制約関係を、前記複製データから削除する第1の削除処理、
    第1の設計プロセスが第2の設計プロセスから受ける第1の強さの制約、および、前記第2の設計プロセスが前記第1の設計プロセスから受ける第2の強さの制約を、前記第1の強さよりも前記第2の強さが強いことを条件に、前記第2の設計プロセスが前記第1の設計プロセスから受ける前記第1及び第2の強さの差分の強さの制約に置換する第2の削除処理、および、
    第4の設計プロセスが第3の設計プロセスから受ける第3の強さの制約、および、第5の設計プロセスが前記第4の設計プロセスから受ける第4の強さの制約を、前記第4の設計プロセスが他の何れの設計プロセスからも制約を受けず、かつ、前記第4の設計プロセスが他の何れの設計プロセスをも制約しないことを条件に、前記第5の設計プロセスが前記第3の設計プロセスから受ける、前記第3および第4の強さのうち何れか小さい方の強さの制約に置換する第3の削除処理、
    のそれぞれを、削除または置換することのできる設計プロセスが無くなるまで前記複製データに対し繰り返す、請求項5に記載のシステム。
  7. 前記検出部は、第8の設計プロセスが第6の設計プロセスから受ける必ず満たすべき制約を、第7の設計プロセスが前記第6の設計プロセスから必ず満たすべき制約を受け、第8の設計プロセスが前記第7の設計プロセスから必ず満たすべき制約を受け、前記第7の設計プロセスが他の何れの設計プロセスからも制約を受けず、かつ、前記第7の設計プロセスが他の何れの設計プロセスをも制約しないことを条件に、制約データから削除し、削除した当該制約データから、制約を受ける関係の循環を検出する、請求項1から6のいずれか1項に記載のシステム。
  8. 前記検出部は、ある設計プロセスと他の設計プロセスの間に、必ず満たすべき制約及び満たさないと手戻りが発生する制約のそれぞれが存在することを条件に、当該手戻りが発生する制約を削除して、削除した当該制約データから、制約を受ける関係の循環を検出する、請求項1から6のいずれか1項に記載のシステム。
  9. 既に終了した設計プロセスの入力を受け付ける入力部をさらに備え、
    前記出力部は、前記選択部が選択した制約を除外した当該制約データを表示すると共に、当該制約データが示す制約において既に終了した当該設計プロセスの制約を受け、まだ終了していない設計プロセスの制約は受けない設計プロセスを識別可能に表示する、請求項1から8のいずれか1項に記載のシステム。
  10. 既に終了した設計プロセスの入力を受け付ける入力部をさらに備え、
    前記出力部は、前記選択部が選択した制約を除外した当該制約データを表示すると共に、当該制約データが示す制約において既に終了した当該設計プロセスがまだ終了していない設計プロセスの制約を受けることを条件に、当該制約を識別可能に表示する、請求項1から8のいずれか1項に記載のシステム。
  11. 前記記憶装置は、それぞれの設計プロセスをノードとし、制約する設計プロセスから制約を受ける設計プロセスに向けた、制約の強さを重みとする有向エッジとしてそれぞれの制約を表したグラフを、前記制約データとして記憶しており、
    前記検出部は、前記グラフから循環を検出し、
    前記選択部は、検出した前記循環の中から、除外すると前記循環を解消できる、重みが最小の有向エッジを選択し、
    前記出力部は、前記グラフから、選択した前記有向エッジを除外して、それぞれの設計プロセスが満たすべき制約を示すグラフとして出力する、請求項1に記載のシステム。
  12. 設計プロセスの順序の決定を支援する請求項1から11のいずれか1項に記載のシステムとして、コンピュータを機能させるプログラム。
  13. 設計プロセスの順序の決定をコンピュータにより支援する方法であって、
    前記コンピュータは、それぞれの設計プロセスに対し他のそれぞれの設計プロセスが与える制約の強さを示すデータである制約データを記憶する記憶装置を備え、
    前記記憶装置にアクセスして、ある設計プロセスが他の設計プロセスの制約を受ける関係の循環を前記制約データから検出する検出ステップと、
    前記記憶装置にアクセスして、検出した前記循環の中から、除外すると前記循環を解消できる、制約の強さが最小の制約を選択する選択ステップと、
    前記制約データから、選択した前記制約を除外して、それぞれの設計プロセスが満たすべき制約を示すデータとして出力する出力ステップと
    を備え
    前記選択ステップは、ある設計プロセスが他の設計プロセスから受ける第1の強さの制約、および、他の設計プロセスがある設計プロセスから受ける第2の強さの制約を、前記第1の強さよりも前記第2の強さが強いことを条件に、他の設計プロセスがある設計プロセスから受ける前記第1及び第2の強さの差分の強さの制約に置換する方法。
JP2007285482A 2007-11-01 2007-11-01 設計プロセスの順序の決定を支援する技術 Expired - Fee Related JP5142132B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007285482A JP5142132B2 (ja) 2007-11-01 2007-11-01 設計プロセスの順序の決定を支援する技術
US12/262,275 US20090119632A1 (en) 2007-11-01 2008-10-31 Method for supporting determination of design process order

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007285482A JP5142132B2 (ja) 2007-11-01 2007-11-01 設計プロセスの順序の決定を支援する技術

Publications (2)

Publication Number Publication Date
JP2009116411A JP2009116411A (ja) 2009-05-28
JP5142132B2 true JP5142132B2 (ja) 2013-02-13

Family

ID=40589430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007285482A Expired - Fee Related JP5142132B2 (ja) 2007-11-01 2007-11-01 設計プロセスの順序の決定を支援する技術

Country Status (2)

Country Link
US (1) US20090119632A1 (ja)
JP (1) JP5142132B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877014B (zh) * 2009-04-30 2012-07-25 国际商业机器公司 一种检测时序约束冲突的方法和装置
US9985843B2 (en) 2015-02-27 2018-05-29 International Business Machines Corporation Efficient parallel processing of a network with conflict constraints between nodes

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689314A (ja) * 1992-04-16 1994-03-29 Hitachi Ltd 設計支援方式および装置
JP3557717B2 (ja) * 1995-05-18 2004-08-25 株式会社日立製作所 設計支援方法およびその装置
US5710902A (en) * 1995-09-06 1998-01-20 Intel Corporation Instruction dependency chain indentifier
US5850533A (en) * 1997-06-25 1998-12-15 Sun Microsystems, Inc. Method for enforcing true dependencies in an out-of-order processor
US6334182B2 (en) * 1998-08-18 2001-12-25 Intel Corp Scheduling operations using a dependency matrix
US7346479B2 (en) * 1998-09-04 2008-03-18 Intel Corporation Selecting design points on parameter functions having first sum of constraint set and second sum of optimizing set to improve second sum within design constraints
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
US6415259B1 (en) * 1999-07-15 2002-07-02 American Management Systems, Inc. Automatic work progress tracking and optimizing engine for a telecommunications customer care and billing system
US6477515B1 (en) * 1999-08-11 2002-11-05 The United States Of America As Represented By The Secretary Of The Navy Efficient computation of least cost paths with hard constraints
GB0022189D0 (en) * 2000-09-11 2000-10-25 Univ Loughborough Method and apparatus for analytical problem solving
JP2002359634A (ja) * 2001-05-31 2002-12-13 Nec Corp 通信経路設計方法、通信経路設計装置及びプログラム
JP2003296530A (ja) * 2002-04-03 2003-10-17 Nec Corp 設計ドキュメント管理サーバ、進捗管理方法、およびそのプログラム
US6826733B2 (en) * 2002-05-30 2004-11-30 International Business Machines Corporation Parameter variation tolerant method for circuit design optimization
AU2002951790A0 (en) * 2002-10-02 2002-10-17 Amcor Limited Unified design space
US8265979B2 (en) * 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
US7257800B1 (en) * 2003-07-11 2007-08-14 Altera Corporation Method and apparatus for performing logic replication in field programmable gate arrays
US7191107B2 (en) * 2003-07-25 2007-03-13 Hewlett-Packard Development Company, L.P. Method of determining value change for placement variable
US7280986B2 (en) * 2004-02-09 2007-10-09 The Board Of Trustees Of The University Of Illinois Methods and program products for optimizing problem clustering
US20050265359A1 (en) * 2004-05-13 2005-12-01 Drew Julie W Optimizing switch port assignments
JP2006018590A (ja) * 2004-07-01 2006-01-19 Canon Inc 業務フロー解析表示装置、ノード配置表示装置、業務フロー解析表示方法、ノード配置方法、及びプログラム
US7290232B1 (en) * 2004-12-01 2007-10-30 Altera Corporation Optimizing long-path and short-path timing and accounting for manufacturing and operating condition variability
US20070021995A1 (en) * 2005-07-20 2007-01-25 Candemir Toklu Discovering patterns of executions in business processes
JP2007140653A (ja) * 2005-11-15 2007-06-07 Projectpro Inc リバース・スケジュール・システム
JP2007148582A (ja) * 2005-11-24 2007-06-14 Matsushita Electric Ind Co Ltd タスク実行制御装置、タスク実行制御方法、及びプログラム
US7428713B1 (en) * 2006-07-10 2008-09-23 Livermore Software Technology Corp. Accelerated design optimization
US7962886B1 (en) * 2006-12-08 2011-06-14 Cadence Design Systems, Inc. Method and system for generating design constraints
JP4386456B2 (ja) * 2007-05-30 2009-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 工程の処理順序を決定するシステム、プログラムおよび方法

Also Published As

Publication number Publication date
JP2009116411A (ja) 2009-05-28
US20090119632A1 (en) 2009-05-07

Similar Documents

Publication Publication Date Title
JP4097263B2 (ja) ウェブアプリケーションモデル生成装置、ウェブアプリケーション生成支援方法及びプログラム
JP2008059279A (ja) 文字列出力処理を最適化する技術
JP3888621B2 (ja) 文書処理システム、文書処理方法及びプログラム
CN111930810B (zh) 数据规则挖掘方法及装置
JP7218797B2 (ja) 情報処理装置およびapi使用履歴表示プログラム
JP5142132B2 (ja) 設計プロセスの順序の決定を支援する技術
US20070198928A1 (en) Design method and apparatus for user interface
US7904856B2 (en) Arrangement handling commands as control system behaviors and data system behaviors
JP2018112919A (ja) テスト入力情報検索装置及び方法
CN113407180B (zh) 一种配置页面生成方法、系统、设备以及介质
CN112698826B (zh) 低代码页面创建系统、方法及设备
CN115878654A (zh) 一种数据查询的方法、装置、设备及存储介质
JP2023553220A (ja) マルチインスタンスプロセスのためのプロセスマイニング
JP5219543B2 (ja) 情報処理装置及び情報処理方法及びプログラム
US20070153342A1 (en) Display and editing of documents described by schemas
US8249083B2 (en) Method, apparatus and computer program for processing a message using a message processing node
JP6916327B1 (ja) 派生テスト装置、派生テスト方法、および、派生テストプログラム
KR101694778B1 (ko) 소스 코드의 오류 검출에 있어서 오경보 저감 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
WO2024047997A1 (ja) 文書分析装置、及び文書分析用プログラム
CN113760198B (zh) 适用于中台处规则引擎的融合处理方法、装置及存储介质
JP5049804B2 (ja) Vliwプロセッサ自動生成方法及び自動生成プログラム
WO2022107346A1 (ja) データ処理装置、プログラム、システム、及びデータ処理方法
JP2009205372A (ja) 情報処理装置及び情報処理方法及びプログラム
WO2021157073A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2008191796A (ja) 解析装置及び解析方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121023

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees