JP6573452B2 - 階層参照データにおけるコンフリクトを解消する方法およびシステム - Google Patents

階層参照データにおけるコンフリクトを解消する方法およびシステム Download PDF

Info

Publication number
JP6573452B2
JP6573452B2 JP2014253593A JP2014253593A JP6573452B2 JP 6573452 B2 JP6573452 B2 JP 6573452B2 JP 2014253593 A JP2014253593 A JP 2014253593A JP 2014253593 A JP2014253593 A JP 2014253593A JP 6573452 B2 JP6573452 B2 JP 6573452B2
Authority
JP
Japan
Prior art keywords
component
overwriting
subcomponent
hierarchy
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014253593A
Other languages
English (en)
Other versions
JP2015130161A (ja
JP2015130161A5 (ja
Inventor
ラガヴァン マヘシュ
ラガヴァン マヘシュ
スティーヴン バッハ ローレンス
スティーヴン バッハ ローレンス
リグ ダナ
リグ ダナ
エリオット ハイネス ピーター
エリオット ハイネス ピーター
Original Assignee
ダッソー システムズ アメリカズ コーポレーション
ダッソー システムズ アメリカズ コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ダッソー システムズ アメリカズ コーポレーション, ダッソー システムズ アメリカズ コーポレーション filed Critical ダッソー システムズ アメリカズ コーポレーション
Publication of JP2015130161A publication Critical patent/JP2015130161A/ja
Publication of JP2015130161A5 publication Critical patent/JP2015130161A5/ja
Application granted granted Critical
Publication of JP6573452B2 publication Critical patent/JP6573452B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願は、コンポーネントの階層を管理することに関する。具体的には、参照関係を上書きしてコンポーネント階層内のサブコンポーネントを置き換えることに関する。
大規模統合システム(特に回路)を設計し開発するとき、1つのエンジニアチームがシステムの全体設計に対して責任を負うことは通常ない。エンジニアチームはむしろ、システムのコンポーネントの設計に対して責任を負い、全体設計は各エンジニアチームが提供するコンポーネントの設計の総和となる。システムがより複雑になると、システムのより多くの部分がサブコンポーネントへ分割されることになる。親コンポーネントは複数のサブコンポーネントへ分割される。このコンポーネントとサブコンポーネントの関係は、全体システムを表す階層に関するものである。
開発者や設計者は、再利用可能なコンポーネントを構築する場合がある。これによりコンポーネント階層を設計し実装する時間を削減することができる。階層管理システムは、コンポーネントを再利用可能コンポーネントへリンクするため、階層参照(hrefs)を用いる場合がある。コンポーネント階層がより複雑になると、再利用コンポーネント間で競合が生じる可能性が高まる。この競合は、例えば製品内で複数のコンポーネントが同じ再利用コンポーネントを参照し、それぞれ異なるバージョンを参照している場合に生じる。
1実施形態において、論理コンポーネント階層における競合を管理する、コンピュータ実装した方法を提供する。前記論理コンポーネント階層は、親コンポーネント、および親コンポーネントに関連する子コンポーネントを含む。前記方法は、メモリと通信するコンピュータデバイスを用いる。前記方法は、前記論理コンポーネント階層内において前記子コンポーネントを上書コンポーネントで置き換える要求を前記コンピュータデバイスによって判定するステップを有する。前記上書コンポーネントは、上書参照により前記親コンポーネントと対応付けられている。前記方法はさらに、前記論理コンポーネント階層内において前記上書コンポーネントで前記子コンポーネントを置き換えるステップを有する。
1実施形態において、論理コンポーネント階層における競合を管理するコンピュータデバイスを提供する。前記論理コンポーネント階層は、親コンポーネント、および親コンポーネントに関連する子コンポーネントを含む。前記コンピュータデバイスは、メモリと通信可能に連結されたプロセッサを備える。前記メモリは、前記論理コンポーネント階層を格納する。前記コンピュータデバイスは、前記論理コンポーネント階層内において前記子コンポーネントを上書コンポーネントで置き換える要求を判定するようにプログラムされている。前記上書コンポーネントは、上書参照により前記親コンポーネントと対応付けられている。前記コンピュータデバイスはさらに、前記論理コンポーネント階層内において前記上書コンポーネントで前記子コンポーネントを置き換えるようにプログラムされている。
1実施形態において、コンピュータ実行可能命令を格納した少なくとも1つのコンピュータ読取可能記憶媒体を提供する。少なくとも1つのプロセッサが実行することにより、前記コンピュータ実行可能命令は前記プロセッサに、論理コンポーネント階層内において下位コンポーネントを上書コンポーネントで置き換える要求を判定するステップを実行させる。前記上書コンポーネントは、上書参照により前記下位コンポーネントの上位コンポーネントと対応付けられている。前記コンピュータ実行可能命令はさらに、前記プロセッサに、前記論理コンポーネント階層内において前記上書コンポーネントで前記下位コンポーネントを置き換えるステップを実行させる。
図1〜図10は、本明細書の方法およびシステムの実施形態を示す。
コンポーネント階層の例を示すブロック図である。
図1に示すコンポーネント階層に関連するモジュールバージョンのブロック図である。
図2に示すモジュールバージョンの最初の時点におけるスナップショットである。
図2に示すモジュールバージョンの次の時点におけるスナップショットである。
上書参照を有するコンポーネント階層の例を示すブロック図である。
上書参照を有するコンポーネント階層の別例を示すブロック図である。
上書参照を識別し統合する階層読込プロセスの例を示すフローチャートである。
図5と図6に示すコンポーネント階層内における上書参照を実装するように構成された階層管理システムの例を示すブロック図である。
図5と図6に示すコンポーネント階層を管理するため用いることができるコンピュータデバイス内のデータベースおよび関連するコンピュータコンポーネントのブロック図である。
以下の説明は、本明細書の実施形態を示す。これは例示であり限定目的のものではない。本明細書は、コンポーネント階層を管理するアプリケーション一般に対して適用することができる。
本明細書において、「a」「an」を付した要素またはステップは、特に明示しない限り、複数の要素やステップを排除するものと解釈すべきではない。本明細書の「実施例」「1実施形態」は、言及した特徴部分を組み込んだ別実施形態を排除するように解釈されることを意図したものではない。
本明細書において、「データベース」という用語は、データ本体、リレーショナルデータベース管理システム(RDBMS)、またはこれら双方を指す。本明細書において、データベースは任意のデータコレクションを含む。これは、階層データベース、関係データベース、フラットファイルデータベース、オブジェクト関係データベース、オブジェクト指向データベース、その他コンピュータシステムが格納する構造化されたレコードコレクションまたはデータコレクションを含む。上記例は例示目的のみのものであり、データベースの定義および/または意味を限定することを意図したものではない。RDBMSの例としては、Oracle(登録商標)データベース、MySQL、IBM(登録商標)DB2、Microsoft(登録商標)SQL Server、Sybase(登録商標)、PostgreSQLが挙げられるが、これらに限らない。本明細書におけるシステムと方法を実現可能にする任意のデータベースを用いることができる(Oracleは、カリフォルニア州Redwood ShoresのOracle Corporationの登録商標;IBMは、ニューヨーク州ArmonkのInternational Business Machines Corporationの登録商標;Microsoftは、ワシントン州RedmondのMicrosoft Corporationの登録商標;Sybaseは、カリフォルニア州DublinのSybaseの登録商標)。
本明細書において、プロセッサは任意のプログラム可能システムを含む。これは、マイクロコントローラを用いるシステム、reduced instruction set circuits(RISC)、特定用途向け集積回路(ASIC)、論理回路、その他任意の本明細書における機能を実行可能な回路またはプロセッサを含む。上記例は例示目的のみのものであり、プロセッサの定義および/または意味を限定することを意図したものではない。
本明細書において、「ソフトウェア」「ファームウェア」という用語は交換可能であり、プロセッサが実行するためメモリに格納される任意のコンピュータプログラムを含む。これは、RAMメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、不揮発性RAM(NVRAM)メモリを含む。上記例は例示目的のみのものであり、コンピュータプログラムを格納するために用いることができるメモリ種別を限定することを意図したものではない。
1実施形態において、コンピュータプログラムを提供する。このプログラムは、コンピュータ読取可能媒体上に格納される。1実施例において、システムはサーバコンピュータへ接続することを必要としない単一のコンピュータシステム上で実行される。1実施形態において、システムはWindows(登録商標)環境で実行される(Windowsは、ワシントン州RedmondのMicrosoft Corporationの登録商標である)。1実施形態において、システムはメインフレーム環境およびUNIX(登録商標)サーバ環境で実行される(UNIXは、英国Berkshire,ReadingのX/Open Company Limitedの登録商標である)。アプリケーションは柔軟であり、主要機能を損なうことなくさまざまな環境上で実行できるように設計されている。実施形態において、システムは複数のコンピュータデバイス間で分散した複数のコンポーネントを含む。1以上のコンポーネントは、コンピュータ読取可能媒体に格納されたコンピュータ実行可能命令の形態とすることができる。システムとプロセスは、本明細書の特定実施形態に限定されるものではない。また各システムと各プロセスのコンポーネントは、本明細書のその他コンポーネントおよびプロセスから独立し切り離して実施することができる。各コンポーネントとプロセスは、他のパッケージやプロセスと組み合わせて使用することもできる。
複数のコンポーネントを有するハードウェアまたはソフトウェアシステムの開発は、システムの設計をより小さく管理しやすいシステムコンポーネント設計へ分割すると、より効率的になる。システム設計は、上書参照を追加してサブコンポーネントを他のバージョンへ置き換える階層構造により、さらに改善することができる。
図1は、商品A110の階層構造100である。商品A110は、第1コンポーネントA120、第2コンポーネントA130を備える。第2コンポーネントA130は、2つのサブコンポーネントA2,1140とA2,2150を備える。製品A110は、それぞれコンポーネントA120とコンポーネントA130との間で、階層参照111と112を有する。同様にコンポーネントA130は、それぞれサブコンポーネントA2,1140とA2,2150との間で、階層参照131と132を有する。製品A110はさらに、図示しないコンポーネント、さらにその配下のサブコンポーネントを含むこともできる。サブコンポーネントはさらにサブコンポーネントを含むことができ、以下同様である。
図1に示すような階層構造100は、商品A110のコンポーネントやサブコンポーネントとは別に構築することができる(例えば、商品A110の完全な階層構造100のサブセット構造)。また本実施形態において要素A110は商品であるが、要素A110はコンポーネントとみなすこともでき、要素A120と要素A130は要素A110のサブコンポーネントとみなすことができる。同様に要素A2,1140要素A2,2150は、そのサブコンポーネント(図示せず)との間で階層関係にあるコンポーネントとみなすことができる。
商品A110は、モジュールにより設計されたハードウェアまたはソフトウェアシステムである。例えば商品A110は車両であり、コンポーネントA120は車両フレームであり、コンポーネントA130は車両エンジンである。エンジンのサブコンポーネントA2,1140とA2,2150は例えば、エンジンのクランクシャフトとシリンダである。他の例としては、商品A110は集積回路(IC)チップであり、コンポーネントA120はランダムアクセスメモリ(RAM)であり、コンポーネントA130はICチップの演算処理装置(CPU)である。CPUのサブコンポーネントA2,1140とA2,2150は例えば、CPUの算術論理演算装置(ALU)と制御ユニットである。
開発プロセスにおいて、特定コンポーネントの設計チームは、コンポーネントおよび/または当該コンポーネントのサブコンポーネントの全ての現行設計および従前設計にアクセスする場合がある。設計チームは、階層構造100の各レベルにおけるコンポーネントに対して責任を負う。例えば設計チームは商品A110を開発し、別の設計チームが商品A110の各コンポーネント(例えばコンポーネントA120とA130)を開発する。商品A110の設計チームは、商品A110のコンポーネントの設計を用いて、商品A110をシミュレートおよび/またはテストする責任を負う。
商品A110およびそのコンポーネントA120とA130、サブコンポーネントA2,1140とA2,2150の設計は、中央データベースまたは分散データベース(図示せず)内に格納されるモジュール内のファイルに含まれる。設計チームはこれらを取得する。モジュールは通常、1以上のファイルを含む。これはソフトウェアコードおよび/または設計データを含む。モジュールは他のモジュールを格納する場合があり、これらはリリースされ、あるいは再利用のためパッケージされる。実施例において、例えばマサチューセッツ州WalthamのDassault Systemes ENOVIA Corp.のビジネスオブジェクトデータベースのような、サーバサイドデータベースを用いる。本明細書のシステムと方法を実現するその他データベースまたはデータベースの組み合わせを用いることもできる。
コンポーネントの開発を促進しトラッキングすることを補助するため、モジュール内に格納されたコンポーネントの各設計は、当該モジュールに関する特定のバージョン番号を有する場合がある。例えば、モジュールおよび/またはコンポーネントのバージョンである。
図2は、特定コンポーネントに対応付けられたモジュールバージョンのブロック図200である。図1に示すコンポーネント階層と同じものを用いている。商品A110は、異なるバージョン番号を有する複数のモジュールと対応付けられる場合がある。例えばモジュールA v1.0 211、v1.1 212、v1.2 213である。
図200は、モジュールブランチ210、220、230、240、250を含む。モジュールブランチは、特定の商品、コンポーネント、またはサブコンポーネントに共通して関連するオブジェクトコレクションの時系列更新を示す。例えばモジュールブランチ210内に含まれまたはこれから参照されるモジュールコレクションA v1.0 211、v1.1 212、v1.2 213は、商品A110の異なるモジュールバージョンである。これらは前モジュールバージョンの更新または変更をそれぞれ示す。本明細書において、共通モジュールブランチを共有するモジュールは、同じモジュールとみなすことができる。これは例えば、共通のモジュールバージョン系列の同一または異なるバージョンであることを示す。同様に要素またはコンポーネントは、共通バージョン系列を共有するのであれば、同一であるとみなすことができる(例えばブランチ210、220、230、240、250)。モジュールブランチ220は、モジュールA v1.0 221とA v1.1 222のコレクションを示す。これらはコンポーネントA120に対応付けられた別バージョンのモジュールである。モジュールブランチ230は、モジュールA v1.0 231、A v1.1 232、A v1.2 233のコレクションを示す。これらはコンポーネントA130に対応付けられた別バージョンのモジュールである。モジュールブランチ240は、モジュールAs,1 v1.0 241のコレクションを示す。これはサブコンポーネントA2,1140に対応付けられている。モジュールブランチ250は、モジュールAs,2 v1.0 251とAs,2 v1.1 252のコレクションを示す。これらはサブコンポーネントA2,2150に対応付けられた別バージョンのモジュールである。
モジュールバージョン(例えばモジュールA v1.0 211、v1.1 212、v1.2 213)は、コンポーネント設計(例えば商品A110)の継時的更新または変更のなかで特定日時において更新または変更されたモジュールである。設計チームによる1モジュールのコンポーネント設計に対する任意の変更により、新たなモジュールバージョン番号を有する新たなモジュールを生成することになる。例えばコンポーネントA130の設計チームは、モジュールA V1.1 232内に含まれるバージョン1.1の設計を変更し、新たなバージョン番号1.2を有するモジュールA V1.2 233を生成して新設計を保存する。特定のコンポーネント(例えばコンポーネントA130)は、複数の設計バージョンを有する場合がある。これらはそれぞれ異なるバージョン番号(例えばv1.0、v1.1、v1.2)を有する個別のモジュール(例えばA v1.0 231、A v1.1 232、A v1.2 233)内に格納される。
商品またはコンポーネントの開発をさらに促進するため、特定のサブモジュールを参照するコンポーネントのモジュール内に、1以上の階層参照を格納することができる。図3と図4は、特定の商品設計のモジュールとその商品のコンポーネントに関連するサブモジュールとの間において、時刻t1からt2において存在し変化する、異なるタイプの階層参照の例を示す。図3と図4は、階層構造100を用いる。商品A110は2つのコンポーネントA120とA130を含み、コンポーネントAはサブコンポーネントA2,1140を含む。サブモジュールは、他のモジュールから参照され、当該モジュールに対応付けられたコンポーネントのサブコンポーネントに対応する、任意のモジュールである。例えば図3において、モジュールA V1.0 321とA V1.0 331はモジュールA v1.0 311のサブモジュールであり、モジュールA2,1 V1.0 341はモジュールA v1.0 331のサブモジュールである。モジュールA v1.0 311はコンポーネントA110に対応付けられ、サブモジュールA V1.0 321とA V1.0 331はそれぞれサブコンポーネントA120とA130に対応付けられている。
図3は、商品A110のモジュール(図2に示す)を格納するデータベース(図3には示していない)コンテンツの時刻t1におけるスナップショット300の例である。モジュールA v1.0 311は、商品A110の設計のバージョン1.0を含む。モジュールA V1.0 321とA V1.0 331はそれぞれ、コンポーネントA120とA130(ともに図2に示す)の設計のバージョン1.0を含む。モジュールA2,1 V1.0 341は、サブコンポーネントA2,1140(図2に示す)の設計のバージョン1.0を含む。モジュールブランチ320は、コンポーネントA120に対応するモジュールの経時変化を示し、時刻t1においてモジュールA V1.0 321を含みまたは参照する。モジュールブランチ330は、コンポーネントA130に対応するモジュールの経時変化を示し、時刻t1においてモジュールA V1.0 331を含みまたは参照する。モジュールブランチ340は、サブコンポーネントA2,1140に対応するモジュールの経時変化を示し、時刻t1においてモジュールA2,1 V1.0 341を含みまたは参照する。
時刻t1は例えば、商品A110の設計チームが最初にモジュールA v1.0 311をデータベースに格納する時刻である。モジュールA v1.0 311は、商品A110の最初の設計を含む。これにはバージョン番号1.0が割り当てられる。設計チームは、この時刻においてまたはこの時刻前に、「アルファ」タグ380に対して動的階層参照351を定義し、モジュールA V1.0 331に対して固定階層参照353を定義する。
図3の例において、固定階層参照352が生成され、モジュールA V1.0 321を指す。これは以下に述べるように、「アルファ」タグ380が時刻t1において参照するモジュールである。したがって最初の時点において、階層参照351と352のグループ350は、異なるオブジェクトを指しているが、同じモジュールを参照する。動的階層参照が生成されるとき固定階層参照を自動的に定義することにより、設計チームは将来において、この固定階層参照を用いて、動的階層参照が後続モジュールバージョンを指している場合であっても、動的階層参照が最初に対応していたものを判定することができる。
同様にモジュールA V1.0 331の動的階層参照361は、設計チームがモジュールA V1.0 331をデータベースに格納またはコミットしたときまたはその前に、コンポーネントAについて設計チームによって生成される。本例においてコンポーネントAの設計チームは、「ゴールデン」タグ390を指す動的階層参照361を定義する。ゴールデンタグ390は、最初の時点においてはモジュールA2,1 V1.0 341を指す。固定階層参照362は、プロセス550において自動的に定義され、動的階層参照361が最初に指しているものと同じモジュール(モジュールA2,1 V1.0 341)を指す。最初の時点において、階層参照361と362のグループ360は、異なるオブジェクトを指しているが、同じモジュールを参照する。
図3に示す例において、コンポーネントに対応付けられたモジュールに関する階層参照は、そのモジュールがデータベースにコミットされた時点で生成される。モジュール内に格納された階層参照は、モジュールがコミットされた後の任意時点で追加し、削除し、変更することもできる。
図4は、商品A110(図2に示す)のモジュールを格納するデータベース(図4には示していない)の後時刻t2におけるスナップショット400である。時刻t1とt2の間において、コンポーネントA120、A130、A2,1140それぞれの設計チームは、新たなモジュールA V1.1 421、A V1.1 431、A2,1 V1.1 441を発信する。またコンポーネントA2,1140の設計チームは、「ゴールデン」タグ390をモジュールA2,1 V1.0 341からモジュールA2,1 V1.1 441へ移動する。
一般に階層参照は、動的である場合もあるし固定である場合もある。固定階層参照(例えば階層参照352、353、362)は、コンポーネントまたはサブコンポーネントの特定バージョンを含むモジュールを参照する。例えば固定階層参照352はモジュールA V1.0 321を参照し、これはコンポーネントA120の設計のバージョン1.0を含む。一方で動的階層参照(例えば階層参照351と361)は、タグまたはモジュールブランチを参照する場合がある。これらは特定モジュールを参照する。タグとモジュールブランチは変更される場合があり、したがって動的階層参照が最終的に参照するモジュールは、変更され得る。タグはユーザが手動で変更して別のモジュールを参照するようにすることができる。例えばコンポーネントA2,1140の設計チームは、「ゴールデン」タグ390をモジュールA2,1 V1.0 341からモジュールA2,1 V1.1 441へ移動させる。モジュールブランチは、新たなモジュール(例えば新たなモジュールバージョン)を追加することにより変更できる。例えばコンポーネントA120の設計チームが新モジュールA V1.1 421をデータベースへ登録すると、モジュールブランチ320は新モジュールA V1.1 421を含みまたは参照するように変更される(例えばモジュールブランチは最新バージョンを指すようになる)。
異なるタイプのタグを定義することもできる。例えば任意のコンポーネントの最新モジュールは、「アルファ」タグと対応付けることができる。これはコンポーネントの「開発中」バージョンを示す。図3に示す例において、ブランチ320を参照する「アルファ」タグ380を定義することにより、「アルファ」タグ380はモジュールブランチ320が参照しまたは含んでいる最新バージョンのモジュールを参照することになる。別実施形態において、動的階層参照351はモジュールブランチ320を直接指すことができ、同様の結果が得られる。他例(図示せず)において、コンポーネントのモジュールはタグ「ベータ」を付すことができ、これはコンポーネントの「テスト中」バージョンを示す。コンポーネントのモジュールはまた、「ゴールデン」タグを付すことができ、これはコンポーネントの最新「安定」バージョンを示す。図3に示す例において、コンポーネントA2,1140の設計チームは、コンポーネントA2,1140のバージョン1.0を「ゴールデン」バージョンとして最初に定義する。「アルファ」「ベータ」「ゴールデン」の各タグは変更され得る(例えば設計グループはタグを変更して別のモジュールバージョンを指すようにする)ので動的なものであり、したがって必ずしも同じモジュールを参照するわけではない。
図5は、上書参照を有する例示商品A511の階層構造500である。商品A511は、第1コンポーネントA521と第2コンポーネントA531を有する。商品A511は、商品A110(図1と図2に示す)または商品A v1.0 311(図3と図4に示す)と類似しており、コンポーネントA521とA531は商品A120とA130(図1と図2に示す)またはAv1.0 321とA v1.0 331(図3と図4に示す)に類似している。第1コンポーネントA521は、1つのサブコンポーネントB v1.1 522を含む。商品A511は、コンポーネントA521とコンポーネントA531に対してそれぞれ階層参照512と513を有する。同様にコンポーネントA521は、サブコンポーネントB v1.1 522に対して階層参照514を有する。階層構造500内の各コンポーネントはバージョン番号などのバージョン識別子を有しているが、見易さのためコンポーネントA511、A521、A531についてはバージョン番号を除去していることを理解されたい。
本明細書において、「下位」「上位」「親」「子」という用語は、論理的にファミリーの関係にあるコンポーネント間の階層関係(例えばコンポーネントのツリー構造)を示す。例えばコンポーネントB v1.1 522は、上位コンポーネントA521とA511の下位コンポーネントとして参照することができる。コンポーネントA521は、コンポーネントB v1.1 522の親(すなわち最初に隣接する直近上位)であり、同様にコンポーネントB v1.1 522はコンポーネントA521の子である。さらにコンポーネントA521は、コンポーネントA511(すなわち親)の下位コンポーネント(この場合は子)である。このようにこれら用語は、コンポーネント間の論理関係を便宜上定義し説明するために用いることができる。
実施形態において、商品A511は上書コンポーネントB550に対する参照540を含む。上書参照540は、任意の合致するコンポーネントを上書コンポーネントB550で置き換えるサインとして用いられる。換言すると、コンポーネントA511(すなわちA521、A531、B v1.1 522の上位コンポーネント)内に上書参照540が存在する場合、システムは以下に詳述するようにその後世代において、階層500内のコンポーネントB以下の任意の参照を置き換える。
実施例において参照540は、参照512、513、514のような階層参照514ではなく、上書参照540として用いられ参照される。上書コンポーネントB550は、図5に示す例において、コンポーネントB v1.1 522のバージョン(すなわちバージョン1.1)とは異なるバージョン1.0を含む。実施例において、上書コンポーネントB550はコンポーネントA511との間でファミリー関係にはない(すなわちコンポーネントB550は階層構造の直接メンバーではない)。したがって上書参照540は、ファミリー関係を表していない。上書コンポーネント540は、他コンポーネントに対するリンク、あるいは実施形態によっては特定バージョンのコンポーネントである。その用途については以下に詳述する。
動作中において、例えばコンピュータアシストドラフトシステム内の商品A511の階層構造500などのような、商品および/またはコンポーネントの階層構造を読み取り構築するコンピュータシステム(図5には示していない)は、システムのメモリ(図5には示していない)内のデータ構造へコンポーネントモジュールを読み出す。実施形態において、サブコンポーネントを別モジュールに格納することができる(例えばコンポーネントA511をあるモジュールに格納し、別モジュールに格納されているサブコンポーネントA521を参照する)。他実施形態において、サブコンポーネントは同一モジュール内に格納することができる(例えばコンポーネントA511とサブコンポーネントA521を同一モジュール内に格納する)。実施例において、各コンポーネントA511、A521、A531、B v1.1 522は、別モジュールに格納することができる。
実施例において、システムはコンポーネントA511に対応付けられたモジュールの読み出しを開始する。コンポーネントA511に対応付けられたモジュールは、コンポーネントA511が2つの子コンポーネントA521とA531を含むこと、および上書コンポーネント550に対する上書参照540を認識する。システムは次に、A521に対応付けられたモジュールを検査および/またはインポートする。コンポーネントA521のモジュールを検査する間、システムはサブコンポーネントB v1.1 522(すなわち、A521に対応付けられたモジュール内で定義された、A521の子コンポーネント)の存在を通知する。
既知のシステムにおいて、サブコンポーネントは即座に処理される(すなわち、子コンポーネントB v1.1 522のデータ構造は、親コンポーネントA521の階層参照に基づき階層構造へ即座に読み出される)。ただし実施例において、サブコンポーネントB v1.1 522を読み出す前に、システムはコンポーネントBに対する上書コンポーネントが存在するか否かをチェックする。具体的には、システムはサブコンポーネントB v1.1 522の1以上の上位コンポーネントについて、例えば上書参照540のようなコンポーネントBに対する上書参照が存在するか否かをチェックする。コンポーネントBに対する上書参照が存在する場合、システムは、親(例えばコンポーネントA521)によって明示的に参照されるコンポーネント(例えばコンポーネントB v1.1 522)に代えて上書コンポーネント550(すなわち上書参照540によって参照されるコンポーネント)を用いるべきであることが分かる。このようにして、システムはコンポーネントB v1.1 522(すなわちコンポーネントBのバージョン1.1)に対応付けられたモジュールを読み出すのではなく、コンポーネントB v1.1 522の参照(すなわち参照514)を中止して代わりに上書参照540が参照する上書コンポーネント550(例えばコンポーネントBのバージョン1.0)を読み出す。さらに実施形態において、コンポーネントA521(すなわち上書されるサブコンポーネントの親コンポーネント)のデータ構造は、参照514が上書される旨を示すようにマークされる。この上書される参照514は処理されず、以後の設計において参加しないことになる。
実施例において、上書参照540は特定タイプのコンポーネントのサブコンポーネントを読み出すことに代わって、特定の上書コンポーネントを用いる。換言すると上書参照540は、サブコンポーネントが上書コンポーネントに合致するがバージョンが異なる(すなわち、ブランチ210、220、230、240、250と同様に共通のコンポーネントバージョン系列を共有しているが、異なるバージョンを呼び出している)場合のみ用いられる。実施形態において、各コンポーネントは固有のURLその他の識別子を有する。これを用いて、コンポーネント間またはコンポーネントと上書参照/コンポーネントとの間の合致を識別することができる。換言すると、例えばコンポーネントBの全バージョンは共通のURLを共有し、同じURLを共有する他のコンポーネントは存在しない。このように上書参照は、合致するURLを有する上位コンポーネントチェーンにおける参照となる。したがって上書参照バージョンは、上書参照がリンクしている上位コンポーネントの後世代における上書コンポーネントの別バージョンに代わって用いられる。
実施形態において、複数の上位コンポーネントが、同一コンポーネント(例えばコンポーネントB)について定義された上書コンポーネントを有する場合がある。このような状況に対処するため、実施形態においてシステムは、B v1.1 522の親(すなわちA521)から開始して、ツリーのトップ(すなわちコンポーネントA511)に到達するまで、各コンポーネントの親/上位コンポーネントを検索する。実施形態において、コンポーネントBについて最初に見つかった上書参照が用いられる。実施例において、コンポーネントBについて見つかった最も上位の上書参照(すなわち最上位コンポーネントからの参照)が用いられる。
さらに他実施形態において、システムは各コンポーネント/サブコンポーネントを読み出す前に、上書参照についてのチェックを実施する。換言すると、図5に示す例においてシステムは、コンポーネントA521、A531、B v1.1 522を最初に読み出すとき、上書参照をチェックする。したがって高次コンポーネント(すなわち子を有するコンポーネント)であっても、より上位のコンポーネントによって代えられる場合がある。
また実施形態において、ユーザは上書コンポーネント550に対する上書参照540を定義する。実施形態において、上書参照540は、コンポーネントA511に対応するモジュール内に格納された上書コンポーネント550に対するリンクその他の参照である。例えばユーザは、上書コンポーネント550に対応付けられたデータ構造に対するメモリポインタとして上書参照540を定義することができる。あるいはユーザは、上書コンポーネント550に対するhrefとして上書参照540を定義することができる。他実施形態において上書参照540は、上位コンポーネント(例えばコンポーネントA511)に対応付けられたデータ構造におけるフィールドである。このフィールドは、上書参照540と上書参照550を用いてサブコンポーネントに代替するか否かおよび/またはいつ代替するかを判定するための優先識別条件を含む。例えばメモリにおける上位コンポーネントのデータ構造またはモジュールファイルは、「コンポーネントB」のバージョン「v1.0」に対する上書参照を定義するフィールド情報を含むことができる。このように、上書参照540はメモリフィールドにおけるデータの存在によって識別することができ、上書コンポーネント550はフィールドデータを用いてそのフィールド内におけるコンポーネント名とバージョンによりコンポーネントモジュールにアクセスすることを通じて識別することができる。
図6は、商品A611のコンポーネントの別階層例600のブロック図である。商品A611は上書参照を含む。商品A611は、第1コンポーネントA621と第2コンポーネントA631を含む。第1コンポーネントA621は、1つのサブコンポーネントB v1.1 622を含む。これはコンポーネントBのバージョン1.1を示す。第2コンポーネントA631は、1つのサブコンポーネントB v1.2 632を含む。これはコンポーネントBのバージョン1.2を示す。商品A611は、それぞれコンポーネントA621とコンポーネントA631に対する階層参照612と613を有する。同様にコンポーネントA621はサブコンポーネントB v1.1 622に対する階層参照614を有し、第2コンポーネントA631はサブコンポーネントB v1.2 632に対する階層参照615を有する。
実施例において、商品A611は上書コンポーネントB v1.1 650に対する参照640を含む。上書参照640と上書コンポーネントB v1.1 650は、実施形態において、それぞれ参照540およびコンポーネント550(図5に示す)と同様である。上書コンポーネントB v1.1 650は、図6に示す例においてコンポーネントB b1.1 622と同一(すなわちバージョン1.1)であるバージョン1.1を含むが、コンポーネントB v1.2 632のバージョン(すなわちバージョン1.2)とは異なる。実施例において上書参照640は、所与の上位コンポーネント(例えばコンポーネントA611)以下の競合コンポーネント間の競合解消のために用いられる。換言すると上書参照640は、2つのサブコンポーネントが合致するが異なるバージョンを有する(すなわち、ブランチ210、220、230、240、250のように同一のコンポーネントバージョン系列であるが、異なるバージョンを呼び出している)場合のみ用いられる。2つの競合するサブコンポーネントの共通する上位コンポーネント内に上書参照640が存在すると、システムは競合しているサブコンポーネントの一方または双方を上書きコンポーネント650で置き換える。
動作中において、例えばコンピュータアシストドラフトシステム内の商品A611の階層構造600などのような、商品および/またはコンポーネントの階層構造を読み取り構築するコンピュータシステム(図6には示していない)は、システムのメモリ(図6には示していない)内のデータ構造へコンポーネントモジュールを読み出す。実施形態において、サブコンポーネントを別モジュールに格納することができる(例えばコンポーネントA611をあるモジュールに格納し、別モジュールに格納されているサブコンポーネントA621を参照する)。他実施形態において、サブコンポーネントは同一モジュール内に格納することができる(例えばコンポーネントA611とサブコンポーネントA621を同一モジュール内に格納する)。実施例において、各コンポーネントA611、A621、A631、B v1.1 622、B v1.2 632は、別モジュールに格納することができる。
実施例において、システムはコンポーネントA611に対応付けられたモジュールの読み出しまたはインポートを開始する(すなわち、コンポーネントA611の構造に対応付けられたデータを読み出し、メモリ内にそのコンポーネントのデータ構造を構築する)。コンポーネントA611に対応付けられたモジュールは、コンポーネントA611が2つの子コンポーネントA621とA631を含み、さらには上書コンポーネントB v1.1 650に対する上書参照640を含むことを認識する。システムは次に、A621が子サブコンポーネントB v1.1 622を含み、A631が子サブコンポーネントB v1.2 632を含み、これらが競合することを認識する。システムは、各サブコンポーネントB v1.1 622とB v1.2 632の上位階層を検索し、コンポーネントB(例えば上書コンポーネントB v1.1 650)に対する上書参照(例えば参照640)を有する共通上位コンポーネント(例えばコンポーネントA611)を特定する。上書参照640を見つけると、システムは上書コンポーネントB v1.1 650(すなわちコンポーネントBのバージョン1.1)に基づき各子サブコンポーネントBのコンポーネントBバージョンを読み出す。換言すると、コンポーネントBバージョン1.1のデータ構造は、子サブコンポーネントとして図6に示す622と632の位置に読み出される。さらに実施形態において、参照614と615は上書された旨をマークされる。
図5と図6に示す上記例は、新規構造を読み出す間(すなわちメモリ内にコンポーネント階層を最初に構築する間)に実施することを説明した。しかし、上書参照のその他実装も可能であり本明細書の範囲内であることを理解されたい。例えば上書参照の解析は、既に構築された構造において実施することができる。コンポーネントは追加または削除される場合があり、上書参照の解析をその結果得られる構造に対して実施して新たに生じた競合をチェックすることができる。上書参照は、既存の構造に追加しまたは既存の構造から削除することができ、上書参照の解析を実施して競合を発見しおよび/またはサブコンポーネントを置き換えることができる。実施形態において、コンポーネントが追加または削除されると、それらコンポーネントは上書参照の影響、および階層構造に対する変更について分析される。
本明細書の実施例において、コンポーネントを優先するか否かは、コンポーネントのマッチングおよびバージョン差分を比較することに基づき判定される。実施例において優先識別条件は、例えばURLなどのコンポーネント識別子、およびバージョン番号などのバージョン識別子に基づく2つのコンポーネント間のマッチングを含む。バージョン識別子は一般に、コンポーネントの属性とみなされる。システムは優先識別条件を用いて、上書コンポーネントでサブコンポーネントを優先するか否かを判定する。コンポーネントが同一のコンポーネント識別子を有するがバージョン識別子が異なる場合、システムは元の参照に代えて上書参照を用いる。ただし、その他の優先識別条件を用いることができることを理解されたい。例えば優先識別条件は、図2に示すようなモジュールブランチを共有する各コンポーネントのユニークインデックス番号などのその他のコンポーネント識別子、またはコンポーネント識別子セットを含むことができる。優先解消情報は、コンポーネントのその他の単一属性もしくはコンポーネント属性の組み合わせ、または属性範囲を含むことができる。
実施形態において、優先識別条件は、コンポーネント識別子(例えばURL)とバージョン識別子(例えばバージョン番号)だけでなく、階層内におけるコンポーネントの相対パスを含む。コンポーネントの相対パスは、階層内におけるコンポーネントの位置を示し、上書参照が適用される上位コンポーネントに対する相対パスである。あるいは、その他コンポーネントに対する相対もしくは絶対パスである。優先識別条件内に相対パスを含めることにより、上書参照がサブコンポーネントを置き換える時点を判定する際に、他層の粒度を用いることができる。具体的には、相対パスを含めることにより、システムは特定のサブコンポーネント(すなわち、特定の相対パスに位置するサブコンポーネント)を置き換えることができる。これにより、サブコンポーネントがURL(すなわち同一コンポーネント)とパス(すなわちその場所における特定コンポーネント)に合致し、バージョン識別子が異なる場合、システムはそのサブコンポーネントを上書コンポーネントで置き換える。このように、上書参照が指定する相対パスにおける特定サブコンポーネントのみが置き換えられ、上書参照を有する上位コンポーネントのその他子孫は置き換えられない。
他実施形態において、上書参照はコンポーネントの削除を示すことができる。このとき例えば上書コンポーネント「null」を用いる(例えば上書コンポーネントのバージョン=null)。これにより上書参照は、合致するコンポーネントを識別するとともに、上書コンポーネントのバージョンが「null」なのでその合致したサブコンポーネントを除去する(すなわち空コンポーネントで置き換える)ような、優先識別条件を含むことができる。
図7は、上書参照を識別子統合する階層読出プロセス700の例を示すフローチャートである。実施例においてプロセス700は、階層管理システム(HMS)820(図8に示す)やコンピュータデバイス910(図9に示す)などのようなコンピュータシステムを用いて実施される。設計チームは、モジュールバージョン(例えばコンポーネント階層)に対するリクエストを入力する。例えば商品A511(図6に示す)に対するリクエストである。HMS820は、ステップ702においてプロセス700を開始する。ステップ704において、設計チームが取り組んでいる最上位レベルコンポーネントに対応付けられたモジュールを取得する。トップレベルモジュールおよびこれが参照する各モジュールは、1以上のサブコンポーネントに対する参照を含む場合がある。各サブコンポーネントは、関連モジュールを有する場合がある。関連モジュールはさらに1以上のサブコンポーネントに対する参照を含む場合がある。以下同様である。
HMS820は、トップモジュール(すなわちトップコンポーネント)から開始する。これは実施例において商品A511である。商品A511は、階層構造500(図5に示す)に対して組み込まれ、要素511によって表される(すなわち、トップレベル商品のデータ構造がメモリ内で生成され、トップモジュールからインポートされたデータを含む)。実施例において、トップモジュールはコンポーネントA521とA531を参照する。ステップ710においてHMS820は、処理している現在のモジュール(すなわち商品A511に対応付けられたトップモジュール)が未処理(すなわち図5に示す階層構造500に対して組み込まれていない)のサブコンポーネントを有するか否かを検査する。1以上の未レビューサブコンポーネントがある場合、HMS820はステップ720において未レビューサブコンポーネントをインポートのため選択する。
例えば1実施形態において、HMA820はコンポーネントA521を選択する。サブコンポーネントA521を完全にインポートする前に、HMS820はサブコンポーネントを解析して合致する上書参照の存在をチェックする。HMS820は、コンポーネントAに合致する上書コンポーネントを参照する上書参照を階層500内において検索する。実施形態においてHMS820は、下位コンポーネントの1以上の上位コンポーネントを、下位コンポーネントの親から開始して論理コンポーネント階層の昇順に検査し、上位コンポーネントを検査する際に上書参照を認識する。上書参照を認識するステップは、下位コンポーネントに合致するコンポーネントに対応付けられた上位コンポーネントを検査して参照をチェックするステップを含む。実施形態において、上位コンポーネント内で最初に合致した上書参照が用いられる。換言すると、合致する上書参照を有する直近上位コンポーネントが用いられる。別実施形態において、上位コンポーネント内で最上位の合致する上書参照が用いられる。換言すると、合致する上書参照を有する最も遠い上位コンポーネントが用いられる。
実施例において、HMS820はステップ730においてサブコンポーネントの上位コンポーネントを検索し、特定のレビューするサブコンポーネント(すなわちA)に合致する上書コンポーネントを参照する上書参照をチェックする。本例において、階層500内におけるAの唯一の上位コンポーネントは、親であるコンポーネントA511のみである。コンポーネントA511は、上書参照(すなわち図5に示す上書参照540)を有する。しかし上書参照540は、現在解析しているサブコンポーネントに合致しない上書要素550を参照している(すなわち、上書参照540はコンポーネントBに対するものであり、解析しているサブコンポーネントはコンポーネントAである)。ステップ740において合致する上書参照が見つからない場合、HMS820はステップ744において、解析しているサブコンポーネント(すなわちコンポーネントA v1.0 521)に対応付けられたモジュールを選択し、ステップ746においてそのモジュールを階層構造へ取得およびインポートする(例えばコンポーネントA v1.0 521をA511の子として追加する、など)。
実施例において、サブコンポーネントモジュールを取得するステップ746の一部として、このサブコンポーネントはレビューしているモジュールとなる。HMS820は、処理をループしてコンポーネントA1 v1.0 521のサブコンポーネントを検討する。本例において、コンポーネントA1 v1.0 521は1つのサブコンポーネントB v1.1 522を有する。HMS820はステップ710においてサブコンポーネントB v1.1 522の解析を開始し、ステップ730においてこのサブコンポーネントの全上位コンポーネントを検索する。この段階において階層500は、2つのノード(すなわち2つのコンポーネント)A1 v1.0 521とA511を有する。これらはそれぞれサブコンポーネントB v1.1 522の上位コンポーネントである。実施例においてHMS820は、上位コンポーネントのツリーを上に向かい、合致する上書参照を検索する。コンポーネントA1 v1.0 521は上書参照を有するか否か検査されるが、有していない。コンポーネントA511は、上書参照540を有する(すなわちHMS820は、レビューしているサブコンポーネントについての上書参照を認識する)。さらに上書参照540が指す上書コンポーネント550は、現在レビューしているサブコンポーネントに合致する。換言すると、上書コンポーネント550はコンポーネントBであり、サブコンポーネントB v1.1 522もコンポーネントBである。このようにHMS820は、論理コンポーネント階層(すなわち階層500)において下位コンポーネント(すなわちサブコンポーネントB v1.1 522)を上書参照(すなわち上書参照540)により上位コンポーネント(すなわち商品A511)に対応付けられた上書コンポーネント(すなわち上書コンポーネント550)で置き換える要件決定する。合致する上書参照がステップ740において見つかる。したがって、HMS820はステップ742において、レビューしているサブコンポーネントに対応付けられたモジュールではなく、上書参照に対応付けられたモジュール(すなわちコンポーネントB v1.0)を選択する。換言するとHMS820は、下位コンポーネントを論理コンポーネント階層内において上書参照で置き換える。
実施例において、上書コンポーネントと下位コンポーネントは、1つのコンポーネントの異なるバージョンである場合がある。例えばサブコンポーネントB v1.1 522と上書コンポーネントB v1.0 550は、コンポーネントBの異なるバージョンである。HMS820は、ステップ742においてそれら異なるバージョンに基づき下位コンポーネントを置き換える上書コンポーネントを選択することができる。実施形態において、下位コンポーネントは下位バージョン識別子を有し、上書コンポーネントは上書バージョン識別子を有し、下位コンポーネントを置き換える要件決定するステップはさらに、下位バージョン識別子を上書バージョン識別子と比較するステップを有する。実施形態において、下位コンポーネントを置き換えるステップは、親コンポーネントと下位コンポーネントとの間の関連付けを除去するステップ、論理コンポーネント階層内において親コンポーネントに対して上書コンポーネントを取り付けるステップ、を有する。
ステップ746において、上書コンポーネント(すなわちコンポーネントB v1.0)に対応付けられたモジュールが取得され、階層500内のコンポーネントA v1.0 521に対して子として取り付けられる。換言すると、上書コンポーネント550のインスタンス(すなわちコンポーネントB v1.0のインスタンス)は、階層500内においてコンポーネントB v1.1 522の位置に読み出される。このサブコンポーネントは、ステップ710において検査されるモジュールとなる。ただしコンポーネントB v1.0 522は子を有してない(すなわちサブコンポーネントがない)ので、HMS820はステップ750において現在のモジュールを終了する。HMS820は次にステップ760において、トップモジュールを完了したか否かチェックする。完了していない場合、HMS820はステップ770へ戻り、現在の(すなわち今完了した)コンポーネントの親へ進んでさらに解析を実施する。換言すると、あるコンポーネントのサブコンポーネントのレビューが完了すると、HMS820はステップ770においてそのコンポーネントの親へ上り、その親のその他サブコンポーネントを処理する。ステップ760においてトップモジュールを完了すると(すなわち、トップモジュールの全サブコンポーネントをレビューし終えると)、HMS820はステップ780において終了する。
このように、コンポーネントBに対する上書参照は、合致する上書参照が存在しない(すなわちコンポーネントA511、A v1.0 521、A v1.0 531)コンポーネントインポートを改ざんしない。上書参照は、A v1.0 521によって指定されたコンポーネント(すなわちコンポーネントB v1.1)のみを、上書参照が示すコンポーネント(すなわちコンポーネントB v1.0)で置き換えるように機能する。
実施例において、HMS820は階層構造500の検査と構築に対して深さ優先のアプローチを実施する(すなわち、各新規コンポーネントを調査する際において、HMS820はその他サブコンポーネントをレビューする前に、最初のサブコンポーネントをステップダウンして完全検査する)。ただし、本明細書におけるシステムと方法を実施することを可能にする、階層構造500の横断と構築のその他アプローチも用い得ることを理解されたい。例えば幅優先アプローチが考えられる(すなわち、サブコンポーネントに対してステップダウンする前に、あるレベルにおける全コンポーネントをレビューする)。また実施形態において、論理コンポーネント階層はさらに、競合バージョンを含む上位コンポーネントに対応付けられた別の下位コンポーネントを含む。このように、下位コンポーネントを置き換える要件決定するステップはさらに、下位コンポーネントと他の下位コンポーネントとの間の競合を検出するステップを含むことができる。
図8は、階層管理システム820の例を示すブロック図800である。階層管理システム820は、階層構造500(図5に示す)や階層構造600(図6に示す)のようなコンポーネント設計階層内における上書参照を実装するために用いられる。これに代えて、本明細書の階層管理システム820の動作を実現できる任意のコンピュータアーキテクチャを用いることもできる。実施例において階層管理システム820は、メモリデバイス850内でデータ構造のコンポーネント設計階層を構築し、図7のプロセス700で説明したような上書参照とコンポーネント置き換えを実現する。
実施例において階層管理システム820は、メモリデバイス850とプロセッサ852を備える。プロセッサ852は、命令を実行するため動作するようにメモリデバイス850と連結されている。実施形態において、実行可能命令がメモリデバイス850内に格納される。階層管理システム820は、プロセッサ852をプログラムすることにより、本明細書が説明する1以上の動作を実施するように構成することができる。例えばプロセッサ852は、1以上の実行可能命令として動作をコード化し、その実行可能命令をメモリデバイス850に対して提供することにより、プログラムすることができる。プロセッサ852は、1以上のプロセスユニットを備えることができる。例えばマルチコア構成が考えられるが、これに限らない。
実施例においてメモリデバイス850は、実行可能命令および/またはその他データなどの情報を格納し取得することができる1以上のデバイスである。メモリデバイス850は、1以上のコンピュータ読取可能媒体を含む。例えば、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、ソリッドステートディスク、ハードディスク、読取専用メモリ(ROM)、erasable programmable ROM (EPROM)、electrically erasable programmable ROM(EEPROM)、および/または不揮発性RAM(NVRAM)が挙げられるが、これらに限らない。これらメモリタイプは例示に過ぎず、コンピュータプログラムを格納するため用いることができるメモリタイプを限定するものではない。
実施例においてメモリデバイス850は、データ構造、ファイル、その他メモリ領域における様々なコンポーネントやサブコンポーネントに対応付けられた様々なコンポーネントやモジュールデータを格納するように構成することができる。さらにメモリデバイス850は、階層構造500と600のようなコンポーネント関係データと階層データ、または図1〜図4に示すようなその他コンポーネント関係データを格納することができる。さらにメモリデバイス850は、図5と図6に示すような上書参照と上書コンポーネントデータを格納することができる。
実施形態において階層管理システム820は、プロセッサ852に連結された提示インターフェース854を備える。提示インターフェース854は、例えばユーザインターフェースおよび/または警告などの情報を、ユーザ856に対して提示する。例えば提示インターフェース854は、ディスプレイデバイス(図示せず)に連結可能なディスプレイアダプタ(図示せず)備えることができる。ディスプレイデバイスは例えば、ブラウン管(CRT)、液晶ディスプレイ(LCD)、有機LED(OLED)ディスプレイ、および/またはディスプレイを有するハンドヘルドデバイスである。実施形態において提示インターフェース854は、1以上のディスプレイデバイスを備える。これに加えてまたはこれに代えて、提示インターフェース854は、例えばオーディオアダプタおよび/またはスピーカなどの音声出力デバイス(図示せず)を備えることができる。
実施形態において階層管理システム820は、ユーザ入力インターフェース858を備える。実施例においてユーザ入力インターフェース858は、プロセッサ852に連結され、ユーザ856から入力を受け取る。ユーザ入力インターフェース858は例えば、キーボード、ポインティングデバイス、マウス、スタイラス、および/またはタッチパッドやタッチスクリーンなどのタッチ検出パネルを含む。例えばタッチスクリーンなどの単一部材が、提示インターフェース754のディスプレイデバイスおよびユーザ入力インターフェース858として機能する場合もある。
実施例において、通信インターフェース860はプロセッサ852に連結され、例えば他コンピュータシステムや階層管理システム820にアクセスできるその他デバイスなどのような1以上の他デバイスと通信するように構成されている。このデバイスとしては例えば、ラップトップコンピュータ、携帯情報端末(PDA)、スマートフォンなどが挙げられるが、これに限らない。通信インターフェース860は、有線ネットワークアダプタ、無線ネットワークアダプタ、モバイル通信アダプタ、シリアル通信アダプタ、および/またはパラレル通信アダプタを含むが、これに限らない。通信インターフェース860は、1以上のリモートデバイスからデータを受信し、および/または1以上のリモートデバイスに対してデータを送信することができる。階層管理システム820は、リモート通信のためにwebを用いることができる。例えばリモートデスクトップコンピュータ(図示せず)が挙げられる。
実施例において、提示インターフェース854および/または通信インターフェース860は、本明細書が説明する方法とともに用いるのに適した情報を、例えばユーザ856や他デバイスに対して提供することができる。したがって提示インターフェース854および/または通信インターフェース860は、出力デバイスとみなすことができる。同様にユーザ入力インターフェース858および/または通信インターフェース860は、本明細書が説明する方法とともに用いるのに適した情報を受け取ることができ、入力デバイスとみなすことができる。
さらにプロセッサ852および/またはメモリデバイス850は、ストレージデバイス862と連結することができる。ストレージデバイス862は、データを格納しおよび/または受け取るのに適した、任意のコンピュータ動作可能なハードウェアである。ここでいうデータは、例えばデータベース164に関連するデータが挙げられるが、これに限らない。実施例においてストレージデバイス862は、階層管理システム820に統合されている。例えば階層管理システム820は、ストレージデバイス862として1以上のハードディスクドライブを備えることができる。さらに例えばストレージデバイス862は、複数のストレージユニットを備えることができる。例えばredundant array of inexpensive disks(RAID)構成における複数のハードディスクおよび/またはソリッドステートディスクである。ストレージデバイス862は、storage area network (SAN)、network attached storage (NAS)、および/またはクラウドベースストレージを含む。これに代えて、ストレージデバイス862を階層管理システム820の外部に設け、ストレージインターフェース(図示せず)を介してアクセスすることもできる。
さらに実施例においてデータベース864は、コンポーネント、モジュール、上書参照、上書コンポーネントに対応付けられた様々な静的または動的動作データ、および階層構造を含む。
本明細書が説明する実施形態、および明示はしていないが本明細書の範囲内に含まれる実施形態は、上書参照を含むコンポーネント階層を管理する手段を構成する。例えば階層管理システム820、およびこれに追加または含まれる同様のコンピュータデバイスは、プロセッサに本明細書が説明するプロセスと技術を実行させるコンピュータ実行可能命令によってプログラムされた十分なコンピュータ読取可能記憶媒体を備える。具体的には、階層管理システム820およびこれに追加または含まれるその他同様のコンピュータデバイスは、上書参照を含むコンポーネント階層を管理する手段を構成する。
図9は、データベース920とコンピュータデバイス910の構成例900を示す。上書参照を含むコンポーネント階層を管理するため用いることができる、その他関連するコンピュータコンポーネントを併せて示している。実施形態において、コンピュータデバイス910は階層管理システム820(図8に示す)と同様のものである。データベース920は、コンピュータデバイス910内の複数の個別コンポーネントに連結されている。コンピュータデバイス910は、特定タスクを実施する。
実施例においてデータベース920は、コンポーネント&モジュールデータ922、階層データ924、上書参照データ926を含む。実施形態においてデータベース920は、データベース864(図8に示す)と同様のものである。コンポーネント&モジュールデータ922は、図1〜図6で説明したデザインコンポーネントやモジュールに関連する情報を含む。階層データ924は、階層構造500と600(それぞれ図5と図6に示す)に示すような階層コンポーネントデータやコンポーネント間の関係を定義するデータを含む。上書参照データ926は、例えば上書参照540や640(それぞれ図5と図6に示す)と上書コンポーネント550や650(それぞれ図5と図6に示す)のような上書参照と上書コンポーネントに関連するデータを含む。
コンピュータデバイス910は、データベース920とともにデータストレージデバイス930を備える。コンピュータデバイス910は、階層管理コンポーネント940を備える。階層管理コンポーネント940は、モジュールをインポートし、階層構造500や600などの階層構造を構築管理する。コンピュータデバイス910は、階層のコンポーネントに対応付けられたモジュールを処理するモジュール読出コンポーネント950を備える。分析コンポーネント960は、プロセス700と800(それぞれ図7と図8に示す)で説明したような上書参照プロセスを処理する。プロセスコンポーネント970は、トークン化システムに関連するコンピュータ実行可能命令の実行を補助する。
以上の説明から分かるように、本明細書の上記実施形態は、コンピュータプログラミングまたはエンジニアリング技術を用いて実装することができる。これは、コンピュータソフトウェア、ファームウェア、ハードウェア、これらの組み合わせまたはサブセットを含む。その結果、コンポーネント階層を管理し、上書参照および下位コンポーネントを上書コンポーネントにより置き換えることを実装するシステムが得られる。結果として得られるこのようなプログラムは、コンピュータ読取可能コードを有し、1以上のコンピュータ読取可能媒体内に実装または提供することができる。これにより、本明細書の実施形態に基づくコンピュータプログラム製品(すなわち製造製品)を製作することができる。コンピュータ読取可能媒体は例えば、固定(ハード)ドライブ、ディスケット、光学ディスク、磁気テープ、読取専用メモリ(ROM)などの半導体メモリ、および/またはインターネットその他通信ネットワークやリンクなどの送受信媒体などがあるが、これに限られない。コンピュータコードを格納した製造製品は、媒体からコードを直接実行し、媒体から他の媒体へコードをコピーし、あるいはネットワーク上でコードを送信することにより、作成しおよび/または用いることができる。
これらコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、”app”、またはコードとしても知られている)は、プロセッサをプログラムする機械命令を含み、高レベル手続型および/またはオブジェクト指向プログラム言語および/またはアセンブリ/機械言語によって実装することができる。本明細書において、「機械読取可能媒体」「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラム可能プロセッサに対して提供するために用いる任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば磁気ディスク、光学ディスク、メモリ、プログラム可能論理デバイス(PLD))を指す。これは、機械命令を機械読取可能信号として受け取る機械読取可能媒体を含む。ただし「機械読取可能媒体」「コンピュータ読取可能媒体」は、一時的信号を含まない。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラム可能プロセッサに対して提供するために用いる任意の信号を指す。
本明細書が説明するシステムおよび方法の技術的効果は、以下のうち少なくとも1つを含む。(a)論理コンポーネント階層内において下位コンポーネントを上書コンポーネントにより置き換える要件をコンピュータデバイスにより決定するステップであって、前記上書コンポーネントは上書参照により上位コンポーネントに対応付けられている、ステップ、(b)前記論理コンポーネント階層内において前記下位コンポーネントを前記上書コンポーネントにより置き換えるステップ、(c)前記親コンポーネントと前記下位コンポーネントとの間の任意の関連を除去するステップ、(d)前記論理コンポーネント階層内において前記親コンポーネントに対して前記上書コンポーネントを取り付けるステップ、(e)下位バージョン識別子を上書バージョン識別子と比較するステップであって、前記置き換える要件は前記比較に基づき決定される、ステップ、(f)前記下位コンポーネントとその他の前記下位コンポーネントとの間の競合を検出するステップ、(g)前記下位バージョン識別子を他の前記下位バージョン識別子と比較するステップであって、前記置き換える要件は前記比較に基づき決定される、ステップ、(h)置き換えにおいて用いる前記上書コンポーネントを識別するステップ、(i)前記下位コンポーネントの1以上の上位コンポーネントを、前記下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査するステップ、(j)前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ。
実施例の方法とシステムは、コンポーネント階層内において定義された上書参照を用いて、他コンポーネントによりサブコンポーネントを置き換える。例えばサブコンポーネントのあるバージョンは、別バージョンの上書コンポーネントへリンクする上位コンポーネント内における上書参照を定義することにより、階層読み出しの間に置き換えることができる。階層構築の際に、本明細書のシステムと方法は、上書参照以下の合致するサブコンポーネントを上書コンポーネントにより置き換える。このように競合コンポーネントは、元のサブコンポーネントではなく上書コンポーネントを用いることにより、標準化される(すなわち競合が除去される)。
本明細書は、最良の実施形態を含む実施例を用いて説明し、当業者が本開示を実施できるようにしている。これは、デバイスまたはシステムを作成し、用い、組み込んだ方法を実施することを含む。本明細書の請求範囲は特許請求範囲によって定義され、当業者が想到可能なその他実施例を含むことができる。特許請求範囲の文言から逸脱せず、特許請求範囲の文言と実質的な差異がない等価構造要素を含むのであれば、そのような他実施例は特許請求範囲に含まれることが意図されている。

