JP5063890B2 - オブジェクトモデルの設計を容易にするシステム - Google Patents

オブジェクトモデルの設計を容易にするシステム Download PDF

Info

Publication number
JP5063890B2
JP5063890B2 JP2005351275A JP2005351275A JP5063890B2 JP 5063890 B2 JP5063890 B2 JP 5063890B2 JP 2005351275 A JP2005351275 A JP 2005351275A JP 2005351275 A JP2005351275 A JP 2005351275A JP 5063890 B2 JP5063890 B2 JP 5063890B2
Authority
JP
Japan
Prior art keywords
computer
relationship
node
nodes
class
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.)
Expired - Fee Related
Application number
JP2005351275A
Other languages
English (en)
Other versions
JP2006190262A (ja
Inventor
キャメロン ウィルズ アラン
アラン ジョーンズ ガレス
ジョン クック ステファン
ジョン ハーディング ケント スチュアート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006190262A publication Critical patent/JP2006190262A/ja
Application granted granted Critical
Publication of JP5063890B2 publication Critical patent/JP5063890B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、図(diagrams)の表示に関し、より詳細には、ソフトウェア関連ツールにおけるクラス図の表示に関する。
ソフトウェアの戦略的価値が多くの企業にとって増すにつれて、ソフトウェアのベンダでは、絶えず、ソフトウェアの生産を自動化し、品質を向上させコストおよび市場までの期間を抑えるための新しい技法を探し求めている。こうした技法としては、コンポーネント技術、ビジュアルプログラミング、パターン、フレームワークがある。ソフトウェアシステムの複雑さが、範囲および規模の点で増大しているため、企業はそのような複雑さを管理および解決するための技法を探し求めており、これは、物理的分散、フォールトトレランス、レプリケーション、セキュリティ、並行性(concurrency)、ロードバランシングなど、繰り返し現れるアーキテクチャ上の問題を含んでいる。さらに、インターネットのための開発により、一部の通信交換はより簡単になるが、こうしたアーキテクチャ上の難問はさらに悪化することになる。
UML(Unified Modeling Language)と呼ばれる従来の技法の1つは、こうした必要に応えるために設計された。UMLは、ソフトウェアシステムの人工物(artifacts)を指定、視覚化、構築、および文書化するための、ならびにビジネスモデリングおよび他の非ソフトウェアシステムのための標準言語である。UMLツールは、オブジェクト指向ソフトウェアおよびソフトウェア開発プロセスの開発で使用され、そこでは、ソフトウェアプロジェクトの設計を表現するためにグラフ記法が使用される。
有用なソフトウェアのアーキテクチャ表現の1つが、クラス図(class diagram)である。クラス図は、あるシステム内の記号の静的な構造を記述するグラフ表現を表し、クラス、型、ならびにその内容および関係などの宣言的(静的)モデル要素の集合を示す。クラスは、共通の構造および振る舞いを共有する階層の形に配置され、他のクラスに関連付けられる。クラス図は、クラスの構造および内容を、クラス、パッケージ、オブジェクトなどの設計要素を用いてモデル化し、また、包含(containment)、継承、関連(associations)などの関係を表示する。クラスとは、オブジェクト指向プログラミングの特殊用語で言うと、オブジェクト指向プログラミングの1組のオブジェクトの構造および振る舞いを定義する要素である。オブジェクト指向アプリケーションにおいて、クラスは、属性(メンバ変数)、操作(メンバ関数)、および他のクラスとの関係を有する。
UMLを用いてクラス図を表すことには、次のようないくつかの限界がある。すなわち、UMLクラス図を自動的にレイアウトすることは、非常に満足な結果が得られることはほとんどない困難なアルゴリズム上の問題である。UMLクラス図を手作業でレイアウトすることは、特に線の交差を制限することに関して、また意味的に重要な飾りをその意味が直ちに明らかになるように配置する点で、時間のかかることである。1組のクラスのUML図では、こうしたクラスが木構造の形で自然に整理されるかも知れないという事実にほとんど考慮が払われない。最後に、UML図の領域を引き延ばす(expand)または折り畳む(collapse)ための組織だった手法がない。
文法を定義することに対する別の普及しているアプローチが、バッカスナウア記法(BNF、Backus−Naur Form)である。BNFおよびその拡張である拡張BNF(EBNF、Extended BNF)は、プログラミング言語の形式化において広く使用されている文法定義に対するテキスト的アプローチである。しかし、例えば、UML、BNF、EBNFなどのような従来の開発ツールには、開発ツール用の当技術分野における満たされていない実質的な必要性を満足させることのできない制限がある。
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、オブジェクトモデル樹形図使用して、オブジェクトモデルの設計を容易にするシステムを提供することにある。
以下では、本発明のいくつかの態様の基本的な理解を提供するために、本発明の単純化した要約を提示する。この要約は、本発明の広範囲にわたる概観ではない。本発明の重要/決定的な諸要素を特定するもの、または本発明の範囲を画定するものではない。その唯一の目的は、本発明のいくつかの概念を、単純化した形で、後で提示するより詳細な説明への前置きとして提示することである。
本明細書で開示し特許請求する発明は、そのある態様では、オブジェクト(例えば、クラス)のグラフのコンピュータ可読表現を入力として取り込み、これらのクラスをその関係および特性を示す編集可能な木として示す1つまたは複数の図(diagram)を自動的に作成するアーキテクチャを含む。このアプローチは、特に、ドメイン特有の言語を定義する概念を表すクラスのグラフの定義のためのものであることを意図している。そのようなグラフは、しばしば、オブジェクトモデル、ドメインモデル、メタモデル、抽象シンタクス、または文法と呼ばれる。こうしたグラフには、このアプローチで利用する樹状構造が自然に備わっている。このアプローチは、また、有向(directed)関係が重要であるどのような種類のオブジェクトモデルにも適用することができる。さらに、異なる種類の有向関係、例えば、埋め込み、参照、継承、および、依存などその他を実質的に同時に扱う機能が提供される。
本発明は、文法を形式化するプロセスの手助けのために、最新のコンピュータシステムの対話機能を考慮に入れている。こうした対話機能は、大きく3つの領域に分かれる。すなわち、(例えば、引き延ばす/折り畳む、オブジェクトを移動させる、およびツールのコツ(tool tips)を示すことによって)所望の部分を見るために図を整理し直すこと、検索すること、および印刷媒体では難しい手がかり(cues)(例えば、色)を使用することである。このアプローチから、少なくとも次の利益が提供される。すなわち、図が手作業によってではなく、自動的にレイアウトされること、図がディスプレイの表面積(real estate)の使用の点でコンパクトで効率的であること、線の交差が避けられること、図のセクションの引き延ばしと折り畳みができること、線の飾りの整然として可読性のある布置が自動的であること、図によって基底にある(underlying)グラフの自然な樹状構造が示されること、および編集が簡単であることである。
本発明を支援して、本発明による、オブジェクトモデルの設計を容易にする設計ツールシステムが提供される。有向関係を含むオブジェクト(例えば、クラス)の1つまたは複数のグラフのコンピュータ可読表現が与えられると、システムは、1つまたは複数のオブジェクト図(例えば、クラス図)を自動的に作成し、そこではこうしたオブジェクト図は、オブジェクトの関係および特性を示す編集可能な樹状構造として示される。システムは、1つまたは複数のグラフを入力として受け取り、その1つまたは複数のグラフを編集可能な樹状構造へと変換するレイアウトコンポーネントをさらに含むことができる。編集可能な樹状構造を樹状構造図として提示し、それとのユーザ対話を容易にする提示コンポーネントを使用することができる。このツールは、既存のオブジェクトモデルファイルを開き、編集し、保存するために、または新規のものを作成するために使用することができる。
本発明のまた別の態様では、ユーザが自動的に行わせることを希望する動作を予測(prognose)または推論するために、確率的および/または統計的ベースの分析を行う人工知能コンポーネントを使用することができる。
以上のおよび関連の目的の達成のために、本明細書では本発明の特定の例示的諸態様の説明を次の説明および添付の図面に関連して行う。しかし、これらの態様は、本発明の原理を使用できる様々な手法のうちのいくつかだけを示しており、本発明は、そのような態様すべておよびその均等物を含むものである。本発明の他の利点および新規な特徴は、次の本発明の詳細な説明から、図面と併せて考察するときに明らかとなろう。
本発明によれば、オブジェクトモデル樹形図使用して、オブジェクトモデルの設計を容易にするシステムを提供することができる。
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
次に、本発明を図面を参照して説明するが、図面では一貫して、同様の符号を同様の要素を指すのに使用している。次の説明では、本発明の完全な理解を提供するために、説明を目的として、数多くの具体的な詳細を述べている。しかし、明らかなことかも知れないが、本発明はこうした具体的な詳細がなくても実施することができる。他の場合には、周知の構造および装置を、本発明の説明を容易にするために、構成図の形で示している。
本出願で使用する「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアのいずれにせよ、コンピュータに関連するエンティティを指すものとする。例えば、コンポーネントは、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能形式(executable)、実行のスレッド、プログラム、および/またはコンピュータとすることができるが、これらに限定されるものではない。例として、サーバ上で動作するアプリケーションとそのサーバはどちらも、コンポーネントとすることができる。1つまたは複数のコンポーネントは、プロセスおよび/または実行のスレッドの内部に常駐することができ、1つのコンポーネントは1台のコンピュータ上に配置すること、および/または2台以上のコンピュータの間で分散させることができる。
本明細書で使用する「推論する」または「推論」という用語は、一般に、システム、環境、および/またはユーザの状態について、イベントおよび/またはデータによって捉えた1組の観察から、推理または推論するプロセスをさす。推論は、例えば、特定のコンテキストまたは動作を識別するのに使用することができ、または複数の状態にわたる確率分布を生成することができる。その推論は確率的、すなわち、興味の対象となる複数の状態にわたる確率分布の、データおよびイベントの考察に基づく計算とすることができる。また、推論は、より高いレベルのイベントを1組のイベントおよび/またはデータから合成するために使用する技法を指すこともできる。そのような推論からは、新しいイベントまたは動作の構築が、1組の観察されるイベントおよび/または保存されているイベントデータから、そのイベントが時間的に密接な近さにおいて相関するにせよしないにせよ、そのイベントおよびデータの得られているイベントおよびデータの情報源が1つであれ複数であれ、行われることになる。
情報をユーザに表示する特定の手法を特定の図に関して示し説明するが、他の様々な代替の手法を使用できることが、当業者には理解されよう。「画面」、「Webページ」、および「ページ」という用語は、本明細書では一般に交換可能な形で使用している。ページまたは画面の保存および/または伝送は、表示記述(display descriptions)として、GUI(grahpical user interfaces、グラフィカルユーザインタフェース)として、または(例えば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、携帯電話、または他の適する装置にせよ)画面上の情報を示す他の方法によって行うことができ、そこでは、そのページ上に表示すべきレイアウトおよび情報または内容は、メモリ、データベース、または別のストレージファシリティ内に保存される。
まず図面を参照すると、図1に本発明による、オブジェクトモデルの設計を容易にする設計ツールシステム100を示している。有向関係を含むオブジェクト(例えば、クラス)の1つまたは複数のグラフのコンピュータ可読表現が与えられると、システム100は、1つまたは複数のオブジェクト図(例えば、クラス図)を自動的に作成し、そこではこうしたオブジェクト図が、オブジェクトの関係および特性を示す編集可能な樹状構造として示される。その支援として、システム100は、グラフのうちの1つまたは複数を入力として受け取り、その1つまたは複数のグラフを編集可能な樹状構造104へと変換するレイアウトコンポーネント102をさらに含む。システム100は、編集可能な樹状構造104を樹状構造図108として提示し、これとのユーザ対話を容易にする提示コンポーネント106をさらに含む。このツールは、既存のオブジェクトモデルファイルを開き、編集し、保存するために、かつ/または新規のものを作成するために使用することができる。
この新規なアプローチは、ドメイン特有の言語を定義する概念を表すクラスのグラフを定義に特に有用である。そのようなグラフは、しばしば、オブジェクトモデル、メタモデル、ドメインモデル、抽象シンタクス、または文法と呼ばれる。こうしたグラフには、利用される樹状構造が自然に備わっている。ここに開示するこの新規なアプローチは、有向関係が重要であるどのような種類のオブジェクトモデルにも適用できることを当業者は理解されたい。
図2に、本発明による、オブジェクトモデル設計を容易にする方法を示している。説明を簡単にする目的で、本明細書で、例えば、フローチャートの形で示す1つまたは複数の方法は、一連の動作として示し説明しているが、本発明は動作の順序によって制限されるものではないことを了解および理解されたい。本発明によれば、一部の動作は、本明細書で示し説明する順序とは異なる順序でおよび/または他の動作とコンカレントに生起してもよいのである。例えば、代替方法として、ある方法を状態図でのように、一連の相互に関係する状態またはイベントとして表現することもできるはずであることが当業者には了解および理解されよう。さらに、ここに示す動作は、本発明による方法を実施するためにすべて必要なわけではない。
200で、設計者ツールシステムはオブジェクトモデルのコンピュータ可読表現を1つまたは複数の異なる種類の有向関係を含むグラフの形で受け取る。202で、設計者ツールは、グラフのもつ基底となる木構造を利用し、このグラフおよび関係を処理してオブジェクト(例えば、クラスオブジェクト)の単一の編集可能な樹状構造にする。204で、この構造は、オブジェクトの関係および特性を示している。206で、オブジェクトの樹状構造を、単一のオブジェクト図としてユーザにレンダリングすること、または、部分に分けて、ユーザのアクセスするいくつかの図にまたがってユーザにレンダリングすることができる。
例えば、この構造を解析して、別々の複数の図、参照および埋め込みの図、およびもう1つの継承の図にすることができる。あるいは、単一の構造を解析して、対応する図上に提示される2つの下位構造にすることができる。208で、樹状構造は、ユーザがいくつも異なる操作を行うことができるように、対話的にされる。この操作は、オブジェクト(例えば、クラス)を追加および削除すること、オブジェクトの2項関係および継承関係を処理すること、関係階層を折り畳むこと(または縮小する)および引き延ばすこと、特性と対話すること、オブジェクトおよびオブジェクト特性を再配置すること、およびオブジェクトのうちで検索したどって行く(navigate)ことを含む。
次に図3を参照すると、本発明の設計者ツールの属性が示されている。これらのそれぞれの説明は、さらに以下で、図5に関して行うことにする。300で、図のレイアウトを、従来のシステムでのように手作業によってではなく、自動的に行っている。ユーザの主な作業は、オブジェクトが何であるか(例えば、クラス)、およびその関係を入力することであり、ツールはそれに従って構造をレイアウトする。それでも、一部のレイアウトの再配置は、ユーザが行うことができる。例えばユーザは、どのようなオブジェクトを構造の左側に表示すべきか、どの順序で派生ノードが現れるかを指示することができる。間隔、ラベルの配置、オブジェクトおよび構造の大きさ、ならびに線の形状など、他のあらゆることは、自動的に決定される。構成(organization)は、樹状構造の一番左上の隅から、ルートのノード(またはオブジェクト)から流れる。こうすることにより、構造では、ある1つのオブジェクトが他のオブジェクトを含むことが示される。樹状構造の左から右への流れを引き起こすのは、埋め込み、参照または継承の関係などの有向関係である。表示全体の上にはそのような木が多くある可能性がある。言語の定義には、特に、その種の構造があるものである。したがって、ここに開示する設計者ツールにより、そのような言語の開発が支援される。
これを従来のUML(Unified Modeling Language)ツールと対照させると、UMLには樹状構造の概念がなく、単にオブジェクトおよびオブジェクト間の関係に関するものとなっている。UMLは同じノードおよびノード間の線を提示する。しかし、一番左上の隅にあるルートのノードから、ノードの基底にある線の広がりが放射されており、この入力は手作業で行わなければならず、その順序はユーザが手作業で定義する。
302で、別のツール属性は、構造図が提示の領域(real estate)に従ってコンパクトで効率的な形での提示されることである。これを自動的に達成できる1つの理由は、様々なノードの間の線がチャネル化してあることである。これは、ラベルおよび他の飾りを線の端のところまたは近くではなく、線の中間に置くことによって可能になる。例えば、ルートのノードが他のノードと結ばれるのは、樹状構造の他のノードと同様に、単一の点においてである。さらに、ラベル(線の飾り)は線上で、図のコンパクト化をさらに容易にするように配置される。
304で、ノード(またはオブジェクト)は互いに交差しない線で互いに接続される。これは、オブジェクトが定義されている構造中のある場所を与え、次いでそのノードを他の構造箇所を複製することによって達成される。次いで、これら他の箇所から、オブジェクト定義箇所が参照される。どのノードからも単一のノードに戻って線を引く代わりに、単一の参照するノードをノードそれぞれのところで提供して、通常UMLに結び付く線の混乱を低減する。従来のツールに関して触れたように、複数の線があるノードの複数の点で始まりまたは終わると、線の交差の見込みがかなり大きくなる。
設計者ツールの別の属性は、これは対話的側面の一部なのであるが、構造のセクションの引き延ばしまたは折り畳みが、306に示すように可能なことである。これにより、ユーザは、構造を異なるやり方で、例えば、あるセクションに別のセクションよりも集中して、見ることができるようになる。ノードのうちの1つから経由して出る線のどれも、グラフィック記号(以下ではトゥイッキー(twicky)と呼ぶ)から放射される。ユーザは、基底にある部分木セクションの引き延ばしまたは折り畳みを行うには、トゥイッキーを選択するだけでよい。
308で、このツールにより、線の飾りの整然として可読性のある布置が容易になる。例えば、Employees(従業員)、Leaders(指導者)、およびTeams(チーム)などの線ラベルが、対応する線に最も近いところに自動的に配置される。さらに、役割関係(role relationship)記号(「ダイオード様」の記号)は、線の終点側の端から引き離されている。従来のツールでは、この記号が、終点に来る線それぞれで終点側のノードの近くまで押しやられていた。このため、従来では、終点側のノードは線の飾りで混み合って見るのが非常に難しくなってしまっていた。本発明の場合(here)、飾りは、接続する線の中央付近にまとめられており、これにより、飾りにより多くの情報を含めることができるようになっている。
ある実装形態では、ユーザは、線の飾りの配置を調整することが許されない。別の実装形態では、このツールにより、飾りの最良の位置への調整が、図の領域(real estate)に基づいて自動的に行われるということを企図している。また別の実施形態では、ユーザが、飾りを(グループでまたは別個に)選択し、関連付けられている線に沿って所望の位置までドラッグすることが許されるということを企図している。
この設計者ツールの提示する図では、基底にあるグラフの自然な木構造の図解が行われ、これは310に示す一属性である。図では、例えば、文法、オブジェクトモデル、ドメインモデル、メタモデル、またはスキーマを示すことができる。樹状構造全体またはその部分木を含む異なる図を描くことができ、これはインスタンス図と呼ばれる。樹状構造全体により、インスタンス図のとる形状が決定される。UMLでは、インスタンスの構造にはほど遠く見えるようなボックスおよび線の恣意的なレンダリングが全体にわたって行われる。したがって、本発明の設計者ツールは、言語の設計者がその図がなにを示しているのかをよりよく理解する助けとなる。
この設計者ツールの別の属性は、編集が簡単であるということであり、これを312に示している。設計者は、図のレイアウトの編集で時間を無駄にするには及ばない。それに比べて、従来のツールでは、あるノードがどのように接続されるか、そのノードおよび線を他のノードとの関係でどう配置するか、などをユーザが決めることが必要な可能性がある。
314で、このツールは、比較的大きなオブジェクトモデルを単一の森(forest)(これは木の集まりである)として、ほとんどの場合、単一の図の中に提示できるようにスケーラブルになっている。この設計者ツールは、記号およびノードの繰り返しに関して、経済的である。ノードの追加または既存の木の枝への付加を、基本的には新しいノードをその木の全体に沿って動かして、混乱を増すことなく行うことができる。従来の場合には、構造化されていないグラフが、より多くの線およびノードが追加されるにつれて、無秩序に拡大する。本発明のツールでは、GUIの特徴を利用しこれらの図を効率的に拡張している。ツールでは、例えば、スクロールバー、ウインドウのサイズ変更(resizing)、および印刷用のページ数表示を提供して、ユーザ対話をより効率的で生産的なものとしている。
別の属性は、この設計者ツールでは、基底にある継承と関係のどちらのグラフの木構造も捉える一貫性のある構造を提示していることであり、これを316に示している。
図4に、本発明の設計者ツールを用いて行うことのできる操作を示している。400で、オブジェクト(例えば、クラス)を追加または削除することができる。この説明ではクラスオブジェクトに言及しているが、こうした操作はどのようなタイプのオブジェクトに対しても行えることを理解されたい。新規クラスの追加は、この構造の左側で既存クラスのどれの下へも行うことができる。削除すると、クラスおよびそれに関連づけられている関係のすべてが、この構造から取り除かれる。
402で、このツールは、クラスの2項関係に対する操作を処理することができる。2項関係を、既存のクラスの間に追加することができる。関係は、有向である。関係は、ソースクラスの下の「L」字型の中で、ソースノード(またはクラス)からターゲットノード(またはクラス)に向かう線を用いて描かれる。この線は、そのソースクラスからの他のどの関係ともチャネル化される。ターゲットクラスの埋め込みは、関係のもう1つの端に表示される。2項関係は、ある既存のクラスと構造のバックグラウンドの間にも追加することができる。新規のターゲットクラスを作成すると、新しい関係がソースとターゲットのクラスの間に作成される。
ある関係を削除すると、その関係は構造から取り除かれる。他の構造の要素は、すべて所定の位置に留まる。しかし、木をより効率的な表示へと再構成することのできる再レイアウト操作を開始する、整頓(tidying)の操作を行えることに注意されたい。
関係操作は、埋め込み関係を参照関係に変えること、および、重複度(multiplicity)の制約を受けるが、参照関係を埋め込み関係に戻すことも含んでいる。埋め込みの親の重複度の最大値は1である。このためにユーザ対話が引き起され、無効な図の作成が防止されるか、またはこれが後続の検証ステップによって検出される可能性がある。さらに、同じクラスに対する定義と埋め込み関係は、入れ替えることができる。
404で、クラスの継承関係を処理することができる。継承関係は、既存のクラスの間に追加することができる。継承関係は、編集中であれその後であれ、非巡回的であるように制約されていることに留意されたい。子クラスの用法は、親クラスの下の継承の矢印の頭に示されている。継承関係は、既存のクラスと図のバックグラウンドの間に追加することができる。新規の子クラスは、継承関係とともに作成することができる。継承関係は、削除することもでき、それを行った後は、関係は構造から取り除かれる。他の構造関係はすべて、そのまま残る。
後で示すが、406に示すように、構造の再レイアウト操作を行うことができ、これは、定義をすべて現在のオプションのもとで最適な場所へと移動し、クラスの他の表示をすべてそれに応じて整理するようにする。
408で、第1のトゥイッキー内のマイナス「−」符号の示すように、継承階層が現在引き延ばされているところでは、継承階層の折り畳みを、第1のトゥイッキーを選択することによって行うことができる。このクラスの下の継承階層全部が折り畳まれ、このトゥイッキー内の「+」符号で置き換えられる。折り畳まれた継承階層の引き延ばしは、その後第1のトゥイッキーを選択することによって行うことができる。
マイナス「−」符号のある第2のトゥイッキーの示すように、それまでに引き延ばされたところでは、関係階層の折り畳みを第2のトゥイッキーをクリックすることによって行うことができる。その関係によって到達される階層全部が折り畳まれ、第2のトゥイッキーは「+」符号で置き換えられる。次いで、関係階層の引き延ばしは、プラス「+」符号が示されているときに、第2のトゥイッキーを選択することによって行うことができる。
410で、オブジェクト特性も処理することができる。クラスの特性の露出は、付加されている「フラップ」内で、第3のトゥイッキーを選択することによって、このトゥイッキーがマイナス符号を示しているときに行うことができる。特性フラップが開いていれば、特性のタイプおよび名前がフラップ内に示される。特性フラップは、再び選択されると消え、第3のトゥイッキーには「+」符号が示される。さらに、マウスポインタが、クラスオブジェクトの上、例えば、特性フラップが露出されるはずのところの直接上の領域内に来ている(hovered)ときには、その特性フラップが一時的に開く。ある特性をクラスに追加およびクラスから削除して、その特性が、そのフラップが開いているときに、現れるように、または現れないようにすることもできる。
412で、クラスおよび特性を再配置することができる。図の左側に隣接するクラスを選択し、垂直方向に再配置することができる。これにより、オブジェクトが構造の上から下への序列の中の新しい位置へと移動させられる。さらに、埋め込みまたは参照の関係のターゲットノードとして現れるクラスオブジェクトの垂直方向の再配置は、そのノードをソースクラスの関係の組の範囲内でドラッグすることによって行うことができる。他の方法、例えば、後ろへ移動させる、前へ移動させる、先頭へと移動させる、末尾へと移動させる、および、ここへと移動させるということも可能である。継承関係の子として現れているクラスノードの垂直方向の再配置は、そのノードをソースクラスの子の組の内部でドラッグすることによって行うことができる。他の方法、例えば、後で移動させる、先に移動させる、最初に移動させる、最後に移動させる、および、ここで移動させるということも可能である。別の操作では、特性フラップ内部の特性の選択および垂直方向の再配置は、選択した特性を、そのクラスオブジェクトのリストされた特性の範囲内でドラッグすることによって行うことができる。他の方法、例えば、後で移動させる、先に移動させる、最初に移動させる、最後に移動させる、および、ここで移動させるということも可能である。
414で、このツールにより、検索の操作が容易になる。あるクラスの定義または使用(use)の検索は、その使用のうちの1つが与えられると、少なくとも2つの方法によって行うことができる。第1は、あるクラスのどれかの表示を選択し、次いで、その定義を強調する操作を呼び出し、必要な場合には、表示をスクロールさせることである。第2は、「サイドリンク」を表示することであり、これは図の右側の辺にあって選択されている1つのクラスオブジェクトまたはクラスオブジェクト群の定義をそれぞれの使用へとリンクしている一群の線である。サイドリンクは、ユーザがマウスポインタをある使用の上で動かすと、図の右側の辺に一時的に現れ、ユーザをその定義へのレファレンスの間の案内をする。ここでは、木構造をしたレイアウトとこのツールの対話的機能のどちらの利点も利用されている。
図5に、本発明による、組織チャートの言語の抽象シンタックスを構成するクラスの例示的な樹状構造500のレイアウトを示している。Organization(組織)、Employee(従業員)、Team(チーム)というクラスオブジェクトを、ただし従業員はいくつかのタイプ、すなわち、Consultant(コンサルタント)、Manager(管理職)、Executive(役員)、およびVacantPosition(欠員)のものであるとして、初期のユーザ入力として与えると、ツールにより、あらかじめ定義された関係に従って互いに対して線が相互接続され、これが自動的に生成される構造500となる。
構造500は、上の一番左の位置にある「Organization」(組織)というルートクラスオブジェクトで始まっている。この実装形態では、各ノードは、下辺に沿って3つの小さなトゥイッキー記号502を含んでおり、これにより、関連付けられているノードに対する引き延ばし/折り畳みの操作を行うことが容易になる。この場合、第1の、一番左のトゥイッキー([−]に似た記号で表される)により、継承階層の引き延ばしおよび折り畳みが可能になり、第2の(または中央の)トゥイッキーにより、関係の引き延ばしおよび折り畳みが可能になり、第3の(一番右の)トゥイッキーにより、特性フラップの引き延ばしおよび折り畳みが可能になる。そのようなトゥイッキー操作のより多くの数の異なる表現を各ノードで使用できることを理解されたい。例えば、(形状が円形の)第4のトゥイッキーを設けて、そのノードに関連付けられているユーザコメント、またはそのノードが最後にいつ変更されたかなどのメタデータを露出させる(expose)ようにすることができる。あるいは、トゥイッキー記号をより少ない数しか設けないが、それがキーストロークの組合せ、または、例えば、右クリックと組み合わせたマウスポインタにより、同じトゥイッキーから異なる操作が呼び出される点で多機能なものであるとすることもできる。
この例では、関係階層が引き延ばされているが、これは、第2のトゥイッキーが引き延ばしのために選択されているためである。ルートノードから放射されているのは、Employee(従業員)およびTeam(チーム)であるが、これらはOrganization(組織)のルートノードへと線のチャネル化技法を用いて接続されて、基底にある関係および継承のグラフに対応する関係および継承が定義されている。
Organization(組織)クラスノードの単一の点への接続が、本発明の線のチャネル化技法を利用することによって行われており、これは、UMLなどの従来のツールとは異なっている。しかも、Employees(従業員)、Leaders(指導者)、およびTeams(チーム)という線の飾りラベルは、従来では、線の端のところに与えられており、その結果、ターゲットノードへの線の接触が、ターゲットノードの異なる点で生じざるを得ないはずであり、このため、そのノードのところでは、テキストとオブジェクトの混乱する可能性のある解釈が生じていた。
この図の上で、Employee(従業員)というラベルのあるノードの吹き出し(node bubbles)がいくつかあることに注意されたい。ルートノードからのEmployees(従業員)、Leaders(指導者)、およびTeams(チーム)という枝には、Employeeノードが1つずつある。本発明の設計ツールでは、定義的なEmployeeクラスが定義してあるところ(すなわち、Employeeノードが太字になっているケース504)では、自動的に1つのEmployeeノードが置かれる。線の交差をなくすことを支援して、定義的なEmployeeクラス504を参照しているだけの、構造500内の他のノードは、例えば、太字でない(またはグレーにした)ノードまたはグラフィックである、Employeeノード506で示されている。本明細書で使用する定義的(definitional)および非定義的(non−definitional)という用語は、ノードに適用され、埋め込みおよび参照という用語は、弧(arc)に適用される。また、定義をどこか他のところから非定義的ノードに持ってくるための、および定義的ノードが移動された場所にルートノードを作成するための、ツールの提供する操作がある。こうした特徴により、レイアウトに対するよりよい制御が、作業をさらに行う必要なく提供される。
メインの定義的なEmployeeノード504の下に、String Title(肩書きという文字列)およびString Name(氏名という文字列)と呼ばれる属性特性を露出させる(expose)特性フラップ508が示してあることに注意されたい。この例では、定義的なEmployeeノード504は、これら2つの特性に関連して定義されている。より多くのまたはより少ない数の特性を使用し、特性フラップ508で露出させることができる。これは、単に、各従業員が肩書きおよび氏名をもつことを意味している。デフォルトでは、ユーザが文法の構造全体を見ることにしているときは、特性フラップが露出されない。したがって、ある実装形態では、ユーザは、関連付けられている特性を露出させるには第3(または右)のトゥイッキーを選択しなければならない。別の実装形態では、ユーザがマウスポインタを第3のトゥイッキー記号に重ねると、特性フラップが一時的に現れて特性が露出される。この後、特性が永続的に現れるようにするには、第3のトゥイッキーを選択する。したがって、この設計者ツールにより、言語および樹状構造を定義するときにユーザにとって重要と思われる側面に集中することが容易になる。
この設計者ツールでは、関係の役割の明示的な表現を提供する(「ダイオード」記号に似ている)役割記号510が使用される。これは、関係に付加的な意味を与える記号の飾りにとって自然な場所である。例えば、ルートのOrganizationノードと非定義的なEmployeeノード512の間の関係には、Employeesという名前の役割510がある。この役割510は、プラス符号「+」でマークしてあり、この組織が、Employeesと呼ばれる役割を演じる1つまたは複数のEmployeeインスタンスをもつことが示されている。逆の役割は「1」とマークされ、各Employeeがちょうど1つの組織によって雇用されることが示される。
また、このツールでは、作図の規約(diagrammatic conventions)(例えば、色の濃さおよび/または鎖線または点線)を使用して、あるクラスの定義、あるクラスの埋め込みまたは継承の関係での使用、およびあるクラスの参照関係での使用の間の区別を行う。例えば、Employeeクラス512が、参照関係を介してルートクラスOrganization502へと接続され、これが相互接続する鎖線によって示される。あるいは、Employeeクラス504が、埋め込み関係を介してルートクラスOrganization502へと接続され、これが相互接続する実線によって示される。
この例の図では、非定義的(または使用法)クラスの表示は薄いグレーで提示されるが、定義的クラスはよりはっきりと提示される(例えば、濃い青)。定義的および非定義的クラスの表示の区別は、定義的クラスはトゥイッキーを含み非定義的クラスはトゥイッキーを含まないというように、トゥイッキーの有無によって、明確に行うことができる。線の濃さにより、ある関係は埋め込みであり、別の関係は参照であるということを示すことができる。異なる種類の関係における違いは、この例では、例えば、点線を参照関係に使用することによって表すことができる。こうした表現は、色、線のタイプおよび太さ、ならびに他のグラフィック徴表(indicia)など、多くの異なるやり方で定義された規約に従って行うことができることを理解されたい。
役割記号は、塗りつぶされることも塗りつぶされないこともある。この図から(例えば、C#の)コードを生成するとき、役割記号が塗りつぶされている場合には、そのクラスについて特性、およびその役割に対応する方法が生成される。この設計者ツールにより、例えば、ルートノードOrganization502と参照ノードEmployee512の間でその線の表現する関係の重要な特性だけを示すことが容易になる。したがって、線の端の表示を記号(例えば、役割記号)と関連して行うことにより、ユーザは、さらなる特性を提示することができるようになる。しかも、こうした飾り(Employeesというラベルおよび役割記号510)が線の中間付近に置かれているということから、役割自体のいくつかの特性を表現するために飾りの色および形状を変更することは、まわりに空間が十分にある以上、容易になる。
管理職は、自分を直属の上司とする多くの従業員をもつことができる。IndirectReportsというラベルの場合、1人の従業員が多くの管理職の間接的な監督下にあることが可能であり、このことが役割記号514の右側のボールドでないボックスの中にあるアステリスクで示されている。その下には、Reportsラベルおよび「0」の入ったボールドのボックスがある。これは、ある従業員がある管理職を直属の上司とするかもしないかも知れないことを意味する。したがってこの場合、4つの記号が使用されている。すなわち、そうである/ないかもしれないことに対する「0」、この関係を常に有することを意味する「1」、任意の数、有してよいことを意味するアステリスク「*」、少なくとも1有するがそれより多く有するかも知れないことを意味するプラス符号「+」である。
定義的なEmployeeノード504は第1および第3のトゥイッキーが選択されており、第3のトゥイッキーはこれに関連付けられている特性を露出していることに注意されたい。第1のトゥイッキーにより、定義的なConsultant(コンサルタント)ノード、定義的なManager(管理職)ノード、および定義的なVacantPosition(欠員)ノードに対する継承関係が引き延ばされる。これらは、親であるEmployeeノード504に対する子の定義的ノードであり、これがボールドのチャネル化された線516で示されており、矢印の付いた端は親のEmployeeノード504を指している。同様に、親の定義的なManagerノードの第1のトゥイッキーにより引き延ばされる継承関係により、子の定義的なExecutive(役員)ノードが露出され、これは相互接続する線518のボールドの矢印の付いた端によって示される。
次に図6を参照すると、本発明による、樹状構造図602の設計者のスクリーンショット600が示されている。設計者の中央領域またはワークスペース604では、編集すべき樹状構造図602が提示されている。ワークスペース604の左には、ワークスペース604上へとドラッグし適切な箇所にドロップすることのできる1組の要素を提供するツールボックス606がある。ワークスペース604の右には、モデル602を見るための代替方法を提供するエクスプローラ(explorer)606、および、選択した要素の詳細な特性を示す特性グリッド610がある。
記法の操作をよりよく理解するために、次のクラスの表示の間の区別を行う次の定義が提供される。すなわち、定義(Definition)−あるクラスの完全な定義を示す表示であり、1つしかない。使用法(Usage)−例えば、任意の非定義的な使用であって、別のクラスの子として、埋め込み、継承、または参照で関連付けられるあるクラスを示す表示であり、ある図中の所与のクラスに対してそのような多くの表示があり得る。
図をレイアウトするとき、このツールは、定義的なクラスに対する最適の位置を自動的に決定する。これに対するいくつかの選択肢があり、それは異なる目的に対して適切なものである。しばしば、このうちいくつかは同時に適用してよい。これらをどのように優先化し選択するかは、このツールのユーザの責任である。その選択肢または規則は、定義を図の一番上のレベルの左側に示すこと、クラスがちょうど1つの親に埋め込まれているときには、親に埋め込まれている定義を示すこと、クラスが重要な親に埋め込まれているときには、その親に埋め込まれている定義を示すこと、クラスに上位クラス(superclass)があるときには、定義をその上位クラスから継承されているものとして示すこと、クラスに重要な下位クラス(subclass)があるときには、定義を重要な下位クラスの上位クラスとして示すこと、および、クラスを「重要」と決定することは、そのようにマークすることによって行うことができることである。
グループ内部での垂直方向の順序は、ユーザが明示的に変更することができる。しかし、ある規則として、初期値で順序をアルファベット順、またはユーザの選択する代替の計算から導出されるものとすることができる。
また、ある非定義的なクラスからその定義クラスへと容易にたどって行く(navigate)機能が提供される。これは、その定義的なクラスに関連付けられているクラスすべてを強制的にマークすること(例えば、ハイライトすること)によって達成される。例えば、ユーザが非定義的なクラスを選択すると、このツールでは自動的に、定義的なクラス、他の非定義的なクラス、またはその両方に、タグ付けまたはハイライトを行う。別の例は、例えば、Employeesなどのグレーにした使用法ノードとの対話を行うものである。ユーザが対応する定義的なEmployeeノードまで案内してもらいたい場合には、1つのやり方は、マウスポインタをそこに重ね、メニューを提示させ、オプションを選択し、所望の箇所に行き着くというものである。
別のやり方は、ユーザが使用法の上に重なっている(hover)ときに、サイドリンクを提示させ、このサイドリンクによってユーザの目が定義的オブジェクトへと向けるというものである。ある実施形態では、ユーザは、グレーの非定義的ノードを、そのユーザを定義的オブジェクトまで案内する実際のリンクで置き換えることができる。別の実装形態では、グレーにした非定義的ノードがサイドリンクとともに使用される。また別の実装形態では、サイドリンクを、例えば、3〜5秒間、一時的にイネーブルにして、そのユーザを、定義的ノードを見つける際に補助することができる。
ハイライトまたは他のグラフィック的な標示は、単に一例として、削除情報の伝播を示すのに使用することもできる。例えば、ユーザがあるノードを削除のために選択しているときに、ハイライトの強制を、選択されたノード、ならびに関連付けられているノード、線、および他の関係するオブジェクトおよび記号すべてに対して行って、そのユーザに対して選択されたノードまたはオブジェクトを削除する効果のフィードバックを提供するようにすることができる。別の例で、この技法が、アニメーション化された図(figures)の部分全体の構造を示すのに使用されていると想定しよう。その場合、動きの伝播が重要な役割を演じる。自動車の設計を示すまた別の例では、色の伝播が重要な特徴である。一般に、様々な種類の情報を弧に沿って伝播させることができる。
図7に、本発明による、樹状構造の複数の図としての提示を示している。このツール100により、また、より大きな構造の処理が容易になり、複数の図を使用するとその提示がより便利になる。レイアウトコンポーネント102は、入力を前の通り処理し、構造を提示コンポーネント106に出力する。その後、提示コンポーネント106では、受け取った構造を処理し、このツールでその構造を図としてどのように提示するかを決定する。このシナリオでは、構造は(図1、図2、...、図Nと表す)複数の図として提示される。構造の提示は、例えば、2つの別個の図、例えば、第1の図700および第2の図702の中で行うことができる。
提示のオプションまたは規則は、限定ではなく例として、継承を含むことができ、関係階層は、その図の異なる領域上、または異なる図の上に別個に示すことができる。さらなる下位オプションが含むのは、クラス定義はすべて関係階層上に現れ、継承階層はクラスの使用法を含むだけであること、関係階層の内部では、それに関係する以前のオプションが適用されること、ならびに、クラス定義はすべて継承階層上に現れ、関係階層は使用法および参照を含むだけであることである。
より頑健な実装形態では、提示コンポーネント106が、レイアウトコンポーネント102と通信して、レイアウトコンポーネント102による樹状構造の構造化の分析および調整を行う。例えば、レイアウトコンポーネント102による準備中の構造の予備的な「スクリーンショット」が提示コンポーネント106へと送信され、提示コンポーネント106では、そのスクリーンショットを処理し予備的なレイアウトに図が別々に5つ必要になると見積もった場合、そのような情報はレイアウトコンポーネント102へとフィードバックされて、提示のために必要な図の数を減らすために木が再構成される。そのような特徴に関するそれ以上の最適化については、説明を下で人工知能(AI)コンポーネントの実装に関して行うことにする。
また、この設計者ツールでは、特定の図または図の領域の上で注意の焦点となるべき特定のクラスを候補に挙げることのサポートを行う。これは、焦点となるクラスおよび関係するクラスを重要であるとマークまたはタグ付けし、上記のオプションを選んだ優先順位で適用することによって達成される。
図8に、本発明の方法の1つまたは複数の学習した特徴の自動化を容易にするAIコンポーネント802を使用する設計者ツールシステム800を示している。本発明は(例えば、選択に関連して)、様々なAIベースのスキームを使用して、その様々な態様を実行することができる。例えば、所与のユーザが樹状構造をどのように図として提示させるのを好むかを決定するプロセスは、自動識別器システムおよびプロセスによって容易になる。
識別器(classifier)は、入力属性ベクトルx=(x1,x2,x3,x4,xn)を、その入力があるクラスに属する信頼度(confidence)、すなわち、f(x)=confidence(class)へとマップする関数である。そのような分類(classification)は、確率的および/または統計的ベースの分析を使用して(例えば、分析に要因として実用性およびコストを含める)、ユーザが希望する、自動的に行うべき動作を予測または推論することができる。
サポートベクトルマシン(SVM、support vector machine)は、使用できる識別器の一例である。SVMは、可能な入力からなる空間内で超平面を見つけることによって動作し、この超平面により、トリガとなる基準をトリガとならないイベントから分離することが試みられる。このため、直観的には、分類は、トレーニングデータに近いが等しくはないテスト用データに対しては正しくなる。他の有向および非有向モデルの分類アプローチとしては、例えば、ナイーブベイズ、ベイジアンネットワーク、決定木(decision trees)、ニューラルネットワーク、ファジィ論理モデルがあり、異なるパターンの独立性を与える確率的分類モデルを使用することができる。また、本明細書で使用する分類は、優先順位のモデルの作成に利用される統計的回帰を包含するものとする。
本明細書から容易に理解されるように、本発明では、(例えば、総称的なトレーニングデータによって)明示的にトレーニングされる、ならびに(例えば、ユーザの振る舞いを観察すること、外在的な情報を受け取ることによって)暗黙にトレーニングされる識別器を使用することができる。例えば、SVMは、学習またはトレーニングフェーズによって、識別器コンストラクタおよび特徴選択モジュール内部で構成される。したがって、識別器を使用すると、次のものを含むがこれに限定されない、いくつもの機能を自動的に学習し、行うことができる。
ある実装形態では、AIコンポーネント802により、所定の基準に従って、提示のために構造をいくつの図に分割すべきかを決定することが容易になる。これは、構造の中で使用されるデータのタイプに基づいて行うことができる。例えば、数人の開発者が同じファイルに対して作業しており、各人がその異なる側面を焦点としている共有環境において、樹状構造で様々なチームおよび機能の大きな組織チャートが使用されている場合には、結果となる図の決定を、ある開発者の所与の焦点に基づいて行うことができる。第1の開発者の焦点が金融である場合には、例えば、第1の開発者のログイン情報または金融用語をこのツールに入力すると、ツールが、構造の金融的な側面を強調して、木の再構成(例えば、拡大および縮小)を提示用の図の作成時に行うということが自動的に引き起こされる。
同じ自動化の延長線上で、提示のための木の再構成を、ログイン情報または他の入力用語に関する特定のクラスオブジェクトに焦点を集中させて行うことができる。第2の開発者が、管理に関連付けられているクラスオブジェクトに対して作業している場合、このクラスオブジェクトにタグ付けされているメタデータを使用すると、その第2の開発者の場所に対するモデルファイルの自動的なオープンを、特定の入力データに基づいて行うことができる。
AIコンポーネント802は、このツールが、例えば、ユーザの好みの学習を、ユーザがある期間にわたって行うレイアウトの選択を観察し、類似の再レイアウトアルゴリズムをそのユーザによる将来の対話の間、適用することによって行うように、適切に設計される。異なるユーザは、レイアウト規則に関して異なる好みをもっている可能性がある。
さらに、様々な自動的な再レイアウトまたは整頓(tidying)のアルゴリズムを学習することができる。ユーザが最初に図をレイアウトするときには、これをデフォルトで自動的とすることができる。その後、整頓オプションを、構造の最終的な整頓のために選択することができる。さらに、この整頓を可能にするのに使用する規則があってもよい。あるユーザは、ある規則の組を別の組よりも好むかも知れない。しかも、これを図のレベルで強制して図の領域(real estate)がよりコンパクトになるようにすることができる。例えば、AIコンポーネント802の補助するこのツールでは、オブジェクトの空白への移動の学習を、例えば、それまでのユーザによる移動に従って、または、そのオブジェクトの移動のコストを、それを提示することと比較したコスト分析の決定に従って行うことができる。
次に図9を参照すると、ここで開示するアーキテクチャを実行するように動作可能なコンピュータの構成図が示してある。本発明の様々な態様に関するさらなる状況を提供するために、図9および以下の解説では、本発明の様々な態様を実装できる適切なコンピューティング環境900の簡潔で一般的な説明を提供することを意図している。本発明の説明を、上では1つまたは複数のコンピュータ上で動作することのできるコンピュータ実行可能命令の一般的な状況で説明してきたが、本発明の実装は、他のプログラムモジュールと組み合わせて、および/またはハードウェアとソフトウェアの組合せとしても行えることが当業者には理解されよう。
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造などを含み、これらは、特定のタスクの実行または特定の抽象データ型の実装を行う。しかも、本発明の方法は、単一プロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびに、パーソナルコンピュータ、ハンドヘルドのコンピューティング装置、マイクロプロセッサベースのまたはプログラム可能な家電製品などを含む、他のコンピュータシステム構成とともに実施することができ、これらのそれぞれは1つまたは複数の関連付けられている装置に動作可能に結合させることができることが当業者には理解されよう。
本発明の例示した態様は、分散コンピューティング環境で実施することもでき、そこでは、特定のタスクが、通信ネットワークを通してリンクされるリモートの処理装置によって行われる。分散コンピューティング環境では、プログラムモジュールはローカルとリモートのどちらのメモリストレージ装置にも置くことができる。
コンピュータは、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、そのコンピュータのアクセスできるどのような利用可能な媒体とすることもでき、揮発性と不揮発性の媒体、リムーバブルとノンリム−バブルの媒体をいずれも含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含む。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のためのどのような方法または技術でも実装される揮発性と不揮発性、リムーバブルとノンリム−バブルのどちらの媒体も含む。コンピュータストレージ媒体は、RAM(random access memory)、ROM(read-only memory)、EEPROM(Electronically Erasable and Programmable Read Only Memory)、フラッシュメモリまたは他のメモリ技術、CD(compact disc)−ROM、DVD(digital video disk、デジタルビデオディスク)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、または所望の情報を格納するのに使用でき、コンピュータのアクセスできる他のどのような媒体も含むが、それに限定されるものではない。
通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波などの変調されたデータ信号または他の移送機構で実施し、どのような情報配信媒体(information delivery media)も含む。「変調されたデータ信号」という用語は、その特徴の1つまたは複数が情報をその信号の中にエンコードする形で設定または変更される信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、ならびに音響、RF(radio frequency)、赤外線などの無線媒体および他の無線媒体を含む。また、上記のどのようなものの組合せも、コンピュータ可読媒体の範囲内に含められる。
再び図9を参照すると、本発明の様々な態様を実装するための、コンピュータ902を含む例示的な環境900が示してあり、コンピュータ902は、プロセッサ904,システムメモリ906、およびシステムバス908を含む。システムバス908により、プロセッサ906を含むが、これに限定されるものではない様々なシステムコンポーネントがプロセッサ904へと結合される。プロセッサ904は様々な市販のプロセッサのうちのどのようなものとすることもできる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも、プロセッサ904として使用することができる。
システムバス908は、(メモリコントローラをともなうまたはともなわない)メモリバス、周辺バス、およびローカルバスへの相互接続を様々な市販のバスアーキテクチャのいずれかを用いてさらに行うことのできる、いくつかのタイプのバス構造のうちのいずれとすることもできる。システムメモリ906は、ROM(read only memory、読み取り専用メモリ)910やRAM(random access memory、ランダムアクセスメモリ)912を含む。BIOS(Basic Input/Output System)は、ROM、EPROM、EEPROMなどの不揮発性メモリ910に格納されており、このBIOSは、起動(start−up)時などにコンピュータ902内部の要素間で情報を転送するのに役立つ基本ルーチンを含む。また、RAM912は、データのキャッシュのために、スタティックRAMなどの高速RAMを含むことができる。
コンピュータ902は、内蔵ハードディスクドライブ(HDD、hard disk drive)914(例えば、EIDE、SATA)、この内臓ハードディスクドライブ914は、適切な筺体(図示せず)に入れて外付けで使用するように構成することもできるが、(例えば、リムーバブルなディスケット918からの読み取りまたはそれへの書き込みを行う)磁気フロッピー(登録商標)ディスクドライブ(FDD、floppy disk drive)916、および(例えば、CD−ROMディスク922を読み取る、あるいはDVDなど他の大容量光学メディアからの読み取りまたはそれへの書き込みを行う)光ディスクドライブ920をさらに含む。ハードディスクドライブ914、磁気ディスクドライブ916、および光ディスクドライブ920のシステムバス908への接続は、それぞれ、ハードディスクドライブインタフェース924、磁気ディスクドライブインタフェース926、および光ディスクドライブインタフェース928によって行うことができる。外付けドライブ実装用のインタフェース924は、例えば、USB(Universal Serial Bus、ユニバーサルシリアルバス)とIEEE(Institute of Electrical and Electronics Engineers)1394インタフェース技術の少なくともどちらか、またはどちらをも含む。他の外付けドライブ接続技術は、本発明の企図の範囲内にある。
これらドライブおよびそれに関連付けられているコンピュータ可読媒体により、データ、データ構造、コンピュータ実行可能命令などの不揮発性記憶が実現される。コンピュータ902では、これらのドライブおよび媒体により、どのようなデータのストレージも適切なデジタルフォーマットで収容される。上記のコンピュータ可読媒体の説明では、HDD,リムーバブルな磁気ディスケット、および、CDまたはDVDなどのリムーバブルな光学メディアに言及しているが、ZIPドライブ、磁気カセット、フラッシュメモリカード、カートリッジなど、コンピュータによる読み取りの可能な他のタイプの媒体も、この例示的な動作環境では使用することができ、さらに、そのようないずれの媒体も、本発明の方法を行うコンピュータ実行可能命令を含むことができることを当業者は理解されたい。
いくつものプログラムモジュールを、オペレーティングシステム930、1つまたは複数のアプリケーションプログラム932、他のプログラムモジュール934、およびプログラムデータ936を含めて、これらドライブおよびRAM912内に格納することができる。また、オペレーティングシステム、アプリケーション、モジュール、および/またはデータのすべてまたは一部のキャッシュを、RAM912内で行うことができる。本発明の実装を、様々な市販のオペレーティングシステムまたはオペレーティングシステムの組合せによって行えることが理解されている。
ユーザは、コマンドおよび情報のコンピュータ902への入力を、1つまたは複数の有線/無線の入力装置、例えば、キーボード938および、マウス940などのポインティングデバイスを通して行うことができる。他の入力装置(図示せず)としては、マイクロフォン、赤外線リモコン、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどがあり得る。こうしたまたは他の入力装置のプロセッサ904への接続は、しばしば、システムバス908に結合されている入力装置インタフェース942を通して行われるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、赤外線インタフェースなど、他のインタフェースによって接続することは可能である。
また、モニタ944または他のタイプの表示装置のシステムバス908への接続は、ビデオアダプタ946などのインタフェースを介して行われる。モニタ944のほかに、コンピュータは、通常、スピーカ、プリンタなど、他の周辺出力装置(図示せず)を含んでいる。
コンピュータ902は、リモートコンピュータ948など、1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を用いてネットワーク化された環境で動作することができる。リモートコンピュータ948は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽アプライアンス、ピア装置(peer device)、または他の一般的なネットワークノードとすることができ、通常、コンピュータ902に関して説明した要素の多くまたはすべてを含むが、簡潔にする目的で、メモリストレージ装置950だけを示していた。ここに示す論理接続は、LAN(local area network、構内通信網)952、および/またはより大きなネットワーク、例えば、WAN(wide area network、広域通信網)954に対する有線/無線接続を含む。そのようなLANおよびWANのネットワーキング環境は、オフィスおよび企業では普通のものであり、これによってイントラネットなどの全社規模のコンピュータネットワークが容易になり、これらのすべてが地球規模の通信ネットワーク、例えば、インターネットに接続していてもよい。
コンピュータ902は、LANネットワーキング環境で使用するときには、ローカルネットワーク952に、有線および/または無線の通信ネットワークインタフェースまたはアダプタ956を通して接続される。アダプタ956により、LAN952への有線または無線の通信が容易にすることができ、また、LAN952は、無線アダプタ956によって通信するためにその上に配置された無線アクセスポイントを含むことができる。
コンピュータ902は、WANネットワーキング環境で使用するときには、モデム958を含むことができ、またはWAN954上の通信サーバに接続され、またはインターネットによってなど、WAN954を介して通信を確立するための他の手段を有する。モデム958は、内蔵または外付けで有線または無線の装置とすることができるが、システムバス908にシリアルポートインタフェース942を介して接続する。ネットワーク化された環境では、コンピュータ902に関して示したプログラムモジュールまたはその部分は、リモートのメモリ/ストレージ装置950に格納することができる。ここに示すネットワーク接続は例示的であり、コンピュータ間に通信リンクを確立する他の手段を使用できることが理解されよう。
コンピュータ902は、無線通信において動作可能に配置されたどのような無線の装置またはエンティティ、例えば、プリンタ、スキャナ、デスクトップおよび/またはポータブルのコンピュータ、portable data assistant、通信衛星、無線で検出可能なタグに関連付けられているどのような機器または場所(例えば、キオスク、新聞スタンド、洗面所)、および電話と通信するように動作可能である。これは、少なくとも、Wi−FiおよびBluetooth(登録商標)無線技術を含む。したがって、通信は、従来のネットワークの場合と同様な所定の構造、または、単に少なくとも2つの装置の間のアドホックな通信とすることができる。
Wi−Fi、すなわち、Wireless Fidelityにより、インターネットへの接続が、家庭の寝椅子、ホテルの部屋のベッド、または仕事場にある会議室から、有線でなくても可能になる。Wi−Fiは、携帯電話で使用されているものに類似した無線技術であり、これにより、例えば、コンピュータのような装置はデータの送受信を、屋内および屋外、すなわち、基地局から所定の範囲内のどこででも行えるようになる。Wi−Fiネットワークでは、IEEE802.11(a、b、gなど)と呼ばれる無線技術を使用して、安全で、信頼性のある、高速な無線接続性を提供している。Wi−Fiネットワークを使用すると、コンピュータの接続を相互に、インターネットに対して、および(IEEE802.3またはイーサネット(登録商標)を使用する)有線ネットワークに対して行うことができる。Wi−Fiネットワークは、例えば、無認可の2.4および5GHz無線帯域で、11Mbps(802.11a)または54Mbps(802.11b)というデータ転送速度で、またはこのどちらの帯域も含む(デュアルバンド(dual band))製品で動作し、このため、そのネットワークでは、多くのオフィスで使用されている基本の10BaseT有線イーサネット(登録商標)ネットワークに類似した実世界(real−world)のパフォーマンスを提供することができる。
次に図10を参照すると、本発明による例示的なコンピューティング環境1000の図式的な構成図が示してある。システム1000は、1つまたは複数のクライアント1002を含んでいる。クライアント1002は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とすることができる。クライアント1002は、例えば、クッキーおよび/または関連付けられているコンテキストの情報を、本発明を使用することによって収容することができる。
また、システム1000は、1つまたは複数のサーバ1004を含んでいる。サーバ1004も、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とすることができる。サーバ1004は、例えば、変換を行うスレッドを、本発明を使用することによって収容することができる。クライアント1002とサーバ1004の間の可能な通信の1つは、2つ以上のコンピュータプロセスの間で伝送されるように適合されたデータパケットの形をとることができる。このデータパケットは、例えば、クッキーおよび/または関連付けられているコンテキストの情報を含むことができる。システム1000は、クライアント1002とサーバ1004の間の通信を容易にするために使用できる通信フレームワーク1006(例えば、インターネットのような地球規模の通信ネットワーク)を含んでいる。
通信は、(光ファイバを含む)有線および/または無線技術によって容易にすることができる。クライアント1002は、1つまたは複数のクライアントデータストア1008に動作可能に接続されており、これは、クライアント1002にローカルな情報(例えば、クッキーおよび/または関連付けられているコンテキストの情報)を格納するのに使用することができる。同様に、サーバ1004は、1つまたは複数のサーバデータストア1010に動作可能に接続されており、これは、サーバ1004にローカルな情報を格納するのに使用することができる。
上で説明したことは、本発明の例を含んでいる。もちろん、コンポーネントまたは方法(methodologies)の着想可能なあらゆる組合せの説明を、本発明を説明する目的で行うことは不可能であるが、本発明の多くの組合せおよび並べ替え(permutation)がさらに可能であることが当業者には理解できよう。したがって、本発明は、添付の特許請求の範囲の趣旨および範囲の範囲内に入るそのような変更、修正、および変種をすべて包摂するものとする。さらに、「含む」(includes)という用語を詳細な説明または特許請求の範囲で使用する限りでは、そのような用語は、「備える」(comprising)という用語に似た形で、「備える」(comprising)を請求項の移行語(transitional word)として使用する時の解釈のように、包含的であるものとする。
本発明による、オブジェクトモデルの設計を容易にする設計ツールシステムを示す図である。 本発明による、オブジェクトモデル設計を容易にする方法(methodology)を示す図である。 本発明の設計者ツールの属性を示す図である。 本発明の設計者ツールを用いて行うことのできる操作を示す図である。 本発明による、組織チャートのある言語の抽象シンタクスを構成するクラスの例示的な樹状構造のレイアウトを示す図である。 本発明による、樹状構造図の設計者スクリーンショットである。 本発明による、樹状構造を複数の図として提示する図である。 本発明の方法の1つまたは複数の学習した特徴の自動化を容易にする人工知能コンポーネントを使用する設計者ツールシステムを示す図である。 開示するアーキテクチャを実行するように動作可能なコンピュータの構成図である。 本発明による例示的なコンピューティング環境の図式的な構成図である。
符号の説明
100 設計ツールシステム
102 レイアウトコンポーネント
104 編集可能な樹状構造
106 提示コンポーネント
108 樹状構造図

Claims (20)

  1. システムメモリ、入力装置および出力装置と通信可能に接続されたプロセッサを有するコンピュータに、オブジェクトモデルの設計を支援するコンピュータ実行方法を実行させるコンピュータ実行可能命令を有するコンピュータ可読記憶媒体であって、前記コンピュータ実行方法は、
    前記プロセッサが、前記入力装置を介して入力された、複数のオブジェクト、および前記複数のオブジェクトの有向関係を受信するステップと、
    前記プロセッサが、前記受信されたオブジェクト、および前記受信された有向関係に基づいて、前記受信されたオブジェクトの少なくとも関係および特性を示し、かつ前記受信されたオブジェクトのうちの1つをルートノードとして持つ樹状構造を生成するステップであって、前記樹状構造は、前記受信されたオブジェクトに対応する1つまたは複数のノードを含み、かつノード間の線の交差が発生しないように同一のノードを複数有する、生成するステップと、
    前記樹状構造を前記出力装置を介して表示するステップと
    を備えたことを特徴とするコンピュータ可読記憶媒体。
  2. 前記生成するステップは、前記樹状構造の表示の特徴を調整するステップを含み、前記表示の特徴は間隔、位置、大きさ、および形状のうちの少なくとも1つを含むことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  3. 前記生成するステップは、提示の領域に従って、前記樹状構造の表示を調整するステップを含むことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  4. 前記生成するステップは、前記ノードを互いに交差しない線で接続するステップを含むことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  5. 前記ノードのうちの少なくとも1つは、前記ノードに対応して表示される複数のグラフィック記号を含み、前記複数のグラフィック記号のうちの第1のグラフィック記号を前記入力装置を介して押下すると、対応するノードの継承階層表示を表示するために引き伸ばし、または隠すために折り畳み、前記複数のグラフィック記号のうちの第2のグラフィック記号を前記入力装置を介して押下すると、対応するノードの関係階層表示を表示するために引き伸ばす、または隠すために折り畳むことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  6. 前記生成するステップは、前記受信された有向関係に基づき、前記ノードの間を接続する線の中央付近に表示される、前記ノードの間の役割関係を表す記号およびラベルを生成するステップを含むことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  7. 前記複数のオブジェクトはクラスオブジェクトを含むことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  8. 前記コンピュータ実行方法は、
    前記受信されたオブジェクトを定義クラスまたは非定義クラスとして区別するステップと、
    前記受信された有向関係に基づき、参照関係、埋め込み関係および継承関係を区別するステップと、
    前記区別された定義クラス、非定義クラス、参照関係、埋め込み関係、および/または継承関係に基づき、前記樹状構造の一部の表示スタイルを変更するステップと
    をさらに備えたことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  9. 前記コンピュータ実行方法は、
    前記プロセッサが、前記入力装置を介して選択された前記ノードの選択を受信するステップと、
    前記プロセッサが、前記選択されたノードに対応するオブジェクトと同じオブジェクトに対応するノードすべてをハイライト表示するステップと、
    前記プロセッサが、前記有向関係に基づき、前記選択されたノードと関係を持つノードすべてをハイライト表示するステップと
    をさらに備えたことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  10. 前記生成するステップは、前記受信されたオブジェクトを定義クラスまたは非定義クラスとして区別するステップと、
    前記区別された定義クラスおよび/または非定義クラスに基づき、前記樹状構造の一部の表示スタイルを変更するステップと
    を含み、前記コンピュータ実行方法は、
    前記プロセッサが、前記入力装置を介して選択された、前記非定義クラスのオブジェクトに対応するノードの選択を受信するステップと、
    前記プロセッサが、前記選択されたノードに対応する非定義クラスのオブジェクトと同じオブジェクトである前記定義クラスのオブジェクトに対応するノードをハイライト表示するステップと
    をさらに備えたことを特徴とする請求項1に記載のコンピュータ可読記憶媒体。
  11. システムメモリ、入力装置および出力装置と通信可能に接続されたプロセッサを有するコンピュータが実行する、オブジェクトモデルの設計を支援するコンピュータ実行方法であって、前記コンピュータ実行方法は、
    前記プロセッサが、前記入力装置を介して入力された、複数のオブジェクト、および前記複数のオブジェクトの有向関係を受信するステップと、
    前記プロセッサが、前記受信されたオブジェクト、および前記受信された有向関係に基づいて、前記受信されたオブジェクトの少なくとも関係および特性を示し、かつ前記受信されたオブジェクトのうちの1つをルートノードとして持つ木構造を生成するステップであって、前記木構造は、前記受信されたオブジェクトに対応する1つまたは複数のノードを含み、かつノード間の線の交差が発生しないように同一のノードを複数有し、前記ノードのうちの少なくとも1つは、前記ノードに対応して表示される複数のグラフィック記号を含み、前記複数のグラフィック記号のうちの第1のグラフィック記号を前記入力装置を介して押下すると、対応するノードの継承階層表示を表示するために引き伸ばし、または隠すために折り畳み、前記複数のグラフィック記号のうちの第2のグラフィック記号を前記入力装置を介して押下すると、対応するノードの関係階層表示を表示するために引き伸ばす、または隠すために折り畳む、生成するステップと、
    前記プロセッサが、前記木構造を前記出力装置を介して表示するステップと
    を備えたことを特徴とするコンピュータ実行方法。
  12. 前記複数のグラフィック記号のうちの第3のグラフィック記号を前記入力装置を介して押下すると、対応する前記ノード
    の特性情報表示を表示するために引き伸ばす、または隠すために折り畳むことを特徴とする請求項11に記載のコンピュータ実行方法。
  13. 前記生成するステップは、
    前記受信されたオブジェクトを定義クラスまたは非定義クラスとして区別するステップと、
    前記受信された有向関係に基づき、参照関係、埋め込み関係および継承関係を区別するステップと、
    前記区別された定義クラス、非定義クラス、参照関係、埋め込み関係、および/または継承関係に基づき、前記木構造の一部の表示スタイルを変更するステップと
    を含むことを特徴とする請求項11に記載のコンピュータ実行方法。
  14. 前記木構造における前記ノードの間の親子関係は、1対1または1対多の関係であることを特徴とする請求項11に記載のコンピュータ実行方法。
  15. 前記生成するステップは、前記受信された有向関係に基づき、前記ノードの間を接続する線の中央付近に表示される、前記ノードの間の役割関係を表す記号を生成するステップを含むことを特徴とする請求項11に記載のコンピュータ実行方法。
  16. 前記プロセッサが、前記入力装置を介して選択された、前記非定義クラスのオブジェクトに対応するノードの選択を受信するステップと、
    前記プロセッサが、前記選択されたノードに対応する非定義クラスのオブジェクトと同じオブジェクトである前記定義クラスのオブジェクトに対応するノードをハイライト表示するステップと
    をさらに備えたことを特徴とする請求項13に記載のコンピュータ実行方法。
  17. 前記プロセッサが、前記入力装置を介して選択されたノードの選択を受信するステップと、
    前記プロセッサが、前記選択されたノードに対応するオブジェクトと同じオブジェクトに対応するノードすべてをハイライト表示するステップをさらに備えたことを特徴とする請求項11に記載のコンピュータ実行方法。
  18. 前記プロセッサが、前記入力装置を介して選択されたノードの選択を受信するステップと、
    前記プロセッサが、前記有向関係に基づき、前記選択されたノードと関係を持つノードすべてをハイライト表示するステップと
    をさらに備えたことを特徴とする請求項11に記載のコンピュータ実行方法。
  19. 前記プロセッサが、前記入力装置を介して入力された、前記ノードの配置変更指示を受信するステップと、
    前記プロセッサが、前記配置変更指示に基づいて、前記木構造を再生成するステップと、
    前記プロセッサが、前記再生成された木構造を前記出力装置を介して表示するステップと
    をさらに備えたことを特徴とする請求項11に記載のコンピュータ実行方法。
  20. 請求項11乃至19に記載のコンピュータ実行方法を実行させるコンピュータ実行可能命令を有することを特徴とするコンピュータ可読記憶媒体。
JP2005351275A 2005-01-05 2005-12-05 オブジェクトモデルの設計を容易にするシステム Expired - Fee Related JP5063890B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/029,852 2005-01-05
US11/029,852 US7814427B2 (en) 2005-01-05 2005-01-05 Object model tree diagram

Publications (2)

Publication Number Publication Date
JP2006190262A JP2006190262A (ja) 2006-07-20
JP5063890B2 true JP5063890B2 (ja) 2012-10-31

Family

ID=35892599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005351275A Expired - Fee Related JP5063890B2 (ja) 2005-01-05 2005-12-05 オブジェクトモデルの設計を容易にするシステム

Country Status (5)

Country Link
US (1) US7814427B2 (ja)
EP (1) EP1679587A1 (ja)
JP (1) JP5063890B2 (ja)
KR (1) KR101169171B1 (ja)
CN (1) CN1801151B (ja)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US20070005618A1 (en) * 2005-06-07 2007-01-04 Konstantin Ivanov Systems and methods for modeling business processes
US8266579B2 (en) * 2005-10-14 2012-09-11 International Business Machines Corporation System and method for developing and deploying a model-driven editor
US10983695B2 (en) * 2005-10-24 2021-04-20 Kinoma, Inc. Focus management system
WO2007057279A2 (en) * 2005-11-18 2007-05-24 International Business Machines Corporation Object replacement method and system
US7661076B2 (en) * 2006-03-31 2010-02-09 Microsoft Corporation Two dimensional trees to edit graph-like diagrams
US8875113B2 (en) * 2006-05-04 2014-10-28 Oracle International Corporation Managing JAVA class paths
US8010938B2 (en) * 2006-11-27 2011-08-30 International Business Machines Corporation Computer method and system for pattern specification using meta-model of a target domain
US8396827B2 (en) * 2006-12-29 2013-03-12 Sap Ag Relation-based hierarchy evaluation of recursive nodes
US9311082B2 (en) * 2006-12-29 2016-04-12 Sap Se System and method for processing graph objects
US8640086B2 (en) * 2006-12-29 2014-01-28 Sap Ag Graphical user interface system and method for presenting objects
US20080162777A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graph abstraction pattern for generic graph evaluation
US9165087B2 (en) * 2006-12-29 2015-10-20 Sap Se Validity path node pattern for structure evaluation of time-dependent acyclic graphs
US20080162616A1 (en) * 2006-12-29 2008-07-03 Sap Ag Skip relation pattern for graph structures
US20080162563A1 (en) * 2006-12-29 2008-07-03 Sap Ag Generic graph services utilizing anonymous and identified graph pattern
US20080228812A1 (en) * 2007-03-15 2008-09-18 Honeywell International Inc. Method and System for Metamodeling Using Dynamic Ontology Objects
US10068189B2 (en) * 2007-06-01 2018-09-04 International Business Machines Corporation Storing and depicting organizations that are subject to dynamic event driven restructuring
US8046716B2 (en) 2007-06-15 2011-10-25 Microsoft Corporation Creating, displaying, and editing a sub-process within a process diagram
US9530105B2 (en) * 2007-06-27 2016-12-27 Microsoft Technology Licensing, Llc Managing entity organizational chart
WO2009025004A1 (ja) * 2007-08-10 2009-02-26 Shimadzu Corporation データ解析システム
JP4907482B2 (ja) * 2007-09-27 2012-03-28 株式会社日立製作所 計算機システム及びファイル管理方法
US8095865B2 (en) * 2007-11-21 2012-01-10 Microsoft Corporation Layout manager
CN101499003A (zh) * 2008-01-31 2009-08-05 国际商业机器公司 生成关于模型的约束表达式的方法以及约束语言编辑器
CN101499922B (zh) * 2008-02-02 2012-12-12 华为技术有限公司 数据转换方法、装置、终端以及服务器
US8826174B2 (en) * 2008-06-27 2014-09-02 Microsoft Corporation Using visual landmarks to organize diagrams
US9639331B2 (en) * 2008-07-09 2017-05-02 International Business Machines Corporation Service interface creation and modification for object-oriented services
US8276113B2 (en) * 2008-08-11 2012-09-25 International Business Machines Corporation Dynamic highlighting of related artifacts in a UML diagram
US8669982B2 (en) * 2008-10-01 2014-03-11 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic culling graph view of multiply connected objects
US8711148B2 (en) * 2008-10-01 2014-04-29 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic selective view of multiply connected objects
US8194075B2 (en) * 2008-10-01 2012-06-05 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic list view of multiply connected objects
US8665274B2 (en) * 2008-10-01 2014-03-04 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic view of bi-directional impact analysis results for multiply connected objects
US8711147B2 (en) * 2008-10-01 2014-04-29 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic graph view of multiply connected objects
US20100162208A1 (en) * 2008-12-19 2010-06-24 International Business Machines Corporation Modeling tool builder - graphical editor construction
US20100161524A1 (en) * 2008-12-19 2010-06-24 International Business Machines Corporation Method and system for identifying graphical model semantics
US20100269089A1 (en) * 2009-04-21 2010-10-21 Vinod R Panicker Method and system for generation of reusable design patterns
CA2708908C (en) * 2009-06-11 2016-01-12 Accenture Global Services Gmbh Assessment system for choosing maintenance approaches for gui-directed test scripts
CA2669603A1 (en) * 2009-06-18 2010-12-18 Ibm Canada Limited - Ibm Canada Limitee Graphical modeling tool
US8190710B2 (en) 2009-06-23 2012-05-29 Oracle International Corporation System and method for providing user context support in a native transaction platform
US8326913B2 (en) * 2009-06-25 2012-12-04 Oracle International Corporation Method and system for service contract discovery
US20110029951A1 (en) * 2009-07-30 2011-02-03 International Business Machines Corporation Visually Presenting Inherited Members in Object-Oriented Languages
US8863029B2 (en) * 2009-09-01 2014-10-14 Oracle International Corporation Method and system for providing graphical user interface having filtering capability
US8161413B2 (en) 2009-09-01 2012-04-17 Oracle International Corporation Method and system for providing user interface representing organization hierarchy
US8806379B2 (en) * 2009-09-01 2014-08-12 Oracle International Corporation Method and system for displaying group relationships in a graphical user interface
CN101789003A (zh) * 2010-01-25 2010-07-28 刘明晶 用可视化图形表现关联信息的方法
US10139995B2 (en) 2010-06-02 2018-11-27 Allen Learning Technologies Device having graphical user interfaces and method for developing multimedia computer applications
US8363054B2 (en) * 2010-06-16 2013-01-29 Microsoft Corporation Localized layout and routing in an interactive diagramming system
WO2011161301A1 (en) * 2010-06-24 2011-12-29 Valtion Teknillinen Tutkimuskeskus State inference in a heterogeneous system
US8448093B2 (en) * 2010-07-23 2013-05-21 Oracle International Corporation Hierarchical organization chart for mobile applications
US20120036463A1 (en) * 2010-08-06 2012-02-09 Krakovsky Dmitri I Metric navigator
US8997024B2 (en) * 2010-12-09 2015-03-31 Microsoft Technology Licensing, Llc Navigating between views of a graph using placemarkers
US8572101B2 (en) * 2011-01-10 2013-10-29 International Business Machines Corporation Faceted interaction interface to object relational data
US8924385B2 (en) 2011-04-12 2014-12-30 Microsoft Corporation Query-based diagrammatic presentation of data
KR20130010748A (ko) * 2011-07-19 2013-01-29 (주)이스트소프트 좌표인식기반 마인드맵 사용자 편집 시스템
US9773327B2 (en) * 2011-10-15 2017-09-26 Hewlett Packard Enterprise Development Lp Modified flow graph depiction
US9104389B2 (en) 2011-10-18 2015-08-11 International Business Machines Corporation Hierarchical functional and variable composition diagramming of a programming class
US8732655B2 (en) * 2011-12-29 2014-05-20 Sap Ag Systems and methods for metamodel transformation
US20130191809A1 (en) * 2012-01-25 2013-07-25 Microsoft Corporation Graphical representation of an order of operations
US10699038B2 (en) 2012-03-30 2020-06-30 Litmus Blue Technology LLC Configurable representation of domain models
US8874553B2 (en) 2012-08-30 2014-10-28 Wal-Mart Stores, Inc. Establishing “is a” relationships for a taxonomy
US9092547B2 (en) * 2012-09-19 2015-07-28 Wal-Mart Stores, Inc. Transforming a graph to a tree in accordance with analyst guidance
CN103810548A (zh) * 2012-11-08 2014-05-21 中国船舶工业集团公司七〇八研究所 一种船舶与海洋工程项目管理系统
US8914771B2 (en) 2012-11-13 2014-12-16 International Business Machines Corporation Indicating hierarchy diversion in a class diagram
CN103853760B (zh) * 2012-12-03 2017-05-03 中国移动通信集团公司 一种网页正文内容提取方法和装置
EP2962181A4 (en) * 2013-02-28 2016-10-12 Hewlett Packard Entpr Dev Lp INTERFACE FOR GENERATING A PLANET FACT
US10078411B2 (en) 2014-04-02 2018-09-18 Microsoft Technology Licensing, Llc Organization mode support mechanisms
CN104133900A (zh) * 2014-08-04 2014-11-05 浪潮通用软件有限公司 一种360°树状视图的定义描述方法
US9697469B2 (en) 2014-08-13 2017-07-04 Andrew McMahon Method and system for generating and aggregating models based on disparate data from insurance, financial services, and public industries
US10169355B2 (en) * 2014-10-27 2019-01-01 Tata Consultancy Services Limited Knowledge representation in a multi-layered database
US9760614B2 (en) * 2014-12-16 2017-09-12 General Electric Company Method and tool for browsing semantic data and creating queries using a domain/range representation
US10223474B1 (en) 2015-09-30 2019-03-05 Riivos, Inc. Traversing a cyclic graph using a modified breadth-first search in complex modeling
US9685142B2 (en) * 2015-11-03 2017-06-20 International Business Machines Corporation Obtaining and displaying relationships between elements
WO2017091821A1 (en) * 2015-11-25 2017-06-01 Teamifier, Inc. Methods for the augmentation, exploration, and maintenance of project hierarchies
US10339488B2 (en) * 2015-12-16 2019-07-02 Sap Se Method and system for the definition of a model
US10078634B2 (en) * 2015-12-30 2018-09-18 International Business Machines Corporation Visualizing and exploring natural-language text
US10192018B1 (en) * 2016-03-31 2019-01-29 Cadence Design Systems, Inc. Method and system for implementing efficient trim data representation for an electronic design
US11112927B2 (en) * 2018-04-25 2021-09-07 Adobe Inc. Digital content automated layout system
CN110609873A (zh) * 2018-06-15 2019-12-24 富士施乐株式会社 信息处理装置和非暂时性计算机可读介质
US10936342B2 (en) * 2018-07-17 2021-03-02 Salesforce.Com, Inc. Method and user interface for data mapping
CN110795093B (zh) * 2018-08-01 2024-04-16 北京京东尚科信息技术有限公司 一种交互式视图生成方法和装置
US11256748B2 (en) 2018-11-30 2022-02-22 Riivos, Inc. Complex modeling computational engine optimized to reduce redundant calculations
CN110737380B (zh) * 2019-09-05 2021-09-07 广州视源电子科技股份有限公司 思维导图展示方法、装置、存储介质及电子设备
US11288043B2 (en) * 2020-02-05 2022-03-29 Hatha Systems, LLC System and method for creating a process flow diagram which incorporates knowledge of the technical implementations of flow nodes
US11620454B2 (en) 2020-02-05 2023-04-04 Hatha Systems, LLC System and method for determining and representing a lineage of business terms and associated business rules within a software application
US11836166B2 (en) 2020-02-05 2023-12-05 Hatha Systems, LLC System and method for determining and representing a lineage of business terms across multiple software applications
JP2022012394A (ja) * 2020-07-01 2022-01-17 横河電機株式会社 ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
US20240281215A1 (en) * 2021-12-21 2024-08-22 Mitsubishi Electric Corporation Recording medium, programming assisting device, and programming assisting method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306786A (ja) * 1994-05-12 1995-11-21 Matsushita Electric Ind Co Ltd オブジェクト階層表示装置
US5754179A (en) 1995-06-07 1998-05-19 International Business Machines Corporation Selection facilitation on a graphical interface
US6564368B1 (en) * 1998-10-01 2003-05-13 Call Center Technology, Inc. System and method for visual application development without programming
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
JP2002157120A (ja) * 2000-11-17 2002-05-31 Hitachi Software Eng Co Ltd 設計ドキュメント管理システム
US6804686B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology for providing fixed UML layout for an object oriented class browser
US7167862B2 (en) * 2003-03-10 2007-01-23 Ward Mullins Session bean implementation of a system, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
EP1510938B1 (en) * 2003-08-29 2014-06-18 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
US7318199B2 (en) * 2003-09-11 2008-01-08 Oracle International Corporation Algorithm for automatic layout of objects in a database

Also Published As

Publication number Publication date
JP2006190262A (ja) 2006-07-20
CN1801151A (zh) 2006-07-12
CN1801151B (zh) 2011-12-14
US7814427B2 (en) 2010-10-12
KR20060080528A (ko) 2006-07-10
EP1679587A1 (en) 2006-07-12
US20060150169A1 (en) 2006-07-06
KR101169171B1 (ko) 2012-07-30

Similar Documents

Publication Publication Date Title
JP5063890B2 (ja) オブジェクトモデルの設計を容易にするシステム
US11635944B2 (en) Methods and systems for programmatic creation of an interactive demonstration presentation for an envisioned software product
Heer et al. Prefuse: a toolkit for interactive information visualization
US8296666B2 (en) System and method for interactive visual representation of information content and relationships using layout and gestures
TWI410887B (zh) 基於使用者客製化來維護各圖形表示的方法及系統
US8386919B2 (en) System for displaying an annotated programming file
US20070079237A1 (en) Computer system and method including an operation performed in a manner based on a determined activity
US20140258894A1 (en) Visual Timeline Of An Application History
US20140258969A1 (en) Web-Based Integrated Development Environment For Real-Time Collaborative Application Development
JP2019531524A (ja) ウェブサイト構築システムおよびウェブサイト構築システムのための方法
US9383889B2 (en) Process flow designing based on connection compatibility between process components
US8407611B2 (en) Apparatus and method for designing graphical user interfaces (GUIs) having different fidelities
JP2014021511A (ja) 表示制御装置、表示制御方法、プログラム、及び通信システム
US20220164526A1 (en) Method And Apparatus For Structured Documents
US10776351B2 (en) Automatic core data service view generator
KR101408280B1 (ko) 개발도구의 로직생성장치 및 방법과, 그 방법을 실행하기 위한 프로그램이 기록된 저장매체
US9250925B2 (en) Adding inheritance support to a computer programming language
Hoarau et al. Augmenting the scope of interactions with implicit and explicit graphical structures
JPWO2006137564A1 (ja) 文書処理装置
KR102588597B1 (ko) Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치
Grewenig From High-Usability Cross-Device Wireframe-Based Storyboards to Component-Oriented Responsive-Design User Interfaces
Houlahan Prototyping Python Dashboards for Scientists and Engineers: Build and Deploy a Complete Dashboard with Python
de Almeida Martins CleanGraph-Graph viewing and editing for family trees and UML class diagrams
Küçükkeçeci Chisio: A visual framework for compound graph editing and layout
Houlahan Prototyping Python Dashboards for Scientists and Engineers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120719

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120808

R150 Certificate of patent or registration of utility model

Ref document number: 5063890

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees