JP3551882B2 - 対話画面ソースコード生成機能を有する情報処理装置、および、記録媒体 - Google Patents
対話画面ソースコード生成機能を有する情報処理装置、および、記録媒体 Download PDFInfo
- Publication number
- JP3551882B2 JP3551882B2 JP2000051797A JP2000051797A JP3551882B2 JP 3551882 B2 JP3551882 B2 JP 3551882B2 JP 2000051797 A JP2000051797 A JP 2000051797A JP 2000051797 A JP2000051797 A JP 2000051797A JP 3551882 B2 JP3551882 B2 JP 3551882B2
- Authority
- JP
- Japan
- Prior art keywords
- source code
- interactive screen
- variable
- information
- template
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、アプリケーションプログラム生成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成可能な装置およびそのためのプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
ソースコードテンプレート(以下、適宜単にテンプレートと記す)を用いてソースコードを生成することは、アプリケーションプログラムを作成するために有効な手法であり、この手法を実行可能な情報処理装置の構成例を図11に示す。
【0003】
このテンプレートを使用した一般的なプログラムの開発手順は以下のようになる。プログラム開発者は、記憶装置300に保存されたテンプレート3200を適宜編集し、ソースコード3300の生成元となるテンプレート3200を作成しておく。テンプレート3200をソースコード3300に変換するために必要となる変数値等の情報は、データ処理装置400の対話画面表示制御部4100が対話画面(図示せず)を出力装置100に表示させることにより、情報入力を促されたプログラム開発者が入力装置200を操作することによって入力される。
【0004】
対話操作によって順次入力された情報は、記憶装置300の変数値記憶部310に順次保存されていく。テンプレート解析・処理部4200は、テンプレート3200と変数値記憶部3100に保存された変数値とを受け取ると、テンプレート3200を解析し、テンプレート3200の正当性の判定や変数値の展開とを行いながらソースコード3300を生成するものであった。
【発明が解決しようとする課題】
ところで、このようなソースコードテンプレートからソースコードを生成するために必要な情報を入力可能とする対話画面を生成させるための対話画面表示制御部4100を実現するためには、そのための対話画面ソースコードをプログラム開発者の手作業により入力しなければならず、その作業は煩わしいものであった。
【0005】
また、テンプレート中の変数を目視によって洗い出すための漏れが発生し、特に、テンプレート中の変数には、他の引数変数に依存した配列変数のように変数間の依存関係等を考慮しなければならないものが多く、対話画面ソースコードの自動生成は単純には実現できなかった。
【0006】
本発明は、このような従来の課題を解決するためになされたもので、テンプレートでのアプリケーションの開発の際に表示する対話画面を生成するための対話画面ソースコードを自動生成可能な装置およびそのためのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
上記目的を達成するために、本発明の内の請求項1に係る発明は、アプリケーションプログラム作成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成可能な装置であって、
前記ソースコードテンプレート中の変数を抽出すると共に、この変数に課される制約条件である制約情報を定める抽出手段と、
前記抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを生成する対話画面ソースコード生成手段と、を備えるようにした。
【0007】
請求項1に係る発明においては、対話画面ソースコード生成手段は、抽出手段によって抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを自動生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、テンプレートを用いたアプリケーションの開発の際に表示する対話画面を自動表示でき、その際、変数とその制約条件とを入力可能に対話画面が表示される。
【0008】
また、請求項2に係る発明は、請求項1に記載の装置において、
前記対話画面ソースコード生成手段は、
前記制約情報を満足しない変数が入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する手段であることを特徴とする。
【0009】
請求項2に係る発明においては、対話画面ソースコード生成手段は、制約情報を満足しない変数が情報入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、不適切な制約情報の入力が通知させるのでプログラミング間違えの発生を抑制できる。
【0010】
また、請求項3に係る発明は、請求項1および2の内のいずれか一項に記載の装置において、
前記対話画面ソースコード生成手段は、
抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成する手段であることを特徴とする。
【0011】
この請求項3に係る発明においては、対話画面ソースコード生成手段は、抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、変数間の依存関係を考慮した順番で変数を定めるための情報の入力を促す対話画面を表示装置に表示させるので、プログラミング間違えの発生を抑制できる。
【0012】
また、請求項4に係る発明は、請求項3に記載の装置において、
前記依存関係は、繰り返し処理の中で行なわれる処理に用いる処理変数が、繰り返し処理の回数を示す繰り返し変数であることであり、
前記対話画面ソースコード生成手段は、
前記繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、前記処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成する手段であることを特徴とする。
【0013】
請求項4に係る発明においては、対話画面ソースコード生成手段は、繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、繰り返し変数を定めるための情報が入力された後に、処理変数を定めるための情報が入力されるので、プログラミング間違えの発生を抑制できる。
【0014】
そして、請求項5に係る発明は、アプリケーションプログラム作成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成するプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記ソースコードテンプレート中の変数を抽出すると共に、この変数に課される制約条件である制約情報を定める処理と、
前記抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを生成する処理と、を含む処理を実行させるための対話画面ソースコード生成プログラムを記録した記録媒体である。
【0015】
この請求項5に係る発明においても、対話画面ソースコードを例えばコンパイルして実行させると、テンプレートを用いたアプリケーションの開発の際に表示する対話画面を自動表示できる。なお、このような記録媒体としては、ROM、半導体IC等の半導体記録媒体、DVDROM、CDROM等の光記録媒体、フレキシブルディスク等の磁気記録媒体、MO等の光磁気記録媒体が挙げられる。
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しつつ説明する。本実施形態に係る情報処理装置は、CRT等の表示デバイスで実現される出力装置1と、キーボード等の入力デバイスで実現される入力装置2と、HD(ハードディスク)等のメモリデバイスで実現される記憶装置3と、プログラム制御により動作するデータ処理装置4と、プログラム制御により動作するデータ処理装置5とを有している。この情報処理装置は1台のコンピュータシステムで実現される。なお、図1において、実線矢印は処理の流れを示し、波線矢印はデータの流れを示している。
【0016】
データ処理装置4は、対話画面表示機能を有する対話画面表示制御部410と、テンプレート320と変数値記憶部310の記憶内容とに基づいてソースコード330を生成するテンプレート解析・処理部420とを備える。なお、本発明にあっては、後に説明する対話画面ソースコード360をコンパイルしてオブジェクトとなったものを実行することによって、対話画面表示制御部が実現されることになる。
【0017】
データ処理装置5は、テンプレート320から変数を抽出すると共に、その変数が満たすべき制約条件である制約情報を定め、それぞれを変数記憶部340と制約情報記憶部350に記憶するテンプレート変数抽出部421と、変数記憶部340と制約情報記憶部350との記憶内容を考慮して、対話画面を表示するためのソースコードである対話画面ソースコード360を生成する対話画面ソースコード生成部430とを備える。
【0018】
記憶装置3には、変数値記憶部310、変数記憶部340、制約情報記憶部350とが形成される。また、記憶装置3は、テンプレート320を格納し、生成されたソースコード330や対話画面ソースコード360を格納する。
【0019】
テンプレート320は、アプリケーションソフトウェアを作成するためのソースコード330の雛形の情報であり、固定部と制御部とから構成される。固定部は、ソースコード330にそのまま出力される。一方、制御部は、ソースコード330をカスタマイズする情報であり、特殊記号で囲まれた部分に変数、条件分岐、繰り返し処理等が記述される。変数部分は、対応する変数値がソースコード330に出力される。また、特殊記号で囲まれるとは、例えば「$…$」、「♯(…)」、「<template…>」のように特定の記述ルールで定められたものである。制御部においては、「…」の部分に情報を埋め込み、テンプレート解析・処理部420とテンプレート変数抽出部421とが解釈できるようしている。
【0020】
したがって、テンプレート解析・処理部420は、テンプレート320を解析し、固定部をそのままソースコード330に出力すると共に、制御部を処理してソースコード330に出力する。テンプレート変数抽出部421は、テンプレート320の制御部から変数情報を抽出し変数記憶部340に格納させると共に、その変数に対して定めた制約情報を制約情報記憶部350に格納させる。
【0021】
次に動作説明を行なう。まず、対話画面ソースコード360がコンパイルされてオブジジェクトになったものが実行されて対話画面表示制御部410が実現された後の動作、即ち、テンプレート320からソースコード330を生成する一般的な手順を説明し、その後に本発明の主要部を説明して理解の容易化に努める。
【0022】
図2は、テンプレート320の一例であるテンプレート321である。固定部は、図2において点線で囲まれない部分であり、ソースコード330にそのまま出力される。一方、制御部は、図2において点線で囲まれた部分であり、ソースコード330をカスタマイズする情報である。変数、条件分岐、繰り返し処理等が記述される。このテンプレート321を処理対象として、テンプレート解析・処理部420の動作について説明する。テンプレート解析・処理部420が解析するテンプレート321中の特殊記号の1例として、図2に示すように$文字を採用するものとする。
【0023】
テンプレート解析・処理部420は、$variable$なる変数が定義されている場合において、アプリケーション開発者が「variable」の値として「output」なる文字列を入力した時、ソースコード330には「output」なる文字列を出力する。また、繰り返し処理の記述方法の一例としてloop構文を想定し、このloop構文は、$loop(繰り返し変数, 開始値, 終了値)$…$end$の形式を持つものとする。この場合、loop構文は、繰り返し変数の値が、開始値を初期値とし、繰り返し処理が行なわれる度に1ずつ加算され、繰り返し変数の値が終了値に等しくなるまで「…」に記述した処理を繰り返し行うものである。繰り返し変数の値は、テンプレート解析・処理部420により値が割り当てられる。$loop(i,1, count)$$variable[i]$$end$なる場合を想定する。すると、アプリケーション開発者が、countの値として「2」、variable[1]の値としてoutput1なる文字列を、variable[2]の値としてoutput2なる文字列を入力した場合には、まずiの値に「1」が代入され、ソースコード330には、variable[1]の値であるoutput1が出力される。次にiの値に「2」が代入され、ソースコード330には、variable[2]の値であるoutput2なる文字列が追加して出力される。
【0024】
図2に示したテンプレート321では制御部として、$className$、$loop(i,1, fields)$、$fieldType[i]$、$fieldName[i]$、および、$end$が記述されている。「class C」等の文字列は固定部であり、ソースコード330にそのまま出力される。制御部の内容では、className、i、fields、fieldType[i]、fieldName[i]が変数であり、このうち、変数classNameの値が出力される。また、変数iと、変数fieldsは、繰り返し処理の制御のために使われ、fieldType[i]、fieldName[i]の値が繰り返し処理により出力される。
【0025】
対話画面表示制御部410は、変数を定めるための情報の入力を促す対話画面を出力装置1に表示させると共に、入力装置2から入力された、className、fields、fieldType[i]、fieldName[i]等の変数値を変数記憶部310に格納する。この際、fieldType[i]、fieldName[i]は、fieldsの値分だけ繰り返し入力が促されるように対話画面を表示する。
【0026】
図3に、変数記憶部310に格納された変数値の一例311を示す。そして、テンプレート解析・処理部420は、図2に示したテンプレート321と、図5に示した変数値311とに基づいて、上述したようにしてソースコード331(図4参照)を生成する。
【0027】
次に、図5等を参照して、本実施例の主要な動作について詳細に説明する。テンプレート変数抽出部421は、テンプレート320を記憶装置3から読み出し(ステップA1)、テンプレート320に含まれる制御部を先頭から順番に探していく(ステップA2)。制御部が検出されたら、当該制御部がいかなる制御部であるかについて調べる(ステップA3)。繰り返し処理であれば、繰り返し変数の変数情報(繰り返し変数、開始値、終了値等)を変数記憶部340に記憶すると共に、それらに対する制約情報を制約情報記憶部350に格納する(ステップA4)。例えば、終了値に対しては整数である旨の制約情報を制約情報記憶部350に格納する。
【0028】
一方、変数であれば、変数情報を変数記憶部340に記憶すると共に、その変数の制約情報を制約情報記憶部350に格納する(ステップA5)。例えば、配列変数に対しては、配列型の変数である旨の制約情報を制約情報記憶部350に格納する。テンプレート変数抽出部421は、テンプレート320に含まれる総ての制御部に対する処理が終了するまで、上述したステップA2からA5までの処理を繰り返し実行する(ステップA6)。
【0029】
次に、対話画面ソースコード生成部430が起動する。対話画面ソースコードコード生成部430は、変数記憶部340と制約条件憶部350とから、変数情報を読み出す(ステップB1)。まず、対話画面ソースコードコード生成部430は、総ての変数の依存関係処理を実行する(ステップB2)。依存関係処理を、図6の変数例341を参照して説明する。この変数例においては、fieldType[i]、fieldName[i]は「i」に依存しており、さらに、「i」は「fields」に依存しているため、「fields→i→(fieldType「i」, fieldName「i」)」なる順番で対話画面に表示する順番を決める。
【0030】
繰り返し変数iは、自動変数であるので対話画面には表示しないが、各対話画面の表示順制御に用いる。変数classNameは、他の変数に依存しないので、fieldsと同じ第1のグループにエントリーする。このようにして、総ての変数間の依存関係を洗い出し、第1のグループにはfields、classNameを、iは表示しないので、第2のグループにはfieldType[i]、fieldName[i]をエントリーする。対話画面ソースコード生成部430は、抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成するので、この対話画面ソースコードを例えばコンパイルして実行させると、変数間の依存関係を考慮した順番で変数を定めるための情報の入力を促す対話画面を表示装置に表示させるので、プログラミング間違えの発生を抑制できる。
【0031】
対話画面ソースコードコード生成部430は、1グループに1つの対話画面ページを生成する。図6の変数例341では、変数classNameの値と変数fieldsの値とを問い合わせる対話画面ページ1と、変数fieldType[i]の値と変数fieldName[i]との値を問い合わせる対話画面ページ2の2ページの異なる対話画面ページを生成する(ステップB3)。この際、対話画面ソースコード生成部430は、図7に示すような制約情報を満足しない変数が情報入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、不適切な制約情報の入力が通知させるのでプログラミング間違えの発生を抑制できる。
【0032】
最後に、対話画面をグループ順、かつ、依存関係順に表示させるように対話画面ソースコードを生成し(ステップB4)、対話画面ソースコード360の生成が終了する。
【0033】
図9は実際の表示される対話画面例411を示しており、上記対話画面ページ1は、ソースコード生成ステップ1の画面に、上記対話画面ページ2は、ソースコード生成ステップ2の画面に対応する。対話画面ページ2の対話画面では、ソースコード生成ステップ1の画面で入力された変数fields(スロット)の値に依存して、繰り返し変数iが、1から変数fieldsの値回分表示される。したがって、ソースコード生成ステップ2−1、ソースコード生成ステップ2−2の画面は、変数fieldsの値が2であるため2回表示されることになる。
【0034】
図10の対話画面の例412では、上記対話画面ページ1は、ソースコード生成ステップ1の画面に、上記対話画面ページ2は、ソースコード生成ステップ2に対応する。ソースコード生成ステップ2の画面では、表形式で表示する部品を導入しているため、表形式に表示する部品に、繰り返し変数iが、1から変数fieldsの値回、入力項目を追加するようにされている。
【0035】
また、図9、図10のいずれの対話画面にあっても、対話画面ページ1において、図7の制約情報例351を利用して、変数fieldsを問い合わせる部分は、1以上の整数型以外の不適切な値の入力を拒むようにされていたり、場合によっては、エリア450にエラーメッセージが表示される。
【0036】
このように、対話画面ソースコード生成部430は、繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成するので、この対話画面ソースコードを例えばコンパイルして実行させると、繰り返し変数を定めるための情報が入力された後に、処理変数を定めるための情報が入力されるので、プログラミング間違えの発生を抑制できる。
【0037】
また、図7の制約情報例351を編集して、図8に示すようによりユーザが理解容易な具体的な制約情報に変更することが可能である。図8に一例として、変数表示用の文字列を「className」から「クラス名」に、「fields」から「スロット数」に、「fieldName[i]」から「名前」に、「fieldType[i]」から「型」に変更し、fieldType[i]は、複数の選択項目から対象となるものを選択するようなリスト表示を行い、その表示要素が「integer」、「string」、「date」であるようにした場合を示しており、このようにするソースコードを生成しても良い。
【0038】
なお、この実施の形態の情報処理装置が備える対話画面ソースコード生成部430、テンプレート変数抽出部421は、HD等の記録媒体に記録した、図5に示した処理を実行させるための対話画面ソースコード生成プログラムを、CPUが実行するようにして実現することができる。また、上記装置等の他の装置からこの対話画面ソースコード生成プログラムを送信して供給するようにしても良い。
【0039】
以上説明したきたように本発明の実施の形態によれば、アプリケーションソフトウェア開発者が、テンプレート中の変数を目視により洗い出す手作業を不要として変数の洗い出し漏れを無くし、更に、他の変数に依存した配列変数のような依存関係がある変数に対しても、適切な値の入力を促すような対話画面を生成可能となる。
【発明の効果】
以上説明したきたように、本発明によれば、抽出された変数や定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを自動生成することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態の情報処理装置のブロック構成図である。
【図2】テンプレートの一例の説明図である。
【図3】変数値の一例の説明図である。
【図4】ソースコードの一例の説明図である。
【図5】本発明の主要な処理を説明するためのフローチャートである。
【図6】変数例の説明図である。
【図7】制約情報の一例の説明図である。
【図8】制約情報の一例の説明図である。
【図9】対話画面例の説明図である。
【図10】対話画面例の説明図である。
【図11】従来技術の説明図である。
【符号の説明】
1 出力装置
2 入力装置
3 記憶装置
4 データ処理装置
5 データ処理装置
310 変数値記憶部
320 テンプレート
330 ソースコード
340 変数記憶部
350 制約情報記憶部
360 対話画面ソースコード
410 対話画面表示制御部
420 テンプレート解析・処理部
430 対話画面ソースコード生成部
421 テンプレート変数抽出部
【発明の属する技術分野】
本発明は、アプリケーションプログラム生成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成可能な装置およびそのためのプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
ソースコードテンプレート(以下、適宜単にテンプレートと記す)を用いてソースコードを生成することは、アプリケーションプログラムを作成するために有効な手法であり、この手法を実行可能な情報処理装置の構成例を図11に示す。
【0003】
このテンプレートを使用した一般的なプログラムの開発手順は以下のようになる。プログラム開発者は、記憶装置300に保存されたテンプレート3200を適宜編集し、ソースコード3300の生成元となるテンプレート3200を作成しておく。テンプレート3200をソースコード3300に変換するために必要となる変数値等の情報は、データ処理装置400の対話画面表示制御部4100が対話画面(図示せず)を出力装置100に表示させることにより、情報入力を促されたプログラム開発者が入力装置200を操作することによって入力される。
【0004】
対話操作によって順次入力された情報は、記憶装置300の変数値記憶部310に順次保存されていく。テンプレート解析・処理部4200は、テンプレート3200と変数値記憶部3100に保存された変数値とを受け取ると、テンプレート3200を解析し、テンプレート3200の正当性の判定や変数値の展開とを行いながらソースコード3300を生成するものであった。
【発明が解決しようとする課題】
ところで、このようなソースコードテンプレートからソースコードを生成するために必要な情報を入力可能とする対話画面を生成させるための対話画面表示制御部4100を実現するためには、そのための対話画面ソースコードをプログラム開発者の手作業により入力しなければならず、その作業は煩わしいものであった。
【0005】
また、テンプレート中の変数を目視によって洗い出すための漏れが発生し、特に、テンプレート中の変数には、他の引数変数に依存した配列変数のように変数間の依存関係等を考慮しなければならないものが多く、対話画面ソースコードの自動生成は単純には実現できなかった。
【0006】
本発明は、このような従来の課題を解決するためになされたもので、テンプレートでのアプリケーションの開発の際に表示する対話画面を生成するための対話画面ソースコードを自動生成可能な装置およびそのためのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
上記目的を達成するために、本発明の内の請求項1に係る発明は、アプリケーションプログラム作成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成可能な装置であって、
前記ソースコードテンプレート中の変数を抽出すると共に、この変数に課される制約条件である制約情報を定める抽出手段と、
前記抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを生成する対話画面ソースコード生成手段と、を備えるようにした。
【0007】
請求項1に係る発明においては、対話画面ソースコード生成手段は、抽出手段によって抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを自動生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、テンプレートを用いたアプリケーションの開発の際に表示する対話画面を自動表示でき、その際、変数とその制約条件とを入力可能に対話画面が表示される。
【0008】
また、請求項2に係る発明は、請求項1に記載の装置において、
前記対話画面ソースコード生成手段は、
前記制約情報を満足しない変数が入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する手段であることを特徴とする。
【0009】
請求項2に係る発明においては、対話画面ソースコード生成手段は、制約情報を満足しない変数が情報入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、不適切な制約情報の入力が通知させるのでプログラミング間違えの発生を抑制できる。
【0010】
また、請求項3に係る発明は、請求項1および2の内のいずれか一項に記載の装置において、
前記対話画面ソースコード生成手段は、
抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成する手段であることを特徴とする。
【0011】
この請求項3に係る発明においては、対話画面ソースコード生成手段は、抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、変数間の依存関係を考慮した順番で変数を定めるための情報の入力を促す対話画面を表示装置に表示させるので、プログラミング間違えの発生を抑制できる。
【0012】
また、請求項4に係る発明は、請求項3に記載の装置において、
前記依存関係は、繰り返し処理の中で行なわれる処理に用いる処理変数が、繰り返し処理の回数を示す繰り返し変数であることであり、
前記対話画面ソースコード生成手段は、
前記繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、前記処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成する手段であることを特徴とする。
【0013】
請求項4に係る発明においては、対話画面ソースコード生成手段は、繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、繰り返し変数を定めるための情報が入力された後に、処理変数を定めるための情報が入力されるので、プログラミング間違えの発生を抑制できる。
【0014】
そして、請求項5に係る発明は、アプリケーションプログラム作成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成するプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記ソースコードテンプレート中の変数を抽出すると共に、この変数に課される制約条件である制約情報を定める処理と、
前記抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを生成する処理と、を含む処理を実行させるための対話画面ソースコード生成プログラムを記録した記録媒体である。
【0015】
この請求項5に係る発明においても、対話画面ソースコードを例えばコンパイルして実行させると、テンプレートを用いたアプリケーションの開発の際に表示する対話画面を自動表示できる。なお、このような記録媒体としては、ROM、半導体IC等の半導体記録媒体、DVDROM、CDROM等の光記録媒体、フレキシブルディスク等の磁気記録媒体、MO等の光磁気記録媒体が挙げられる。
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しつつ説明する。本実施形態に係る情報処理装置は、CRT等の表示デバイスで実現される出力装置1と、キーボード等の入力デバイスで実現される入力装置2と、HD(ハードディスク)等のメモリデバイスで実現される記憶装置3と、プログラム制御により動作するデータ処理装置4と、プログラム制御により動作するデータ処理装置5とを有している。この情報処理装置は1台のコンピュータシステムで実現される。なお、図1において、実線矢印は処理の流れを示し、波線矢印はデータの流れを示している。
【0016】
データ処理装置4は、対話画面表示機能を有する対話画面表示制御部410と、テンプレート320と変数値記憶部310の記憶内容とに基づいてソースコード330を生成するテンプレート解析・処理部420とを備える。なお、本発明にあっては、後に説明する対話画面ソースコード360をコンパイルしてオブジェクトとなったものを実行することによって、対話画面表示制御部が実現されることになる。
【0017】
データ処理装置5は、テンプレート320から変数を抽出すると共に、その変数が満たすべき制約条件である制約情報を定め、それぞれを変数記憶部340と制約情報記憶部350に記憶するテンプレート変数抽出部421と、変数記憶部340と制約情報記憶部350との記憶内容を考慮して、対話画面を表示するためのソースコードである対話画面ソースコード360を生成する対話画面ソースコード生成部430とを備える。
【0018】
記憶装置3には、変数値記憶部310、変数記憶部340、制約情報記憶部350とが形成される。また、記憶装置3は、テンプレート320を格納し、生成されたソースコード330や対話画面ソースコード360を格納する。
【0019】
テンプレート320は、アプリケーションソフトウェアを作成するためのソースコード330の雛形の情報であり、固定部と制御部とから構成される。固定部は、ソースコード330にそのまま出力される。一方、制御部は、ソースコード330をカスタマイズする情報であり、特殊記号で囲まれた部分に変数、条件分岐、繰り返し処理等が記述される。変数部分は、対応する変数値がソースコード330に出力される。また、特殊記号で囲まれるとは、例えば「$…$」、「♯(…)」、「<template…>」のように特定の記述ルールで定められたものである。制御部においては、「…」の部分に情報を埋め込み、テンプレート解析・処理部420とテンプレート変数抽出部421とが解釈できるようしている。
【0020】
したがって、テンプレート解析・処理部420は、テンプレート320を解析し、固定部をそのままソースコード330に出力すると共に、制御部を処理してソースコード330に出力する。テンプレート変数抽出部421は、テンプレート320の制御部から変数情報を抽出し変数記憶部340に格納させると共に、その変数に対して定めた制約情報を制約情報記憶部350に格納させる。
【0021】
次に動作説明を行なう。まず、対話画面ソースコード360がコンパイルされてオブジジェクトになったものが実行されて対話画面表示制御部410が実現された後の動作、即ち、テンプレート320からソースコード330を生成する一般的な手順を説明し、その後に本発明の主要部を説明して理解の容易化に努める。
【0022】
図2は、テンプレート320の一例であるテンプレート321である。固定部は、図2において点線で囲まれない部分であり、ソースコード330にそのまま出力される。一方、制御部は、図2において点線で囲まれた部分であり、ソースコード330をカスタマイズする情報である。変数、条件分岐、繰り返し処理等が記述される。このテンプレート321を処理対象として、テンプレート解析・処理部420の動作について説明する。テンプレート解析・処理部420が解析するテンプレート321中の特殊記号の1例として、図2に示すように$文字を採用するものとする。
【0023】
テンプレート解析・処理部420は、$variable$なる変数が定義されている場合において、アプリケーション開発者が「variable」の値として「output」なる文字列を入力した時、ソースコード330には「output」なる文字列を出力する。また、繰り返し処理の記述方法の一例としてloop構文を想定し、このloop構文は、$loop(繰り返し変数, 開始値, 終了値)$…$end$の形式を持つものとする。この場合、loop構文は、繰り返し変数の値が、開始値を初期値とし、繰り返し処理が行なわれる度に1ずつ加算され、繰り返し変数の値が終了値に等しくなるまで「…」に記述した処理を繰り返し行うものである。繰り返し変数の値は、テンプレート解析・処理部420により値が割り当てられる。$loop(i,1, count)$$variable[i]$$end$なる場合を想定する。すると、アプリケーション開発者が、countの値として「2」、variable[1]の値としてoutput1なる文字列を、variable[2]の値としてoutput2なる文字列を入力した場合には、まずiの値に「1」が代入され、ソースコード330には、variable[1]の値であるoutput1が出力される。次にiの値に「2」が代入され、ソースコード330には、variable[2]の値であるoutput2なる文字列が追加して出力される。
【0024】
図2に示したテンプレート321では制御部として、$className$、$loop(i,1, fields)$、$fieldType[i]$、$fieldName[i]$、および、$end$が記述されている。「class C」等の文字列は固定部であり、ソースコード330にそのまま出力される。制御部の内容では、className、i、fields、fieldType[i]、fieldName[i]が変数であり、このうち、変数classNameの値が出力される。また、変数iと、変数fieldsは、繰り返し処理の制御のために使われ、fieldType[i]、fieldName[i]の値が繰り返し処理により出力される。
【0025】
対話画面表示制御部410は、変数を定めるための情報の入力を促す対話画面を出力装置1に表示させると共に、入力装置2から入力された、className、fields、fieldType[i]、fieldName[i]等の変数値を変数記憶部310に格納する。この際、fieldType[i]、fieldName[i]は、fieldsの値分だけ繰り返し入力が促されるように対話画面を表示する。
【0026】
図3に、変数記憶部310に格納された変数値の一例311を示す。そして、テンプレート解析・処理部420は、図2に示したテンプレート321と、図5に示した変数値311とに基づいて、上述したようにしてソースコード331(図4参照)を生成する。
【0027】
次に、図5等を参照して、本実施例の主要な動作について詳細に説明する。テンプレート変数抽出部421は、テンプレート320を記憶装置3から読み出し(ステップA1)、テンプレート320に含まれる制御部を先頭から順番に探していく(ステップA2)。制御部が検出されたら、当該制御部がいかなる制御部であるかについて調べる(ステップA3)。繰り返し処理であれば、繰り返し変数の変数情報(繰り返し変数、開始値、終了値等)を変数記憶部340に記憶すると共に、それらに対する制約情報を制約情報記憶部350に格納する(ステップA4)。例えば、終了値に対しては整数である旨の制約情報を制約情報記憶部350に格納する。
【0028】
一方、変数であれば、変数情報を変数記憶部340に記憶すると共に、その変数の制約情報を制約情報記憶部350に格納する(ステップA5)。例えば、配列変数に対しては、配列型の変数である旨の制約情報を制約情報記憶部350に格納する。テンプレート変数抽出部421は、テンプレート320に含まれる総ての制御部に対する処理が終了するまで、上述したステップA2からA5までの処理を繰り返し実行する(ステップA6)。
【0029】
次に、対話画面ソースコード生成部430が起動する。対話画面ソースコードコード生成部430は、変数記憶部340と制約条件憶部350とから、変数情報を読み出す(ステップB1)。まず、対話画面ソースコードコード生成部430は、総ての変数の依存関係処理を実行する(ステップB2)。依存関係処理を、図6の変数例341を参照して説明する。この変数例においては、fieldType[i]、fieldName[i]は「i」に依存しており、さらに、「i」は「fields」に依存しているため、「fields→i→(fieldType「i」, fieldName「i」)」なる順番で対話画面に表示する順番を決める。
【0030】
繰り返し変数iは、自動変数であるので対話画面には表示しないが、各対話画面の表示順制御に用いる。変数classNameは、他の変数に依存しないので、fieldsと同じ第1のグループにエントリーする。このようにして、総ての変数間の依存関係を洗い出し、第1のグループにはfields、classNameを、iは表示しないので、第2のグループにはfieldType[i]、fieldName[i]をエントリーする。対話画面ソースコード生成部430は、抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成するので、この対話画面ソースコードを例えばコンパイルして実行させると、変数間の依存関係を考慮した順番で変数を定めるための情報の入力を促す対話画面を表示装置に表示させるので、プログラミング間違えの発生を抑制できる。
【0031】
対話画面ソースコードコード生成部430は、1グループに1つの対話画面ページを生成する。図6の変数例341では、変数classNameの値と変数fieldsの値とを問い合わせる対話画面ページ1と、変数fieldType[i]の値と変数fieldName[i]との値を問い合わせる対話画面ページ2の2ページの異なる対話画面ページを生成する(ステップB3)。この際、対話画面ソースコード生成部430は、図7に示すような制約情報を満足しない変数が情報入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する。したがって、この対話画面ソースコードを例えばコンパイルして実行させると、不適切な制約情報の入力が通知させるのでプログラミング間違えの発生を抑制できる。
【0032】
最後に、対話画面をグループ順、かつ、依存関係順に表示させるように対話画面ソースコードを生成し(ステップB4)、対話画面ソースコード360の生成が終了する。
【0033】
図9は実際の表示される対話画面例411を示しており、上記対話画面ページ1は、ソースコード生成ステップ1の画面に、上記対話画面ページ2は、ソースコード生成ステップ2の画面に対応する。対話画面ページ2の対話画面では、ソースコード生成ステップ1の画面で入力された変数fields(スロット)の値に依存して、繰り返し変数iが、1から変数fieldsの値回分表示される。したがって、ソースコード生成ステップ2−1、ソースコード生成ステップ2−2の画面は、変数fieldsの値が2であるため2回表示されることになる。
【0034】
図10の対話画面の例412では、上記対話画面ページ1は、ソースコード生成ステップ1の画面に、上記対話画面ページ2は、ソースコード生成ステップ2に対応する。ソースコード生成ステップ2の画面では、表形式で表示する部品を導入しているため、表形式に表示する部品に、繰り返し変数iが、1から変数fieldsの値回、入力項目を追加するようにされている。
【0035】
また、図9、図10のいずれの対話画面にあっても、対話画面ページ1において、図7の制約情報例351を利用して、変数fieldsを問い合わせる部分は、1以上の整数型以外の不適切な値の入力を拒むようにされていたり、場合によっては、エリア450にエラーメッセージが表示される。
【0036】
このように、対話画面ソースコード生成部430は、繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成するので、この対話画面ソースコードを例えばコンパイルして実行させると、繰り返し変数を定めるための情報が入力された後に、処理変数を定めるための情報が入力されるので、プログラミング間違えの発生を抑制できる。
【0037】
また、図7の制約情報例351を編集して、図8に示すようによりユーザが理解容易な具体的な制約情報に変更することが可能である。図8に一例として、変数表示用の文字列を「className」から「クラス名」に、「fields」から「スロット数」に、「fieldName[i]」から「名前」に、「fieldType[i]」から「型」に変更し、fieldType[i]は、複数の選択項目から対象となるものを選択するようなリスト表示を行い、その表示要素が「integer」、「string」、「date」であるようにした場合を示しており、このようにするソースコードを生成しても良い。
【0038】
なお、この実施の形態の情報処理装置が備える対話画面ソースコード生成部430、テンプレート変数抽出部421は、HD等の記録媒体に記録した、図5に示した処理を実行させるための対話画面ソースコード生成プログラムを、CPUが実行するようにして実現することができる。また、上記装置等の他の装置からこの対話画面ソースコード生成プログラムを送信して供給するようにしても良い。
【0039】
以上説明したきたように本発明の実施の形態によれば、アプリケーションソフトウェア開発者が、テンプレート中の変数を目視により洗い出す手作業を不要として変数の洗い出し漏れを無くし、更に、他の変数に依存した配列変数のような依存関係がある変数に対しても、適切な値の入力を促すような対話画面を生成可能となる。
【発明の効果】
以上説明したきたように、本発明によれば、抽出された変数や定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを自動生成することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態の情報処理装置のブロック構成図である。
【図2】テンプレートの一例の説明図である。
【図3】変数値の一例の説明図である。
【図4】ソースコードの一例の説明図である。
【図5】本発明の主要な処理を説明するためのフローチャートである。
【図6】変数例の説明図である。
【図7】制約情報の一例の説明図である。
【図8】制約情報の一例の説明図である。
【図9】対話画面例の説明図である。
【図10】対話画面例の説明図である。
【図11】従来技術の説明図である。
【符号の説明】
1 出力装置
2 入力装置
3 記憶装置
4 データ処理装置
5 データ処理装置
310 変数値記憶部
320 テンプレート
330 ソースコード
340 変数記憶部
350 制約情報記憶部
360 対話画面ソースコード
410 対話画面表示制御部
420 テンプレート解析・処理部
430 対話画面ソースコード生成部
421 テンプレート変数抽出部
Claims (5)
- アプリケーションプログラム作成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成可能な装置であって、
前記ソースコードテンプレート中の変数を抽出すると共に、この変数に課される制約条件である制約情報を定める抽出手段と、
前記抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを生成する対話画面ソースコード生成手段と、を備えたことを特徴とする、対話画面ソースコード生成機能を有する情報処理装置。 - 請求項1に記載の装置において、
前記対話画面ソースコード生成手段は、
前記制約情報を満足しない変数が入力されると、その旨の通知を対話画面上で行なうようにした対話画面ソースコードを生成する手段であることを特徴とする、対話画面ソースコード生成機能を有する情報処理装置。 - 請求項1および2の内のいずれか一項に記載の装置において、
前記対話画面ソースコード生成手段は、
抽出された変数間の依存関係を把握し、この依存関係を考慮した順番で、それらの変数を定めるための情報の入力を促すための対話画面を表示装置に表示させていくようにする対話画面ソースコードを生成する手段であることを特徴とする、対話画面ソースコード生成機能を有する情報処理装置。 - 請求項3に記載の装置において、
前記依存関係は、繰り返し処理の中で行なわれる処理に用いる処理変数が、繰り返し処理の回数を示す繰り返し変数であることであり、
前記対話画面ソースコード生成手段は、
前記繰り返し変数を定めるための情報の入力を促すための対話画面を表示させた後に、前記処理変数を定めるための情報の入力を促すための対話画面を表示させるようにする対話画面ソースコードを生成する手段であることを特徴とする、対話画面ソースコード生成機能を有する情報処理装置。 - アプリケーションプログラム作成のための雛型であるソースコードテンプレートを用いて対話形式でソースコードを生成させるための対話画面用のソースコードを生成するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記ソースコードテンプレート中の変数を抽出すると共に、この変数に課される制約条件である制約情報を定める処理と、
前記抽出された変数、定められた制約情報に基づいて、情報入力を促すための対話画面を表示装置に表示させるための対話画面ソースコードを生成する処理と、を含む処理を実行させるための対話画面ソースコード生成プログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000051797A JP3551882B2 (ja) | 2000-02-28 | 2000-02-28 | 対話画面ソースコード生成機能を有する情報処理装置、および、記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000051797A JP3551882B2 (ja) | 2000-02-28 | 2000-02-28 | 対話画面ソースコード生成機能を有する情報処理装置、および、記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001243056A JP2001243056A (ja) | 2001-09-07 |
JP3551882B2 true JP3551882B2 (ja) | 2004-08-11 |
Family
ID=18573406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000051797A Expired - Fee Related JP3551882B2 (ja) | 2000-02-28 | 2000-02-28 | 対話画面ソースコード生成機能を有する情報処理装置、および、記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3551882B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2554580C (en) * | 2004-01-21 | 2014-03-25 | Metalogic, Inc. | Constraint condition solving method, constraint condition solving device, and constraint condition solving system |
JP5856104B2 (ja) * | 2013-06-19 | 2016-02-09 | 日本電信電話株式会社 | プログラミング方法及び装置 |
-
2000
- 2000-02-28 JP JP2000051797A patent/JP3551882B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001243056A (ja) | 2001-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Richters et al. | Validating UML models and OCL constraints | |
US7080350B2 (en) | Method for developing Web applications, development support system and storage medium for storing programs developed according to the method | |
Stocks | Applying formal methods to software testing | |
US20030005413A1 (en) | Method for testing of software | |
US20110016452A1 (en) | Method and system for identifying regression test cases for a software | |
US20040030993A1 (en) | Methods and apparatus for representing dynamic data in a software development environment | |
Crain | Simulation using gpss/h | |
JP2004213677A (ja) | Guiを有するコンピュータシステムでタスクを実行する方法 | |
CA2287303A1 (en) | Automatically-maintained customizable user interfaces | |
Panach et al. | Including functional usability features in a model-driven development method | |
EP1016995A1 (en) | Generation of a system model | |
US10083108B1 (en) | Automated stack-based computerized application crawler | |
JP3551882B2 (ja) | 対話画面ソースコード生成機能を有する情報処理装置、および、記録媒体 | |
Belli et al. | Advances in model-based testing of graphical user interfaces | |
JP2006163855A (ja) | Webアプリケーション開発支援装置及び開発支援方法 | |
Cass et al. | Using task models for cascading selective undo | |
JP2003140893A (ja) | ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体 | |
Cheng et al. | On Two Friends for Getting Correct Programs: Automatically Translating Event B Specifications to Recursive Algorithms in Rodin | |
Freeman | Pro Go | |
Dias et al. | AccessMDD: An MDD approach for generating accessible mobile applications | |
Brown | The essential guide to Flex 2 with ActionScript 3.0 | |
Fritsi et al. | A layout independent GUI test automation tool for applications developed in Magic/uniPaaS | |
JPH1195991A (ja) | 画面処理プログラムのカスタマイズ方法およびその記録媒体 | |
Dragaš et al. | SeamlessMDD: Framework for Seamless Integration of Generated and Hand-Written Code | |
Mazanek et al. | Generating correctness-preserving editing operations for diagram editors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040419 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090514 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100514 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |