(57)【要約】  オブジェクト指向エンタープライズエンジニアリングシステムにおける、梁や柱を表現するオブジェクトのような多数のオブジェクトを、モデルデータベースにおいて幾何学的変換することができ、この変換は、基準に従いオブジェクトを順序づけられた複数のパーティションに分割し、アトミックな操作として各パーティションごとにオブジェクトを変換することによって行われる。変換すべきオブジェクトは、順序づけられたパーティションとなるよう編成され、それらのパーティションは、既定のオブジェクトよりも前に又はそれと同じ操作で、既定のオブジェクトのすべての先行体が変換されるように、シーケンシャルな順序で変換される。小さい変換操作がすべて完了する前に、大きい変換操作が異常状態で終了しても、モデルデータベースの一貫した状態が維持され、変換操作を中断ポイントから再開できる。しかも、変換可能なオブジェクトの個数は、システムで利用可能な記憶容量に制約されない。
2015510638.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、コンピュータにより実施される方法であって、前記複数のオブジェクトのうち少なくとも１つのオブジェクトは、前記複数のオブジェクトのうち他のオブジェクトの先行体である方法において、
プロセッサにより実行される以下のオペレーションを含み、すなわち、
幾何学的変換すべき複数のオブジェクトを選択したユーザからの入力と、選択された該オブジェクトにおいて実施すべき幾何学的変換のタイプの指示とを受信するオペレーションと、
前記選択されたオブジェクトの少なくとも１つのパラメータの値は、先行オブジェクトの少なくとも１つのパラメータに関数従属しており、該選択されたオブジェクト各々について、前記複数のオブジェクトの中から、該選択されたオブジェクトの先行オブジェクトを自動的に特定するオペレーションと、
前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割して、いずれの既定のオブジェクトについても、該既定のオブジェクトの先行オブジェクト各々が、該既定のオブジェクトと同一のパーティション及び先行のパーティションのうち、少なくとも一方のパーティション内にあるようにするオペレーションと、
を含むことを特徴とする、
コンピュータにより実施される方法。
【請求項２】
幾何学的変換のタイプの指示に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換する、
請求項１記載の方法。
【請求項３】
既定のパーティション内における前記オブジェクトの幾何学的変換中、
前記パーティション内の各オブジェクトの後続オブジェクトを、一時的にリードオンリーにし、かつ、
前記パーティション内の各オブジェクトの先行オブジェクトを、一時的にリードオンリーにする、
請求項２記載の方法。
【請求項４】
一時的にリードオンリーにされた各オブジェクトについて、対応するトゥドゥアイテムを生成し、
ついで、一時的にリードオンリーにされたオブジェクトのいずれかを変換したならば、前記対応するトゥドゥアイテムを削除する、
請求項３記載の方法。
【請求項５】
既定のパーティション内における前記オブジェクトの幾何学的変換中、
前記パーティション内におけるオブジェクトの下位のオブジェクトを識別し、
識別された該下位のオブジェクトを前記パーティションに追加し、
追加された該下位のオブジェクトを、幾何学的変換のタイプの指示に従い、幾何学的変換する、
請求項２記載の方法。
【請求項６】
前記パーティションのうち少なくとも２つのパーティションを、パーティションの順序に従い処理し、該処理において、
前記パーティションに関する情報を保存し、
次のパーティションを処理する前に、前記パーティション内のオブジェクトを、幾何学的変換のタイプの指示に従い幾何学的変換し、
前記保存した情報は、前記パーティション内のオブジェクトの幾何学的変換のリスタートに十分な情報を含んでいる、
請求項１記載の方法。
【請求項７】
前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割するオペレーションにおいて、
前記選択されたオブジェクト各々を、該選択されたオブジェクトのすべての先行オブジェクトに関連づける先行体グラフを生成する、
請求項１記載の方法。
【請求項８】
前記選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別し、
識別された外部のオブジェクトと前記選択されたオブジェクトとの関係を切り離す、
請求項１記載の方法。
【請求項９】
オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを、幾何学的変換するためのシステムであって、前記複数のオブジェクトのうち少なくとも１つのオブジェクトは、前記複数のオブジェクトのうち他のオブジェクトの先行体であるシステムにおいて、
ユーザインタフェースと、
該ユーザインタフェースに接続された識別モジュールと、
該識別モジュールに接続されたパーティショニングモジュールと
が設けられており、
前記ユーザインタフェースは、幾何学的変換すべき複数のオブジェクトを選択したユーザからの第１の入力を受信し、選択された該オブジェクトにおいて実行すべき幾何学的変換のタイプを指示したユーザからの第２の入力を受信するように構成されており、
前記識別モジュールは、選択されたオブジェクトごとに、該選択されたオブジェクトに対応する先行オブジェクトを自動的に特定するように構成されており、前記選択されたオブジェクトの少なくとも１つのパラメータの値は、前記先行オブジェクトの少なくとも１つのパラメータに関数従属し、
前記パーティショニングモジュールは、前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割するように構成されており、いずれの既定のオブジェクトについても、該既定のオブジェクトの先行オブジェクト各々が、該既定のオブジェクトと同一のパーティション及び先行のパーティションのうち、少なくとも一方のパーティション内にあるようにする、
ことを特徴とする、
複数のオブジェクトを幾何学的変換するためのシステム。
【請求項１０】
前記パーティショニングモジュールに変換モジュールが接続されており、
該変換モジュールは、指示されたタイプの幾何学的変換に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換する、
請求項９記載の方法。
【請求項１１】
前記変換モジュールに凍結モジュールが接続されており、該凍結モジュールは、パーティション単位をベースに、
前記パーティション内における各オブジェクトの後続オブジェクトを一時的にリードオンリーにし、
前記パーティション内における各オブジェクトの先行オブジェクトを一時的にリードオンリーにする
ように構成されている、
請求項１０記載のシステム。
【請求項１２】
前記凍結モジュールは、一時的にリードオンリーにされた各オブジェクトごとに、対応するトゥドゥアイテムを生成するように構成されており、
さらに前記変換モジュールに接続されたクリーンアップモジュールを有しており、
該クリーンアップモジュールは、一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたならば、前記対応するトゥドゥアイテムを削除するように構成されている、
請求項１１記載のシステム。
【請求項１３】
前記識別モジュールに接続されたプロパゲーションモジュールが設けられており、該プロパゲーションモジュールは、各パーティションごとに、
前記パーティション内のオブジェクトの下位のオブジェクトを識別し、
識別された該下位のオブジェクトを前記パーティションに追加する
ように構成されており、
前記変換モジュールは、追加された該下位のオブジェクトを、指示されたタイプの幾何学的変換に従い幾何学的変換するように構成されている、
請求項１０記載の方法。
【請求項１４】
前記変換モジュールに接続されたプロセスコントロールモジュールが設けられており、該プロセスコントロールモジュールは、少なくとも２つのパーティションをパーティション順序で処理するように構成されており、
該プロセスコントロールモジュールは、各パーティションごとに、
前記パーティションに関する情報を保存し、保存された該情報には、前記パーティション内のオブジェクトの幾何学的変換をリスタートするのに十分な情報が含まれ、
次のパーティションを処理する前に、前記変換モジュールに対し、指示されたタイプの幾何学的変換に従い、前記パーティション内のオブジェクトの幾何学的変換を行わせる
ように構成されている、
請求項９記載のシステム。
【請求項１５】
前記パーティショニングモジュールは、選択された各オブジェクトを選択されたオブジェクトのすべての先行オブジェクトに関連づける先行体グラフを生成するように構成されている、
請求項９記載のシステム。
【請求項１６】
プルーニングモジュールが設けられており、該プルーニングモジュールは、
前記選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別し、
識別された外部のオブジェクトと前記選択されたオブジェクトとの関係を切り離す
ように構成されている、
請求項９記載のシステム。
【請求項１７】
オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数の先行オブジェクトと後続オブジェクトをコピーするために、コンピュータシステムにおいて使用するためのコンピュータプログラム製品であって、各後続オブジェクトは、先行オブジェクトと先行関係を有する、
コンピュータプログラム製品において、
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な媒体を含み、前記命令がプロセッサにより実行されると、前記命令により該プロセッサは、
幾何学的変換すべき複数のオブジェクトを選択したユーザからの入力と、選択されたオブジェクトにおいて実施すべき幾何学的変換のタイプの指示とを受信し、
前記選択されたオブジェクトの少なくとも１つのパラメータの値は、前記先行オブジェクトの少なくとも１つのパラメータに関数従属し、該選択されたオブジェクト各々について、前記複数のオブジェクトの中から、該選択されたオブジェクトの先行オブジェクトを自動的に特定し、
前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割し、いずれの既定のオブジェクトについても、該既定のオブジェクトの先行オブジェクト各々が、該既定のオブジェクトと同一のパーティション及び先行パーティションのうち、少なくとも一方のパーティション内にあるようにする、
ことを特徴とする、
コンピュータプログラム製品。
【請求項１８】
前記命令により前記プロセッサは、
幾何学的変換のタイプの指示に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換する、
請求項１７記載のコンピュータプログラム製品。
【請求項１９】
前記命令により前記プロセッサは、
前記パーティション内の各オブジェクトの後続オブジェクトを、一時的にリードオンリーにし、
前記パーティション内の各オブジェクトの先行オブジェクトを、一時的にリードオンリーにする、
請求項１８記載のコンピュータプログラム製品。
【請求項２０】
前記命令により前記プロセッサは、
一時的にリードオンリーにされた各オブジェクトごとに、対応するトゥドゥアイテムを生成し、
一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたならば、前記対応するトゥドゥアイテムを削除する、
請求項１９記載のコンピュータプログラム製品。
【請求項２１】
前記命令により前記プロセッサは、既定のパーティション内における前記オブジェクトの幾何学的変換中、
前記パーティション内におけるオブジェクトの下位のオブジェクトを識別し、
識別された該下位のオブジェクトを前記パーティションに追加し、
追加された該下位のオブジェクトを、幾何学的変換のタイプの指示に従い幾何学的変換する、
請求項１８記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１２年２月９日に出願された「マルチトランザクション技術を使用して、オブジェクト指向環境においてオブジェクトの幾何学的変換を実施するための方法及び装置」と題する米国仮特許出願第６１／５９６，７９７号の利益を主張し、この内容は、あらゆる目的で参照により本明細書に組み込まれる。
【０００２】
技術分野
本発明は、コンピュータ支援設計（ＣＡＤ）及びコンピュータ支援製造（ＣＡＭ）のソフトウェアシステムに関連しており、より詳細には、このようなシステムによって使用されるデータベース内において多数のオブジェクト及び関係を幾何学的変換するための方法及び装置に関連している。
【０００３】
背景技術
エンタープライズエンジニアリングシステムは、空間情報管理（ＳＩＭ）システムとも呼ばれることがあり、２次元（２Ｄ）及び３次元（３Ｄ）のモデル化及び可視化を容易にするためのコンピュータ支援設計（ＣＡＤ）システムである。これらのシステムは、石油精製所や発電所のような産業プラントにおいて、並びに、高層ビル、船舶、鉱業のような他の大型かつ複雑な構造物において、並びに、他のマテリアルハンドリング施設において、設計、建設、オペレーション、及び改修を行う際に使用されている。エンタープライズエンジニアリングシステムによれば、設計者は、グラフィカルユーザインタフェース（ＧＵＩ）を用いて、構造物、配管システム、電気システム、暖房換気空調（ＨＶＡＣ）システム及び他の複雑なシステムをレイアウトすることが可能となり、また、様々な建設段階又はオペレーション段階におけるプロジェクトの全体又は選択された一部分を視覚化することが可能となる。
【０００４】
最近の殆どのエンタープライズエンジニアリングシステムは、オブジェクト指向パラダイムを利用している。オブジェクト指向パラダイムでは、「オブジェクト」と呼ばれるソフトウェア構成が、例えば梁、壁、床、配管、バルブ、導管、スイッチ、ファン、ダクト等のような現実世界のアイテムを表している。オブジェクトの中には、例えばグリッド座標系等のように、単なる設計者用の利便性のためだけに使用され、物理的なアイテムを表していないものもある。
【０００５】
オブジェクトは、典型的には、表されたアイテムのタイプを識別するための情報と、各オブジェクトによって表される特定のアイテムに関する情報（各アイテムに応じた、長さ、幅、色、容量等のような情報）とを格納するデータ構造（順序づけられたデータ要素のグループ）として、ソフトウェア内でインプリメントされている。オブジェクトは、典型的には「メソッド」も含み、この「メソッド」は、オブジェクトのデータ要素を操作するルーチン、及び／又は、オブジェクトに関する情報を呼び出し元に返送するルーチンである。オブジェクトのうち、ユーザの問題領域内のアイテムを表し、ユーザが視認することができ、ユーザがＳＩＭシステムユーザインタフェース（ＵＩ）を介して操作できるオブジェクトは、下位のオブジェクト（以下で説明する）と区別するため、又は、ユーザには直接視認できないがモデルのためには必要なオブジェクトと区別するために、「設計オブジェクト」と呼ばれることがある。
【０００６】
多くの設計オブジェクトが、他の（「下位の」）のオブジェクトで構成されている。例えば梁は、ただ１つの構材システムと、多数の下位のオブジェクトとから構成することができ、この下位のオブジェクトには、フレーム接続（梁の各端部がどのようにして他のメンバに接続されているかを表す）、パーツ（最終的な物理的オブジェクトを表す）、ポート（梁に沿った接続点を表す）及び他のオブジェクトが含まれている。梁の開口部は、各々追加的なオブジェクトによって表される。梁の端部が切り取られる場合には、この切り取る動作も、オブジェクトによって表される。ユーザがモデルにオブジェクトを追加するケースの中には、ＳＩＭシステムが自動的に、適切な下位のオブジェクトをモデルに追加するケースもある。設計オブジェクトと、設計オブジェクトに関連づけられた下位のオブジェクトは、総称的に「設計オブジェクトグループ」と呼ばれている。
【０００７】
殆どのオブジェクトは、関係を用いて他のオブジェクトにリンクされる。異なるコンテクストでは、異なるタイプの関係が使用される。例えば、あるタイプの関係は、オブジェクトを「システム」の論理レイヤに配置するために使用される。設備の一部分においてノズルにパイプが接続される場合には、また異なるタイプの関係が使用される。梁を柱に接続するためには、また第３のタイプの関係が使用される。
【０００８】
オブジェクト間における関係というのは、順序づけられた概念のことである。関係は、対応するオブジェクトがモデルに追加されていった際の論理順序を示すことができる。この順序は、現実世界のアイテムが建設される順序とは異なっていてもよい。例えば、発電所の建屋をモデル化する場合には、設計者は、典型的にはまずグリッド座標系を構築する。設計者はその後、柱を追加して、グリッド座標系内の所期の座標にこの柱を配置する。設計者はその後、柱の下に土台を追加する。しかしながら、発電所が実際に建設される際には、土台が建設された後でようやく、この土台の上に柱を建設することが可能となる。
【０００９】
オブジェクト間におけるさらなる別のタイプの関係は、「関数従属性」である。関数従属性は、関連する複数のオブジェクト（「独立」オブジェクトと、１つ以上の「従属」オブジェクト）の間に存在しうる。独立オブジェクトが変更されると、全ての従属オブジェクトも自動的に変更される。既述した柱と土台の例では、柱が独立オブジェクトであり、土台は柱に従属している。柱が移動された場合、又は、柱が支持しなければならない重量が変化した場合には、エンタープライズエンジニアリングシステムは必要に応じて、土台を自動的に移動させるか、又は、柱の寸法又は柱の重量支持能力を自動的に変更する。さらに、柱に従属している他の全てのオブジェクトの特徴が、エンタープライズエンジニアリングシステムによって自動的に再計算される。オブジェクトの更新、すなわちオブジェクトの１つ以上のパラメータの再計算（recalculating）は、オブジェクトの「再計算（recomputing）」と呼ばれることがある。
【００１０】
既述したようにモデル化の段階においては、柱オブジェクトは、典型的には、対応する土台オブジェクトがモデルに追加される前にモデルに追加される。しかしながら、物理的な構造物（例えば発電所）が建設される際には、柱を土台の上に建設する前に、土台を建設しておく必要がある。このように、オブジェクトがモデルに追加される順序は、対応する現実世界のアイテムが建設又は導入される順序と必ずしも同じではない。関数従属性も同様に、必ずしも、現実世界のアイテムが建設又は導入される順序を示すとは限らない。
【００１１】
多くの最新のエンタープライズエンジニアリングシステムは、オブジェクト及び関係を表す永続的なデータ構造を格納するために、リレーショナルデータベース（ＲＤＢ）又は他のデータベース管理システム（ＤＢＭ）を利用している。例えば、ＲＤＢのレコード又はテーブル行を、オブジェクト及び関係のデータ構造を格納するために使用することができる。
【００１２】
エンタープライズエンジニアリングシステムの特に有利な特徴の１つは、オブジェクト又はユーザが選択したオブジェクトグループを幾何学的変換できることである。幾何学的変換の例には、オブジェクトの移動及びオブジェクトの回転が含まれる。
【００１３】
モデルデータベース内におけるオブジェクト及び関係の有効性と一貫性とを維持するために、当該データベースにおける全てのオペレーションは、データベーストランザクション内にて実行される。トランザクションは、２つの主な目的を有する。すなわち第１には、システム障害からの正確な復旧を可能にする信頼度の高い作業単位を提供することであり、第２には、１つのデータベースに同時にアクセスする複数のプログラム間における分離を提供することである。トランザクションは、「全か無か」の命題を提供する。データベースに対して全ての修正が正常に完了されるか、又は、何も完了されないかのいずれかである。
【００１４】
このようにエンタープライズエンジニアリングシステムは、モデルの有効性と一貫性とを保証するために、典型的にはただ１つのトランザクション内において幾何学的変換を実施する。トランザクションは、３つのステップを含む。すなわち第１のステップでは、トランザクションがスタートされ、変換すべきオブジェクト及び関係を表す全てのデータ構造がデータベースからメモリへと移される。第２のステップでは、オブジェクトがメモリ内で変換され、全ての従属オブジェクトが再計算される。そして第３のステップでは、オブジェクト及び関係を表す（この段階では既に修正済みの）データ構造がデータベースに書き戻され、トランザクションがコミットされる。
【００１５】
多くの産業プラントのモデルは、非常に多数のオブジェクト及び関係を含んでおり、これにより、エンタープライズエンジニアリングシステムに対して問題が引き起こされることがある。システムの（仮想）メモリは、幾何学的変換すべきオブジェクトと、それらのオブジェクトの関係とを表している全てのデータ構造を、同時に格納するのに充分な容量でなければならない。例えば、石油化学プラント内にて蒸留器を移動させるといった幾何学的変換のためにモデルの大きい部分を選択すると、システムのメモリ容量が超過する恐れがある。
【００１６】
発明の概要
本発明の実施形態は、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、コンピュータにより実施される方法を提供する。前記複数のオブジェクトのうち少なくとも１つのオブジェクトは、前記複数のオブジェクトのうち他のオブジェクトの先行体である。本方法は、幾何学的変換すべき複数のオブジェクトを選択したユーザからの入力と、選択されたオブジェクトにおいて実施すべき幾何学的変換のタイプの指示とを受信するオペレーションとを含む、複数のオペレーションを実行するプロセッサを含む。前記選択されたオブジェクト各々について、前記複数のオブジェクトの中から、当該選択されたオブジェクトの先行オブジェクトが自動的に特定される。前記選択されたオブジェクトの少なくとも１つのパラメータの値は、前記先行オブジェクトの少なくとも１つのパラメータに関数従属する。選択されたオブジェクトは、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割される。いずれの既定のオブジェクトについても、当該既定のオブジェクトの先行オブジェクト各々は、当該既定のオブジェクトと同一のパーティション内、又は、先行のパーティション内にある。
【００１７】
前記オブジェクトは、幾何学的変換のタイプの指示に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で幾何学的変換される。既定のパーティション内における前記オブジェクトの幾何学的変換中、前記パーティション内の各オブジェクトの後続オブジェクトは、一時的にリードオンリーにされる。前記パーティション内の各オブジェクトの先行オブジェクトは、一時的にリードオンリーにされる。一時的にリードオンリーにされた各オブジェクトについて、対応するトゥドゥアイテムを生成することができる。ついで、一時的にリードオンリーにされたオブジェクトのいずれかを変換したならば、前記対応するトゥドゥアイテムを削除することができる。
【００１８】
既定のパーティション内における前記オブジェクトの幾何学的変換中、前記パーティション内におけるオブジェクトの下位のオブジェクトを識別することができる。識別された当該下位のオブジェクトを前記パーティションに追加することができ、追加された当該下位のオブジェクトを、幾何学的変換のタイプの指示に従い、幾何学的変換することができる。
【００１９】
前記パーティションのうち少なくとも２つのパーティションを、パーティションの順序に従い処理することができる。前記処理は、パーティションに関する情報を保存することと、次のパーティションを処理する前に、前記パーティション内のオブジェクトを、幾何学的変換のタイプの指示に従い幾何学的変換することとを含む。前記保存した情報は、前記パーティション内のオブジェクトの幾何学的変換のリスタートに十分な情報を含むことができる。
【００２０】
選択されたオブジェクト各々を、複数のオブジェクトから成る順序づけられたの複数のパーティションに自動的に分割することは、前記選択されたオブジェクトを、当該選択されたオブジェクトの先行オブジェクトに関連づける先行体グラフを生成することを含むことができる。
【００２１】
本方法は、前記選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別することと、識別された外部のオブジェクトと前記選択されたオブジェクトとの関係を切り離すこととを含むことができる。
【００２２】
本発明の別の実施形態は、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを、幾何学的変換するためのシステムを提供する。前記複数のオブジェクトのうち少なくとも１つのオブジェクトは、前記複数のオブジェクトのうち他のオブジェクトの先行体である。本システムは、ユーザインタフェースを含み、前記ユーザインタフェースは、幾何学的変換すべき複数のオブジェクトを選択したユーザからの第１の入力を受信し、選択されたオブジェクトにおいて実行すべき幾何学的変換のタイプを指示したユーザからの第２の入力を受信するように構成されている。前記ユーザインタフェースには、識別モジュールが接続されており、前記識別モジュールは、選択されたオブジェクトごとに、当該選択されたオブジェクトに対応する先行オブジェクトを自動的に特定するように構成されている。前記選択されたオブジェクトの少なくとも１つのパラメータの値は、先行オブジェクトの少なくとも１つのパラメータに関数従属する。前記識別モジュールには、パーティショニングモジュールが接続されており、前記パーティショニングモジュールは、前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割するように構成されている。いずれの既定のオブジェクトについても、当該既定のオブジェクトの先行オブジェクト各々は、当該既定のオブジェクトと同一のパーティション内、又は、先行のパーティション内にある。
【００２３】
前記パーティショニングモジュールには、変換モジュールを接続することができ、前記変換モジュールは、指示されたタイプの幾何学的変換に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換するように構成することができる。
【００２４】
前記変換モジュールには、凍結モジュールを接続することができ、前記凍結モジュールは、パーティション単位をベースに、前記パーティション内における各オブジェクトの後続オブジェクトを一時的にリードオンリーにし、前記パーティション内における各オブジェクトの先行オブジェクトを一時的にリードオンリーにするように構成することができる。前記凍結モジュールは、一時的にリードオンリーにされた各オブジェクトごとに、対応するトゥドゥアイテムを生成するように構成することができる。
【００２５】
前記変換モジュールには、クリーンアップモジュールを接続することができ、前記クリーンアップモジュールは、一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたならば、前記対応するトゥドゥアイテムを削除するように構成することができる。
【００２６】
前記識別モジュールには、プロパゲーションモジュールを接続することができ、前記プロパゲーションモジュールは、各パーティションごとに、前記パーティション内のオブジェクトの下位のオブジェクトを識別し、識別された当該下位のオブジェクトを前記パーティションに追加するように構成することができる。前記変換モジュールは、追加された当該下位のオブジェクトを、指示されたタイプの幾何学的変換に従い幾何学的変換するように構成されている。
【００２７】
前記変換モジュールには、プロセスコントロールモジュールを接続することができ、前記プロセスコントロールモジュールは、少なくとも２つのパーティションをパーティションの順序で処理するように構成することができる。前記プロセスコントロールモジュールは、各パーティションごとに、前記パーティションに関する情報を保存するように構成することができる。保存された前記情報には、前記パーティション内のオブジェクトの幾何学的変換をリスタートするのに十分な情報が含まれている。前記プロセスコントロールモジュールは、次のパーティションを処理する前に、前記変換モジュールに対し、指示されたタイプの幾何学的変換に従い、前記パーティション内のオブジェクトの幾何学的変換を行わせるように構成することができる。
【００２８】
前記パーティショニングモジュールは、選択された各オブジェクトを当該選択されたオブジェクトの先行オブジェクトすべてに関連づける先行体グラフを生成するように構成することができる。
【００２９】
プルーニングモジュールは、前記選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別し、識別された外部のオブジェクトと前記選択されたオブジェクトとの関係を切り離すように構成することができる。
【００３０】
本発明のさらなる別の実施形態は、コンピュータシステムにおいて使用するためのコンピュータプログラム製品を提供する。前記コンピュータプログラム製品は、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数の先行オブジェクトと後続オブジェクトをコピーするために使用することができる。各後続オブジェクトは、先行オブジェクトと先行関係を有する。コンピュータプログラム製品は、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な媒体を含む。前記命令がプロセッサにより実行されると、前記命令により前記プロセッサは、ユーザからの入力を受信する。前記入力は、幾何学的変換すべき複数のオブジェクトを選択するものであり、前記入力によって、選択されたオブジェクトにおいて実施すべき幾何学的変換のタイプの指示が供給される。前記命令により前記プロセッサは、前記選択されたオブジェクト各々について、前記複数のオブジェクトの中から、当該選択されたオブジェクトの先行オブジェクトを自動的に特定する。前記選択されたオブジェクトの少なくとも１つのパラメータの値は、前記先行オブジェクトの少なくとも１つのパラメータに関数従属する。前記命令により前記プロセッサは、前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割する。いずれの既定のオブジェクトについても、当該既定のオブジェクトの先行オブジェクト各々は、当該既定のオブジェクトと同一のパーティション内、又は、先行のパーティション内にある。
【００３１】
前記命令により前記プロセッサは、幾何学的変換のタイプの指示に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換することができる。
【００３２】
前記命令により前記プロセッサは、前記パーティション内の各オブジェクトの後続オブジェクトを、一時的にリードオンリーにし、前記パーティション内の各オブジェクトの先行オブジェクトを、一時的にリードオンリーにすることができる。
【００３３】
前記命令により前記プロセッサは、一時的にリードオンリーにされた各オブジェクトごとに、対応するトゥドゥアイテムを生成することができる。一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたならば、前記命令により前記プロセッサは、前記対応するトゥドゥアイテムを削除することができる。
【００３４】
前記命令によりプロセッサは、既定のパーティション内における前記オブジェクトの幾何学的変換中、前記パーティション内におけるオブジェクトの下位のオブジェクトを識別し、識別された当該下位のオブジェクトを前記パーティションに追加することができる。前記命令により前記プロセッサは、追加された当該下位のオブジェクトを、幾何学的変換のタイプの指示に従い幾何学的変換することができる。
【００３５】
図面の簡単な説明
本発明は、特定の実施形態に関する図面に関連した以下の詳細な説明を参照することによって、より完全に理解されるであろう
【図面の簡単な説明】
【００３６】
【図１】複数の仮想的なオブジェクトと、これらのオブジェクト間における複数の仮想的な関係とを示す概略図である。
【図２】本発明の１つの実施形態による、幾何学的変換の準備としてソート及びパーティションされた図１の設計オブジェクトを示す概略図である。
【図３】本発明の１つの実施形態による、モジュール式のエンタープライズエンジニアリングシステムの概略ブロック図である。
【図４】本発明の１つの実施形態の全般的なオペレーションを示すフローチャートである。
【図５】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図６】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図７】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図８】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図９】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図１０】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図１１】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図１２】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図１３】本発明の１つの実施形態によるユーザインタフェースの一例を示す図である。
【図１４】図４の変換オペレーションのサブオペレーションを示すハイレベルフローチャートである。
【図１５】オブジェクト識別子（ＯＩＤ）のリストを、順序づけられたパーティションに分割するオペレーションを示す、図４のオペレーションを拡張したフローチャートである。
【図１６】本発明の１つの実施形態による、２つの設計オブジェクトと、対応する各下位のオブジェクトとを示す概略図である。
【図１７】本発明の１つの実施形態による、図１６のオブジェクトにおけるような、関係パスのトラバーサルを可能にするためのクラス情報を供給するためのＸＭＬファイルの断片の一例を示す図である。
【図１８】本発明の１つの実施形態による、ＸＭＬクラス記述ファイルのより完全な例を示す図である。
【図１９】本発明の１つの実施形態による、先行体グラフの例を示す図である。
【図２０】オブジェクト間の関係におけるループの例を示す概略図である。
【図２１】本発明の１つの実施形態による、パーティションを順序づけるオペレーションと、パーティションを順次処理するオペレーションとを説明するフローチャートである。
【図２２】本発明の１つの実施形態による、選択されたパーティション内のオブジェクトの処理を示す、図２１のオペレーションを拡張したフローチャートである。
【図２３】本発明の１つの実施形態による、変換グラフのデータ構造の概略図である。
【図２４】本発明の１つの実施形態による、図２３の変換グラフのデータ構造の値エントリアレイの概略図である。
【図２５】本発明の１つの実施形態による、図２４の値エントリアレイの概略図である。
【図２６】本発明の１つの実施形態による、図２３の変換グラフのデータ構造の関係エントリの概略図である。
【図２７】本発明の１つの実施形態による、複数の仮想的なオブジェクトと、これらのオブジェクト間における複数の仮想的な関係とを示す概略図である。
【図２８】図２７のオブジェクト及び関係に対応する、先行体グラフの概略図である。
【図２９】本発明の１つの実施形態による、オブジェクトがパーティションに分割された後の、図２７及び図２８のオブジェクトを示す概略図である。
【図３０】本発明の１つの実施形態によるオペレーションを例示するための仮想的なトランザクションを示す図である。
【図３１】本発明の１つの実施形態によるオペレーションを例示するための仮想的なトランザクションを示す図である。
【図３２】本発明の１つの実施形態によるオペレーションを例示するための仮想的なトランザクションを示す図である。
【図３３】本発明の１つの実施形態によるオペレーションを例示するための仮想的なトランザクションを示す図である。
【図３４Ａ】本発明の１つの実施形態による、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、コンピュータにより実施される方法を示す概略フローチャートである。
【図３４Ｂ】本発明の１つの実施形態による、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、コンピュータにより実施される方法を示す概略フローチャートである。
【図３５】オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、本発明の１つの実施形態によるシステムの概略ブロック図である。
【００３７】
実施形態の詳細な説明
本発明は、従来技術の記憶域の制約を無くして、モデルデータベースの完全性を維持しながら多数のオブジェクトの幾何学的変換を行う方法及び幾何学的変換装置を開示する。大きな幾何学的変換操作は、より小さい複数のアトミック操作（トランザクション）に分割され、これらを順次実行する。これらの小さい各トランザクションが、選択されたサブセットのオブジェクトを幾何学的変換する。よって、これらの小さい幾何学的変換トランザクションすべてが完了する前に１つの大きな幾何学的変換が中断しても、モデルデータベースは一貫した状態に維持され、全体的な幾何学的変換操作をこの中断ポイントから再開することができる。
【００３８】
本願発明では、オブジェクトを幾何学的変換する順序が重要であるとの認識が得られた。まず最初に図１を参照して説明を始める。同図には、複数の仮想的オブジェクトＡ１，Ａ２，Ａ３，Ｂ１，・・・Ｚ４、ならびに、オブジェクトＡ１〜Ｚ４の対同士の関係（実線で示す）を概略的に示す。説明を簡略化するため、図１には比較的少数のオブジェクトを示している。オブジェクトＡ１，Ｂ１，Ｃ１及びＤ１は設計オブジェクトを表す。上述のように、各設計オブジェクトは０個又はそれより多くの下位オブジェクトにより構成することができ、例えば、オブジェクトＣ２及びＣ３は設計オブジェクトＣ１の下位オブジェクトである。下位オブジェクトの各集合が、各設計オブジェクトに由来する１階層を構成する。各設計オブジェクトと、各設計オブジェクトの下位オブジェクトとを、それぞれ薄い破線１００，１０２，１０４又は１０６により囲んでいる。
【００３９】
オブジェクトＡ１〜Ｚ４の対のうちいずれか複数は関数従属性の関係にあり、この関係は矢印により示している。例えば、オブジェクトＢ６はオブジェクトＢ４に従属する。これは具体的には、オブジェクトＢ６の少なくとも１つのパラメータがオブジェクトＢ４の少なくとも１つのパラメータに依存する、ということである。したがって、オブジェクトＢ４のパラメータが変化した場合、オブジェクトＢ４のこの変化した（１つ又は複数の）パラメータに基づいて、オブジェクトＢ６の１つ又は複数のパラメータを再計算しなければならない。よって、少なくともオブジェクトＢ４とＢ６との関係については、オブジェクトＢ６は「従属している」といい、オブジェクトＢ４は「独立している」という。このような関数関係には、設計オブジェクト境界をまたいでいるものも含まれていることに留意されたい。例えば、設計オブジェクトＡ１の一部であるオブジェクトＡ３は、別の設計オブジェクトＢ１の一部であるオブジェクトＢ５に関数従属する。
【００４０】
下位オブジェクトＡ３がオブジェクトＢ５に従属するとは、設計オブジェクトＡ１とＢ１との間に明示的な関係が存在していなくても、設計オブジェクトＢ１が設計オブジェクトＡ１の「先行オブジェクト」（この用語がここで使用されている限り）であることを含意する。ここでは先行オブジェクトとは、他の設計オブジェクトに従属される設計オブジェクトである。つまり、従属設計オブジェクト、もしくは従属設計オブジェクトの１つ又は複数の下位オブジェクトは、先行設計オブジェクトに、もしくは先行設計オブジェクトの１つ又は複数の下位オブジェクトに従属するということである。したがって、先行設計オブジェクトのパラメータが、もしくは先行設計オブジェクトの１つ又は複数の下位オブジェクトのパラメータが変化した場合、従属設計オブジェクトの１つ又は複数のパラメータ、もしくは従属設計オブジェクトの１つ又は複数の下位オブジェクトのパラメータを再計算しなければならない。設計オブジェクトＡ１とＢ１との間のこのような暗黙的な関係は、下位オブジェクトＡ３とＢ５との実際の関係により導き出される。しかし設計オブジェクトは、他の設計オブジェクトとの間に明示的な関係を有することも可能である（図示されていない）。
【００４１】
先後関係とは、オブジェクトプログラミングパラダイムの親子関係（クラス‐下位クラス関係、又はより一般的に、階層関係又はクラス‐インスタンス関係とも称される）とは全く異なるものであることに留意すべきである。下位クラスは自身の上位クラスから、例えば変数やメソッド等の属性を継承する。これと同様に、インスタンスは自身のクラスの定義から属性を継承する。典型的には、下位クラスは例えば他の変数又はメソッド等の機能を追加するものであるが、下位クラスが上位クラスの変数及び／又はメソッドを書き換える場合もある。例えば、「車両」について、「重量」及び「ホイール数」の変数を含むクラスを定義し、このクラスが「加速」のメソッドを含み、このメソッドの入力を、アクセルペダルを踏み込む距離とすることができる。このクラスのインスタンスは、種々の車及びトラックを表すオブジェクトとすることができる。「クレーン」の下位クラスを定義し、この下位クラスが、「最大リフト重量」及び「最大リフト高さ」の変数を追加することが可能であり、場合によっては、この下位クラスにより追加されるメソッドを、例えば貨物の上昇又は下降等の機能を実行するために呼び出されるメソッドとすることができる。
【００４２】
先後関係は、クラス‐下位クラス関係とは関係ないものである。先後関係とは、オブジェクト指向パラダイムでは知られていなかったものであり、本願にて説明するために本願の発明者により着想されたものである。先後関係は継承を含意するものではなく、関数従属関係は継承ではない。先行オブジェクトは、自身の従属オブジェクトから属性（変数）やメソッドを自動的に継承することがなく、また、その逆の継承もない。このような継承がないので、先行設計オブジェクトのパラメータが、もしくは先行設計オブジェクトの１つ又は複数の下位オブジェクトのパラメータが変化した場合、従属設計オブジェクトの１つ又は複数のパラメータ、もしくは従属設計オブジェクトの１つ又は複数の下位オブジェクトのパラメータを再計算しなければならない。
【００４３】
先後関係にあるオブジェクトは、必ずしもクラス‐下位クラス関係にあるとは限らない。典型的には、先行オブジェクトは後続オブジェクトの下位クラスでも上位クラスでもなく、例えば、ポンプとパイプの敷設とは、典型的には完全に異なるクラスに包含され、これは、ビームと柱とについても同様である。さらには、下位クラス／上位クラス関係も関数関係を含意するものではない。つまり、１つのクラスのオブジェクトが変更された場合（例えば、新しい場所に移動されることにより）、その下位クラス及び上位クラスのオブジェクトを再計算する必要はない。
【００４４】
設計オブジェクトＡ１，Ｂ１，Ｃ１及びＤ１が変換のために選択されたと仮定する。これらのオブジェクトは太い破線１０８により囲まれている。変換すべきオブジェクトに関連づけられた、例えばオブジェクトＸ１，Ｙ１及びＺ１等のオブジェクトもあるが、オブジェクトＸ１〜Ｚ４は変換対象に選択されない。
【００４５】
破線１０８内のオブジェクトを任意の順序で幾何学的変換し、この幾何学的変換が正常でないやり方で終了すると、データベースは非一貫性の状態のままになってしまう。というのも、この変換操作が異常なやり方で終了する時点までに、一部の従属オブジェクトが幾何学的変換されたにもかかわらず、これらの変換された従属オブジェクトの従属先であるオブジェクトは変換完了していないことになるからである。
【００４６】
本願発明の方法及び装置では、特定の規則にしたがい、選択したオブジェクトの、順序設定された複数の集合（「パーティション」とも称する）に、オブジェクトを分割し、このパーティションを順番に幾何学的変換していく。つまり、１つのパーティションのオブジェクトは全て、後続のいずれか１つのパーティションのいずれか１つのオブジェクトが変換される前に変換完了する。従属オブジェクトの従属先であるオブジェクトが変換完了するよりも早期に当該従属オブジェクトが変換されないように、オブジェクトを各パーティションに割り当てる。
【００４７】
図２に、本願の規則にしたがって、順序決定された複数のパーティション２００，２０２，２０４及び２０６に設計オブジェクトＡ１〜Ｄ３を分割する一例を示す。例えば、パーティション２０２により表されているオブジェクト（オブジェクトＣ１及びその下位オブジェクト）、及び、パーティション２０４により表されているオブジェクト（設計オブジェクトＡ１及びその下位オブジェクト）が変換完了するまでは、設計オブジェクトＤ１及びその下位オブジェクト（つまりパーティション２０６）は変換されない。というのも、設計オブジェクトＤ１（又は少なくとも、当該設計オブジェクトＤ１の下位オブジェクトのうち１つ）は、パーティション２０２に含まれるオブジェクトと、パーティション２０４に含まれるオブジェクトとに従属するからである。「後続パーティション」とは、別のパーティションに含まれるオブジェクトに従属するオブジェクトを含むパーティションであり、例えばパーティション２０６は、パーティション２０２及び２０４それぞれの後続パーティションである。「先行パーティション」とは、別のパーティションに含まれる別のオブジェクトの従属先であるオブジェクトを含むパーティションであり、例えばパーティション２０４は、パーティション２０６の先行パーティションである。
【００４８】
各パーティション２００〜２０６は、それぞれ対応する個別のトランザクションで変換される。つまり、各パーティション２００〜２０６ごとに１つのトランザクションを実行し、この１つのトランザクション中に、各パーティションに含まれる設計オブジェクトと、各設計オブジェクトの下位オブジェクトとをすべて変換する。図２に示された実施例では、１つのパーティション２００〜２０６ごとに１つの設計オブジェクトしか含まれておらず、このことは有利であるが、１つのパーティションごとに含まれる設計オブジェクトを１つより多くしてもよい。各１つのパーティションに含まれるオブジェクトの変換は、「パーティションの変換」とも称する。既に述べたように、パーティションは決まった順序で順次変換され、例えばパーティション２０２は、パーティション２００より後に変換される。
【００４９】
各パーティションが変換される間、後続パーティションに含まれる全てのオブジェクト（及び、これらのオブジェクトに下位オブジェクトが存在する場合には、各オブジェクトの下位オブジェクト）が、一時的な「凍結」状態にされる。例えばパーティション２０２が変換されるときには、パーティション２０６に含まれるすべてのオブジェクト（及び、当該オブジェクトの下位オブジェクト）が凍結される。凍結されたオブジェクトは、一時的にリードオンリーと見なされる。つまり、この凍結されたオブジェクトが他のオブジェクトに従属する場合、当該凍結されたオブジェクトの独立オブジェクトの変更に応じて直ちに、この凍結されたオブジェクトが再計算されることはない。システムは、この凍結オブジェクトを直ちに再計算する代わりに、凍結された各オブジェクトに対して「トゥドゥ」レコードを生成する。これは、各パーティションが変換完了するまで、当該凍結されたオブジェクトの変換を有効に遅延させるものである。さらに、他のオブジェクトとの関係の解消を支援するために凍結されるオブジェクトもある。例えば、変換されることはないが、変換されるオブジェクトに関係するオブジェクトを、「外部オブジェクト」と称する。図１に示された実施例では、オブジェクトＸ１，Ｙ１及びＺ１が外部オブジェクトであり、これらの外部オブジェクトに関係するオブジェクト（例えばＡ２，Ｂ１及びＤ３）は、関係を解消するのを容易にするために凍結される。
【００５０】
オブジェクトの各パーティションは、アトミック操作（トランザクション）で幾何学的変換され、これにより、大きな幾何学的変換操作が異常な仕方で終了しても、データベースの一貫性が維持される。大きな幾何学的変換が異常な仕方で終了した場合、この変換操作を、終了したポイントで変換操作を再開させることができる。例えば、ハードウェアの不具合が異常な終了の原因となった場合、この不具合を解消した後に変換操作を再開させることができる。また他の例では、変換すべきオブジェクトのうち幾つかに、データベースにおいて「リードオンリー」との標識が付されている場合、このオブジェクトの保護を、当該オブジェクトのパラメータ変更可能に変更した後に、すなわちこのオブジェクトを「読み出し書き込み可」とすることにより、変換操作を再開させることができる。さらに、十分に小さい複数のパーティションにオブジェクトを分割することにより、使用可能な記憶域の大きさに依存せずに、非常に多数のオブジェクトを幾何学的変換することもできる。というのも、メモリに一度にロードしなければならないオブジェクト数が比較的少なくなるからである。メモリにロードしなければならないオブジェクトには、現在のパーティションに含まれるオブジェクトと、いずれか（１つ又は複数）の先行パーティションに含まれるオブジェクトと、いずれか（１つ又は複数）の後続パーティションのオブジェクトとが含まれる。幾何学的変換されたオブジェクトをデータベースに引き渡した後は、その記憶域を再利用できるようになる。
【００５１】
大きな幾何学的変換の再開を支援するため、この変換についての情報を、基本的に「変換操作オブジェクト」として、データベースに記憶しておく。各パーティションの変換トランザクションの状態も、この変換操作オブジェクトに記憶する。したがって、幾何学的変換操作を再開しなければならない場合には、どのパーティションが既に変換済であるかとの情報と、どのパーティションが未だ変換されていないかの情報との双方を使用することができ、これにより、変換操作がオフ状態になっていた場合には、これを再開させることができる。
【００５２】
外的関係
既に述べたように、「外的関係」とは、変換されるオブジェクトと変換されないオブジェクトとの間の境界をまたいだ関係である。例えば図１では、太い破線１０８をまたいだ関係はいずれも、関連するオブジェクト間の関数従属性に関係無く、外的関係である。図１では、オブジェクトＸ１はオブジェクトＢ１に従属するが、オブジェクトＸ１は変換対象に選択されていない。よって、オブジェクトＢ１とＸ１との関係１１０は外的関係である。従属オブジェクト（この実施例ではＸ１）が、その独立オブジェクト（この実施例ではＢ１）との間に何も関係を有さずに成り立つ場合には、この外的関係は成り立たず（つまり、これらのオブジェクトは相互に接続解除される）、１つの実施形態では、従属オブジェクト（Ｘ１）は独立オブジェクトとなる。逆に、この実施形態において従属オブジェクト（Ｘ１）がその独立オブジェクト（Ｂ１）との間に関係を有さないと成り立たない場合には、この従属オブジェクト（Ｘ１）は削除される。
【００５３】
どのオブジェクトが関係性を有さなくても成り立つかは、ドメイン固有の問題である。つまり、エンタープライズエンジニアリングシステムの設計者が、どの関係を外的関係とするかを決定する。例えば、配管システムは配管区間により構成され、１配管区間が設計オブジェクトである。したがって配管区間が、マルチトランザクション手法により変換できる配管系統の最小単位である。各１つの配管区間は、多数の論理的「特徴」により構成することができ、例えば直線特徴、曲がり特徴、脚伝い（along-leg）特徴、分岐特徴等により構成することができる。各特徴は物理的な部品に相当することができ、例えば直管パイプ、エルボー形部品、バルブ又はＴ字部品とすることができる。相互に隣接する物理的部品は、連結オブジェクトを用いて相互に関連づけることができる。例えば溶接部又はガスケット等の連結要素を、各連結部に対応付けることができる。したがって、１つの配管区間が複数の特徴、部品、継手及び連結要素を含むことができる。配管区間とこれらのオブジェクトとの関係は、内的関係になる。例えば、もし配管区間を変換する場合（例えば移動等）、これらすべてのオブジェクトを当該配管区間と共に変換（移動）することができる。
【００５４】
また、第１の配管区間を第２の配管区間に、又は、設備の１部品に設けられたノズルに連通させることもできる。第１の配管区間の複数の各部位と、第２の配管区間又は設備の複数の各部位との関係は、外的関係とすることができる。その場合、第１の配管区間を変換する場合（例えば移動）、外部オブジェクトを変換させる必要はない。例えば、第１の配管区間を移動させる場合、第２の配管区間又は設備との関係は外的関係とされる。というのも、第２の配管区間（及び設備）は独立オブジェクトとして存在することができ、関係を解消できるからである。
【００５５】
アーキテクチャ全体
オブジェクトの幾何学的変換について本願にて記載した方法及び装置は、種々の用途にて実用化することができ、例えばエンタープライズエンジニアリングシステムにて実用化することができる。モジュール式のエンタープライズエンジニアリングシステム３００の一例を、図３にて概略的に示す。コアソフトウェアプラットフォーム３０１が、種々の設計オブジェクトに関して使用される、幾何学的変換を含めた一般的なサービス（例えば、１つ又は複数のタスクのためのサービス）を提供する。コアプラットフォーム３０１は、例えば一般に指定される米国特許出願第１２／４７６，３９９号（米国特許出願公開第２００９／０３０００８３号明細書）に記載されているような、オブジェクトの複製グループ等の他の一般的サービスも提供することもできる。上述の米国の特許文献の記載内容はすべて、引用により、あらゆる目的のために、本願の開示内容に含まれているものとする。一般的サービスには他の例として、トランザクション管理、グラフィック表示、編集及びアンドゥ操作、修正管理及びＤＢＭＳインタフェースも含むことができる。すべての設計オブジェクトが、前記コアプラットフォーム３０１により提供される同じ３次元作業スペースを共有する。
【００５６】
１つ又は複数のソフトウェアタスクがコアプラットフォーム３０１を呼び出し、グラフィカルユーザインタフェース（ＧＵＩ）３０８を介して、当該のドメイン固有サービスをユーザに対して提供する。ここでは、前記ソフトウェアタスクの例としてタスク３０２，３０４，３０６を挙げている。ソフトウェアタスクの例には、構造的システム、電気系統、設備システム及び配管システムを具現化するタスクが含まれる。各タスク３０２〜３０６にはそれぞれ、自身のメニューセットと、自身のオブジェクトセット及び関係と、自身の関数従属関係のセットとが含まれる。もちろん中には、１つのタスク３０２〜３０６のオブジェクトから他のタスクのオブジェクト３０２〜３０６のオブジェクトまでの境界をまたぐことができる種類の関係もある。各タスク３０２〜３０６は、各タスクの要求に応じて適切なオブジェクトを実行する。ここでは、各タスクにより実行されるオブジェクトの例として、オブジェクト３１０，３１２及び３１４を挙げている。オブジェクト３１０〜３１４は、関係データベース（ＲＤＢ）３１６又は他の適切なデータベースに記憶することができる。図３に示したソフトウェアアーキテクチャにより、既存のタスクに影響を及ぼすことなく、エンタープライズエンジニアリングシステムに新規のタスクを追加するのが容易になる。
【００５７】
上位の操作の概略
図４は、１つ又は複数のオブジェクトを幾何学的変換するためのコアプラットフォーム３０１（図３）により実行される主要な操作を示す上位のフローチャートである。ここでは、これらの各操作の概略を説明し、後にその詳細を説明する。４００においてユーザ入力が収集され、これにより、変換すべきオブジェクトを特定し、かつ、当該オブジェクトに実行しようとしている（１つ又は複数の）変換の（１つ又は複数の）タイプ（例えば移動、回転及び／又は鏡像）と、当該変換のパラメータ（具体例に応じて、例えば距離、回転角、回転中心及び／又は鏡面軸）とを特定する。ユーザインタフェース３０８（図３）により、ユーザが選択肢のメニューの中からオブジェクトを選択すること、ないしは、基準を満たすオブジェクトをシステムが自動的に選択するためのフィルタ基準を、ユーザが入力又は選択することができる。これに代えて択一的に、ユーザインタフェースは、選択カーソル又は「ゴムバンド」四角形選択範囲（又は他の形状）、ないしは、他の適切な選択メタファ等のグラフィカル選択ツールを提供することができる。以下、図５〜１２を参照して、ユーザを補助してユーザ入力を受け取るための「ウィザード」形式のユーザインタフェースを一例として、その態様を説明する。４０２において変換操作を実行する。この変換操作の詳細については、下記にて説明する。４０４において、変換操作についての情報の表示をユーザに対して示す。図１３に、例示的な一覧表示を示す。
【００５８】
変換すべきオブジェクトを特定するユーザ入力を収集するためのユーザインタフェース
図４を参照して述べたように、ユーザ入力を収集して（４００）、これにより変換すべきオブジェクトを指定する。以下、図５〜１３を参照して、ユーザを補助してユーザ入力を受け取るための、かつ、変換操作についての情報を表示するための「ウィザード」形式のユーザインタフェースを一例として、その態様を説明する。図５に、モデルデータ変換システムウィザードを導入するダイアログボックスの一例を示す。
【００５９】
図６のダイアログボックスを用いて、システムは、既存のモデルの、複製対象となる１つの部分を選択するユーザ入力を受け取る。このダイアログボックス例で用いられている「プラント」とは、データベースを指す。したがって図６の実施例では、ユーザは、“SDH_9059_ModelA”との名称のソース「プラント」６００（すなわちデータベース）を選択したということになる。各データベースは、「システム」の階層のモデルについての情報を記憶している。システム例には、構造的システム（土台、ビーム及び柱等のオブジェクトを含むことができる）、電気系統（例えば導線、ワイヤ区間及びスイッチ等を含むことができる）、設備系統（ポンプ及びタンクを含むことができる）及び配管系統（管、エルボー形部品、Ｔ字継手及びバルブ等を含むことができる）が含まれる。階層の粒度は、使用されている特定のエンタープライズエンジニアリングシステムと、ユーザ要求とに依存する。
【００６０】
既に述べたように、エンタープライズエンジニアリングシステムはユーザインタフェースを介してユーザに対して露出される設計オブジェクトを含み、かつ、露出されない他の下位オブジェクトも含むことができる。例えば、システムは土台、柱及びビーム等の構造的オブジェクトを露出させることができる。ユーザは前記ユーザインタフェースを介してこれらの設計オブジェクトを操作することができる。例えば、ユーザは柱を移動させたり、又はその寸法を指定することができる。システムは、露出されない下位オブジェクトを使用して、露出されるオブジェクトについての情報を記憶することができる。例えば、Ｉ字形ビームの設計オブジェクトは、当該Ｉ字形ビームの１次軸と、当該Ｉ字形ビームの断面と、論理的な連結ポート等とを表す下位オブジェクトに関連づけることができる。
【００６１】
図７に、新規の変換操作７００の開始と、既に開始された（現在の）変換操作７０２の継続又は再開とから選択するユーザ入力を受け取るダイアログボックスを示す。新規の操作７００を開始しようとする場合には、ユーザは操作７０４に名称を付け、許可グループ７０６を特定する。そうではなく、現在の操作を再開させようとする場合７０２には、ユーザは、既に開始された変換操作の名称等を選択することにより、セレクタボックス７０８から当該変換操作を選択する。
【００６２】
図８に、オブジェクトがどのシステムに属しているかに基づいて（８００）、又はフィルタに基づいて（８０２）、変換すべきオブジェクトをユーザが選択するためのダイアログボックスを示す。オブジェクトをシステムで選択する場合、図９ではダイアログボックスを用いて、ユーザは変換すべきシステムを選択することができる。
【００６３】
他方、オブジェクトをフィルタ８０２により選択する場合（図８）、図１０に示されたダイアログボックスを用いて、ユーザは事前定義されたフィルタ１０００を選択することができ、またオプションとして、フィルタ基準１００２を修正するか、又は基準を指定することにより新規フィルタを構成することができる。データベース３１６（図３）に問合せすることによりフィルタを具現化することができる。フィルタ例には、「ボリューム」フィルタ（設計オブジェクトの幾何学的位置に基づく問合せであるフィルタ。すなわち、指定された３次元ボリューム又は２次元面内にあるオブジェクトを選択するフィルタ）、及び「特性」フィルタ（例えば設計オブジェクトの寸法、荷重容量、組成又は名称等の各特性の１つ又は複数の値に基づく問合せであるフィルタ）が含まれる。例えば「ＡＮＤ」又は「ＯＲ」等のブール演算子を有する複数のフィルタを組み合わせて、より複雑なフィルタを作成することもできる。有利には、選択されたオブジェクトを記憶域にバインドすることなく、前記問合せを行う。その代わり、前記問合せはオブジェクト識別子（ＯＩＤ）のリストを返すものである。ＯＩＤは番号、ストリング又はデータベースキーであるか、もしくは、オブジェクトを一意に識別することができる他の量であって、データベースから記憶域内へ当該オブジェクトを取り出すのに（これを、オブジェクトの「バインド」という）使用することができる量である。
【００６４】
図１１は、選択されたオブジェクトに適用される変換を指定するユーザ入力を受け取るダイアログボックスを示す。例えば、オブジェクトを移動させ１１００、ユーザにより指定された数のユニットを３つの直交方向１１０２，１１０４及び１１０６に移動させることができる。１１０８において、ユーザは測定単位を指定することができる。オプションとして、又は上述の態様に代えて択一的に、他のタイプの変換を選択することもできる。例えば、ユーザは、選択したオブジェクトの回転１１１０、又は、選択したオブジェクトの移動及び回転１１１２を選択することができる。例えば、ある軸を中心とした鏡像変換（図示されていない）等の他のタイプの変換をオプションとしてユーザに提示することもできる。ユーザが操作の実行を選択すると変換操作オブジェクトが作成され、変換についての情報と、当該変換を分割して形成される各トランザクションの状態との追跡を継続する。
【００６５】
図１２は、確認ダイアログボックスを示す。ユーザが変換操作を開始させると１２００、システムは進行インジケータ１２０２を表示することができる。パーティションのすべての変換操作が成功して完了すると、又は、変換操作が異常状態で終了した場合、図１３に示されているように、状態を報告するためにユーザに対して結果ダイアログボックスを表示することができる。既に述べたように、変換操作が完了するまでにかかる時間は、例えば数分又は数時間以上になる。
【００６６】
パーティションの変換
図４を参照して既に述べたように、変換すべき設計オブジェクトを指定するためのユーザ入力が収集された後４００、変換操作を実行させることができる４０２。図１４は、１つの変換操作４０２（図４）の部分操作を示す上位のフローチャートである。１４００においてデータベース３１６（図３）に問合せ、ユーザにより変換対象に選択された設計オブジェクトのオブジェクト識別子（ＯＩＤ）を取得する。上記にて述べたように、図８〜１０を参照するとこの問合せは、選択されたオブジェクトを記憶域に格納することなく行われる。１４０２においてＯＩＤのリストを、本願発明の規則にしたがって、所定の順序のパーティションに分割する。この分割の詳細については、下記にて図１５を参照して説明する。１４０４において、所定の順序の前記パーティションを順次処理する。この詳細については、下記にて図２１のフローチャートを参照して説明する。
【００６７】
図１５は、ＯＩＤのリストを、所定の順序の複数のパーティションに分割する操作を示すフローチャートである。１５００において、データベース３１６（図３）に問い合わせて、変換対象に選択された各設計オブジェクトのすべての先行オブジェクトを特定する。上述のように、先行オブジェクトとは、他の設計オブジェクトに従属される設計オブジェクトである。換言すると、従属設計オブジェクト、もしくは従属設計オブジェクトの１つ又は複数の下位オブジェクトは、先行設計オブジェクトに、もしくは先行設計オブジェクトの１つ又は複数の下位オブジェクトに従属するということである。１５０２において、特定された前記先行オブジェクトを編成するために先行体グラフを形成し、その後、１５０４においてこの先行体グラフをソートして、リンクされたＯＩＤリストを生成する。このリンクされたＯＩＤリストは、１５０６において、連続した所定の順序の複数のパーティションに分割される。以下、操作１５０２〜１５０６の詳細を説明する。
【００６８】
先行体グラフ
１つの実施形態によれば、変換すべき各設計オブジェクトをその先行オブジェクトとを関連づける、方向を有するグラフ（「先行体グラフ」）を構築することにより、先行オブジェクトを特定する。この先行体グラフは、変換すべき各設計オブジェクトに対するノードを含む。各ノードは、これに対応するオブジェクトのＯＩＤを記憶する。前記グラフの有向の辺は、各オブジェクトノード間の関係を表す。１つのノードを起点とする辺の各集まりにより、すべての先行体ノードが特定される。同様に、１つのノードを終点とする辺の各集まりにより、後続体ノードが特定される。先行体ノードにより特定されるオブジェクトはすべて、現在のノードにより特定されるオブジェクトより前に変換完了しなければならない。
【００６９】
このグラフを辿ることにより、変換すべきオブジェクトの、所定の順序のリストが得られる。この所定の順序のリスト中の連続した複数のオブジェクトの集合は、連続した複数のパーティションに割り当てられ、ここで述べたようにこれらのパーティションを変換する。このようにして、変換すべき設計オブジェクトはすべて、１シーケンスの複数のパーティションに分割される。以下、この操作について詳細に説明する。
【００７０】
２つの設計オブジェクトが相互に関連づけられていない場合、両オブジェクトを変換する順序は不適切になる。しかし、これら２つの設計オブジェクト間の関係が、両オブジェクト間に先後関係が存在することを示唆する場合がある。この関係は例えば、設計オブジェクトのうち１つ又は当該設計オブジェクトの下位オブジェクトと、他の設計オブジェクト又は当該他の設計オブジェクトの下位オブジェクトとの間の関係等である。
【００７１】
既に述べたように、変換対象に選択される設計オブジェクトはしばしば、当該選択されたオブジェクトと一緒に変換しなければならない下位オブジェクトを有することが多い。例えば、各１つのビームは、露出されない下位の複数の接続オブジェクト又は他の下位オブジェクトを含むことができる。さらに、ビームオブジェクトを、ユーザに対して露出される先行の柱オブジェクトに接続することも可能である。この接続は、柱オブジェクトに関連づけられた、露出されない下位の接続点オブジェクトを介して行うことができる。既に述べたように、各設計オブジェクト、ならびに、各設計オブジェクトの、関連づけられた下位オブジェクトは、「設計オブジェクト群」又は単に「群」と称される。
【００７２】
このような状況を図式的に表現したものを、図１６に示す。第１群はビームオブジェクトを表し、第２群は柱を表す。この設計ビームオブジェクトＡは、複数の下位オブジェクト及び／又は露出オブジェクトＡ１，Ａ２，Ａ３及びＡ４に関連づけられており、これらはすべて、露出されるビームオブジェクトＡとともに変換しなければならないものである。ここで、オブジェクトＡ４が、ビームにある接続点を表すと仮定する。設計柱オブジェクトＢも同様に、複数の下位オブジェクト及び／又は露出オブジェクトＢ１，Ｂ２及びＢ３に関連づけられている。ここで、オブジェクトＢ３が、柱にある接続点を表すと仮定し、かつ、関係Ｘが、ビームの接続点Ａ４と柱の接続点Ｂ３との接続を表すと仮定する。
【００７３】
他のオブジェクトから接続オブジェクトＢ３までに関係を確立させることができるので、この接続オブジェクトＢ３を「ターゲット」オブジェクトと称する。もしそのような関係を確立しようとした場合、柱オブジェクトＢがオブジェクト変換の先行オブジェクトとなり、上述の他の設計オブジェクトは後続オブジェクトとなる。１つのオブジェクトが、１つより多くのターゲットを有することができる。さらに、物理的接続とは異なる別の関係を確立させることもでき、例えば、１つのオブジェクトを座標系オブジェクト又は測定単位オブジェクトに関連づけることも可能である。例えばビーム等のオブジェクトも同様に、当該オブジェクトと他のオブジェクトとを関連づけるための１つ又は複数のオブジェクトを有することができる。
【００７４】
既に述べたように、エンタープライズエンジニアリングシステムは典型的には、プラント又はモデル内におけるシステムを管理する１つ又は複数のソフトウェアタスク３０２〜３０６（図３）を含む。このソフトウェアタスクはユーザ入力に応答して、例えばユーザがモデルにビーム又は柱を追加した場合にオブジェクトを作成する。オブジェクト指向パラダイムでは、「クラス」とはオブジェクトの定義又はプロトタイプである。オブジェクト指向システムは、各オブジェクトタイプごとにクラス定義を有し、これは作成することができる。
【００７５】
関係のタイプ、相互間に関係を有するオブジェクト、及び、先後関係におけるその意味はすべて、各ソフトウェアタスク３０２〜３０６ごとに固有のものである。各タスク３０２〜３０６は、各タスクの設計クラスについての情報をメタデータの形態で供給する。このメタデータにより、コアプラットフォーム３０１はデータベース３１６に問合せを行うことができ、これにより、変換すべきオブジェクトのリスト中にある各オブジェクトの先行体を発見することができる。
【００７６】
本発明では、コアプラットフォーム３０１が２種類の経路を行き来するための、オブジェクトに関する情報を、各クラス定義が提供する。上記２種類の経路とは、以下のものである：
（ａ）オブジェクトから、当該オブジェクト自身の群の内的関係を介して、当該オブジェクトとの間に関係を有することができる他のオブジェクトにおけるターゲットオブジェクトまでの経路
（ｂ）オブジェクトから、当該オブジェクト自身の群の内的関係を介して、当該オブジェクト自身の群内に含まれるターゲットオブジェクトまでの経路。すなわち、当該オブジェクトとの間に関係を確立出来るターゲットオブジェクトまでの経路。
【００７７】
この情報から、先行オブジェクトに含まれるすべてのターゲットまでの経路を特定し、かつ、自身の下位オブジェクトの群内に含まれるすべての可能なターゲットまでの経路を特定することができる。経路はそれぞれ、方向を有する複数の関係が連続したものを含む。
【００７８】
図１６に、これら２種類の経路を例示している。既に述べたように、ビームは他の設計オブジェクトに接続することができ、ビームの接続オブジェクトＡ４は、接続関係（関係Ｘ）が確立されるオブジェクトである。既に述べたが、ビームの他のオブジェクトＡ１〜Ａ４もまた、関係を確立するためのオブジェクトとすることができる。オブジェクトＡ４は他のオブジェクトとの間に関係を確立するのに用いることができるので、経路１６００は第１種類の例である。すなわち、オブジェクトＡから自身のオブジェクト群の内的関係を介して、他のオブジェクト群内にある、当該オブジェクトＡとの間に関係（関係Ｘ）を有することができるターゲットオブジェクトＢ３までの経路である。経路１６０２は第２種類の例である。すなわち、オブジェクトＢから、当該オブジェクトＢ自身の群の内的関係を介して、当該群内にあるターゲットＢ３までの経路である。関係Ｘが存在するということは、設計オブジェクトＢがオブジェクトＡの先行オブジェクトであることを示唆していることになるので、オブジェクトＡより先にオブジェクトＢを変換しなければならない、ということになる。
【００７９】
幾つかの実施形態では、各クラス定義がそれぞれ「クラス記述子」ファイルを供給する。このクラス記述子ファイルは、クラスのオブジェクトがターゲットであるか、又は、クラスのオブジェクトが他のオブジェクトとの間に確立された関係を有することができるかに依存して、前記２種類の経路のうち一方又は双方を特定するために変換アプリケーションが使用できる情報を含む。幾つかの実施形態では、このファイルは、拡張可能マークアップ言語（ＸＭＬ）標準規格に準拠した形式のファイルである。このようなＸＭＬファイルの詳細は、下記にて説明する。
【００８０】
既に述べたように、典型的なエンタープライズエンジニアリングシステムは、オブジェクト及び関係についての情報を関係データベース（ＲＤＢ）又は他の種類のデータベースに記憶する。このようなエンタープライズエンジニアリングシステムの中には、オブジェクトのタイプごとに別個のデータベーステーブルを保持するものもある。例えば、このようなシステムは、柱オブジェクトのテーブルと、ビームオブジェクトに対応する別個のテーブルとを保持する。オブジェクト相互間の関係についての情報は、オブジェクトテーブルに保持するか、又は、それぞれ別個のテーブルに保持することができる。例えば関係テーブルは、当該テーブルの各行に、オブジェクト対と、オブジェクト相互間の関係とを記録することができる。この関係テーブルの一例を表１に示す。したがってテーブルは、システム内の２つのオブジェクト間の関係ごとに１つの行を有するということになる。テーブル行フィールドは、オブジェクト識別子（ＯＩＤ）を含むことができる。「ＯＩＤ（Ｂ）」と記載した場合には、これは「オブジェクトＢのオブジェクト識別子」を意味する。表１の２番目の行に示した関係は、図１６中に示した関係Ｘに相当し、これは、ビームＡにある接続点Ａ４が、柱Ｂにある点Ｂ３との端部‐中間点間接続であることを示唆するものである。
【００８１】
【表１】
2015510638.tif 000003
【００８２】
表１中の冒頭行（「起点」及び「終点」）から分かるように、関係は方向を有する。関係の方向は、２つの対応するオブジェクト間の先後関係を含意することができるが、その必要はない。
【００８３】
既に述べたように、各クラス定義は、２種類の経路をソフトウェアが辿るための、当該クラスによりインスタント化されるオブジェクトに関する情報を含むクラス記述子ファイルを供給する。図１７に、この情報を供給するためのＸＭＬファイル断片例を示す。他の適切なファイル形式を用いることも可能である。
【００８４】
所与のオブジェクトクラスの場合、ファイルは２つの部分１７００及び１７０３を含み、これらの各部分１７００，１７０３はそれぞれ、前記２種類の情報を有する。第１の部分１７００（“TargetsInPredecessors”）は、オブジェクトから当該オブジェクトの下位オブジェクト群の内的関係を介して、当該オブジェクトとの間に関係を有することができる他のオブジェクトにおけるターゲットオブジェクトまでの可能な経路、つまり、当該オブジェクトの先行オブジェクトとなるオブジェクトまでの可能な経路それぞれの情報を供給する。
【００８５】
図１７に示した実施例に、これら２つの経路１７０６及び１７１０を具体的内容が示している。各経路はそれぞれ少なくとも１つの「ステップ」を含む。各ステップは２つのオブジェクト間の関係を記述したものであり、２つのオブジェクト間の関係タイプ（RelType）及び当該関係の方向（Dir）の記述を含んでいる。一例として図１６のビームオブジェクトを参酌すると、経路１６００は、関係１６０４，１６０６及び１６０８に対応する３ステップを有するものとして記述される。このオブジェクトを起点として、指定されたステップの数と、指定された（１つ又は複数の）関係タイプ（RelType）と、指定された（１つ又は複数の）方向（Dir）とに一致する経路であれば全て、TargetsInPredecessors経路となる資格を有する。
【００８６】
再び図１７を参照すると、ＸＭＬファイルの第２の部分１７０３（“TargetsInSelf”）は、オブジェクトから当該オブジェクト自身の群の内的関係を介して当該群内のターゲットまでの可能な経路それぞれについての情報を供給する。図１８に、ＸＭＬクラス記述子ファイルのより完全な一例を示す。
【００８７】
ユーザによっていずれかのオブジェクトが変換すべきオブジェクトとして選択された場合、又は、システムによって自動的に特定された場合、システムは該当の設計オブジェクトの先行体を自動的に特定する。先行体を特定するためには、システムは、選択された前記オブジェクトに関連づけられた、又は当該選択されたオブジェクトの下位オブジェクトのうち１つに関連づけられた、当該先行体内のターゲットオブジェクトを特定する。ターゲットオブジェクトを特定するためには、システムは、オブジェクトクラスについて定義された各TargetsInPredecessors経路ごとに問合せを形成する。この問合せの冒頭には、変換すべき所定のクラスの全ての設計オブジェクトのＯＩＤが付され、この問合せは、経路の各ステップごとにJOIN（結合）を含む。この問合せは、データベース３１６（図３）に含まれる関係テーブルに反して実行される。この問合せにより、ＯＩＤ対を含むテーブルが得られる。各ＯＩＤ対には、例えばビーム（ＯＩＤ「Ａ」）等の変換すべきオブジェクトのＯＩＤと、例えば接続点（ＯＩＤ「Ｂ３」）等のターゲットオブジェクトのＯＩＤとを含む。このような問合せの結果例の一部を、表２に示す。
【００８８】
【表２】
2015510638.tif 000004
【００８９】
システムは、オブジェクトクラスについて定義された各TargetsInSelf経路に対しても、それぞれ問合せを形成する。この問合せの冒頭には、変換すべき所定のクラスの全ての設計オブジェクトのＯＩＤが付され、この問合せは、経路の各ステップごとにJOINを含む。この問合せは、データベース３１６（図３）に含まれる関係テーブルに反して実行される。この問合せにより、ＯＩＤ対を含むテーブルが生成される。各ＯＩＤ対には、例えば柱（ＯＩＤ「Ｂ」）等の変換すべきオブジェクトのＯＩＤと、例えば接続点（ＯＩＤ「Ｂ３」）等のターゲットオブジェクトのＯＩＤとを含む。このような問合せの結果例の一部を、表３に示す。
【００９０】
【表３】
2015510638.tif 000005
【００９１】
上記の問合せは、変換対象に選択されたオブジェクトの各クラスごとに実行され、その問合せの結果は、これにより得られたテーブル中に蓄積されていく。その後、これら２つのテーブルを、「ターゲットオブジェクトのＯＩＤ」との名称を付されたテーブル行にて結合し、これにより第３のテーブルが生成される。表４は、このようなデータベース結合操作の結果例の一部を示す。表４の各行は、変換すべきオブジェクト相互間の先後関係を表す。例えば表４の第１行によれば、オブジェクトＢはオブジェクトＡの先行オブジェクトであるから、オブジェクトＢはオブジェクトＡより後に変換してはならない、ということになる。
【００９２】
【表４】
2015510638.tif 000006
【００９３】
既に述べたが、先行体グラフは、変換すべき各設計オブジェクトごとにノードを有し、グラフの各辺が、各オブジェクトノード間の関係を表すものである。システムは、ユーザにより選択された設計オブジェクトごとに、このグラフにノードを作成する。システムはさらに、表４中にて先行オブジェクトとして特定された各設計オブジェクトごとに、このグラフ中に一辺を追加する。
【００９４】
結合されたテーブル（表４）の各行が、変換すべきオブジェクトと先行オブジェクトとの先後関係を表す。システムは、この各先後関係ごとに先行体グラフに辺を追加する。図１９に、先行体グラフの一例を示す。この先後関係１９００は、変換順を決定するために作成されたものであることに留意すべきである。この関係は、先行体グラフの中でのみ成り立つものである。すなわち、第１群に含まれるオブジェクトと第２群に含まれるオブジェクト（図１６）とを表すデータ構造は、必ずしも、先後関係１９００に関する情報を記憶するとは限らない。
【００９５】
変換順でのオブジェクトのソート
図１５のステップ１５０４に示されているように、先行関係が先行グラフに追加されると、各先行オブジェクトがこれに従属する全てのオブジェクトに遅れて出現しないよう、グラフ内の各オブジェクトが所定の変換順でソートされる。当該変換順は、先行グラフのノードを通って延在する連結リスト（例えば前方ポインタ及び後方ポインタ）によって、又は、個別の順序リストによって、又は、他の適切なインジケータによって表現することができる。
【００９６】
先行グラフは適切な手法によってソートされる。こうした手法の２つの例を説明する。幅優先ソート法では、変換すべきオブジェクトのリストを通る複数の経路が形成される。各経路において、その先行オブジェクトが全て既に追加済であるオブジェクトがリストに追加される。ただし、当該ソート法は、近隣の無関係のオブジェクトを変換順のリストに挿入してしまいやすい傾向がある。
【００９７】
ここでは、近隣の関連するオブジェクトを変換順リストに挿入する深度優先ソート法を利用することが望ましい。先行グラフ全体にわたる１つの経路が形成されれば、後続オブジェクトを有さない全てのオブジェクト、すなわち、他のオブジェクトの先行体でないオブジェクトを識別することができる。後続体を有さない各オブジェクトに対して、オブジェクトをリストに追加するための再帰関数が呼び出される。当該再帰関数は先行オブジェクトごとに呼び出され、呼び出されるたびに当該オブジェクトをリストに追加する。よって、或るオブジェクトがリストに追加される前に、当該オブジェクトの全ての先行体がリストに追加されていることになる。
【００９８】
２つ以上のオブジェクトは、ループが形成されるように、相互に関連づけられる。こうした関係の例が図２０に示されている。各ループはソートプロセス中に識別される。ループが識別されると、所定のループの全てのオブジェクトが一緒に変換されるように同一のパーティションに割り当てられる。
【００９９】
それぞれ一方のオブジェクトが他方のオブジェクトの先行体となると見なせる２つのオブジェクトは、「相互先行体」と称される。相互先行オブジェクトどうしは同一パーティションに割り当てられる。同様に、相互先行オブジェクトのループどうしも同一パーティションに割り当てられる。
【０１００】
先行グラフの各オブジェクトがいったんソートされると、各オブジェクトは後続パーティションへ割り当てられ、ソートされた先行グラフの始点から始まって、ソート順に、グラフの終点まで続く。
【０１０１】
各パーティションのオブジェクト数は、ループ又は相互先行オブジェクトが見出されたか否かに応じて定められる。そうでなく、１つのパーティションのオブジェクト数を、１つもしくは複数の基準に基づいて選定することもできる。例えば、小さなパーティションは、１つのパーティションで変換操作が失敗した場合にも、大きなパーティションでの変換操作の失敗に比べて、エラーを引き起こしたオブジェクトのＩＤを確認しやすいため、ロバスト性が高くなる。しかし、小さなパーティションでの変換操作は多数回の操作を意味し、データベースのパフォーマンスに負の影響を与えることがある。各パーティションが１つの設計オブジェクトのみを含んでもよいし、また、全てのパーティションがそれぞれ同数のオブジェクトを含まなくてもよい。発明者は、１つの設計オブジェクトに対応するパーティションのサイズがロバスト性とパフォーマンスとの良好な妥結点を生じることを発見したが、他のサイズも利用可能である。
【０１０２】
各オブジェクトは、ソートされたオブジェクトのリストの先頭部分から始まるパーティションに割り当てられ、全てのオブジェクトが対応するパーティションに割り当てられるまで続く。
【０１０３】
各パーティションでのオブジェクトの変換
図１４のステップ１４０４に示されているように、複数のオブジェクトが所定の変換順でソートされ、順序づけられたパーティションへ分配された後、当該順序づけられたパーティションが図２１のフローチャートに示されているように順に処理される。これについて以下に説明する。フローチャートは１つのループを含んでいる。当該ループの１回経過ごとに１つのパーティションが処理される。ステップ２１００で次のパーティションが選択され、ステップ２１０２で選択されたパーティションが処理される。ステップ２１０２での処理は図２２に拡大されて示されており、これについては後述する。選択されたパーティションの全てのオブジェクトが処理された後、処理されたオブジェクトに従属するオブジェクトがステップ２１０４で再計算され、変更がステップ２１０６でデータベースに記録される。１回のループの経過はアトミックな操作である。つまり、ステップ２１００からステップ２１０６の全ての操作が完了しなければ、ステップ２１０６でのデータベースへの記録は行われない。
【０１０４】
オブジェクトの各パーティションが変換される際には、先行パーティション及び後続パーティションの各オブジェクトは一時的に「凍結」（リードオンリー）状態に置かれ、こうした凍結オブジェクトのそれぞれに対して“トゥドゥ（To-Do）”レコードが形成されることにより、対応するパーティションが変換されるまで、凍結オブジェクトの変換が有効に延期される。所定の凍結オブジェクトが変換されると、これに対応するトゥドゥレコードが消去される。よって、全てのパーティションが変換された後にはトゥドゥレコードは残らない。当該トゥドゥレコードは、ステップ２１０２の操作の内部で形成されて消去される。
【０１０５】
処理すべきパーティションが残っている場合、ステップ２１０８で制御がステップ２１００へ戻り、次のパーティションが選択される。全てのパーティションが処理されると、制御はステップ２１１へ移行する。最後のパーティションが変換された後にトゥドゥレコードが残っていた場合、エラーインジケータがセットされ、少なくとも１つの凍結オブジェクトが変換されていないことが表示される。そうでなく、残りのトゥドゥレコードがなくなった場合、成功インジケータがセットされる。
【０１０６】
図２２には、単独のパーティション（「現在パーティション」）内のオブジェクトの処理、すなわち、図２１のステップ２１０２での操作を説明するためのフローチャートが示されている。現在パーティションの先行体であるパーティション（「先行パーティション」）全ての変換が済んでいない場合、現在パーティションはステップ２２０２でスキップされる。全ての先行パーティションが変換されると、制御はステップ２２０４へ移行し、ユーザが特定した変換すべき設計オブジェクト（「初期オブジェクト」）が図３のデータベース３１６からメモリへロード（「バインド」）される。
【０１０７】
ステップ２２０６では、全ての先行パーティション及び全ての後続パーティションからの初期オブジェクトがメモリへバインドされ、これらのオブジェクトが凍結される。先行パーティションのオブジェクトはそれ以前のトランザクションにおいて既に変換されている。これらのオブジェクトの凍結によって２重の変換が防止される。つまり、ユーザが変換のためにいったん選択したオブジェクトが、変換のために選択されたオブジェクトの先行オブジェクトとして再び生じることはない。
【０１０８】
先行パーティションの各オブジェクトは、外的関係の識別を可能とするために、メモリへバインドされる。後続パーティションの各オブジェクトのメモリへのバインドは２つの理由で行われる：第１に、凍結によって現在パーティションの変換中の再計算を防止するため、第２に、外的関係の識別を可能とするためである。現在パーティションのオブジェクトと先行パーティション又は後続パーティションのオブジェクトとの関係は、外的なものではない。外的関係とは、現在パーティションのオブジェクトと、その先行体でも後続体でもないオブジェクトとの関係のことである。
【０１０９】
上述したように、オブジェクトには下位オブジェクトを含むものがある。下位オブジェクトを含むオブジェクトが変換のために選択された場合、そのパーティションは１つもしくは複数の下位オブジェクトが含まれるように拡大される。ステップ２２０８において、ステップ２２０４もしくはステップ２２０６でバインドされたオブジェクトの下位に来るオブジェクトが識別され、メモリへバインドされて、現在パーティションに追加される。こうしたパーティションの拡大（「プロパゲーション」プロセス）の詳細については後述する。
【０１１０】
ステップ２２１０で、現在パーティションの全てのオブジェクトが書き込み可能でなかった場合、現在パーティションがステップ２２１２でスキップされる。そうでない場合には制御はステップ２２１４へ移行する。
【０１１１】
上述したように、外的関係とは、変換のために選択されたオブジェクトと変換のために選択されていないオブジェクトとの２つの間に存在する関係である。例えば、従属性のオブジェクトが幾何学的変換のために選択されており、当該従属性のオブジェクトの主たるオブジェクト（先行オブジェクト）が幾何学的変換のために選択されていない場合、選択されたオブジェクトは外的関係に含まれる。同様に、主たるオブジェクトが幾何学的変換のために選択されたが、これに従属する１つもしくは複数のオブジェクトが幾何学的変換のために選択されていない場合にも、選択されたオブジェクトは外的関係に含まれる。なお、外的関係の扱いには、複数の付加的アプローチ又は代替アプローチを利用可能である。
【０１１２】
有利な実施例では、外的関係が破壊され、すなわち、各オブジェクトが相互に切り離される。従属性のオブジェクトの扱いはドメイン特有の要求に応じて変化する。例えば、従属性のオブジェクトが先行オブジェクトに対する関係を有さなくても存在することができ、当該従属性のオブジェクトが主たるオブジェクトとなるケースもあるし、従属性のオブジェクトは先行体に対する関係を有さないかぎり存在することができず、当該従属性のオブジェクトが消去されるケースもある。また、ドメイン特有の要求にしたがって従属性のオブジェクトを別様に処理することもできる。外的関係はステップ２２１４で切り離される。
【０１１３】
別の実施例として、ユーザに通知して、先行オブジェクトを変換すべきオブジェクトのリストに追加する機会を提供することができる。さらに別の実施例として、ユーザへの通知は行っても行わなくてもよいが、先行オブジェクトを変換すべきオブジェクトのリストへ自動で追加してもよい。エンタープライズエンジニアリングシステムは、いずれかの動作を選択するための、ユーザ選択可能なパラメータ又はアドミニストレータ選択可能なパラメータを含むことができる。
【０１１４】
ステップ２２１６で、現在パーティションの各オブジェクトが変換される。所定のパーティションのオブジェクトは所定の順序で変換される。現在パーティションの全てのオブジェクトの変換が成功すると、凍結されていたオブジェクトが解凍される。変換されたオブジェクトを表すデータは、図２１のステップ２１０６に示されているように、データベースに記録される。全ての操作が成功すると、当該パーティションのオブジェクトのステータスは「変換済」へセットされる。
【０１１５】
変換グラフ
変換グラフデータ構造が形成され、各パーティションの処理に利用されるが、当該パーティションが処理されるとデータ構造の割り当ては解除される。変換グラフデータ構造は、当該パーティションが変換されている間、各オブジェクトへの参照子及び各オブジェクトの関係への参照子を記憶している。図２３には変換グラフデータ構造２３００の例が概略図で示されている。変換グラフデータ構造２３００は、値部分２３０２と関係部分２３０４との２つの部分を含んでいる。
【０１１６】
値部分２３０２は、図２４に示されているように、個々の値エントリのアレイを含む。値エントリはそれぞれ１つのオブジェクトを表している。各値エントリは値エントリのアレイへのインデックスによってユニークに識別可能である。各値エントリは、図２５に示されているように、ソースパーティション、フラグ、オブジェクトポインタを含む複数のフィールドを有している。ソースパーティションは対応するオブジェクトに関連するパーティションを表している。ソースパーティションの取り得る値として、「先行体」「現在」「後続体」「無し」が挙げられる。オブジェクトポインタは一度メモリにロードされたオブジェクトを指示する。
【０１１７】
形成されうるフラグを表５に挙げる。ここに示されているように、変換グラフデータ構造２３００はパーティションごとに形成される。当該パーティションの全てのオブジェクトのＯＩＤが変換グラフデータ構造２３００の対応するエントリへ入力される。これらのＯＩＤは、対応するオブジェクトをメモリへロードする（オブジェクトをバインドする）ために用いられる。各オブジェクトに対して「変換」フラグがセットされ、当該オブジェクトが変換されるべきことが表示される。さらに、それぞれの初期オブジェクトに対して「初期」フラグがセットされる。
【０１１８】
【表５】
2015510638.tif 000007
【０１１９】
図２３の変換グラフの関係部分２３０４も個々のエントリのアレイを含み、各エントリはインデックスによりユニークに識別される。各関係のエントリは２つのオブジェクト間の関係を表しており、図２６に示されているように、関係ポインタのフィールドと、当該エントリによって表される関係を有する２つのオブジェクトに対する２つのインデックス（起点インデックス及び終点インデックス）のフィールドとを含む。起点インデックスのフィールドは、関係の起端のオブジェクトの値エントリに対するアレイ２３０２に付されるインデックスを含む。終点インデックスのフィールドは、関係の終端のオブジェクトの値エントリに対するアレイ２３０２に付されるインデックスを含む。関係ポインタのフィールドは、メモリにロードされた関係を指示するポインタを含む。
【０１２０】
変換グラフデータ構造２３００内のＯＩＤによって表されるオブジェクトの先行オブジェクト及び後続オブジェクトを含むパーティションも同様にメモリへバインドされ、各オブジェクトのＯＩＤが変換グラフデータ構造２３００に追加される。こうしたオブジェクトのそれぞれに対して、「初期」フラグと（場合に応じて）「先行体」フラグ又は「後続体」フラグのいずれかとがセットされる。しかし、これらのオブジェクトは現在パーティションのオブジェクトと一緒には変換されないため、「変換」フラグはセットされない。先行オブジェクトは既に先のトランザクションにおいて変換されており、後続オブジェクトは後のトランザクションにおいて変換されるものである。これらの情報が変換グラフデータ構造２３００に格納され、オブジェクトを凍結するため又はその他の目的に用いられる。
【０１２１】
変換グラフデータ構造２３００に初期的に表されているオブジェクトは、ユーザによって選択された設計オブジェクトである。ただし、設計オブジェクトの幾つかもしくは全ては、下位オブジェクトを含みうる。現在パーティション内の変換すべきオブジェクトの下位にあるオブジェクトも、現在パーティションにおいて変換されなければならない。これらのオブジェクトがメモリにバインドされ、（ａ）下位オブジェクトが書き込みアクセス可能であるかを検査するため、又は、（ｂ）他のオブジェクトとの外的関係を識別して、必要に応じて当該外的関係を切り離すため、又は、（ｃ）下位オブジェクトを変換するために、下位オブジェクトに関する情報が変換グラフデータ構造２３００に追加される。
【０１２２】
プロパゲーションプロセスでは、下位オブジェクトが変換グラフデータ構造２３００に追加される。追加すべき下位オブジェクトを識別するために、変換グラフデータ構造２３００内のオブジェクトの全ての関係が探索される。各タイプの関係は、変換グラフデータ構造２３００がどのように拡大されるかを定めたメタデータを含む。所定の設計オブジェクトを形成するための図３のタスク３０２−３０６は、それぞれ、オブジェクトに関連する関係と当該関係を表すメタデータの設定とを行うためのものである。図３のコアプラットフォーム３０１は、当該メタデータを利用するので、当該関係又は設計オブジェクトに関する特別な情報を予め既知とするように構成される必要はない。
【０１２３】
変換グラフデータ構造２３００における関係部分２３０４内の関係のエントリは、オブジェクトがクラスを有するのと同様に、タイプを有する。各関係のタイプ（関係の定義とも称される）は一連の特性を有する。これらの特性を表６に挙げる。
【０１２４】
【表６】
2015510638.tif 000008
【０１２５】
表７には表６に挙げた特性の取り得る値がまとめられている。
【０１２６】
【表７】
2015510638.tif 000009
【０１２７】
フラグフィールドに変換フラグがセットされると、表８によってプロパゲーションが制御される。
【０１２８】
【表８】
2015510638.tif 000010
【０１２９】
接続オブジェクトは、どの設計オブジェクトにも属さず、各設計オブジェクトを接続するために設計オブジェクト間に存在する。接続オブジェクトは、２つの設計オブジェクトを接続する際に形成され、２つのオブジェクトを切り離す際に消去される。接続オブジェクトは内的でも外的でもない。表８のアスタリスク（＊）は接続オブジェクトのこうした特別な扱いを表している。
【０１３０】
「先行体」フラグ又は「後続体」フラグがフラグフィールドにセットされると、表９によってプロパゲーションが制御される。
【０１３１】
【表９】
2015510638.tif 000011
【０１３２】
ターゲットオブジェクトが変換グラフデータ構造２３００に追加されると、現在オブジェクトとターゲットオブジェクトとの関係も同様に変換グラフデータ構造２３００に追加される。
【０１３３】
変換グラフデータ構造２３００を通って所定のオブジェクトにいたる関係の経路は複数存在するが、１つのオブジェクトが２回以上変換グラフデータ構造２３００に追加されることはない。ただし、１つのオブジェクトに第２の経路又は後続の経路が形成されてフラグが更新されることはある。例えば、或るオブジェクトが最初に変換グラフデータ構造２３００に追加されたときには、当該オブジェクトのフラグはセットされないが、プロパゲーションの後のフェーズにおいて、同じオブジェクトが先行オブジェクト又は後続オブジェクトとなった場合には、ケースに応じて「先行体」フラグ及び／又は「後続体」フラグがセットされる。
【０１３４】
上述したように、現在パーティションのオブジェクトの下位オブジェクトがメモリにバインドされると、当該下位オブジェクトのアクセス制御が検査される。下位オブジェクトがリードオンリーである場合、当該パーティションはリードオンリーオブジェクトを含むものとしてマークされ、パーティションの処理は終了し、当該パーティションに対して「リードオンリーオブジェクトにより失敗」というトランザクションステータスがセットされる。
【０１３５】
変換プロパゲーション特性値「外部オブジェクトへの拡大」又は「接続オブジェクトへの拡大」は、関係が設計オブジェクト間で交差しており、切り離しの候補となることを表している。当該関係の２つの設計オブジェクトのうち一方のみが変換に対して選択される場合、当該関係は切り離されなければならない。上述したように、他の実施例として、他のタイプの処理を行ってもよい。
【０１３６】
上述したように、インデックスフィールドは、変換グラフデータ構造２３００の起点オブジェクトのエントリ及び終点オブジェクトへのエントリへのインデックスを含む。関係を切り離すべきか否かを判別するために、当該関係の両端のフラグ値が検査される。「変換」フラグが関係の一方端部にセットされている場合、対応するオブジェクトは現在パーティションの変換中に変換されるべきである。当該関係の他方端部に「変換」「先行体」「後続体」のいずれのフラグもセットされていない場合、反対側端部のオブジェクトは、変換されておらず、現在操作中には変換されないオブジェクトである。この場合には関係は切り離されなければならない。ここでの法則を表１０に示す。
【０１３７】
【表１０】
2015510638.tif 000012
【０１３８】
上述したように、各オブジェクトクラスは図３のタスク３０２−３０６によって定義される。つまり、タスク３０２−３０６によってオブジェクト変換法が定められる。変換グラフデータ構造２３００における「変換」フラグがセットされた各オブジェクトに対して、オブジェクト変換法が呼び出される。
【０１３９】
従属性を計算する前に、後続パーティションのオブジェクト、すなわち、「後続体」フラグがセットされたオブジェクトは、現在パーティションのオブジェクトの変換の結果として再計算されてしまうことを防止するために、凍結される。後のトランザクションでは、後続パーティションのオブジェクトが変換され、変換ステップの一部において、オブジェクトの値が再計算される。各オブジェクトはオブジェクトの凍結法及び解凍法を含む。
【０１４０】
各オブジェクトが変換された後、関数従属性が計算される。修正された全てのオブジェクトに対して従属性関数が呼び出される。これらの関数のうち幾つかは、現在パーティション内の他の（従属性の）オブジェクトを更新する。現在パーティションのオブジェクトは書き込み可能なので、更新を行うことができる。それ以外の従属性関数は後続パーティションのオブジェクトを更新しようとするが、後続オブジェクトは凍結されており、その結果、これらの後続パーティションのオブジェクトは現在パーティションのオブジェクトに対して“旧式”となる。こうした各旧式オブジェクトに対してトゥドゥレコードが形成される。全ての変更が図３のデータベース３１６に記録される。
【０１４１】
典型的には、旧式オブジェクトは、現在パーティションの変換が完了した後ただちに、所定のパーティションで変換される。つまりトゥドゥレコードは、典型的には、形成された後ただちに処理されて消去される。しかし、例えばユーザのキャンセル制御、又は、ハードウェアもしくはソフトウェアのエラーによる大きな幾何学的変換が割り込んだ場合、トゥドゥレコードは、リスタート時にどの操作を実行すべきかを表示する。
【０１４２】
上述したように、操作のリスタートを可能にするために、操作オブジェクトが形成される。さらに、オブジェクトのソースリストが区分された後、各パーティションを表すパーティションオブジェクトが形成される。ここで、操作オブジェクトとパーティションオブジェクトとの間に関係が形成される。さらに、各パーティションオブジェクトとその先行パーティションオブジェクト乃至その後続パーティションオブジェクトとの間にそれぞれ関係が形成される。各パーティションが処理されている間、対応するパーティションオブジェクトはメモリへバインドされ、トランザクション結果の特性を表すトランザクション結果値が表１１に示されているように更新される。
【０１４３】
【表１１】
2015510638.tif 000013
【０１４４】
失敗した先行パーティションが発見された場合、又は、現在パーティションにリードオンリーオブジェクトが発見された場合、表１１にしたがって、対応するトランザクション結果値がセットされる。一方、現在パーティションのオブジェクトの変換が成功した場合には、トランザクション結果値は「成功」にセットされる。修正されたオブジェクトが有効にデータベースに記録されると、当該パーティションに対する処理が完了したとされる。また、データベースへの記録が失敗すると、トランザクション結果値は「失敗」にセットされる。
【０１４５】
大きな幾何学的変換が完了せず失敗すると、操作及びパーティションオブジェクトが操作の現在状態を記録する。典型的には、操作のリスタート前に、エラーサーバをリスタートする、又は、リードオンリーオブジェクトを書き込み可能にするなど、ユーザによる何らかの補正動作が行われる。リスタートは新たな幾何学的変換の開始と同様に開始される。新たな幾何学的変換を開始するソフトウェアは、先の変換操作のステータス確認をデータベースへ問い合わせることによって、すなわち、操作及びパーティションオブジェクトのクエリによって、開始される。各変換操作は、図７の操作名フィールド７０４を介してユーザによって名づけることができる。幾何学的変換を開始するためのユーザインタフェースにより、先に開始された操作のリストが表示されるので、ユーザはリスタートすべき失敗した操作を選択できる。
【０１４６】
操作がリスタートされると、操作オブジェクトとリスタートされた操作の全てのパーティションオブジェクトとがメモリへバインドされ、処理は第１の未処理パーティションから再開される。トランザクション結果値「成功」又は「失敗」を有するパーティションはスキップされる。他のパーティションも上述したように処理される。「失敗」のパーティションは、データに付随する問題を表すが、これはユーザが制御できない問題である。リードオンリーデータなどのユーザが制御できる問題は「失敗」とはマークされない。「失敗」した操作はユーザが修正できないことから、「失敗」したパーティションの再処理を許可しても益は殆どない。
【０１４７】
操作オブジェクト及びパーティションオブジェクトは、対応する操作が成功して完了した後も、必要に応じて履歴記録を形成できるよう、データベース内に保持される。履歴が形成されると、オブジェクトは消去可能となる。
【０１４８】
以下に、上述した装置及び方法の動作を説明するための仮定の実施例を説明する。この実施例は、説明を理解しやすくするために、任意の少数のオブジェクトを含むものとする。ただし、実施例の基本方式は多数のオブジェクトの場合にも適用可能である。
【０１４９】
この実施例には、図２７に概略的に示されているように、相互に関連する５つの設計オブジェクト、すなわち、ポンプ、パイプ、柱、梁、パイプハンガが含まれる。パイプはポンプ上のノズルに接続されている。パイプはパイプハンガによって支持されている。パイプハンガは梁に取り付けられている。梁は柱に接続されている。ポンプ以外の、ユーザが特定した全てのオブジェクトが１００ｍ東へ移動されるものとする。またユーザは全てのオブジェクトに対して書き込みアクセスを行うものとする。
【０１５０】
変換プロセスは、各設計オブジェクトの全ての先行体を識別するステップを含む。ポンプはパイプの先行体であるが、移動されないため、先行グラフには出現しない。柱は接続された梁の先行体である。梁及びパイプは双方ともパイプハンガの先行体である。
【０１５１】
先行グラフは各設計オブジェクト（パイプハンガ等）の先行オブジェクトのリストから形成される。図２８には図２７の各オブジェクトに対応する先行グラフの概略図が示されている。矢印は各設計オブジェクトの先行体を指している。
【０１５２】
先行グラフのノードは、先行体が後続体よりも前方に出現するよう、線形の順序でソートされる。このことは図２９に示されている。その後、各パーティションが特定の順序で処理される。各パーティションの処理が完了すると、修正されたオブジェクトがデータベースに記録される。各パーティションは個別のアトミックなトランザクションで変換される。以下にここでの各トランザクションを詳細に説明する。
【０１５３】
トランザクション１はパーティション１のオブジェクトの移動を含み、ここでは図３０に概略的に示されている以下のような操作が行われる。つまり、パーティション１はトランザクション１中の現在パーティションである。現在パーティションの初期オブジェクト（柱）と後続パーティションの初期オブジェクト（梁）とがメモリへロードされ、変換グラフへ追加される。次に、変換グラフがプロパゲーションによって拡大され、各初期オブジェクト（梁，柱）のプロパゲーションによって各下位オブジェクト（柱の端部ポート１及び端部ポート２及び物理的パーツ，梁の端部ポート１及び端部ポート２及び物理的パーツ）がメモリへバインドされ、変換グラフへ結合される。外的関係は識別されない。よって、切り離される関係は存在しない。ついで、柱及びその下位オブジェクト（端部ポート１及び端部ポート２及び物理的パーツ）が変換される（１００ｍ東へ移動される）。後続パーティション（このケースでは唯一の後続パーティションであるパーティション２）の各オブジェクトは凍結されている。つまり、梁及びその下位オブジェクト（端部ポート１及び端部ポート２及び物理的パーツ）は凍結されている。ここで、関数従属性が計算される。ただし、梁及びその下位オブジェクトは凍結されているので、これらは再計算されない。そして、修正（変換）された柱オブジェクト及びその下位オブジェクトがデータベースへ記録される。
【０１５４】
トランザクション２は、図３１に概略的に示されている、パーティション２のオブジェクトの移動を含む。パーティション２はトランザクション２中の現在パーティションである。現在パーティションの初期オブジェクト（梁）と先行パーティション（パーティション１）の初期オブジェクト（柱）と後続パーティション（パーティション４）の初期オブジェクト（パイプハンガ）とがメモリへロードされ、変換グラフへ追加される。なお、パイプハンガオブジェクトは現在パーティションのオブジェクト（梁）に従属するので、後続パーティションがパーティション４となることに注意されたい。次に、変換グラフがプロパゲーションによって拡大され、各初期オブジェクト（梁，柱，パイプハンガ）のプロパゲーションによって各下位オブジェクト（柱の端部ポート１及び端部ポート２及び物理的パーツ，梁の端部ポート１及び端部ポート２及び物理的パーツ及び端面ポート，パイプハンガの構造ポート及びパーツ１及びパーツ２及び配管ポート）がメモリへバインドされ、変換グラフへ結合される。外的関係は識別されない。よって、切り離される関係は存在しない。ついで、梁及びその下位オブジェクト（端部ポート１及び端部ポート２及び物理的パーツ及び端面ポート）が変換される（１００ｍ東へ移動される）。後続パーティション（このケースでは唯一の後続パーティションであるパーティション４）の各オブジェクトは凍結されている。つまり、パイプハンガ及びその下位オブジェクト（構造ポート及びパーツ１及びパーツ２及び配管ポート）は凍結されている。ここで、関数従属性が計算される。ただし、パイプハンガ及びその下位オブジェクトは凍結されているので、これらは再計算されない。そして、修正（変換）された梁オブジェクト及びその下位オブジェクトがデータベースへ記録される。
【０１５５】
トランザクション３は、図３２に概略的に示されている、パーティション３のオブジェクトの移動を含む。パーティション３はトランザクション３中の現在パーティションである。現在パーティションの初期オブジェクト（パイプ）と後続パーティション（パーティション４）の初期オブジェクト（パイプハンガ）とがメモリへロードされ、変換グラフへ追加される。当該現在パーティションは先行パーティションを有さない。次に、変換グラフがプロパゲーションによって拡大され、各初期オブジェクト（パイプ，パイプハンガ）のプロパゲーションによって各下位オブジェクト（パイプの端部フィーチャ及びフランジ及び接続部及び直線状フィーチャ及び直線状パイプ及び端部フィーチャ，パイプハンガの構造ポート及びパーツ１及びパーツ２及び配管ポート）がメモリへバインドされ、変換グラフへ結合される。ポンプのノズルとパイプの接続部オブジェクトとの関係３２４０は、外的関係として識別されるため、切り離される。ついで、パイプ及びその下位オブジェクト（端部フィーチャ及びフランジ及び接続部及び直線状フィーチャ及び直線状パイプ及び端部フィーチャ）が変換される（１００ｍ東へ移動される）。後続パーティション（パーティション４）の各オブジェクトは凍結されている。つまり、パイプハンガ及びその下位オブジェクト（構造ポート及びパーツ１及びパーツ２及び配管ポート）は凍結されている。ここで、関数従属性が計算される。ただし、パイプハンガ及びその下位オブジェクトは凍結されているので、これらは再計算されない。そして、修正（変換）されたパイプオブジェクト及びその下位オブジェクトがデータベースへ記録される。
【０１５６】
トランザクション４は、図３３に概略的に示されている、パーティション４のオブジェクトの移動を含む。パーティション４はトランザクション４中の現在パーティションである。現在パーティションの初期オブジェクト（パイプハンガ）と先行パーティション（パーティション２，パーティション３）の初期オブジェクト（梁，パイプ）とがメモリへロードされ、変換グラフへ追加される。当該現在パーティションは後続パーティションを有さない。次に、変換グラフがプロパゲーションによって拡大され、各初期オブジェクト（パイプハンガ，梁，パイプ）のプロパゲーションによって各下位オブジェクト（パイプハンガの構造ポート及びパーツ１及びパーツ２及び配管ポート，梁の端部ポート１及び端部ポート２及び物理的パーツ及び端面ポート，パイプの端部フィーチャ及びフランジ及び接続部及び直線状フィーチャ及び直線状パイプ及び端部フィーチャ）がメモリへバインドされ、変換グラフへ結合される。外的関係は識別されない。よって、切り離される関係は存在しない。ついで、パイプハンガ及びその下位オブジェクト（構造ポート及びパーツ１及びパーツ２及び配管ポート）が変換される（１００ｍ東へ移動される）。ここでは後続パーティションが存在しないので、オブジェクトを凍結する必要はない。ここで、関数従属性が計算される。そして、修正（変換）されたパイプハンガオブジェクト及びその下位オブジェクトがデータベースへ記録される。
【０１５７】
トランザクション１−４の結果として、選択された各オブジェクトが移動される。ポンプオブジェクトは変換に対して選択されたものではないので、パイプから切り離されている。
【０１５８】
図３４Ａ，図３４Ｂのフローチャートには、本発明の実施例による、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換する計算方法が示されている。複数のオブジェクトのうち少なくとも１つのオブジェクトは他のオブジェクトの先行体である。ステップ３４００で、変換すべきオブジェクトを選択し、かつ変換のタイプ、例えば移動、回転などを指示するユーザ入力が受信される。ステップ３４０２では、選択された各オブジェクトにつき、先行オブジェクトが自動的に特定される。ステップ３４０４では、選択されたオブジェクトに関連する外部オブジェクトが存在するか否かが判別され、存在する場合には、制御がステップ３４０６へ移行し、関係が切り離される。
【０１５９】
ステップ３４０８で、各オブジェクトの先行オブジェクトが（存在する場合）同一パーティション内又は先行パーティション内に存在するように、選択されたオブジェクトがオブジェクトの順序パーティションへ自動的に分配される。ステップ３４１０で先行グラフが形成される。ステップ３４１２で、ループが順次の実行を開始し、各パーティションについて一通り処理を行う。ステップ３４１４で、当該パーティションの幾何学的変換をリスタートするのに充分なように、当該パーティションに関する情報が記憶される。ステップ３４１６では、下位オブジェクトの探索が行われる。当該パーティション内のオブジェクトの下位に当たるオブジェクトが見出されると、制御はステップ３４１８へ移行し、下位オブジェクトが当該パーティションへ追加される。ステップ３４２０では、当該パーティションの各オブジェクトがユーザによって指示された変換タイプにしたがって幾何学的変換される。オブジェクトが後続オブジェクトを有する場合、当該パーティションの各オブジェクトにつき、ステップ３４２２で各後続オブジェクトがリードオンリーとされる。同様に、当該パーティションのオブジェクトが先行オブジェクトを有する場合、ステップ３４２４で各先行オブジェクトがリードオンリーとされる。一時的な形成されたオブジェクトにつき、ステップ３４２６でトゥドゥアイテムが形成される。
【０１６０】
ステップ３４２８で処理すべきパーティションが残っている場合には、制御はステップ３４２４へ戻り、残っていない場合には、制御はステップ３４３０へ移行する。ステップ３４３０で、一時的にリードオンリーとされたオブジェクトが変換されている場合には、制御はステップ３４３４へ移行し、そこで、当該オブジェクトに対応するトゥドゥアイテムが消去される。
【０１６１】
図３５には、オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、本発明の１つの実施形態によるシステムのブロック図が示されている。それら複数のオブジェクトのうち少なくとも１つのオブジェクトは、複数のオブジェクトのうち別のオブジェクトの先行体である。このシステムは、ユーザからの第１の入力を受信するように構成されたユーザインタフェース３５００を有している。この入力によって、幾何学的変換すべき複数のオブジェクトが選択される。ユーザインタフェース３５００は、ユーザからの第２の入力も受信するように構成されており、この第２の入力は、選択されたオブジェクトにおいて実行すべき幾何学的変換のタイプを表す。ユーザインタフェース３５００には、識別モジュール３５０２が接続されている。識別モジュール３５０２は、選択されたオブジェクトごとに、選択されたオブジェクトに対応する先行オブジェクトを自動的に特定するように構成されており、つまりこの場合、選択されたオブジェクトの少なくとも１つのパラメータの値は、先行オブジェクトの少なくとも１つのパラメータに関数従属する。さらに識別モジュール３５０２にはパーティショニングモジュール３５０４が接続されており、このモジュールは、選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割するように構成されている。ここで定められたオブジェクトに関して、そのオブジェクトの先行オブジェクト各々は、定められたオブジェクトと同一のパーティション内又は先行パーティション内にある。パーティション情報を、パーティションリスト３５０５又は他の何らかの適切な記憶媒体に格納しておくことができる。
【０１６２】
パーティションモジュール３５０４には変換モジュール３５０６が接続されており、このモジュールは、指示されたタイプの幾何学的変換に従って、オブジェクトを幾何学的変換するように構成されている。変換モジュール３５０６は、パーティションごとにパーティションの順序で、オブジェクトを変換する。変換モジュール３５０６には凍結モジュール３５０８が接続されており、このモジュールは、パーティション単位をベースに、パーティション内における各オブジェクトの後続オブジェクトを一時的にリードオンリーにし、パーティション内における各オブジェクトの先行オブジェクトを一時的にリードオンリーにするように構成されている。一時的にリードオンリーにされたオブジェクト各々について、凍結モジュール３５０８は、対応するトゥドゥ（To-Do）アイテムをトゥドゥリスト３５１０内に生成するように構成されている。変換モジュール３５０６にはクリーンアップモジュール３５１２が接続されている。クリーンアップモジュール３５１２は、一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたとき、対応するトゥドゥアイテムを削除するように構成されている。
【０１６３】
識別モジュール３５０２には、プロパゲーションモジュール３５１４が接続されている。プロパゲーションモジュール３５１４は、パーティションごとに、パーティション内のオブジェクトのうち下位のオブジェクトを識別するように構成されている。識別モジュール３５０２は、識別された下位のオブジェクトをパーティションに加える。変換モジュール３５０６は、指示されたタイプの幾何学的変換に従って、加えられた下位のオブジェクトを幾何学的変換するように構成されている。
【０１６４】
変換モジュール３５０６には、プロセスコントロールモジュール３５１６が接続されており、このモジュールは、少なくとも２つのパーティションをパーティション順序で処理するように構成されている。さらにプロセスコントロールモジュール３５１６は、パーティションごとに、パーティションに関する情報を保存するように構成されている。保存される情報には、パーティション内のオブジェクトの幾何学的変換をリスタートするのに十分な情報が含まれている。これらの情報を、オブジェクトデータベース３５１８又は他の何らかの適切な記憶媒体に保存することができる。プロセスコントロールモジュール３５１６は、次のパーティションの処理前に変換モジュール３５０６に対し、指示されたタイプの幾何学的変換に従って、パーティション内のオブジェクトの幾何学的変換も行わせる。
【０１６５】
パーティショニングモジュール３５０４は、先行体グラフ３５２０を生成する。このグラフは、選択された各オブジェクトを選択されたオブジェクトの先行体オブジェクトすべてに関連づけるものである。
【０１６６】
プルーニングモジュール３５２２は、選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別するように構成されている。プルーニングモジュール３５２２は、識別された外部のオブジェクトと選択されたオブジェクトとの間の関係を切り離す。
【０１６７】
オブジェクトデータベース３５１８、パーティションリスト３５０５及び先行体グラフ３５２０は、ここでは別々のデータベースとして描かれているけれども、これらの要素を、リレーショナルデータベース内のテーブル、インメモリデータ構造、非リレーショナルのデータベースファイル等のように、適切な形態で記憶させることができる。さらにこれらの要素のいくつか又はすべてを、単一のデータストアとして組み合わせることもできるし、あるいは他の要素内のフィールド、ポインタ、値等としてインプリメントすることもできる。
【０１６８】
記憶装置に格納された適切な命令を実行するプロセッサを含むコンピュータシステムによって、既述の方法を実施することができ、既述のシステムをインプリメントすることができる。多数のオブジェクトを幾何学的変換するための装置は、記憶装置に格納された命令によって制御されるプロセッサを含むものとして説明してきた。この場合、記憶装置を、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、又は他の何らかのメモリ、あるいはそれらの組み合わせとすることができ、制御ソフトウェア又は他の命令ならびにデータの記憶に適したものとすることができる。変換方法及び変換装置によって実行される機能のいくつかについては、フローチャート及び／又はブロック図を参照しながら説明してきた。各ブロック又はそれらのブロックの組み合わせ、フローチャート又はブロック図におけるすべて又は一部分の機能、動作、決定等を、コンピュータプログラム命令、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの組み合わせとして実現できることは、当業者であれば容易に理解できる。さらに当業者であれば、本発明の機能を規定する命令又はプログラムを様々な形態でプロセッサに供給できることも、容易に理解することができる。そのような形態に含まれるものとして、ここで挙げる形態に限定されるものではないが、有形の非一時的かつ書き込み不可能な記憶媒体（例えばＲＯＭのようなコンピュータ内部のリードオンリーメモリデバイス、あるいはＣＤ−ＲＯＭディスク又はＤＶＤディスクのようにコンピュータＩ／Ｏ接続機構により読み取り可能なデバイス）に永続的に格納された情報、有形の非一時的かつ書き込み可能な記憶媒体（例えばフロッピーディスク、リムーバルフラッシュメモリ及びハードドライブ）に変更可能な状態で格納された情報、あるいは有線又はワイヤレスのコンピュータネットワークを含む通信媒体を介してコンピュータに伝送される情報、が含まれる。さらに述べておくと、本発明はソフトウェアによって実現することができるけれども、本発明の実現に必要とされる機能の一部又は全体を、オプションとして又は別の選択肢として、ファームウェア及び／又はハードウェアコンポーネントを利用して実現することができ、例えば組み合わせ論理素子、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はその他のハードウェア、あるいはハードウェア、ソフトウェア及び／又はファームウェアコンポーネントの何らかの組み合わせ、を利用して実現することができる。
【０１６９】
これまで既述の実施形態を通して本発明を説明してきたが、ここで開示した本発明のコンセプトを逸脱することなく、例示した実施形態に変更を加えたり、それらの実施形態を変形したりすることができるのは、当業者に自明である。例えば、変換メカニズムのいくつかの観点について、フローチャートを参照しながら説明してきたけれども、各ブロック、それらのブロックの組み合わせ、フローチャートのすべて又は一部分の機能、動作、決定等を組み合わせたり、別々のオペレーションに分けたり、あるいは別の順序で実行したりすることができることは、当業者に容易に理解でできる。さらに、種々の例示的なデータ構造と関連させて実施形態を説明したが、多様なデータ構造を利用してシステムを実現できることは、当業者にとって自明である。しかも、開示した観点又はそれらの観点の一部分を、上記以外のやり方で組み合わせることができる。したがって本発明を、ここで開示した実施形態に限定されるものであると見なすべきではない。
【図１】
2015510638.tif 000014
【図２】
2015510638.tif 000015
【図３】
2015510638.tif 000016
【図４】
2015510638.tif 000017
【図５】
2015510638.tif 000018
【図６】
2015510638.tif 000019
【図７】
2015510638.tif 000020
【図８】
2015510638.tif 000021
【図９】
2015510638.tif 000022
【図１０】
2015510638.tif 000023
【図１１】
2015510638.tif 000024
【図１２】
2015510638.tif 000025
【図１３】
2015510638.tif 000026
【図１４】
2015510638.tif 000027
【図１５】
2015510638.tif 000028
【図１６】
2015510638.tif 000029
【図１７】
2015510638.tif 000030
【図１８】
2015510638.tif 000031
【図１９】
2015510638.tif 000032
【図２０】
2015510638.tif 000033
【図２１】
2015510638.tif 000034
【図２２】
2015510638.tif 000035
【図２３】
2015510638.tif 000036
【図２４】
2015510638.tif 000037
【図２５】
2015510638.tif 000038
【図２６】
2015510638.tif 000039
【図２７】
2015510638.tif 000040
【図２８】
2015510638.tif 000041
【図２９】
2015510638.tif 000042
【図３０】
2015510638.tif 000043
【図３１】
2015510638.tif 000044
【図３２】
2015510638.tif 000045
【図３３】
2015510638.tif 000046
【図３４Ａ】
2015510638.tif 000047
【図３４Ｂ】
2015510638.tif 000048
【図３５】
2015510638.tif 000049
【手続補正書】
【提出日】平成26年9月2日(2014.9.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを幾何学的変換するための、コンピュータにより実施される方法であって、前記複数のオブジェクトのうち少なくとも１つのオブジェクトは、前記複数のオブジェクトのうち他のオブジェクトの先行体である方法において、
プロセッサにより実行される以下のオペレーションを含み、すなわち、
幾何学的変換すべき複数のオブジェクトを選択したユーザからの入力と、選択された該オブジェクトにおいて実施すべき幾何学的変換のタイプの指示とを受信するオペレーションと、
前記選択されたオブジェクトの少なくとも１つのパラメータの値は、先行オブジェクトの少なくとも１つのパラメータに関数従属しており、該選択されたオブジェクト各々について、前記複数のオブジェクトの中から、該選択されたオブジェクトの先行オブジェクトを自動的に特定するオペレーションと、
前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割して、いずれの既定のオブジェクトについても、該既定のオブジェクトの先行オブジェクト各々が、該既定のオブジェクトと同一のパーティション及び先行のパーティションのうち、少なくとも一方のパーティション内にあるようにするオペレーションと、
を含むことを特徴とする、
コンピュータにより実施される方法。
【請求項２】
幾何学的変換のタイプの指示に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換する、
請求項１記載の方法。
【請求項３】
既定のパーティション内における前記オブジェクトの幾何学的変換中、
前記パーティション内の各オブジェクトの後続オブジェクトを、一時的にリードオンリーにし、かつ、
前記パーティション内の各オブジェクトの先行オブジェクトを、一時的にリードオンリーにする、
請求項２記載の方法。
【請求項４】
一時的にリードオンリーにされた各オブジェクトについて、対応するトゥドゥアイテムを生成し、
ついで、一時的にリードオンリーにされたオブジェクトのいずれかを変換したならば、前記対応するトゥドゥアイテムを削除する、
請求項３記載の方法。
【請求項５】
既定のパーティション内における前記オブジェクトの幾何学的変換中、
前記パーティション内におけるオブジェクトの下位のオブジェクトを識別し、
識別された該下位のオブジェクトを前記パーティションに追加し、
追加された該下位のオブジェクトを、幾何学的変換のタイプの指示に従い、幾何学的変換する、
請求項２記載の方法。
【請求項６】
前記パーティションのうち少なくとも２つのパーティションを、パーティションの順序に従い処理し、該処理において、
前記パーティションに関する情報を保存し、
次のパーティションを処理する前に、前記パーティション内のオブジェクトを、幾何学的変換のタイプの指示に従い幾何学的変換し、
前記保存した情報は、前記パーティション内のオブジェクトの幾何学的変換のリスタートに十分な情報を含んでいる、
請求項１記載の方法。
【請求項７】
前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割するオペレーションにおいて、
前記選択されたオブジェクト各々を、該選択されたオブジェクトのすべての先行オブジェクトに関連づける先行体グラフを生成する、
請求項１記載の方法。
【請求項８】
前記選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別し、
識別された外部のオブジェクトと前記選択されたオブジェクトとの関係を切り離す、
請求項１記載の方法。
【請求項９】
オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数のオブジェクトを、幾何学的変換するためのシステムであって、前記複数のオブジェクトのうち少なくとも１つのオブジェクトは、前記複数のオブジェクトのうち他のオブジェクトの先行体であるシステムにおいて、
ユーザインタフェースと、
該ユーザインタフェースに接続された識別モジュールと、
該識別モジュールに接続されたパーティショニングモジュールと
が設けられており、
前記ユーザインタフェースは、幾何学的変換すべき複数のオブジェクトを選択したユーザからの第１の入力を受信し、選択された該オブジェクトにおいて実行すべき幾何学的変換のタイプを指示したユーザからの第２の入力を受信するように構成されており、
前記識別モジュールは、選択されたオブジェクトごとに、該選択されたオブジェクトに対応する先行オブジェクトを自動的に特定するように構成されており、前記選択されたオブジェクトの少なくとも１つのパラメータの値は、前記先行オブジェクトの少なくとも１つのパラメータに関数従属し、
前記パーティショニングモジュールは、前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割するように構成されており、いずれの既定のオブジェクトについても、該既定のオブジェクトの先行オブジェクト各々が、該既定のオブジェクトと同一のパーティション及び先行のパーティションのうち、少なくとも一方のパーティション内にあるようにする、
ことを特徴とする、
複数のオブジェクトを幾何学的変換するためのシステム。
【請求項１０】
前記パーティショニングモジュールに変換モジュールが接続されており、
該変換モジュールは、指示されたタイプの幾何学的変換に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換する、
請求項９記載のシステム。
【請求項１１】
前記変換モジュールに凍結モジュールが接続されており、該凍結モジュールは、パーティション単位をベースに、
前記パーティション内における各オブジェクトの後続オブジェクトを一時的にリードオンリーにし、
前記パーティション内における各オブジェクトの先行オブジェクトを一時的にリードオンリーにする
ように構成されている、
請求項１０記載のシステム。
【請求項１２】
前記凍結モジュールは、一時的にリードオンリーにされた各オブジェクトごとに、対応するトゥドゥアイテムを生成するように構成されており、
さらに前記変換モジュールに接続されたクリーンアップモジュールを有しており、
該クリーンアップモジュールは、一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたならば、前記対応するトゥドゥアイテムを削除するように構成されている、
請求項１１記載のシステム。
【請求項１３】
前記識別モジュールに接続されたプロパゲーションモジュールが設けられており、該プロパゲーションモジュールは、各パーティションごとに、
前記パーティション内のオブジェクトの下位のオブジェクトを識別し、
識別された該下位のオブジェクトを前記パーティションに追加する
ように構成されており、
前記変換モジュールは、追加された該下位のオブジェクトを、指示されたタイプの幾何学的変換に従い幾何学的変換するように構成されている、
請求項１０記載のシステム。
【請求項１４】
前記変換モジュールに接続されたプロセスコントロールモジュールが設けられており、該プロセスコントロールモジュールは、少なくとも２つのパーティションをパーティション順序で処理するように構成されており、
該プロセスコントロールモジュールは、各パーティションごとに、
前記パーティションに関する情報を保存し、保存された該情報には、前記パーティション内のオブジェクトの幾何学的変換をリスタートするのに十分な情報が含まれ、
次のパーティションを処理する前に、前記変換モジュールに対し、指示されたタイプの幾何学的変換に従い、前記パーティション内のオブジェクトの幾何学的変換を行わせる
ように構成されている、
請求項９記載のシステム。
【請求項１５】
前記パーティショニングモジュールは、選択された各オブジェクトを選択されたオブジェクトのすべての先行オブジェクトに関連づける先行体グラフを生成するように構成されている、
請求項９記載のシステム。
【請求項１６】
プルーニングモジュールが設けられており、該プルーニングモジュールは、
前記選択されたオブジェクトのいずれかに関連づけられた少なくとも１つの外部のオブジェクトを識別し、
識別された外部のオブジェクトと前記選択されたオブジェクトとの関係を切り離す
ように構成されている、
請求項９記載のシステム。
【請求項１７】
オブジェクト指向エンタープライズエンジニアリングシステム内で表現された複数の先行オブジェクトと後続オブジェクトをコピーするために、コンピュータシステムにおいて実行するためのコンピュータ命令を含むコンピュータプログラムであって、各後続オブジェクトは、先行オブジェクトと先行関係を有する、
コンピュータプログラムにおいて、
前記命令がプロセッサにより実行されると、前記命令により該プロセッサに以下の手順を実行させる、すなわち、
幾何学的変換すべき複数のオブジェクトを選択したユーザからの入力と、選択されたオブジェクトにおいて実施すべき幾何学的変換のタイプの指示とを受信し、
前記選択されたオブジェクトの少なくとも１つのパラメータの値は、前記先行オブジェクトの少なくとも１つのパラメータに関数従属し、該選択されたオブジェクト各々について、前記複数のオブジェクトの中から、該選択されたオブジェクトの先行オブジェクトを自動的に特定し、
前記選択されたオブジェクトを、複数のオブジェクトから成る順序づけられた複数のパーティションに自動的に分割し、いずれの既定のオブジェクトについても、該既定のオブジェクトの先行オブジェクト各々が、該既定のオブジェクトと同一のパーティション及び先行パーティションのうち、少なくとも一方のパーティション内にあるようにする、
ことを特徴とする、
コンピュータプログラム。
【請求項１８】
前記命令により前記プロセッサに以下の手順を実行させる、すなわち、
幾何学的変換のタイプの指示に従い、複数のオブジェクトから成るパーティションごとにパーティションの順序で、前記オブジェクトを幾何学的変換する、
請求項１７記載のコンピュータプログラム。
【請求項１９】
前記命令により前記プロセッサに以下の手順を実行させる、すなわち、
前記パーティション内の各オブジェクトの後続オブジェクトを、一時的にリードオンリーにし、
前記パーティション内の各オブジェクトの先行オブジェクトを、一時的にリードオンリーにする、
請求項１８記載のコンピュータプログラム。
【請求項２０】
前記命令により前記プロセッサに以下の手順を実行させる、すなわち、
一時的にリードオンリーにされた各オブジェクトごとに、対応するトゥドゥアイテムを生成し、
一時的にリードオンリーにされたオブジェクトのいずれかが、その後、変換されたならば、前記対応するトゥドゥアイテムを削除する、
請求項１９記載のコンピュータプログラム。
【請求項２１】
前記命令により前記プロセッサに以下の手順を実行させる、すなわち、既定のパーティション内における前記オブジェクトの幾何学的変換中、
前記パーティション内におけるオブジェクトの下位のオブジェクトを識別し、
識別された該下位のオブジェクトを前記パーティションに追加し、
追加された該下位のオブジェクトを、幾何学的変換のタイプの指示に従い幾何学的変換する、
請求項１８記載のコンピュータプログラム。
【請求項２２】
請求項１７乃至２１のいずれか一項に記載のコンピュータプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【国際調査報告】
2015510638.tif 000050
2015510638.tif 000051
2015510638.tif 000052