JP5102828B2 - アプリケーション・データ・エディタを生成するための方法及びシステム - Google Patents

アプリケーション・データ・エディタを生成するための方法及びシステム Download PDF

Info

Publication number
JP5102828B2
JP5102828B2 JP2009507009A JP2009507009A JP5102828B2 JP 5102828 B2 JP5102828 B2 JP 5102828B2 JP 2009507009 A JP2009507009 A JP 2009507009A JP 2009507009 A JP2009507009 A JP 2009507009A JP 5102828 B2 JP5102828 B2 JP 5102828B2
Authority
JP
Japan
Prior art keywords
class
page
editor
current
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009507009A
Other languages
English (en)
Other versions
JP2009534766A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009534766A publication Critical patent/JP2009534766A/ja
Application granted granted Critical
Publication of JP5102828B2 publication Critical patent/JP5102828B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

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

Description

本発明は、一般に、アプリケーションのユーザ・インターフェースの開発に関し、より特定的には、本発明は、アプリケーション・データのオブジェクト・モデルに基づいて生成されるフォームエディタ・生成プログラム(generator)に関する。
ビジネス・アプリケーションの開発サイクルの一部であるエディタの生成は、アプリケーション・データの収集を可能にするユーザ・インターフェース(UI)をエンドユーザに提供する。そのコードを容易に展開し、維持するためのUIコードが、オブジェクト指向技術を用いて開発されている。
アプリケーションのデータモデルから始まるこれらのエディタの生成を容易にする必要性が存在する。
オブジェクト指向ソフトウェア工学を容易にする多くのツールが存在する。統一モデリング言語(Unified Modeling Language、UML)のような方法は、開発アーチファクトを視覚化し、管理するためのグラフィカル言語を提供する。これらの方法は、開発者に対してコードを生成するためのツールを提供するが、それは、一般的に、細粒度コードであり、全てのユーザ・アプリケーション及び編集機能を含むものではない。特許文献1は、フレームワークのツリー表示、オブジェクトのグラフ表示、メソッドのメソッド表示及び編集表示から成るオブジェクト指向フレームワークを対話形式で生成し、フレームワーク、オブジェクト及びメソッドを変更するための解決法を提供する。実行時オブジェクトは自動的に生成することができるが、開発者は、例えば、生成されたコードが実行されるターゲット・オペレーティング・システムのグラフィカル機能に応じて編集属性の特異性を導入することによってこのコード生成をカスタマイズする可能性を有していない。この解決法を用いる場合、オブジェクトが作成されると、カスタマイズのために、各々のエディタ・コードを変更する必要がある。
Eclipse Modeling Framework(EMF)は、構造化されたデータモデルに基づいてツール及び他のアプリケーションを構築するためのモデリング・フレームワーク及びコード生成ファシリティである。XMI(XML Metadata Interchange)形式で記述されたモデル仕様から、EMFは、モデルに関するJavaクラスの組、モデルの表示及びコマンド・ベースの編集を可能にするアダプタ・クラスの組、及び基本的なエディタを生成するために、ツール及び実行時支援を提供する。編集属性の何らかの特異性を導入することによって、エディタをカスタマイズすることができるが、エディタは、基本的で一般的なものである。エディタは、ツリーを表示し、そのツリーの各ノードについての属性を列挙する。従って、EMFを用いて生成されたエディタは、開発及び試験目的のために用いることができるが、データモデルの下でより詳細なデータ更新をカバーすることを必要とする現実のビジネス環境における実行のために用いることはできない。
Object,View,and Interaction Design(OVID)は、コード設計に変換することができるソフトウェア設計方法である。OVIDは、UMLで書かれたアプリケーションの永続データのオブジェクト・モデルから開始し、エディタのためのコード生成に終わる。編集属性の何らかの特異性を導入することによって、定義段階の際にエディタ・インターフェースをカスタマイズすることができる。しかしながら、OVIDを用いる場合、開発者は、モデルを変更し、ターゲット・ユーザ・インターフェースの特異性を入力することによってこれに適合させなければならない。このことは、煩わしく、モデル作成者(modeler)が、エディタを生成するために、UMLモデル内のUI仕様を定義することを強いる。モデル作成者は、エディタを実行するために、ターゲットと同数のモデルを生成しなければならない。
米国特許第USP5987247号
従って、オリジナル・データモデルから独立した方法で、かつ、効率的にデータを更新するように適合された最終的なエディタを用いて、アプリケーション・データのエディタを生成する解決法に対する必要性が存在する。
従って、本発明の目的は、データモデルから始まり、実行環境で用いるように適合されたデータ・エディタを生成する方法を提供することである。
この目的は、アプリケーションの永続データを編集するための、コンピュータのグラフィカル・ユーザ・インターフェースを介して実行されるエディタを生成するための方法、コンピュータ・プログラム及びシステムであって、永続データは、クラス、それらの属性及びクラス間の関係の階層的組織を定義するモデリング言語を用いてデータ・オブジェクト・モデル内に記述され格納される、方法、コンピュータ・プログラム及びシステムを用いる請求項1乃至請求項8によって達成され、この方法は、ルート・クラスを検索し、ルート・クラスから開始するステップと、クラスのインスタンスを作成し、更新するためにクラス毎にページを作成するステップとを含む。現在のクラスの各ページは、クラスの属性を編集する編集セクションと、それらが作成されるときにクラスの全てのインスタンスを列挙するテーブル・セクションと、現在のクラスと関連するターゲット・クラスに対応する他のページへのポインタを列挙するハイパーリンク・セクションとを含む。
ハイパーリンク・セクションのポインタを用いてページ内をナビゲートするエディタのユーザは、モデルの全てのクラスをインスタンス化することができる。エディタの一実施形態においては、モデルの他のクラスのページを指し示すスクリーンの最下行に、タブが追加される。1つの他の実施形態においては、同じ抽象ページに属する全てのクラスのために、固有のページが作成され、編集セクションは、現在のページの異なる先祖によってグループ化される属性を含む。1つの他の実施形態において、現在のクラスの先祖が、メタモデル内に見出され、現在のクラスの先祖によってグループ化された属性を編集するためのフィールドが、編集セクション内に表示される。
本発明の解決法の主な利点は、オリジナル・データモデルの如何なる変更もなしに、エディタを生成することである。データモデルの如何なる変更も要求することなく、エディタ生成段階中に、エディタのユーザ・インターフェースをカスタマイズすることができる。その結果、アプリケーション開発グループ内の異なる開発者又は試験者の責任下にあるエディタ生成段階の際に、モデル設計者が関与する必要がなくなる。
好ましい実施形態において、ページ構築コードを変更するために、生成プログラム内のフックに対応するグラフィカル・ユーザ・インターフェースであるインターフェースを開発者に提供することによって、エディタ・コードの生成中に、エディタのユーザ・インターフェースのカスタマイズが行われる。これにより、より冗長な作業である従来技術の解決法のように、一旦生成されたコードを直接変更することが回避される。
本発明の方法によって生成されたエディタは、ページの組内にあるアプリケーションの完全なデータモデルの全てのコンポーネントをカバーする。好ましい実施形態において、オブジェクト毎に1ページの、生成されたマルチページ・エディタは、概要ページを表示し、エンドユーザに、編集されたルート(又は、主、中央、...)オブジェクトの完全なビジョンを与えることで開始する。1つのページにおいて、ユーザは、所定のクラス及び編集セクションにおいて編集可能である、クラス階層内の上位のクラスに関するクラス属性を更新することができる。関係インスタンスが、テーブル・セクション内に列挙され、ユーザは、ハイパーリンク・セクションを用いて関係インスタンスのターゲット・クラスを指し示すことができる。
本発明の方法によって生成されたエディタを用いる場合、同じ抽象クラスに属するクラス・ページをグループ化することによって、ページ数が随意的に減少される。
図1は、好ましい実施形態に従った、本発明によって生成されるアプリケーション・エディタを構成し、使用するための環境を示す。この環境において、データのメタモデルを形成する、アプリケーションの永続データのためのエディタが生成される。
好ましい実施形態において、本発明は、コンピュータ上で実行されるソフトウェア・プログラムすなわちエディタ生成プログラム(103)として実施される。エディタのソース・コードを作成する方法のステップの他の可能な実施も適している。
エディタ生成プログラム(103)は、アプリケーションの開発者が、アプリケーション実行ファイル(112)と組み合わせて、アプリケーション・データ及びそれらの属性を生成し、読み取り、更新し、削除する方法をユーザ(111)に提供することができる、十分に使用可能なリッチアプリケーション・エディタ(105)のコードを生成するのを可能にする。
エディタ生成プログラム(103)は、「ソフトウェア開発環境」(100)において実行され、データ・エディタのコードを生成する。次に、エディタは、「実行環境」(110)において実行される。「実行環境」は、データモデルの永続データが編集されるアプリケーションの試験環境としてもよい。この場合、実行環境は、開発環境であり、開発者により、同じコンピュータ上でエディタ生成プログラム及びエディタを実行することができる。実行環境はまた、ターゲット・アプリケーションのビジネス環境とすることもでき、この場合、エディタ生成プログラムは、依然として開発者によって実行され、エディタは、アプリケーションのエンドユーザによって実行される。
ソフトウェア開発環境(100)は、アプリケーション全体を構築するために開発者のコンピュータ・ワークスペースにおいて使用可能な、エディタ、コンパイラ、リンカーのようなツールを含む、今日多くのものが存在する開発フレームワークである。ソフトウェア環境は、オペレーティング・システム上で動作するプログラムとしてインストールされ、本発明の好ましい実施形態のお気に入りの開発者インターフェースとして用いられるグラフィカル・ユーザ・インターフェースを提供する。
コア・ユニットである生成プログラム(103)は、プログラム入力のような情報の組を必要とする。第1の入力は、好ましい実施形態において、UMLのようなグラフィカル表示を有することができる設計言語で記述されたアプリケーションによって操作されるデータを表わすデータのメタモデル(102)である。エディタ生成プログラムはまた、実行環境(110)と両立性があると思われる開発環境内のUIグラフィック機能と関連するグラフィック・ライブラリ(104)の組にもアクセスする。生成プロセスの際の生成プログラムは、このグラフィカル・ライブラリの組に依存する。
他の機能の中でも、開発者に柔軟性を与えるために、生成プログラムは、開発者によって提供されるエディタのグラフィカル・カスタマイズ(106)を統合することができる。これらのカスタマイズにより、開発者に、生成されたアプリケーション・エディタの特有なグラフィカル・ルック・アンド・フィール要件を強いることが可能になる。これらのカスタマイズは、開発環境のグラフィカル・ライブラリ(104)と両立性がある。これらのカスタマイズは、実行環境においてエディタが実行されるときに適用される。
図2は、本発明の好ましい実施形態に関与する高レベルのコンポーネントの詳細を示す。図2は、生成プロセス中に使用されるアプリケーション・エディタ生成プログラム(200)の論理コンテンツと、生成されたアプリケーション・エディタを定義する結果として得られるコンポーネント(210)との関係とを示す。
エディタ生成プログラム(200)は、4つの主コンポーネント、すなわちモデル訪問者(Visitor)(201)、パッケージ訪問者(202)、クラス訪問者(204)及び関係訪問者(206)を含む。生成プログラムのプロセスは、開発者の要求で開始し、アプリケーション設計者によって定義されたデータ・メタモデル(102)を主入力として用いてエディタ生成プログラム(200)を起動する。
生成プログラムのプロセスは、選択されたデータ・メタモデルを検査することで開始し、モデル訪問者(201)を用いて、モデル定義自体に訪問することで開始する。好ましい実施形態において、モデルは、UMLを用いて設計され、そこで、関連した要素が「パッケージ」の下でグループ化される。この検査中、生成プログラムは、その中に含まれる全てのパッケージを検索する。含まれるパッケージの全てについてループを作ると、次に、エディタ生成プロセスは、パッケージ訪問者(202)を用いて全てのパッケージをループし、検索された各パッケージ内に含まれる全てのクラスを探す。生成プロセスは、データ・メタモデル・コンテンツを検査し続け、次に関係ビジタ(206)を用いて、現在のところ検査されたクラスについて定義された全ての関係を探す。
データ・メタモデルの検査中、エディタ生成プロセスは、3つの主タイプ、すなわちエディタ(211)、ページ(212)及びセクション(213、214、215)の言語認識実行可能エディタ・コンポーネント(210)を生成する。
生成されたコンポーネントの関係は、次のとおりである、すなわち、エディタ(211)はページ(212)を含み、ページはセクション(213、214、215)を含む。各ページは1つのオブジェクトに対応し、ページのセクションは、3つのタイプ、すなわちハイパーリンク・セクション(213)、テーブル・セクション(214)及び編集セクション(215)からなるものとすることができる。テーブル・セクション(214)は、メタモデルに従った、オブジェクトと他のオブジェクトとの関係インスタンスのリストを提供する。ハイパーリンク・セクション(213)は、リンク・リストを提供し、エンドユーザが、モデル内で起点オブジェクトが関連する他のオブジェクト・インスタンスを指し示すことを可能にする。編集セクション(215)においては、モデル内の編集可能なフィールドが表示される。
図3は、好ましい実施形態の方法を用いて実施されるような、生成されたアプリケーション・エディタのページのレイアウト詳細及び構成(300)を示す。
生成されたエディタにおいては、クラス毎に1つの編集可能なページが存在する。ページは、クラスの全てのインスタンスを作成するために、生成されたエディタのエンドユーザによって使用される。アプリケーションの全ての編集可能なデータの全てのクラスの全てのインスタンスを編集するために、生成されたエディタによって表示される標準的なページは、オブジェクト・モデル内のナビゲーションを反映する。好ましい実施形態の生成されたエディタによって表示された標準的なページは、ページの右上側の編集セクション(302)、左側のテーブル・セクション(304)及び右下側のハイパーリンク・セクション(303)である3つの編集可能なセクションを含む。タブの最下行は、タブの対応するインスタンスをさらに編集するために、他のページに、すなわち他のクラスにジャンプすることを可能にする。
クラスのページにおいて、編集セクション(302)は、クラスと、クラスの属性とを表示する。そのクラスがクラス階層内の第1のものでない場合には、編集セクション内により上位の階層のクラスも列挙される。テーブル・セクション(304)は、対応するクラスのページを編集するときにエンドユーザが作成する全てのインスタンスのリストを含む。ハイパーリンク・セクション(303)は、ページを作成するクラスと関連したターゲット・クラスのページへのポインタを含む。
その結果、1つのクラスに関するこのようなページから、エンドユーザは、テーブル・セクションの行をクリックすることによって、そのクラスの全てのインスタンスにジャンプすることができる。エンドユーザはまた、ページに対応するクラスと関連した全てのターゲット・クラスのインスタンスにジャンプすることもできる。
実行されたとき、生成されたエディタは、第1のページ、すなわち概要ページを表示する。ページの最下行は、ユーザが、エディタの他のクラス・ページを選択することを可能にするタブ(301)を含む。この概要ページから、エンドユーザは、クラスの全体的なビジョンをつかむ。生成されたエディタ(300)によって表示される1つ1つのページは、選択することができ、現在のページ選択に従ってそのコンテンツを表示する。
エンドユーザが必要とし得る全てのグラフィカル・ルック・アンド・フィールに適合させるために、カスタマイズを用いて、エディタ生成プロセス中又はその後、生成されたコードにおいて直接的にセクションの全ての標準的な場所を変更することができる。
図4は、生成プロセス(103)中にアプリケーション・エディタ(210)のページを生成する(400)方法の一般的なフローチャートである。このフローチャートは、クラス訪問者コンポーネント(204)において実施される。
このプロセスの第1のステップは、現在のパッケージに関するデータ・メタモデル(102)のルート・クラスを検索する(401)ことである。ルート・クラスは、メタモデル内の他のいずれのクラスにも含まれないか、又はそれによって参照されないクラスであり、このクラスは、好ましい実施形態に従った、本発明による編集のための入口として考えられる。このサブプロセスが、図5に示される。
終了するとき、ルート・クラス探索(lookup)プロセス(500)が、クラス定義を現在のページ構成プロセス(400)に送り返す。次に、ページ識別子及びラベルの基礎としてクラス名を用いてページを生成する(402)ために、クラス定義を用いる。ページ構成プロセスは、図6を参照してこの文書の後半に記載される。このページ構成プロセスが行なわれるとき、プロセスは、パッケージ内に含まれる全ての他のクラスを収集する(403)。
ステップ403の後、プロセスは、収集された全てのクラスをループし(404)、次いで、インターフェースを処理するかどうかをチェックする(405)。クラスは、それ自体がメソッドを定めるインターフェースを実装することができ、インターフェースは、通常のクラスとしてインスタンス化することができず、その結果、編集されていないために、プロセスにおいてインターフェースをフィルタ処理しなければならない。これがインターフェースである(試験405に対してイエスと返答する)とき、次のクラスが読み取られる(411)。これがインターフェース・クラスではない(試験405に対してノーと返答する)とき、システムは、現在のクラスの階層をチェックし(406)、パッケージ(408)内から抽象クラス(407)を探し、この抽象クラスに基づいて共通ページを作成する(409)。抽象クラスは、抽象概念を表し、インスタンス化されるべきではない。親クラスとしての抽象クラスは、その下にグループ化された子クラスを有する。抽象クラスは、子の属性内に含まれる属性を有することができる。ページの数を制限するために、エディタは、1つの抽象クラスのページ内にある同じ抽象クラスの下の全てのクラスのページをグループ化する。抽象クラス・ページの編集セクションは、属性のグループ、すなわち子の属性に共通する抽象クラスの属性のグループと、各々の子に関する属性のグループとを含む。抽象クラスが存在しない(407に対してノーと返答する)場合、生成プロセスは、ステップ402及び409におけるものと同じ構成及び命名法を用いてページを作成し(410)、1つのクラスについて1つのページを作成するステップは、図6を参照して文書の後半に記載される。全てのページを作成するステップの際、使用されるクラスと作成されるページとの間のリンクは、生成プロセスによってメモリ内に保持される。生成プロセス中にコードがメモリ内にリンクを保持する方法は、当業者によって知られており、かつ、プログラミング言語に依存するため、この文書内には記載されていない。次に、生成プロセスは、ステップ403において収集されたパッケージの次のクラスをチェックする。チェックするクラスがなくなったとき、ページ作成プロセスが終了する。
フローチャートのいずれのステップにおいても、開発者は、生成プログラム内のページを変更できることが留意される。より特定的には、毎回すなわちステップ402、409、410において、ページが作成される。その必要性に適合させるようにページ・コードを変更することができる場合、その段階で、開発者は、生成プロセス内のフックを用いて、新たに生成されたページ・コードにアクセスすることができる。開発者がコードを変更する好ましい実施形態においては、開発者によるページ内の変更の実施を容易にするより高性能のグラフィカル・ユーザ・インターフェースを用いる、他の実施形態を考慮することができる。
好ましい実施形態において、クラスは、パッケージによってグループ化されることになっていることも留意される。例えば、UML言語を用いてデータ・メタモデルを記述する場合、UMLパッケージは、それ自体が他のパッケージを含み得るサブモデルを含む。同様に、この実施形態において、この抽象クラスの同じページ(ステップ406乃至ステップ409)の下で抽象クラスに依存する全てのクラスをグループ化する関数は、これが生成されたエディタ内のページ数を制限し、これをより簡単にするので、生成されたエディタの最適化である。異なるクラス毎に1つのページを実装する1つの他の実施形態を考慮することもできる。
図5は、エディタ・コンポーネントの生成プロセス中、ページ構成プロセス(400)に用いられるルート・クラスを検索する(401)ために用いられる方法を詳述するフローチャートである。このフローチャートは、クラス訪問者コンポーネント(204)において実施される。
プロセスの第1のステップは、現在のUMLパッケージ内に含まれる全てのページを収集し、それらの全てをループする(500)ことである。好ましい実施形態において、メタモデルは、UML言語を用いて記述され、UMLパッケージは、それ自体が他のパッケージを含み得るサブモデルを含む。
各々のクラス定義を用いる際、システムは、メタモデル内で定義された関係に基づいてクラスの特徴を取得し(501)、それらの全てをループし(502)、別のクラスを参照する関係を探す(503)。次に、参照されたクラス(504)をチェックし、もしあれば、その子を取得し(505)、他の場合にはそれ自体を取得する。
ステップ506の間、システムは、現在のクラス(507)をリスト内に保存する。このリストは、現在のパッケージ内の別のものによって参照される全てのクラスをメモリ内に保持するように働く。
このプロセスは、パッケージ内に分析すべきそれ以上の子(508)、それ以上の関係の特徴(509)、及びそれ以上のクラス(510)がなくなるまで、クラスをループし続ける。
プロセスの第2の主部分は、パッケージ内に含まれる全てのクラスを、ステップ(507)において以前に保存された参照リストと比較することを目的とする。
ルート・クラスを見つけるために、現在のプロセスは、全てのクラスをループし(512)、リスト内に存在するかどうかを確認するために、現在のところ読み取られたクラスをチェックする。リスト内に存在する場合には、プロセスは、読み取るクラスがなくなるまで続く。プロセスが、参照されたリスト内にはないクラスが見つかった場合、このクラスがルート・クラスであり(ステップ515)、ページ構成プロセス(400)に送り返される。プロセスによってルート・クラスが戻されない(ステップ516)場合には、生成プロセス全体が停止するか、又は、パッケージ内に含まれているクラス・リストからクラスを選択するよう、開発者に要求することができ、次に、このクラスが、ルート・クラスとして働き、ページ構成プロセス(400)に送り返される。
図6は、1つのクラスについて1つのページを作成するように実行される一般的なフローチャートである。このフローチャートは、図4に記載されたページ構成プロセス(402、410)において実行される。3つのタイプのセクションすなわち好ましい実施形態における編集セクション(215)、ハイパーリンク・セクション(213)及びテーブル・セクション(214)が、ページ内に作成される。このフローチャートは、関係訪問者コンポーネント(206)において実施される。
ページ作成の第1のステップ(601)は、ページ構成プロセス中に保持されたページとクラスとの間のイン・メモリ・リンクを用いて、ページと関連付けられた現在のクラスを検索する。ステップ602において、編集セクションが作成され、現在のページに追加される。
編集セクションは、現在のクラスの属性及びそれらのタイプに基づいた編集フィールドを含む。編集セクションを作成するとき、サブプロセスが、全ての現在のクラスの属性及びそれらのタイプを検索し、ラベルを、続いて属性タイプに基づいたグラフィカル・コンポーネントを作成し、それらのどれか1つに関するセクションにこれを追加する。
属性タイプと編集セクション内に表示されるグラフィカル・コンポーネントとの間の関連付けの一例として、ブール(Boolean)の場合のチェック・ボックス、列挙(Enumeration)の値のリストで満たされたコンボ・ボックス(列挙は、週の日又はCPUタイプのような固有の要素の集まりを定義するために通常使用される名前付き定数の集まりである)及び他のタイプの単純なテキスト編集がある。これらの関連付けは、この文書内では例として提供されており、実施の文脈に従って拡張又は適合される。
現在のクラスから、プロセスは、次に、いずれかを見つけた場合、全ての継承されたクラスをループし(603)、インターフェースとして定義されたクラスをフィルタにかけ、試験604に対する返答がイエスである場合、次のクラスを読み取り(615)、試験604に対する返答がノーである場合、プロセスは、全ての見つけられた先祖に関する編集セクションを作成し、これを現在のページの編集セクションに追加する(605)。これにより、現在のクラスが先祖から継承した、現在のクラスの属性の現在のページ内の表示が与えられる。このことは、データ・メタモデル階層内の各クラスの位置決めについての、エディタのユーザ表示を改善する。従って、この改善(ステップ603、604、605)は随意的なものである。
現在のクラスから、プロセスは、その特徴の全てを読み取り、参照される(607)特徴だけを保持し、参照をループし(606)、参照されるクラスを検索する(608)。次に、プロセスは、インターフェースをフィルタにかけ(609)、参照されたクラスに対応する全てのクラス・ページへのポインタ・リストを用いてハイパーリンク・セクションを作成し(213)、このセクションを現在のページに追加する(610)。
参照されたクラスを用いて、現在のクラスと参照されたクラスとの間のターゲット・クラスの関係を検索する際に、プロセスは、テーブル・セクション(214)を作成し、イン・メモリ・マッピングを用いてターゲット・クラスからターゲット・ページを取得し、新しく作成されたテーブル・セクションをターゲット・ページに追加する(612)。最終的に、プロセスは、ターゲット・ページに関する編集セクション(215)を作成し、このセクションをターゲット・ページに追加し、言語がそのことを可能にする場合には、テーブル内の選択された項目をテーブル・セクション(214)から編集セクション(215)の現在の編集にリンクする。
セクション構成プロセス(600)は、協働するそれ以上の特徴もそれ以上のクラスもなくなったときに終了する。
図7は、好ましい実施形態に従った、本発明による必要な入力として用いられるUML言語を用いて表されたデータ・メタモデルの例(700)を示す。
図7においては、定義されたグラフィカル属性を有さない任意のオブジェクト指向モデリング言語ツール、正しいクラス(701)、クラス属性及びそれらの関連したタイプ(703)、並びにクラス間の関係(702)を用いて、プログラム設計者又はアーキテクトによってモデル化される、データ・メタモデル(102)のインスタンスが表されている。このクラスの図の例は、Rational Roseと名付けられたモデリング・ツールを用いてなされたものである。他の任意の高レベルのオブジェクト指向モデリング言語ツーリングを用いて、データ・メタモデルの他の表現をなすことができた。
図7のデータ・メタモデルから読み取られたナビゲーション・ツリーからのクラス、クラス属性及びクラス間の関係は、エディタ・プログラムにおいて生成プログラムが構築する編集フローの基礎であることが留意される。
図8は、エディタ生成プログラム(103)、好ましい実施形態においてはEclipse frameworkである開発フレームワークによって提供されるグラフィカル・ライブラリ(104)、及び含まれるハイパーリンク・セクション(802)をページの左側に表示し、外部参照を右側に表示するように、レイアウトを変更するための生成プログラムのカスタマイズ(106)の入力としてデータ・メタモデルの図7のインスタンス(700)を用いる、好ましい実施形態に従って生成されたアプリケーション・エディタの一例(800)を示す。
全てのページは、ノートブック型の表示(803)を用いてエンドユーザが選択することが可能である。エディタ内に表示された第1のページは、生成プロセス中に検索されたルート・クラス(500)に基づいて作成され、編集されることになる全てのプロジェクトのクラス属性を含む編集セクション(801)を表示する。
好ましい実施形態に従った、本発明によって生成されるアプリケーション・エディタを構成し、使用するための環境を示す。 生成プログラム及び生成されたエディタの高レベルのコンポーネントを示す。 好ましい実施形態の方法を用いて実施されるような、生成されたアプリケーション・エディタのページ(300)のレイアウト詳細及び構成を示す。 好ましい実施形態に従った、アプリケーション・エディタのページを生成する方法の一般的なフローチャートである。 本発明の好ましい実施形態の生成プロセス中に、データ・メタモデルの「ルート・クラス」を検索するのに用いられる方法を詳述するフローチャートである。 好ましい実施形態に従った、3つのタイプのセクションを含むページを作成する方法の一般的なフローチャートである。 好ましい実施形態に従った、本発明による入力として用いられる統一モデリング言語(UML)を用いて表されたデータ・メタモデルの一例を示す。 好ましい実施形態に従って生成されたアプリケーション・データ・エディタのスクリーン・ショットの一例を示す。

