(57)【要約】【課題】画面遷移表、状態遷移表、データ定義表、データ対応表、入出力表といったさまざまな要求仕様情報から、自動的にソフトウェアを生成する。【解決手段】ソフトウェア自動生成装置１は、要求仕様情報から決定表形式の仕様定義表１６−１〜１６−４を作成する仕様定義手段１２と、仕様定義表１６−１〜１６−４とソフトウェア情報１７から、生成ソフトウェア１８を自動生成するソフトウェア生成手段１３を備える。仕様定義表には、表の列毎に、前記列の記載内容を定義し記述する行を有しソフトウェア生成手段１３がこれを解釈しソフトウェアを生成する。【選択図】      図１
2008059135.tif 000002
【特許請求の範囲】
【請求項１】
システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手段と、
前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手段とを備えたことを特徴とするソフトウェア自動生成装置。
【請求項２】
前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、
前記ソフトウェア生成手段が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを有することを特徴とする請求項１記載のソフトウェア自動生成装置。
【請求項３】
前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、
前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、
前記ソフトウェア生成手段が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う手段を有することを特徴とする請求項２記載のソフトウェア自動生成装置。
【請求項４】
前記処理内容を表すキーワードは、条件分岐を表す第１のキーワードと、変数への代入を表す第２のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第３のキーワードとを含み、
前記ソフトウェア生成手段が、前記第１のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手段と、前記第２のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手段と、前記第３のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手段とを有することを特徴とする請求項３記載のソフトウェア自動生成装置。
【請求項５】
前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、
前記ソフトウェア生成手段は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成することを特徴とする請求項３、または４に記載のソフトウェア自動生成装置。
【請求項６】
前記ソフトウェア生成手段は、前記処理内容記述行に条件分岐を表す第１のキーワードを記述した列が連続してい場合に、連続した複数段の条件分岐を生成する手段を有することを特徴とする請求項３、または４に記載のソフトウェア自動生成装置。
【請求項７】
端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す機能を有し、
前記既定変数には現在処理中の表の名前を示す“ｌａｙｅｒ”、現在表示中の画面名を示す“ｓｈｅｅｔ”、ユーザが行なった操作の名前を示す“ｅｖｅｎｔ”を有する標準関数を持つことを特徴とする請求項４記載のソフトウェア自動生成装置。
【請求項８】
システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、
前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順とをコンピュータに実行させるためのプログラム。
【請求項９】
前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、
前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成することを特徴とする請求項８記載のプログラム。
【請求項１０】
前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、
前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、
前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行うことを特徴とする請求項９記載のプログラム。
【請求項１１】
前記処理内容を表すキーワードは、条件分岐を表す第１のキーワードと、変数への代入を表す第２のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第３のキーワードとを含み、
前記ソフトウェア生成手順が、前記第１のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手順と、前記第２のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手順と、前記第３のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手順とを含むことを特徴とする請求項１０記載のプログラム。
【請求項１２】
前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、
前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成することを特徴とする請求項１０または１１記載のプログラム。
【請求項１３】
前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第１のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有することを特徴とする請求項１０または１１記載のプログラム。
【請求項１４】
端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“ｌａｙｅｒ”、現在表示中の画面名を示す“ｓｈｅｅｔ”、ユーザが行なった操作の名前を示す“ｅｖｅｎｔ”を有する標準関数を持つことを特徴とする請求項１１記載のプログラム。
【請求項１５】
システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、
前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順と、
を含むことを特徴とするソフトウェア自動生成方法。
【請求項１６】
前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、
前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを含むことを特徴とする請求項１５記載のソフトウェア自動生成方法。
【請求項１７】
前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、
前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、
前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う処理を含むことを特徴とする請求項１６記載のソフトウェア自動生成方法。
【請求項１８】
前記処理内容を表すキーワードは、条件分岐を表す第１のキーワードと、変数への代入を表す第２のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第３のキーワードとを含み、
前記ソフトウェア生成手順が、前記第１のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する処理と、前記第２のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する処理と、前記第３のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す処理とを含むことを特徴とする請求項１７記載のソフトウェア自動生成方法。
【請求項１９】
前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、
前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成することを特徴とする請求項１７、または１８に記載のソフトウェア自動生成方法。
【請求項２０】
前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第１のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有することを特徴とする請求項１７、または１８に記載のソフトウェア自動生成方法。
【請求項２１】
端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“ｌａｙｅｒ”、現在表示中の画面名を示す“ｓｈｅｅｔ”、ユーザが行なった操作の名前を示す“ｅｖｅｎｔ”を有する標準関数を持つことを特徴とする請求項１８記載のソフトウェア自動生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアの自動生成装置とソフトウェア自動生成方法、およびプログラムに関し、特に業務システム等のシステムの仕様を表形式で定義した仕様定義表に基づきシステムのソフトウェアを自動生成するソフトウェア自動生成装置とソフトウェア自動生成方法、およびプログラムに関する。
【背景技術】
【０００２】
従来のソフトウェアの自動生成装置の一例が、特許文献１に記載されている。この従来のソフトウェアの自動生成装置は、仕様情報定義部と、定義情報抽出部と、定義情報解析部と、プログラム生成部と、プログラム生成情報とから構成されている。
【０００３】
このような構成を有する従来のソフトウェアの自動生成装置はつぎのように動作する。すなわち、仕様情報としてデータ処理で使用する計算式、データの抽出元、計算結果の移行先、データ処理条件の定義を読み込み、データ処理を行うソフトウェアを生成する。
【０００４】
【特許文献１】特開２０００−２３１４７８号公報（第１ページ）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記従来の表形式からのソフトウェア自動生成装置では、業務システムを構築する上で必要となる、画面遷移表、状態遷移表、データ定義表、データ対応表、入出力表といった要求仕様情報を、そのままに近い形で入力することができないという問題点がある。その理由は、従来のソフトウェア自動生成装置が、特定の固定形式の表からのソフトウェア生成しかできず、表の形式自体を定義する欄（行や列）を提供しておらず、また前記定義する欄の記述を解釈する手段を備えていないためである。
【０００６】
本発明の目的は、上記問題点を解決したソフトウェア自動生成装置と方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１のソフトウェア自動生成装置は、システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手段と、前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手段とを備える。
【０００８】
本発明の第２のソフトウェア自動生成装置は、前記第１のソフトウェア自動生成装置であって、前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、前記ソフトウェア生成手段が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを有する。
【０００９】
本発明の第３のソフトウェア自動生成装置は、前記第２のソフトウェア自動生成装置であって、前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、前記ソフトウェア生成手段が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う手段を有する。
【００１０】
本発明の第４のソフトウェア自動生成装置は、前記第３のソフトウェア自動生成装置であって、前記処理内容を表すキーワードは、条件分岐を表す第１のキーワードと、変数への代入を表す第２のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第３のキーワードとを含み、前記ソフトウェア生成手段が、前記第１のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手段と、前記第２のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手段と、前記第３のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手段とを有する。
【００１１】
本発明の第５のソフトウェア自動生成装置は、前記第３、または第４のソフトウェア自動生成装置であって、前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、前記ソフトウェア生成手段は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成する。
【００１２】
本発明の第６のソフトウェア自動生成装置は、前記第３、または第４のソフトウェア自動生成装置であって、前記ソフトウェア生成手段は、前記処理内容記述行に条件分岐を表す第１のキーワードを記述した列が連続してい場合に、連続した複数段の条件分岐を生成する手段を有する。
【００１３】
本発明の第７のソフトウェア自動生成装置は、前記第４のソフトウェア自動生成装置であって、端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す機能を有し、前記既定変数には現在処理中の表の名前を示す“ｌａｙｅｒ”、現在表示中の画面名を示す“ｓｈｅｅｔ”、ユーザが行なった操作の名前を示す“ｅｖｅｎｔ”を有する標準関数を持つ。
【００１４】
本発明の第１のプログラムは、システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順とをコンピュータに実行させる。
【００１５】
本発明の第２のプログラムは、前記第１のプログラムであって、前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する。
【００１６】
本発明の第３のプログラムは、前記第２のプログラムであって、前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う。
【００１７】
本発明の第４のプログラムは、前記第３のプログラムであって、前記処理内容を表すキーワードは、条件分岐を表す第１のキーワードと、変数への代入を表す第２のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第３のキーワードとを含み、前記ソフトウェア生成手順が、前記第１のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する手順と、前記第２のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する手順と、前記第３のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す手順とを含む。
【００１８】
本発明の第５のプログラムは、前記第３または第４のプログラムであって、前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成する。
【００１９】
本発明の第６のプログラムは、前記第３または第４のプログラムであって、前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第１のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有する。
【００２０】
本発明の第７のプログラムは、前記第４のプログラムであって、端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“ｌａｙｅｒ”、現在表示中の画面名を示す“ｓｈｅｅｔ”、ユーザが行なった操作の名前を示す“ｅｖｅｎｔ”を有する標準関数を持つ。
【００２１】
本発明の第１のソフトウェア自動生成方法は、システムの仕様を表形式で定義し、表の列毎に当該列の記載内容を定義し記述する記述行を有する仕様定義表を作成する仕様定義手順と、前記仕様定義表の前記記述行の内容に基づいてソフトウェアを生成するソフトウェア生成手順と、を含む。
【００２２】
本発明の第２のソフトウェア自動生成方法は、前記第１のソフトウェア自動生成方法であって、前記仕様定義表を、前記システムの状態と前記システムに発生したイベントとの組合せに応じた決定表形式とし、かつ前記仕様定義表に記述される複数の処理内容を、前記組合せによる条件判定処理と、条件ごとに実施の可否、およびそのパラメータを指定した条件対応の処理とし、前記ソフトウェア生成手順が、前記記述行の内容により、前記仕様定義表に記述される前記条件判定処理と前記条件対応の処理とを解釈しソフトウェアを生成する処理とを含む。
【００２３】
本発明の第３のソフトウェア自動生成方法は、前記第２のソフトウェア自動生成方法であって、前記仕様定義表には、それぞれが同じ種類の処理命令に対応した複数の処理内容記述列と、前記各列の各行の種別を表すキーワードが記述された行種別記述列とを含み、前記行の種別は、処理内容を示すキーワードが記述された処理内容記述行と、変数名や他のソフトウェア呼出しをする際のパラメータが記述された共通パラメータ記述行と、前記処理内容を実行するかどうかの区別と実行する場合のパラメータが記述された実行パラメータ記述行とを含み、前記ソフトウェア生成手順が、前記処理内容記述行、前記共通パラメータ記述行、前記実行パラメータ記述行の区別を前記行種別記述列のキーワードにより行う処理を含む。
【００２４】
本発明の第４のソフトウェア自動生成方法は、前記第３のソフトウェア自動生成方法であって、前記処理内容を表すキーワードは、条件分岐を表す第１のキーワードと、変数への代入を表す第２のキーワードと、端末やデータベースへの入出力を行う標準関数の呼び出しを表す第３のキーワードとを含み、前記ソフトウェア生成手順が、前記第１のキーワードが処理内容記述行に記述されている場合にはその列の共通パラメータの値が実行パラメータの示す値や範囲であることを条件とする条件分岐命令を生成する処理と、前記第２のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値を共通パラメータ記述行で指定された変数に代入する命令を生成する処理と、前記第３のキーワードが処理内容記述行に記述されている場合にはその列の実行パラメータの値と共通パラメータの値をパラメータとして前記キーワードに対応する標準関数を呼び出す処理とを含む。
【００２５】
本発明の第５のソフトウェア自動生成方法は、前記第３、または第４のソフトウェア自動生成方法であって、前記仕様定義表において、前記処理内容記述行は、前記キーワードまたは他の仕様定義表に基づき生成されたソフトウェア識別情報が記述され、前記ソフトウェア生成手順は、前記仕様定義表の処理内容記述行の記述が前記キーワードでなければ、当該処理内容記述行に他の仕様定義表対応のソフトウェア識別情報が記載されていると判断し、当該ソフトウェア識別情報に対応するソフトウェアを呼び出す処理命令を生成する。
【００２６】
本発明の第６のソフトウェア自動生成方法は、前記第３、または第４のソフトウェア自動生成方法であって、前記ソフトウェア生成手順は、前記処理内容記述行に条件分岐を表す第１のキーワードを記述した列が連続している場合に、連続した複数段の条件分岐を生成する手順を有する。
【００２７】
本発明の第７のソフトウェア自動生成方法は、前記第４のソフトウェア自動生成方法であって、端末から入力された処理要求に応じて、端末から入力されたデータを既定変数に代入した上で、前記生成するソフトウェアを呼び出す手順を有し、前記既定変数には現在処理中の表の名前を示す“ｌａｙｅｒ”、現在表示中の画面名を示す“ｓｈｅｅｔ”、ユーザが行なった操作の名前を示す“ｅｖｅｎｔ”を有する標準関数を持つ。
【発明の効果】
【００２８】
本発明によれば、仕様定義表に、表の形式自体を定義する欄（行や列）を含み、また前記定義する欄の記述を解釈しプログラムを生成する手段を備えているので、業務要件情報の各種表に近い形式の仕様定義表を作成するだけで、その仕様定義表に従った画面入出力およびデータ処理を実現するためのプログラムを自動的に生成できる。
【発明を実施するための最良の形態】
【００２９】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。図１に本発明の実施の形態であるソフトウェア自動生成装置１の構成を示す。また図１には、ソフトウェア自動生成装置１により作成されたソフトウェアを実行する業務システム２も示している。
【００３０】
図１を参照し、本発明のソフトウェア自動生成装置１は、プログラム制御で動作する情報処理装置であり、仕様定義手段１２とソフトウェア生成手段１３と配信手段１４をデータ処理部１１に備え、記憶部１５にはソフトウェア情報１７を保持している。また、記憶部１５には複数の仕様定義表１６−１〜１６−４と、生成ソフトウェア１８も格納される。
【００３１】
ここで、データ処理部１１は、ハードウェアとしては、図示してないがＣＰＵと主メモリとキーボード等の入力デバイスと表示装置を備えている。また、記憶部１５は磁気ディスク装置等の不揮発性の補助記憶装置でありファイルを記憶する。
【００３２】
仕様定義手段１２は表作成ソフトウェア、或いは表計算ソフトウェアであり、仕様定義表１６−１〜１６−４を作成する。仕様定義表１６−１〜１６−４の各表は、図２に示すように処理内容記述行１１１と、共通パラメータ記述行１１２と、実行パラメータ記述行１１３と、行種別記述列１１４と、処理内容記述列１１５を含む。尚、実行パラメータ記述領域における破線は、ブロックが個々の升目が結合されたものであることを示している。
【００３３】
ソフトウェア生成手段１３は、仕様定義表１６−１を読み込み、表の升目を順に走査しながら対応するソフトウェアを生成し、以降同様にして仕様定義表１６−４まで対応するソフトウェアを生成しこれらと、標準関数を含む定義済みソフトウェアであるソフトウェア情報１７を結合し、生成ソフトウェア１８とし記憶部１５に格納する。
【００３４】
配信手段１４は、生成ソフトウェア１８をＬＡＮ等のネットワーク１００を通じ、ソフトウェア実行装置２１に配信する。
【００３５】
ソフトウェア実行装置２１は、サーバ等の情報処理装置であり、配信されたソフトウェアの制御により、パーソナルコンピュータ等の端末２３に、データベース２２の参照や更新に関するサービスを提供する。サービスはネットワーク１０１を通じて行う。
【００３６】
次に、仕様定義表１６−１〜１６−４、生成ソフトウェア１８の詳細や、ソフトウェア自動生成装置１の各手段の概略動作を説明する。仕様定義表１６−１〜１６−４のそれぞれは、業務システム２の仕様を定義した表形式の文書データであり、図２に示す様に、処理内容記述行１１１と共通パラメータ記述行１１２と実行パラメータ記述行１１３の３種類の行に分かれ、この順に配列される。
【００３７】
また横方向には行種別記述列１１４と、処理内容記述列１１５の２種類の列に分かれ、この順に配列される。
【００３８】
行種別記述列１１４には、仕様定義手段１２により行の種別を識別するためのキーワードが自動記述される。即ち、処理内容記述行１１１であることを示す”ａｃｔｉｏｎ”、共通パラメータ記述行１１２であることを示す”ｃｏｍｍｏｎ”、実行パラメータ記述行１１３であることを示す”ｐａｔｔｅｒｎ”が記述される。
【００３９】
仕様定義手段１２は、指示入力に従い、処理内容記述列１１５に次に示す内容を記述する。処理内容記述行１１１には、処理内容を示すキーワード、あるいは他の仕様定義表１６−２〜１６−４の何れかに対応したソフトウェア（モジュール）の名前を記述する。
【００４０】
共通パラメータ記述行１１２には各処理の必要に応じてパラメータを記述する。図２の例では、変数名をパラメータとして取る処理”ｃａｓｅ”、“ｓｅｔ”に対して、パラメータとして変数名である”ｌａｙｅｒ”、”ｓｈｅｅｔ”、”ｅｖｅｎｔ”、”ｖａｒ１”を記述し、文字列をパラメータとしてとる処理“ＶＣＭＡＰ”、“Ｃ”に対して、パラメータとして文字列“ＨＨＨＨ”、“ＥＥＥＥ”を記述している。
【００４１】
一部の変数はシステムが自動的に値を代入するものもあり、例えば“ｌａｙｅｒ”には現在処理中の表の名前、“ｓｈｅｅｔ”には現在表示中の画面名、“ｅｖｅｎｔ”にはユーザが行った操作の名前、などが自動的に代入される。
【００４２】
実行パラメータ記述行１１３に記述する内容は、その同じ列の処理内容記述行１１１の内容によって次のように意味が変わる。
【００４３】
実行パラメータ記述行１１３に条件分岐を示すキーワード“ｃａｓｅ”が記入されている場合には、その行が実行されるかどうかを決める条件値を記述する。実行パラメータ記述行１１３にキーワード“ｃａｓｅ”以外が記入されている場合には、キーワードに示された処理内容を実行するかどうかの区別、および実行する場合のパラメータを記述する。
【００４４】
ソフトウェア生成手段１３は、仕様定義表１６−１を読み込み、表の升目を順に走査しながら生成ソフトウェア１８を生成する。生成にあたってはまず行種別記述列１１４の内容（キーワード）から、処理内容記述行１１１と、共通パラメータ記述行１１２と、実行パラメータ記述行１１３を識別する。
【００４５】
ソフトウェア生成手段１３は、次に実行パラメータ記述行１１３の処理内容記述列１１５内の全ての升目を走査しながら生成ソフトウェア１８に処理命令を追加していく。走査は実行パラメータ領域の左上端の升目である走査開始位置１１６から開始し、左から右へ、また右端に達した後は、実行パラメータ領域の次の行の左端という順で行い、実行パラメータ記述行１１３の下端まで行う。
【００４６】
このとき空欄の升目については、その升目がパラメータ値を持つ升目に結合された升目でなくパラメータ値がヌルの升目（例えば升目１１７）であれば無視して次の升目に進む。それぞれの升目で追加する処理命令は、その升目と同じ列の処理内容記述行１１１の内容によって決定する。処理内容記述行１１１の内容が条件分岐を示すキーワード“ｃａｓｅ”である場合には処理命令として条件分岐を示す制御構造を追加する。例えばＣ言語の場合には“ｉｆ”文を追加する。このとき上の行の制御構造が継続している場合があるため適切に条件分岐の制御構造を完結させる。
【００４７】
処理内容記述行１１１の内容があらかじめ定義された処理命令を示すキーワードである場合には、キーワードに対応する処理命令を生成ソフトウェア１８に追加する。処理内容記述行１１１の内容があらかじめ定義されたキーワード対応の処理命令でない場合には、別の仕様定義表より生成されたソフトウェアモジュールの呼び出しを行う関数（ｃａｌｌｔａｂｌｅ）を生成ソフトウェア１８に追加する。
【００４８】
ソフトウェア生成手段１３は、以降、仕様定義表１６−２を読み込み、同様にソフトウェアを生成し、生成ソフトウェア１８に追加ないし結合する。仕様定義表１６−４の分まで処理すると  最後に、生成ソフトウェア１８にソフトウェア情報１７に含まれるソフトウェアを追加し、ソフトウェアの生成を完了する。
【００４９】
ソフトウェア情報１７は、標準関数等のあらかじめ定義された処理を実行するためのソフトウェアを含み、ソフトウェア自動生成装置の使用者が予め定義した”ｃａｌｌｔａｂｌｅ”等の関数も含む。
【００５０】
生成ソフトウェア１８は、ソフトウェア生成手段１３が生成したソフトウェアであり、ダウンロード要求を受け、配信手段１４がソフトウェア実行装置２１に配信することでシステムとして動作する。
【００５１】
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
先ず、作成される仕様定義表の内容を図２に示す内容とする第１の実施例について説明する。図３はソフトウェア生成手段１３の動作を示すフローチャートである。
【００５２】
仕様定義手段１２を用いて、仕様情報の画面遷移表が入力され、図２の仕様定義表１６−１が作成される。ここで、図２の仕様定義表１６−１の第１列は、処理中の表がＶ（画面処理）であることを前提とするものである。次に他の仕様定義表も同様に作成される。
【００５３】
ここで、仕様定義表１６−１〜１６−４の各ファイルは、表サイズ（行識別最大値と列識別最大値）と、各升目の位置（行識別と列識別）に対応して升目の内容が有効な値（文字列等）か、ヌルに設定されている。また升目の結合に関する情報（ブロックを構成する複数の升目の位置か識別）も設定されている。
【００５４】
以下図３に沿って第１の実施例の動作を詳細に説明する。ソフトウェア生成手段１３は開始すると、まず初期化処理として、仕様定義表１６−１〜１６−４の各ファイルを読み出し可能な状態とし、また生成ソフトウェア１８用の領域を初期化して書き込み可能な状態とする（ステップ２０１）。
【００５５】
次に変数「現在の升目」に、走査開始位置１１６を示す値をセットする（ステップ２０２）。次に生成ソフトウェア１８に処理開始の処理命令を書き込む。例えばＣ言語を生成する場合は関数の定義宣言などである（ステップ２０３）。
【００５６】
次に前行までの条件分岐の制御構造の段数を示す変数「最終分岐レベル」に０をセットする（ステップ２０４）。次に実行パラメータ記述行１１３に含まれる全ての行についての走査を行うため、変数「現在の升目」を１行ずつ下に移動させながら、ステップ２２１までの処理を繰り返す（ステップ２０５）。
【００５７】
次にその行での条件分岐の制御構造の段数を示す変数「分岐レベル」に０をセットする（ステップ２０６）。次に処理内容記述列１１５に含まれる全ての列についての走査を行うため、変数「現在の升目」を１列ずつ右に移動させながら、ステップ２２０までの処理を繰り返す。繰り返しの終わりでは変数「現在の升目」の列位置は元の位置に戻す（ステップ２０７）。
【００５８】
次に「現在の升目」が指し示す升目の内容を参照し、升目が空欄（升目の値がヌル）であればステップ２１６に移る（ステップ２０８）。
【００５９】
次に処理内容での分岐を行う。そのため「現在の升目」と同じ列の処理内容記述行１１１に書かれた処理内容を参照し、以降のそれぞれの場合に分岐する。
【００６０】
参照したキーワードが文字列”ｃａｓｅ”であれば（ステップ２０９）、生成ソフトウェア１８に対して書き込み途中となっている条件分岐の制御構造を完結させるため、（最終分岐レベル−分岐レベル）の回数だけ、分岐終了の処理命令を生成ソフトウェア１８に書き込む。分岐終了の処理命令は例えばＣ言語を生成する場合は“ｒｅｔｕｒｎ；｝”となる（ステップ２１０）。
【００６１】
次に条件分岐の制御構造命令を生成ソフトウェア１８に書き込む。このとき「現在の升目」の内容と、「現在の升目」と同じ列の共通パラメータ記述行１１２の内容を使って判断条件を生成する。例えばＣ言語を生成する場合は、”ｉｆ（“＋共通パラメータ記述行１１２の内容＋“＝＝”＋「現在の升目」の内容＋“）｛”となる（ステップ２１１）。ここで「＋」は文字列の結合を示している。
【００６２】
次に条件分岐の制御構造の段数を示す変数「分岐レベル」に１を加える（ステップ２１２）。次に次行以降で条件分岐の制御構造を完結させられるよう、変数「最終分岐レベル」に変数「分岐レベル」の内容を代入する（ステップ２１３）。
【００６３】
参照したキーワードが、定義済みのキーワードの一つであれば（ステップ２０９）、キーワードに対応する処理命令を、生成ソフトウェア１８に書き込む（ステップ２１４）。ここで、定義済みのキーワードとは、ソフトウェア自動生成装置１としてあらかじめ用意してある命令を示す名前であり、キーワードに対応する処理命令があらかじめ決まっている。定義済みキーワードの例としては変数への代入を示す“set”などを用意する。
【００６４】
参照したキーワードが、定義済みのキーワードでなければ（ステップ２０９）、他の仕様定義表により生成されるモジュールを呼び出す場合であり、他の仕様定義表により生成されるモジュールを呼び出す処理命令を、生成ソフトウェア１８に書き込む。
【００６５】
このとき処理内容記述行１１１の内容、共通パラメータ記述行１１２の内容、および「現在の升目」の内容を、呼び出し先に伝えることができるように処理命令を生成する。例えばＣ言語を生成する場合は、”ｃａｌｌｔａｂｌｅ（“＋処理内容記述行１１１の内容＋“，”＋共通パラメータ記述行１１２の内容＋“，”＋「現在の升目」の内容＋“）；”となる（ステップ２１５）。
【００６６】
ステップ２０８で升目が空欄であった場合には、その升目が前の行の升目に結合されていれば（ステップ２１６）、「現在の升目」と同じ列の処理内容記述行１１１に書かれた処理内容を参照し、キーワードが文字列”ｃａｓｅ”であれば（ステップ２１７）、条件分岐の制御構造の段数を示す変数「分岐レベル」に１を加える（ステップ２１８）。
【００６７】
ステップ２１７で、前記処理内容記述が”ｃａｓｅ”でなければ、実行パラメータ値を、結合元升目の実行パラメータ値とし、ステップ２０９に進む（ステップ２１９）。ステップ２１６で、その升目が結合された升目でなければ、なにもせず（無視して）次の升目に進む。
【００６８】
「現在の升目」が処理中の行の最後の列でなければ、ステップ２０７に進み、最後の列であれば、ステップ２２１に進む（ステップ２２０）。「現在の升目」が最後の行でなければ、ステップ２０５に進み、最後の行であれば、ステップ２２２に進む（ステップ２２１）。
【００６９】
次に生成ソフトウェア１８に対して書き込み途中となっている条件分岐の制御構造を完結させるため、（最終分岐レベル−分岐レベル）の回数だけ、分岐終了の処理命令を生成ソフトウェア１８に書き込む（ステップ２２２）。
【００７０】
次に生成ソフトウェア１８に対して処理終了の処理命令を書き込む（ステップ２２３）。全ての仕様定義表を処理済みでなければ（ステップ２２４）、ステップ２０２に進み次の仕様定義表１６−２を処理し、全ての仕様定義表を処理すると（ステップ２２４）、後処理に進む。後処理として、生成ソフトウェア１８をソフトウェア実行装置２１が読み込めるようにするための処理を行う。例えば生成ソフトウェア１８にソフトウェア情報１７に含まれる標準関数のソフトウェアを追加する等を行う（ステップ２２５）。
【００７１】
以上により、本発明の第１の実施例の動作が終了する。
【００７２】
この実施例の様に、画面遷移表に近い形の仕様定義表を作成すると、業務システム用のソフトウェアが生成されることになる。
【００７３】
次に本発明の第２の実施例について説明する。仕様情報として、状態遷移表とデータ対応表が作成されており、これらより仕様定義表を作成し、それに対応したプログラムを生成する例を説明する。
【００７４】
先ず状態遷移表は「初期」状態でアクセス要求（ＲＥＱ）を受信するとユーザ属性取得を行い「取得画面」状態に、この状態で応答（ＲＥＰＬＹ）を受信すると、取得されたユーザ属性（性別と年齢層）に応じた商品情報群の提供を行い「提供画面」状態に、購入要求（ＰＵＲ−ＲＥＱ）を受信すると、申込画面を送信し「申込画面」状態にそれぞれ遷移することが記述されている。
【００７５】
ここで商品情報群を提供する前に、ユーザの性別と年令層に応じ前記群（グループ）番号を決める必要があり、データ対応表がユーザ属性（性別と年令層）データと「提供商品情報群のグループ指定情報」データの対応を示している。
【００７６】
図６に、上記状態遷移表をほぼそのままの形で入力し仕様定義手段１２により作成された仕様定義表を示す。第１列には、処理内容記述を”ｃａｓｅ”とし、共通パラメータをｌａｙｅｒ（処理中の表）とし、実行パラメータには”Ｓ”（上位の状態遷移管理層）を記述する。
【００７７】
第２列には、処理内容記述を”ｃａｓｅ”とし、共通パラメータをｓｈｅｅｔとし、実行パラメータの各行に状態遷移表の各状態値を設定する。第３列には、処理内容記述を”ｃａｓｅ”とし、共通パラメータを”ｅｖｅｎｔ”とし、実行パラメータの各行に状態遷移表の各遷移条件を設定する。第８列には、処理内容記述を”ｃｈｓｈｅｅｔ”（画面を更新し表示する標準関数名）とし、共通パラメータをｓｈｅｅｔ（画面区分の変数）とし、実行パラメータの各行に、遷移する状態値（新状態値）を設定する。ここで状態値はテキスト値としているが、これは番号でもよい。
【００７８】
図６の実行パラメータの１行目は、最初のアクセス要求で取得画面を表示する（ｃｈｓｈｅｅｔ関数に所得画面表示を指示）。取得画面には、「性別入力値」、「年齢入力値」の２つの入力欄と、「応答」ボタンがある。「応答」ボタンを押すときに入力欄に記入されていた文字列はそれぞれ「性別入力値」、「年齢入力値」にシステムが自動的に入れる。
【００７９】
図６の実行パラメータの２行目は応答受信を契機としそれらの入力値を、ｓｅｘ、ａｇｅのそれぞれの変数にコピーする。ＫＥＴＴＥＩ表を呼び出す。（システムは表名”ＫＥＴＴＥＩ”を変数ｌａｙｅｒにセットし、全ての表を走査しなおすことで結果的にＫＥＴＴＥＩ表を呼び出す。）
図８のＫＥＴＴＥＩ表にしたがいｓｅｘ，ａｇｅからｇｒｐを決定しｓｅｔする。図６の”Ｓ”の表に戻り、ｇｒｐを変数「商品表示値」にｓｅｔする。次に「提供画面」を表示する（ｃｈｓｈｅｅｔ関数に指示する）。変数「商品表示値」の値は「提供画面」を表示する際に自動的に商品表示欄に表示される。
【００８０】
ソフトウェア生成手段１３は、前記第１の実施例と同様にして、ソフトウェアを生成する。図７に、図６の仕様定義表から生成された生成ソフトウェア１８を示す。
【００８１】
ここで図８の仕様定義表は、前記データ対応表から作成したものである。データ対応表の属性データ内容を図８の仕様定義表の第３列と４列に埋め込む。即ち、第３列の処理内容記述を”ｃａｓｅ”とし、共通変数をｓｅｘとし、実行パラメータの各ブロックに’１’（男）と’０’（女）を記入する。第４列の処理内容記述を”ｃａｓｅ”とし、共通変数をａｇｅとし、実行パラメータ領域の内の「’１’（男）」と「’０’（女）」に対応した各ブロックにそれぞれ年齢層「〜２０」、「２０〜４０」、「４０〜」を設定する。
【００８２】
ソフトウェア生成手段１３は図８の仕様定義表を読み込み、図９に示すモジュールを生成ソフトウェア１８に追加し、更にソフトウェア情報１７（標準関数、ｃａｌｌｔａｂｌｅ、ｃｈｓｈｅｅｔ等）を追加し生成ソフトウェア１８とし完成させる。
【００８３】
上記説明では、データ対応表から仕様定義表を作成する例を示したが、データ対応表の代わりに、入力をユーザの性別と年齢とし、出力を商品グループｉ（ｉは１〜６）の商品情報提供とする入出力表から、仕様定義表を作成することもできる。
【００８４】
以上により、本発明の第２の実施例の動作が終了する。
【００８５】
この実施例の様に、状態遷移表、データ対応表、入出力表に近い形の仕様定義表を作成するだけで、業務システム用のソフトウェアが生成されることになる。
【００８６】
以上により、本発明の実施の形態の動作が完了する。
【００８７】
本発明によれば、仕様定義表に、表の形式自体を定義する欄（行や列）を含み、また前記定義する欄の記述を解釈しプログラムを生成する手段を備えているので、業務要件情報の各種表に近い形式の仕様定義表を作成するだけで、その仕様定義表に従った画面入出力およびデータ処理を実現するためのプログラムを自動的に生成できる。そして、その結果としてソフトウェア開発の生産性と品質を向上させることができる。
【００８８】
また、仕様定義表の内容を変えることによって、生成するソフトウェアの変更も簡単に行うことができ、適用すべき業務形態の変化等に応じて、ソフトウェアを柔軟かつタイムリーに変更することができる。
【産業上の利用可能性】
【００８９】
本発明は、データベースのデータに端末画面から参照・更新を行う業務システムや、バッチ処理によるデータ処理の用途に適用できる。
【図面の簡単な説明】
【００９０】
【図１】本発明のソフトウェア自動生成装置１の構成を示すブロック図である。
【図２】本発明の第１の実施例の仕様定義表１６−１の内容例を示す図である。
【図３】本発明のソフトウェア生成手段１３の動作を示すフローチャートである。
【図４】本発明のソフトウェア生成手段１３の動作を示すフローチャートである。
【図５】本発明の第１の実施例の生成ソフトウェア１８の内容例を示す図である。
【図６】本発明の第２の実施例の仕様定義表１６−１の内容例を示す図である。
【図７】本発明の第２の実施例の生成ソフトウェア１８の内容例を示す図である。
【図８】本発明の第２の実施例の別の仕様定義表の内容例を示す図である。
【図９】本発明の第２の実施例の生成ソフトウェア１８の内容例を示す図である。
【符号の説明】
【００９１】
１    ソフトウェア自動生成装置
１１    データ処理部
１２    仕様定義手段
１３    ソフトウェア生成手段
１４    配信手段
１５    記憶部
１６−１〜１６−４    仕様定義表
１７    ソフトウェア情報
１８    生成ソフトウェア
２    業務システム
２１    ソフトウェア実行装置
２２    データベース
２３    端末
１００、１０１    ネットワーク
１１１    処理内容記述行
１１２    共通パラメータ記述行
１１３    実行パラメータ記述行
１１４    行種別記述列
１１５    処理内容記述列
【図１】
2008059135.tif 000003
【図２】
2008059135.tif 000004
【図３】
2008059135.tif 000005
【図４】
2008059135.tif 000006
【図５】
2008059135.tif 000007
【図６】
2008059135.tif 000008
【図７】
2008059135.tif 000009
【図８】
2008059135.tif 000010
【図９】
2008059135.tif 000011