(57)【要約】      （修正有）【課題】論理コンポーネント階層における競合を管理する、コンピュータ実装した方法を提供する。【解決手段】論理コンポーネント階層は、親コンポーネント及び親コンポーネントに関連する子コンポーネントを含む。方法は、メモリと通信するコンピュータデバイスを用いる。論理コンポーネント階層内において子コンポーネントを上書コンポーネントで置き換える要求をコンピュータデバイスによって判定するステップを有する。上書コンポーネントは、上書参照により親コンポーネントと対応付けられている。さらに、論理コンポーネント階層内において上書コンポーネントで子コンポーネントを置き換えるステップを有する。【選択図】図７
2015130161.tif 000002
【特許請求の範囲】
【請求項１】
上位コンポーネントと前記上位コンポーネントに対応付けられた下位コンポーネントを含む論理コンポーネント階層における競合を管理する、コンピュータ実装された方法であって、前記方法はメモリと通信するコンピュータデバイスを用い、前記方法は、
前記論理コンポーネント階層内において前記下位コンポーネントを上書コンポーネントにより置き換えるリクエストを前記コンピュータデバイスにより判定するステップであって、前記上書コンポーネントは上書参照により前記上位コンポーネントに対応付けられている、ステップ、
前記論理コンポーネント階層内において前記下位コンポーネントを前記上書コンポーネントにより置き換えるステップ、
を有することを特徴とする方法。
【請求項２】
前記上書コンポーネントと前記下位コンポーネントは、共通コンポーネントの異なるバージョンである
ことを特徴とする請求項１記載の方法。
【請求項３】
前記下位コンポーネントを置き換えるステップは、
前記下位コンポーネントと、前記下位コンポーネントに対応付けられた親コンポーネントとの間の関連を除去するステップ、
前記論理コンポーネント階層内において前記親コンポーネントに対して前記上書コンポーネントを取り付けるステップ、
を有することを特徴とする請求項１記載の方法。
【請求項４】
前記下位コンポーネントを置き換えるリクエストを判定するステップはさらに、
下位バージョン識別子を上書バージョン識別子と比較するステップであって、前記置き換えるリクエストは前記比較に基づき判定される、ステップを有する
ことを特徴とする請求項１記載の方法。
【請求項５】
前記論理コンポーネント階層はさらに、前記上位コンポーネントに対応付けられた他の下位コンポーネントを含み、
前記下位コンポーネントを置き換えるリクエストを判定するステップはさらに、
前記下位コンポーネントと前記他の下位コンポーネントとの間の競合を検出するステップを有する
ことを特徴とする請求項１記載の方法。
【請求項６】
前記方法は、前記論理コンポーネント階層内において前記上書参照を定義することにより前記上位コンポーネントを前記上書コンポーネントと対応付けるステップを有する
ことを特徴とする請求項１記載の方法。
【請求項７】
前記方法は、前記置き換えにおいて用いる前記上書コンポーネントを識別するステップを有し、前記識別するステップは、
前記下位コンポーネントの１以上の上位コンポーネントを、前記下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査するステップ、
前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ、
を有することを特徴とする請求項１記載の方法。
【請求項８】
上位コンポーネントと前記上位コンポーネントに対応付けられた下位コンポーネントを含む論理コンポーネント階層における競合を管理するコンピュータデバイスであって、前記コンピュータデバイスはメモリと通信するプロセッサを備え、前記メモリは前記論理コンポーネント階層を格納し、前記コンピュータデバイスは、
前記論理コンポーネント階層内において前記下位コンポーネントを上書コンポーネントにより置き換えるリクエストを前記コンピュータデバイスにより判定するステップであって、前記上書コンポーネントは上書参照により前記上位コンポーネントに対応付けられている、ステップ、
前記論理コンポーネント階層内において前記下位コンポーネントを前記上書コンポーネントにより置き換えるステップ、
を実行するようにプログラムされていることを特徴とするコンピュータ装置。
【請求項９】
前記上書コンポーネントと前記下位コンポーネントは、共通コンポーネントの異なるバージョンである
ことを特徴とする請求項８記載のコンピュータ装置。
【請求項１０】
前記下位コンポーネントを置き換えるステップは、
前記下位コンポーネントと、前記下位コンポーネントに対応付けられた親コンポーネントとの間の関連を除去するステップ、
前記論理コンポーネント階層内において前記親コンポーネントに対して前記上書コンポーネントを取り付けるステップ、
を有することを特徴とする請求項８記載のコンピュータ装置。
【請求項１１】
前記下位コンポーネントを置き換えるリクエストを判定するステップはさらに、
下位バージョン識別子を上書バージョン識別子と比較するステップであって、前記置き換えるリクエストは前記比較に基づき判定される、ステップを有する
ことを特徴とする請求項８記載のコンピュータ装置。
【請求項１２】
前記論理コンポーネント階層はさらに、前記上位コンポーネントの下位である他の下位コンポーネントを含み、
前記下位コンポーネントを置き換えるリクエストを判定するステップはさらに、
前記下位コンポーネントと前記他の下位コンポーネントとの間の競合を検出するステップを有する
ことを特徴とする請求項８記載のコンピュータ装置。
【請求項１３】
前記プロセッサは、前記論理コンポーネント階層内において前記上書参照を定義することにより前記上位コンポーネントを前記上書コンポーネントと対応付けるステップを実行するようにプログラムされている
ことを特徴とする請求項８記載のコンピュータ装置。
【請求項１４】
前記プロセッサは、前記置き換えにおいて用いる前記上書コンポーネントを識別するステップを実行するようにプログラムされており、前記識別するステップは、
前記下位コンポーネントの１以上の上位コンポーネントを、前記下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査するステップ、
前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ、
を有することを特徴とする請求項８記載のコンピュータ装置。
【請求項１５】
コンピュータ実行可能命令を格納した少なくとも１つのコンピュータ読取可能記憶媒体であって、前記コンピュータ読取可能命令は、少なくとも１つのプロセッサが実行することにより、前記プロセッサに、
前記論理コンポーネント階層内において前記下位コンポーネントを上書コンポーネントにより置き換えるリクエストを前記コンピュータデバイスにより判定するステップであって、前記上書コンポーネントは上書参照により前記上位コンポーネントに対応付けられている、ステップ、
前記論理コンポーネント階層内において前記下位コンポーネントを前記上書コンポーネントにより置き換えるステップ、
を実行させることを特徴とするコンピュータ読取可能記憶媒体。
【請求項１６】
前記上書コンポーネントと前記下位コンポーネントは、共通コンポーネントの異なるバージョンである
ことを特徴とする請求項１５記載のコンピュータ読取可能記憶媒体。
【請求項１７】
前記コンピュータ実行可能命令は前記プロセッサに、
前記下位コンポーネントと、前記下位コンポーネントに対応付けられた親コンポーネントとの間の関連を除去するステップ、
前記論理コンポーネント階層内において前記親コンポーネントに対して前記上書コンポーネントを取り付けるステップ、
を実行させることを特徴とする請求項１５記載のコンピュータ読取可能記憶媒体。
【請求項１８】
前記論理コンポーネント階層はさらに、前記上位コンポーネントの下位である他の下位コンポーネントを含み、
前記コンピュータ実行可能命令は前記プロセッサに、
前記下位コンポーネントを置き換えるリクエストを判定するステップにおいてさらに、前記下位コンポーネントと前記他の下位コンポーネントとの間の競合を検出するステップを実行させる
ことを特徴とする請求項１５記載のコンピュータ読取可能記憶媒体。
【請求項１９】
前記コンピュータ実行可能命令は前記プロセッサに、
前記論理コンポーネント階層内において前記上書参照を定義することにより前記上位コンポーネントを前記上書コンポーネントと対応付けるステップを実行させる
ことを特徴とする請求項１５記載のコンピュータ読取可能記憶媒体。
【請求項２０】
前記コンピュータ実行可能命令は、前記置き換えにおいて用いる前記上書コンポーネントを識別するステップを前記プロセッサに実行させ、前記識別するステップは、
前記下位コンポーネントの１以上の上位コンポーネントを、前記下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査するステップ、
前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ、
を有することを特徴とする請求項１５記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンポーネントの階層を管理することに関する。具体的には、参照関係を上書きしてコンポーネント階層内のサブコンポーネントを置き換えることに関する。
【背景技術】
【０００２】
大規模統合システム（特に回路）を設計し開発するとき、１つのエンジニアチームがシステムの全体設計に対して責任を負うことは通常ない。エンジニアチームはむしろ、システムのコンポーネントの設計に対して責任を負い、全体設計は各エンジニアチームが提供するコンポーネントの設計の総和となる。システムがより複雑になると、システムのより多くの部分がサブコンポーネントへ分割されることになる。親コンポーネントは複数のサブコンポーネントへ分割される。このコンポーネントとサブコンポーネントの関係は、全体システムを表す階層に関するものである。
【０００３】
開発者や設計者は、再利用可能なコンポーネントを構築する場合がある。これによりコンポーネント階層を設計し実装する時間を削減することができる。階層管理システムは、コンポーネントを再利用可能コンポーネントへリンクするため、階層参照（ｈｒｅｆｓ）を用いる場合がある。コンポーネント階層がより複雑になると、再利用コンポーネント間で競合が生じる可能性が高まる。この競合は、例えば製品内で複数のコンポーネントが同じ再利用コンポーネントを参照し、それぞれ異なるバージョンを参照している場合に生じる。
【発明の概要】
【課題を解決するための手段】
【０００４】
１実施形態において、論理コンポーネント階層における競合を管理する、コンピュータ実装した方法を提供する。前記論理コンポーネント階層は、親コンポーネント、および親コンポーネントに関連する子コンポーネントを含む。前記方法は、メモリと通信するコンピュータデバイスを用いる。前記方法は、前記論理コンポーネント階層内において前記子コンポーネントを上書コンポーネントで置き換える要求を前記コンピュータデバイスによって判定するステップを有する。前記上書コンポーネントは、上書参照により前記親コンポーネントと対応付けられている。前記方法はさらに、前記論理コンポーネント階層内において前記上書コンポーネントで前記子コンポーネントを置き換えるステップを有する。
【０００５】
１実施形態において、論理コンポーネント階層における競合を管理するコンピュータデバイスを提供する。前記論理コンポーネント階層は、親コンポーネント、および親コンポーネントに関連する子コンポーネントを含む。前記コンピュータデバイスは、メモリと通信可能に連結されたプロセッサを備える。前記メモリは、前記論理コンポーネント階層を格納する。前記コンピュータデバイスは、前記論理コンポーネント階層内において前記子コンポーネントを上書コンポーネントで置き換える要求を判定するようにプログラムされている。前記上書コンポーネントは、上書参照により前記親コンポーネントと対応付けられている。前記コンピュータデバイスはさらに、前記論理コンポーネント階層内において前記上書コンポーネントで前記子コンポーネントを置き換えるようにプログラムされている。
【０００６】
１実施形態において、コンピュータ実行可能命令を格納した少なくとも１つのコンピュータ読取可能記憶媒体を提供する。少なくとも１つのプロセッサが実行することにより、前記コンピュータ実行可能命令は前記プロセッサに、論理コンポーネント階層内において下位コンポーネントを上書コンポーネントで置き換える要求を判定するステップを実行させる。前記上書コンポーネントは、上書参照により前記下位コンポーネントの上位コンポーネントと対応付けられている。前記コンピュータ実行可能命令はさらに、前記プロセッサに、前記論理コンポーネント階層内において前記上書コンポーネントで前記下位コンポーネントを置き換えるステップを実行させる。
【０００７】
図１〜図１０は、本明細書の方法およびシステムの実施形態を示す。
【図面の簡単な説明】
【０００８】
【図１】コンポーネント階層の例を示すブロック図である。
【０００９】
【図２】図１に示すコンポーネント階層に関連するモジュールバージョンのブロック図である。
【００１０】
【図３】図２に示すモジュールバージョンの最初の時点におけるスナップショットである。
【００１１】
【図４】図２に示すモジュールバージョンの次の時点におけるスナップショットである。
【００１２】
【図５】上書参照を有するコンポーネント階層の例を示すブロック図である。
【００１３】
【図６】上書参照を有するコンポーネント階層の別例を示すブロック図である。
【００１４】
【図７】上書参照を識別し統合する階層読込プロセスの例を示すフローチャートである。
【００１５】
【図８】図５と図６に示すコンポーネント階層内における上書参照を実装するように構成された階層管理システムの例を示すブロック図である。
【００１６】
【図９】図５と図６に示すコンポーネント階層を管理するため用いることができるコンピュータデバイス内のデータベースおよび関連するコンピュータコンポーネントのブロック図である。
【発明を実施するための形態】
【００１７】
以下の説明は、本明細書の実施形態を示す。これは例示であり限定目的のものではない。本明細書は、コンポーネント階層を管理するアプリケーション一般に対して適用することができる。
【００１８】
本明細書において、「ａ」「ａｎ」を付した要素またはステップは、特に明示しない限り、複数の要素やステップを排除するものと解釈すべきではない。本明細書の「実施例」「１実施形態」は、言及した特徴部分を組み込んだ別実施形態を排除するように解釈されることを意図したものではない。
【００１９】
本明細書において、「データベース」という用語は、データ本体、リレーショナルデータベース管理システム（ＲＤＢＭＳ）、またはこれら双方を指す。本明細書において、データベースは任意のデータコレクションを含む。これは、階層データベース、関係データベース、フラットファイルデータベース、オブジェクト関係データベース、オブジェクト指向データベース、その他コンピュータシステムが格納する構造化されたレコードコレクションまたはデータコレクションを含む。上記例は例示目的のみのものであり、データベースの定義および／または意味を限定することを意図したものではない。ＲＤＢＭＳの例としては、Ｏｒａｃｌｅ（登録商標）データベース、ＭｙＳＱＬ、ＩＢＭ（登録商標）ＤＢ２、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ、Ｓｙｂａｓｅ（登録商標）、ＰｏｓｔｇｒｅＳＱＬが挙げられるが、これらに限らない。本明細書におけるシステムと方法を実現可能にする任意のデータベースを用いることができる（Ｏｒａｃｌｅは、カリフォルニア州Ｒｅｄｗｏｏｄ  ＳｈｏｒｅｓのＯｒａｃｌｅ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標；ＩＢＭは、ニューヨーク州ＡｒｍｏｎｋのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標；Ｍｉｃｒｏｓｏｆｔは、ワシントン州ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標；Ｓｙｂａｓｅは、カリフォルニア州ＤｕｂｌｉｎのＳｙｂａｓｅの登録商標）。
【００２０】
本明細書において、プロセッサは任意のプログラム可能システムを含む。これは、マイクロコントローラを用いるシステム、ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｉｒｃｕｉｔｓ（ＲＩＳＣ）、特定用途向け集積回路（ＡＳＩＣ）、論理回路、その他任意の本明細書における機能を実行可能な回路またはプロセッサを含む。上記例は例示目的のみのものであり、プロセッサの定義および／または意味を限定することを意図したものではない。
【００２１】
本明細書において、「ソフトウェア」「ファームウェア」という用語は交換可能であり、プロセッサが実行するためメモリに格納される任意のコンピュータプログラムを含む。これは、ＲＡＭメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、不揮発性ＲＡＭ（ＮＶＲＡＭ）メモリを含む。上記例は例示目的のみのものであり、コンピュータプログラムを格納するために用いることができるメモリ種別を限定することを意図したものではない。
【００２２】
１実施形態において、コンピュータプログラムを提供する。このプログラムは、コンピュータ読取可能媒体上に格納される。１実施例において、システムはサーバコンピュータへ接続することを必要としない単一のコンピュータシステム上で実行される。１実施形態において、システムはＷｉｎｄｏｗｓ（登録商標）環境で実行される（Ｗｉｎｄｏｗｓは、ワシントン州ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である）。１実施形態において、システムはメインフレーム環境およびＵＮＩＸ（登録商標）サーバ環境で実行される（ＵＮＩＸは、英国Ｂｅｒｋｓｈｉｒｅ，ＲｅａｄｉｎｇのＸ／Ｏｐｅｎ  Ｃｏｍｐａｎｙ  Ｌｉｍｉｔｅｄの登録商標である）。アプリケーションは柔軟であり、主要機能を損なうことなくさまざまな環境上で実行できるように設計されている。実施形態において、システムは複数のコンピュータデバイス間で分散した複数のコンポーネントを含む。１以上のコンポーネントは、コンピュータ読取可能媒体に格納されたコンピュータ実行可能命令の形態とすることができる。システムとプロセスは、本明細書の特定実施形態に限定されるものではない。また各システムと各プロセスのコンポーネントは、本明細書のその他コンポーネントおよびプロセスから独立し切り離して実施することができる。各コンポーネントとプロセスは、他のパッケージやプロセスと組み合わせて使用することもできる。
【００２３】
複数のコンポーネントを有するハードウェアまたはソフトウェアシステムの開発は、システムの設計をより小さく管理しやすいシステムコンポーネント設計へ分割すると、より効率的になる。システム設計は、上書参照を追加してサブコンポーネントを他のバージョンへ置き換える階層構造により、さらに改善することができる。
【００２４】
図１は、商品Ａ１１０の階層構造１００である。商品Ａ１１０は、第１コンポーネントＡ１１２０、第２コンポーネントＡ２１３０を備える。第２コンポーネントＡ２１３０は、２つのサブコンポーネントＡ２，１１４０とＡ２，２１５０を備える。製品Ａ１１０は、それぞれコンポーネントＡ１１２０とコンポーネントＡ２１３０との間で、階層参照１１１と１１２を有する。同様にコンポーネントＡ２１３０は、それぞれサブコンポーネントＡ２，１１４０とＡ２，２１５０との間で、階層参照１３１と１３２を有する。製品Ａ１１０はさらに、図示しないコンポーネント、さらにその配下のサブコンポーネントを含むこともできる。サブコンポーネントはさらにサブコンポーネントを含むことができ、以下同様である。
【００２５】
図１に示すような階層構造１００は、商品Ａ１１０のコンポーネントやサブコンポーネントとは別に構築することができる（例えば、商品Ａ１１０の完全な階層構造１００のサブセット構造）。また本実施形態において要素Ａ１１０は商品であるが、要素Ａ１１０はコンポーネントとみなすこともでき、要素Ａ１１２０と要素Ａ２１３０は要素Ａ１１０のサブコンポーネントとみなすことができる。同様に要素Ａ２，１１４０要素Ａ２，２１５０は、そのサブコンポーネント（図示せず）との間で階層関係にあるコンポーネントとみなすことができる。
【００２６】
商品Ａ１１０は、モジュールにより設計されたハードウェアまたはソフトウェアシステムである。例えば商品Ａ１１０は車両であり、コンポーネントＡ１１２０は車両フレームであり、コンポーネントＡ２１３０は車両エンジンである。エンジンのサブコンポーネントＡ２，１１４０とＡ２，２１５０は例えば、エンジンのクランクシャフトとシリンダである。他の例としては、商品Ａ１１０は集積回路（ＩＣ）チップであり、コンポーネントＡ１１２０はランダムアクセスメモリ（ＲＡＭ）であり、コンポーネントＡ２１３０はＩＣチップの演算処理装置（ＣＰＵ）である。ＣＰＵのサブコンポーネントＡ２，１１４０とＡ２，２１５０は例えば、ＣＰＵの算術論理演算装置（ＡＬＵ）と制御ユニットである。
【００２７】
開発プロセスにおいて、特定コンポーネントの設計チームは、コンポーネントおよび／または当該コンポーネントのサブコンポーネントの全ての現行設計および従前設計にアクセスする場合がある。設計チームは、階層構造１００の各レベルにおけるコンポーネントに対して責任を負う。例えば設計チームは商品Ａ１１０を開発し、別の設計チームが商品Ａ１１０の各コンポーネント（例えばコンポーネントＡ１１２０とＡ２１３０）を開発する。商品Ａ１１０の設計チームは、商品Ａ１１０のコンポーネントの設計を用いて、商品Ａ１１０をシミュレートおよび／またはテストする責任を負う。
【００２８】
商品Ａ１１０およびそのコンポーネントＡ１１２０とＡ２１３０、サブコンポーネントＡ２，１１４０とＡ２，２１５０の設計は、中央データベースまたは分散データベース（図示せず）内に格納されるモジュール内のファイルに含まれる。設計チームはこれらを取得する。モジュールは通常、１以上のファイルを含む。これはソフトウェアコードおよび／または設計データを含む。モジュールは他のモジュールを格納する場合があり、これらはリリースされ、あるいは再利用のためパッケージされる。実施例において、例えばマサチューセッツ州ＷａｌｔｈａｍのＤａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ  ＥＮＯＶＩＡ  Ｃｏｒｐ．のビジネスオブジェクトデータベースのような、サーバサイドデータベースを用いる。本明細書のシステムと方法を実現するその他データベースまたはデータベースの組み合わせを用いることもできる。
【００２９】
コンポーネントの開発を促進しトラッキングすることを補助するため、モジュール内に格納されたコンポーネントの各設計は、当該モジュールに関する特定のバージョン番号を有する場合がある。例えば、モジュールおよび／またはコンポーネントのバージョンである。
【００３０】
図２は、特定コンポーネントに対応付けられたモジュールバージョンのブロック図２００である。図１に示すコンポーネント階層と同じものを用いている。商品Ａ１１０は、異なるバージョン番号を有する複数のモジュールと対応付けられる場合がある。例えばモジュールＡ  ｖ１．０  ２１１、ｖ１．１  ２１２、ｖ１．２  ２１３である。
【００３１】
図２００は、モジュールブランチ２１０、２２０、２３０、２４０、２５０を含む。モジュールブランチは、特定の商品、コンポーネント、またはサブコンポーネントに共通して関連するオブジェクトコレクションの時系列更新を示す。例えばモジュールブランチ２１０内に含まれまたはこれから参照されるモジュールコレクションＡ  ｖ１．０  ２１１、ｖ１．１  ２１２、ｖ１．２  ２１３は、商品Ａ１１０の異なるモジュールバージョンである。これらは前モジュールバージョンの更新または変更をそれぞれ示す。本明細書において、共通モジュールブランチを共有するモジュールは、同じモジュールとみなすことができる。これは例えば、共通のモジュールバージョン系列の同一または異なるバージョンであることを示す。同様に要素またはコンポーネントは、共通バージョン系列を共有するのであれば、同一であるとみなすことができる（例えばブランチ２１０、２２０、２３０、２４０、２５０）。モジュールブランチ２２０は、モジュールＡ１  ｖ１．０  ２２１とＡ１  ｖ１．１  ２２２のコレクションを示す。これらはコンポーネントＡ１１２０に対応付けられた別バージョンのモジュールである。モジュールブランチ２３０は、モジュールＡｓ  ｖ１．０  ２３１、Ａｓ  ｖ１．１  ２３２、Ａｓ  ｖ１．２  ２３３のコレクションを示す。これらはコンポーネントＡ２１３０に対応付けられた別バージョンのモジュールである。モジュールブランチ２４０は、モジュールＡｓ，１  ｖ１．０  ２４１のコレクションを示す。これはサブコンポーネントＡ２，１１４０に対応付けられている。モジュールブランチ２５０は、モジュールＡｓ，２  ｖ１．０  ２５１とＡｓ，２  ｖ１．１  ２５２のコレクションを示す。これらはサブコンポーネントＡ２，２１５０に対応付けられた別バージョンのモジュールである。
【００３２】
モジュールバージョン（例えばモジュールＡ  ｖ１．０  ２１１、ｖ１．１  ２１２、ｖ１．２  ２１３）は、コンポーネント設計（例えば商品Ａ１１０）の継時的更新または変更のなかで特定日時において更新または変更されたモジュールである。設計チームによる１モジュールのコンポーネント設計に対する任意の変更により、新たなモジュールバージョン番号を有する新たなモジュールを生成することになる。例えばコンポーネントＡ２１３０の設計チームは、モジュールＡ２  Ｖ１．１  ２３２内に含まれるバージョン１．１の設計を変更し、新たなバージョン番号１．２を有するモジュールＡ２  Ｖ１．２  ２３３を生成して新設計を保存する。特定のコンポーネント（例えばコンポーネントＡ２１３０）は、複数の設計バージョンを有する場合がある。これらはそれぞれ異なるバージョン番号（例えばｖ１．０、ｖ１．１、ｖ１．２）を有する個別のモジュール（例えばＡｓ  ｖ１．０  ２３１、Ａｓ  ｖ１．１  ２３２、Ａｓ  ｖ１．２  ２３３）内に格納される。
【００３３】
商品またはコンポーネントの開発をさらに促進するため、特定のサブモジュールを参照するコンポーネントのモジュール内に、１以上の階層参照を格納することができる。図３と図４は、特定の商品設計のモジュールとその商品のコンポーネントに関連するサブモジュールとの間において、時刻ｔ１からｔ２において存在し変化する、異なるタイプの階層参照の例を示す。図３と図４は、階層構造１００を用いる。商品Ａ１１０は２つのコンポーネントＡ１１２０とＡ２１３０を含み、コンポーネントＡ２はサブコンポーネントＡ２，１１４０を含む。サブモジュールは、他のモジュールから参照され、当該モジュールに対応付けられたコンポーネントのサブコンポーネントに対応する、任意のモジュールである。例えば図３において、モジュールＡ１  Ｖ１．０  ３２１とＡ２  Ｖ１．０  ３３１はモジュールＡ  ｖ１．０  ３１１のサブモジュールであり、モジュールＡ２，１  Ｖ１．０  ３４１はモジュールＡ２  ｖ１．０  ３３１のサブモジュールである。モジュールＡ  ｖ１．０  ３１１はコンポーネントＡ１１０に対応付けられ、サブモジュールＡ１  Ｖ１．０  ３２１とＡ２  Ｖ１．０  ３３１はそれぞれサブコンポーネントＡ１１２０とＡ２１３０に対応付けられている。
【００３４】
図３は、商品Ａ１１０のモジュール（図２に示す）を格納するデータベース（図３には示していない）コンテンツの時刻ｔ１におけるスナップショット３００の例である。モジュールＡ  ｖ１．０  ３１１は、商品Ａ１１０の設計のバージョン１．０を含む。モジュールＡ１  Ｖ１．０  ３２１とＡ２  Ｖ１．０  ３３１はそれぞれ、コンポーネントＡ１１２０とＡ２１３０（ともに図２に示す）の設計のバージョン１．０を含む。モジュールＡ２，１  Ｖ１．０  ３４１は、サブコンポーネントＡ２，１１４０（図２に示す）の設計のバージョン１．０を含む。モジュールブランチ３２０は、コンポーネントＡ１１２０に対応するモジュールの経時変化を示し、時刻ｔ１においてモジュールＡ１  Ｖ１．０  ３２１を含みまたは参照する。モジュールブランチ３３０は、コンポーネントＡ２１３０に対応するモジュールの経時変化を示し、時刻ｔ１においてモジュールＡ２  Ｖ１．０  ３３１を含みまたは参照する。モジュールブランチ３４０は、サブコンポーネントＡ２，１１４０に対応するモジュールの経時変化を示し、時刻ｔ１においてモジュールＡ２，１  Ｖ１．０  ３４１を含みまたは参照する。
【００３５】
時刻ｔ１は例えば、商品Ａ１１０の設計チームが最初にモジュールＡ  ｖ１．０  ３１１をデータベースに格納する時刻である。モジュールＡ  ｖ１．０  ３１１は、商品Ａ１１０の最初の設計を含む。これにはバージョン番号１．０が割り当てられる。設計チームは、この時刻においてまたはこの時刻前に、「アルファ」タグ３８０に対して動的階層参照３５１を定義し、モジュールＡ２  Ｖ１．０  ３３１に対して固定階層参照３５３を定義する。
【００３６】
図３の例において、固定階層参照３５２が生成され、モジュールＡ１  Ｖ１．０  ３２１を指す。これは以下に述べるように、「アルファ」タグ３８０が時刻ｔ１において参照するモジュールである。したがって最初の時点において、階層参照３５１と３５２のグループ３５０は、異なるオブジェクトを指しているが、同じモジュールを参照する。動的階層参照が生成されるとき固定階層参照を自動的に定義することにより、設計チームは将来において、この固定階層参照を用いて、動的階層参照が後続モジュールバージョンを指している場合であっても、動的階層参照が最初に対応していたものを判定することができる。
【００３７】
同様にモジュールＡ２  Ｖ１．０  ３３１の動的階層参照３６１は、設計チームがモジュールＡ２  Ｖ１．０  ３３１をデータベースに格納またはコミットしたときまたはその前に、コンポーネントＡ２について設計チームによって生成される。本例においてコンポーネントＡ２の設計チームは、「ゴールデン」タグ３９０を指す動的階層参照３６１を定義する。ゴールデンタグ３９０は、最初の時点においてはモジュールＡ２，１  Ｖ１．０  ３４１を指す。固定階層参照３６２は、プロセス５５０において自動的に定義され、動的階層参照３６１が最初に指しているものと同じモジュール（モジュールＡ２，１  Ｖ１．０  ３４１）を指す。最初の時点において、階層参照３６１と３６２のグループ３６０は、異なるオブジェクトを指しているが、同じモジュールを参照する。
【００３８】
図３に示す例において、コンポーネントに対応付けられたモジュールに関する階層参照は、そのモジュールがデータベースにコミットされた時点で生成される。モジュール内に格納された階層参照は、モジュールがコミットされた後の任意時点で追加し、削除し、変更することもできる。
【００３９】
図４は、商品Ａ１１０（図２に示す）のモジュールを格納するデータベース（図４には示していない）の後時刻ｔ２におけるスナップショット４００である。時刻ｔ１とｔ２の間において、コンポーネントＡ１１２０、Ａ２１３０、Ａ２，１１４０それぞれの設計チームは、新たなモジュールＡ１  Ｖ１．１  ４２１、Ａ２  Ｖ１．１  ４３１、Ａ２，１  Ｖ１．１  ４４１を発信する。またコンポーネントＡ２，１１４０の設計チームは、「ゴールデン」タグ３９０をモジュールＡ２，１  Ｖ１．０  ３４１からモジュールＡ２，１  Ｖ１．１  ４４１へ移動する。
【００４０】
一般に階層参照は、動的である場合もあるし固定である場合もある。固定階層参照（例えば階層参照３５２、３５３、３６２）は、コンポーネントまたはサブコンポーネントの特定バージョンを含むモジュールを参照する。例えば固定階層参照３５２はモジュールＡ１  Ｖ１．０  ３２１を参照し、これはコンポーネントＡ１１２０の設計のバージョン１．０を含む。一方で動的階層参照（例えば階層参照３５１と３６１）は、タグまたはモジュールブランチを参照する場合がある。これらは特定モジュールを参照する。タグとモジュールブランチは変更される場合があり、したがって動的階層参照が最終的に参照するモジュールは、変更され得る。タグはユーザが手動で変更して別のモジュールを参照するようにすることができる。例えばコンポーネントＡ２，１１４０の設計チームは、「ゴールデン」タグ３９０をモジュールＡ２，１  Ｖ１．０  ３４１からモジュールＡ２，１  Ｖ１．１  ４４１へ移動させる。モジュールブランチは、新たなモジュール（例えば新たなモジュールバージョン）を追加することにより変更できる。例えばコンポーネントＡ１１２０の設計チームが新モジュールＡ１  Ｖ１．１  ４２１をデータベースへ登録すると、モジュールブランチ３２０は新モジュールＡ１  Ｖ１．１  ４２１を含みまたは参照するように変更される（例えばモジュールブランチは最新バージョンを指すようになる）。
【００４１】
異なるタイプのタグを定義することもできる。例えば任意のコンポーネントの最新モジュールは、「アルファ」タグと対応付けることができる。これはコンポーネントの「開発中」バージョンを示す。図３に示す例において、ブランチ３２０を参照する「アルファ」タグ３８０を定義することにより、「アルファ」タグ３８０はモジュールブランチ３２０が参照しまたは含んでいる最新バージョンのモジュールを参照することになる。別実施形態において、動的階層参照３５１はモジュールブランチ３２０を直接指すことができ、同様の結果が得られる。他例（図示せず）において、コンポーネントのモジュールはタグ「ベータ」を付すことができ、これはコンポーネントの「テスト中」バージョンを示す。コンポーネントのモジュールはまた、「ゴールデン」タグを付すことができ、これはコンポーネントの最新「安定」バージョンを示す。図３に示す例において、コンポーネントＡ２，１１４０の設計チームは、コンポーネントＡ２，１１４０のバージョン１．０を「ゴールデン」バージョンとして最初に定義する。「アルファ」「ベータ」「ゴールデン」の各タグは変更され得る（例えば設計グループはタグを変更して別のモジュールバージョンを指すようにする）ので動的なものであり、したがって必ずしも同じモジュールを参照するわけではない。
【００４２】
図５は、上書参照を有する例示商品Ａ５１１の階層構造５００である。商品Ａ５１１は、第１コンポーネントＡ１５２１と第２コンポーネントＡ２５３１を有する。商品Ａ５１１は、商品Ａ１１０（図１と図２に示す）または商品Ａ  ｖ１．０  ３１１（図３と図４に示す）と類似しており、コンポーネントＡ１５２１とＡ２５３１は商品Ａ１１２０とＡ２１３０（図１と図２に示す）またはＡ１ｖ１．０  ３２１とＡ２  ｖ１．０  ３３１（図３と図４に示す）に類似している。第１コンポーネントＡ１５２１は、１つのサブコンポーネントＢ  ｖ１．１  ５２２を含む。商品Ａ５１１は、コンポーネントＡ１５２１とコンポーネントＡ２５３１に対してそれぞれ階層参照５１２と５１３を有する。同様にコンポーネントＡ１５２１は、サブコンポーネントＢ  ｖ１．１  ５２２に対して階層参照５１４を有する。階層構造５００内の各コンポーネントはバージョン番号などのバージョン識別子を有しているが、見易さのためコンポーネントＡ５１１、Ａ１５２１、Ａ２５３１についてはバージョン番号を除去していることを理解されたい。
【００４３】
本明細書において、「下位」「上位」「親」「子」という用語は、論理的にファミリーの関係にあるコンポーネント間の階層関係（例えばコンポーネントのツリー構造）を示す。例えばコンポーネントＢ  ｖ１．１  ５２２は、上位コンポーネントＡ１５２１とＡ５１１の下位コンポーネントとして参照することができる。コンポーネントＡ１５２１は、コンポーネントＢ  ｖ１．１  ５２２の親（すなわち最初に隣接する直近上位）であり、同様にコンポーネントＢ  ｖ１．１  ５２２はコンポーネントＡ１５２１の子である。さらにコンポーネントＡ１５２１は、コンポーネントＡ５１１（すなわち親）の下位コンポーネント（この場合は子）である。このようにこれら用語は、コンポーネント間の論理関係を便宜上定義し説明するために用いることができる。
【００４４】
実施形態において、商品Ａ５１１は上書コンポーネントＢ５５０に対する参照５４０を含む。上書参照５４０は、任意の合致するコンポーネントを上書コンポーネントＢ５５０で置き換えるサインとして用いられる。換言すると、コンポーネントＡ５１１（すなわちＡ１５２１、Ａ２５３１、Ｂ  ｖ１．１  ５２２の上位コンポーネント）内に上書参照５４０が存在する場合、システムは以下に詳述するようにその後世代において、階層５００内のコンポーネントＢ以下の任意の参照を置き換える。
【００４５】
実施例において参照５４０は、参照５１２、５１３、５１４のような階層参照５１４ではなく、上書参照５４０として用いられ参照される。上書コンポーネントＢ５５０は、図５に示す例において、コンポーネントＢ  ｖ１．１  ５２２のバージョン（すなわちバージョン１．１）とは異なるバージョン１．０を含む。実施例において、上書コンポーネントＢ５５０はコンポーネントＡ５１１との間でファミリー関係にはない（すなわちコンポーネントＢ５５０は階層構造の直接メンバーではない）。したがって上書参照５４０は、ファミリー関係を表していない。上書コンポーネント５４０は、他コンポーネントに対するリンク、あるいは実施形態によっては特定バージョンのコンポーネントである。その用途については以下に詳述する。
【００４６】
動作中において、例えばコンピュータアシストドラフトシステム内の商品Ａ５１１の階層構造５００などのような、商品および／またはコンポーネントの階層構造を読み取り構築するコンピュータシステム（図５には示していない）は、システムのメモリ（図５には示していない）内のデータ構造へコンポーネントモジュールを読み出す。実施形態において、サブコンポーネントを別モジュールに格納することができる（例えばコンポーネントＡ５１１をあるモジュールに格納し、別モジュールに格納されているサブコンポーネントＡ１５２１を参照する）。他実施形態において、サブコンポーネントは同一モジュール内に格納することができる（例えばコンポーネントＡ５１１とサブコンポーネントＡ１５２１を同一モジュール内に格納する）。実施例において、各コンポーネントＡ５１１、Ａ１５２１、Ａ２５３１、Ｂ  ｖ１．１  ５２２は、別モジュールに格納することができる。
【００４７】
実施例において、システムはコンポーネントＡ５１１に対応付けられたモジュールの読み出しを開始する。コンポーネントＡ５１１に対応付けられたモジュールは、コンポーネントＡ５１１が２つの子コンポーネントＡ１５２１とＡ２５３１を含むこと、および上書コンポーネント５５０に対する上書参照５４０を認識する。システムは次に、Ａ１５２１に対応付けられたモジュールを検査および／またはインポートする。コンポーネントＡ１５２１のモジュールを検査する間、システムはサブコンポーネントＢ  ｖ１．１  ５２２（すなわち、Ａ１５２１に対応付けられたモジュール内で定義された、Ａ１５２１の子コンポーネント）の存在を通知する。
【００４８】
既知のシステムにおいて、サブコンポーネントは即座に処理される（すなわち、子コンポーネントＢ  ｖ１．１  ５２２のデータ構造は、親コンポーネントＡ１５２１の階層参照に基づき階層構造へ即座に読み出される）。ただし実施例において、サブコンポーネントＢ  ｖ１．１  ５２２を読み出す前に、システムはコンポーネントＢに対する上書コンポーネントが存在するか否かをチェックする。具体的には、システムはサブコンポーネントＢ  ｖ１．１  ５２２の１以上の上位コンポーネントについて、例えば上書参照５４０のようなコンポーネントＢに対する上書参照が存在するか否かをチェックする。コンポーネントＢに対する上書参照が存在する場合、システムは、親（例えばコンポーネントＡ１５２１）によって明示的に参照されるコンポーネント（例えばコンポーネントＢ  ｖ１．１  ５２２）に代えて上書コンポーネント５５０（すなわち上書参照５４０によって参照されるコンポーネント）を用いるべきであることが分かる。このようにして、システムはコンポーネントＢ  ｖ１．１  ５２２（すなわちコンポーネントＢのバージョン１．１）に対応付けられたモジュールを読み出すのではなく、コンポーネントＢ  ｖ１．１  ５２２の参照（すなわち参照５１４）を中止して代わりに上書参照５４０が参照する上書コンポーネント５５０（例えばコンポーネントＢのバージョン１．０）を読み出す。さらに実施形態において、コンポーネントＡ１５２１（すなわち上書されるサブコンポーネントの親コンポーネント）のデータ構造は、参照５１４が上書される旨を示すようにマークされる。この上書される参照５１４は処理されず、以後の設計において参加しないことになる。
【００４９】
実施例において、上書参照５４０は特定タイプのコンポーネントのサブコンポーネントを読み出すことに代わって、特定の上書コンポーネントを用いる。換言すると上書参照５４０は、サブコンポーネントが上書コンポーネントに合致するがバージョンが異なる（すなわち、ブランチ２１０、２２０、２３０、２４０、２５０と同様に共通のコンポーネントバージョン系列を共有しているが、異なるバージョンを呼び出している）場合のみ用いられる。実施形態において、各コンポーネントは固有のＵＲＬその他の識別子を有する。これを用いて、コンポーネント間またはコンポーネントと上書参照／コンポーネントとの間の合致を識別することができる。換言すると、例えばコンポーネントＢの全バージョンは共通のＵＲＬを共有し、同じＵＲＬを共有する他のコンポーネントは存在しない。このように上書参照は、合致するＵＲＬを有する上位コンポーネントチェーンにおける参照となる。したがって上書参照バージョンは、上書参照がリンクしている上位コンポーネントの後世代における上書コンポーネントの別バージョンに代わって用いられる。
【００５０】
実施形態において、複数の上位コンポーネントが、同一コンポーネント（例えばコンポーネントＢ）について定義された上書コンポーネントを有する場合がある。このような状況に対処するため、実施形態においてシステムは、Ｂ  ｖ１．１  ５２２の親（すなわちＡ１５２１）から開始して、ツリーのトップ（すなわちコンポーネントＡ５１１）に到達するまで、各コンポーネントの親／上位コンポーネントを検索する。実施形態において、コンポーネントＢについて最初に見つかった上書参照が用いられる。実施例において、コンポーネントＢについて見つかった最も上位の上書参照（すなわち最上位コンポーネントからの参照）が用いられる。
【００５１】
さらに他実施形態において、システムは各コンポーネント／サブコンポーネントを読み出す前に、上書参照についてのチェックを実施する。換言すると、図５に示す例においてシステムは、コンポーネントＡ１５２１、Ａ２５３１、Ｂ  ｖ１．１  ５２２を最初に読み出すとき、上書参照をチェックする。したがって高次コンポーネント（すなわち子を有するコンポーネント）であっても、より上位のコンポーネントによって代えられる場合がある。
【００５２】
また実施形態において、ユーザは上書コンポーネント５５０に対する上書参照５４０を定義する。実施形態において、上書参照５４０は、コンポーネントＡ５１１に対応するモジュール内に格納された上書コンポーネント５５０に対するリンクその他の参照である。例えばユーザは、上書コンポーネント５５０に対応付けられたデータ構造に対するメモリポインタとして上書参照５４０を定義することができる。あるいはユーザは、上書コンポーネント５５０に対するｈｒｅｆとして上書参照５４０を定義することができる。他実施形態において上書参照５４０は、上位コンポーネント（例えばコンポ・BR>[ネントＡ５１１）に対応付けられたデータ構造におけるフィールドである。このフィールドは、上書参照５４０と上書参照５５０を用いてサブコンポーネントに代替するか否かおよび／またはいつ代替するかを判定するための優先識別条件を含む。例えばメモリにおける上位コンポーネントのデータ構造またはモジュールファイルは、「コンポーネントＢ」のバージョン「ｖ１．０」に対する上書参照を定義するフィールド情報を含むことができる。このように、上書参照５４０はメモリフィールドにおけるデータの存在によって識別することができ、上書コンポーネント５５０はフィールドデータを用いてそのフィールド内におけるコンポーネント名とバージョンによりコンポーネントモジュールにアクセスすることを通じて識別することができる。
【００５３】
図６は、商品Ａ６１１のコンポーネントの別階層例６００のブロック図である。商品Ａ６１１は上書参照を含む。商品Ａ６１１は、第１コンポーネントＡ１６２１と第２コンポーネントＡ２６３１を含む。第１コンポーネントＡ１６２１は、１つのサブコンポーネントＢ  ｖ１．１  ６２２を含む。これはコンポーネントＢのバージョン１．１を示す。第２コンポーネントＡ２６３１は、１つのサブコンポーネントＢ  ｖ１．２  ６３２を含む。これはコンポーネントＢのバージョン１．２を示す。商品Ａ６１１は、それぞれコンポーネントＡ１６２１とコンポーネントＡ２６３１に対する階層参照６１２と６１３を有する。同様にコンポーネントＡ１６２１はサブコンポーネントＢ  ｖ１．１  ６２２に対する階層参照６１４を有し、第２コンポーネントＡ２６３１はサブコンポーネントＢ  ｖ１．２  ６３２に対する階層参照６１５を有する。
【００５４】
実施例において、商品Ａ６１１は上書コンポーネントＢ  ｖ１．１  ６５０に対する参照６４０を含む。上書参照６４０と上書コンポーネントＢ  ｖ１．１  ６５０は、実施形態において、それぞれ参照５４０およびコンポーネント５５０（図５に示す）と同様である。上書コンポーネントＢ  ｖ１．１  ６５０は、図６に示す例においてコンポーネントＢ  ｂ１．１  ６２２と同一（すなわちバージョン１．１）であるバージョン１．１を含むが、コンポーネントＢ  ｖ１．２  ６３２のバージョン（すなわちバージョン１．２）とは異なる。実施例において上書参照６４０は、所与の上位コンポーネント（例えばコンポーネントＡ６１１）以下の競合コンポーネント間の競合解消のために用いられる。換言すると上書参照６４０は、２つのサブコンポーネントが合致するが異なるバージョンを有する（すなわち、ブランチ２１０、２２０、２３０、２４０、２５０のように同一のコンポーネントバージョン系列であるが、異なるバージョンを呼び出している）場合のみ用いられる。２つの競合するサブコンポーネントの共通する上位コンポーネント内に上書参照６４０が存在すると、システムは競合しているサブコンポーネントの一方または双方を上書きコンポーネント６５０で置き換える。
【００５５】
動作中において、例えばコンピュータアシストドラフトシステム内の商品Ａ６１１の階層構造６００などのような、商品および／またはコンポーネントの階層構造を読み取り構築するコンピュータシステム（図６には示していない）は、システムのメモリ（図６には示していない）内のデータ構造へコンポーネントモジュールを読み出す。実施形態において、サブコンポーネントを別モジュールに格納することができる（例えばコンポーネントＡ６１１をあるモジュールに格納し、別モジュールに格納されているサブコンポーネントＡ１６２１を参照する）。他実施形態において、サブコンポーネントは同一モジュール内に格納することができる（例えばコンポーネントＡ６１１とサブコンポーネントＡ１６２１を同一モジュール内に格納する）。実施例において、各コンポーネントＡ６１１、Ａ１６２１、Ａ２６３１、Ｂ  ｖ１．１  ６２２、Ｂ  ｖ１．２  ６３２は、別モジュールに格納することができる。
【００５６】
実施例において、システムはコンポーネントＡ６１１に対応付けられたモジュールの読み出しまたはインポートを開始する（すなわち、コンポーネントＡ６１１の構造に対応付けられたデータを読み出し、メモリ内にそのコンポーネントのデータ構造を構築する）。コンポーネントＡ６１１に対応付けられたモジュールは、コンポーネントＡ６１１が２つの子コンポーネントＡ１６２１とＡ２６３１を含み、さらには上書コンポーネントＢ  ｖ１．１  ６５０に対する上書参照６４０を含むことを認識する。システムは次に、Ａ１６２１が子サブコンポーネントＢ  ｖ１．１  ６２２を含み、Ａ２６３１が子サブコンポーネントＢ  ｖ１．２  ６３２を含み、これらが競合することを認識する。システムは、各サブコンポーネントＢ  ｖ１．１  ６２２とＢ  ｖ１．２  ６３２の上位階層を検索し、コンポーネントＢ（例えば上書コンポーネントＢ  ｖ１．１  ６５０）に対する上書参照（例えば参照６４０）を有する共通上位コンポーネント（例えばコンポーネントＡ６１１）を特定する。上書参照６４０を見つけると、システムは上書コンポーネントＢ  ｖ１．１  ６５０（すなわちコンポーネントＢのバージョン１．１）に基づき各子サブコンポーネントＢのコンポーネントＢバージョンを読み出す。換言すると、コンポーネントＢバージョン１．１のデータ構造は、子サブコンポーネントとして図６に示す６２２と６３２の位置に読み出される。さらに実施形態において、参照６１４と６１５は上書された旨をマークされる。
【００５７】
図５と図６に示す上記例は、新規構造を読み出す間（すなわちメモリ内にコンポーネント階層を最初に構築する間）に実施することを説明した。しかし、上書参照のその他実装も可能であり本明細書の範囲内であることを理解されたい。例えば上書参照の解析は、既に構築された構造において実施することができる。コンポーネントは追加または削除される場合があり、上書参照の解析をその結果得られる構造に対して実施して新たに生じた競合をチェックすることができる。上書参照は、既存の構造に追加しまたは既存の構造から削除することができ、上書参照の解析を実施して競合を発見しおよび／またはサブコンポーネントを置き換えることができる。実施形態において、コンポーネントが追加または削除されると、それらコンポーネントは上書参照の影響、および階層構造に対する変更について分析される。
【００５８】
本明細書の実施例において、コンポーネントを優先するか否かは、コンポーネントのマッチングおよびバージョン差分を比較することに基づき判定される。実施例において優先識別条件は、例えばＵＲＬなどのコンポーネント識別子、およびバージョン番号などのバージョン識別子に基づく２つのコンポーネント間のマッチングを含む。バージョン識別子は一般に、コンポーネントの属性とみなされる。システムは優先識別条件を用いて、上書コンポーネントでサブコンポーネントを優先するか否かを判定する。コンポーネントが同一のコンポーネント識別子を有するがバージョン識別子が異なる場合、システムは元の参照に代えて上書参照を用いる。ただし、その他の優先識別条件を用いることができることを理解されたい。例えば優先識別条件は、図２に示すようなモジュールブランチを共有する各コンポーネントのユニークインデックス番号などのその他のコンポーネント識別子、またはコンポーネント識別子セットを含むことができる。優先解消情報は、コンポーネントのその他の単一属性もしくはコンポーネント属性の組み合わせ、または属性範囲を含むことができる。
【００５９】
実施形態において、優先識別条件は、コンポーネント識別子（例えばＵＲＬ）とバージョン識別子（例えばバージョン番号）だけでなく、階層内におけるコンポーネントの相対パスを含む。コンポーネントの相対パスは、階層内におけるコンポーネントの位置を示し、上書参照が適用される上位コンポーネントに対する相対パスである。あるいは、その他コンポーネントに対する相対もしくは絶対パスである。優先識別条件内に相対パスを含めることにより、上書参照がサブコンポーネントを置き換える時点を判定する際に、他層の粒度を用いることができる。具体的には、相対パスを含めることにより、システムは特定のサブコンポーネント（すなわち、特定の相対パスに位置するサブコンポーネント）を置き換えることができる。これにより、サブコンポーネントがＵＲＬ（すなわち同一コンポーネント）とパス（すなわちその場所における特定コンポーネント）に合致し、バージョン識別子が異なる場合、システムはそのサブコンポーネントを上書コンポーネントで置き換える。このように、上書参照が指定する相対パスにおける特定サブコンポーネントのみが置き換えられ、上書参照を有する上位コンポーネントのその他子孫は置き換えられない。
【００６０】
他実施形態において、上書参照はコンポーネントの削除を示すことができる。このとき例えば上書コンポーネント「ｎｕｌｌ」を用いる（例えば上書コンポーネントのバージョン＝ｎｕｌｌ）。これにより上書参照は、合致するコンポーネントを識別するとともに、上書コンポーネントのバージョンが「ｎｕｌｌ」なのでその合致したサブコンポーネントを除去する（すなわち空コンポーネントで置き換える）ような、優先識別条件を含むことができる。
【００６１】
図７は、上書参照を識別子統合する階層読出プロセス７００の例を示すフローチャートである。実施例においてプロセス７００は、階層管理システム（ＨＭＳ）８２０（図８に示す）やコンピュータデバイス９１０（図９に示す）などのようなコンピュータシステムを用いて実施される。設計チームは、モジュールバージョン（例えばコンポーネント階層）に対するリクエストを入力する。例えば商品Ａ５１１（図６に示す）に対するリクエストである。ＨＭＳ８２０は、ステップ７０２においてプロセス７００を開始する。ステップ７０４において、設計チームが取り組んでいる最上位レベルコンポーネントに対応付けられたモジュールを取得する。トップレベルモジュールおよびこれが参照する各モジュールは、１以上のサブコンポーネントに対する参照を含む場合がある。各サブコンポーネントは、関連モジュールを有する場合がある。関連モジュールはさらに１以上のサブコンポーネントに対する参照を含む場合がある。以下同様である。
【００６２】
ＨＭＳ８２０は、トップモジュール（すなわちトップコンポーネント）から開始する。これは実施例において商品Ａ５１１である。商品Ａ５１１は、階層構造５００（図５に示す）に対して組み込まれ、要素５１１によって表される（すなわち、トップレベル商品のデータ構造がメモリ内で生成され、トップモジュールからインポートされたデータを含む）。実施例において、トップモジュールはコンポーネントＡ１５２１とＡ２５３１を参照する。ステップ７１０においてＨＭＳ８２０は、処理している現在のモジュール（すなわち商品Ａ５１１に対応付けられたトップモジュール）が未処理（すなわち図５に示す階層構造５００に対して組み込まれていない）のサブコンポーネントを有するか否かを検査する。１以上の未レビューサブコンポーネントがある場合、ＨＭＳ８２０はステップ７２０において未レビューサブコンポーネントをインポートのため選択する。
【００６３】
例えば１実施形態において、ＨＭＡ８２０はコンポーネントＡ１５２１を選択する。サブコンポーネントＡ１５２１を完全にインポートする前に、ＨＭＳ８２０はサブコンポーネントを解析して合致する上書参照の存在をチェックする。ＨＭＳ８２０は、コンポーネントＡ１に合致する上書コンポーネントを参照する上書参照を階層５００内において検索する。実施形態においてＨＭＳ８２０は、下位コンポーネントの１以上の上位コンポーネントを、下位コンポーネントの親から開始して論理コンポーネント階層の昇順に検査し、上位コンポーネントを検査する際に上書参照を認識する。上書参照を認識するステップは、下位コンポーネントに合致するコンポーネントに対応付けられた上位コンポーネントを検査して参照をチェックするステップを含む。実施形態において、上位コンポーネント内で最初に合致した上書参照が用いられる。換言すると、合致する上書参照を有する直近上位コンポーネントが用いられる。別実施形態において、上位コンポーネント内で最上位の合致する上書参照が用いられる。換言すると、合致する上書参照を有する最も遠い上位コンポーネントが用いられる。
【００６４】
実施例において、ＨＭＳ８２０はステップ７３０においてサブコンポーネントの上位コンポーネントを検索し、特定のレビューするサブコンポーネント（すなわちＡ１）に合致する上書コンポーネントを参照する上書参照をチェックする。本例において、階層５００内におけるＡ１の唯一の上位コンポーネントは、親であるコンポーネントＡ５１１のみである。コンポーネントＡ５１１は、上書参照（すなわち図５に示す上書参照５４０）を有する。しかし上書参照５４０は、現在解析しているサブコンポーネントに合致しない上書要素５５０を参照している（すなわち、上書参照５４０はコンポーネントＢに対するものであり、解析しているサブコンポーネントはコンポーネントＡ１である）。ステップ７４０において合致する上書参照が見つからない場合、ＨＭＳ８２０はステップ７４４において、解析しているサブコンポーネント（すなわちコンポーネントＡ１  ｖ１．０  ５２１）に対応付けられたモジュールを選択し、ステップ７４６においてそのモジュールを階層構造へ取得およびインポートする（例えばコンポーネントＡ１  ｖ１．０  ５２１をＡ５１１の子として追加する、など）。
【００６５】
実施例において、サブコンポーネントモジュールを取得するステップ７４６の一部として、このサブコンポーネントはレビューしているモジュールとなる。ＨＭＳ８２０は、処理をループしてコンポーネントＡ１  ｖ１．０  ５２１のサブコンポーネントを検討する。本例において、コンポーネントＡ１  ｖ１．０  ５２１は１つのサブコンポーネントＢ  ｖ１．１  ５２２を有する。ＨＭＳ８２０はステップ７１０においてサブコンポーネントＢ  ｖ１．１  ５２２の解析を開始し、ステップ７３０においてこのサブコンポーネントの全上位コンポーネントを検索する。この段階において階層５００は、２つのノード（すなわち２つのコンポーネント）Ａ１  ｖ１．０  ５２１とＡ５１１を有する。これらはそれぞれサブコンポーネントＢ  ｖ１．１  ５２２の上位コンポーネントである。実施例においてＨＭＳ８２０は、上位コンポーネントのツリーを上に向かい、合致する上書参照を検索する。コンポーネントＡ１  ｖ１．０  ５２１は上書参照を有するか否か検査されるが、有していない。コンポーネントＡ５１１は、上書参照５４０を有する（すなわちＨＭＳ８２０は、レビューしているサブコンポーネントについての上書参照を認識する）。さらに上書参照５４０が指す上書コンポーネント５５０は、現在レビューしているサブコンポーネントに合致する。換言すると、上書コンポーネント５５０はコンポーネントＢであり、サブコンポーネントＢ  ｖ１．１  ５２２もコンポーネントＢである。このようにＨＭＳ８２０は、論理コンポーネント階層（すなわち階層５００）において下位コンポーネント（すなわちサブコンポーネントＢ  ｖ１．１  ５２２）を上書参照（すなわち上書参照５４０）により上位コンポーネント（すなわち商品Ａ５１１）に対応付けられた上書コンポーネント（すなわち上書コンポーネント５５０）で置き換えるリクエストを判定する。合致する上書参照がステップ７４０において見つかる。したがって、ＨＭＳ８２０はステップ７４２において、レビューしているサブコンポーネントに対応付けられたモジュールではなく、上書参照に対応付けられたモジュール（すなわちコンポーネントＢ  ｖ１．０）を選択する。換言するとＨＭＳ８２０は、下位コンポーネントを論理コンポーネント階層内において上書参照で置き換える。
【００６６】
実施例において、上書コンポーネントと下位コンポーネントは、１つのコンポーネントの異なるバージョンである場合がある。例えばサブコンポーネントＢ  ｖ１．１  ５２２と上書コンポーネントＢ  ｖ１．０  ５５０は、コンポーネントＢの異なるバージョンである。ＨＭＳ８２０は、ステップ７４２においてそれら異なるバージョンに基づき下位コンポーネントを置き換える上書コンポーネントを選択することができる。実施形態において、下位コンポーネントは下位バージョン識別子を有し、上書コンポーネントは上書バージョン識別子を有し、下位コンポーネントを置き換えるリクエストを判定するステップはさらに、下位バージョン識別子を上書バージョン識別子と比較するステップを有する。実施形態において、下位コンポーネントを置き換えるステップは、親コンポーネントと下位コンポーネントとの間の関連付けを除去するステップ、論理コンポーネント階層内において親コンポーネントに対して上書コンポーネントを取り付けるステップ、を有する。
【００６７】
ステップ７４６において、上書コンポーネント（すなわちコンポーネントＢ  ｖ１．０）に対応付けられたモジュールが取得され、階層５００内のコンポーネントＡ１  ｖ１．０  ５２１に対して子として取り付けられる。換言すると、上書コンポーネント５５０のインスタンス（すなわちコンポーネントＢ  ｖ１．０のインスタンス）は、階層５００内においてコンポーネントＢ  ｖ１．１  ５２２の位置に読み出される。このサブコンポーネントは、ステップ７１０において検査されるモジュールとなる。ただしコンポーネントＢ  ｖ１．０  ５２２は子を有してない（すなわちサブコンポーネントがない）ので、ＨＭＳ８２０はステップ７５０において現在のモジュールを終了する。ＨＭＳ８２０は次にステップ７６０において、トップモジュールを完了したか否かチェックする。完了していない場合、ＨＭＳ８２０はステップ７７０へ戻り、現在の（すなわち今完了した）コンポーネントの親へ進んでさらに解析を実施する。換言すると、あるコンポーネントのサブコンポーネントのレビューが完了すると、ＨＭＳ８２０はステップ７７０においてそのコンポーネントの親へ上り、その親のその他サブコンポーネントを処理する。ステップ７６０においてトップモジュールを完了すると（すなわち、トップモジュールの全サブコンポーネントをレビューし終えると）、ＨＭＳ８２０はステップ７８０において終了する。
【００６８】
このように、コンポーネントＢに対する上書参照は、合致する上書参照が存在しない（すなわちコンポーネントＡ５１１、Ａ１  ｖ１．０  ５２１、Ａ２  ｖ１．０  ５３１）コンポーネントインポートを改ざんしない。上書参照は、Ａ１  ｖ１．０  ５２１によって指定されたコンポーネント（すなわちコンポーネントＢ  ｖ１．１）のみを、上書参照が示すコンポーネント（すなわちコンポーネントＢ  ｖ１．０）で置き換えるように機能する。
【００６９】
実施例において、ＨＭＳ８２０は階層構造５００の検査と構築に対して深さ優先のアプローチを実施する（すなわち、各新規コンポーネントを調査する際において、ＨＭＳ８２０はその他サブコンポーネントをレビューする前に、最初のサブコンポーネントをステップダウンして完全検査する）。ただし、本明細書におけるシステムと方法を実施することを可能にする、階層構造５００の横断と構築のその他アプローチも用い得ることを理解されたい。例えば幅優先アプローチが考えられる（すなわち、サブコンポーネントに対してステップダウンする前に、あるレベルにおける全コンポーネントをレビューする）。また実施形態において、論理コンポーネント階層はさらに、競合バージョンを含む上位コンポーネントに対応付けられた別の下位コンポーネントを含む。このように、下位コンポーネントを置き換えるリクエストを判定するステップはさらに、下位コンポーネントと他の下位コンポーネントとの間の競合を検出するステップを含むことができる。
【００７０】
図８は、階層管理システム８２０の例を示すブロック図８００である。階層管理システム８２０は、階層構造５００（図５に示す）や階層構造６００（図６に示す）のようなコンポーネント設計階層内における上書参照を実装するために用いられる。これに代えて、本明細書の階層管理システム８２０の動作を実現できる任意のコンピュータアーキテクチャを用いることもできる。実施例において階層管理システム８２０は、メモリデバイス８５０内でデータ構造のコンポーネント設計階層を構築し、図７のプロセス７００で説明したような上書参照とコンポーネント置き換えを実現する。
【００７１】
実施例において階層管理システム８２０は、メモリデバイス８５０とプロセッサ８５２を備える。プロセッサ８５２は、命令を実行するため動作するようにメモリデバイス８５０と連結されている。実施形態において、実行可能命令がメモリデバイス８５０内に格納される。階層管理システム８２０は、プロセッサ８５２をプログラムすることにより、本明細書が説明する１以上の動作を実施するように構成することができる。例えばプロセッサ８５２は、１以上の実行可能命令として動作をコード化し、その実行可能命令をメモリデバイス８５０に対して提供することにより、プログラムすることができる。プロセッサ８５２は、１以上のプロセスユニットを備えることができる。例えばマルチコア構成が考えられるが、これに限らない。
【００７２】
実施例においてメモリデバイス８５０は、実行可能命令および／またはその他データなどの情報を格納し取得することができる１以上のデバイスである。メモリデバイス８５０は、１以上のコンピュータ読取可能媒体を含む。例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ソリッドステートディスク、ハードディスク、読取専用メモリ（ＲＯＭ）、ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ （ＥＰＲＯＭ）、ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ（ＥＥＰＲＯＭ）、および／または不揮発性ＲＡＭ（ＮＶＲＡＭ）が挙げられるが、これらに限らない。これらメモリタイプは例示に過ぎず、コンピュータプログラムを格納するため用いることができるメモリタイプを限定するものではない。
【００７３】
実施例においてメモリデバイス８５０は、データ構造、ファイル、その他メモリ領域における様々なコンポーネントやサブコンポーネントに対応付けられた様々なコンポーネントやモジュールデータを格納するように構成することができる。さらにメモリデバイス８５０は、階層構造５００と６００のようなコンポーネント関係データと階層データ、または図１〜図４に示すようなその他コンポーネント関係データを格納することができる。さらにメモリデバイス８５０は、図５と図６に示すような上書参照と上書コンポーネントデータを格納することができる。
【００７４】
実施形態において階層管理システム８２０は、プロセッサ８５２に連結された提示インターフェース８５４を備える。提示インターフェース８５４は、例えばユーザインターフェースおよび／または警告などの情報を、ユーザ８５６に対して提示する。例えば提示インターフェース８５４は、ディスプレイデバイス（図示せず）に連結可能なディスプレイアダプタ（図示せず）備えることができる。ディスプレイデバイスは例えば、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、有機ＬＥＤ（ＯＬＥＤ）ディスプレイ、および／またはディスプレイを有するハンドヘルドデバイスである。実施形態において提示インターフェース８５４は、１以上のディスプレイデバイスを備える。これに加えてまたはこれに代えて、提示インターフェース８５４は、例えばオーディオアダプタおよび／またはスピーカなどの音声出力デバイス（図示せず）を備えることができる。
【００７５】
実施形態において階層管理システム８２０は、ユーザ入力インターフェース８５８を備える。実施例においてユーザ入力インターフェース８５８は、プロセッサ８５２に連結され、ユーザ８５６から入力を受け取る。ユーザ入力インターフェース８５８は例えば、キーボード、ポインティングデバイス、マウス、スタイラス、および／またはタッチパッドやタッチスクリーンなどのタッチ検出パネルを含む。例えばタッチスクリーンなどの単一部材が、提示インターフェース７５４のディスプレイデバイスおよびユーザ入力インターフェース８５８として機能する場合もある。
【００７６】
実施例において、通信インターフェース８６０はプロセッサ８５２に連結され、例えば他コンピュータシステムや階層管理システム８２０にアクセスできるその他デバイスなどのような１以上の他デバイスと通信するように構成されている。このデバイスとしては例えば、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）、スマートフォンなどが挙げられるが、これに限らない。通信インターフェース８６０は、有線ネットワークアダプタ、無線ネットワークアダプタ、モバイル通信アダプタ、シリアル通信アダプタ、および／またはパラレル通信アダプタを含むが、これに限らない。通信インターフェース８６０は、１以上のリモートデバイスからデータを受信し、および／または１以上のリモートデバイスに対してデータを送信することができる。階層管理システム８２０は、リモート通信のためにｗｅｂを用いることができる。例えばリモートデスクトップコンピュータ（図示せず）が挙げられる。
【００７７】
実施例において、提示インターフェース８５４および／または通信インターフェース８６０は、本明細書が説明する方法とともに用いるのに適した情報を、例えばユーザ８５６や他デバイスに対して提供することができる。したがって提示インターフェース８５４および／または通信インターフェース８６０は、出力デバイスとみなすことができる。同様にユーザ入力インターフェース８５８および／または通信インターフェース８６０は、本明細書が説明する方法とともに用いるのに適した情報を受け取ることができ、入力デバイスとみなすことができる。
【００７８】
さらにプロセッサ８５２および／またはメモリデバイス８５０は、ストレージデバイス８６２と連結することができる。ストレージデバイス８６２は、データを格納しおよび／または受け取るのに適した、任意のコンピュータ動作可能なハードウェアである。ここでいうデータは、例えばデータベース１６４に関連するデータが挙げられるが、これに限らない。実施例においてストレージデバイス８６２は、階層管理システム８２０に統合されている。例えば階層管理システム８２０は、ストレージデバイス８６２として１以上のハードディスクドライブを備えることができる。さらに例えばストレージデバイス８６２は、複数のストレージユニットを備えることができる。例えばｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｅｘｐｅｎｓｉｖｅ  ｄｉｓｋｓ（ＲＡＩＤ）構成における複数のハードディスクおよび／またはソリッドステートディスクである。ストレージデバイス８６２は、ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ （ＳＡＮ）、ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ （ＮＡＳ）、および／またはクラウドベースストレージを含む。これに代えて、ストレージデバイス８６２を階層管理システム８２０の外部に設け、ストレージインターフェース（図示せず）を介してアクセスすることもできる。
【００７９】
さらに実施例においてデータベース８６４は、コンポーネント、モジュール、上書参照、上書コンポーネントに対応付けられた様々な静的または動的動作データ、および階層構造を含む。
【００８０】
本明細書が説明する実施形態、および明示はしていないが本明細書の範囲内に含まれる実施形態は、上書参照を含むコンポーネント階層を管理する手段を構成する。例えば階層管理システム８２０、およびこれに追加または含まれる同様のコンピュータデバイスは、プロセッサに本明細書が説明するプロセスと技術を実行させるコンピュータ実行可能命令によってプログラムされた十分なコンピュータ読取可能記憶媒体を備える。具体的には、階層管理システム８２０およびこれに追加または含まれるその他同様のコンピュータデバイスは、上書参照を含むコンポーネント階層を管理する手段を構成する。
【００８１】
図９は、データベース９２０とコンピュータデバイス９１０の構成例９００を示す。上書参照を含むコンポーネント階層を管理するため用いることができる、その他関連するコンピュータコンポーネントを併せて示している。実施形態において、コンピュータデバイス９１０は階層管理システム８２０（図８に示す）と同様のものである。データベース９２０は、コンピュータデバイス９１０内の複数の個別コンポーネントに連結されている。コンピュータデバイス９１０は、特定タスクを実施する。
【００８２】
実施例においてデータベース９２０は、コンポーネント＆モジュールデータ９２２、階層データ９２４、上書参照データ９２６を含む。実施形態においてデータベース９２０は、データベース８６４（図８に示す）と同様のものである。コンポーネント＆モジュールデータ９２２は、図１〜図６で説明したデザインコンポーネントやモジュールに関連する情報を含む。階層データ９２４は、階層構造５００と６００（それぞれ図５と図６に示す）に示すような階層コンポーネントデータやコンポーネント間の関係を定義するデータを含む。上書参照データ９２６は、例えば上書参照５４０や６４０（それぞれ図５と図６に示す）と上書コンポーネント５５０や６５０（それぞれ図５と図６に示す）のような上書参照と上書コンポーネントに関連するデータを含む。
【００８３】
コンピュータデバイス９１０は、データベース９２０とともにデータストレージデバイス９３０を備える。コンピュータデバイス９１０は、階層管理コンポーネント９４０を備える。階層管理コンポーネント９４０は、モジュールをインポートし、階層構造５００や６００などの階層構造を構築管理する。コンピュータデバイス９１０は、階層のコンポーネントに対応付けられたモジュールを処理するモジュール読出コンポーネント９５０を備える。分析コンポーネント９６０は、プロセス７００と８００（それぞれ図７と図８に示す）で説明したような上書参照プロセスを処理する。プロセスコンポーネント９７０は、トークン化システムに関連するコンピュータ実行可能命令の実行を補助する。
【００８４】
以上の説明から分かるように、本明細書の上記実施形態は、コンピュータプログラミングまたはエンジニアリング技術を用いて実装することができる。これは、コンピュータソフトウェア、ファームウェア、ハードウェア、これらの組み合わせまたはサブセットを含む。その結果、コンポーネント階層を管理し、上書参照および下位コンポーネントを上書コンポーネントにより置き換えることを実装するシステムが得られる。結果として得られるこのようなプログラムは、コンピュータ読取可能コードを有し、１以上のコンピュータ読取可能媒体内に実装または提供することができる。これにより、本明細書の実施形態に基づくコンピュータプログラム製品（すなわち製造製品）を製作することができる。コンピュータ読取可能媒体は例えば、固定（ハード）ドライブ、ディスケット、光学ディスク、磁気テープ、読取専用メモリ（ＲＯＭ）などの半導体メモリ、および／またはインターネットその他通信ネットワークやリンクなどの送受信媒体などがあるが、これに限られない。コンピュータコードを格納した製造製品は、媒体からコードを直接実行し、媒体から他の媒体へコードをコピーし、あるいはネットワーク上でコードを送信することにより、作成しおよび／または用いることができる。
【００８５】
これらコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、”ａｐｐ”、またはコードとしても知られている）は、プロセッサをプログラムする機械命令を含み、高レベル手続型および／またはオブジェクト指向プログラム言語および／またはアセンブリ／機械言語によって実装することができる。本明細書において、「機械読取可能媒体」「コンピュータ読取可能媒体」という用語は、機械命令および／またはデータをプログラム可能プロセッサに対して提供するために用いる任意のコンピュータプログラム製品、装置、および／またはデバイス（例えば磁気ディスク、光学ディスク、メモリ、プログラム可能論理デバイス（ＰＬＤ））を指す。これは、機械命令を機械読取可能信号として受け取る機械読取可能媒体を含む。ただし「機械読取可能媒体」「コンピュータ読取可能媒体」は、一時的信号を含まない。「機械読取可能信号」という用語は、機械命令および／またはデータをプログラム可能プロセッサに対して提供するために用いる任意の信号を指す。
【００８６】
本明細書が説明するシステムおよび方法の技術的効果は、以下のうち少なくとも１つを含む。（ａ）論理コンポーネント階層内において下位コンポーネントを上書コンポーネントにより置き換えるリクエストをコンピュータデバイスにより判定するステップであって、前記上書コンポーネントは上書参照により上位コンポーネントに対応付けられている、ステップ、（ｂ）前記論理コンポーネント階層内において前記下位コンポーネントを前記上書コンポーネントにより置き換えるステップ、（ｃ）前記親コンポーネントと前記下位コンポーネントとの間の任意の関連を除去するステップ、（ｄ）前記論理コンポーネント階層内において前記親コンポーネントに対して前記上書コンポーネントを取り付けるステップ、（ｅ）下位バージョン識別子を上書バージョン識別子と比較するステップであって、前記置き換えるリクエストは前記比較に基づき判定される、ステップ、（ｆ）前記下位コンポーネントとその他の前記下位コンポーネントとの間の競合を検出するステップ、（ｇ）前記下位バージョン識別子を他の前記下位バージョン識別子と比較するステップであって、前記置き換えるリクエストは前記比較に基づき判定される、ステップ、（ｈ）置き換えにおいて用いる前記上書コンポーネントを識別するステップ、（ｉ）前記下位コンポーネントの１以上の上位コンポーネントを、前記下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査するステップ、（ｊ）前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ。
【００８７】
実施例の方法とシステムは、コンポーネント階層内において定義された上書参照を用いて、他コンポーネントによりサブコンポーネントを置き換える。例えばサブコンポーネントのあるバージョンは、別バージョンの上書コンポーネントへリンクする上位コンポーネント内における上書参照を定義することにより、階層読み出しの間に置き換えることができる。階層構築の際に、本明細書のシステムと方法は、上書参照以下の合致するサブコンポーネントを上書コンポーネントにより置き換える。このように競合コンポーネントは、元のサブコンポーネントではなく上書コンポーネントを用いることにより、標準化される（すなわち競合が除去される）。
【００８８】
本明細書は、最良の実施形態を含む実施例を用いて説明し、当業者が本開示を実施できるようにしている。これは、デバイスまたはシステムを作成し、用い、組み込んだ方法を実施することを含む。本明細書の請求範囲は特許請求範囲によって定義され、当業者が想到可能なその他実施例を含むことができる。特許請求範囲の文言から逸脱せず、特許請求範囲の文言と実質的な差異がない等価構造要素を含むのであれば、そのような他実施例は特許請求範囲に含まれることが意図されている。
【図１】
2015130161.tif 000003
【図２】
2015130161.tif 000004
【図３】
2015130161.tif 000005
【図４】
2015130161.tif 000006
【図５】
2015130161.tif 000007
【図６】
2015130161.tif 000008
【図７】
2015130161.tif 000009
【図８】
2015130161.tif 000010
【図９】
2015130161.tif 000011
【外国語明細書】
2015130161000001.pdf