Claims (8)

  1. アプリケーションの永続データを編集するための、コンピュータのグラフィカル・ユーザ・インターフェースを介して実行されるエディタを生成する方法であって、前記永続データは、クラス、それらの属性、及びクラス間の関係の階層的組織を定義するモデリング言語を用いてデータ・オブジェクト・モデル内に記述されて格納され、
    前記モデルを読み取り、いずれかの他のクラスによって参照されない前記モデル内の唯一のクラスであるルート・クラスを検索するステップと、
    前記ルート・クラスから開始し、前記関係を用いて各々のクラスを読み取るステップと、
    インターフェースではない読み取られたクラスいわゆる現在のクラス毎に、前記現在のクラスの全てのインスタンスを編集するためにページを作成するステップと、
    各々の現在のクラスとその作成されたページとの間のリンクを格納するステップと、
    各々の現在のページ内に、前記現在のクラスの属性を編集するフィールドを含む第1のセクションと、それらが編集されるときに前記現在のクラスの全てのインスタンスを列挙する第2のセクションとを作成し、前記格納されたリンクを使用して、前記現在のクラスにおいて参照された前記クラスのクラス・ページ・インスタンスに向けたポインタを表示する第3のセクションを作成するステップとを含み、
    これら複数のステップの全てをコンピュータに実行させる、
    方法。
  2. クラス毎にページを作成する前記ステップは、エディタのユーザに、前記ページの作成のグラフィカル表示を変更する可能性を提供するステップをさらに含む、請求項1に記載の方法。
  3. 前記格納されたリンクを用いて、前記モデルのいずれかのクラスの前記ページにアクセスするためのポインタを表示するためのステップをさらに含む、請求項1又は請求項2に記載の方法。
  4. ポインタを表示するための前記ステップは、上にクラス名を有するタブをスクリーン上に表示するステップを含み、各々のタブは、対応するクラスの前記ページの方向にユーザを導く、請求項3に記載の方法。
  5. 第1のセクションを作成する前記ステップは、前記モデルの前記階層内の前記現在のクラスよりも上位にある全ての先祖クラスの属性によって前記現在のクラスの属性を編集するためのフィールドをグループ化するステップを含む、請求項1乃至請求項4のいずれか1項に記載の方法。
  6. ページを作成する前記ステップは、前記現在のクラスが帰属するいずれかの抽象クラスを探すステップを含み、
    抽象クラスが見つかった場合、前記抽象クラスが前記現在のクラスになり、
    前記現在のクラスの前記ページ内に第1のセクションを作成する前記ステップは、前記抽象クラスの属性及び全ての子クラスの属性を編集するためのフィールドをグループ化するステップを含む、請求項1乃至請求項5のいずれか1項に記載の方法。
  7. コンピュータに、請求項1乃至請求項6のいずれか1項に記載の方法に係るステップを実行させるためのコンピュータ・プログラム。
  8. 請求項1乃至請求項6のいずれか1項に記載の前記方法を実行するように適合された手段を含むシステム。