Claims (17)

  1. 上位コンポーネント、前記上位コンポーネントよりも下位に位置し前記上位コンポーネントに対応付けられた第1下位コンポーネント、および前記第1下位コンポーネントに対応付けられた第1サブコンポーネントを含む論理コンポーネント階層における競合を管理する、コンピュータ実装された方法であって、前記方法はメモリと通信するコンピュータデバイスを用い、前記方法は、
    前記メモリ内において、前記論理コンポーネント階層の階層表現を構築するステップであって、前記階層表現は、前記上位コンポーネント、前記上位コンポーネントと前記第1下位コンポーネントとの間の第1下位参照、および前記第1下位コンポーネントと前記第1サブコンポーネントとの間の第2下位参照を含む、ステップ、
    前記論理コンポーネント階層内において上書コンポーネントを前記上書コンポーネントの上書バージョンにより置き換える要件を前記コンピュータデバイスにより決定するステップであって、前記上書コンポーネント前記上位コンポーネントに対応付けられている、ステップ、
    前記階層表現に対して前記上書コンポーネントと上書参照を追加するステップであって、前記上書コンポーネントは前記上書コンポーネントの前記上書バージョンを識別し、前記上書参照は前記上書コンポーネントと前記上位コンポーネントとの間に配置され、前記上書参照は、前記階層表現のなかにおいて前記上位コンポーネントの下に存在している前記上書コンポーネントが前記上書コンポーネントの前記上書バージョンによって置き換えられることを表している、ステップ、
    前記階層表現のなかに前記上書コンポーネントが前記上位コンポーネントの下位に存在すること、および前記上位コンポーネントに対応付けられた前記上書参照が存在することを検出するステップであって、前記第1サブコンポーネントは前記上書コンポーネントである、ステップ、
    前記検出にしたがって、前記第1サブコンポーネントの位置において前記上書コンポーネントの前記上書バージョンを前記論理コンポーネント階層に対して読み込むことにより、前記論理コンポーネント階層内において前記第1サブコンポーネントを前記上書コンポーネントにより置き換えるステップ、
    を有することを特徴とする方法。
  2. 前記第1サブコンポーネントを置き換えるステップは、
    前記階層表現から前記第2下位参照を除去するステップ、
    前記階層表現内において前記上書コンポーネントの前記上書バージョンを追加するステップ、
    前記階層表現内において、前記第1下位コンポーネントと前記上書コンポーネントとの間に第3下位参照を追加するステップ、
    を有することを特徴とする請求項1記載の方法。
  3. 前記第1サブコンポーネントを置き換える要件を決定するステップはさらに、
    下位バージョン識別子を前記上書バージョンの上書バージョン識別子と比較するステップであって、前記置き換える要件は前記比較に基づき決定される、ステップを有する
    ことを特徴とする請求項1記載の方法。
  4. 前記論理コンポーネント階層はさらに、前記上位コンポーネントに対応付けられた他の下位コンポーネントを含み、
    前記第1サブコンポーネントを置き換える要件を決定するステップはさらに、
    前記第1下位コンポーネントと前記他の下位コンポーネントとの間の競合を検出するステップを有する
    ことを特徴とする請求項1記載の方法。
  5. 前記方法は、前記論理コンポーネント階層内において前記上書参照を定義することにより前記上位コンポーネントを前記上書コンポーネントと対応付けるステップを有する
    ことを特徴とする請求項1記載の方法。
  6. 前記方法は、前記置き換えにおいて用いる前記上書コンポーネントを識別するステップを有し、前記識別するステップは、
    前記第1下位コンポーネントの1以上の上位コンポーネントを、前記第1下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査して、前記第1下位コンポーネントに合致するコンポーネントに対応する上書参照を探索するステップ、
    前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記第1下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ、
    を有することを特徴とする請求項1記載の方法。
  7. 上位コンポーネント、前記上位コンポーネントよりも下位に位置し前記上位コンポーネントに対応付けられた第1下位コンポーネント、および前記第1下位コンポーネントに対応付けられた第1サブコンポーネントを含む論理コンポーネント階層における競合を管理するコンピュータデバイスであって、前記コンピュータデバイスはメモリと通信するプロセッサを備え、前記コンピュータデバイスは、
    前記メモリ内において、前記論理コンポーネント階層の階層表現を構築するステップであって、前記階層表現は、前記上位コンポーネント、前記上位コンポーネントと前記第1下位コンポーネントとの間の第1下位参照、および前記第1下位コンポーネントと前記第1サブコンポーネントとの間の第2下位参照を含む、ステップ、
    前記論理コンポーネント階層内において上書コンポーネントを前記上書コンポーネントの上書バージョンにより置き換える要件を前記コンピュータデバイスにより決定するステップであって、前記上書コンポーネント前記上位コンポーネントに対応付けられている、ステップ、
    前記階層表現に対して前記上書コンポーネントと上書参照を追加するステップであって、前記上書コンポーネントは前記上書コンポーネントの前記上書バージョンを識別し、前記上書参照は前記上書コンポーネントと前記上位コンポーネントとの間に配置され、前記上書参照は、前記階層表現のなかにおいて前記上位コンポーネントの下に存在している前記上書コンポーネントが前記上書コンポーネントの前記上書バージョンによって置き換えられることを表している、ステップ、
    前記階層表現のなかに前記上書コンポーネントが前記上位コンポーネントの下位に存在すること、および前記上位コンポーネントに対応付けられた前記上書参照が存在することを検出するステップであって、前記第1サブコンポーネントは前記上書コンポーネントである、ステップ、
    前記検出にしたがって、前記第1サブコンポーネントの位置において前記上書コンポーネントの前記上書バージョンを前記論理コンポーネント階層に対して読み込むことにより、前記論理コンポーネント階層内において前記第1サブコンポーネントを前記上書コンポーネントにより置き換えるステップ、
    を実行するようにプログラムされていることを特徴とするコンピュータ装置。
  8. 前記第1サブコンポーネントを置き換えるステップは、
    前記階層表現から前記第2下位参照を除去するステップ、
    前記階層表現内において前記上書コンポーネントの前記上書バージョンを追加するステップ、
    前記階層表現内において、前記第1下位コンポーネントと前記上書コンポーネントとの間に第3下位参照を追加するステップ、
    を有することを特徴とする請求項7記載のコンピュータ装置。
  9. 前記第1サブコンポーネントを置き換える要件を決定するステップはさらに、
    下位バージョン識別子を前記上書バージョンの上書バージョン識別子と比較するステップであって、前記置き換える要件は前記比較に基づき決定される、ステップを有する
    ことを特徴とする請求項7記載のコンピュータ装置。
  10. 前記論理コンポーネント階層はさらに、前記上位コンポーネントの下位である他の下位コンポーネントを含み、
    前記第1サブコンポーネントを置き換える要件を決定するステップはさらに、
    前記第1下位コンポーネントと前記他の下位コンポーネントとの間の競合を検出するステップを有する
    ことを特徴とする請求項7記載のコンピュータ装置。
  11. 前記プロセッサは、前記論理コンポーネント階層内において前記上書参照を定義することにより前記上位コンポーネントを前記上書コンポーネントと対応付けるステップを実行するようにプログラムされている
    ことを特徴とする請求項7記載のコンピュータ装置。
  12. 前記プロセッサは、前記置き換えにおいて用いる前記上書コンポーネントを識別するステップを実行するようにプログラムされており、前記識別するステップは、
    前記第1下位コンポーネントの1以上の上位コンポーネントを、前記第1下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査して、前記第1下位コンポーネントに合致するコンポーネントに対応する上書参照を探索するステップ、
    前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記第1下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ、
    を有することを特徴とする請求項7記載のコンピュータ装置。
  13. コンピュータ実行可能命令を格納した少なくとも1つのコンピュータ読取可能記憶媒体であって、前記コンピュータ実行可能命令は、少なくとも1つのプロセッサが実行することにより、前記プロセッサに、
    メモリ内において、論理コンポーネント階層の階層表現を構築するステップであって、前記論理コンポーネント階層は、上位コンポーネント、前記上位コンポーネントよりも下位に位置し前記上位コンポーネントと対応付けられた第1下位コンポーネント、前記第1下位コンポーネントと対応付けられた第1サブコンポーネント、および前記上位コンポーネントと対応付けられた第2下位コンポーネントを含み、前記階層表現は、前記上位コンポーネント、前記上位コンポーネントと前記第1下位コンポーネントとの間の第1下位参照、前記上位コンポーネントと前記第2下位コンポーネントとの間の第2下位参照、および前記第1下位コンポーネントと前記第1サブコンポーネントとの間の第2下位参照を含む、ステップ、
    前記論理コンポーネント階層内において上書コンポーネントを前記上書コンポーネントの上書バージョンにより置き換える要件を決定するステップであって、前記上書コンポーネント前記第1サブコンポーネントの上位コンポーネントに対応付けられている、ステップ、
    前記階層表現に対して前記上書コンポーネントと上書参照を追加するステップであって、前記上書コンポーネントは前記上書コンポーネントの前記上書バージョンを識別し、前記上書参照は前記上書コンポーネントと前記上位コンポーネントとの間に配置され、前記上書参照は、前記階層表現のなかにおいて前記上位コンポーネントの下に存在している前記上書コンポーネントが前記上書コンポーネントの前記上書バージョンによって置き換えられることを表している、ステップ、
    前記階層表現のなかに前記上書コンポーネントが前記上位コンポーネントの下位に存在すること、および前記上位コンポーネントに対応付けられた前記上書参照が存在することを検出するステップであって、前記第1サブコンポーネントは前記上書コンポーネントである、ステップ、
    前記検出にしたがって、前記第1サブコンポーネントの位置において前記上書コンポーネントの前記上書バージョンを前記論理コンポーネント階層に対して読み込むことにより、前記論理コンポーネント階層内において前記第1サブコンポーネントを前記上書コンポーネントにより置き換えるステップ、
    を実行させることを特徴とするコンピュータ読取可能記憶媒体。
  14. 前記コンピュータ実行可能命令は前記プロセッサに、
    前記階層表現から前記第2下位参照を除去するステップ、
    前記階層表現内において前記上書コンポーネントの前記上書バージョンを追加するステップ、
    前記階層表現内において、前記第1下位コンポーネントと前記上書コンポーネントとの間に第3下位参照を追加するステップ、
    を実行させることを特徴とする請求項13記載のコンピュータ読取可能記憶媒体。
  15. 前記論理コンポーネント階層はさらに、前記上位コンポーネントの下位である他の下位コンポーネントを含み、
    前記コンピュータ実行可能命令は前記プロセッサに、
    前記第1サブコンポーネントを置き換える要件を決定するステップにおいてさらに、前記第1下位コンポーネントと前記他の下位コンポーネントとの間の競合を検出するステップを実行させる
    ことを特徴とする請求項13記載のコンピュータ読取可能記憶媒体。
  16. 前記コンピュータ実行可能命令は前記プロセッサに、
    前記論理コンポーネント階層内において前記上書参照を定義することにより前記上位コンポーネントを前記上書コンポーネントと対応付けるステップを実行させる
    ことを特徴とする請求項13記載のコンピュータ読取可能記憶媒体。
  17. 前記コンピュータ実行可能命令は、前記置き換えにおいて用いる前記上書コンポーネントを識別するステップを前記プロセッサに実行させ、前記識別するステップは、
    前記第1下位コンポーネントの1以上の上位コンポーネントを、前記第1下位コンポーネントの親から開始して前記論理コンポーネント階層の昇順に検査して、前記第1下位コンポーネントに合致するコンポーネントに対応する上書参照を探索するステップ、
    前記上位コンポーネントを検査する際に前記上書参照を識別するステップであって、前記上書参照を識別するステップは、前記第1下位コンポーネントに合致するコンポーネントに対応付けられた参照を前記上位コンポーネントが有するか否かを検査するステップを含む、ステップ、
    を有することを特徴とする請求項13記載のコンピュータ読取可能記憶媒体。
