JP2003505785A - 階層構造制御情報エディタ - Google Patents
階層構造制御情報エディタInfo
- Publication number
- JP2003505785A JP2003505785A JP2001513029A JP2001513029A JP2003505785A JP 2003505785 A JP2003505785 A JP 2003505785A JP 2001513029 A JP2001513029 A JP 2001513029A JP 2001513029 A JP2001513029 A JP 2001513029A JP 2003505785 A JP2003505785 A JP 2003505785A
- Authority
- JP
- Japan
- Prior art keywords
- context
- data
- parameter
- specifying
- hierarchical
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
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)
- Document Processing Apparatus (AREA)
Abstract
Description
ートを目標言語で編集するためのシステムおよび方法に関する。さらに詳しくは
、本発明は、プログラマがアプリケーションドメインによって提供される文脈メ
タデータにより目標原始コードをパラメータ化するシステムおよび方法に関する
。彼は、視覚的に明瞭であり、維持が容易であり、かつ完全に首尾一貫したコー
ドの反復ネスティング構造を決定する。
立ち、それは主としてモデルリングツールを用いて行なわれる。複雑なシステム
を構築しながら、ソフトウェアプログラマおよびクライアントは彼らの共通語彙
を容易に設定することができ、それは彼らがシステム要件を効果的に洗練するの
に役立つ。オブジェクト指向技術はまた、特にフレームワークが使用されるとき
に、彼らが容易に拡張可能であるシステムを構築するのに役立つ。
、およびアプリケーションを実行するハードウェアの「物理的実現」から抽象化
されるアプリケーションの事業目的を論理的に叙述するために、プログラマまた
はアナリストによって使用される。
ェアの再使用がいっそう重要になってきていることである。新しいシステムの開
発は高価であり、それらの維持はさらにいっそう高価である。米国国立標準局の
ウィルマ・オズボーン(Wilma Osborne)による最近の研究は、ソ
フトウェアの総費用の60ないし85パーセントが維持のためのものであること
を示唆している(Ware Meyers, Interview with
Wilma Osborne. IEEE Software 5(3): 1
04−105, 1988)。
準反復手法の実現を促進する。一種のテンプレートは、変更が必要な場所に注釈
を付け、共通場所に保存され、何らかの手動的介在によりプログラマによって再
使用される目標原始コードのブロックである。そのブロックの目標コードを作成
したプログラマまたは別のプログラマはその後、適切な行をコピーして彼が作業
しているコード内にペーストし、その特定の使用のために適切な変更を行なうこ
とによって、これらの行を再使用することができる。この方法は、コードの正し
い行をしばしば繰返しコピーすることに加えて、プログラマは全ての適切なコン
ポーネントの名前をそれらの適切な同等物に置換しなければならないので、誤り
を生じやすく、かつ時間を要する。これは、注釈付き原始コードテンプレートに
よるコーディングと呼ばれる。
ドの行から成るテキスト生成テンプレートを使用して、新しいオペレーションま
たはコンポーネントを作成することを可能にする。これらのテキスト生成テンプ
レートは、プログラマがフィルタ変数を用いることによりコードを生成すること
を希望する、選択したコンポーネントを指定するだけでなく、文脈変数によって
パラメータ化された目標原始コードを用いてオペレーションの完全な仕様を定義
することをも可能にする。コンポーネントおよび属性フィルタ変数は、モデリン
グツールからの情報をフィルタリングするため、およびその動的生成文脈を実装
するための選択基準として、コードジェネレータによって使用される。文脈変数
は、コードジェネレータがその動的文脈で見つかった現行コンポーネントまたは
属性に関連付けられる実特性値に置換する、コンポーネントまたは属性特性名を
参照する。
グ言語を用いて開発されたコンポーネントをフレームワークに統合するための生
成時間制御およびカスタマイズを果たすために用いられる。テキスト生成テンプ
レートは、厳格な構文を用いて与えられ、かつ提供されるパラメータ化原始コー
ド内の文脈変数と置換するために原始コードジェネレータにより使用される、プ
ログラマの命令を付けて作成される。例えば、1行のコードは“persist
enceSchema=new PersistenceSchema(“%0
01”);with (&class name)”とすることでき、ここで“
%001”は、ジェネレータによって文脈変数の値、例えば文脈変数“<クラス
名>”が置かれる場所を表わすパラメータ記号である。プログラマは、これらの
記号を用いてテキスト生成テンプレートを作成しなければならない。それぞれ文
脈変数に関連付ける必要のあるパラメータ記号が%001から%999まで2つ
以上ある場合には特に、プログラマがコンポーネントの命名において一貫性を維
持するために、そのようなシンボルのメンタルリストを構築しなければならない
。パラメータ記号は常に同一文脈変数に関連付けられるので、それはパラメータ
化された原始コード内に2回以上現われることができる。そのような記号は、プ
ログラマが非パラメータ化形式で通常行なうようにコードをタイプすることがで
きないという意味で、ユーザフレンドリではない。加えて、これらの記号は、ジ
ェネレータによる適切な解釈を確実にするために、コード行内で定義しなければ
ならない。前の例では、パラメータ記号“%1”をジェネレータの動的文脈内で
見つかる現行クラスに関連付けられる文脈変数の現行値で置換するようにジェネ
レータに指示するために、命令“with (&class name)”を追
加しなければならない。また、コードの特定の部分を、フィルタ変数によって提
供される選択基準をアドレス指定するコンポーネントの属性に対して2回以上繰
り返さなければならない場合、準反復オペレーションを確実にするために、“r
epeatForEach &attribute private inst
ance using (&attribute name; &attrib
ute attributeClassName;”のような種類の命令を含め
なければならない。この場合、コードジェネレータはテンプレートを受け取り、
次いで、どのテンプレートをどのコンポーネントに使用するかを指定するために
定義されたシステムおよびフィルタ変数のモデル宣言を使用して、原始コードに
変換する。
ちrepeatForEach....using...またはwith...
)に頼ってそのような構文を使用する代わりに、プログラマは、パラメータ化さ
れたコードを、所定のプログラミング言語で実装されたアルゴリズムによって実
行される命令の結果と連結することを決定することができる。例えばリンゼー(
Lindsey)の米国特許第5,675,801号に教示されているように、
ソフトウェアは別のオペレーションの結果によりパラメータ化された形の式を解
く。さらに詳しくは、NumericDataItemObjectとして知ら
れ“IdNumber”と呼ばれるC変数を表わすデータ指向オブジェクト用の
C言語の宣言原始コードテンプレートの例では、“int<self VarN
ame>;”のような種類の命令はこの原始コードテンプレートの原始コード断
片部分であり、ジェネレータのための指示は“<self VarName>”
である。この例では、“<“および”>”は、ジェネレータの指示の始めと終り
を示す任意の区切り記号である。この場合、オブジェクト識別子はトークン“s
elf”であり、これはそれ自体を、すなわちその変数名、“IdNumber
”を生成するように要求されるオブジェクトを指す。メッセージ識別子は、オブ
ジェクト“self”に送られるメッセージとなるトークン“varName”
である。このメッセージはオブジェクト“self”に、変数宣言で使用された
ときにそれ自体を表わす文字列を返すように指示する。リンゼーのこの例では、
名前が“IdNumber”であるNumericDataItemObjec
tは、文字列“idNumber”を返す。結果的に得られる目標言語の原始コ
ード断片は“int idNumber”であり、これはC言語原始コード断片
である。
を理解を高めるために原始コードエディタで用いられてきたが、反復的および/
またはネスト文脈ブロックなど、提供される情報の構造を説明するため用いられ
たことはない。例えば、その条件式に異なる色を使用するIf−then−el
se文、条件式の結果に基づいて実行しなければならないその真式、および偽式
など。表示アーチファクトは、各属性が1組の選択基準を満たすたびに同じif
−then−else式が所定のコンポーネントアルゴリズム内で繰り返される
ことを示すために使用されたことはない。
レートを作成することを可能にするエディタを提供することである。
ディタを提供することである。
介在を必要とする原始コードテンプレートを作成するためのエディタを提供する
ことである。
境、コードジェネレータまたはその他などのあらゆる種類の環境で使用できるテ
ンプレート原始コードを編集する要求を満たすテンプレートエディタを提供する
ことである。
ことである。
説明する発明の目的に従って、コンポーネントをベースとする原始コードのテン
プレートを編集するためのシステムを提供する。このシステムは、原始コードを
入力するための文脈エディタ、およびパラメータ化されている場合、生成時にジ
ェネレータによって実特性値と置換されるコンポーネントまたは属性特性名を表
わす文脈変数を含む。原始コードは実際には、相互にネストすることのできる文
脈ブロック内に取り込まれる。それらは固定、条件付き、または反復的文脈ブロ
ックを表わすことができ、その場合、文脈ブロックが生成されるかどうか、およ
びそれが何回発生するかを決定するために、条件式が提供される。
み、表示効果を用いて文脈変数および文脈ブロックを表現することに備える。こ
れらの効果は、とりわけ特殊フォント、変形カーソル動作、または音響効果さえ
も含む。
とも階層構造制御情報の操作に関連する。第1プロセスは、人間のために制御情
報の効果的な作成、変形、および視覚化を可能にする。第2プロセスは、この制
御情報から機械に理解可能なフォーマットへの決定的変換を実現する。
存エディタを提供する。このエディタは、即時現行文脈に適した動作選択を提示
し、それによりユーザの操作プロトコルを簡素化する。エディタは文脈間の関係
および多義性(multiplicity)を理解するので、そのグラフィカル
ユーザインタフェースは、スクリプト言語に頼ることなくブロックの反復性およ
び条件制限を表現する。エディタは、関連文脈の提示規則に従って制御情報を表
示する。提示はバルクテキストと、テキストが存在している構造と、パラメータ
化された要素とを明瞭に区別する。エディタはメタ制御情報であるものを情報と
して表示する方法で効果的に操作する。
ステムを提供する。この方法およびシステムは、階層構造データのパラメータ要
素に関する制御情報を指定し、階層構造データ用のテンプレートを編集し、かつ
データの非パラメータ要素を指定し、文脈パラメータをデータのパラメータ要素
として指定し、少なくとも1つの非パラメータ要素および1つのパラメータ要素
を含む階層構造データの少なくとも1ブロックのためのフィルタリングオプショ
ンを指定し、表示特性を各フィルタリングオプションに関連付け、表示特性を用
いて識別された階層構造データを表示することを含む。
る方法を提供する。
リプトデータに変換するための方法を提供する。この方法は、階層構造データの
パラメータ要素に関する制御情報を指定し、階層構造データ用のテンプレートを
編集し、かつデータの非パラメータ要素を指定し、文脈パラメータをデータのパ
ラメータ要素として指定し、少なくとも1つの非パラメータ要素および1つのパ
ラメータ要素を含む階層構造データの少なくとも1ブロックのためのフィルタリ
ングオプションを指定し、所望の原始コード言語に制御情報、テンプレート、フ
ィルタリングオプション、および文脈パラメータを使用してコードジェネレータ
スクリプトデータを生成することを含む。
な実施形態を示す添付の図面を参照しながら説明しよう。
構造制御情報エディタ(以下、「テンプレートエディタ」という)を作成した。
このテンプレートエディタはエディタを使用して、階層構造およびパラメータ化
コードを表示する。
どのような出力が生成されるかが即座に明瞭になるように、プログラマが生成出
力に視覚的に近い形で生成テンプレートを作成しかつ編集することを可能にする
ことである。これを可能にするために、テンプレートエディタは、プログラマが
テキスト(24)をタイプし、文脈変数(25)を挿入し、または文脈ブロック
(23)を挿入することのできるグラフィカル文脈エディタ(図2)を提供する
。ユーザ入力テキストと様々な種類の文脈変数(25)または文脈ブロック(2
3)との間の違いは、テキスト/背景色、カーソル/テキスト動作などのような
様々な視覚的効果によって示される(図1の文脈提示規則31を参照されたい)
。文脈変数(25)は変更できない。それらは読出し専用文字列である。文脈変
数文字列に対して可能な唯一の動作は、それらを置換または削除することである
。
文脈ブロック23、文脈変数25、およびテキスト文字列24である。以下の本
文は、グラフィカルユーザインタフェース(GUI)の編集およびスクリプト言
語の変換の両方に関連するそれらの役割を説明する。
の文字)を表わす。文脈ブロックによってテキストの外観は変化する。加えて、
各文字はそれ自体の編集ルーチンの組を持つ。これらのルーチンは、プログラマ
がその文字を変更しようとするときに実行される。テキスト文字列24の各文字
はまた、それ自体の振舞い特性の組をも持つ。文字の振舞い特性は多くの連続文
字の実行に対してそれ自体繰り返す傾向があるので、コンピュータメモリを節約
するために疎表現が使用される。
れ、したがってそのオブジェクトの様々な特性を表わすことができる。テンプレ
ートエディタ20では、文脈変数25の各文字はテキスト文字列24のそれと同
一構造を持つ。テンプレートエディタ20は、表現の編集を許可しないことによ
って、文脈変数25の完全性を維持する。
び/またはその他のネスト文脈ブロック23を含む。文脈ブロック23の役割は
、それに対して設定された条件に従ってその内容を繰返し、または条件付きで生
成することである。繰り返すことが必要な文脈ブロック23の場合、プログラマ
は、繰返しの回数を決定するために必要な選択基準(すなわち条件およびフィル
タ変数)を提供しなければならない。プログラマは、基準の使用を通して繰返し
ごとの文脈ブロック23の順序付けを制御する。
の要件が満たされない限り、ブロックは生成されない。文脈ブロック23は、選
択基準に整合する各オブジェクトに対してインスタンス生成される。
の3つのフォーマットを持つ。条件付き文脈ブロック(33)は、そのフィルタ
(すなわち基準)によって捕獲された各オブジェクトに対して一意に生成される
。固定文脈ブロック(23)は、その条件が常に真である条件付き文脈ブロック
(33)のようなものである。しかし、反復文脈ブロック(32)は、文脈ブロ
ック条件(例えば、クラスの全ての目標役割)によって捕獲された各項目ごとに
オブジェクト内で繰返し生成される。反復文脈ブロック(32)はまた、ブロッ
クの各繰返しの間に、1つのコンマとその後に続く1つの空白を挿入するなど、
ユーザ定義デリミタテキストを挿入することも可能である。
列オブジェクトおよび文字列と同一サイズの配列オブジェクトから成る。テキス
トの配列オブジェクトは、テキストの振舞い特性を表わす。文字列オブジェクト
内の各文字ごとに、色、フォントサイズ、太字またはイタリック体特性など、文
字の図形表示のための情報を含むオブジェクトが対応する配列位置にある。この
振舞い特性はまた、それが文脈変数であるか、それともテキスト文字列24であ
るかにかかわらず、文字の型をも格納する。これらの特性は振舞い特性を含み、
スクリーンのテキストをテンプレートエディタのクラス図のオブジェクトにリン
クする。
マットへの変換について、今から説明する。クラス図(図1)に示すように、生
成テンプレートは一連の文脈ブロック23である。文脈ブロックは一連のテキス
ト文字列24、文脈変数25、および文脈ブロック23を含む。
ットでそのまま表わされる。
置に配置される。これは、スクリプト言語フォーマットでは「%」が前に付く番
号によって示される(例:%001)。文脈変数の値は、それが使用される文脈
によって異なる。
てスクリプト言語フォーマットで書かれる。反復文脈ブロックの場合、スクリプ
ト言語フォーマットはブロックの反復を表わすように書かれる。
う。この例は、いかにして文脈階層(図1参照)および階層の各レベルの幾つか
の提示規則(表1参照)を定義し、表2に定義する制御情報データを使用し、J
avaメソッド(図2)を表わすテンプレートを定義し、テンプレートを生成し
てスクリプトを得(図3)、「Source Code Template G
enerator Associated with Component D
evelopment」と称する公開されたPCT国際公開第WO 00/22
517号のシステムを使用してこのスクリプトを実行するかを示す(図4)。
な文脈を説明する。この例で使用する全てのオブジェクトは階層のレベルの1つ
に属し、そのレベルに関連付けられる文脈特性を獲得する。
、下位文脈、およびオブジェクトに利用可能な特性をも定義する。この定義によ
り、テンプレートエディタ(20)は異なる文脈ブロック(23)のサブメニュ
ー、フォント、および色を表示することが可能になる。
デルからの)を、表2に示す。
とにインスタンス生成される。
このテンプレートに対応する。このインスタンスは、クラス文脈を参照する文脈
ブロックを含む。この文脈ブロックは、次のものを含む。
情報(バルクテキスト、文脈変数、または従属ブロック)は1クラスごとに1回
インスタンス生成される。 35.文脈変数がある。非インスタンス生成形では、それらは「<」と「>」の
中に特性の名前として現われる。 36.このブロックは属性ごとにインスタンス生成される。親ブロック(con
taining block)はクラスごとにインスタンス生成されるので、こ
のブロックはクラスのインスタンス生成のたびに属性の数だけ繰り返すことがで
きる。実際にはこの数は零またはそれ以上の任意の数とすることができる。(ク
ラス内の属性の数が零の場合には、このブロックはスキップされる。) 37.これらの文脈変数は、1クラス1属性ごとに1回インスタンス生成される
。
たテンプレートに渡すことによって生成される。
。
ンプレートに導入されることになる。それはテンプレート名、フィルタ(この場
合、フィルタは「全クラス」である)、およびテンプレート特性(この場合、テ
ンプレートはJavaオペレーションを生成する)を提供する。
れる。スクリプト文脈では、文脈ブロックは次のフォーマットに埋め込まれる。
テキスト文字列は、それがあたかもスクリプトに現われているように生成され、
したがって第1テキスト文字列はそれ自体次のように書く。
数はオブジェクトへの参照を書かなければならない。スクリプトでは、パラメー
タは文脈変数が出現する順序に従って参照される。この順序は、その文脈変数の
リストを登録し、かつ各変数に数字を帰属させることによってそれらを順序付け
る、文脈ブロックによって決定される。
への呼出しを実行して、その出現の順序を要求する。
次のスクリプトテキストが得られる。
ればならないことを理解する。ブロックが反復性ではなく、少なくとも1つの文
脈変数を含む場合、次のように書かれる。
れたであろう。
uteの後に“private”と書かれたであろう。
する。したがってブロックは
ように書く。
を閉じ、次いで文脈ブロックはそれ自体用の括弧を閉じる。
、現行生成テンプレートに属する追加のブロックに対して繰返し続く。
出される。下線付きのテキストは文脈変数に関連し、他のテキストはスクリプト
言語に関連する構造化コードである。
クテキスト、文脈変数または従属ブロックは1クラスごとに1回インスタンス生
成される。 文脈変数76および77は1クラスごとに1回置換される。 76.置換された文脈変数を受容する位置 77.文脈変数置換を駆動する命令 78.このブロックは属性ごとにインスタンス生成される。親ブロックはクラス
ごとにインスタンス生成されるので、このブロックはクラスのインスタンス生成
のたびに、属性の数だけ繰り返すことができる。実際にはこの数は零またはそれ
以上の任意の数とすることができる。(クラス内の属性の数が零の場合には、こ
のブロックはスキップされる。) 文脈変数79および80は、1クラス1属性ごとに1回インスタンス生成される
。 79.置換した文脈変数を受容する位置 80.文脈変数の置換を駆動する命令
ドは、図2に示したテンプレートから生成できるコードの唯一のインスタンスで
ある。図2に示したユーザインタフェースは全ての可能なインスタンスを暗黙に
管理する。 次のことに注意する必要がある。 81.クラスごとに生成されるコードのセクション 82.「cityinfo」に置換される文脈変数<クラス名> 83.インスタンスからのデータに置換される文脈変数。置換がどのように行な
われたかについては、表2および図2を参照されたい。 属性領域ごとに 84.国属性から生成される文脈ブロック 85.人口属性から生成される文脈ブロック 86.名前属性から生成される文脈ブロック
よび図7の流れ図を用いて説明しよう。
ータを生成するためのシステムのブロック図である。エディタ120はテンプレ
ートを入力し、かつ変更するために使用される。エディタは文脈デファイナ(c
ontent definer)121を用いて文脈変数およびパラメータ要素
を導入する。次に、文脈デファイナ121は階層情報デファイナ122を用いて
、テンプレートの文脈に関する情報を得る。この文脈は、例えばUMLモデリン
グツールから得ることができる。エディタ120はまたフィルタデファイナ12
3を使用して、原始コードの生成のためのフィルタオプションを定義する。文脈
デファイナ121はまた文脈識別子125とやり取りして、表示特性124を各
文脈変数に割り当てる。最後に、エディタ120はテンプレートを表示のために
ディスプレイ126に送る。ディスプレイ126は表示特性124を用いて、テ
ンプレートの各パラメータ要素および非パラメータ要素を表示する。任意選択的
に、システムは、エディタ120のテンプレート、フィルタデファイナオプショ
ン123、および文脈デファイナ121の文脈パラメータを使用してコードジェ
ネレータスクリプトデータを生成する、コードジェネレータスクリプトジェネレ
ータ127をも有する。
。階層情報が指定される130。テンプレート131が編集される。文脈パラメ
ータが指定される132。フィルタリングオプションも指定される133。表示
特性が文脈パラメータに関連付けられる134。最後に、データがユーザ135
に対して表示される135。
指定される140。テンプレートが編集される141。文脈パラメータが指定さ
れる142。フィルタリングオプションも指定される143。次いで、テンプレ
ート、文脈パラメータ、およびフィルタリングオプションを使用して、コードジ
ェネレータスクリプトデータが生成される145。
レータのための全ての関連情報を含み、かつコードジェネレータが目標言語で原
始コードを生成することを可能にする単一ファイルであることが理解されるが、
コードジェネレータスクリプトデータは、コードジェネレータによって使用され
るときにそれが目標言語の原始コードを生成することを可能にする、2つ以上の
データファイルを含むことができることを理解されたい。コードジェネレータス
クリプトデータは、文脈独立型であり生成されるメソッドおよびクラスを含む第
1ファイル、およびモデルでの詳細など文脈依存情報を含むことのできる第2フ
ァイルを含むことができる。コードジェネレータスクリプトデータはまた、文脈
独立データのみを含むことができ、コードジェネレータは別のソースに頼って文
脈従属情報を提供する。
て作成されるユーザインタフェースの特定の例を今から示す。
は、オペレーション41の可視度、継承43、およびオペレーションが静的であ
るかどうかと共に示さなければならない。リターンの型は、そのクラス名44お
よびそのパッケージ45によって定義しなければならない。オペレーションの名
前は46にタイプされる。情報が完全であるときに、OK39ボタンを押す。
持つテンプレートエディタ50を示す。テキストは、組織者(organize
r)によって管理されるので、直接変更することができない。変更を行なうため
に、シグネチャの文字列をダブルクリックすることができ、オペレーションシグ
ネチャツールが再び現われる。このテキストがシグネチャツールから作成された
ことを示すために、それは異なる可視態様で現われる。図では、図面が白黒なの
で、フォントの色および背景の色はグレーの陰影になっている。しかし、テンプ
レートに現われるテキストの性質の相違を増強するために、任意の視覚的特性を
使用することができる。例えばシグネチャは、ダブルクリックするだけでプログ
ラマがその文字列に含まれるものを変えることができることを意味する、青を背
景にして現われることができる。空間53は、オペレーションをコード化するた
めに利用可能である。それは、プログラマによって埋めることができることを示
すために異なる色の背景で表わされる。例えばプログラマに視覚障害がある場合
、スクリーンの視覚的効果を音に置き換えることができる。実際、コードの何ら
かの部分が異なる特性を持つことを示すものがある限り、何を使用してもよい。
クラスフィルタ51は、どのコンポーネント(単数または複数)のためにこのグ
ラフィカル生成テンプレートが生成されるかを決定するために指定される。(こ
れらのステップは図には示されない。)
性名60などの文脈変数59を注釈に加えることができる。図11は、プログラ
マがタイプした注釈65および幾つかの目標原始コードの完了を示す。図12に
示すように、図10で説明したプロセスを使用することにより、文脈変数「属性
名」が命令のコード71に追加された。
る背景色で提示される。注釈96があり、オペレーションは97でコード化され
る。オペレーションのコードの一部をコンポーネントの一部または全ての属性に
対して繰り返す必要がある場合、属性レベル98を入力してループを作成するこ
とができる。図14は、コードのループ部分に異なる背景色103を使用して、
一部の属性に対して繰り返される1行のコード104を示す。再び、例えば属性
名など、属性レベルの文脈変数109を装入することができる。最後に、図16
でテンプレートは完全に作成される。このテンプレートが保存された場合、前述
したPCT公開WO 00/22517内のものなどのコードジェネレータはテ
ンプレートおよびモデル宣言を使用して、原子コードを作成する。
、「Source Code Template Generator Ass
ociated with Component Development」と
称する、本願と同一人に譲渡された同時係属PCT国際出願に記載されているも
のなどの生成ツールでコードを生成するためにテンプレートのコードの行を生成
することによって、開発者からスクリプト言語を隠すことであろう。その場合、
テンプレートは、生成テンプレートの選択基準を満たしかつモデリングツールに
または統合開発環境に見られるコンポーネントに対して、準反復性または反復性
原始コードを生成するために使用される。
グラマは、生成されるときに彼が希望するメソッドをタイプするだけでよい。ク
ラスの名前を書く代わりに、彼は文脈エディタのクラス名を書きたい場所で右マ
ウスをクリックし、全ての可能な文脈変数のリストから彼が表示したいものを選
択することができる。この場合、彼は「<クラス名>」を選択する。先行技術の
セクションで取り上げた例を参照すると、新しいコード行は次のようになる。
び選択されると、エディタによって自動的に導入される。
い場合、例えばコンポーネント、コンポーネントサブクラス、スーパークラス、
または属性特性のようにループ内に参加する項目の選択基準を決定するフィルタ
変数を使用して、ループを作成しなければならない。前の例では、プログラマは
、全ての属性を網羅するために、このループの命令を定義しなければならない。
新しいテンプレートエディタでは、全ての属性に緊密に関連付けられるブロック
文脈が、視覚的特性によって識別される。
、当然、文脈変数を右マウスのクリックによって導入しながら、コードの行が打
ち込まれる。エディタは、これらの行が全ての属性に複製されることを知ってい
るので、右マウスクリックによるメニューからの文脈変数の選択は、前のメニュ
ーの場合とは異なる。これらの文脈変数は全てが同一カテゴリの文脈変数に属す
るわけではない。例えば、文脈変数「<クラス名>」は、現行コンポーネントの
属性レベルで繰り返す反復文脈変数内、またはジェネレータの動的文脈に見られ
る現行クラスの現行属性に関連付けられる所定の外部特性名で繰り返す内部文脈
ブロック内で利用可能である。それは、ジェネレータが適正値を得るために適正
レベルまで外部レベルを再帰的に要求するからである。ループは常に視覚的特性
によって識別され、それはこのプログラミングの態様を強化する。属性レベルで
コード化する場合でも、例えばクラスを参照する文脈変数を挿入することが可能
であることに気付くことが重要である。プログラマは属性レベルで必要な全ての
オペレーションを全ての文脈変数を用いてコード化できるので、これはより大き
い柔軟性を可能にする。
きる。例えばテンプレートは、再使用に利用可能なコード行のパーソナルライブ
ラリまたはネットワークライブラリを作成するために使用することができる。そ
の場合、テンプレートはすでにパラメータ化されているので、プログラマは、そ
れらを彼または彼女のプロジェクトで使用するために、コード行内で何も変更す
る必要がない。この方法は、プログラマのかなりの量の作業を節約する。
今まで、HTML開発者は、正しい情報に対するポインタまたはトークンを使用
してウェブページをコード化しなければならなかった。彼らは、ページの提示を
管理しかつサーバのデータベース内の適正な情報にアクセスするためのコードを
含む、HTMLコードを導入する。再び、彼のウェブページ編集ツール内に挿入
されたテンプレートエディタは、このプログラマが、データベースからデータに
アクセスするために必要なコードについて心配することなく、ウェブページの全
ての視覚的態様を作成することを可能にする。プログラマは、伝統的なHTML
言語を用いてウェブページをコード化し、特定のページに特定的なコードを生成
する必要がある場合には、データベースから必要な情報の記載を反映する文脈変
数を追加することができる。例えば、顧客にその会計勘定にアクセスさせるペー
ジを作成するときに、プログラマはテンプレートエディタを使用して1つのHT
MLテンプレートを作成し、実際の勘定のための<会計勘定>などパラメータ化
されたコンポーネントを使用することができる。このコードを生成するときに、
ジェネレータは会計勘定を全ての顧客の正しい金額と個別に置換する。次いでウ
ェブページは、プログラマの側における最小限のプログラミングによる会計勘定
を除き、ビューアと全く同じように表示される。本発明は、この環境で発明の本
質を変形することなく使用することのできるグラフィカルユーザインスタンスを
提供する。
コードからテンプレートを導出することを可能にする。プログラマは、パラメー
タ化された構文でコードを書く必要がない。彼はその原始コードをファイルに格
納する。このコードを再使用できると認識したときに、彼はこのコードがどのよ
うな場合に、どのコンポーネントと共に、どのフレームワーク内で使用されたか
をジェネレータに指定することができる。ジェネレータは、そのときにモデル化
されたシステムの全てのコンポーネントおよび要素間の関係を知り、コードがど
のように開発されたかについての情報を抽出することができる。モデルからクラ
スおよび属性の名前が何であるかを知り、準反復ブロックのコードを認識して、
エディタは原ファイルをテンプレートのためのパラメータ化原始コードに変換す
ることができ、それを承認のためにプログラマに表示するか、または自動的に生
成して保存することができる。次いで、ジェネレータはこのコードを使用して、
新しいアプリケーションのための生成コードを生成することができる。プログラ
マは実際のパラメータ化コードを書く必要がない。
ラメータ化されたメーリングリストなどのテキストファイルを生成するために、
ワードプロセッサアプリケーションに組み込まれたテンプレートエディタを使用
して、テンプレートを生成することができる。
情報を入手できる限り、ほとんどどんなものでも生成するために使用することが
できる。拡張可能マークアップ言語(XML)テンプレートエディタを使用する
ことができる。XMLプロトコルをテンプレートエディタによって使用して、生
成しなければならないものについての情報を抽出することができる。XML文書
型定義(dtd)は、テンプレートエディタが文脈変数として使用するメタデー
タを定義するために使用することができ、XMLdtd木構造定義は、異なるレ
ベルのパラメータ化原始テキストを知るために使用する(つまり、互換可能なX
ML文書の各ネストレベルで適正なフィルタ変数を定義するために使用する)こ
とができる。モデリングツールを用いて作成されたモデル宣言の代わりに、XM
Lで書かれたデータ時間定義(dtd)ファイルを使用することができる。その
場合、XMLdtdは、処理すべきデータを記述するするので、コードの生成に
必要なモデル宣言にとって代わる。2つのファイルが同一dtdファイルを使用
する場合、このデータの編成は同一であるので、それらのデータファイルは交換
することができ、そのためにテンプレートエディタは同一振舞いを持つ。
形が明らかであろうということは理解されるであろう。上記の説明および添付の
図面は、限定的な意味としてではなく、発明の例証と受け取るべきである。
ある。
テップの流れ図である。
Claims (18)
- 【請求項1】 階層構造データを表示するためのシステムであって、 前記階層構造データのパラメータ要素に関する階層情報を指定するための階層
情報デファイナと、 前記階層構造化データ用のテンプレートを編集し、前記データの非パラメータ
要素を指定するためのエディタと、 文脈パラメータを前記データのパラメータ要素として指定するための文脈デフ
ァイナと、 表示特性を各々の前記文脈パラメータに関連付けるための文脈識別子と、 少なくとも1つの前記非パラメータ要素および少なくとも1つの前記パラメー
タ要素を含む前記階層構造化データの少なくとも1ブロックのためにフィルタリ
ングオプションを指定するためのフィルタデファイナと、 前記表示特性を使用して識別される前記階層構造化データを表示するためのデ
ィスプレイと を含むシステム。 - 【請求項2】 前記表示特性がフォントフォーマットである、請求項1に記
載のシステム。 - 【請求項3】 前記表示特性が背景色である、請求項1および2の一項に記
載のシステム。 - 【請求項4】 階層構造化データの前記テンプレートがコンポーネントをベ
ースとする原始コードを含む、請求項1、2、および3の一項に記載のシステム
。 - 【請求項5】 前記階層構造化データの前記少なくとも1つのブロックが固
定、条件付き、または反復的コードブロックの1つである、請求項1、2、3、
および4の一項に記載のシステム。 - 【請求項6】 前記階層情報デファイナが統合モデリング言語のモデリング
アプリケーションからの階層情報を使用する、請求項1、2、3、4、および5
の一項に記載のシステム。 - 【請求項7】 階層構造データを表示するための方法であって、 前記階層構造データのパラメータ要素に関する階層情報を指定するステップと
、 前記階層構造化データ用のテンプレートを編集し、前記データの非パラメータ
要素を指定するステップと、 文脈パラメータを前記データのパラメータ要素として指定するステップと、 表示特性を各々の前記文脈パラメータに関連付けるステップと、 少なくとも1つの前記非パラメータ要素および少なくとも1つの前記パラメー
タ要素を含む前記階層構造化データの少なくとも1ブロックのためにフィルタリ
ングオプションを指定するステップと、 前記表示特性を使用して識別される前記階層構造化データを表示するステップ
と を含む方法。 - 【請求項8】 前記階層構造化データ用のテンプレートを編集する前記ステ
ップが、コードをテキストボックスに挿入することを含む、請求項7に記載の方
法。 - 【請求項9】 文脈パラメータを指定する前記ステップが、文脈パラメータ
デファイナを使用して前記パラメータ要素のパラメータ特性を決定すること、お
よび前記文脈パラメータの記号表現を前記データに挿入することを含む、請求項
7および8の一項に記載の方法。 - 【請求項10】 前記文脈パラメータデファイナを使用するステップが、前
記階層情報から前記データに関する文脈依存情報を得ること、および指定するた
めに利用可能な文脈パラメータのリストを提供することを含む、請求項9に記載
の方法。 - 【請求項11】 階層情報を指定する前記ステップが、統合モデリング言語
モデリングアプリケーションを使用して前記階層情報を指定することを含む、請
求項7、8、9、および10の一項に記載の方法。 - 【請求項12】 前記表示特性がフォントフォーマットである、請求項7、
8、9、10、および11の一項に記載の方法。 - 【請求項13】 階層構造データをコードジェネレータスクリプトデータに
変換するための方法であって、 前記階層構造データのパラメータ要素に関する階層情報を指定するステップと
、 前記階層構造化データ用のテンプレートを編集し、前記データの非パラメータ
要素を指定するステップと、 文脈パラメータを前記データのパラメータ要素として指定するステップと、 少なくとも1つの前記非パラメータ要素および少なくとも1つの前記パラメー
タ要素を含む前記階層構造化データの少なくとも1ブロックのためにフィルタリ
ングオプションを指定するステップと、 所望の原始コード言語に前記階層情報、前記テンプレート、前記フィルタリン
グオプション、および前記文脈パラメータを使用して、コードジェネレータスク
リプトデータを生成するステップと を含む方法。 - 【請求項14】 前記要素に関連付けられる原始コード式を含む変換データ
を指定するステップをさらに含む、請求項13に記載の方法。 - 【請求項15】 前記コードジェネレータスクリプトデータがコードジェネ
レータによって使用されて、前記所望の原始コード言語による反復的、ネストさ
れた、および準反復的原始コードのうちの少なくとも1つを含む原始コードを生
成する、請求項13および14の一項に記載の方法。 - 【請求項16】 階層構造データをコードジェネレータスクリプトデータに
変換するためのシステムであって、 前記階層構造データのパラメータ要素に関する階層情報を指定するための階層
情報デファイナと、 前記階層構造化データ用のテンプレートを編集し、前記データの非パラメータ
要素を指定するためのエディタと、 文脈パラメータを前記データのパラメータ要素として指定するための文脈デフ
ァイナと、 少なくとも1つの前記非パラメータ要素および少なくとも1つの前記パラメー
タ要素を含む前記階層構造化データの少なくとも1ブロックのためにフィルタリ
ングオプションを指定するためのフィルタデファイナと、 所望の原始コード言語に前記階層情報、前記テンプレート、前記フィルタリン
グオプション、および前記文脈パラメータを使用して、コードジェネレータスク
リプトデータを生成するためのスクリプトジェネレータと を含むシステム。 - 【請求項17】 前記要素に関連付けられる原始コード式を含む変換データ
を指定するための変換データデファイナをさらに含む、請求項16に記載のシス
テム。 - 【請求項18】 前記コードジェネレータスクリプトデータがコードジェネ
レータによって使用されて、前記所望の原始コード言語による反復的、ネストさ
れた、および準反復的原始コードのうちの少なくとも1つを含む原始コードを生
成する、請求項16および17の一項に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14520799P | 1999-07-23 | 1999-07-23 | |
US60/145,207 | 1999-07-23 | ||
PCT/CA2000/000841 WO2001008002A2 (en) | 1999-07-23 | 2000-07-24 | Hierarchically structured control information editor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003505785A true JP2003505785A (ja) | 2003-02-12 |
Family
ID=22512058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001513029A Pending JP2003505785A (ja) | 1999-07-23 | 2000-07-24 | 階層構造制御情報エディタ |
Country Status (10)
Country | Link |
---|---|
EP (1) | EP1208426A2 (ja) |
JP (1) | JP2003505785A (ja) |
CN (1) | CN1148652C (ja) |
AU (1) | AU6144000A (ja) |
BR (1) | BR0012706A (ja) |
CA (1) | CA2377945A1 (ja) |
HK (1) | HK1045896A1 (ja) |
IL (1) | IL147665A0 (ja) |
MX (1) | MXPA02000850A (ja) |
WO (1) | WO2001008002A2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9521209B2 (en) | 2002-11-06 | 2016-12-13 | Code Valley Corp Pty Ltd | Code generation |
US8832178B2 (en) | 2002-11-06 | 2014-09-09 | Noel William Lovisa | Service implementation |
EP2386946B1 (en) | 2004-05-20 | 2020-06-10 | Code Valley Corp Pty Ltd | Code generation techniques using components in a distributed system |
AU2005245983B2 (en) * | 2004-05-20 | 2011-07-07 | Code Valley Corp Pty Ltd | Code generation techniques |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7456832B1 (en) * | 1989-05-15 | 2008-11-25 | International Business Machines Corporation | Object database-driven interactive shell for a data processing system |
US5603018A (en) * | 1991-07-15 | 1997-02-11 | Mitsubishi Denki Kabushiki Kaisha | Program developing system allowing a specification definition to be represented by a plurality of different graphical, non-procedural representation formats |
EP0897148A1 (en) * | 1997-08-14 | 1999-02-17 | International Business Machines Corporation | Method of error handling in a framework |
US6226783B1 (en) * | 1998-03-16 | 2001-05-01 | Acuity Imaging, Llc | Object oriented method of structuring a software step program |
-
2000
- 2000-07-24 IL IL14766500A patent/IL147665A0/xx unknown
- 2000-07-24 WO PCT/CA2000/000841 patent/WO2001008002A2/en not_active Application Discontinuation
- 2000-07-24 CA CA002377945A patent/CA2377945A1/en not_active Abandoned
- 2000-07-24 EP EP00947719A patent/EP1208426A2/en not_active Withdrawn
- 2000-07-24 CN CNB008107572A patent/CN1148652C/zh not_active Expired - Fee Related
- 2000-07-24 JP JP2001513029A patent/JP2003505785A/ja active Pending
- 2000-07-24 BR BR0012706-0A patent/BR0012706A/pt not_active IP Right Cessation
- 2000-07-24 MX MXPA02000850A patent/MXPA02000850A/es unknown
- 2000-07-24 AU AU61440/00A patent/AU6144000A/en not_active Abandoned
-
2002
- 2002-10-03 HK HK02107277.7A patent/HK1045896A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
IL147665A0 (en) | 2002-08-14 |
CN1148652C (zh) | 2004-05-05 |
CN1364259A (zh) | 2002-08-14 |
WO2001008002A3 (en) | 2001-11-08 |
CA2377945A1 (en) | 2001-02-01 |
HK1045896A1 (zh) | 2002-12-13 |
AU6144000A (en) | 2001-02-13 |
WO2001008002A2 (en) | 2001-02-01 |
BR0012706A (pt) | 2002-04-09 |
EP1208426A2 (en) | 2002-05-29 |
MXPA02000850A (es) | 2004-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6769095B1 (en) | Hierarchically structured control information editor | |
US11023834B2 (en) | Collaborative design systems, apparatuses, and methods | |
US7114149B2 (en) | Navigation links in generated documentation | |
JP3136035B2 (ja) | データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法 | |
US6742175B1 (en) | Component-based source code generator | |
US7269792B2 (en) | System and method for generating high-function browser widgets with full addressability | |
US7277875B2 (en) | User selectable approach for generating modifiable rules | |
US20030145305A1 (en) | Method for developing and managing large-scale web user interfaces (WUI) and computing system for said WUI | |
US6948120B1 (en) | Computer-implemented system and method for hosting design-time controls | |
US20040015834A1 (en) | Method and apparatus for generating serialization code for representing a model in different type systems | |
JP2008512794A (ja) | オブジェクト処理グラフアプリケーション開発システム | |
US6518979B1 (en) | Automatically-maintained customizable user interfaces | |
US20130080879A1 (en) | Methods and apparatus providing document elements formatting | |
US6032198A (en) | Application design supporting method and apparatus for client/server system | |
CN112364496B (zh) | 基于html5和vue技术的航电仿真面板生成系统 | |
US20060085745A1 (en) | System and method for displaying a user interface object using an associated style | |
CA2347191A1 (en) | Component-based source code generator | |
JP2002015333A (ja) | マルチメディアオーサリングツール及びオーサリングプログラムを記録した記録媒体 | |
US7657869B2 (en) | Integration of external tools into an existing design environment | |
WO2002021314A2 (en) | Integrated design environment for a commerce server system | |
JP2003505785A (ja) | 階層構造制御情報エディタ | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
Amann et al. | BIM programming | |
EP1862924A1 (en) | Object-oriented system for mapping structered information to different structured information | |
JPH06214842A (ja) | データベースアクセス許容方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060901 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061128 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20061128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090929 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100309 |