JP2009507009A 2006-04-27 2007-03-13 アプリケーション・データ・エディタを生成するための方法及びシステム Active JP5102828B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06300414.7 2006-04-27
EP06300414 2006-04-27
PCT/EP2007/052350 WO2007124977A2 (en) 2006-04-27 2007-03-13 A method and system for generating application data editors

Publications (2)

Publication Number Publication Date
JP2009534766A JP2009534766A (ja) 2009-09-24
JP5102828B2 true JP5102828B2 (ja) 2012-12-19

Family

ID=38529948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009507009A Active JP5102828B2 (ja) 2006-04-27 2007-03-13 アプリケーション・データ・エディタを生成するための方法及びシステム

Country Status (7)

Country Link
US (1) US8566782B2 (ja)
EP (1) EP2013713A2 (ja)
JP (1) JP5102828B2 (ja)
CN (1) CN101410798B (ja)
CA (1) CA2648471A1 (ja)
TW (1) TW200816047A (ja)
WO (1) WO2007124977A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776015B1 (en) * 2007-02-08 2014-07-08 The Mathworks, Inc. Pattern modeling methods and systems
US8336025B1 (en) 2007-02-08 2012-12-18 The Mathworks, Inc. Pattern modeling methods and systems
US20110022603A1 (en) * 2009-07-24 2011-01-27 Ensequence, Inc. Method and system for authoring and distributing multiple application versions based on audience qualifiers
US8667460B2 (en) * 2009-07-24 2014-03-04 Ensequence, Inc. Method for application authoring employing a child application template derived from a master application template
US8307020B2 (en) 2009-07-24 2012-11-06 Ensequence, Inc. Method for distributing a certified application employing a pre-certified master application template
US8671124B2 (en) * 2009-07-24 2014-03-11 Ensequence, Inc. Method for application authoring employing a pre-certified master application template
US8682945B2 (en) * 2009-07-24 2014-03-25 Ensequence, Inc. Method and system for authoring multiple application versions based on audience qualifiers
US9116708B2 (en) * 2010-03-05 2015-08-25 Nec Corporation Program creation support apparatus, program, and information system
CN101853167A (zh) * 2010-05-28 2010-10-06 北京中恒博瑞数字电力科技有限公司 基于soa、rcp的动态对象编辑的方法
CN102368217A (zh) * 2011-10-20 2012-03-07 镇江睿泰信息科技有限公司 一种元数据驱动的rest风格应用开发方法与系统
CN103207869A (zh) * 2012-01-16 2013-07-17 腾讯科技(深圳)有限公司 一种网页的维护方法、系统和平台
CN103428243A (zh) * 2012-05-21 2013-12-04 阿里巴巴集团控股有限公司 动态网页静态存储的实现方法、设备和系统
US9229693B1 (en) * 2014-05-28 2016-01-05 Amazon Technologies, Inc. Build service for software development projects
CN105278935B (zh) * 2014-06-25 2018-06-22 成都普中软件有限公司 一种构造界面模型的可视界面建模编辑器
US10503482B2 (en) 2014-09-26 2019-12-10 Oracle International Corporation Object mapping using intrinsic persistence metadata and pattern-based rules for mapping transformation
AU2016276284B9 (en) * 2015-06-07 2020-05-21 Wix.Com Ltd System and method for the generation of an adaptive user interface in a website building system
CN105930211B (zh) * 2016-04-14 2020-09-08 腾讯科技(深圳)有限公司 一种应用数据获取的方法以及服务器
US10248385B1 (en) 2017-11-30 2019-04-02 International Business Machines Corporation Extracting mobile application workflow from design files
CN110874523B (zh) * 2018-08-30 2024-02-13 北京国双科技有限公司 富文本编辑器的内外交互方法及装置、处理器、存储介质
US10754667B1 (en) * 2019-03-20 2020-08-25 Yokogawa Electric Corporation System and method of module engineering for an industrial process
CN110764761B (zh) * 2019-10-30 2023-12-29 网易(杭州)网络有限公司 数组可视化编辑方法与装置、电子设备、存储介质
CN111209000B (zh) * 2020-01-08 2024-01-26 网易(杭州)网络有限公司 自定义控件的处理方法、装置、电子设备及存储介质
CN112099792B (zh) * 2020-09-18 2024-02-02 上海逸动医学科技有限公司 一种可视化ui样式设计方法及系统
CN112995191A (zh) * 2021-03-12 2021-06-18 上海卫星工程研究所 一种基于类派生的通用卫星遥控指令生成方法及系统
CN113742018A (zh) * 2021-08-31 2021-12-03 远光软件股份有限公司 档案模型调整方法、计算机装置及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07110763A (ja) * 1993-10-13 1995-04-25 Hitachi Ltd ユーザインタフェース画面編集装置
US5835910A (en) * 1994-11-10 1998-11-10 Cadis, Inc. Method and system for comparing attributes in an object-oriented management system
JPH10232769A (ja) 1997-02-19 1998-09-02 Hitachi Ltd クラス追加支援方法
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US7363578B2 (en) * 2004-06-03 2008-04-22 Microsoft Corporation Method and apparatus for mapping a data model to a user interface model

