(57)【要約】  複数のグラフィックモデリングツール中のグラフィックモデリングツールの１つまたは複数の共有コンポーネントの再利用。グラフィック・デザイナ、つまりグラフィックモデリングツールによって、オブジェクト、オブジェクトのプロパティ及びオブジェクトの相互関係が視覚化可能なモデルのグラフィカル表示の構成が可能になる。したがって、種々のグラフィックモデリングツールが、サポート可能であり、かつ他のグラフィックモデリングツールの一部を用いてデータの設定を行える（populate）。
2009530739.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムの１つまたは複数のプロセッサによって実行されるときに、前記コンピュータシステムに、
少なくとも１つの共有要素の宣言を含むグラフィック・デザイナの宣言型定義を解釈する動作と、
前記グラフィック・デザイナの前記宣言型定義の外部にある前記共有要素の宣言型定義を参照する動作と、
前記グラフィック・デザイナの前記宣言型定義における前記共有要素の前記宣言と前記共有要素の前記外部の宣言型定義とを用いて、前記グラフィック・デザイナ内の前記共有要素を実行する動作と
を実行させるように構成されたコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能な媒体を含むことを特徴とするコンピュータプログラム・プロダクト。
【請求項２】
前記１つまたは複数のコンピュータ読み取り可能な媒体が物理メモリ媒体であることを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項３】
前記１つまたは複数のコンピュータ読み取り可能な媒体が物理ストレージ媒体であることを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項４】
請求項１に記載されたコンピュータプログラム・プロダクトを含むことを特徴とするコンピュータシステム。
【請求項５】
前記コンピュータ読み取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されるときに、
前記グラフィック・デザイナの前記宣言型定義の内部にある非共有要素の宣言型定義を解釈する動作を前記コンピュータシステムに実行させるコンピュータ実行可能命令をさらに有することを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項６】
前記コンピュータ読み取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されるときに
非共有オブジェクトタイプの宣言型定義を用いて前記非共有要素を実装する動作を前記コンピュータシステムに実行させるコンピュータ実行可能命令をさらに有することを特徴とする請求項５に記載のコンピュータプログラム・プロダクト。
【請求項７】
前記共有要素は、要素の第１のクラス内の第１の共有要素であり、
前記コンピュータ読み取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されるときに、
前記グラフィック・デザイナの前記宣言型定義内の要素の第２のクラスの第２の共有要素の宣言を検出する動作と、
前記グラフィック・デザイナの前記宣言型定義の外部にある前記第２の共有要素の宣言型定義を参照する動作と、
前記グラフィック・デザイナの前記宣言型定義内の前記第２の共有要素の前記宣言と前記第２の共有要素の前記外部の宣言型定義とを用いて前記グラフィック・デザイナ内の前記第２の共有要素を実装する動作と
を前記コンピュータシステムに実行させるコンピュータ実行可能命令をさらに有することを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項８】
前記共有要素が第１の共有要素であり、前記グラフィック・デザイナは第１のグラフィック・デザイナであり、
前記コンピュータ読み取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されるときに、
少なくとも第２の共有要素の宣言を含む第２のグラフィック・デザイナの宣言型定義を解釈する動作と、
前記第２のグラフィック・デザイナの前記宣言型定義の外部にある前記第２の共有要素の宣言型定義を参照する動作と、
前記第２のグラフィック・デザイナの前記宣言型定義内の前記第２の共有要素の前記宣言と前記第２の共有要素の前記外部の宣言型定義とを使用して前記第２の共有要素を実装する動作と、
を前記コンピュータシステムに実行させるコンピュータ実行可能命令をさらに有することを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項９】
前記第１の共有要素及び前記第２の共有要素の前記宣言型定義は共有ライブラリデータ構造からアクセスされることを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項１０】
前記共有要素が第１の共有要素であり、前記グラフィック・デザイナは第１のグラフィック・デザイナであり、
前記コンピュータ読み取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されるときに、
少なくとも第２の共有要素の宣言型定義を含む第２のグラフィック・デザイナの宣言型定義を解釈する動作と、
前記第２の共有要素の前記宣言型定義を使用して前記第２の共有要素を実装する動作と
を前記コンピュータシステムに実行させるコンピュータ実行可能命令をさらに有することを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項１１】
前記第１の共有要素及び前記第２の共有要素の前記宣言型定義は、前記第２のグラフィック・デザイナの内部にある共有ライブラリデータ構造からアクセスされることを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項１２】
前記共有要素は、ドメインクラス、ドメインクラス間の関係、及び列挙要素のうちの少なくとも１つを含むドメインモデルのコンポーネントを含むことを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項１３】
前記共有要素は、形状、コネクタ、又はデコレイタ要素のうちの少なくとも１つを含むグラフィック表記を含むことを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項１４】
前記グラフィック・デザイナの前記宣言型定義はマッピング定義の宣言型定義を含むことを特徴とする請求項１に記載のコンピュータプログラム・プロダクト。
【請求項１５】
１つまたは複数のコンピュータ読み取り可能な媒体と、
１つまたは複数のプロセッサと
を含むコンピュータシステムであって、
前記コンピュータ読み取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されるときに、
前記グラフィックモデリングツールの複数の要素を定義する宣言型定義であって、グラフィックモデリングツールの宣言型定義にアクセスする動作であって、前記複数の要素のうちの少なくとも１つは、宣言によって定義されたオブジェクトクラスの共有ライブラリ内に定義された要素に対するリファレンスによって定義されている動作と、
前記複数の要素のうちの少なくとも１つを前記共有要素の宣言型定義の解釈に基づいて共有オブジェクトタイプとして認識する動作と
を前記コンピュータシステムに実行させるコンピュータ実行可能命令を有することを特徴とするコンピュータシステム。
【請求項１６】
オブジェクトクラス、オブジェクト間の関係タイプ、及びオブジェクト形状のうちの少なくとも１つを含む共有要素であって、少なくとも１つの共有要素の宣言を含むグラフィック・デザイナの宣言型定義と、
前記グラフィック・デザイナの前記宣言型定義の外部にある前記共有要素の宣言型定義と、
前記グラフィック・デザイナの前記宣言型定義内の前記共有要素の前記宣言と前記共有要素の前記外部の宣言型定義とを使用して前記共有要素を実装するように構成された解釈コンポーネントと
を含むデータ構造を有することを特徴とする１つまたは複数のコンピュータ読み取り可能な媒体。
【請求項１７】
前記１つまたは複数のコンピュータ読み取り可能な媒体が、物理メモリ及び／又はストレージ媒体であることを特徴とする請求項１６に記載の１つまたは複数のコンピュータ読み取り可能な媒体。
【請求項１８】
データ構造は、前記グラフィック・デザイナの前記宣言型定義の内部にある非共有要素の宣言型定義をさらに含むことを特徴とする請求項１６に記載の１つまたは複数のコンピュータ読み取り可能な媒体。
【請求項１９】
前記共有要素は第１の共有要素であり、
前記データ構造は、
前記グラフィック・デザイナのドメインモデルの前記宣言型定義内の要素の第２のクラスの第２の共有要素の宣言をさらに含むことを特徴とする請求項１６に記載の１つまたは複数のコンピュータ読み取り可能な媒体。
【請求項２０】
前記データ構造は、
前記共有要素を含む共有オブジェクトデータ構造と、
複数のグラフィック・デザイナの間で共有される複数の他の共有要素と
をさらに含むことを特徴とする請求項１６に記載の１つまたは複数のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のグラフィック・デザイナ宣言型定義の中の共有要素の再利用を可能にすることに関する。
【背景技術】
【０００２】
コンピュータ技術は人類の前進に大いに貢献してきた。デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）、電話、及び、例えば、冷蔵庫や自動車等のコンピュータシステムとして従来考えられていなかったデバイスさえも含む種々の物理的形態内において、コンピュータシステムは機能している。このように、コンピュータシステムは、いかなるタイプのプロセッサ及びメモリを有するいかなるデバイス又はシステムであってもよい。
【０００３】
コンピュータ技術がサポートする１つの一般的なアプリケーションが、（「グラフィック・デザイナ」とも称される）グラフィックモデリングツールである。グラフィックモデリングツールによって、グラフィックモデルの規則的かつ効率的な構成が容易となる。グラフィックモデルは、相互関係を有するオブジェクトの集合（collection）の可視化表現を含む。グラフィックモデルは種々のドメインによって異なった方法で使用可能である。例えば、ワークフロー、組織図、電気回路、ソフトウェアアーキテクチャ、ソフトウェアフローチャートの各々が、グラフィックモデルを使用して表現できる。グラフィックモデリングツールが有用である何千もの異なったアプリケーションがまさに存在する。各々のケースにおいて、オブジェクトと相互関係のタイプは全く異なることがある。アプリケーションの単一ドメイン内でさえ、オブジェクトと相互関係がどのように表示されるかということについての明確なプレファレンス（preference）がある。例えば、ある銀行は、経済的取引を表す１つのグラフィックモデリングスタイルを好むこともあり、一方、別の銀行は、経済的取引のための異なるグラフィックモデリングスタイルを表すこともある。
【０００４】
グラフィックモデリングツールを構築することは、難問であり、かつ手間のかかる課題である。典型的なグラフィック・デザイナの構築は、グラフィック表記を使用するデザイン面を実装するソフトウェアデベロッパーと、ユーザがデザイン面上の要素をドラッグ・アンド・ドロップするように許容するツールボックスと、デザイン面上のオブジェクトのプロパティであって、ユーザがモデル化を試みている課題に関する重要な情報を表すプロパティを表す機構と、モデルデータを介してナビゲートするエクスプローラのような他のユーザインタフェース（ＵＩ）要素と、を含む。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
異なったグラフィック・デザインのドメイン及びプレファレンスの莫大な数を考慮すると、ドメイン及びプレファレンスの各々のグラフィックモデリングツールを構築する課題は難問のようである。
【課題を解決するための手段】
【０００６】
グラフィック・デザイナ、つまりグラフィックモデリングツールによって、視覚化される要素を含むモデルのグラフィカル表示の構築が可能となる。必要ではないが、本発明の実施形態は、複数のグラフィック・デザイナ間の１つまたは複数の共有要素を共有して、より多くの要素の選択が所定のグラフィック・デザイナにおいて用いられるのを可能にすることに関連する。１つの位置が要素の宣言型定義を有してもよく、その要素は、共有要素の宣言型定義を明示的に含まない共有要素の宣言型定義を参照することによって、グラフィック・デザイナの宣言型定義に組み入れられてもよい。
【０００７】
本概要は、詳細な説明でさらに説明されるいくつかの概念を単純な態様で導入するために与えられる。本概要は、特許請求の範囲に記載された対象の重要な特徴若しくは本質的な特徴を特定することを意図しておらず、又特許請求の範囲に記載された対象の範囲を判定するのに使用されることを意図しない。
【０００８】
添付図面は、本発明の実施形態について詳細に説明するために用いられる。これらの図面が本発明の典型的な実施形態のみを表し、かつその範囲を限定するものとして考慮されるべきでないことを理解して、本発明の実施形態を、添付図面を用いてさらに具体的かつ詳細に説明する。
【発明を実施するための最良の形態】
【０００９】
本発明の実施形態は、複数のグラフィックモデリングツールのうちのグラフィックモデリングツールの宣言によって定義された要素の再利用にまで及ぶ。まず、図１を参照して本発明の原理を利用可能な例示的なコンピュータシステムを説明する。その後、本発明の原理を後続の図面に対してさらに詳細に説明する。
【００１０】
本発明の実施形態は、以下で詳細に検討するように、様々なコンピュータハードウェアを含む専用コンピュータ又は汎用コンピュータを含むことができる。図１は、本発明の特徴を実装するのに用いられる例示的なコンピュータシステム１００の概要図を示す。説明したコンピュータシステムは、かかる適当なコンピュータシステムの１つの例にすぎず、本発明の使用の範囲又は機能性の範囲に関していかなる制限も課すことを意図していない。本発明が、図１に示したコンポーネントの１つ若しくは組合せに関連するいかなる依存関係又は要件を有するものとして、解釈されるべきでない。
【００１１】
コンピュータシステムは、現在、ますます多種多様な形態を取りつつある。コンピュータシステムは、例えば、携帯型デバイス、電気製品、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、分散型コンピュータシステム、又はコンピュータシステムと従来見なされていなかったデバイスであってもよい。本明細書と特許請求の範囲においては、「コンピュータシステム」という用語は、少なくとも１つのプロセッサを含む任意のデバイス若しくはシステム（又は、それらの組合せ）と、プロセッサによって実行されるコンピュータ実行可能命令を有することができるメモリと、を含むものとして広く定義される。メモリは、いかなる形態をとってもよく、コンピュータシステムの特性と形態に依存してもよい。コンピュータシステムは、ネットワーク環境にわたって配置され、複数構成のコンピュータシステムを含んでもよい。
【００１２】
図１を参照すると、最も基本的な構成では、コンピュータシステム１００は、典型的には少なくとも１つの処理ユニット１０２とメモリ１０４を含む。メモリ１０４はシステムメモリであってもよく、そのシステムメモリは、揮発性、不揮発性、又はその２つの組み合わせであってもよい。揮発性メモリの例は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。不揮発性メモリの例は、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ等を含む。また、「メモリ」という用語は、本明細書において、物理ストレージ媒体等の不揮発性大容量ストレージを称するものに用いられてもよい。かかるストレージがリムーバブル又は非リムーバブルであってもよく、ＰＣＭＣＩＡカード、磁気ディスク及び光ディスク、磁気テープ等を含んでもよい（しかしながら、これらに限定されない）。
【００１３】
本明細書において用いられるように、「モジュール」又は「コンポーネント」という用語は、コンピュータシステム上で実行するソフトウェアオブジェクト又はルーチンを示す。本明細書に記載された異なるコンポーネント、モジュール、エンジン及びサービスが、コンピュータシステム上で実行するオブジェクト又はプロセスとして（例えば、別々のスレッドとして）実装されてもよい。本明細書に記載されたシステムと方法はソフトウェア内で実装されるが、ハードウェア内、並びにソフトウェア及びソフトウェアの組み合わせ内での実装も可能であり、かつ意図されている。
【００１４】
以下の説明では、本発明の実施形態を、１つまたは複数のコンピュータシステムにより実行されるアクト（act）を参照して説明する。かかるアクトがソフトウェア内で実行される場合、アクトを実行する関連コンピュータシステムの１つまたは複数のプロセッサが、コンピュータ実行可能命令を実行したことに応じて、コンピュータシステムの操作を命令する。かかる操作の例はデータ操作を含む。コンピュータ実行可能命令（及び、操作されたデータ）は、コンピュータシステム１００のメモリ１０４内に記憶されてもよい。
【００１５】
コンピュータシステム１００は、コンピュータシステム１００が、例えば、ネットワーク１１０上の他のコンピュータシステムとの通信を可能にする通信チャネル１０８を含むことができる。通信チャネル１０８は通信媒体の例である。通信媒体は、コンピュータ読み出し可能な命令と、データ構造と、プログラムモジュールと、又は伝送波若しくは他の転送機構等の変調されたデータ信号内の他のデータとを典型的には統合し、かつ任意の情報配信媒体をも含む。限定ではなく例として、通信媒体は、有線ネットワークや直接的有線接続等の有線媒体並びに、音声、無線、赤外線及び他の無線媒体等の無線媒体を含む。本明細書に用いられたコンピュータ読み取り可能な媒体という用語は、ストレージ媒体と通信媒体の両方を含む。
【００１６】
また、本発明の範囲内の実施形態は、コンピュータ実行可能命令若しくは記憶されたデータ構造を送信する若しくは有するコンピュータ読み取り可能な媒体を含む。かかるコンピュータ読み取り可能な媒体は、汎用コンピュータ又は専用コンピュータによってアクセスされ、かつ利用可能な任意の媒体であってもよい。制限ではなく例として、かかるコンピュータ読み取り可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは他の光ディスクメモリ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は任意の他の媒体等の物理ストレージ及び／又はメモリ媒体を含むことができ、その物理ストレージ及び／又はメモリ媒体は、コンピュータ実行可能命令若しくはデータ構造の形態で、所望のプログラムコード化手段を送信若しくは記憶するのに利用され、かつ、汎用コンピュータ又は専用コンピュータによってアクセス可能である。ネットワーク若しくは別の通信接続（ハード・ワイヤード、ワイヤレス、またはその両方の組合せのいずれか１つ）上で、情報をコンピュータに転送する又は供給するときに、コンピュータはその接続をコンピュータ読み取り可能な媒体として適切にみなす。従って、かかる接続のいずれもが、コンピュータ読み取り可能な媒体と正確には称される。また、上記組合せをコンピュータ読み取り可能な媒体の範囲の中に含めるべきである。
【００１７】
コンピュータ実行可能命令は例えば命令とデータを含み、その命令とデータにより、汎用コンピュータ、専用コンピュータ、又は専用制御演算装置は、特定の関数若しくは関数群を実行する。本発明の対象を、構造的特徴及び／又は方法論的アクトに特有の言語によって説明したが、添付された特許請求の範囲内で定義された本発明の対象は、本明細書に記載された特有の特徴若しくはアクトに必ずしも限定されないことを理解すべきである。むしろ、本明細書に記載された特有の特徴及びアクトは、特許請求の範囲を実装する例示の形態として開示されている。
【００１８】
図２は、グラフィック・デザイナを表示するユーザインタフェース２００を示す。本明細書及び特許請求の範囲では、「グラフィック・デザイナ」又は「グラフィックモデリングツール」は、１つまたは複数の視覚化されたオブジェクト及び相互関係のグラフィックモデルの形成を可能にするアプリケーションである。いくつかのケースにおける単一のアプリケーションは複数のグラフィック・デザイナをサポート可能である。先に言及したように、異なったアプリケーションのドメイン及びプレファレンスは、異なったオブジェクトクラス、相互関係、及びそれらの視覚化を保証してもよい。本発明の原理は、複数のグラフィック・デザイナの中から宣言によって定義された要素を共有することを可能にする。従って、「グラフィック・デザイナ」及び「グラフィックモデリングツール」という用語は、図２を参照して説明される実施形態に決して限定されない広義の用語である。
【００１９】
ユーザインタフェース２００は、グラフィック表記法を実装するデザイン面（design surface）２０１と、ユーザがデザイン面上の要素をドラッグ・アンド・ドロップすることを可能にするツールボックス枠（toolbox pane）２０２と、デザイン面上のオブジェクトのプロパティを表すプロパティ枠２０３と、モデルデータを介してナビゲートするナビゲーション枠２０４とを含む。
【００２０】
グラフィック・デザイナ２００は、様々なモデルを構成するのに使用可能である。しかしながら、各グラフィック・デザイナ２００によって、あるタイプのオブジェクトクラス、関係、及びそれらの視覚化が可能となるであろう。グラフィック・デザイナは、宣言型定義を使用する宣言的な方法で定義される。グラフィック・デザイナを定義するコンピュータに与えられた詳細な命令のリストを使用する代わりに、グラフィック・デザイナ宣言型定義は、グラフィック・デザイナの関連要素を各々が定義する一群の宣言型定義を特定する。「要素（element）」は、例えば、オブジェクトクラスと、関係と、それらの視覚化と、又は（視覚化されたか又は非視覚化された）グラフィック・デザイナの任意の他の態様とを含むグラフィック・デザイナの任意の態様であってもよい。宣言型定義の目的は、すべての無関係な細部を省略して、グラフィック・デザイナの動作について説明する方法を最小で、かつ効率的になすことである。後のいくつかの点では、宣言型定義は、宣言型定義によって定義された指定を順守する命令シーケンスを生成するインタプリタ又はコードジェネレータによって解釈されてもよい。グラフィック・デザイナの宣言型定義を表す１つの方法は、ＸＭＬ（extensible Markup Language）ドキュメントを使用することである。しかしながら、宣言型定義は、バイナリ又は他の非テキストフォームで表されてもよい。グラフィック・デザイナの所定の要素の実装は、グラフィック・デザイナの細部を実装する実行可能コードを変更するよりもむしろ、要素を記述する宣言型定義を単に変更することによって、変更されてもよい。
【００２１】
上述のように、グラフィック・デザイナの宣言型定義は、ＸＭＬドキュメントの形態とすることができる。１つの実施形態では、グラフィック・デザイナの宣言型定義は、特定の問題ドメインに固有であるオブジェクトクラスの形態で、並びに、特定オブジェクト、それらのプロパティ、及びオブジェクト間の関係タイプを定義するオブジェクトクラスの形態で、ドメインモデルコンポーネントを含んでもよい。問題ドメインによって、これらの要素は相当に変化してもよい。例えば、グラフィック・デザイナが金融アプリケーションに使用された場合、オブジェクトクラスは、通貨、支払い、請求明細書等を含むことができる。グラフィック・デザイナがスケジュール管理アプリケーションで使用された場合、オブジェクトクラスは、業務（task）、完遂する順序等を含むことができる。ユーザがコンピュータネットワークの構造をモデル化するためにデザイナを構築する場合、ユーザは「オペレーティングシステム」及び「ストレージ容量」などのプロパティ、並びに「ネットワーク接続」などの関係を用いて、「サーバ」と称されるオブジェクトを定義してもよい。
【００２２】
ドメインモデルは３種類の要素、すなわち、ドメインクラス、（ドメインクラスのプロパティを自ら有する）ドメインクラス間の関係（relationship）、及び列挙（enumeration）を含んでもよい。これらの要素の各々は、スキーマ定義に現れてもよく、別のデザイナからの要素を参照することによって単独で再利用されてもよい。
【００２３】
グラフィック・デザイナの宣言型定義は、設計モデルのオブジェクト及び関係を視覚化するのに使用可能な表記要素を含むことができる。例えば、コンピュータネットワークドメインでは、グラフィック・デザイナは、「サーバ」オブジェクトを視覚化するアイコンを用いてもよく、アイコンに隣接するテキストとして「サーバ」オブジェクトの名前を示してもよい。ネットワーク接続は、別の「サーバ」オブジェクトに対する矢印を使用して視覚化されてもよい。
【００２４】
表記の定義は３種類の要素、すなわち、形状（shape）、コネクタ（connector）、及びデコレイタ（decorator）を指定することができる。例えば、形状は、（事前に定義された「長方形」などの形状を利用した）幾何学形状、イメージ形状であってもよく、その幾何学形状、イメージ形状においては、オブジェクトが、イメージ、又はリッチな性質を有する複雑な形状として表されている。コネクタは、２つの形状を接続する要素である。コネクタに対して、デザイナービルダーは、このコネクタによってどのタイプの形状がどの他のタイプの形状に接続可能であるのかを指定することができる。デコレイタは形状及びコネクタにテキスト若しくはアイコンを添える。また、これらの要素の各々はグラフィック・デザインの宣言型定義に対するスキーマ定義に現れてもよい。
【００２５】
また、宣言型定義はマッピング定義を含むことができる。マッピング定義は、ドメインモデルのどの要素が表記のどの要素と関連するかを指定する。例えば、上記の例では、グラフィック・デザイナは、「サーバ」に対するドメインオブジェクトを「サーバ」オブジェクトを視覚化するのに使用される形状にマッピングすることができる。
【００２６】
マッピング定義は４種類の要素、すなわち、TextDecoratorMaps、IconDecoratorMaps、ShapeMaps、及びConnectorMapsを指定する。TextDecoratorMaps又はIconDecoratorMapsがデコレイタ内で表示された値をオブジェクトの値にマッピングする。ShapeMapsは形状自体を１つまたは複数のオブジェクトにマッピングする。このマッピングは形状のタイプに依存している。各ShapeMapはこの形状に対するDecoratorMapsのリストを含むことができる。ConnectorMapsは２つのドメインオブジェクト間の関係にコネクタをマッピングする。各ConnectorMapはこのコネクタに対するDecoratorMapsのリストを含むことができる。前と同じように、これらの要素の各々はグラフィック・デザインの宣言型定義に対するスキーマ定義ファイルに現れてもよい。
【００２７】
図３は、共有要素がある複数のグラフィック・デザイナ宣言型定義を含むソフトウェアアーキテクチャ環境３００を示す。特に、この実施形態では、第１のグラフィック・デザイナ宣言型定義３１０は、横方向の省略記号３１１Ｋによって場合によっては表される他の要素のうち、要素３１１Ａから３１１Ｊを含む。第２のグラフィック・デザイナ宣言型定義３２０は、横方向の省略記号３１２Ｉによって場合によっては表される他の要素のうち、要素３２１Ａから３２１Ｈを含む。横方向の省略記号３３０によって表されるように、他のグラフィック・デザイナ宣言型定義があってもよい。
【００２８】
グラフィック・デザイナ宣言型定義は、その構成要素のいくつかの宣言型定義を含む。例えば、第１のグラフィック・デザイナ宣言型定義３１０は、要素３１１Ａ、３１１Ｂ、３１１Ｄ、３１１Ｅ、３１１Ｆ、３１１Ｇ、及び３１１Ｉに対する宣言型定義を含む。第２のグラフィック・デザイナ宣言型定義３２０は、要素３２１Ｂ、３２１Ｃ、３２１Ｅ、３２１Ｆ、及び３２１Ｇに対する宣言型定義を含む。
【００２９】
また、グラフィック・デザイナ宣言型定義は、要素に対して表された定義を含まずに、いくつかの要素の宣言を含むことができる。例えば、第１のグラフィック・デザイナ宣言型定義３１０は、共有要素３４１Ａ、３４１Ｃ、及び３４１Ｂに対応する宣言型定義に対応するレファレンス３１２、３１４、及び３１３の形態で、要素３１１Ｃ、３１１Ｈ、及び３１１Ｊに対する宣言を含んでいる。第２のグラフィック・デザイナ宣言型定義３２０は、共有要素３４１Ｂ、３４１Ｃ、及び３４１Ｄに対応する宣言型定義に対応するレファレンス３２２、３２３、及び３２４の形態で、要素３２１Ａ、３２１Ｄ、及び３２１Ｈに対する宣言を含んでいる。
【００３０】
そのため、共有要素に対する宣言型定義は、要素の完全な宣言型定義を含んでいない共有要素を単に参照することによって、種々の異なるグラフィック・デザイナ内で再利用されることが可能である。１つの実施形態では、共有要素宣言型定義を、共有要素のライブラリ３４０内に含めてもよい。例えば、この場合、ライブラリは、場合によっては縦方向の省略記号３４１Ｅによって表された要素のうち、対応する要素３４１Ａから３４１Ｄの宣言型定義を含むものとして例示されている。ライブラリ３４０は、すべてのグラフィック・デザイナ宣言型定義の外部にあってもよい。しかしながら、ライブラリ３４０を単一のグラフィック・デザイナ宣言型定義内に完全に含めてもよく、又は、複数のグラフィック・デザイナ宣言型定義を介して配置してもよい。共有要素は、例えば、１）ドメインクラス、ドメインクラス間の関係、及び列挙要素のうちの少なくとも１つを含むドメインモデルのコンポーネントと、２）形状、コネクタ、又はデコレイタ要素のうち少なくとも１つを含むグラフィック表記、及び／又は３）マッピング定義、であってもよい。
【００３１】
図４は、本発明の原理の１つの実施形態に係るグラフィック・デザイナ宣言型定義内の共有要素を再使用する方法４００のフローチャート図を示す。方法４００はグラフィック・デザイナ宣言型定義の各々に対して繰り返して実行されてもよい。図３に示した例示的なアーキテクチャ３００を頻繁に参照して、方法４００について説明する。
【００３２】
（「グラフィックモデリングツール」とも称する）所定のグラフィック・デザイナ宣言型定義に対して、方法４００は、グラフィック・デザイナの宣言型定義にアクセスする（アクト４０１）。例えば、図３のグラフィック・デザイナ宣言型定義３１０がアクセスされる。そして、グラフィック・デザイナ宣言型定義が解釈される（アクト４０２）。
【００３３】
解釈している間、解釈コンポーネントはグラフィック・デザイナの複数の要素を評価することができる。より詳しく述べると、要素の各々に対する宣言型定義が評価される。要素を評価するフローは、（要素３１１Ａ、３１１Ｂ、３１１Ｄ、３１１Ｅ、３１１Ｆ、３１１Ｇ、及び３１１Ｉに対するケースのように、）要素がグラフィック・デザイナ宣言型定義の内部で定義されるか否か、又は、（要素３１１Ｃ、３１１Ｈ、及び３１１Ｊに対するケースのように、）要素がグラフィック・デザイナ宣言型定義の外部で定義された共有要素であるか否か、に依存して異なる（判定ブロック４１０）。要素は、要素宣言自体に基づく共有要素若しくは非共有要素として特定されてもよい。本明細書と特許請求の範囲では、コンポーネントの「宣言」は、宣言型定義に対するリファレンスとして定義されているが、宣言型定義を含んでいない。
【００３４】
要素が外部の共有要素である場合（判定ブロック４１０で「共有される（Shared）」）、共有要素の宣言がアクセスされ（アクト４１１）、その宣言は共有要素の宣言型定義の位置に対するリファレンスを含む。そして、宣言定義が参照されるとすぐに、宣言型定義を含む位置がアクセスされる（アクト４１２）。次に、共有されたデザイナ要素に対するコードが、グラフィック・デザイナ宣言型定義の外部の共有要素の宣言型定義を用いて生成される（アクト４１３）。例えば、それが視覚要素であるならば、コードによって共有要素が生じ、ディスプレイ上に表され、そして／又は、それが視覚要素であるか、若しくは非視覚要素であるかにかかわらずメモリ内にインスタンスが生成される。デザイナ要素に対するコード生成は宣言型定義を用いるいかなる方法でも実行されてもよい。
【００３５】
一方、要素の宣言型定義がグラフィック・デザイナ宣言型定義の内部にある場合（判定ブロック４１０の「内部（Internal）」）、宣言型定義が、解釈コンポーネントを使用して解釈され（アクト４２１）、そして、デザイナ要素に対するコードが生成される（アクト４２２）。コードが実行されるとき、当該要素は、メモリ内に表され、そして／又は、インスタンスを生成し、その定義関数を実行する。
【００３６】
本発明の原理及びいくつかの具体的な実施形態について説明したが、さらなる具体的実施形態について、図５〜図８を参照して説明する。第１のグラフィック・デザイナ宣言型定義では、企業環境におけるビジネスアナリストアプリケーションで使用される。対応するグラフィック・デザイナによって構築された結果として生ずるグラフィックモデルを図５に示す。図５のユーザインタフェースは、「Customer」などの多くのビジネス上のエンティティ、それらのプロパティ、及びそれらの互いの関係を示している。
【００３７】
基本的なデザイナ・スキーマは、上記のデザイナ内で視覚化される、ドメインクラス「Business Entity」を定義する。デザイナのエンドユーザは、このデザイナを用いて「Customer」などのオブジェクトを作成する。ここに、ドメインクラス「Business Entity」の定義がある。図６は、グラフィックツリーとしてグラフィック・デザイナ宣言型定義を示している。
【００３８】
別のグラフィック・デザイナでは、ビジネスアナリストがビジネスプロセス及びどのビジネスエンティティが特定の処理ステップで使用されるかを定義することができる。図７は、第２のグラフィック・デザイナから生じるグラフィックモデルを示すユーザインタフェースを示している。
【００３９】
図７のユーザインタフェースはビジネスプロセスを示している。ビジネスプロセスは「Check Inventory」とラベルされたステップから始まる。ダイヤグラムの形状は、「Order」又は「Customer」などの、この処理ステップにかかわる多くのビジネスエンティティを示している。これらのオブジェクトは、他のデザイナのドメインモード内で定義されて、このグラフィック・デザイナ内で再利用される。
【００４０】
図８は、宣言型定義の一部を定義する（親ノード「DslLibrary」を有する）要素を含む（親ノード「DsI」を有するものとして示された）グラフィック・デザイナ宣言型定義の階層構造の例を示しており、その宣言型定義の一部内では、共有要素が再使用のために他のグラフィック・デザイナによって定義されることができる。
【００４１】
図４を参照して、いくつかの方法について説明したが、本発明の原理は、１つまたは複数のコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能な媒体を含むコンピュータプログラム・プロダクトの範囲にまで及び、サーバコンピュータシステムの１つまたは複数のプロセッサによって実行されると、コンピュータシステムは、これらの方法の全て若しくは一部、これらの方法のうちの１つ若しくは両方を実行する。例えば、図１を参照すると、メモリ１０４と通信チャネル１０８はかかるコンピュータ読み取り可能媒体の例を表すことができる。メモリ１０４は、物理ストレージ及び／又はメモリ媒体の形態での物理的なコンピュータ読み取り可能な媒体の例を表している。また、本発明の原理は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの結合を介して構成されるコンピュータシステム自体にまで及び、図４の方法の部分のすべてが実行される。
【００４２】
従って、本発明の原理は、複数のグラフィック・デザイナ宣言型定義の中の共有要素の再利用を可能にする。本発明は、その趣旨又は本質的特質から逸脱しないで、他の具体的態様により具体化されてもよい。説明した実施形態は、限定的でなく単なる例示的なものとして、あらゆる点で考慮されるべきである。したがって、本発明の範囲は、上記説明よりも、むしろ添付された特許請求の範囲に示されている。特許請求の範囲の均等物の意味及び範囲に含まれるあらゆる変形が、それらの範囲内に抱擁されるべきである。
【図面の簡単な説明】
【００４３】
【図１】本発明の原理の実施形態が動作可能なコンピュータシステムを示す図である。
【図２】グラフィック・デザイナを表示するユーザインタフェースを示す図である。
【図３】グラフィック・デザイナの要素が共有されている複数のグラフィック・デザイナの宣言型定義を含む環境を示す図である。
【図４】本発明の原理の一実施形態に係る、共有要素を有するグラフィック・デザイナを実装する方法のフローチャートを示す図である。
【図５】グラフィック・デザイナのユーザインタフェースを示す図である。
【図６】図５のユーザインタフェースのグラフィカルツリーを示す図である。
【図７】別のグラフィック・デザイナのユーザインタフェースを示す図である。
【図８】代表的な共有要素ライブラリの階層構造を示す図である。
【図１】
2009530739.tif 000003
【図２】
2009530739.tif 000004
【図３】
2009530739.tif 000005
【図４】
2009530739.tif 000006
【図５】
2009530739.tif 000007
【図６】
2009530739.tif 000008
【図７】
2009530739.tif 000009
【図８】
2009530739.tif 000010
【国際調査報告】
2009530739.tif 000011
2009530739.tif 000012