説明

ソフトウェア自動生成装置、ソフトウェア自動生成方法、およびプログラム

【課題】画面遷移表、状態遷移表、データ定義表、データ対応表、入出力表といったさまざまな要求仕様情報から、自動的にソフトウェアを生成する。
【解決手段】ソフトウェア自動生成装置1は、要求仕様情報から決定表形式の仕様定義表16−1〜16−4を作成する仕様定義手段12と、仕様定義表16−1〜16−4とソフトウェア情報17から、生成ソフトウェア18を自動生成するソフトウェア生成手段13を備える。仕様定義表には、表の列毎に、前記列の記載内容を定義し記述する行を有しソフトウェア生成手段13がこれを解釈しソフトウェアを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はソフトウェアの自動生成装置とソフトウェア自動生成方法、およびプログラムに関し、特に業務システム等のシステムの仕様を表形式で定義した仕様定義表に基づきシステムのソフトウェアを自動生成するソフトウェア自動生成装置とソフトウェア自動生成方法、およびプログラムに関する。
【背景技術】
【0002】
従来のソフトウェアの自動生成装置の一例が、特許文献1に記載されている。この従来のソフトウェアの自動生成装置は、仕様情報定義部と、定義情報抽出部と、定義情報解析部と、プログラム生成部と、プログラム生成情報とから構成されている。
【0003】
このような構成を有する従来のソフトウェアの自動生成装置はつぎのように動作する。すなわち、仕様情報としてデータ処理で使用する計算式、データの抽出元、計算結果の移行先、データ処理条件の定義を読み込み、データ処理を行うソフトウェアを生成する。
【0004】
【特許文献1】特開2000−231478号公報(第1ページ)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記従来の表形式からのソフトウェア自動生成装置では、業務システムを構築する上で必要となる、画面遷移表、状態遷移表、データ定義表、データ対応表、入出力表といった要求仕様情報を、そのままに近い形で入力することができないという問題点がある。その理由は、従来のソフトウェア自動生成装置が、特定の固定形式の表からのソフトウェア生成しかできず、表の形式自体を定義する欄(行や列)を提供しておらず、また前記定義する欄の記述を解釈する手段を備えていないためである。
【0006】
本発明の目的は、上記問題点を解決したソフトウェア自動生成装置と方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の第1のソフトウェア自動生成装置は、システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手段と、前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手段とを備える。
【0008】
本発明の第2のソフトウェア自動生成装置は、前記第1のソフトウェア自動生成装置であって、前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、前記ソフトウェア生成手段が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを有する。
【0009】
本発明の第3のソフトウェア自動生成装置は、前記第2のソフトウェア自動生成装置であって、前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、前記ソフトウェア生成手段が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う手段を有する。
【0010】
本発明の第4のソフトウェア自動生成装置は、前記第3のソフトウェア自動生成装置であって、前記処理内容を表すキーワードは、条件分岐を表す第1のキーワードと、変数への代入を表す第2のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第3のキーワードとを含み、前記ソフトウェア生成手段が、前記第1のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手段と、前記第2のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手段と、前記第3のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手段とを有する。
【0011】
本発明の第5のソフトウェア自動生成装置は、前記第3、または第4のソフトウェア自動生成装置であって、前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、前記ソフトウェア生成手段は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成する。
【0012】
本発明の第6のソフトウェア自動生成装置は、前記第3、または第4のソフトウェア自動生成装置であって、前記ソフトウェア生成手段は、前記処理内容記述行に条件分岐を表す第1のキーワードを記述した列が連続してい場合に、連続した複数段の条件分岐を生成する手段を有する。
【0013】
本発明の第7のソフトウェア自動生成装置は、前記第4のソフトウェア自動生成装置であって、端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す機能を有し、前記既定変数には現在処理中の表の名前を示す“layer”、現在表示中の画面名を示す“sheet”、ユーザが行なった操作の名前を示す“event”を有する標準関数を持つ。
【0014】
本発明の第1のプログラムは、システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順とをコンピュータに実行させる。
【0015】
本発明の第2のプログラムは、前記第1のプログラムであって、前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する。
【0016】
本発明の第3のプログラムは、前記第2のプログラムであって、前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う。
【0017】
本発明の第4のプログラムは、前記第3のプログラムであって、前記処理内容を表すキーワードは、条件分岐を表す第1のキーワードと、変数への代入を表す第2のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第3のキーワードとを含み、前記ソフトウェア生成手順が、前記第1のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手順と、前記第2のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手順と、前記第3のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手順とを含む。
【0018】
本発明の第5のプログラムは、前記第3または第4のプログラムであって、前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成する。
【0019】
本発明の第6のプログラムは、前記第3または第4のプログラムであって、前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第1のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有する。
【0020】
本発明の第7のプログラムは、前記第4のプログラムであって、端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“layer”、現在表示中の画面名を示す“sheet”、ユーザが行なった操作の名前を示す“event”を有する標準関数を持つ。
【0021】
本発明の第1のソフトウェア自動生成方法は、システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順と、を含む。
【0022】
本発明の第2のソフトウェア自動生成方法は、前記第1のソフトウェア自動生成方法であって、前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを含む。
【0023】
本発明の第3のソフトウェア自動生成方法は、前記第2のソフトウェア自動生成方法であって、前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う処理を含む。
【0024】
本発明の第4のソフトウェア自動生成方法は、前記第3のソフトウェア自動生成方法であって、前記処理内容を表すキーワードは、条件分岐を表す第1のキーワードと、変数への代入を表す第2のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第3のキーワードとを含み、前記ソフトウェア生成手順が、前記第1のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する処理と、前記第2のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する処理と、前記第3のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す処理とを含む。
【0025】
本発明の第5のソフトウェア自動生成方法は、前記第3、または第4のソフトウェア自動生成方法であって、前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成する。
【0026】
本発明の第6のソフトウェア自動生成方法は、前記第3、または第4のソフトウェア自動生成方法であって、前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第1のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有する。
【0027】
本発明の第7のソフトウェア自動生成方法は、前記第4のソフトウェア自動生成方法であって、端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“layer”、現在表示中の画面名を示す“sheet”、ユーザが行なった操作の名前を示す“event”を有する標準関数を持つ。
【発明の効果】
【0028】
本発明によれば、仕様定義表に、表の形式自体を定義する欄(行や列)を含み、また前記定義する欄の記述を解釈しプログラムを生成する手段を備えているので、業務要件情報の各種表に近い形式の仕様定義表を作成するだけで、その仕様定義表に従った画面入出力およびデータ処理を実現するためのプログラムを自動的に生成できる。
【発明を実施するための最良の形態】
【0029】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。図1に本発明の実施の形態であるソフトウェア自動生成装置1の構成を示す。また図1には、ソフトウェア自動生成装置1により作成されたソフトウェアを実行する業務システム2も示している。
【0030】
図1を参照し、本発明のソフトウェア自動生成装置1は、プログラム制御で動作する情報処理装置であり、仕様定義手段12とソフトウェア生成手段13と配信手段14をデータ処理部11に備え、記憶部15にはソフトウェア情報17を保持している。また、記憶部15には複数の仕様定義表16−1〜16−4と、生成ソフトウェア18も格納される。
【0031】
ここで、データ処理部11は、ハードウェアとしては、図示してないがCPUと主メモリとキーボード等の入力デバイスと表示装置を備えている。また、記憶部15は磁気ディスク装置等の不揮発性の補助記憶装置でありファイルを記憶する。
【0032】
仕様定義手段12は表作成ソフトウェア、或いは表計算ソフトウェアであり、仕様定義表16−1〜16−4を作成する。仕様定義表16−1〜16−4の各表は、図2に示すように処理内容記述行111と、共通パラメータ記述行112と、実行パラメータ記述行113と、行種別記述列114と、処理内容記述列115を含む。尚、実行パラメータ記述領域における破線は、ブロックが個々の升目が結合されたものであることを示している。
【0033】
ソフトウェア生成手段13は、仕様定義表16−1を読み込み、表の升目を順に走査しながら対応するソフトウェアを生成し、以降同様にして仕様定義表16−4まで対応するソフトウェアを生成しこれらと、標準関数を含む定義済みソフトウェアであるソフトウェア情報17を結合し、生成ソフトウェア18とし記憶部15に格納する。
【0034】
配信手段14は、生成ソフトウェア18をLAN等のネットワーク100を通じ、ソフトウェア実行装置21に配信する。
【0035】
ソフトウェア実行装置21は、サーバ等の情報処理装置であり、配信されたソフトウェアの制御により、パーソナルコンピュータ等の端末23に、データベース22の参照や更新に関するサービスを提供する。サービスはネットワーク101を通じて行う。
【0036】
次に、仕様定義表16−1〜16−4、生成ソフトウェア18の詳細や、ソフトウェア自動生成装置1の各手段の概略動作を説明する。仕様定義表16−1〜16−4のそれぞれは、業務システム2の仕様を定義した表形式の文書データであり、図2に示す様に、処理内容記述行111と共通パラメータ記述行112と実行パラメータ記述行113の3種類の行に分かれ、この順に配列される。
【0037】
また横方向には行種別記述列114と、処理内容記述列115の2種類の列に分かれ、この順に配列される。
【0038】
行種別記述列114には、仕様定義手段12により行の種別を識別するためのキーワードが自動記述される。即ち、処理内容記述行111であることを示す”action”、共通パラメータ記述行112であることを示す”common”、実行パラメータ記述行113であることを示す”pattern”が記述される。
【0039】
仕様定義手段12は、指示入力に従い、処理内容記述列115に次に示す内容を記述する。処理内容記述行111には、処理内容を示すキーワード、あるいは他の仕様定義表16−2〜16−4の何れかに対応したソフトウェア(モジュール)の名前を記述する。
【0040】
共通パラメータ記述行112には各処理の必要に応じてパラメータを記述する。図2の例では、変数名をパラメータとして取る処理”case”、“set”に対して、パラメータとして変数名である”layer”、”sheet”、”event”、”var1”を記述し、文字列をパラメータとしてとる処理“VCMAP”、“C”に対して、パラメータとして文字列“HHHH”、“EEEE”を記述している。
【0041】
一部の変数はシステムが自動的に値を代入するものもあり、例えば“layer”には現在処理中の表の名前、“sheet”には現在表示中の画面名、“event”にはユーザが行った操作の名前、などが自動的に代入される。
【0042】
実行パラメータ記述行113に記述する内容は、その同じ列の処理内容記述行111の内容によって次のように意味が変わる。
【0043】
実行パラメータ記述行113に条件分岐を示すキーワード“case”が記入されている場合には、その行が実行されるかどうかを決める条件値を記述する。実行パラメータ記述行113にキーワード“case”以外が記入されている場合には、キーワードに示された処理内容を実行するかどうかの区別、および実行する場合のパラメータを記述する。
【0044】
ソフトウェア生成手段13は、仕様定義表16−1を読み込み、表の升目を順に走査しながら生成ソフトウェア18を生成する。生成にあたってはまず行種別記述列114の内容(キーワード)から、処理内容記述行111と、共通パラメータ記述行112と、実行パラメータ記述行113を識別する。
【0045】
ソフトウェア生成手段13は、次に実行パラメータ記述行113の処理内容記述列115内の全ての升目を走査しながら生成ソフトウェア18に処理命令を追加していく。走査は実行パラメータ領域の左上端の升目である走査開始位置116から開始し、左から右へ、また右端に達した後は、実行パラメータ領域の次の行の左端という順で行い、実行パラメータ記述行113の下端まで行う。
【0046】
このとき空欄の升目については、その升目がパラメータ値を持つ升目に結合された升目でなくパラメータ値がヌルの升目(例えば升目117)であれば無視して次の升目に進む。それぞれの升目で追加する処理命令は、その升目と同じ列の処理内容記述行111の内容によって決定する。処理内容記述行111の内容が条件分岐を示すキーワード“case”である場合には処理命令として条件分岐を示す制御構造を追加する。例えばC言語の場合には“if”文を追加する。このとき上の行の制御構造が継続している場合があるため適切に条件分岐の制御構造を完結させる。
【0047】
処理内容記述行111の内容があらかじめ定義された処理命令を示すキーワードである場合には、キーワードに対応する処理命令を生成ソフトウェア18に追加する。処理内容記述行111の内容があらかじめ定義されたキーワード対応の処理命令でない場合には、別の仕様定義表より生成されたソフトウェアモジュールの呼び出しを行う関数(calltable)を生成ソフトウェア18に追加する。
【0048】
ソフトウェア生成手段13は、以降、仕様定義表16−2を読み込み、同様にソフトウェアを生成し、生成ソフトウェア18に追加ないし結合する。仕様定義表16−4の分まで処理すると 最後に、生成ソフトウェア18にソフトウェア情報17に含まれるソフトウェアを追加し、ソフトウェアの生成を完了する。
【0049】
ソフトウェア情報17は、標準関数等のあらかじめ定義された処理を実行するためのソフトウェアを含み、ソフトウェア自動生成装置の使用者が予め定義した”calltable”等の関数も含む。
【0050】
生成ソフトウェア18は、ソフトウェア生成手段13が生成したソフトウェアであり、ダウンロード要求を受け、配信手段14がソフトウェア実行装置21に配信することでシステムとして動作する。
【0051】
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
先ず、作成される仕様定義表の内容を図2に示す内容とする第1の実施例について説明する。図3はソフトウェア生成手段13の動作を示すフローチャートである。
【0052】
仕様定義手段12を用いて、仕様情報の画面遷移表が入力され、図2の仕様定義表16−1が作成される。ここで、図2の仕様定義表16−1の第1列は、処理中の表がV(画面処理)であることを前提とするものである。次に他の仕様定義表も同様に作成される。
【0053】
ここで、仕様定義表16−1〜16−4の各ファイルは、表サイズ(行識別最大値と列識別最大値)と、各升目の位置(行識別と列識別)に対応して升目の内容が有効な値(文字列等)か、ヌルに設定されている。また升目の結合に関する情報(ブロックを構成する複数の升目の位置か識別)も設定されている。
【0054】
以下図3に沿って第1の実施例の動作を詳細に説明する。ソフトウェア生成手段13は開始すると、まず初期化処理として、仕様定義表16−1〜16−4の各ファイルを読み出し可能な状態とし、また生成ソフトウェア18用の領域を初期化して書き込み可能な状態とする(ステップ201)。
【0055】
次に変数「現在の升目」に、走査開始位置116を示す値をセットする(ステップ202)。次に生成ソフトウェア18に処理開始の処理命令を書き込む。例えばC言語を生成する場合は関数の定義宣言などである(ステップ203)。
【0056】
次に前行までの条件分岐の制御構造の段数を示す変数「最終分岐レベル」に0をセットする(ステップ204)。次に実行パラメータ記述行113に含まれる全ての行についての走査を行うため、変数「現在の升目」を1行ずつ下に移動させながら、ステップ221までの処理を繰り返す(ステップ205)。
【0057】
次にその行での条件分岐の制御構造の段数を示す変数「分岐レベル」に0をセットする(ステップ206)。次に処理内容記述列115に含まれる全ての列についての走査を行うため、変数「現在の升目」を1列ずつ右に移動させながら、ステップ220までの処理を繰り返す。繰り返しの終わりでは変数「現在の升目」の列位置は元の位置に戻す(ステップ207)。
【0058】
次に「現在の升目」が指し示す升目の内容を参照し、升目が空欄(升目の値がヌル)であればステップ216に移る(ステップ208)。
【0059】
次に処理内容での分岐を行う。そのため「現在の升目」と同じ列の処理内容記述行111に書かれた処理内容を参照し、以降のそれぞれの場合に分岐する。
【0060】
参照したキーワードが文字列”case”であれば(ステップ209)、生成ソフトウェア18に対して書き込み途中となっている条件分岐の制御構造を完結させるため、(最終分岐レベル−分岐レベル)の回数だけ、分岐終了の処理命令を生成ソフトウェア18に書き込む。分岐終了の処理命令は例えばC言語を生成する場合は“return;}”となる(ステップ210)。
【0061】
次に条件分岐の制御構造命令を生成ソフトウェア18に書き込む。このとき「現在の升目」の内容と、「現在の升目」と同じ列の共通パラメータ記述行112の内容を使って判断条件を生成する。例えばC言語を生成する場合は、”if(“+共通パラメータ記述行112の内容+“==”+「現在の升目」の内容+“){”となる(ステップ211)。ここで「+」は文字列の結合を示している。
【0062】
次に条件分岐の制御構造の段数を示す変数「分岐レベル」に1を加える(ステップ212)。次に次行以降で条件分岐の制御構造を完結させられるよう、変数「最終分岐レベル」に変数「分岐レベル」の内容を代入する(ステップ213)。
【0063】
参照したキーワードが、定義済みのキーワードの一つであれば(ステップ209)、キーワードに対応する処理命令を、生成ソフトウェア18に書き込む(ステップ214)。ここで、定義済みのキーワードとは、ソフトウェア自動生成装置1としてあらかじめ用意してある命令を示す名前であり、キーワードに対応する処理命令があらかじめ決まっている。定義済みキーワードの例としては変数への代入を示す“set”などを用意する。
【0064】
参照したキーワードが、定義済みのキーワードでなければ(ステップ209)、他の仕様定義表により生成されるモジュールを呼び出す場合であり、他の仕様定義表により生成されるモジュールを呼び出す処理命令を、生成ソフトウェア18に書き込む。
【0065】
このとき処理内容記述行111の内容、共通パラメータ記述行112の内容、および「現在の升目」の内容を、呼び出し先に伝えることができるように処理命令を生成する。例えばC言語を生成する場合は、”calltable(“+処理内容記述行111の内容+“,”+共通パラメータ記述行112の内容+“,”+「現在の升目」の内容+“);”となる(ステップ215)。
【0066】
ステップ208で升目が空欄であった場合には、その升目が前の行の升目に結合されていれば(ステップ216)、「現在の升目」と同じ列の処理内容記述行111に書かれた処理内容を参照し、キーワードが文字列”case”であれば(ステップ217)、条件分岐の制御構造の段数を示す変数「分岐レベル」に1を加える(ステップ218)。
【0067】
ステップ217で、前記処理内容記述が”case”でなければ、実行パラメータ値を、結合元升目の実行パラメータ値とし、ステップ209に進む(ステップ219)。ステップ216で、その升目が結合された升目でなければ、なにもせず(無視して)次の升目に進む。
【0068】
「現在の升目」が処理中の行の最後の列でなければ、ステップ207に進み、最後の列であれば、ステップ221に進む(ステップ220)。「現在の升目」が最後の行でなければ、ステップ205に進み、最後の行であれば、ステップ222に進む(ステップ221)。
【0069】
次に生成ソフトウェア18に対して書き込み途中となっている条件分岐の制御構造を完結させるため、(最終分岐レベル−分岐レベル)の回数だけ、分岐終了の処理命令を生成ソフトウェア18に書き込む(ステップ222)。
【0070】
次に生成ソフトウェア18に対して処理終了の処理命令を書き込む(ステップ223)。全ての仕様定義表を処理済みでなければ(ステップ224)、ステップ202に進み次の仕様定義表16−2を処理し、全ての仕様定義表を処理すると(ステップ224)、後処理に進む。後処理として、生成ソフトウェア18をソフトウェア実行装置21が読み込めるようにするための処理を行う。例えば生成ソフトウェア18にソフトウェア情報17に含まれる標準関数のソフトウェアを追加する等を行う(ステップ225)。
【0071】
以上により、本発明の第1の実施例の動作が終了する。
【0072】
この実施例の様に、画面遷移表に近い形の仕様定義表を作成すると、業務システム用のソフトウェアが生成されることになる。
【0073】
次に本発明の第2の実施例について説明する。仕様情報として、状態遷移表とデータ対応表が作成されており、これらより仕様定義表を作成し、それに対応したプログラムを生成する例を説明する。
【0074】
先ず状態遷移表は「初期」状態でアクセス要求(REQ)を受信するとユーザ属性取得を行い「取得画面」状態に、この状態で応答(REPLY)を受信すると、取得されたユーザ属性(性別と年齢層)に応じた商品情報群の提供を行い「提供画面」状態に、購入要求(PUR−REQ)を受信すると、申込画面を送信し「申込画面」状態にそれぞれ遷移することが記述されている。
【0075】
ここで商品情報群を提供する前に、ユーザの性別と年令層に応じ前記群(グループ)番号を決める必要があり、データ対応表がユーザ属性(性別と年令層)データと「提供商品情報群のグループ指定情報」データの対応を示している。
【0076】
図6に、上記状態遷移表をほぼそのままの形で入力し仕様定義手段12により作成された仕様定義表を示す。第1列には、処理内容記述を”case”とし、共通パラメータをlayer(処理中の表)とし、実行パラメータには”S”(上位の状態遷移管理層)を記述する。
【0077】
第2列には、処理内容記述を”case”とし、共通パラメータをsheetとし、実行パラメータの各行に状態遷移表の各状態値を設定する。第3列には、処理内容記述を”case”とし、共通パラメータを”event”とし、実行パラメータの各行に状態遷移表の各遷移条件を設定する。第8列には、処理内容記述を”chsheet”(画面を更新し表示する標準関数名)とし、共通パラメータをsheet(画面区分の変数)とし、実行パラメータの各行に、遷移する状態値(新状態値)を設定する。ここで状態値はテキスト値としているが、これは番号でもよい。
【0078】
図6の実行パラメータの1行目は、最初のアクセス要求で取得画面を表示する(chsheet関数に所得画面表示を指示)。取得画面には、「性別入力値」、「年齢入力値」の2つの入力欄と、「応答」ボタンがある。「応答」ボタンを押すときに入力欄に記入されていた文字列はそれぞれ「性別入力値」、「年齢入力値」にシステムが自動的に入れる。
【0079】
図6の実行パラメータの2行目は応答受信を契機としそれらの入力値を、sex、ageのそれぞれの変数にコピーする。KETTEI表を呼び出す。(システムは表名”KETTEI”を変数layerにセットし、全ての表を走査しなおすことで結果的にKETTEI表を呼び出す。)
図8のKETTEI表にしたがいsex,ageからgrpを決定しsetする。図6の”S”の表に戻り、grpを変数「商品表示値」にsetする。次に「提供画面」を表示する(chsheet関数に指示する)。変数「商品表示値」の値は「提供画面」を表示する際に自動的に商品表示欄に表示される。
【0080】
ソフトウェア生成手段13は、前記第1の実施例と同様にして、ソフトウェアを生成する。図7に、図6の仕様定義表から生成された生成ソフトウェア18を示す。
【0081】
ここで図8の仕様定義表は、前記データ対応表から作成したものである。データ対応表の属性データ内容を図8の仕様定義表の第3列と4列に埋め込む。即ち、第3列の処理内容記述を”case”とし、共通変数をsexとし、実行パラメータの各ブロックに’1’(男)と’0’(女)を記入する。第4列の処理内容記述を”case”とし、共通変数をageとし、実行パラメータ領域の内の「’1’(男)」と「’0’(女)」に対応した各ブロックにそれぞれ年齢層「〜20」、「20〜40」、「40〜」を設定する。
【0082】
ソフトウェア生成手段13は図8の仕様定義表を読み込み、図9に示すモジュールを生成ソフトウェア18に追加し、更にソフトウェア情報17(標準関数、calltable、chsheet等)を追加し生成ソフトウェア18とし完成させる。
【0083】
上記説明では、データ対応表から仕様定義表を作成する例を示したが、データ対応表の代わりに、入力をユーザの性別と年齢とし、出力を商品グループi(iは1〜6)の商品情報提供とする入出力表から、仕様定義表を作成することもできる。
【0084】
以上により、本発明の第2の実施例の動作が終了する。
【0085】
この実施例の様に、状態遷移表、データ対応表、入出力表に近い形の仕様定義表を作成するだけで、業務システム用のソフトウェアが生成されることになる。
【0086】
以上により、本発明の実施の形態の動作が完了する。
【0087】
本発明によれば、仕様定義表に、表の形式自体を定義する欄(行や列)を含み、また前記定義する欄の記述を解釈しプログラムを生成する手段を備えているので、業務要件情報の各種表に近い形式の仕様定義表を作成するだけで、その仕様定義表に従った画面入出力およびデータ処理を実現するためのプログラムを自動的に生成できる。そして、その結果としてソフトウェア開発の生産性と品質を向上させることができる。
【0088】
また、仕様定義表の内容を変えることによって、生成するソフトウェアの変更も簡単に行うことができ、適用すべき業務形態の変化等に応じて、ソフトウェアを柔軟かつタイムリーに変更することができる。
【産業上の利用可能性】
【0089】
本発明は、データベースのデータに端末画面から参照・更新を行う業務システムや、バッチ処理によるデータ処理の用途に適用できる。
【図面の簡単な説明】
【0090】
【図1】本発明のソフトウェア自動生成装置1の構成を示すブロック図である。
【図2】本発明の第1の実施例の仕様定義表16−1の内容例を示す図である。
【図3】本発明のソフトウェア生成手段13の動作を示すフローチャートである。
【図4】本発明のソフトウェア生成手段13の動作を示すフローチャートである。
【図5】本発明の第1の実施例の生成ソフトウェア18の内容例を示す図である。
【図6】本発明の第2の実施例の仕様定義表16−1の内容例を示す図である。
【図7】本発明の第2の実施例の生成ソフトウェア18の内容例を示す図である。
【図8】本発明の第2の実施例の別の仕様定義表の内容例を示す図である。
【図9】本発明の第2の実施例の生成ソフトウェア18の内容例を示す図である。
【符号の説明】
【0091】
1 ソフトウェア自動生成装置
11 データ処理部
12 仕様定義手段
13 ソフトウェア生成手段
14 配信手段
15 記憶部
16−1〜16−4 仕様定義表
17 ソフトウェア情報
18 生成ソフトウェア
2 業務システム
21 ソフトウェア実行装置
22 データベース
23 端末
100、101 ネットワーク
111 処理内容記述行
112 共通パラメータ記述行
113 実行パラメータ記述行
114 行種別記述列
115 処理内容記述列

【特許請求の範囲】
【請求項1】
システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手段と、
前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手段とを備えたことを特徴とするソフトウェア自動生成装置。
【請求項2】
前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、
前記ソフトウェア生成手段が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを有することを特徴とする請求項1記載のソフトウェア自動生成装置。
【請求項3】
前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、
前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、
前記ソフトウェア生成手段が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う手段を有することを特徴とする請求項2記載のソフトウェア自動生成装置。
【請求項4】
前記処理内容を表すキーワードは、条件分岐を表す第1のキーワードと、変数への代入を表す第2のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第3のキーワードとを含み、
前記ソフトウェア生成手段が、前記第1のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手段と、前記第2のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手段と、前記第3のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手段とを有することを特徴とする請求項3記載のソフトウェア自動生成装置。
【請求項5】
前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、
前記ソフトウェア生成手段は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成することを特徴とする請求項3、または4に記載のソフトウェア自動生成装置。
【請求項6】
前記ソフトウェア生成手段は、前記処理内容記述行に条件分岐を表す第1のキーワードを記述した列が連続してい場合に、連続した複数段の条件分岐を生成する手段を有することを特徴とする請求項3、または4に記載のソフトウェア自動生成装置。
【請求項7】
端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す機能を有し、
前記既定変数には現在処理中の表の名前を示す“layer”、現在表示中の画面名を示す“sheet”、ユーザが行なった操作の名前を示す“event”を有する標準関数を持つことを特徴とする請求項4記載のソフトウェア自動生成装置。
【請求項8】
システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、
前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順とをコンピュータに実行させるためのプログラム。
【請求項9】
前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、
前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成することを特徴とする請求項8記載のプログラム。
【請求項10】
前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、
前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、
前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行うことを特徴とする請求項9記載のプログラム。
【請求項11】
前記処理内容を表すキーワードは、条件分岐を表す第1のキーワードと、変数への代入を表す第2のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第3のキーワードとを含み、
前記ソフトウェア生成手順が、前記第1のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手順と、前記第2のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手順と、前記第3のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手順とを含むことを特徴とする請求項10記載のプログラム。
【請求項12】
前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、
前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成することを特徴とする請求項10または11記載のプログラム。
【請求項13】
前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第1のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有することを特徴とする請求項10または11記載のプログラム。
【請求項14】
端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“layer”、現在表示中の画面名を示す“sheet”、ユーザが行なった操作の名前を示す“event”を有する標準関数を持つことを特徴とする請求項11記載のプログラム。
【請求項15】
システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、
前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順と、
を含むことを特徴とするソフトウェア自動生成方法。
【請求項16】
前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、
前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを含むことを特徴とする請求項15記載のソフトウェア自動生成方法。
【請求項17】
前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、
前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、
前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う処理を含むことを特徴とする請求項16記載のソフトウェア自動生成方法。
【請求項18】
前記処理内容を表すキーワードは、条件分岐を表す第1のキーワードと、変数への代入を表す第2のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第3のキーワードとを含み、
前記ソフトウェア生成手順が、前記第1のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する処理と、前記第2のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する処理と、前記第3のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す処理とを含むことを特徴とする請求項17記載のソフトウェア自動生成方法。
【請求項19】
前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、
前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成することを特徴とする請求項17、または18に記載のソフトウェア自動生成方法。
【請求項20】
前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第1のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有することを特徴とする請求項17、または18に記載のソフトウェア自動生成方法。
【請求項21】
端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“layer”、現在表示中の画面名を示す“sheet”、ユーザが行なった操作の名前を示す“event”を有する標準関数を持つことを特徴とする請求項18記載のソフトウェア自動生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−59135(P2008−59135A)
【公開日】平成20年3月13日(2008.3.13)
【国際特許分類】
【出願番号】特願2006−233527(P2006−233527)
【出願日】平成18年8月30日(2006.8.30)
【出願人】(306029774)NECビッグローブ株式会社 (115)
【Fターム(参考)】