Also Published As

Publication number Publication date
WO2007124977A3 (en) 2007-12-21
CN101410798B (zh) 2012-11-07
WO2007124977A2 (en) 2007-11-08
TW200816047A (en) 2008-04-01
JP2009534766A (ja) 2009-09-24
EP2013713A2 (en) 2009-01-14
US20090089746A1 (en) 2009-04-02
CN101410798A (zh) 2009-04-15
CA2648471A1 (en) 2007-11-08
US8566782B2 (en) 2013-10-22

Similar Documents

Publication Publication Date Title
JP5102828B2 (ja) アプリケーション・データ・エディタを生成するための方法及びシステム
US7114149B2 (en) Navigation links in generated documentation
US7272819B2 (en) Configuration model for configuring an adapter software component to selectively access software objects and object editor using instance of same
US7644370B2 (en) Method of componentisation of a graphically defined formula
US20030204481A1 (en) Method and system for visually constructing XML schemas using an object-oriented model
US20050138057A1 (en) Data mapping visualization
JP2006107478A (ja) ワークフローを設計するための拡張可能フレームワーク
WO2001082068A1 (en) Methods and systems for identifying dependencies between object-oriented elements
JP2013518321A (ja) パターンベースのユーザインターフェース
JP2007011507A (ja) プログラムツリーの表示方法、およびプログラム生成システム
WO2001082232A1 (en) Navigation links in generated documentation
Ng et al. A visual approach to distributed programming
Phillips Lean Cuisine+: an executable graphical notation for describing direct manipulation interfaces
JP2000020298A (ja) ソフトウェア開発支援装置
Anguish et al. Cocoa programming
Rauschmayer et al. Tube: Interactive model-integrated object-oriented programming.
KR20050062005A (ko) Mof 메타 모델과 사용자 요구 사항에 기반한다이어그램 모델링 도구의 자동 생성 장치 및 방법
WO2001082070A1 (en) Methods and systems for finding and displaying linked objects
Chen et al. Extraction of BPEL Process Fragments in Eclipse BPEL Designer
Schmeling et al. Student Research Project
Rauschmayer et al. Tube: a prototype-based programming environment
Feng et al. Multi-device User Interface Development with Composition-oriented User Interface Design Patterns
Björklund et al. Code generation for embedded systems
Magee et al. A VISUAL APPROACH TO DISTRIBUTED PROGRAMMING
Rauschmayer et al. Tube—structure-orientation in a prototype-based programming environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

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

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

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5102828

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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