(57)【要約】【課題】オブジェクトモデルの設計を容易にする設計者ツールを提供する。【解決手段】このツールは、オブジェクト（例えば、クラス）のグラフのコンピュータ可読表現を入力として取り込み、これらのクラスをその関係および特性を示す編集可能な木として示す１つまたは複数の図を自動的に作成する。こうしたグラフには、このアプローチで利用する樹状構造が自然に備わっている。この設計ツールシステムは、１つまたは複数のグラフを入力として受け取り、その１つまたは複数のグラフを編集可能な樹状構造へと変換するレイアウトコンポーネントを含む。システムは、編集可能な樹状構造を樹状構造図として提示し、それとのユーザ対話を容易にする提示コンポーネントをさらに含む。このツールは、既存のオブジェクトモデルファイルを開き、編集し、保存するために、または新規のものを作成するために使用することができる。【選択図】図１
2006190262.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトモデルの設計を容易にするシステムであって、
１つまたは複数の異なる種類の有向関係を有するオブジェクトの１つまたは複数のグラフを入力として受け取り、前記１つまたは複数のグラフを編集可能な樹状構造へと変換するレイアウトコンポーネントと、
前記編集可能な樹状構造を提示し、これとのユーザ対話を容易にする提示コンポーネントと
を備えたことを特徴とするシステム。
【請求項２】
前記レイアウトコンポーネントにより、前記樹状構造のグラフィック記号に関連付けられている特徴が自動的に調整され、この特徴は間隔、位置、大きさ、および形状のうちの少なくとも１つを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記レイアウトコンポーネントにより、提示の領域が自動的に評価され、前記樹状構造が見え方に関して調整されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記レイアウトコンポーネントにより、どれも互いに交差しない線の入力が容易になることを特徴とする請求項１に記載のシステム。
【請求項５】
前記レイアウトコンポーネントにより、前記樹状構造のすべてまたは部分の引き延ばしまたは畳み込みが容易になることを特徴とする請求項１に記載のシステム。
【請求項６】
前記レイアウトコンポーネントにより、飾りであるグラフィック徴表の配置が容易になり、その配置は前記樹状構造の他のグラフィック徴表から空間的に明瞭に異なるものであることを特徴とする請求項１に記載のシステム。
【請求項７】
前記樹状構造がクラスオブジェクトを含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記レイアウトコンポーネントにより、クラスオブジェクトの定義、クラスオブジェクトの埋め込みまたは継承の関係での使用法、および前記クラスオブジェクトの参照関係での使用法のうちの少なくとも１つを見分けるための作図の規約の使用が容易になることを特徴とする請求項１に記載のシステム。
【請求項９】
前記レイアウトコンポーネントにより、前記樹状構造の所与のオブジェクトの表示すべてをハイライトすること、および情報の弧に沿っての伝播を示すためにハイライトすることが容易になることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記レイアウトコンポーネントにより、クラスオブジェクトの非定義的記号と関連付けられている定義的記号の間をたどって行くことが容易になることを特徴とする請求項１に記載のシステム。
【請求項１１】
請求項１に記載のシステムを実現するためのコンピュータ実行可能命令をその上に格納して有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１２】
オブジェクトモデルを処理する方法のコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体であって、前記方法は、
クラスオブジェクトの有向関係を受け取るステップと、
前記有向関係を処理して、前記クラスオブジェクトの少なくとも関係および特性を示す木構造にするステップと、
前記木構造を対話的である図として提示するステップと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記クラスオブジェクトの表示を、
前記樹状構造の継承階層の引き延ばしおよび折り畳みを行うこと、
前記樹状構造の関係の引き延ばしおよび折り畳みを行うこと、
前記クラスオブジェクトの特性情報を露出および隠蔽すること
を容易にする、関連付けられている記号で行うステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
特定のクラスオブジェクトを定義的クラスとして区別し、
特定のクラスオブジェクトの埋め込み関係および継承関係のうちの少なくとも１つでの使用法を区別し、
特定のクラスオブジェクトの特性を露出および隠蔽する
作図の規約を提供するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１５】
複数の線をチャネル化して、特定のクラスオブジェクトに単一の点で接続する前記木構造の単一の線にするステップをさらに備えるとを特徴とする請求項１２に記載の方法。
【請求項１６】
役割関係を前記木構造中で明示的に表す記号を提示するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１７】
非定義的クラスオブジェクトと定義的オブジェクトクラスの間をたどって行くステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１８】
同じクラスを表すノードすべてをハイライトするステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１９】
関係にわたる特性の伝播を示す、前記木構造の部分をハイライトするステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項２０】
クラス図の作成を容易にするシステムであって、
１つまたは複数の有向関係を有するオブジェクトを含むグラフを受け取る手段と、
前記グラフを処理して、オブジェクト関係およびオブジェクト特性を示すデフォルトの木構造にする手段と、
前記デフォルトの木構造をユーザが編集することを容易にする対話的な図として提示する手段と、
前記デフォルトの木構造を再び順序づけして新しい木構造にすることを、前記オブジェクトの１つまたは複数を移動させることによって行う手段と、
前記新しい木構造の提示の最適化を、定義的オブジェクトの位置に基づいて行う手段と、
前記最適化した提示を１つまたは複数の対話的な図としてレンダリングする手段と
を備えたことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図（ｄｉａｇｒａｍｓ）の表示に関し、より詳細には、ソフトウェア関連ツールにおけるクラス図の表示に関する。
【背景技術】
【０００２】
ソフトウェアの戦略的価値が多くの企業にとって増すにつれて、ソフトウェアのベンダでは、絶えず、ソフトウェアの生産を自動化し、品質を向上させコストおよび市場までの期間を抑えるための新しい技法を探し求めている。こうした技法としては、コンポーネント技術、ビジュアルプログラミング、パターン、フレームワークがある。ソフトウェアシステムの複雑さが、範囲および規模の点で増大しているため、企業はそのような複雑さを管理および解決するための技法を探し求めており、これは、物理的分散、フォールトトレランス、レプリケーション、セキュリティ、並行性（ｃｏｎｃｕｒｒｅｎｃｙ）、ロードバランシングなど、繰り返し現れるアーキテクチャ上の問題を含んでいる。さらに、インターネットのための開発により、一部の通信交換はより簡単になるが、こうしたアーキテクチャ上の難問はさらに悪化することになる。
【０００３】
ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）と呼ばれる従来の技法の１つは、こうした必要に応えるために設計された。ＵＭＬは、ソフトウェアシステムの人工物（ａｒｔｉｆａｃｔｓ）を指定、視覚化、構築、および文書化するための、ならびにビジネスモデリングおよび他の非ソフトウェアシステムのための標準言語である。ＵＭＬツールは、オブジェクト指向ソフトウェアおよびソフトウェア開発プロセスの開発で使用され、そこでは、ソフトウェアプロジェクトの設計を表現するためにグラフ記法が使用される。
【０００４】
有用なソフトウェアのアーキテクチャ表現の１つが、クラス図（ｃｌａｓｓ  ｄｉａｇｒａｍ）である。クラス図は、あるシステム内の記号の静的な構造を記述するグラフ表現を表し、クラス、型、ならびにその内容および関係などの宣言的（静的）モデル要素の集合を示す。クラスは、共通の構造および振る舞いを共有する階層の形に配置され、他のクラスに関連付けられる。クラス図は、クラスの構造および内容を、クラス、パッケージ、オブジェクトなどの設計要素を用いてモデル化し、また、包含（ｃｏｎｔａｉｎｍｅｎｔ）、継承、関連（ａｓｓｏｃｉａｔｉｏｎｓ）などの関係を表示する。クラスとは、オブジェクト指向プログラミングの特殊用語で言うと、オブジェクト指向プログラミングの１組のオブジェクトの構造および振る舞いを定義する要素である。オブジェクト指向アプリケーションにおいて、クラスは、属性（メンバ変数）、操作（メンバ関数）、および他のクラスとの関係を有する。
【０００５】
ＵＭＬを用いてクラス図を表すことには、次のようないくつかの限界がある。すなわち、ＵＭＬクラス図を自動的にレイアウトすることは、非常に満足な結果が得られることはほとんどない困難なアルゴリズム上の問題である。ＵＭＬクラス図を手作業でレイアウトすることは、特に線の交差を制限することに関して、また意味的に重要な飾りをその意味が直ちに明らかになるように配置する点で、時間のかかることである。１組のクラスのＵＭＬ図では、こうしたクラスが木構造の形で自然に整理されるかも知れないという事実にほとんど考慮が払われない。最後に、ＵＭＬ図の領域を引き延ばす（ｅｘｐａｎｄ）または折り畳む（ｃｏｌｌａｐｓｅ）ための組織だった手法がない。
【０００６】
文法を定義することに対する別の普及しているアプローチが、バッカスナウア記法（ＢＮＦ、Ｂａｃｋｕｓ−Ｎａｕｒ  Ｆｏｒｍ）である。ＢＮＦおよびその拡張である拡張ＢＮＦ（ＥＢＮＦ、Ｅｘｔｅｎｄｅｄ  ＢＮＦ）は、プログラミング言語の形式化において広く使用されている文法定義に対するテキスト的アプローチである。しかし、例えば、ＵＭＬ、ＢＮＦ、ＥＢＮＦなどのような従来の開発ツールには、開発ツール用の当技術分野における満たされていない実質的な必要性を満足させることのできない制限がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
【０００８】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、オブジェクトモデル樹形図使用して、オブジェクトモデルの設計を容易にするシステムを提供することにある。
【課題を解決するための手段】
【０００９】
以下では、本発明のいくつかの態様の基本的な理解を提供するために、本発明の単純化した要約を提示する。この要約は、本発明の広範囲にわたる概観ではない。本発明の重要／決定的な諸要素を特定するもの、または本発明の範囲を画定するものではない。その唯一の目的は、本発明のいくつかの概念を、単純化した形で、後で提示するより詳細な説明への前置きとして提示することである。
【００１０】
本明細書で開示し特許請求する発明は、そのある態様では、オブジェクト（例えば、クラス）のグラフのコンピュータ可読表現を入力として取り込み、これらのクラスをその関係および特性を示す編集可能な木として示す１つまたは複数の図（ｄｉａｇｒａｍ）を自動的に作成するアーキテクチャを含む。このアプローチは、特に、ドメイン特有の言語を定義する概念を表すクラスのグラフの定義のためのものであることを意図している。そのようなグラフは、しばしば、オブジェクトモデル、ドメインモデル、メタモデル、抽象シンタクス、または文法と呼ばれる。こうしたグラフには、このアプローチで利用する樹状構造が自然に備わっている。このアプローチは、また、有向（ｄｉｒｅｃｔｅｄ）関係が重要であるどのような種類のオブジェクトモデルにも適用することができる。さらに、異なる種類の有向関係、例えば、埋め込み、参照、継承、および、依存などその他を実質的に同時に扱う機能が提供される。
【００１１】
本発明は、文法を形式化するプロセスの手助けのために、最新のコンピュータシステムの対話機能を考慮に入れている。こうした対話機能は、大きく３つの領域に分かれる。すなわち、（例えば、引き延ばす／折り畳む、オブジェクトを移動させる、およびツールのコツ（ｔｏｏｌ  ｔｉｐｓ）を示すことによって）所望の部分を見るために図を整理し直すこと、検索すること、および印刷媒体では難しい手がかり（ｃｕｅｓ）（例えば、色）を使用することである。このアプローチから、少なくとも次の利益が提供される。すなわち、図が手作業によってではなく、自動的にレイアウトされること、図がディスプレイの表面積（ｒｅａｌ  ｅｓｔａｔｅ）の使用の点でコンパクトで効率的であること、線の交差が避けられること、図のセクションの引き延ばしと折り畳みができること、線の飾りの整然として可読性のある布置が自動的であること、図によって基底にある（ｕｎｄｅｒｌｙｉｎｇ）グラフの自然な樹状構造が示されること、および編集が簡単であることである。
【００１２】
本発明を支援して、本発明による、オブジェクトモデルの設計を容易にする設計ツールシステムが提供される。有向関係を含むオブジェクト（例えば、クラス）の１つまたは複数のグラフのコンピュータ可読表現が与えられると、システムは、１つまたは複数のオブジェクト図（例えば、クラス図）を自動的に作成し、そこではこうしたオブジェクト図は、オブジェクトの関係および特性を示す編集可能な樹状構造として示される。システムは、１つまたは複数のグラフを入力として受け取り、その１つまたは複数のグラフを編集可能な樹状構造へと変換するレイアウトコンポーネントをさらに含むことができる。編集可能な樹状構造を樹状構造図として提示し、それとのユーザ対話を容易にする提示コンポーネントを使用することができる。このツールは、既存のオブジェクトモデルファイルを開き、編集し、保存するために、または新規のものを作成するために使用することができる。
【００１３】
本発明のまた別の態様では、ユーザが自動的に行わせることを希望する動作を予測（ｐｒｏｇｎｏｓｅ）または推論するために、確率的および／または統計的ベースの分析を行う人工知能コンポーネントを使用することができる。
【００１４】
以上のおよび関連の目的の達成のために、本明細書では本発明の特定の例示的諸態様の説明を次の説明および添付の図面に関連して行う。しかし、これらの態様は、本発明の原理を使用できる様々な手法のうちのいくつかだけを示しており、本発明は、そのような態様すべておよびその均等物を含むものである。本発明の他の利点および新規な特徴は、次の本発明の詳細な説明から、図面と併せて考察するときに明らかとなろう。
【発明の効果】
【００１５】
本発明によれば、オブジェクトモデル樹形図使用して、オブジェクトモデルの設計を容易にするシステムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
【００１７】
次に、本発明を図面を参照して説明するが、図面では一貫して、同様の符号を同様の要素を指すのに使用している。次の説明では、本発明の完全な理解を提供するために、説明を目的として、数多くの具体的な詳細を述べている。しかし、明らかなことかも知れないが、本発明はこうした具体的な詳細がなくても実施することができる。他の場合には、周知の構造および装置を、本発明の説明を容易にするために、構成図の形で示している。
【００１８】
本出願で使用する「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアのいずれにせよ、コンピュータに関連するエンティティを指すものとする。例えば、コンポーネントは、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能形式（ｅｘｅｃｕｔａｂｌｅ）、実行のスレッド、プログラム、および／またはコンピュータとすることができるが、これらに限定されるものではない。例として、サーバ上で動作するアプリケーションとそのサーバはどちらも、コンポーネントとすることができる。１つまたは複数のコンポーネントは、プロセスおよび／または実行のスレッドの内部に常駐することができ、１つのコンポーネントは１台のコンピュータ上に配置すること、および／または２台以上のコンピュータの間で分散させることができる。
【００１９】
本明細書で使用する「推論する」または「推論」という用語は、一般に、システム、環境、および／またはユーザの状態について、イベントおよび／またはデータによって捉えた１組の観察から、推理または推論するプロセスをさす。推論は、例えば、特定のコンテキストまたは動作を識別するのに使用することができ、または複数の状態にわたる確率分布を生成することができる。その推論は確率的、すなわち、興味の対象となる複数の状態にわたる確率分布の、データおよびイベントの考察に基づく計算とすることができる。また、推論は、より高いレベルのイベントを１組のイベントおよび／またはデータから合成するために使用する技法を指すこともできる。そのような推論からは、新しいイベントまたは動作の構築が、１組の観察されるイベントおよび／または保存されているイベントデータから、そのイベントが時間的に密接な近さにおいて相関するにせよしないにせよ、そのイベントおよびデータの得られているイベントおよびデータの情報源が１つであれ複数であれ、行われることになる。
【００２０】
情報をユーザに表示する特定の手法を特定の図に関して示し説明するが、他の様々な代替の手法を使用できることが、当業者には理解されよう。「画面」、「Ｗｅｂページ」、および「ページ」という用語は、本明細書では一般に交換可能な形で使用している。ページまたは画面の保存および／または伝送は、表示記述（ｄｉｓｐｌａｙ  ｄｅｓｃｒｉｐｔｉｏｎｓ）として、ＧＵＩ（ｇｒａｈｐｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅｓ、グラフィカルユーザインタフェース）として、または（例えば、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯電話、または他の適する装置にせよ）画面上の情報を示す他の方法によって行うことができ、そこでは、そのページ上に表示すべきレイアウトおよび情報または内容は、メモリ、データベース、または別のストレージファシリティ内に保存される。
【００２１】
まず図面を参照すると、図１に本発明による、オブジェクトモデルの設計を容易にする設計ツールシステム１００を示している。有向関係を含むオブジェクト（例えば、クラス）の１つまたは複数のグラフのコンピュータ可読表現が与えられると、システム１００は、１つまたは複数のオブジェクト図（例えば、クラス図）を自動的に作成し、そこではこうしたオブジェクト図が、オブジェクトの関係および特性を示す編集可能な樹状構造として示される。その支援として、システム１００は、グラフのうちの１つまたは複数を入力として受け取り、その１つまたは複数のグラフを編集可能な樹状構造１０４へと変換するレイアウトコンポーネント１０２をさらに含む。システム１００は、編集可能な樹状構造１０４を樹状構造図１０８として提示し、これとのユーザ対話を容易にする提示コンポーネント１０６をさらに含む。このツールは、既存のオブジェクトモデルファイルを開き、編集し、保存するために、かつ／または新規のものを作成するために使用することができる。
【００２２】
この新規なアプローチは、ドメイン特有の言語を定義する概念を表すクラスのグラフを定義に特に有用である。そのようなグラフは、しばしば、オブジェクトモデル、メタモデル、ドメインモデル、抽象シンタクス、または文法と呼ばれる。こうしたグラフには、利用される樹状構造が自然に備わっている。ここに開示するこの新規なアプローチは、有向関係が重要であるどのような種類のオブジェクトモデルにも適用できることを当業者は理解されたい。
【００２３】
図２に、本発明による、オブジェクトモデル設計を容易にする方法を示している。説明を簡単にする目的で、本明細書で、例えば、フローチャートの形で示す１つまたは複数の方法は、一連の動作として示し説明しているが、本発明は動作の順序によって制限されるものではないことを了解および理解されたい。本発明によれば、一部の動作は、本明細書で示し説明する順序とは異なる順序でおよび／または他の動作とコンカレントに生起してもよいのである。例えば、代替方法として、ある方法を状態図でのように、一連の相互に関係する状態またはイベントとして表現することもできるはずであることが当業者には了解および理解されよう。さらに、ここに示す動作は、本発明による方法を実施するためにすべて必要なわけではない。
【００２４】
２００で、設計者ツールシステムはオブジェクトモデルのコンピュータ可読表現を１つまたは複数の異なる種類の有向関係を含むグラフの形で受け取る。２０２で、設計者ツールは、グラフのもつ基底となる木構造を利用し、このグラフおよび関係を処理してオブジェクト（例えば、クラスオブジェクト）の単一の編集可能な樹状構造にする。２０４で、この構造は、オブジェクトの関係および特性を示している。２０６で、オブジェクトの樹状構造を、単一のオブジェクト図としてユーザにレンダリングすること、または、部分に分けて、ユーザのアクセスするいくつかの図にまたがってユーザにレンダリングすることができる。
【００２５】
例えば、この構造を解析して、別々の複数の図、参照および埋め込みの図、およびもう１つの継承の図にすることができる。あるいは、単一の構造を解析して、対応する図上に提示される２つの下位構造にすることができる。２０８で、樹状構造は、ユーザがいくつも異なる操作を行うことができるように、対話的にされる。この操作は、オブジェクト（例えば、クラス）を追加および削除すること、オブジェクトの２項関係および継承関係を処理すること、関係階層を折り畳むこと（または縮小する）および引き延ばすこと、特性と対話すること、オブジェクトおよびオブジェクト特性を再配置すること、およびオブジェクトのうちで検索したどって行く（ｎａｖｉｇａｔｅ）ことを含む。
【００２６】
次に図３を参照すると、本発明の設計者ツールの属性が示されている。これらのそれぞれの説明は、さらに以下で、図５に関して行うことにする。３００で、図のレイアウトを、従来のシステムでのように手作業によってではなく、自動的に行っている。ユーザの主な作業は、オブジェクトが何であるか（例えば、クラス）、およびその関係を入力することであり、ツールはそれに従って構造をレイアウトする。それでも、一部のレイアウトの再配置は、ユーザが行うことができる。例えばユーザは、どのようなオブジェクトを構造の左側に表示すべきか、どの順序で派生ノードが現れるかを指示することができる。間隔、ラベルの配置、オブジェクトおよび構造の大きさ、ならびに線の形状など、他のあらゆることは、自動的に決定される。構成（ｏｒｇａｎｉｚａｔｉｏｎ）は、樹状構造の一番左上の隅から、ルートのノード（またはオブジェクト）から流れる。こうすることにより、構造では、ある１つのオブジェクトが他のオブジェクトを含むことが示される。樹状構造の左から右への流れを引き起こすのは、埋め込み、参照または継承の関係などの有向関係である。表示全体の上にはそのような木が多くある可能性がある。言語の定義には、特に、その種の構造があるものである。したがって、ここに開示する設計者ツールにより、そのような言語の開発が支援される。
【００２７】
これを従来のＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）ツールと対照させると、ＵＭＬには樹状構造の概念がなく、単にオブジェクトおよびオブジェクト間の関係に関するものとなっている。ＵＭＬは同じノードおよびノード間の線を提示する。しかし、一番左上の隅にあるルートのノードから、ノードの基底にある線の広がりが放射されており、この入力は手作業で行わなければならず、その順序はユーザが手作業で定義する。
【００２８】
３０２で、別のツール属性は、構造図が提示の領域（ｒｅａｌ  ｅｓｔａｔｅ）に従ってコンパクトで効率的な形での提示されることである。これを自動的に達成できる１つの理由は、様々なノードの間の線がチャネル化してあることである。これは、ラベルおよび他の飾りを線の端のところまたは近くではなく、線の中間に置くことによって可能になる。例えば、ルートのノードが他のノードと結ばれるのは、樹状構造の他のノードと同様に、単一の点においてである。さらに、ラベル（線の飾り）は線上で、図のコンパクト化をさらに容易にするように配置される。
【００２９】
３０４で、ノード（またはオブジェクト）は互いに交差しない線で互いに接続される。これは、オブジェクトが定義されている構造中のある場所を与え、次いでそのノードを他の構造箇所を複製することによって達成される。次いで、これら他の箇所から、オブジェクト定義箇所が参照される。どのノードからも単一のノードに戻って線を引く代わりに、単一の参照するノードをノードそれぞれのところで提供して、通常ＵＭＬに結び付く線の混乱を低減する。従来のツールに関して触れたように、複数の線があるノードの複数の点で始まりまたは終わると、線の交差の見込みがかなり大きくなる。
【００３０】
設計者ツールの別の属性は、これは対話的側面の一部なのであるが、構造のセクションの引き延ばしまたは折り畳みが、３０６に示すように可能なことである。これにより、ユーザは、構造を異なるやり方で、例えば、あるセクションに別のセクションよりも集中して、見ることができるようになる。ノードのうちの１つから経由して出る線のどれも、グラフィック記号（以下ではトゥイッキー（ｔｗｉｃｋｙ）と呼ぶ）から放射される。ユーザは、基底にある部分木セクションの引き延ばしまたは折り畳みを行うには、トゥイッキーを選択するだけでよい。
【００３１】
３０８で、このツールにより、線の飾りの整然として可読性のある布置が容易になる。例えば、Ｅｍｐｌｏｙｅｅｓ（従業員）、Ｌｅａｄｅｒｓ（指導者）、およびＴｅａｍｓ（チーム）などの線ラベルが、対応する線に最も近いところに自動的に配置される。さらに、役割関係（ｒｏｌｅ  ｒｅｌａｔｉｏｎｓｈｉｐ）記号（「ダイオード様」の記号）は、線の終点側の端から引き離されている。従来のツールでは、この記号が、終点に来る線それぞれで終点側のノードの近くまで押しやられていた。このため、従来では、終点側のノードは線の飾りで混み合って見るのが非常に難しくなってしまっていた。本発明の場合（ｈｅｒｅ）、飾りは、接続する線の中央付近にまとめられており、これにより、飾りにより多くの情報を含めることができるようになっている。
【００３２】
ある実装形態では、ユーザは、線の飾りの配置を調整することが許されない。別の実装形態では、このツールにより、飾りの最良の位置への調整が、図の領域（ｒｅａｌ  ｅｓｔａｔｅ）に基づいて自動的に行われるということを企図している。また別の実施形態では、ユーザが、飾りを（グループでまたは別個に）選択し、関連付けられている線に沿って所望の位置までドラッグすることが許されるということを企図している。
【００３３】
この設計者ツールの提示する図では、基底にあるグラフの自然な木構造の図解が行われ、これは３１０に示す一属性である。図では、例えば、文法、オブジェクトモデル、ドメインモデル、メタモデル、またはスキーマを示すことができる。樹状構造全体またはその部分木を含む異なる図を描くことができ、これはインスタンス図と呼ばれる。樹状構造全体により、インスタンス図のとる形状が決定される。ＵＭＬでは、インスタンスの構造にはほど遠く見えるようなボックスおよび線の恣意的なレンダリングが全体にわたって行われる。したがって、本発明の設計者ツールは、言語の設計者がその図がなにを示しているのかをよりよく理解する助けとなる。
【００３４】
この設計者ツールの別の属性は、編集が簡単であるということであり、これを３１２に示している。設計者は、図のレイアウトの編集で時間を無駄にするには及ばない。それに比べて、従来のツールでは、あるノードがどのように接続されるか、そのノードおよび線を他のノードとの関係でどう配置するか、などをユーザが決めることが必要な可能性がある。
【００３５】
３１４で、このツールは、比較的大きなオブジェクトモデルを単一の森（ｆｏｒｅｓｔ）（これは木の集まりである）として、ほとんどの場合、単一の図の中に提示できるようにスケーラブルになっている。この設計者ツールは、記号およびノードの繰り返しに関して、経済的である。ノードの追加または既存の木の枝への付加を、基本的には新しいノードをその木の全体に沿って動かして、混乱を増すことなく行うことができる。従来の場合には、構造化されていないグラフが、より多くの線およびノードが追加されるにつれて、無秩序に拡大する。本発明のツールでは、ＧＵＩの特徴を利用しこれらの図を効率的に拡張している。ツールでは、例えば、スクロールバー、ウインドウのサイズ変更（ｒｅｓｉｚｉｎｇ）、および印刷用のページ数表示を提供して、ユーザ対話をより効率的で生産的なものとしている。
【００３６】
別の属性は、この設計者ツールでは、基底にある継承と関係のどちらのグラフの木構造も捉える一貫性のある構造を提示していることであり、これを３１６に示している。
【００３７】
図４に、本発明の設計者ツールを用いて行うことのできる操作を示している。４００で、オブジェクト（例えば、クラス）を追加または削除することができる。この説明ではクラスオブジェクトに言及しているが、こうした操作はどのようなタイプのオブジェクトに対しても行えることを理解されたい。新規クラスの追加は、この構造の左側で既存クラスのどれの下へも行うことができる。削除すると、クラスおよびそれに関連づけられている関係のすべてが、この構造から取り除かれる。
【００３８】
４０２で、このツールは、クラスの２項関係に対する操作を処理することができる。２項関係を、既存のクラスの間に追加することができる。関係は、有向である。関係は、ソースクラスの下の「Ｌ」字型の中で、ソースノード（またはクラス）からターゲットノード（またはクラス）に向かう線を用いて描かれる。この線は、そのソースクラスからの他のどの関係ともチャネル化される。ターゲットクラスの埋め込みは、関係のもう１つの端に表示される。２項関係は、ある既存のクラスと構造のバックグラウンドの間にも追加することができる。新規のターゲットクラスを作成すると、新しい関係がソースとターゲットのクラスの間に作成される。
【００３９】
ある関係を削除すると、その関係は構造から取り除かれる。他の構造の要素は、すべて所定の位置に留まる。しかし、木をより効率的な表示へと再構成することのできる再レイアウト操作を開始する、整頓（ｔｉｄｙｉｎｇ）の操作を行えることに注意されたい。
【００４０】
関係操作は、埋め込み関係を参照関係に変えること、および、重複度（ｍｕｌｔｉｐｌｉｃｉｔｙ）の制約を受けるが、参照関係を埋め込み関係に戻すことも含んでいる。埋め込みの親の重複度の最大値は１である。このためにユーザ対話が引き起され、無効な図の作成が防止されるか、またはこれが後続の検証ステップによって検出される可能性がある。さらに、同じクラスに対する定義と埋め込み関係は、入れ替えることができる。
【００４１】
４０４で、クラスの継承関係を処理することができる。継承関係は、既存のクラスの間に追加することができる。継承関係は、編集中であれその後であれ、非巡回的であるように制約されていることに留意されたい。子クラスの用法は、親クラスの下の継承の矢印の頭に示されている。継承関係は、既存のクラスと図のバックグラウンドの間に追加することができる。新規の子クラスは、継承関係とともに作成することができる。継承関係は、削除することもでき、それを行った後は、関係は構造から取り除かれる。他の構造関係はすべて、そのまま残る。
【００４２】
後で示すが、４０６に示すように、構造の再レイアウト操作を行うことができ、これは、定義をすべて現在のオプションのもとで最適な場所へと移動し、クラスの他の表示をすべてそれに応じて整理するようにする。
【００４３】
４０８で、第１のトゥイッキー内のマイナス「−」符号の示すように、継承階層が現在引き延ばされているところでは、継承階層の折り畳みを、第１のトゥイッキーを選択することによって行うことができる。このクラスの下の継承階層全部が折り畳まれ、このトゥイッキー内の「＋」符号で置き換えられる。折り畳まれた継承階層の引き延ばしは、その後第１のトゥイッキーを選択することによって行うことができる。
【００４４】
マイナス「−」符号のある第２のトゥイッキーの示すように、それまでに引き延ばされたところでは、関係階層の折り畳みを第２のトゥイッキーをクリックすることによって行うことができる。その関係によって到達される階層全部が折り畳まれ、第２のトゥイッキーは「＋」符号で置き換えられる。次いで、関係階層の引き延ばしは、プラス「＋」符号が示されているときに、第２のトゥイッキーを選択することによって行うことができる。
【００４５】
４１０で、オブジェクト特性も処理することができる。クラスの特性の露出は、付加されている「フラップ」内で、第３のトゥイッキーを選択することによって、このトゥイッキーがマイナス符号を示しているときに行うことができる。特性フラップが開いていれば、特性のタイプおよび名前がフラップ内に示される。特性フラップは、再び選択されると消え、第３のトゥイッキーには「＋」符号が示される。さらに、マウスポインタが、クラスオブジェクトの上、例えば、特性フラップが露出されるはずのところの直接上の領域内に来ている（ｈｏｖｅｒｅｄ）ときには、その特性フラップが一時的に開く。ある特性をクラスに追加およびクラスから削除して、その特性が、そのフラップが開いているときに、現れるように、または現れないようにすることもできる。
【００４６】
４１２で、クラスおよび特性を再配置することができる。図の左側に隣接するクラスを選択し、垂直方向に再配置することができる。これにより、オブジェクトが構造の上から下への序列の中の新しい位置へと移動させられる。さらに、埋め込みまたは参照の関係のターゲットノードとして現れるクラスオブジェクトの垂直方向の再配置は、そのノードをソースクラスの関係の組の範囲内でドラッグすることによって行うことができる。他の方法、例えば、後ろへ移動させる、前へ移動させる、先頭へと移動させる、末尾へと移動させる、および、ここへと移動させるということも可能である。継承関係の子として現れているクラスノードの垂直方向の再配置は、そのノードをソースクラスの子の組の内部でドラッグすることによって行うことができる。他の方法、例えば、後で移動させる、先に移動させる、最初に移動させる、最後に移動させる、および、ここで移動させるということも可能である。別の操作では、特性フラップ内部の特性の選択および垂直方向の再配置は、選択した特性を、そのクラスオブジェクトのリストされた特性の範囲内でドラッグすることによって行うことができる。他の方法、例えば、後で移動させる、先に移動させる、最初に移動させる、最後に移動させる、および、ここで移動させるということも可能である。
【００４７】
４１４で、このツールにより、検索の操作が容易になる。あるクラスの定義または使用（ｕｓｅ）の検索は、その使用のうちの１つが与えられると、少なくとも２つの方法によって行うことができる。第１は、あるクラスのどれかの表示を選択し、次いで、その定義を強調する操作を呼び出し、必要な場合には、表示をスクロールさせることである。第２は、「サイドリンク」を表示することであり、これは図の右側の辺にあって選択されている１つのクラスオブジェクトまたはクラスオブジェクト群の定義をそれぞれの使用へとリンクしている一群の線である。サイドリンクは、ユーザがマウスポインタをある使用の上で動かすと、図の右側の辺に一時的に現れ、ユーザをその定義へのレファレンスの間の案内をする。ここでは、木構造をしたレイアウトとこのツールの対話的機能のどちらの利点も利用されている。
【００４８】
図５に、本発明による、組織チャートの言語の抽象シンタックスを構成するクラスの例示的な樹状構造５００のレイアウトを示している。Ｏｒｇａｎｉｚａｔｉｏｎ（組織）、Ｅｍｐｌｏｙｅｅ（従業員）、Ｔｅａｍ（チーム）というクラスオブジェクトを、ただし従業員はいくつかのタイプ、すなわち、Ｃｏｎｓｕｌｔａｎｔ（コンサルタント）、Ｍａｎａｇｅｒ（管理職）、Ｅｘｅｃｕｔｉｖｅ（役員）、およびＶａｃａｎｔＰｏｓｉｔｉｏｎ（欠員）のものであるとして、初期のユーザ入力として与えると、ツールにより、あらかじめ定義された関係に従って互いに対して線が相互接続され、これが自動的に生成される構造５００となる。
【００４９】
構造５００は、上の一番左の位置にある「Ｏｒｇａｎｉｚａｔｉｏｎ」（組織）というルートクラスオブジェクトで始まっている。この実装形態では、各ノードは、下辺に沿って３つの小さなトゥイッキー記号５０２を含んでおり、これにより、関連付けられているノードに対する引き延ばし／折り畳みの操作を行うことが容易になる。この場合、第１の、一番左のトゥイッキー（［−］に似た記号で表される）により、継承階層の引き延ばしおよび折り畳みが可能になり、第２の（または中央の）トゥイッキーにより、関係の引き延ばしおよび折り畳みが可能になり、第３の（一番右の）トゥイッキーにより、特性フラップの引き延ばしおよび折り畳みが可能になる。そのようなトゥイッキー操作のより多くの数の異なる表現を各ノードで使用できることを理解されたい。例えば、（形状が円形の）第４のトゥイッキーを設けて、そのノードに関連付けられているユーザコメント、またはそのノードが最後にいつ変更されたかなどのメタデータを露出させる（ｅｘｐｏｓｅ）ようにすることができる。あるいは、トゥイッキー記号をより少ない数しか設けないが、それがキーストロークの組合せ、または、例えば、右クリックと組み合わせたマウスポインタにより、同じトゥイッキーから異なる操作が呼び出される点で多機能なものであるとすることもできる。
【００５０】
この例では、関係階層が引き延ばされているが、これは、第２のトゥイッキーが引き延ばしのために選択されているためである。ルートノードから放射されているのは、Ｅｍｐｌｏｙｅｅ（従業員）およびＴｅａｍ（チーム）であるが、これらはＯｒｇａｎｉｚａｔｉｏｎ（組織）のルートノードへと線のチャネル化技法を用いて接続されて、基底にある関係および継承のグラフに対応する関係および継承が定義されている。
【００５１】
Ｏｒｇａｎｉｚａｔｉｏｎ（組織）クラスノードの単一の点への接続が、本発明の線のチャネル化技法を利用することによって行われており、これは、ＵＭＬなどの従来のツールとは異なっている。しかも、Ｅｍｐｌｏｙｅｅｓ（従業員）、Ｌｅａｄｅｒｓ（指導者）、およびＴｅａｍｓ（チーム）という線の飾りラベルは、従来では、線の端のところに与えられており、その結果、ターゲットノードへの線の接触が、ターゲットノードの異なる点で生じざるを得ないはずであり、このため、そのノードのところでは、テキストとオブジェクトの混乱する可能性のある解釈が生じていた。
【００５２】
この図の上で、Ｅｍｐｌｏｙｅｅ（従業員）というラベルのあるノードの吹き出し（ｎｏｄｅ  ｂｕｂｂｌｅｓ）がいくつかあることに注意されたい。ルートノードからのＥｍｐｌｏｙｅｅｓ（従業員）、Ｌｅａｄｅｒｓ（指導者）、およびＴｅａｍｓ（チーム）という枝には、Ｅｍｐｌｏｙｅｅノードが１つずつある。本発明の設計ツールでは、定義的なＥｍｐｌｏｙｅｅクラスが定義してあるところ（すなわち、Ｅｍｐｌｏｙｅｅノードが太字になっているケース５０４）では、自動的に１つのＥｍｐｌｏｙｅｅノードが置かれる。線の交差をなくすことを支援して、定義的なＥｍｐｌｏｙｅｅクラス５０４を参照しているだけの、構造５００内の他のノードは、例えば、太字でない（またはグレーにした）ノードまたはグラフィックである、Ｅｍｐｌｏｙｅｅノード５０６で示されている。本明細書で使用する定義的（ｄｅｆｉｎｉｔｉｏｎａｌ）および非定義的（ｎｏｎ−ｄｅｆｉｎｉｔｉｏｎａｌ）という用語は、ノードに適用され、埋め込みおよび参照という用語は、弧（ａｒｃ）に適用される。また、定義をどこか他のところから非定義的ノードに持ってくるための、および定義的ノードが移動された場所にルートノードを作成するための、ツールの提供する操作がある。こうした特徴により、レイアウトに対するよりよい制御が、作業をさらに行う必要なく提供される。
【００５３】
メインの定義的なＥｍｐｌｏｙｅｅノード５０４の下に、Ｓｔｒｉｎｇ  Ｔｉｔｌｅ（肩書きという文字列）およびＳｔｒｉｎｇ  Ｎａｍｅ（氏名という文字列）と呼ばれる属性特性を露出させる（ｅｘｐｏｓｅ）特性フラップ５０８が示してあることに注意されたい。この例では、定義的なＥｍｐｌｏｙｅｅノード５０４は、これら２つの特性に関連して定義されている。より多くのまたはより少ない数の特性を使用し、特性フラップ５０８で露出させることができる。これは、単に、各従業員が肩書きおよび氏名をもつことを意味している。デフォルトでは、ユーザが文法の構造全体を見ることにしているときは、特性フラップが露出されない。したがって、ある実装形態では、ユーザは、関連付けられている特性を露出させるには第３（または右）のトゥイッキーを選択しなければならない。別の実装形態では、ユーザがマウスポインタを第３のトゥイッキー記号に重ねると、特性フラップが一時的に現れて特性が露出される。この後、特性が永続的に現れるようにするには、第３のトゥイッキーを選択する。したがって、この設計者ツールにより、言語および樹状構造を定義するときにユーザにとって重要と思われる側面に集中することが容易になる。
【００５４】
この設計者ツールでは、関係の役割の明示的な表現を提供する（「ダイオード」記号に似ている）役割記号５１０が使用される。これは、関係に付加的な意味を与える記号の飾りにとって自然な場所である。例えば、ルートのＯｒｇａｎｉｚａｔｉｏｎノードと非定義的なＥｍｐｌｏｙｅｅノード５１２の間の関係には、Ｅｍｐｌｏｙｅｅｓという名前の役割５１０がある。この役割５１０は、プラス符号「＋」でマークしてあり、この組織が、Ｅｍｐｌｏｙｅｅｓと呼ばれる役割を演じる１つまたは複数のＥｍｐｌｏｙｅｅインスタンスをもつことが示されている。逆の役割は「１」とマークされ、各Ｅｍｐｌｏｙｅｅがちょうど１つの組織によって雇用されることが示される。
【００５５】
また、このツールでは、作図の規約（ｄｉａｇｒａｍｍａｔｉｃ  ｃｏｎｖｅｎｔｉｏｎｓ）（例えば、色の濃さおよび／または鎖線または点線）を使用して、あるクラスの定義、あるクラスの埋め込みまたは継承の関係での使用、およびあるクラスの参照関係での使用の間の区別を行う。例えば、Ｅｍｐｌｏｙｅｅクラス５１２が、参照関係を介してルートクラスＯｒｇａｎｉｚａｔｉｏｎ５０２へと接続され、これが相互接続する鎖線によって示される。あるいは、Ｅｍｐｌｏｙｅｅクラス５０４が、埋め込み関係を介してルートクラスＯｒｇａｎｉｚａｔｉｏｎ５０２へと接続され、これが相互接続する実線によって示される。
【００５６】
この例の図では、非定義的（または使用法）クラスの表示は薄いグレーで提示されるが、定義的クラスはよりはっきりと提示される（例えば、濃い青）。定義的および非定義的クラスの表示の区別は、定義的クラスはトゥイッキーを含み非定義的クラスはトゥイッキーを含まないというように、トゥイッキーの有無によって、明確に行うことができる。線の濃さにより、ある関係は埋め込みであり、別の関係は参照であるということを示すことができる。異なる種類の関係における違いは、この例では、例えば、点線を参照関係に使用することによって表すことができる。こうした表現は、色、線のタイプおよび太さ、ならびに他のグラフィック徴表（ｉｎｄｉｃｉａ）など、多くの異なるやり方で定義された規約に従って行うことができることを理解されたい。
【００５７】
役割記号は、塗りつぶされることも塗りつぶされないこともある。この図から（例えば、Ｃ＃の）コードを生成するとき、役割記号が塗りつぶされている場合には、そのクラスについて特性、およびその役割に対応する方法が生成される。この設計者ツールにより、例えば、ルートノードＯｒｇａｎｉｚａｔｉｏｎ５０２と参照ノードＥｍｐｌｏｙｅｅ５１２の間でその線の表現する関係の重要な特性だけを示すことが容易になる。したがって、線の端の表示を記号（例えば、役割記号）と関連して行うことにより、ユーザは、さらなる特性を提示することができるようになる。しかも、こうした飾り（Ｅｍｐｌｏｙｅｅｓというラベルおよび役割記号５１０）が線の中間付近に置かれているということから、役割自体のいくつかの特性を表現するために飾りの色および形状を変更することは、まわりに空間が十分にある以上、容易になる。
【００５８】
管理職は、自分を直属の上司とする多くの従業員をもつことができる。ＩｎｄｉｒｅｃｔＲｅｐｏｒｔｓというラベルの場合、１人の従業員が多くの管理職の間接的な監督下にあることが可能であり、このことが役割記号５１４の右側のボールドでないボックスの中にあるアステリスクで示されている。その下には、Ｒｅｐｏｒｔｓラベルおよび「０」の入ったボールドのボックスがある。これは、ある従業員がある管理職を直属の上司とするかもしないかも知れないことを意味する。したがってこの場合、４つの記号が使用されている。すなわち、そうである／ないかもしれないことに対する「０」、この関係を常に有することを意味する「１」、任意の数、有してよいことを意味するアステリスク「＊」、少なくとも１有するがそれより多く有するかも知れないことを意味するプラス符号「＋」である。
【００５９】
定義的なＥｍｐｌｏｙｅｅノード５０４は第１および第３のトゥイッキーが選択されており、第３のトゥイッキーはこれに関連付けられている特性を露出していることに注意されたい。第１のトゥイッキーにより、定義的なＣｏｎｓｕｌｔａｎｔ（コンサルタント）ノード、定義的なＭａｎａｇｅｒ（管理職）ノード、および定義的なＶａｃａｎｔＰｏｓｉｔｉｏｎ（欠員）ノードに対する継承関係が引き延ばされる。これらは、親であるＥｍｐｌｏｙｅｅノード５０４に対する子の定義的ノードであり、これがボールドのチャネル化された線５１６で示されており、矢印の付いた端は親のＥｍｐｌｏｙｅｅノード５０４を指している。同様に、親の定義的なＭａｎａｇｅｒノードの第１のトゥイッキーにより引き延ばされる継承関係により、子の定義的なＥｘｅｃｕｔｉｖｅ（役員）ノードが露出され、これは相互接続する線５１８のボールドの矢印の付いた端によって示される。
【００６０】
次に図６を参照すると、本発明による、樹状構造図６０２の設計者のスクリーンショット６００が示されている。設計者の中央領域またはワークスペース６０４では、編集すべき樹状構造図６０２が提示されている。ワークスペース６０４の左には、ワークスペース６０４上へとドラッグし適切な箇所にドロップすることのできる１組の要素を提供するツールボックス６０６がある。ワークスペース６０４の右には、モデル６０２を見るための代替方法を提供するエクスプローラ（ｅｘｐｌｏｒｅｒ）６０６、および、選択した要素の詳細な特性を示す特性グリッド６１０がある。
【００６１】
記法の操作をよりよく理解するために、次のクラスの表示の間の区別を行う次の定義が提供される。すなわち、定義（Ｄｅｆｉｎｉｔｉｏｎ）−あるクラスの完全な定義を示す表示であり、１つしかない。使用法（Ｕｓａｇｅ）−例えば、任意の非定義的な使用であって、別のクラスの子として、埋め込み、継承、または参照で関連付けられるあるクラスを示す表示であり、ある図中の所与のクラスに対してそのような多くの表示があり得る。
【００６２】
図をレイアウトするとき、このツールは、定義的なクラスに対する最適の位置を自動的に決定する。これに対するいくつかの選択肢があり、それは異なる目的に対して適切なものである。しばしば、このうちいくつかは同時に適用してよい。これらをどのように優先化し選択するかは、このツールのユーザの責任である。その選択肢または規則は、定義を図の一番上のレベルの左側に示すこと、クラスがちょうど１つの親に埋め込まれているときには、親に埋め込まれている定義を示すこと、クラスが重要な親に埋め込まれているときには、その親に埋め込まれている定義を示すこと、クラスに上位クラス（ｓｕｐｅｒｃｌａｓｓ）があるときには、定義をその上位クラスから継承されているものとして示すこと、クラスに重要な下位クラス（ｓｕｂｃｌａｓｓ）があるときには、定義を重要な下位クラスの上位クラスとして示すこと、および、クラスを「重要」と決定することは、そのようにマークすることによって行うことができることである。
【００６３】
グループ内部での垂直方向の順序は、ユーザが明示的に変更することができる。しかし、ある規則として、初期値で順序をアルファベット順、またはユーザの選択する代替の計算から導出されるものとすることができる。
【００６４】
また、ある非定義的なクラスからその定義クラスへと容易にたどって行く（ｎａｖｉｇａｔｅ）機能が提供される。これは、その定義的なクラスに関連付けられているクラスすべてを強制的にマークすること（例えば、ハイライトすること）によって達成される。例えば、ユーザが非定義的なクラスを選択すると、このツールでは自動的に、定義的なクラス、他の非定義的なクラス、またはその両方に、タグ付けまたはハイライトを行う。別の例は、例えば、Ｅｍｐｌｏｙｅｅｓなどのグレーにした使用法ノードとの対話を行うものである。ユーザが対応する定義的なＥｍｐｌｏｙｅｅノードまで案内してもらいたい場合には、１つのやり方は、マウスポインタをそこに重ね、メニューを提示させ、オプションを選択し、所望の箇所に行き着くというものである。
【００６５】
別のやり方は、ユーザが使用法の上に重なっている（ｈｏｖｅｒ）ときに、サイドリンクを提示させ、このサイドリンクによってユーザの目が定義的オブジェクトへと向けるというものである。ある実施形態では、ユーザは、グレーの非定義的ノードを、そのユーザを定義的オブジェクトまで案内する実際のリンクで置き換えることができる。別の実装形態では、グレーにした非定義的ノードがサイドリンクとともに使用される。また別の実装形態では、サイドリンクを、例えば、３〜５秒間、一時的にイネーブルにして、そのユーザを、定義的ノードを見つける際に補助することができる。
【００６６】
ハイライトまたは他のグラフィック的な標示は、単に一例として、削除情報の伝播を示すのに使用することもできる。例えば、ユーザがあるノードを削除のために選択しているときに、ハイライトの強制を、選択されたノード、ならびに関連付けられているノード、線、および他の関係するオブジェクトおよび記号すべてに対して行って、そのユーザに対して選択されたノードまたはオブジェクトを削除する効果のフィードバックを提供するようにすることができる。別の例で、この技法が、アニメーション化された図（ｆｉｇｕｒｅｓ）の部分全体の構造を示すのに使用されていると想定しよう。その場合、動きの伝播が重要な役割を演じる。自動車の設計を示すまた別の例では、色の伝播が重要な特徴である。一般に、様々な種類の情報を弧に沿って伝播させることができる。
【００６７】
図７に、本発明による、樹状構造の複数の図としての提示を示している。このツール１００により、また、より大きな構造の処理が容易になり、複数の図を使用するとその提示がより便利になる。レイアウトコンポーネント１０２は、入力を前の通り処理し、構造を提示コンポーネント１０６に出力する。その後、提示コンポーネント１０６では、受け取った構造を処理し、このツールでその構造を図としてどのように提示するかを決定する。このシナリオでは、構造は（図1、図2、．．．、図Nと表す）複数の図として提示される。構造の提示は、例えば、２つの別個の図、例えば、第１の図７００および第２の図７０２の中で行うことができる。
【００６８】
提示のオプションまたは規則は、限定ではなく例として、継承を含むことができ、関係階層は、その図の異なる領域上、または異なる図の上に別個に示すことができる。さらなる下位オプションが含むのは、クラス定義はすべて関係階層上に現れ、継承階層はクラスの使用法を含むだけであること、関係階層の内部では、それに関係する以前のオプションが適用されること、ならびに、クラス定義はすべて継承階層上に現れ、関係階層は使用法および参照を含むだけであることである。
【００６９】
より頑健な実装形態では、提示コンポーネント１０６が、レイアウトコンポーネント１０２と通信して、レイアウトコンポーネント１０２による樹状構造の構造化の分析および調整を行う。例えば、レイアウトコンポーネント１０２による準備中の構造の予備的な「スクリーンショット」が提示コンポーネント１０６へと送信され、提示コンポーネント１０６では、そのスクリーンショットを処理し予備的なレイアウトに図が別々に５つ必要になると見積もった場合、そのような情報はレイアウトコンポーネント１０２へとフィードバックされて、提示のために必要な図の数を減らすために木が再構成される。そのような特徴に関するそれ以上の最適化については、説明を下で人工知能（ＡＩ）コンポーネントの実装に関して行うことにする。
【００７０】
また、この設計者ツールでは、特定の図または図の領域の上で注意の焦点となるべき特定のクラスを候補に挙げることのサポートを行う。これは、焦点となるクラスおよび関係するクラスを重要であるとマークまたはタグ付けし、上記のオプションを選んだ優先順位で適用することによって達成される。
【００７１】
図８に、本発明の方法の１つまたは複数の学習した特徴の自動化を容易にするＡＩコンポーネント８０２を使用する設計者ツールシステム８００を示している。本発明は（例えば、選択に関連して）、様々なＡＩベースのスキームを使用して、その様々な態様を実行することができる。例えば、所与のユーザが樹状構造をどのように図として提示させるのを好むかを決定するプロセスは、自動識別器システムおよびプロセスによって容易になる。
【００７２】
識別器（ｃｌａｓｓｉｆｉｅｒ）は、入力属性ベクトルｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）を、その入力があるクラスに属する信頼度（ｃｏｎｆｉｄｅｎｃｅ）、すなわち、ｆ（ｘ）＝ｃｏｎｆｉｄｅｎｃｅ（ｃｌａｓｓ）へとマップする関数である。そのような分類（ｃｌａｓｓｉｆｉｃａｔｉｏｎ）は、確率的および／または統計的ベースの分析を使用して（例えば、分析に要因として実用性およびコストを含める）、ユーザが希望する、自動的に行うべき動作を予測または推論することができる。
【００７３】
サポートベクトルマシン（ＳＶＭ、ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅ）は、使用できる識別器の一例である。ＳＶＭは、可能な入力からなる空間内で超平面を見つけることによって動作し、この超平面により、トリガとなる基準をトリガとならないイベントから分離することが試みられる。このため、直観的には、分類は、トレーニングデータに近いが等しくはないテスト用データに対しては正しくなる。他の有向および非有向モデルの分類アプローチとしては、例えば、ナイーブベイズ、ベイジアンネットワーク、決定木（ｄｅｃｉｓｉｏｎ  ｔｒｅｅｓ）、ニューラルネットワーク、ファジィ論理モデルがあり、異なるパターンの独立性を与える確率的分類モデルを使用することができる。また、本明細書で使用する分類は、優先順位のモデルの作成に利用される統計的回帰を包含するものとする。
【００７４】
本明細書から容易に理解されるように、本発明では、（例えば、総称的なトレーニングデータによって）明示的にトレーニングされる、ならびに（例えば、ユーザの振る舞いを観察すること、外在的な情報を受け取ることによって）暗黙にトレーニングされる識別器を使用することができる。例えば、ＳＶＭは、学習またはトレーニングフェーズによって、識別器コンストラクタおよび特徴選択モジュール内部で構成される。したがって、識別器を使用すると、次のものを含むがこれに限定されない、いくつもの機能を自動的に学習し、行うことができる。
【００７５】
ある実装形態では、ＡＩコンポーネント８０２により、所定の基準に従って、提示のために構造をいくつの図に分割すべきかを決定することが容易になる。これは、構造の中で使用されるデータのタイプに基づいて行うことができる。例えば、数人の開発者が同じファイルに対して作業しており、各人がその異なる側面を焦点としている共有環境において、樹状構造で様々なチームおよび機能の大きな組織チャートが使用されている場合には、結果となる図の決定を、ある開発者の所与の焦点に基づいて行うことができる。第１の開発者の焦点が金融である場合には、例えば、第１の開発者のログイン情報または金融用語をこのツールに入力すると、ツールが、構造の金融的な側面を強調して、木の再構成（例えば、拡大および縮小）を提示用の図の作成時に行うということが自動的に引き起こされる。
【００７６】
同じ自動化の延長線上で、提示のための木の再構成を、ログイン情報または他の入力用語に関する特定のクラスオブジェクトに焦点を集中させて行うことができる。第２の開発者が、管理に関連付けられているクラスオブジェクトに対して作業している場合、このクラスオブジェクトにタグ付けされているメタデータを使用すると、その第２の開発者の場所に対するモデルファイルの自動的なオープンを、特定の入力データに基づいて行うことができる。
【００７７】
ＡＩコンポーネント８０２は、このツールが、例えば、ユーザの好みの学習を、ユーザがある期間にわたって行うレイアウトの選択を観察し、類似の再レイアウトアルゴリズムをそのユーザによる将来の対話の間、適用することによって行うように、適切に設計される。異なるユーザは、レイアウト規則に関して異なる好みをもっている可能性がある。
【００７８】
さらに、様々な自動的な再レイアウトまたは整頓（ｔｉｄｙｉｎｇ）のアルゴリズムを学習することができる。ユーザが最初に図をレイアウトするときには、これをデフォルトで自動的とすることができる。その後、整頓オプションを、構造の最終的な整頓のために選択することができる。さらに、この整頓を可能にするのに使用する規則があってもよい。あるユーザは、ある規則の組を別の組よりも好むかも知れない。しかも、これを図のレベルで強制して図の領域（ｒｅａｌ  ｅｓｔａｔｅ）がよりコンパクトになるようにすることができる。例えば、ＡＩコンポーネント８０２の補助するこのツールでは、オブジェクトの空白への移動の学習を、例えば、それまでのユーザによる移動に従って、または、そのオブジェクトの移動のコストを、それを提示することと比較したコスト分析の決定に従って行うことができる。
【００７９】
次に図９を参照すると、ここで開示するアーキテクチャを実行するように動作可能なコンピュータの構成図が示してある。本発明の様々な態様に関するさらなる状況を提供するために、図９および以下の解説では、本発明の様々な態様を実装できる適切なコンピューティング環境９００の簡潔で一般的な説明を提供することを意図している。本発明の説明を、上では１つまたは複数のコンピュータ上で動作することのできるコンピュータ実行可能命令の一般的な状況で説明してきたが、本発明の実装は、他のプログラムモジュールと組み合わせて、および／またはハードウェアとソフトウェアの組合せとしても行えることが当業者には理解されよう。
【００８０】
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造などを含み、これらは、特定のタスクの実行または特定の抽象データ型の実装を行う。しかも、本発明の方法は、単一プロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびに、パーソナルコンピュータ、ハンドヘルドのコンピューティング装置、マイクロプロセッサベースのまたはプログラム可能な家電製品などを含む、他のコンピュータシステム構成とともに実施することができ、これらのそれぞれは１つまたは複数の関連付けられている装置に動作可能に結合させることができることが当業者には理解されよう。
【００８１】
本発明の例示した態様は、分散コンピューティング環境で実施することもでき、そこでは、特定のタスクが、通信ネットワークを通してリンクされるリモートの処理装置によって行われる。分散コンピューティング環境では、プログラムモジュールはローカルとリモートのどちらのメモリストレージ装置にも置くことができる。
【００８２】
コンピュータは、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、そのコンピュータのアクセスできるどのような利用可能な媒体とすることもでき、揮発性と不揮発性の媒体、リムーバブルとノンリム−バブルの媒体をいずれも含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含む。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のためのどのような方法または技術でも実装される揮発性と不揮発性、リムーバブルとノンリム−バブルのどちらの媒体も含む。コンピュータストレージ媒体は、ＲＡＭ（random access memory）、ＲＯＭ（read-only memory）、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）、フラッシュメモリまたは他のメモリ技術、ＣＤ（compact disc）−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋ、デジタルビデオディスク）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、または所望の情報を格納するのに使用でき、コンピュータのアクセスできる他のどのような媒体も含むが、それに限定されるものではない。
【００８３】
通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波などの変調されたデータ信号または他の移送機構で実施し、どのような情報配信媒体（ｉｎｆｏｒｍａｔｉｏｎ  ｄｅｌｉｖｅｒｙ  ｍｅｄｉａ）も含む。「変調されたデータ信号」という用語は、その特徴の１つまたは複数が情報をその信号の中にエンコードする形で設定または変更される信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、ならびに音響、ＲＦ（radio frequency）、赤外線などの無線媒体および他の無線媒体を含む。また、上記のどのようなものの組合せも、コンピュータ可読媒体の範囲内に含められる。
【００８４】
再び図９を参照すると、本発明の様々な態様を実装するための、コンピュータ９０２を含む例示的な環境９００が示してあり、コンピュータ９０２は、プロセッサ９０４，システムメモリ９０６、およびシステムバス９０８を含む。システムバス９０８により、プロセッサ９０６を含むが、これに限定されるものではない様々なシステムコンポーネントがプロセッサ９０４へと結合される。プロセッサ９０４は様々な市販のプロセッサのうちのどのようなものとすることもできる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも、プロセッサ９０４として使用することができる。
【００８５】
システムバス９０８は、（メモリコントローラをともなうまたはともなわない）メモリバス、周辺バス、およびローカルバスへの相互接続を様々な市販のバスアーキテクチャのいずれかを用いてさらに行うことのできる、いくつかのタイプのバス構造のうちのいずれとすることもできる。システムメモリ９０６は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、読み取り専用メモリ）９１０やＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ランダムアクセスメモリ）９１２を含む。ＢＩＯＳ（Basic Input/Output System）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリ９１０に格納されており、このＢＩＯＳは、起動（ｓｔａｒｔ−ｕｐ）時などにコンピュータ９０２内部の要素間で情報を転送するのに役立つ基本ルーチンを含む。また、ＲＡＭ９１２は、データのキャッシュのために、スタティックＲＡＭなどの高速ＲＡＭを含むことができる。
【００８６】
コンピュータ９０２は、内蔵ハードディスクドライブ（ＨＤＤ、ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）９１４（例えば、ＥＩＤＥ、ＳＡＴＡ）、この内臓ハードディスクドライブ９１４は、適切な筺体（図示せず）に入れて外付けで使用するように構成することもできるが、（例えば、リムーバブルなディスケット９１８からの読み取りまたはそれへの書き込みを行う）磁気フロッピー（登録商標）ディスクドライブ（ＦＤＤ、ｆｌｏｐｐｙ  ｄｉｓｋ  ｄｒｉｖｅ）９１６、および（例えば、ＣＤ−ＲＯＭディスク９２２を読み取る、あるいはＤＶＤなど他の大容量光学メディアからの読み取りまたはそれへの書き込みを行う）光ディスクドライブ９２０をさらに含む。ハードディスクドライブ９１４、磁気ディスクドライブ９１６、および光ディスクドライブ９２０のシステムバス９０８への接続は、それぞれ、ハードディスクドライブインタフェース９２４、磁気ディスクドライブインタフェース９２６、および光ディスクドライブインタフェース９２８によって行うことができる。外付けドライブ実装用のインタフェース９２４は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ、ユニバーサルシリアルバス）とＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４インタフェース技術の少なくともどちらか、またはどちらをも含む。他の外付けドライブ接続技術は、本発明の企図の範囲内にある。
【００８７】
これらドライブおよびそれに関連付けられているコンピュータ可読媒体により、データ、データ構造、コンピュータ実行可能命令などの不揮発性記憶が実現される。コンピュータ９０２では、これらのドライブおよび媒体により、どのようなデータのストレージも適切なデジタルフォーマットで収容される。上記のコンピュータ可読媒体の説明では、ＨＤＤ，リムーバブルな磁気ディスケット、および、ＣＤまたはＤＶＤなどのリムーバブルな光学メディアに言及しているが、ＺＩＰドライブ、磁気カセット、フラッシュメモリカード、カートリッジなど、コンピュータによる読み取りの可能な他のタイプの媒体も、この例示的な動作環境では使用することができ、さらに、そのようないずれの媒体も、本発明の方法を行うコンピュータ実行可能命令を含むことができることを当業者は理解されたい。
【００８８】
いくつものプログラムモジュールを、オペレーティングシステム９３０、１つまたは複数のアプリケーションプログラム９３２、他のプログラムモジュール９３４、およびプログラムデータ９３６を含めて、これらドライブおよびＲＡＭ９１２内に格納することができる。また、オペレーティングシステム、アプリケーション、モジュール、および／またはデータのすべてまたは一部のキャッシュを、ＲＡＭ９１２内で行うことができる。本発明の実装を、様々な市販のオペレーティングシステムまたはオペレーティングシステムの組合せによって行えることが理解されている。
【００８９】
ユーザは、コマンドおよび情報のコンピュータ９０２への入力を、１つまたは複数の有線／無線の入力装置、例えば、キーボード９３８および、マウス９４０などのポインティングデバイスを通して行うことができる。他の入力装置（図示せず）としては、マイクロフォン、赤外線リモコン、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどがあり得る。こうしたまたは他の入力装置のプロセッサ９０４への接続は、しばしば、システムバス９０８に結合されている入力装置インタフェース９４２を通して行われるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、赤外線インタフェースなど、他のインタフェースによって接続することは可能である。
【００９０】
また、モニタ９４４または他のタイプの表示装置のシステムバス９０８への接続は、ビデオアダプタ９４６などのインタフェースを介して行われる。モニタ９４４のほかに、コンピュータは、通常、スピーカ、プリンタなど、他の周辺出力装置（図示せず）を含んでいる。
【００９１】
コンピュータ９０２は、リモートコンピュータ９４８など、１つまたは複数のリモートコンピュータへの有線および／または無線通信を介した論理接続を用いてネットワーク化された環境で動作することができる。リモートコンピュータ９４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽アプライアンス、ピア装置（ｐｅｅｒ  ｄｅｖｉｃｅ）、または他の一般的なネットワークノードとすることができ、通常、コンピュータ９０２に関して説明した要素の多くまたはすべてを含むが、簡潔にする目的で、メモリストレージ装置９５０だけを示していた。ここに示す論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ、構内通信網）９５２、および／またはより大きなネットワーク、例えば、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ、広域通信網）９５４に対する有線／無線接続を含む。そのようなＬＡＮおよびＷＡＮのネットワーキング環境は、オフィスおよび企業では普通のものであり、これによってイントラネットなどの全社規模のコンピュータネットワークが容易になり、これらのすべてが地球規模の通信ネットワーク、例えば、インターネットに接続していてもよい。
【００９２】
コンピュータ９０２は、ＬＡＮネットワーキング環境で使用するときには、ローカルネットワーク９５２に、有線および／または無線の通信ネットワークインタフェースまたはアダプタ９５６を通して接続される。アダプタ９５６により、ＬＡＮ９５２への有線または無線の通信が容易にすることができ、また、ＬＡＮ９５２は、無線アダプタ９５６によって通信するためにその上に配置された無線アクセスポイントを含むことができる。
【００９３】
コンピュータ９０２は、ＷＡＮネットワーキング環境で使用するときには、モデム９５８を含むことができ、またはＷＡＮ９５４上の通信サーバに接続され、またはインターネットによってなど、ＷＡＮ９５４を介して通信を確立するための他の手段を有する。モデム９５８は、内蔵または外付けで有線または無線の装置とすることができるが、システムバス９０８にシリアルポートインタフェース９４２を介して接続する。ネットワーク化された環境では、コンピュータ９０２に関して示したプログラムモジュールまたはその部分は、リモートのメモリ／ストレージ装置９５０に格納することができる。ここに示すネットワーク接続は例示的であり、コンピュータ間に通信リンクを確立する他の手段を使用できることが理解されよう。
【００９４】
コンピュータ９０２は、無線通信において動作可能に配置されたどのような無線の装置またはエンティティ、例えば、プリンタ、スキャナ、デスクトップおよび／またはポータブルのコンピュータ、ｐｏｒｔａｂｌｅ  ｄａｔａ  ａｓｓｉｓｔａｎｔ、通信衛星、無線で検出可能なタグに関連付けられているどのような機器または場所（例えば、キオスク、新聞スタンド、洗面所）、および電話と通信するように動作可能である。これは、少なくとも、Ｗｉ−ＦｉおよびＢｌｕｅｔｏｏｔｈ（登録商標）無線技術を含む。したがって、通信は、従来のネットワークの場合と同様な所定の構造、または、単に少なくとも２つの装置の間のアドホックな通信とすることができる。
【００９５】
Ｗｉ−Ｆｉ、すなわち、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙにより、インターネットへの接続が、家庭の寝椅子、ホテルの部屋のベッド、または仕事場にある会議室から、有線でなくても可能になる。Ｗｉ−Ｆｉは、携帯電話で使用されているものに類似した無線技術であり、これにより、例えば、コンピュータのような装置はデータの送受信を、屋内および屋外、すなわち、基地局から所定の範囲内のどこででも行えるようになる。Ｗｉ−Ｆｉネットワークでは、ＩＥＥＥ８０２．１１（ａ、ｂ、ｇなど）と呼ばれる無線技術を使用して、安全で、信頼性のある、高速な無線接続性を提供している。Ｗｉ−Ｆｉネットワークを使用すると、コンピュータの接続を相互に、インターネットに対して、および（ＩＥＥＥ８０２．３またはイーサネット（登録商標）を使用する）有線ネットワークに対して行うことができる。Ｗｉ−Ｆｉネットワークは、例えば、無認可の２．４および５ＧＨｚ無線帯域で、１１Ｍｂｐｓ（８０２．１１ａ）または５４Ｍｂｐｓ（８０２．１１ｂ）というデータ転送速度で、またはこのどちらの帯域も含む（デュアルバンド（ｄｕａｌ  ｂａｎｄ））製品で動作し、このため、そのネットワークでは、多くのオフィスで使用されている基本の１０ＢａｓｅＴ有線イーサネット（登録商標）ネットワークに類似した実世界（ｒｅａｌ−ｗｏｒｌｄ）のパフォーマンスを提供することができる。
【００９６】
次に図１０を参照すると、本発明による例示的なコンピューティング環境１０００の図式的な構成図が示してある。システム１０００は、１つまたは複数のクライアント１００２を含んでいる。クライアント１００２は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。クライアント１００２は、例えば、クッキーおよび／または関連付けられているコンテキストの情報を、本発明を使用することによって収容することができる。
【００９７】
また、システム１０００は、１つまたは複数のサーバ１００４を含んでいる。サーバ１００４も、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。サーバ１００４は、例えば、変換を行うスレッドを、本発明を使用することによって収容することができる。クライアント１００２とサーバ１００４の間の可能な通信の１つは、２つ以上のコンピュータプロセスの間で伝送されるように適合されたデータパケットの形をとることができる。このデータパケットは、例えば、クッキーおよび／または関連付けられているコンテキストの情報を含むことができる。システム１０００は、クライアント１００２とサーバ１００４の間の通信を容易にするために使用できる通信フレームワーク１００６（例えば、インターネットのような地球規模の通信ネットワーク）を含んでいる。
【００９８】
通信は、（光ファイバを含む）有線および／または無線技術によって容易にすることができる。クライアント１００２は、１つまたは複数のクライアントデータストア１００８に動作可能に接続されており、これは、クライアント１００２にローカルな情報（例えば、クッキーおよび／または関連付けられているコンテキストの情報）を格納するのに使用することができる。同様に、サーバ１００４は、１つまたは複数のサーバデータストア１０１０に動作可能に接続されており、これは、サーバ１００４にローカルな情報を格納するのに使用することができる。
【００９９】
上で説明したことは、本発明の例を含んでいる。もちろん、コンポーネントまたは方法（ｍｅｔｈｏｄｏｌｏｇｉｅｓ）の着想可能なあらゆる組合せの説明を、本発明を説明する目的で行うことは不可能であるが、本発明の多くの組合せおよび並べ替え（ｐｅｒｍｕｔａｔｉｏｎ）がさらに可能であることが当業者には理解できよう。したがって、本発明は、添付の特許請求の範囲の趣旨および範囲の範囲内に入るそのような変更、修正、および変種をすべて包摂するものとする。さらに、「含む」（ｉｎｃｌｕｄｅｓ）という用語を詳細な説明または特許請求の範囲で使用する限りでは、そのような用語は、「備える」（ｃｏｍｐｒｉｓｉｎｇ）という用語に似た形で、「備える」（ｃｏｍｐｒｉｓｉｎｇ）を請求項の移行語（ｔｒａｎｓｉｔｉｏｎａｌ  ｗｏｒｄ）として使用する時の解釈のように、包含的であるものとする。
【図面の簡単な説明】
【０１００】
【図１】本発明による、オブジェクトモデルの設計を容易にする設計ツールシステムを示す図である。
【図２】本発明による、オブジェクトモデル設計を容易にする方法（ｍｅｔｈｏｄｏｌｏｇｙ）を示す図である。
【図３】本発明の設計者ツールの属性を示す図である。
【図４】本発明の設計者ツールを用いて行うことのできる操作を示す図である。
【図５】本発明による、組織チャートのある言語の抽象シンタクスを構成するクラスの例示的な樹状構造のレイアウトを示す図である。
【図６】本発明による、樹状構造図の設計者スクリーンショットである。
【図７】本発明による、樹状構造を複数の図として提示する図である。
【図８】本発明の方法の１つまたは複数の学習した特徴の自動化を容易にする人工知能コンポーネントを使用する設計者ツールシステムを示す図である。
【図９】開示するアーキテクチャを実行するように動作可能なコンピュータの構成図である。
【図１０】本発明による例示的なコンピューティング環境の図式的な構成図である。
【符号の説明】
【０１０１】
１００  設計ツールシステム
１０２  レイアウトコンポーネント
１０４  編集可能な樹状構造
１０６  提示コンポーネント
１０８  樹状構造図
【図１】
2006190262.tif 000003
【図２】
2006190262.tif 000004
【図３】
2006190262.tif 000005
【図４】
2006190262.tif 000006
【図５】
2006190262.tif 000007
【図６】
2006190262.tif 000008
【図７】
2006190262.tif 000009
【図８】
2006190262.tif 000010
【図９】
2006190262.tif 000011
【図１０】
2006190262.tif 000012