JP6605812B2 - 階層参照データにおけるコンポーネントをフィルタリングする方法およびシステム - Google Patents

階層参照データにおけるコンポーネントをフィルタリングする方法およびシステム Download PDF

Info

Publication number
JP6605812B2
JP6605812B2 JP2015031372A JP2015031372A JP6605812B2 JP 6605812 B2 JP6605812 B2 JP 6605812B2 JP 2015031372 A JP2015031372 A JP 2015031372A JP 2015031372 A JP2015031372 A JP 2015031372A JP 6605812 B2 JP6605812 B2 JP 6605812B2
Authority
JP
Japan
Prior art keywords
component
filter
hierarchy
subcomponent
identifying
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
JP2015031372A
Other languages
English (en)
Other versions
JP2015158911A (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 JP2015158911A publication Critical patent/JP2015158911A/ja
Application granted granted Critical
Publication of JP6605812B2 publication Critical patent/JP6605812B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Architecture (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願は、2014年2月21日に出願された米国仮特許出願第61/942,915号の利益を主張する。同文献の全体は参照により本願に組み込まれる。
本願は、製品設計環境におけるコンポーネントの階層を管理することに関する。具体的には、コンポーネント階層内のコンポーネントをフィルタリングすることに関する。
大規模統合システム(特に回路)を設計し開発するとき、1つのエンジニアチームがシステムの全体設計に対して責任を負うことは通常ない。エンジニアチームはむしろ、システムのコンポーネントの設計に対して責任を負い、全体設計は各エンジニアチームが提供するコンポーネントの設計の総和となる。システムがより複雑になると、システムのより多くの部分がサブコンポーネントへ分割されることになる。親コンポーネントは複数のサブコンポーネントへ分割される。このコンポーネントとサブコンポーネントの関係は、全体システムを表す階層に関するものである。
コンポーネント設計者または設計チームは、全体階層から特定のコンポーネントを除外したい場合がある。例えば開発者と設計者がコンポーネント階層の設計実装時間を削減できる再利用可能コンポーネントを構築したが、コンポーネントを再利用するとコンポーネント階層内におけるコンポーネントの異なるバージョン間でコンフリクトが生じる場合がある。これは解消しなければならない。他例として、開発者は特定のサブコンポーネントを削除し、コンポーネント階層の特定のサブセットに注力できるようにしたい場合がある。
1実施形態において、論理コンポーネント階層からコンポーネントをフィルタリングするコンピュータ実装した方法を提供する。前記方法は、プロセッサとメモリを有するコンピュータデバイスを用いる。前記方法は、前記論理コンポーネント階層に対応付けられたフィルタを前記メモリ内において認識するステップを有する。前記方法はさらに、前記プロセッサにより、前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップを有する。前記方法はさらに、前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップを有する。前記方法はさらに、前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップを有する。
1実施形態において、論理コンポーネント階層からコンポーネントをフィルタリングするコンピュータデバイスを提供する。前記コンピュータデバイスは、メモリと通信可能に連結されたプロセッサを備える。前記メモリは前記論理コンポーネント階層を格納する。前記コンピュータデバイスは、前記論理コンポーネント階層に対応付けられたフィルタを前記メモリ内において認識するステップを実行するようにプログラムされている。前記コンピュータデバイスはさらに、前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップを実行するようにプログラムされている。前記コンピュータデバイスはさらに、前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップを実行するようにプログラムされている。前記コンピュータデバイスはさらに、前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップを実行するようにプログラムされている。
1実施形態において、コンピュータ実行可能命令を格納した少なくとも1つのコンピュータ読取可能記憶媒体を提供する。少なくとも1つのプロセッサが実行することにより、前記コンピュータ実行可能命令は前記プロセッサに、前記論理コンポーネント階層に対応付けられたフィルタを認識するステップを前記プロセッサに実行させる。前記コンピュータ実行可能命令はさらに、前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップを前記プロセッサに実行させる。前記コンピュータ実行可能命令はさらに、前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップを前記プロセッサに実行させる。前記コンピュータ実行可能命令はさらに、前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップを前記プロセッサに実行させる。
図1〜図9は、本明細書の方法およびシステムの実施形態を示す。
コンポーネント階層の例を示すブロック図である。
図1に示すコンポーネント階層に関連するモジュールバージョンのブロック図である。
図2に示すモジュールバージョンの最初の時点におけるスナップショットである。
図2に示すモジュールバージョンの次の時点におけるスナップショットである。
フィルタを有するコンポーネント階層の例を示すブロック図である。
フィルタリング参照を識別し統合する階層読込プロセスの例を示すフローチャートである。
図5に示すコンポーネント階層内におけるフィルタリング参照を実装するように構成された階層管理システムの例を示すブロック図である。
図5に示すコンポーネント階層を管理するため用いることができるコンピュータデバイス内のデータベースおよび関連するコンピュータコンポーネントのブロック図である。
図5に示す階層からコンポーネントをフィルタリングする方法の例である。
以下の説明は、本明細書の実施形態を示す。これは例示であり限定目的のものではない。本明細書は、コンポーネント階層を管理するアプリケーション一般に対して適用することができる。
本明細書において、「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以上のサブコンポーネントを階層全体からフィルタリング(すなわち除外)することができる。
図1は、商品A110の階層構造100である。以下に説明するように、1以上のコンポーネントはフィルタリングまたは除外される。商品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は、動的階層参照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(ここでは階層500の「先頭コンポーネント」または「ルート」コンポーネントとも呼ぶ)は、第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を含む。第2コンポーネントA531は1つのサブコンポーネントA532を含み、サブコンポーネントA532はサブコンポーネントB v1.2 533を含む。商品A511は、2つの異なるコンポーネントA、すなわちA521とA532を含む。一方は商品A511の直接の子であり、もう一方はA531の子である。同様に商品A511は、2つのコンポーネントB、すなわちB v1.1 522とB v1.2 533を含む。これらコンポーネントBは、同じコンポーネントの異なるバージョン番号を参照する。
商品A511は、それぞれコンポーネントA521とA531に対して階層参照512と513を有する。同様にコンポーネントA521はサブコンポーネントB v1.1 522に対して階層参照514を有し、コンポーネントA531はサブコンポーネントA532に対して階層参照515を有し、サブコンポーネントA532はサブコンポーネントB v1.2 533に対して階層参照516を有する。階層構造500内の各コンポーネントはバージョン番号などのバージョン識別子を含むことができ、コンポーネントA511、A521、A531のバージョン番号は読み易さのため除外されていることを理解されたい。
本明細書において、「下位」「上位」「親」「子」という用語は、論理的にファミリーの関係にあるコンポーネント間の階層関係(例えばコンポーネントのツリー構造)を示す。例えばコンポーネントB v1.1 522は、上位コンポーネントA521とA511の下位コンポーネントとして参照することができる。コンポーネントA521は、コンポーネントB v1.1 522の親(すなわち最初に隣接する直近上位)であり、同様にコンポーネントB v1.1 522はコンポーネントA521の子である。さらにコンポーネントA521は、コンポーネントA511(すなわち親)の下位コンポーネント(この場合は子)である。このようにこれら用語は、コンポーネント間の論理関係を便宜上定義し説明するために用いることができる。
実施例において、階層構造500はフィルタ550を含む。フィルタ550は、1以上のコンポーネントを識別しフィルタリングするために用いられる。本明細書において、「フィルタコンポーネント」という用語は一般に、フィルタ550などのフィルタがフィルタリングのため識別するコンポーネントを指すために用いられる。「フィルタ」という用語は一般に、階層構造500などの階層からコンポーネント(すなわちフィルタコンポーネント)を除外、削除、その他抹消することを指す。図5に示す階層構造500は、変更されていない(すなわちフィルタリングされていない)コンポーネント階層である。換言すると階層構造500は、フィルタ550を適用する前の完全なコンポーネント設計である。フィルタ550を適用した後、1以上のコンポーネントは削除され、あるいは階層構造500に組み込まれない。
本明細書におけるフィルタ550とコンポーネントのフィルタリングは、1以上の側面から定義し説明される。範囲の観点において、フィルタ550はフィルタ550が適用される範囲または影響階層を規定する。識別対象の観点において、フィルタ550は、フィルタリングするコンポーネントを識別するための1以上の識別条件を規定する。動作中において、フィルタ550のこれら側面のうち1以上により、階層500からフィルタリングするコンポーネントを識別することができる。これら側面の詳細については以下に説明する。
フィルタ550の範囲機能は、フィルタリングを検討するコンポーネントのセットまたはサブセットを識別する。実施例において、フィルタ550は階層関係に基づき動作し、具体的には階層内のアプリケーションレベルに基づく傘として動作する。フィルタ550は、先頭コンポーネントA511へ取り付けられる(540)。これによりフィルタ550の範囲は階層500のツリー構造全体となる。他実施形態において、フィルタ550は例えばA532などのその他コンポーネントに取り付けることもできる。これによりフィルタの範囲はA532のサブツリー(すなわちA532およびそれ以下の構造)のみとなる。フィルタ550などのフィルタが取り付けられた実施形態において、フィルタはこれが適用される最上位レベルを規定するので、取り付けられた箇所およびそれ以下のサブコンポーネントのみがフィルタリング候補となる。他実施形態において、フィルタ550を取り付けないこともできる。取り付けられていないフィルタは、階層500全体に対して適用可能と解釈される。換言すると未取付フィルタは、ルートノードに取り付けて(540)最も広い範囲となるフィルタ550と同様である。本明細書において、「範囲条件」という用語は、フィルタリング範囲またはフィルタが適用されるコンポーネントセットを限定する1以上の条件を指すために用いられる。実施例において、フィルタ550を取り付ける(540)ことは、範囲条件である。
フィルタ550の識別機能は、階層500からフィルタリングし、除外し、または削除するコンポーネントを識別する。本明細書において、「識別条件」という用語は、フィルタリングするコンポーネントを識別する1以上の条件を指すために用いられる。実施例において、フィルタリングするコンポーネントの識別は、上述の範囲条件が規定する範囲によって限定される。他実施形態において、識別条件は範囲条件なしで機能し、単独またはフィルタリングするコンポーネントを識別するその他条件と併せて機能する。
フィルタリングするコンポーネントおよび/またはサブコンポーネントは、階層500の構造に基づき複数の方法で識別することができる。実施形態において、フィルタコンポーネントは階層500内の「絶対階層名」により識別される(すなわち、ルートノードまたはフィルタが取り付けられたノードに対する特定の相対パスまたは位置)。他実施形態において、フィルタコンポーネントはサブコンポーネント構造(「相対階層名」とも呼ぶ)を用いて識別される。他実施形態において、フィルタコンポーネントはその他識別条件を用いて識別される。各フィルタ条件の詳細を以下に説明する。
階層500内の各コンポーネントは、階層内のコンポーネントの位置に基づき一意に識別することができる。本明細書において、「パス」「階層名」という用語は一般に、コンポーネントの階層内におけるルートノード(またはフィルタが取り付けられたノード)から当該コンポーネントへ至る場所定義、または当該コンポーネントからルートノード(またはフィルタが取り付けられたノード)へ至る場所定義を指す。
実施例において、「絶対階層名」フィルタリング条件は、階層500内の特定パスに基づきフィルタコンポーネントを識別するために用いられる。具体的には、「絶対階層名」は例えば先頭コンポーネントA511(実施例においては階層500のルートノードでありフィルタ550が取り付けられたノードでもある)などのルートノード(またはフィルタが取り付けられたノード)からのパスを規定する。例えばB v1.1 522などのコンポーネントは、絶対階層名{A,A,B}を有するものとして識別することができる。この例は、フィルタコンポーネントがコンポーネントB(リスト内の最後のコンポーネント)であることを示す。コンポーネントBの親はAであり、AはルートノードAに取り付けられている。換言すると、ルートノードAからコンポーネントAへ降り、次に子ノードB(この場合はノードB v1.1 522)を特定することにより、フィルタコンポーネントを識別できる。このようにフィルタ550は、絶対階層名{A,A,B}を含む識別条件を有することができる。これによりB v1.1 522をフィルタコンポーネントとして識別することができる。
実施形態において、識別条件は先頭コンポーネント(本例においてはA)を含むことができ、あるいは、先頭コンポーネントを除外して最初のノードを先・BR>ェコンポーネントAと推定する(例えばフィルタが取り付けられないシナリオにおいて)か、もしくは最初のノードにフィルタが取り付けられていると推定する(例えばフィルタが取り付けられるシナリオにおいて)ことができる。換言すると、上記例において、コンポーネントB v1.1 522に対する絶対階層名は、絶対階層名{A,B}によって表すことができる。
フィルタが取り付けられたノード(ルートノードに代えて)からの絶対階層名を表す別例において、推測フィルタ550をコンポーネントA531へ取り付ける。このように、最初のノードに取り付けられていると推測する表記および実施形態を用いて、フィルタ取付ノードA531からの絶対階層名{A,B}などにより、ノードB v1.2 533を識別することができる。したがって、A531へ取り付けられ識別条件{A,B}を有するフィルタは、階層からノードB v1.2 533をフィルタリングするように動作する。
説明した表記は、階層内におけるノード間の階層関係(すなわち相対パス)を表記する1つの方法例に過ぎないことを理解されたい。階層内におけるコンポーネントのパス構造を示唆および識別し、本明細書のシステムと方法を実現する、任意の手段を用いることができる。このように階層内の各ノードは、ルートノードに対するまたはフィルタ取付ノードに対する絶対階層名に基づき識別することができる。
実施例において、「相対階層名」フィルタリング条件は、フィルタコンポーネントから上方へ向かうパスによって規定されるサブコンポーネント構造に基づきフィルタコンポーネントを識別するために用いられる。具体的には、「相対階層名」は階層内におけるフィルタコンポーネントに対する相対的なパスを規定する関係パスである。例えば推測フィルタ550は、{A,B}などの相対階層名タイプ識別条件を有する。相対階層名タイプ識別条件は、フィルタコンポーネントを識別するため合致しなければならないサブ構造を規定するように記述することができる。相対階層名条件は、やはりトップダウン方式で整列されているが(例えばAはBの親)、そのなかで規定されるノード関係に基づきマッチングされる。換言すると、識別条件{A,B}の例において、その親がAである場合、特定のコンポーネントBが合致する(すなわち、フィルタコンポーネントとして識別される)。階層500において、識別条件{A,B}に合致する2つのサブ構造が存在する。コンポーネントB v1.1 522とコンポーネントB v1.2 533である(いずれもコンポーネントBであり、いずれもAが親なので)。
このように相対階層名タイプ識別条件は、整列済リストとして記述することができる。最後の要素としてフィルタコンポーネントを含み、さらにオプションとして、フィルタコンポーネントの1以上の上位コンポーネントを含む。実施例において、リスト内でスキップされる上位コンポーネントは存在しない(すなわち、必ずしも全上位コンポーネントではないものの、リストにおいて上位コンポーネントのチェーンは途切れていない)。実施形態において、相対階層名リストのリストエントリは、「ワイルドカード」(すなわち※や?など)をコンポーネントマッチングの一部として含む。例えば上記リスト例は、{※,A,B}として表記することができる。これはAの任意の上位コンポーネントが合致することを示す。さらにリストエントリは、1以上のコンポーネントセットを含むことができる。例えばリスト{(A,A),B}は、AまたはAを含む最初のリスト要素を識別する。このようにコンポーネントBは、親がコンポーネントAまたはコンポーネントAのいずれかである場合、識別条件に合致する。
極端な場合、実施例において、フィルタコンポーネントからルートノードに至るまでの全ての上位コンポーネントを含む階層名タイプ識別条件は、フィルタコンポーネントの絶対階層名と等価であり、これにより特定ノードのみを識別する。別の極端な場合、リストはフィルタコンポーネント自身のみを含み上位コンポーネントを含まず、これにより所与のフィルタコンポーネントに合致する全ノードを識別する。このように相対階層名タイプ識別条件は、複数のフィルタコンポーネントを識別することができる。
さらに実施例において、フィルタ550は相対階層名タイプ識別条件とともに範囲条件を含むことができる。図5は取り付けられたフィルタ(すなわち、フィルタ550はフィルタ取付コンポーネントA511に取り付けられている)を示し、相対階層名タイプ識別条件{A,B}は上述のようにコンポーネントB v1.1 522とB v1.2 533の双方に合致する。これに代えて、同じ識別条件であるがフィルタがノードA531に取り付けられている場合を考える。換言すると、フィルタの範囲はA531以下のサブ階層に限定される(すなわち、A531がサブ構造のルートノードである)。このようにコンポーネントB v1.2 533のみがフィルタコンポーネントとして識別される。
実施形態において、識別条件はその他のコンポーネント識別情報を含むことができる。これを用いて、コンポーネントを他のコンポーネントから区別することができる。例えばコンポーネント識別子(例えばURL)、バージョン識別子(例えばバージョン番号)、階層名、および/またはhrefである。さらに識別条件は、従来からある論理演算子(AND、OR、NOT、など)を用いて互いに組み合わせ、結合効果を得ることができる。例えば相対階層名リストANDコンポーネントバージョンのマッチングである。
また、フィルタ550などの複数のフィルタを階層500内に提供することができる。各フィルタは異なる範囲および/または異なる識別条件を持つ。
動作中、実施例において、階層管理システム(HMS)720(図7に示す)などのコンピュータシステムまたはコンピュータデバイス810(図8に示す)は、商品A511の階層表記500などのような製品および/またはコンポーネントの階層表記を、コンピュータ補助ドラフトシステム内に読み取り構築する。HMS720は、コンポーネントモジュールをシステムのワーキングメモリ内のデータ構造へ読み出す。さらにユーザは、1以上のフィルタ550とともに範囲条件および/または識別条件(ここではフィルタ定義とも呼ぶ)を定義する。実施例において、階層500をシステムメモリへ読み出す前に、ユーザはフィルタ定義を提供する。他実施形態において、ユーザはフィルタ定義をHMS720に対して提供し、HMS720はフィルタ550を既に読み出した階層500に対して適用する。
実施例において、ユーザはフィルタ550とともに、範囲条件を定義し(すなわちルートノードA511に取り付けられたもの)、さらに相対階層名タイプ識別条件{A,A,B}(すなわち、Aが親でありAがさらにその親である任意のコンポーネントBをフィルタリングする)を定義する。階層500は、幅優先でルートノードから開始して埋めることができる。サブコンポーネントを読み出す前に、HMS720は既存のフィルタ550を評価し、サブコンポーネントがフィルタコンポーネントに合致するか否かを判定する。HMS720は、ルートノードとしてコンポーネントA511を読み出す。既知のシステムにおいて、サブコンポーネントA521は即座に処理される(すなわち、子コンポーネント521のデータ構造は、親コンポーネントA511の階層参照に基づき、階層に対して即座に読み出される)。ただし実施例において、各サブコンポーネントを読み出す前に、HMS720はサブコンポーネントをフィルタ(例えば550)と比較することにより、サブコンポーネント(例えば最初の子A521)をフィルタリング候補として検査する。A521はフィルタ550に合致しない(すなわち、リスト内の最終コンポーネントであるコンポーネントBではない)。このようにHMS720は、A521を読み出してA521の子へ降りて検査する。A521の唯一の子はB v1.1 522であり、HMS720はこれをフィルタ550と比較する。B v1.1 522はノードBであり、したがってリストの最終要素に合致する。さらにB v1.1 522の親はA521であり、リスト内の2番目の要素に合致する。しかしB v1.1 522の親の親(すなわちA521の親)はA511であり、リスト内の最初のコンポーネント(すなわちA)に合致しない。このようにコンポーネントB v1.1 522はフィルタ550に合致せず、したがってHMS720はコンポーネントB v1.1 522を読み出し、A522の次の子に対する処理を継続する。
実施例において、HMS720はA511の2番目の子であるコンポーネントA531を検査する。この子はコンポーネントBではないので、フィルタコンポーネントに合致しない。したがってHMS720は、コンポーネントA531を読み出し、唯一の子A532を検査する。A532もコンポーネントBではないので、HMS720はA532を読み出し、唯一の子B v1.2 533を検査する。この子はコンポーネントBであり、したがってフィルタ550のリストの最終要素に合致する。さらにその親はコンポーネントAであり、さらにその親はコンポーネントAである。したがってHMS720は、コンポーネントB v1.2 533がフィルタコンポーネントであると認識し、階層500へ読み出さない。
図5の上記例は、新たな構造を読み出す間に実施するものとして説明した(すなわちメモリ内にコンポーネント階層を最初に構築する間)。しかし、フィルタリング階層コンポーネントのその他実装も可能であり本明細書の範囲内であることを理解されたい。例えばコンポーネントフィルタリングは、既に構築された構造(例えばワーキングメモリへ既に読み出された階層)において実施し、これによりフィルタに合致するコンポーネントを削除することができる。さらに他実施形態において、HMS720は幅優先サーチを実施し、または本明細書のシステムおよび方法を実現するその他横断的手法を実施することができる。
図6は、フィルタリング参照を識別し統合する階層読出プロセス600の例を示すフローチャートである。実施例においてプロセス600は、HMS720(図7に示す)やコンピュータデバイス810(図8に示す)などのようなコンピュータシステムを用いて実施される。設計チームは、モジュールバージョン(例えばコンポーネント階層)に対するリクエストを入力する。例えば商品A511(図5に示す)に対するリクエストである。HMS720は、ステップ602において図5に示す階層500の商品A511に対応付けられた階層構造を読み出す。トップレベルモジュールおよび以下参照される各モジュールは、1以上のサブコンポーネントに対する参照を含む場合がある。各サブコンポーネントは、関連モジュールを有する場合がある。関連モジュールはさらに1以上のサブコンポーネントに対する参照を含む場合がある。以下同様である。
実施形態において、HMS720はステップ603で最初にグローバルフィルタ(すなわち、階層500の全範囲に対して適用するフィルタ)を読み出す。実施例において、HMS720はモジュール読出プロセスを開始し、ステップ604において商品A511のモジュールを取得して階層500に対して組み込む。これは要素511によって表される(すなわち、トップレベル商品のデータ構造がメモリ内で生成され、トップモジュールからインポートされたデータを含む)。トップモジュール読出プロセスの一部としてHMS720は、トップモジュールに取り付けられたフィルタを読み出す。本例においてHMS720は、トップモジュールA511に取り付けられた(540)フィルタ550を読み出す。このようにフィルタ550は、階層500全体をカバーする範囲を有し、親がAである任意のコンポーネントBに合致する(すなわち、図6の例に示した{A1,B}として表記される)。
ステップ610において、HMS720は現在処理中のモジュール(この段階においては商品A511に対応付けられたトップモジュール)が未処理のサブコンポーネント(すなわち、階層500へインポートされていない)を有するか否かを検査する。図5に示すように、トップモジュールはコンポーネントA521とA531を参照する。1以上の未レビューサブコンポーネントが残っている場合、HMS720はステップ620において未レビューサブコンポーネントを選択してインポートする。したがってHMS720はステップ620において最初の未レビューサブコンポーネントA521を選択する。
サブコンポーネントA521を完全にインポートする前に、HMS720はフィルタリングするサブコンポーネントを解析する(すなわち、現在のサブコンポーネントを階層500から除外または除去すべきか否かを判定する)。HMS720はステップ630において、サブコンポーネントを合致するフィルタと比較する。ステップ640において、現在のサブコンポーネントが1以上のフィルタと合致する場合、そのサブコンポーネントはステップ642において階層500から除外(または除去)される。ステップ640において、現在のサブコンポーネントが1以上のフィルタと合致しない場合、HMS720はステップ644において解析中のサブコンポーネントに対応付けられたモジュールを取得/読み出し、そのモジュールを階層500へインポートする。本例において、サブコンポーネントA521はフィルタ550に合致せず、したがってHMS720はステップ644においてこのサブコンポーネントを読み出す(すなわち、コンポーネントA521をA511の子として追加する)。
実施例において、サブコンポーネントモジュールを取得するステップ644の一部として、このサブコンポーネントはレビューしているモジュールとなる。HMS720は、処理をループしてステップ610においてコンポーネントA v1.0 521のサブコンポーネントを検討する。本例において、コンポーネントA v1.0 521は1つのサブコンポーネントB v1.1 522を有する。HMS720はステップ620において、未レビューサブコンポーネントB v1.1 522を選択し、ステップ630においてこのサブコンポーネントをフィルタ550(すなわち唯一のアクティブフィルタ)と比較する。この段階において、階層500は2つのノード(すなわち2つのコンポーネント)A521(B v1.1 522の親)とA511(B v1.1 522の親の親)が読み込まれている。HMS720は、サブコンポーネントB v1.1 522がフィルタ550に合致すると判定する。コンポーネントBでありかつその親がコンポーネントAだからである。このようにHMS720は、ステップ642においてコンポーネントB v1.1 522を階層500から除外(または削除)し、ステップ610へ戻る。換言すると、A511、A521、B v1.1 522を含むブランチとともに先頭コンポーネントに取り付けられたフィルタ550を考慮した後、HMSはコンポーネントA511とA521のみを読み出し、フィルタ550に基づきコンポーネントB v1.1 522を階層500から除外(または削除)したことになる。
実施例に戻って、サブコンポーネントB v1.1 522は除外され、これより深い子コンポーネントは検査されない。このようにステップ610において、コンポーネントA521は未レビューのサブコンポーネントを有さない状態となる。HMS720はステップ650において現在のモジュールを完了する。HMS720は次にステップ660において、トップモジュールが完了したか否かを検査する。完了していない場合、HMS720はステップ670において、現在の(すなわち今完了した)コンポーネントの親へ戻ってさらに解析を実施する。換言すると、あるコンポーネントのサブコンポーネントのレビューが完了すると、HMS720はステップ670においてそのコンポーネントの親へ上り、その親のその他サブコンポーネントを処理する。ステップ660においてトップモジュールを完了すると(すなわち、トップモジュールの全サブコンポーネントをレビューし終えると)、HMS720はステップ680において終了する。
同様にHMS720は、先頭コンポーネントA511の次の未レビューサブコンポーネントを検査する。図5に示すように、これはコンポーネントA531のラインを含み、A531はサブコンポーネントA532の親となっており、さらに子コンポーネントB v1.2 533が含まれる。ステップ610に示すように、プロセス600のループを用いて、HMS720は子B v1.2 533を除外する。これはコンポーネントBであり、その親はAだからである(すなわちフィルタ550に合致する)。このように、このブランチにおいてコンポーネントA531とA532のみが階層500へ読み込まれる。
実施例において、HMS720は階層構造500の検査と構築に対して深さ優先のアプローチを実施する(すなわち、各新規コンポーネントを調査する際において、HMS720はその他サブコンポーネントをレビューする前に、最初のサブコンポーネントをステップダウンして完全検査する)。ただし、本明細書におけるシステムと方法を実施することを可能にする、階層構造500の横断と構築のその他アプローチも用い得ることを理解されたい。例えば幅優先アプローチが考えられる(すなわち、サブコンポーネントに対してステップダウンする前に、あるレベルにおける全コンポーネントをレビューする)。さらにフィルタ550は、範囲条件のみ(すなわち、論理取付点に基づく先頭コンポーネントA511以下)を記述し、フィルタコンポーネントとその親のコンポーネントタイプのみを含む識別条件を記述することもできる。ただしその他範囲条件や識別条件も可能であり本発明の範囲内であることを理解されたい。
図7は、階層管理システム720の例を示すブロック図700である。階層管理システム720は、階層構造500(図5に示す)のようなコンポーネント設計階層内におけるフィルタリング参照を実装するために用いられる。これに代えて、本明細書の階層管理システム720の動作を実現できる任意のコンピュータアーキテクチャを用いることもできる。実施例において階層管理システム720は、メモリデバイス750内でデータ構造のコンポーネント設計階層を構築し、図6のプロセス600で説明したようなフィルタリング参照とコンポーネント除外または削除を実現する。
実施例において階層管理システム720は、メモリデバイス750とプロセッサ752を備える。プロセッサ752は、命令を実行するため動作するようにメモリデバイス750と連結されている。実施形態において、実行可能命令がメモリデバイス750内に格納される。階層管理システム720は、プロセッサ752をプログラムすることにより、本明細書が説明する1以上の動作を実施するように構成することができる。例えばプロセッサ752は、1以上の実行可能命令として動作をコード化し、その実行可能命令をメモリデバイス750に対して提供することにより、プログラムすることができる。プロセッサ752は、1以上のプロセスユニットを備えることができる。例えばマルチコア構成が考えられるが、これに限らない。
実施例においてメモリデバイス750は、実行可能命令および/またはその他データなどの情報を格納し取得することができる1以上のデバイスである。メモリデバイス750は、1以上のコンピュータ読取可能媒体を含む。例えば、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、ソリッドステートディスク、ハードディスク、読取専用メモリ(ROM)、erasable programmable ROM (EPROM)、electrically erasable programmable ROM(EEPROM)、および/または不揮発性RAM(NVRAM)が挙げられるが、これらに限らない。これらメモリタイプは例示に過ぎず、コンピュータプログラムを格納するため用いることができるメモリタイプを限定するものではない。
実施例においてメモリデバイス750は、データ構造、ファイル、その他メモリ領域における様々なコンポーネントやサブコンポーネントに対応付けられた様々なコンポーネントやモジュールデータを格納するように構成することができる。さらにメモリデバイス750は、階層構造500のようなコンポーネント関係データ、フィルタデータ、および階層データ、または図1〜図5に示すようなその他コンポーネント関係データを格納することができる。さらにメモリデバイス750は、図5に示すようなフィルタリング参照データを格納することができる。
実施形態において階層管理システム720は、プロセッサ752に連結された提示インターフェース754を備える。提示インターフェース754は、例えばユーザインターフェースおよび/または警告などの情報を、ユーザ756に対して提示する。例えば提示インターフェース754は、ディスプレイデバイス(図示せず)に連結可能なディスプレイアダプタ(図示せず)備えることができる。ディスプレイデバイスは例えば、ブラウン管(CRT)、液晶ディスプレイ(LCD)、有機LED(OLED)ディスプレイ、および/またはディスプレイを有するハンドヘルドデバイスである。実施形態において提示インターフェース754は、1以上のディスプレイデバイスを備える。これに加えてまたはこれに代えて、提示インターフェース754は、例えばオーディオアダプタおよび/またはスピーカなどの音声出力デバイス(図示せず)を備えることができる。
実施形態において階層管理システム720は、ユーザ入力インターフェース758を備える。実施例においてユーザ入力インターフェース758は、プロセッサ752に連結され、ユーザ756から入力を受け取る。ユーザ入力インターフェース758は例えば、キーボード、ポインティングデバイス、マウス、スタイラス、および/またはタッチパッドやタッチスクリーンなどのタッチ検出パネルを含む。例えばタッチスクリーンなどの単一部材が、提示インターフェース754のディスプレイデバイスおよびユーザ入力インターフェース858として機能する場合もある。
実施例において、通信インターフェース760はプロセッサ752に連結され、例えば他コンピュータシステムや階層管理システム720にアクセスできるその他デバイスなどのような1以上の他デバイスと通信するように構成されている。このデバイスとしては例えば、ラップトップコンピュータ、携帯情報端末(PDA)、スマートフォンなどが挙げられるが、これに限らない。通信インターフェース760は、有線ネットワークアダプタ、無線ネットワークアダプタ、モバイル通信アダプタ、シリアル通信アダプタ、および/またはパラレル通信アダプタを含むが、これに限らない。通信インターフェース760は、1以上のリモートデバイスからデータを受信し、および/または1以上のリモートデバイスに対してデータを送信することができる。階層管理システム720は、リモート通信のためにwebを用いることができる。例えばリモートデスクトップコンピュータ(図示せず)が挙げられる。
実施例において、提示インターフェース754および/または通信インターフェース760は、本明細書が説明する方法とともに用いるのに適した情報を、例えばユーザ756や他デバイスに対して提供することができる。したがって提示インターフェース754および/または通信インターフェース760は、出力デバイスとみなすことができる。同様にユーザ入力インターフェース758および/または通信インターフェース760は、本明細書が説明する方法とともに用いるのに適した情報を受け取ることができ、入力デバイスとみなすことができる。
さらにプロセッサ752および/またはメモリデバイス750は、ストレージデバイス762と連結することができる。ストレージデバイス762は、データを格納しおよび/または受け取るのに適した、任意のコンピュータ動作可能なハードウェアである。ここでいうデータは、例えばデータベース164に関連するデータが挙げられるが、これに限らない。実施例においてストレージデバイス762は、階層管理システム720に統合されている。例えば階層管理システム720は、ストレージデバイス762として1以上のハードディスクドライブを備えることができる。さらに例えばストレージデバイス762は、複数のストレージユニットを備えることができる。例えばredundant array of inexpensive disks(RAID)構成における複数のハードディスクおよび/またはソリッドステートディスクである。ストレージデバイス762は、storage area network (SAN)、network attached storage (NAS)、および/またはクラウドベースストレージを含む。これに代えて、ストレージデバイス762を階層管理システム720の外部に設け、ストレージインターフェース(図示せず)を介してアクセスすることもできる。
さらに実施例においてデータベース764は、コンポーネント、モジュール、フィルタ、階層に対応付けられた様々な静的または動的動作データ、および階層構造を含む。
本明細書が説明する実施形態、および明示はしていないが本明細書の範囲内に含まれる実施形態は、フィルタリング参照を含むコンポーネント階層を管理する手段を構成する。例えば階層管理システム720、およびこれに追加または含まれる同様のコンピュータデバイスは、プロセッサに本明細書が説明するプロセスと技術を実行させるコンピュータ実行可能命令によってプログラムされた十分なコンピュータ読取可能記憶媒体を備える。具体的には、階層管理システム720およびこれに追加または含まれるその他同様のコンピュータデバイスは、コンポーネントフィルタを含むコンポーネント階層を管理する手段を構成する。
図8は、データベース820とコンピュータデバイス810の構成例800を示す。フィルタリング参照を含むコンポーネント階層を管理するため用いることができる、その他関連するコンピュータコンポーネントを併せて示している。実施形態において、コンピュータデバイス810は階層管理システム720(図7に示す)と同様のものである。データベース820は、コンピュータデバイス810内の複数の個別コンポーネントに連結されている。コンピュータデバイス810は、特定タスクを実施する。
実施例においてデータベース820は、コンポーネント&モジュールデータ822、階層データ824、フィルタデータ826を含む。実施形態においてデータベース820は、データベース764(図7に示す)と同様のものである。コンポーネント&モジュールデータ822は、図1〜図6で説明したデザインコンポーネントやモジュールに関連する情報を含む。階層データ824は、階層構造500(図5に示す)に示すような階層コンポーネントデータやコンポーネント間の関係を定義するデータを含む。フィルタ参照データ826は、例えばフィルタリング参照540(図5に示す)とフィルタ550(図5に示す)のようなコンポーネントフィルタリングに関連するデータを含む。
コンピュータデバイス810は、データベース820とともにデータストレージデバイス830を備える。コンピュータデバイス810は、階層管理コンポーネント840を備える。階層管理コンポーネント840は、モジュールをインポートし、階層構造500などの階層構造を構築管理する。コンピュータデバイス810は、階層のコンポーネントに対応付けられたモジュールを処理するモジュール読出コンポーネント850を備える。フィルタコンポーネント860は、プロセス700(図7に示す)で説明したようなフィルタプロセスを処理する。プロセスコンポーネント870は、トークン化システムに関連するコンピュータ実行可能命令の実行を補助する。
図9は、階層500(図5に示す)のような論理コンポーネント階層からコンポーネントをフィルタリングする方法例900である。実施例において、方法900は階層管理システム720(図7に示す)やコンピュータデバイス810(図8に示す)などのコンピュータシステムによって実施される。実施例において、方法900は、論理コンポーネント階層に対応付けられたフィルタをメモリ内で識別するステップ910を有する。実施形態において、フィルタを識別するステップ910はさらに、フィルタを適用する論理コンポーネント階層内のコンポーネントセットを規定する範囲条件を有するフィルタを識別するステップを有する。実施形態において、フィルタを識別するステップ910はさらに、フィルタを識別するステップであって、範囲条件が論理コンポーネント階層内の取付ノードを識別するステップを有する。実施形態において、フィルタを識別するステップ910はさらに、フィルタを識別するステップであって、コンポーネントセットが論理コンポーネント階層内の取付ノード以下のノードを含むように定義されるステップを有する。
実施例において、方法900は、プロセッサにより論理コンポーネント階層内のサブコンポーネントをフィルタと比較するステップ920を有する。実施形態において、フィルタを識別するステップ910はさらに、1以上のコンポーネント特性を定義する識別条件を含むフィルタを識別するステップを有する。またサブコンポーネントを比較するステップ920はさらに、識別条件をサブコンポーネントの特性と比較するステップを有する。実施形態において、識別条件を比較するステップはさらに、コンポーネント名、コンポーネント識別子、コンポーネントタイプ、コンポーネントバージョン識別子のうち1以上をサブコンポーネントの特性と比較するステップを有する。実施形態において、識別条件を比較するステップはさらに、少なくとも部分的に階層内のサブコンポーネントの相対階層名に基づき、フィルタコンポーネントを識別するステップを有する。
実施例において、方法900は、サブコンポーネントをフィルタと比較した結果に基づきフィルタリングするサブコンポーネントを識別するステップ930を有する。方法900は、論理コンポーネント階層からサブコンポーネントをフィルタリングするステップを有する。
以上の説明から分かるように、本明細書の上記実施形態は、コンピュータプログラミングまたはエンジニアリング技術を用いて実装することができる。これは、コンピュータソフトウェア、ファームウェア、ハードウェア、これらの組み合わせまたはサブセットを含む。その結果、コンポーネント階層を管理し、フィルタリングと階層から参照をフィルタリングすることを実装するシステムが得られる。結果として得られるこのようなプログラムは、コンピュータ読取可能コードを有し、1以上のコンピュータ読取可能媒体内に実装または提供することができる。これにより、本明細書の実施形態に基づくコンピュータプログラム製品(すなわち製造製品)を製作することができる。コンピュータ読取可能媒体は例えば、固定(ハード)ドライブ、ディスケット、光学ディスク、磁気テープ、読取専用メモリ(ROM)などの半導体メモリ、および/またはインターネットその他通信ネットワークやリンクなどの送受信媒体などがあるが、これに限られない。コンピュータコードを格納した製造製品は、媒体からコードを直接実行し、媒体から他の媒体へコードをコピーし、あるいはネットワーク上でコードを送信することにより、作成しおよび/または用いることができる。
これらコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、”app”、またはコードとしても知られている)は、プログラマブルプロセッサの機械命令を含み、高レベル手続型および/またはオブジェクト指向プログラム言語および/またはアセンブリ/機械言語によって実装することができる。本明細書において、「機械読取可能媒体」「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラム可能プロセッサに対して提供するために用いる任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば磁気ディスク、光学ディスク、メモリ、プログラム可能論理デバイス(PLD))を指す。これは、機械命令を機械読取可能信号として受け取る機械読取可能媒体を含む。ただし「機械読取可能媒体」「コンピュータ読取可能媒体」は、一時的信号を含まない。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラム可能プロセッサに対して提供するために用いる任意の信号を指す。
本方法およびシステムは、コンポーネント階層内で定義されたフィルタリング参照を用いてサブコンポーネントを除外する。例えばサブコンポーネントは、1以上の範囲条件と識別条件に基づき上位コンポーネント内の除外すべきコンポーネントを記述するフィルタ参照を定義することにより、階層を読み出す間に除外することができる。階層構築の間に本明細書のシステムおよび方法は、フィルタ参照に合致するサブコンポーネントを除外する。このようにコンポーネントは、コンポーネント階層からフィルタリングされあるいは除外される。
本システムが解決する技術的課題の少なくとも1つは以下を含む:(i)階層内に複数回現れる冗長階層コンポーネント;(ii)階層内にコンポーネントの異なるバージョンが存在することにより生じる競合。本明細書のシステムおよび方法が解決するその他技術的課題は、階層内に現れる不必要なコンポーネントによるコンピュータ処理の増加、すなわちコンピュータを低速にすることである。
本明細書が説明するシステムおよび方法は、コンピュータプログラミングまたはエンジニアリング技術を用いて実装することができる。これは、コンピュータソフトウェア、ファームウェア、ハードウェア、これらの組み合わせまたはサブセットを含む。技術的効果は、以下のステップの少なくとも1つを実施することにより実現できる:(a)前記論理コンポーネント階層に対応付けられたフィルタを前記メモリ内で識別するステップ;(b)前記プロセッサにより前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップ;(c)前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップ;(d)前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップ;(e)前記フィルタを適用する前記論理コンポーネント階層内のコンポーネントセットを定義する範囲条件を含む前記フィルタを識別するステップ;(f)前記フィルタを識別するステップであって、前記範囲条件は前記論理コンポーネント階層内の取付ノードを識別することを含む、ステップ;(g)前記フィルタを識別するステップであって、前記コンポーネントセットは前記論理コンポーネント階層内の前記取付ノード以下のノードを含むように定義される、ステップ;(h)1以上のコンポーネント特性を定義する識別条件を含む前記フィルタを識別するステップ;(i)前記識別条件を前記サブコンポーネントの特性と比較するステップ;(j)コンポーネント名、コンポーネント識別子、コンポーネントタイプ、コンポーネントバージョン識別子のうち1以上を前記サブコンポーネントの特性と比較するステップ;(k)前記階層内における前記サブコンポーネントの相対階層名に少なくとも部分的に基づきフィルタコンポーネントを識別するステップ。
本システムによって実現される技術的効果は、コンポーネント階層を維持するためのコンピュータ要件を減少させることの少なくとも1つである。これは例えば、セグメント再利用および/またはコンポーネントフィルタリングを拡張することによりなされる。したがってシステムにより、フィルタリングされたコンポーネント階層を実現できる。これにより、メモリ内の階層を構築および維持するために必要なコンピュータリソースを減少させ、コンピュータ負荷を減じることができる。
本明細書は、最良の実施形態を含む実施例を用いて説明し、当業者が本開示を実施できるようにしている。これは、デバイスまたはシステムを作成し、用い、組み込んだ方法を実施することを含む。本明細書の請求範囲は特許請求範囲によって定義され、当業者が想到可能なその他実施例を含むことができる。特許請求範囲の文言から逸脱せず、特許請求範囲の文言と実質的な差異がない等価構造要素を含むのであれば、そのような他実施例は特許請求範囲に含まれることが意図されている。

Claims (16)

  1. 論理コンポーネント階層からコンポーネントをフィルタリングするコンピュータ実装された方法であって、前記方法はプロセッサとメモリを有するコンピュータデバイスを用い、前記方法は、
    前記論理コンポーネント階層に対応付けられたフィルタを前記メモリ内で識別するステップ、
    前記プロセッサにより前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップ、
    前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップ、
    前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップ、
    を有し、
    前記フィルタを識別するステップはさらに、前記フィルタを適用する前記論理コンポーネント階層内のコンポーネントセットを定義する範囲条件を含む前記フィルタを識別するステップを有する
    ことを特徴とする方法。
  2. 前記フィルタを識別するステップはさらに、前記フィルタを識別するステップであって、前記範囲条件は前記論理コンポーネント階層内の取付ノードを識別することを含む、ステップを有する
    ことを特徴とする請求項記載の方法。
  3. 前記フィルタを識別するステップはさらに、前記フィルタを識別するステップであって、前記コンポーネントセットは前記論理コンポーネント階層内の前記取付ノード以下のノードを含むように定義される、ステップを有する
    ことを特徴とする請求項記載の方法。
  4. 前記フィルタを識別するステップはさらに、1以上のコンポーネント特性を定義する識別条件を含む前記フィルタを識別するステップを有し、
    前記サブコンポーネントを比較するステップはさらに、前記識別条件を前記サブコンポーネントの特性と比較するステップを有する
    ことを特徴とする請求項1記載の方法。
  5. 前記識別条件を比較するステップはさらに、コンポーネント名、コンポーネント識別子、コンポーネントタイプ、コンポーネントバージョン識別子のうち1以上を前記サブコンポーネントの特性と比較するステップを有する
    ことを特徴とする請求項記載の方法。
  6. 前記識別条件を比較するステップはさらに、前記階層内における前記サブコンポーネントの相対階層名に少なくとも部分的に基づきフィルタコンポーネントを識別するステップを有する
    ことを特徴とする請求項記載の方法。
  7. 論理コンポーネント階層からコンポーネントをフィルタリングするコンピュータデバイスであって、前記コンピュータデバイスはメモリと通信可能に連結されたプロセッサを備え、前記メモリは前記論理コンポーネント階層を格納し、前記コンピュータデバイスは、 前記論理コンポーネント階層に対応付けられたフィルタを前記メモリ内で識別するステップ、
    前記プロセッサにより前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップ、
    前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップ、
    前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップ、
    を実行するようにプログラムされており、
    前記フィルタは、前記フィルタを適用する前記論理コンポーネント階層内のコンポーネントセットを定義する範囲条件を含む
    ことを特徴とするコンピュータ装置。
  8. 前記範囲条件は、前記論理コンポーネント階層内の取付ノードを識別することを含む
    ことを特徴とする請求項記載のコンピュータ装置。
  9. 前記コンポーネントセットは、前記論理コンポーネント階層内の前記取付ノード以下のノードを含むように定義される
    ことを特徴とする請求項記載のコンピュータ装置。
  10. 前記フィルタは、1以上のコンポーネント特性を定義する識別条件を含み、
    前記サブコンポーネントを比較するステップはさらに、前記識別条件を前記サブコンポーネントの特性と比較するステップを有する
    ことを特徴とする請求項記載のコンピュータ装置。
  11. 前記識別条件を比較するステップはさらに、コンポーネント名、コンポーネント識別子、コンポーネントタイプ、コンポーネントバージョン識別子のうち1以上を前記サブコンポーネントの特性と比較するステップを有する
    ことを特徴とする請求項10記載のコンピュータ装置。
  12. 前記識別条件を比較するステップはさらに、前記階層内における前記サブコンポーネントの相対階層名に少なくとも部分的に基づきフィルタコンポーネントを識別するステップを有する
    ことを特徴とする請求項10記載のコンピュータ装置。
  13. コンピュータ実行可能命令を格納した少なくとも1つのコンピュータ読取可能記憶媒体であって、少なくとも1つのプロセッサが実行することにより、前記コンピュータ実行可能命令は前記プロセッサに、
    論理コンポーネント階層に対応付けられたフィルタを識別するステップ、
    前記論理コンポーネント階層のサブコンポーネントを前記フィルタと比較するステップ、
    前記サブコンポーネントと前記フィルタの比較に基づきフィルタリングする前記サブコンポーネントを識別するステップ、
    前記論理コンポーネント階層から前記サブコンポーネントをフィルタリングするステップ、
    を実行させ
    前記フィルタは、1以上のコンポーネント特性を定義する識別条件を含み、
    前記サブコンポーネントを比較するステップはさらに、前記識別条件を前記サブコンポーネントの特性と比較するステップを有し、
    前記識別条件を比較するステップはさらに、前記階層内における前記サブコンポーネントの相対階層名に少なくとも部分的に基づきフィルタコンポーネントを識別するステップを有する
    ことを特徴とするコンピュータ読取可能記憶媒体。
  14. 前記フィルタは、前記フィルタを適用する前記論理コンポーネント階層内のコンポーネントセットを定義する範囲条件を含む
    ことを特徴とする請求項13記載のコンピュータ読取可能記憶媒体。
  15. 前記範囲条件は、前記論理コンポーネント階層内の取付ノードを識別することを含み、 前記コンポーネントセットは、前記論理コンポーネント階層内の前記取付ノード以下のノードを含むように定義される
    ことを特徴とする請求項14記載のコンピュータ読取可能記憶媒体。
  16. 前記識別条件を比較するステップはさらに、コンポーネント名、コンポーネント識別子、コンポーネントタイプ、コンポーネントバージョン識別子のうち1以上を前記サブコンポーネントの特性と比較するステップを有する
    ことを特徴とする請求項13記載のコンピュータ読取可能記憶媒体。
JP2015031372A 2014-02-21 2015-02-20 階層参照データにおけるコンポーネントをフィルタリングする方法およびシステム Active JP6605812B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461942915P 2014-02-21 2014-02-21
US61/942,915 2014-02-21
US14/572,367 US9626471B2 (en) 2014-02-21 2014-12-16 Methods and systems for filtering components in hierarchically-referenced data
US14/572,367 2014-12-16

Publications (2)

Publication Number Publication Date
JP2015158911A JP2015158911A (ja) 2015-09-03
JP6605812B2 true JP6605812B2 (ja) 2019-11-13

Family

ID=52544251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015031372A Active JP6605812B2 (ja) 2014-02-21 2015-02-20 階層参照データにおけるコンポーネントをフィルタリングする方法およびシステム

Country Status (6)

Country Link
US (1) US9626471B2 (ja)
EP (1) EP2911073A1 (ja)
JP (1) JP6605812B2 (ja)
KR (1) KR20150099456A (ja)
CN (1) CN104866300B (ja)
CA (1) CA2880948A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565338B2 (en) * 2017-12-13 2020-02-18 International Business Machines Corporation Equivalency verification for hierarchical references

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064273A (ja) * 1992-06-24 1994-01-14 Toshiba Corp データ処理装置
US6192506B1 (en) * 1998-03-31 2001-02-20 Westinghouse Process Control, Inc. Controller for solving logic
US6480857B1 (en) 2001-06-07 2002-11-12 David Chandler Method of organizing hierarchical data in a relational database
US7213018B2 (en) * 2002-01-16 2007-05-01 Aol Llc Directory server views
JP2006163854A (ja) * 2004-12-08 2006-06-22 Yaskawa Electric Corp コンパイル方法、コンパイル処理装置、プログラムおよび記録媒体
US7650349B2 (en) * 2005-01-05 2010-01-19 Microsoft Corporation Prescribed navigation using topology metadata and navigation path
US7363599B1 (en) 2005-10-04 2008-04-22 Xilinx, Inc. Method and system for matching a hierarchical identifier
US8521736B2 (en) * 2005-10-26 2013-08-27 Dassault Systemes Enovia Corp. Managing hierarchies of components
TWI334091B (en) * 2007-03-03 2010-12-01 Ind Tech Res Inst Data file management and search method and system based on file attributes
US8001503B2 (en) 2007-12-13 2011-08-16 International Business Machines Corporation Method and system for automatically accessing internal signals or ports in a design hierarchy
JP2009176049A (ja) 2008-01-24 2009-08-06 Fujitsu Ltd 解析支援装置、解析支援方法および解析支援プログラム
US8510685B1 (en) 2009-12-30 2013-08-13 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for creating a hierarchical output for an operation in an electronic design
US9235633B2 (en) * 2011-12-06 2016-01-12 International Business Machines Corporation Processing data in a data warehouse
US10885235B2 (en) 2012-08-13 2021-01-05 The Boeing Company Multi-user virtual product development environment
EP2759964A1 (de) 2013-01-29 2014-07-30 dSPACE digital signal processing and control engineering GmbH Computerimplementiertes Verfahren zur Datenverwaltung von Produktvarianten in der Steuergeräteentwicklung

Also Published As

Publication number Publication date
CN104866300B (zh) 2019-12-31
JP2015158911A (ja) 2015-09-03
EP2911073A1 (en) 2015-08-26
CN104866300A (zh) 2015-08-26
US9626471B2 (en) 2017-04-18
CA2880948A1 (en) 2015-08-21
KR20150099456A (ko) 2015-08-31
US20150242556A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
US10853338B2 (en) Universal data pipeline
JP6573452B2 (ja) 階層参照データにおけるコンフリクトを解消する方法およびシステム
US9582526B2 (en) Optimizing database definitions in an existing database
US9135591B1 (en) Analysis and assessment of software library projects
Smith et al. " Big Metadata" The Need for Principled Metadata Management in Big Data Ecosystems
US11983512B2 (en) Creation and management of data pipelines
US9002824B1 (en) Query plan management in shared distributed data stores
US9652495B2 (en) Traversal-free updates in large data structures
US8423951B1 (en) Systems and/or methods for identifying corresponding elements in different models
JP6605812B2 (ja) 階層参照データにおけるコンポーネントをフィルタリングする方法およびシステム
CN117193802A (zh) 提供对应用程序内容多个实例的访问的合并空间
US11789770B2 (en) Systems and methods for creating surrogate models
US11119761B2 (en) Identifying implicit dependencies between code artifacts
JP2018085042A (ja) データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム
JP2022526886A (ja) 拡張可能データ・スキップ方法、システム、プログラム
US12001813B2 (en) Software platform that facilitates definition, design, development, and deployment of software products
US20230222421A1 (en) System and method for dynamic objects and uses for same, including dynamic case model instances in a case management system
JP4895373B2 (ja) ソフトウェア成果物再利用方法及びそのシステム
JP2013012082A (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20150617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190404

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: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191017

R150 Certificate of patent or registration of utility model

Ref document number: 6605812

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