JP2014253593A 2013-12-31 2014-12-16 階層参照データにおけるコンフリクトを解消する方法およびシステム Active JP6573452B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/145,004 US10127261B2 (en) 2013-12-31 2013-12-31 Methods and systems for resolving conflicts in hierarchically-referenced data
US14/145,004 2013-12-31

Publications (3)

Publication Number Publication Date
JP2015130161A JP2015130161A (ja) 2015-07-16
JP2015130161A5 JP2015130161A5 (ja) 2019-01-31
JP6573452B2 true JP6573452B2 (ja) 2019-09-11

Family

ID=52338779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014253593A Active JP6573452B2 (ja) 2013-12-31 2014-12-16 階層参照データにおけるコンフリクトを解消する方法およびシステム

Country Status (6)

Country Link
US (1) US10127261B2 (ja)
EP (1) EP2889763B1 (ja)
JP (1) JP6573452B2 (ja)
KR (1) KR20150079467A (ja)
CN (1) CN104750476B (ja)
CA (1) CA2874357A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940486B2 (en) * 2015-02-23 2018-04-10 Cisco Technology, Inc. Detection of hardware tampering
JP6547452B2 (ja) 2015-06-29 2019-07-24 株式会社デンソー 車線逸脱回避装置
JP6880590B2 (ja) * 2016-08-02 2021-06-02 いすゞ自動車株式会社 操舵補助装置及び操舵補助方法
US10572675B2 (en) 2016-11-02 2020-02-25 Cisco Technology, Inc. Protecting and monitoring internal bus transactions
CN108733353B (zh) * 2017-04-21 2023-08-08 中兴通讯股份有限公司 一种界面构造方法和装置
CN112148725B (zh) * 2019-06-26 2022-12-06 金篆信科有限责任公司 一种实现全局唯一索引的方法及装置
KR102584355B1 (ko) * 2023-05-02 2023-10-05 쿠팡 주식회사 Ui 컴포넌트를 생성하는 방법 및 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499365A (en) 1993-08-04 1996-03-12 International Business Machines Corporation System and method for controlling versions of objects in an object oriented computing environment
US6185734B1 (en) * 1998-07-21 2001-02-06 Hewlett-Packard Company Hierarchical registry structure for managing multiple versions of software components
WO2000070531A2 (en) * 1999-05-17 2000-11-23 The Foxboro Company Methods and apparatus for control configuration
US8521736B2 (en) * 2005-10-26 2013-08-27 Dassault Systemes Enovia Corp. Managing hierarchies of components
US20100125839A1 (en) * 2008-11-20 2010-05-20 Gebis Michael J Specifying, Determining and Overriding Software Dependencies
US8495621B2 (en) * 2009-06-15 2013-07-23 Microsoft Corporation Catalog-based software component management
US8793439B2 (en) * 2010-03-18 2014-07-29 Oracle International Corporation Accelerating memory operations using virtualization information
US20120101980A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
US8627311B2 (en) * 2011-02-01 2014-01-07 Hewlett-Packard Development Company, L.P. Systems, methods, and apparatus to deploy software
JP5905313B2 (ja) * 2012-03-28 2016-04-20 ニフティ株式会社 情報処理装置、情報処理方法、情報処理システム、及び、プログラム
US20130297657A1 (en) * 2012-05-01 2013-11-07 Gajanan Chinchwadkar Apparatus and Method for Forming and Using a Tree Structured Database with Top-Down Trees and Bottom-Up Indices

Also Published As

Publication number Publication date
KR20150079467A (ko) 2015-07-08
EP2889763B1 (en) 2018-05-02
JP2015130161A (ja) 2015-07-16
US10127261B2 (en) 2018-11-13
CN104750476B (zh) 2019-08-23
CN104750476A (zh) 2015-07-01
CA2874357A1 (en) 2015-06-30
EP2889763A1 (en) 2015-07-01
US20150186449A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
JP6573452B2 (ja) 階層参照データにおけるコンフリクトを解消する方法およびシステム
US11907247B2 (en) Metadata hub for metadata models of database objects
US11726969B2 (en) Matching metastructure for data modeling
US8768902B2 (en) Unified concurrent changes to data, schema, and application
US7523128B1 (en) Method and system for discovering relationships
AU2013202007B2 (en) Data selection and identification
US20210390038A1 (en) Automatic evaluation of test code quality
US20230418680A1 (en) Selective landscape element grouping facilitating landscape element consolidation or content installation
CN117193802A (zh) 提供对应用程序内容多个实例的访问的合并空间
US9697239B1 (en) Token-based database system and method of interfacing with the token-based database system
JP6605812B2 (ja) 階層参照データにおけるコンポーネントをフィルタリングする方法およびシステム
US20230418803A1 (en) Techniques for integrating data for multple instances of a data artifact
EP2919132A1 (en) Method for automatic generation of test data for testing a data warehouse system
US20230334268A1 (en) Logical pointers supporting reuse of text translations
US12038944B2 (en) Propagation of extensions of data artifacts

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20150408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150408

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181210

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20181210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190813

R150 Certificate of patent or registration of utility model

Ref document number: 6573452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250