(57)【要約】【課題】  通常のシステム開発では、設計工程に時間がかかり、プログラムの開発期間が短縮され、更に検査工程も短縮される傾向にある。これらは、品質と納期・開発費用に多大なる影響を与えていた。本発明では、プログラムの開発期間が短縮されても、品質・納期・開発費用に影響を与えないようプログラムの開発期間を著しく短縮し、標準化を容易に可能とする業務アプリケーションのプログラム自動生成装置を提供する。【解決手段】  業務アプリケーションの基本画面プログラムの入力項目名に規定に従った名前を付与し、実行画面のボタンと画面レイアウトからプログラムを自動生成する手段と、基本画面プログラムから単体検査仕様書を自動生成する手段と、設計仕様書の定義内容から定型形画面を表示させる手段と、設計仕様書の定義内容からリストボックスを表示させる手段とを有するプログラム自動生成装置である。【選択図】  図１
2011154575.tif 000002
【特許請求の範囲】
【請求項１】
開発対象となる業務アプリケーションの入力項目名に、入力項目チェック機能とデータベースの列名を有する基本画面プログラムと、
実行画面プログラムと実行プログラムを生成するための情報として、前記基本画面プログラムのレイアウト情報と項目情報を保持及び管理する画面情報読込部と、
保持された前記レイアウト情報と前記項目情報に、データベースから取得した値を表示するためのプログラムを追加して、前記実行画面プログラムを生成する画面ロジック生成部と、
保持された前記項目情報の中の入力項目名を、入力項目チェック情報と、データ項目情報とに分割する項目情報変換部と、
前記項目情報変換部で分割された前記入力項目チェック情報によって、チェックロジックを生成し、前記データ項目情報によって、入力項目チェック処理とは異なるロジックを生成するロジック生成部と、
データベースから取得した値及び前記実行画面プログラムの入力項目の値を保持及び管理する情報格納部と、
前記項目情報変換部で分割された前記データ項目情報と、保持された前記項目情報の表示項目とで、データベースのデータ検索文、データ操作文を生成するデータベースアクセス部と、
前記基本画面プログラムに関連付けされた共通処理のロジック情報を保持したロジック情報管理部から前記ロジック情報を読み込み保持及び管理するロジック読込部とを備え、
前記ロジック情報管理部の前記ロジック情報に従った処理を実行することにより、画面表示を行う前記実行画面プログラムとデータベースのデータ検索文、データ操作文を含めた前記実行プログラムを自動生成する
ことを特徴とするプログラム自動生成装置。
【請求項２】
前記画面ロジック生成部は、
前記実行画面プログラムを自動生成するとき、入力項目名の属性部が日付を表す場合に、カレンダーを呼び出すプログラムを埋め込む
ことを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項３】
前記画面情報読込部は、
前記基本画面プログラムの画面項目情報を保持及び管理し、
画面項目定義書の情報を保持及び管理する項目情報読込部と、
保持された前記画面項目定義書の項目情報と、保持された前記基本画面プログラムの画面項目情報の項目名とを比較する画面情報検査部とをさらに備え、
前記基本画面プログラムの前記画面項目情報の項目名から単体検査仕様書を生成する
ことを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項４】
画面定義書に定義してある定型形実行画面プログラムの項目情報を保持及び管理する項目情報読込部と、
前記画面定義書に定義してあるデータベースのデータ検索情報を保持及び管理する出力情報読込部と、
保持及び管理された前記項目情報と前記データ検索情報を、画面情報データベースファイルに書き込む画面情報入力部と、
前記画面情報データベースファイルに書き込まれた前記項目情報と前記データ検索情報を、読み込んで保持及び管理する画面情報出力部とをさらに備え、
保持された前記項目情報と前記データ検索情報によって、定型形の一覧画面を表示する前記定型形実行画面プログラムを生成する
ことを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項５】
検索文定義書に定義してある実行部品プログラムの表示条件を、保持及び管理する表示情報読込部と、
前記検索文定義書に定義してあるデータベースのデータ検索情報を保持及び管理する出力情報読込部と、
保持及び管理された前記表示情報と前記データ検索情報を、部品情報データベースファイルに書き込む部品情報入力部と、
前記部品情報データベースファイルに書き込まれた前記表示情報と前記データ検索情報を、読み込んで保持及び管理する部品情報出力部とをさらに備え、
保持された前記表示情報と前記データ検索情報によって、リストボックスを表示する実行部品プログラムを生成する
ことを特徴とする請求項１に記載のプログラム自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを自動生成する技術に関し、定型化された業務アプリケーションの他に、複雑なロジックを含む業務アプリケーションにも対応した開発環境の提供に関する。
【背景技術】
【０００２】
従来の技術では、複数の定義書を設定してからプログラムを自動生成していた（例えば、特許文献１参照）。この方式では定義書が複雑になる上、定型化された業務アプリケーションにしか対応できず、システム開発の多様化に伴ったプログラムを自動生成するメリットが薄れていた。
【０００３】
近年では、業務アプリケーションを構築するためのフレームワークにASP.NET（登録商標）を利用するケースもあるが、この開発ツールでは、まず、データベースアクセスを司るデータ検索文を作成してから入出力インターフェース画面プログラム（以下、実行画面プログラムと称す）を自動生成している。
【０００４】
更に、パラメータ操作画面上で実行画面プログラムの画面レイアウトの変更や入力チェック等を定義してから、複数のプログラミング言語から択一して、プログラムを自動生成している。
【０００５】
このような開発ツールでは、データベースの構成（表、列名）が決定しないとプログラムの開発を開始できず、顧客が画面を確認できるのはプログラム開発後となり、仕様変更が多発する原因ともなっている。
【０００６】
また、業務アプリケーションの開発では、基本画面プログラム（基本画面プログラムは単独で起動できるが、実行画面プログラムはアプリケーションサーバがないと起動できない）を作成し、次に、データベースとのアクセスを行うデータ検索文や登録・更新・削除を行なうデータ操作文を作成しておき、予め準備された共通処理テンプレートを利用して、プログラムを自動生成する方法もしばしばみられる。
【０００７】
これらの開発ツールによって、画面遷移処理や入力チェック等の共通部分に関してはコードの再利用性を高めることが出来るようになったが、一部のソースコードを自動生成する機能を有しているだけのものが殆どであった。
【０００８】
また、これらの開発ツールでは、業務アプリケーションの入出力インターフェース画面の編集、データベースアクセスを司るデータ検索文の作成、業務アプリケーションのプログラミングを行う工程等があり、それぞれの編集画面に切り替えて開発する必要があり、余計な手間がかかっていた。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２６５２７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、システムの開発工程を通して、これらの開発ツールを用いてもなお、システムの開発コストを低減することや納期を著しく短縮するには至っていない。なぜなら、実際の業務システムでは定型化された業務形態は少なく、上述の特許文献１によるメリットは薄い上に、その他の開発ツールでは業務ロジックの雛形を自動生成するものの、最終的にはプログラマによる業務ロジックのコーディングが必要不可欠である。
【００１１】
また、これらの開発ツールおよび基盤となるフレームワーク（多くの再利用可能なコードをフレームワークにまとめることによって、開発者の手間を省き、新たなアプリケーションのために標準的なコードを改めて書かなくて済むようにする）を十分理解した上で、個々の業務ロジックを実装するためには、その環境に熟達した開発者であることが求められる。すなわち、このような開発者を確保できなければ逆に生産性を低下させ、大幅な費用増に陥ったり、納期を確保できなくなる等の困難な状況を招いている。
【００１２】
このようなプログラム自動生成技術に関する先行技術として、上述の特許文献１に記載されたプログラム自動生成装置やASP.NET（登録商標）等がある。
【００１３】
前者は、データ項目情報を規定した設定ファイル、業務処理パターンを規定した設定ファイル、表示レイアウトを規定した設定ファイル等を定義後にプログラムを自動生成しており、定型化された業務形態を主としているため、複雑な画面レイアウトに対応出来ない上、定義ファイルの設定に時間が掛かる等のデメリットが発生している。
【００１４】
また、後者は、業務アプリケーションの開発において、データベースへのアクセスを行なうデータ検索文を作成後に実行画面プログラムや画面レイアウトを自動生成し、パラメータ操作による画面レイアウトの変更および、入力チェック項目の設定等を行う。その後、プログラムを自動生成している。このような開発ツールでは、データベースのテーブルレイアウトが決まらないと実行画面プログラムを生成できないことや、業務ロジックの雛形を生成しているだけなので、プログラマがコーディングを行なう機会が多いために標準化が容易でない等の他、前述したような問題点を抱えている。
【課題を解決するための手段】
【００１５】
本発明の一態様によるプログラム自動生成装置は、
開発対象となる業務アプリケーションの入力項目名に、入力項目チェック機能とデータベースの列名を有する基本画面プログラムと、
実行画面プログラムと実行プログラムを生成するための情報として、前記基本画面プログラムのレイアウト情報と項目情報を保持及び管理する画面情報読込部と、
保持された前記レイアウト情報と前記項目情報に、データベースから取得した値を表示するためのプログラムを追加して、前記実行画面プログラムを生成する画面ロジック生成部と、
保持された前記項目情報の中の入力項目名を、入力項目チェック情報と、データ項目情報とに分割する項目情報変換部と、
前記項目情報変換部で分割された前記入力項目チェック情報によって、チェックロジックを生成し、前記データ項目情報によって、入力項目チェック処理を除くロジックを生成するロジック生成部と、
データベースから取得した値及び前記実行画面プログラムの入力項目の値を保持及び管理する情報格納部と、
前記項目情報変換部で分割された前記データ項目情報と、保持された前記項目情報の表示項目とで、データベースのデータ検索文、データ操作文を生成するデータベースアクセス部と、
前記基本画面プログラムに関連付けされた共通処理のロジック情報を保持したロジック情報管理部から前記ロジック情報を読み込み保持及び管理するロジック読込部とを備え、
前記ロジック情報管理部の前記ロジック情報に従った処理を実行することにより、画面表示を行う前記実行画面プログラムとデータベースのデータ検索文、データ操作文を含めた前記実行プログラムを自動生成する。
【発明の効果】
【００１６】
本発明によれば、利用者が基本画面プログラム言語で画面を作成して、規定に従った項目名を追加するだけで、全ての業務アプリケーションに対応したプログラムを容易且つ迅速に構築することができる。
【００１７】
また、最大100%を自動生成するので、全てのプログラムでロジックが統一されることにより標準化が容易となり、品質向上に貢献できると共に、プログラム開発言語の初心者でもその他の開発言語を経験者していれば、簡単に開発が可能になる。
【００１８】
また、プログラムを自動生成した後にコーディングを追加した場合でも、再度、プログラムを自動生成しても先に追加されたコーディングに影響を与えないような構造になっている。
【００１９】
また、定型形画面プログラムは、設計仕様書に必要な項目名と、データベースからデータを取得するためのデータ検索文を定義するのみで、簡単に画面を表示させることが出来るので、プログラミングの必要もなく品質向上、工数削減に最大限のメリットを発揮している。
【００２０】
また、設計仕様書にデータベースからデータを取得するためのデータ検索文を定義することにより、リストボックスを簡単に表示させることが出来、選択画面と同様のメリットがある。
【００２１】
これらの施策により、本発明のプログラム自動生成装置は、従来の技術と比較し、７割の工数を削減した実績（営業情報管理システム）を持っている。
【００２２】
尚、本発明では、基本画面プログラム言語で画面を作成してからプログラムを自動生成しているので、システム開発を依頼した顧客に基本画面を確認して貰ってからシステム詳細設計を開始出来る。このことは、プログラム完成後に顧客に画面を確認して貰うシステム開発形態と比べ、仕様変更が少ないというメリットがある。
【００２３】
また、基本画面プログラム言語で画面を作成して、項目名を追加後に単体検査仕様書を自動生成できる。この自動生成された仕様書に不足している部分を補正するだけで、簡単に単体検査仕様書を完成させることができ、更なる生産性の向上に寄与している。
【図面の簡単な説明】
【００２４】
【図１】本発明によるプログラム自動生成装置の一実施の形態を示した機能ブロック構成図である。
【図２】本発明によるプログラム自動生成装置の基本画面プログラムの項目名の規定例を示す図である。
【図３】本発明によるプログラム自動生成装置の基本画面プログラムの項目名の規定一覧表を示す図である。
【図４】本発明によるプログラム自動生成装置で、基本画面プログラムから実行画面プログラムを自動生成した一実施例である。
【図５】本発明によるプログラム自動生成装置で自動生成されるデータベースのデータ検索文と登録・更新・削除を行なうデータ操作文を説明するための実行画面プログラムの一表示例を示す画面レイアウト図である。
【図６】本発明によるプログラム自動生成装置の定型形実行画面プログラムを生成するための定義書の一例を示す図である。
【図７】図６の定義書により自動生成された定型形実行画面の一実施例を示した画面レイアウト図である。
【図８】本発明によるプログラム自動生成装置の実行部品プログラムを生成するための定義書の一例を示す図である。
【図９】図８の定義書により自動生成された実行部品プログラムで表示されるリストボックスの一実施例を示した画面レイアウト図である。
【図１０】本発明によるプログラム自動生成装置を使ったシステム開発事例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について図面を参照して説明する。
【００２６】
図１は、本発明に係るプログラム自動生成装置４０の一実施の形態を示した機能ブロック構成図である。本実施の形態におけるプログラム自動生成装置４０は、開発対象となるアプリケーションが使用する入力項目チェック情報とデータベースの列名を持った入力項目名の入力を基本画面プログラム６にて行い、この基本画面プログラム６から全ての画面情報を読込み、実行画面プログラム９に必要なロジックを組み込むことで、実行画面プログラム９を生成する。
【００２７】
また、プログラム自動生成装置４０は、上記で読込まれた画面情報から業務アプリケーションプログラムの共通処理を保持し、ロジック情報管理部２によって制御されるアプリケーションのロジック生成部１２と情報格納部１１を用いて、上記で読込まれた画面情報の入力項目を画面レイアウトでグルーピング（図５のヘッダ部５１、明細部５２）を行い、データベースの情報を読書きするデータ検索文とデータ操作文を生成して、実行プログラム１５を自動生成し、上記で読み込まれた画面情報と画面項目定義書１６から単体検査仕様書１９を自動生成する。
【００２８】
また、画面定義書２０から画面項目情報と、データベースの情報を取得するためのデータ検索文を読込み、その読込んだ情報を画面情報データベースファイル２４に格納しておき、これらのファイル情報から定型形実行画面プログラム２６を自動生成する。
【００２９】
また、検索文定義書２７から定義情報を読込み、その読込んだ情報を部品情報データベースファイル３１に格納しておき、これらのファイル情報からリストボックスを表示させるための実行部品プログラム３３の自動生成を行うものである。
【００３０】
本実施の形態におけるプログラム自動生成装置４０は、プログラム生成部１、ロジック情報管理部２、文書生成部３、画面情報生成部４、部品情報生成部５により構成される。なお、本実施の形態の場合、基本画面プログラムは、例えばＨＴＭＬ画面プログラムなどであり、実行画面プログラムは、例えばＪＳＰ（登録商標）画面プログラムなどであり、実行プログラムは、例えばＪａｖａ（登録商標）プログラムなどである。
【００３１】
プログラム生成部１の画面情報読込部７は、入力項目チェック機能とデータベースの列名を持った入力項目名を有する基本画面プログラム６にコーディングされているレイアウト情報と項目情報を読み込み、実行画面プログラム９と実行プログラム１５の生成情報として保持・管理する。
【００３２】
画面ロジック生成部８は、保持された生成情報に、データベースから取得した値を表示するためのプログラムを追加して、実行画面プログラム９を自動生成する。
【００３３】
項目情報変換部１０は、保持された生成情報の入力項目情報の入力項目名を実行画面プログラム９の入力値チェックのための入力項目チェック情報Ｄ１〜Ｄ４（図２）と、データベースを構成するデータ項目情報Ｄ６（図２）とに分割する。この分割された前者の入力項目チェック情報によってチェックロジックを生成し、後者のデータ項目情報によって、入力項目チェック処理とは異なるロジックを生成するロジック生成部１２を有している。
【００３４】
情報格納部１１は、保持された生成情報の項目情報で生成されており、データベースから取得した値や実行画面プログラム９の入力項目の値を保持・管理するのに用いられる。
【００３５】
また、データベースアクセス部１３は、分割された入力項目名の後者のデータ項目情報と前記生成情報の表示項目によって、データベースから値を取得するためのデータ検索文や、データベースに値を書き込んだり、更新、削除したりするデータ操作文を生成する。
【００３６】
また、時間の取得、処理ログ、エラーログ、入力項目チェック、データベースとのアクセス、基本画面プログラム６に関連付けされた共通処理等のロジック情報を保持したロジック情報管理部２からロジック情報を読み込んで保持・管理するロジック読込部１4を有しており、そのロジック情報は、項目情報変換部１０、情報格納部１１、ロジック生成部１２、データベースアクセス部１３を制御するための制御情報として用いられる。
【００３７】
また、ロジック生成部１２には、例えば、入力項目情報が実行画面プログラム９においてボタンとして表示されている場合に、そのボタンが選択されたときに起動され実行されるアプリケーションとしての振る舞いを生成するとともに、時間の取得、処理ログ、エラーログ、データベースとのアクセス等の共通処理ロジックも生成する。
【００３８】
これら画面情報読込部７、項目情報変換部１０、情報格納部１１、ロジック生成部１２、データベースアクセス部１３、ロジック読込部１４によって、実行プログラムが自動生成される。
【００３９】
文書生成部３は、画面項目定義書１６の画面項目情報を項目情報読込部１７によって読み込み定義情報を保持・管理する。
【００４０】
また、プログラム生成部１の画面情報読込部７によって保持・管理された基本画面プログラム６の画面項目情報を取得して、画面情報検査部１８によって先に保持していた定義情報の画面項目とを比較検査し、検査した両方の項目情報が全て合致していれば前記画面項目情報によって単体検査仕様書１９を生成する。
【００４１】
この単体検査仕様書を作成する際には、例えば、図７の例で画面項目情報のラベル名が受注番号で、入力項目名に「P010nnSBT__ORDER_NO」と定義した場合は、「受注番号の文字列長は、10桁であり、受注番号が空白の場合は、エラーメッセージが表示され、受注番号が１バイト文字以外はエラーメッセージが表示されること」というように生成される。
【００４２】
画面情報生成部４は、画面定義書２０に定義してある定型形画面プログラム２６の項目情報を項目情報読込部２１によって読み込み、項目情報として保持・管理する。また、画面定義書２０に定義してあるデータベースのデータ検索文を出力情報読込部２２によって読み込み、データ検索情報として保持・管理する。
【００４３】
これらの保持・管理された項目情報とデータ検索情報は、画面情報入力部２３によって画面情報データベースファイル２４に書き込まれる。
【００４４】
画面情報データベースファイル２４に書き込まれた項目情報とデータ検索情報は、画面情報出力部２５によって読み込まれ保持・管理される。この保持された前者の項目情報は、定型形実行画面プログラム２６のレイアウト表示に使われ、後者のデータ検索情報のデータ検索文によって、データベースからデータを読み込んで定型形実行画面プログラム２６によって表示される一覧表に値を表示させる。この様にして画面情報生成部４は、新たにプログラムを生成することなく定型形実行画面プログラム２６を自動生成できる。
【００４５】
部品情報生成部５は、検索文定義書２７に定義してある実行部品プログラム３３で表示される画面への表示条件を、表示情報読込部２８によって読み込み、表示情報として保持・管理する。また、検索文定義書２７に定義してあるデータベース情報を読込むためのデータ検索文を出力情報読込部２９によって読み込み、データ検索情報として保持・管理する。
【００４６】
これらの保持・管理された表示情報とデータ検索情報は、部品情報入力部３０によって部品情報データベースファイル３１に書き込まれる。
【００４７】
部品情報データベースファイル３１に書き込まれた表示情報とデータ検索情報は、部品情報出力部３２によって読み込まれ保持・管理される。この保持された前者の表示情報は、実行部品プログラム３３によって表示されるリストボックスの一覧表の１行目に空白を挿入するか否かに使われる。また、後者のデータ検索情報のデータ検索文によってデータベースからデータを読み込んで、実行部品プログラム３３によって表示されるリストボックスの一覧表に値を表示させる。
【００４８】
この様にして部品情報生成部５は、新たにプログラムを生成することなく実行部品プログラム３３を自動生成できる。
【００４９】
図２は、図１の基本画面プログラム６の入力項目情報の名前の付与に関する規定の一例を示した図である。図３に本規定の一覧表を掲載する。
【００５０】
制限部Ｄ１は、属性部Ｄ４が文字列型、数値型のとき「P」、「M」が設定される。属性部Ｄ４が文字列型、数値型以外のときは「P」固定となる。
【００５１】
文字列長部Ｄ２は、数値で表される。例えば、属性部Ｄ４が文字列型で制限部Ｄ１が「M」のとき、文字列長部Ｄ２に「０１０」が指定された場合は、実行画面プログラム９から入力された値の文字列長が１０桁を超えることにより、入力項目エラーが表示されるように図１のプログラム生成部１で生成される。
【００５２】
また、必須区分部Ｄ３は、小文字の「nn」または、「no」が指定される。例えば、「nn」が指定された場合は入力必須項目になり、「no」が指定された場合は空白も可となる。
【００５３】
属性部Ｄ４は、それぞれ、3文字のアルファベットで入力項目の属性チェックが行えるようになっている。
【００５４】
例えば、入力項目名のＤ１〜Ｄ４を「P010nnSBT」と定義した場合は、実行画面から入力した文字列が、文字列長１０桁でなければエラーで、空白であればエラーで、１バイト文字でなければエラーとなる。
【００５５】
前記属性部Ｄ４が「DAT」の場合は、図１の画面ロジック生成部８によって、実行画面プログラム９を生成するときに、実行画面プログラム９からカレンダーが呼び出されるように自動生成される。また、列名部Ｄ６はデータベースの列名を大文字で指定する。
【００５６】
本規定による入力項目チェック処理は、図1のロジック生成部１２によって実行プログラム１５に生成され、予め準備された標準部品で項目チェックを行ってからエラーメッセージを表示するか否かを決定している。よって、図３に規定した入力項目名によるチェック形式以外のチェック内容が必要な場合でもチェック部品を標準部品に追加するだけでよく、本発明の自動生成装置をカスタマイズする必要がないという特徴がある。
【００５７】
図４は、本発明に係るプログラム自動生成装置４０の一実施例を示した図であり、図２の入力項目名規定を使って、図１の基本画面プログラム６から実行画面プログラム９を自動生成した一例を示した図である。
【００５８】
本発明では、基本画面プログラム例Ｄ７から図１のプログラム生成部１によって実行画面プログラム例Ｄ８が自動生成される。基本画面プログラム例Ｄ７は、入力項目情報をコーディングしている例であり、name部Ｄ９とvalue部Ｄ１０が必要となるが、value部Ｄ１０は、コーディングしなくてもよい。value部Ｄ１０がコーディングされていなくても、図１の画面ロジック生成部８で、実行画面プログラム例Ｄ８のvalue部Ｄ１２を自動生成するようになっている。前記name部Ｄ９が、図２で規定された規約を使って画面の入力項目情報の名前付与を行った例である。
【００５９】
実行画面プログラム例Ｄ８は、基本画面プログラム例Ｄ７から自動生成された例であり、name部Ｄ１１は、基本画面プログラム例Ｄ７のname部Ｄ９をそのままスライドしてきている。
【００６０】
また、value部Ｄ１２は、図１の画面ロジック生成部８のname部Ｄ９から自動生成した一例であり、図１の実行プログラム１５と関連付けを行うために図２で説明した入力項目情報の名前のＤ１〜Ｄ５までを削除している。
【００６１】
例えば、name部Ｄ９は、「P010nnSBT_ORDER_NO」となっているが、value部Ｄ１２は、「data.getORDER_NO()」となっている。この「ORDER_NO」は、図２の列名部Ｄ６にあたり、この「ORDER_NO」の前に書かれているdata.get文字列と最後にコーディングされている「()」は、図１の実行プログラム１５のプログラムと関連付けを行なうためのものである。
【００６２】
また、value部Ｄ１２には「<%=  %>」が存在するが、この符号の中に書かれた文字列は、実行プログラム９と関連付けするためのプログラム言語であり、図１の実行プログラム１５内では、value部Ｄ１２の様に図２の列名部Ｄ６を中心に自動生成される。このことが、本発明の最大の特徴の一つであり、図２の名前の付与規定に従うことで、実行画面プログラム９の入力項目チェックと、データベースから値を取得するためのデータ検索文やデータベースに登録されているデータを編集するためのデータ操作文までを自動生成できるようになった理由の一つである。
【００６３】
図５は、本発明に係るプログラム自動生成装置４０で自動生成されるデータベースのデータ検索文と登録、更新、削除を行なうデータ操作文の生成方法を詳細に説明するための一実施例を示す実行画面図である。
【００６４】
検索ボタン５６は、データベースに検索条件を渡して、条件に合致した値を取得し、その値を実行画面に表示するためのものである。
【００６５】
クリアボタン５７は実行画面に表示した入力項目情報（検索条件部５４、明細入力部５５）を全てクリアするためのものである。
【００６６】
新規登録ボタン５８は、実行画面に入力された値をデータベースに登録するためのものである。
【００６７】
変更ボタン５９は、検索ボタン５６によってデータベースから取得した値を実行画面に表示した後、実行画面の表示内容を変更してから変更ボタン５９を押下して、データベースに更新するための条件を渡して、条件に合致した登録データを更新するためのものである。
【００６８】
削除ボタン６０は、変更ボタン５９と同様に検索ボタン５６によってデータベースから取得した値を実行画面に表示した後、削除ボタン６０を押下してデータベースに削除するための条件を渡して、条件に合致した登録データを削除するためのものである。
【００６９】
これらのボタンによって図１のプログラム生成部１で、データベースのデータ検索文とデータ操作文が自動生成される。
【００７０】
まず、検索ボタン５６によってデータベースのデータ検索文を自動生成する方法を説明する。
【００７１】
図１のデータベースアクセス部１３では、画面情報読込部７から項目情報変換部１０、ロジック生成部１２を介して送出されてきた基本画面プログラム６の検索ボタン５６が存在することを確認し、検索ボタン５６が存在していたら、ヘッダ部５１の検索条件部５４の入力項目（ここでは担当者CD、以下同様）をデータベースから値を取得するときの検索条件に設定する。
【００７２】
また、データベースから取得した値を表示するためのデータベース列名には、明細部５２の明細入力部５５に存在する入力項目名の列名を使う。明細部５２に表示項目が存在する場合には、これもデータベースから取得した値を表示するためのデータベース列名に加える。
【００７３】
この様に画面のヘッダ部５１と明細部５２を使い分けることでデータベースのデータ検索文が自動生成される。
【００７４】
この時、ロジック生成部１２は、ヘッダ部５１に表示されている検索条件部５４の入力項目をデータベースの検索条件にして、検索条件に合致したデータが存在するか否かをチェックして、合致したデータが存在しなければ、エラーメッセージを表示し、合致したデータが存在していたら実行画面にデータベースのデータを表示する仕組みを持たせたロジックも自動生成する。
【００７５】
次に、図1のロジック生成部１２は、画面情報読込部７から項目情報変換部１０を介して送出されてきた基本画面プログラム６のクリアボタン５７が存在することを確認し、クリアボタン５７が存在していたら、画面に表示されている入力項目値をすべて削除するロジックを自動生成する。
【００７６】
また、図１のデータベースアクセス部１３では、画面情報読込部７から項目情報変換部１０、ロジック生成部１２を介して送出されてきた基本画面プログラム６の新規登録ボタン５８が存在することを確認し、新規登録ボタン５８が存在していたら、ヘッダ部５１と明細部５２の入力項目全てをデータベースに登録するための列名に設定してデータ操作文を生成する。
【００７７】
この時、ロジック生成部１２は、ヘッダ部５１に表示されている検索条件部５４の入力項目をデータベースの検索条件にして、検索条件に合致したデータが存在するか否かをチェックする。既にデータが存在していたらエラーメッセージを表示し、データが存在していなければデータを新規登録する仕組みを持たせたロジックを自動生成する。
【００７８】
また、図１のデータベースアクセス部１３では、画面情報読込部７から項目情報変換部１０、ロジック生成部１２を介して送出されてきた基本画面プログラム６の変更ボタン５９が存在することを確認し、変更ボタン５９が存在していたら、ヘッダ部５１の検索条件部５４の入力項目をデータベースの値を更新するための検索条件に設定し、明細部５２の明細入力部５５をデータベースの更新データに設定する。
【００７９】
この時、ロジック生成部１２は、検索条件部５４の入力項目をデータベースの検索条件にして、排他制御（同時に同じデータを更新しようとした場合は、後から更新しようとした方をエラーとする）を行なう仕組みを持たせたロジックを自動生成する。
【００８０】
また、図１のデータベースアクセス部１３では、画面情報読込部７から項目情報変換部１０、ロジック生成部１２を介して送出されてきた基本画面プログラム６の削除ボタン６０が存在することを確認し、削除ボタン６０が存在していたら、ヘッダ部５１の検索条件部５４の入力項目をデータベースの値を削除するための検索条件に設定する。削除ボタンを押したときのデータ操作文はこれだけである。
【００８１】
この時、ロジック生成部１２は、検索条件部５４の入力項目をデータベースの検索条件にして、排他制御（同時に同じデータを削除しようとした場合は、後から削除しようとした方をエラーとする）を行なう仕組みを持たせたロジックを自動生成する。
【００８２】
図６は、本発明に係るプログラム自動生成装置４０の機能の一つである図１の定型形実行画面プログラム２６を生成するための画面定義書２０の一例を示す図である。また、図１の画面情報データベースファイル２４は、データベースにする必要はなく、テキストファイル等を使っても全く問題はない。
【００８３】
列名部６１のCOMMON_NO６３は、定型形実行画面プログラム２６の識別番号を表しており、この実施例では、データ部６２のエリア６４に「１０３」が設定されている。
【００８４】
列名部６１のSQL６５は、データベースからデータを取得するためのデータ検索文を定義するための項目名であり、この実施例では、データ部６２のエリア６６にデータ検索文が設定されている。
【００８５】
また、この画面定義書２０から図1の画面情報データベースファイル２４にエリア６６のデータ検索文を登録するときに、図１の画面情報入力部２３によってデータ検索文の構文チェックが行われ、不具合が存在する場合には、エラー内容を表示するようになっている。
【００８６】
列名部６１のTITLE_NAME６７は、定型形実行画面プログラム２６で表示される画面に主題名を表示させるための文字列を定義するためのものであり、この実施例では、データ部６２のエリア６８に「受注番号選択」が定義されており、この値がプログラム自動生成時に図１の画面情報データベースファイル２４に登録される。定型形実行画面への表示場所は、図７のエリア８４参照。
【００８７】
列名部６１のKEY_LABEL_NAME_A６９は、定型形実行画面プログラム２６で表示される画面の検索条件の最初（画面レイアウトの左端）のラベル名を表示させるための文字列を定義するためのものであり、この実施例では、データ部６２のエリア７０に「受注番号」が定義されており、この値がプログラム自動生成時に図１の画面情報データベースファイル２４に登録される。定型形実行画面プログラム２６で表示される画面への表示場所は、図７のエリア８５参照。
【００８８】
列名部６１のKEY_LABEL_NAME_B７１は、定型形実行画面プログラム２６で表示される画面の検索条件の二番目のラベル名を表示させるための文字列を定義するためのものであり、この実施例では、データ部６２のエリア７２は空白にしている。これは、二番目の検索条件は、定型形実行画面プログラム２６で表示される画面には表示しないことを意味している。
【００８９】
列名部６１のHEAD_NAME_A７３は、定型形実行画面プログラム２６で表示される画面の明細一覧表（図７の明細部８３のラベル名８６参照）のタイトル部に表示させるラベル名を定義するためのものであり、この実施例では、データ部６２のエリア７４は「受注番号」となっている。
【００９０】
列名部６１のHEAD_NAME_B７５は、定型形実行画面プログラム２６で表示される画面の明細一覧表（図７の明細部８３のラベル名８７参照）のタイトル部に表示させるラベル名を定義するためのものであり、この実施例では、データ部６２のエリア７６は「製品名」となっている。
【００９１】
列名部６１のHEAD_NAME_C７７は、定型形実行画面プログラム２６で表示される画面の明細一覧表（図７の明細部８３のラベル名８８参照）のタイトル部に表示させるラベル名を定義するためのものであり、この実施例では、データ部６２のエリア７８は「出荷先名」となっている。HEAD_NAME_A〜Cは、それぞれ明細一覧表のタイトル部の左端から順に表示される。
【００９２】
図７は、図６で定義した画面定義書２０に基づいて図1の定型形実行画面プログラム２６により画面を表示した時の一例を示す。
【００９３】
ヘッダタイトル部８１のエリア８４は、図６のデータ部６２のエリア６８から値「受注番号選択」を取得して表示している例を示す。
【００９４】
ヘッダ条件部８２のラベル名８５は、図６のデータ部６２のエリア７０から値「受注番号」を取得して表示している例を示す。
【００９５】
ヘッダ条件部８２のエリア９２は、入力項目であり、図６のデータ部６２に定義されているエリア６６のデータ検索文の検索条件Ｄ１６の「？」に設定される。このようにすることにより、エリア９２に入力された値によってデータベースに検索条件を渡してデータを取得することが可能となる。
【００９６】
明細部８３の一覧表のタイトル部のラベル名８６は、図６のデータ部６２のエリア７４から値「受注番号」を取得して表示している例を示す。明細部８３の一覧表のタイトル部のラベル名８７は、図６のデータ部６２のエリア７６から値「製品名」を取得して表示している例を示す。
【００９７】
明細部８３の一覧表のタイトル部のラベル名８８は、図６のデータ部６２のエリア７８から値「出荷先名」を取得して表示している例を示す。明細部８３の一覧表のデータ表示部のデータ８９は、図６のデータ部６２に定義されているエリア６６のデータ検索文の列名Ｄ１３で取得した値を表示している例を示す。
【００９８】
明細部８３の一覧表のデータ表示部のデータ９０は、図６のデータ部６２に定義されているエリア６６データ検索文の列名Ｄ１４で取得した値を表示している例を示す。明細部８３の一覧表のデータ表示部のデータ９１は、図６のデータ部６２に定義されているエリア６６データ検索文の列名Ｄ１５で取得した値を表示している例を示す。
【００９９】
本実施例では、明細部８３の一覧表の列数は３列となっているが、実用上１〜１０列まで設定できるようになっている。
【０１００】
また、図６の画面定義書２０では、データ部６２のエリア７４、エリア７６、エリア７８のように３箇所とも定義されているが、エリア７８に定義されている「出荷先名」を空白にしたら図７の明細部８３に表示されている一覧表の３列目の出荷先名８８とデータ９１が削除されて２列表示となる。そのとき、画面の幅も２列表示に合せて狭くなるように生成される。
【０１０１】
また、図６の実施例には定義されていないが、一覧表の各列幅を指定して図７の明細部８３に配置されている一覧表の列幅を変更することもできる。
【０１０２】
図８は、本発明に係るプログラム自動生成装置４０の機能の一つである図１の実行部品プログラム３３によってリストボックス１０９（図９）を表示させるための検索文定義書２７の一例を示す図である。また、図１の部品情報データベースファイル３１は、データベースにする必要はなく、テキストファイル等を使っても全く問題はない。
【０１０３】
列名部１０１のMENU_NO１０３は、図1の実行部品プログラム３３の識別番号を表しており、この実施例では、データ部１０２のエリア１０４に「００３」が設定されている。
【０１０４】
列名部１０１のSQL１０５は、データベースからデータを取得するためのデータ検索文を定義するための項目名であり、この実施例では、データ部１０２のエリア１０６にデータ検索文が設定されている。
【０１０５】
また、前記検索文定義書２７から図１の部品情報データベースファイル３１にエリア１０６のデータ検索文を登録するときに、図１の部品情報入力部３０によってエリア１０６のデータ検索文の構文チェックが行われ、不具合が存在する場合には、エラー内容を表示するようになっている。
【０１０６】
列名部１０１のADD_SPACE１０７は、実行部品プログラム３３によって図９の一覧表１１１を表示するときに、一覧表の1行目に空白を挿入するか否かの設定をするためのものであり、この実施例では、データ部１０２のエリア１０８に「ON」が設定されている。これは、一覧表の１行目に空白を挿入するということであり、データ部１０２のエリア１０８を空白にすると、エリア１１０が削除されて一覧表１１１の１行目から値を表示するということになる。
【０１０７】
図９は、図８で定義した検索文定義書２７によって図１の実行部品プログラム３３からリストボックスを表示した一例を示す。
【０１０８】
リストボックス１０９上をマウスでクリックするとエリア１１０とエリア１１１の一覧表が表示されるものである。
【０１０９】
図８の例を用いるとデータ部１０２のエリア１０８が「ON」になっており、このように定義すると図９のエリア１１０のように１行目が空白になる。
【０１１０】
リストボックス１０９の一覧表１１１のデータは、図８のデータ部１０２のエリア１０６に定義されているデータ検索文の列名Ｄ１７によって、データベースから取得した値である。リストボックスの一覧表１１１に空白が必要なケースは、新規登録時に空白が存在しないと気づかないうちにリストボックスの一行目がデータベースに登録されてしまう危険性があるからである。初期値として空白になっていれば、本人が意識して選択しない限り、値がデータベースに登録されることはない。
【０１１１】
開発期間を比較するために、ASP.NET（登録商標）と本発明のプログラム自動生成装置４０によって、営業情報管理システム（図１０）を開発した。システム規模としては、登録系が５本、検索系が５本であり、合計１０本を前記ASP.NET（登録商標）は、１９０時間で開発を完了し、本発明のプログラム自動生成装置４０は、５６時間で開発を完了した。これらの開発期間を比較した結果、本発明のプログラム自動生成装置４０によって開発期間を７割削減できた。
【０１１２】
図１０によると、登録ブロックの担当登録１２１、技術者登録１２２、企業登録１２３、案件登録１２４、商談登録１２５は、個人情報、会社情報を実行画面から入力してデータベースファイル１２６〜１３０にそれぞれ登録・管理するためのもので、検索ブロックの応募者一覧１３１、技術者検索１３２、企業検索１３３、案件検索１３４、商談検索１３５は、データベースファイル１２６〜１３０に登録されている情報を確認する為の実行画面である。なお、図中ａ及びｂでは、ファイルアップロード及びファイルダウンロードが行われ、図中ｃ及びｄでは、ファイルダウンロードが行われる。
【産業上の利用可能性】
【０１１３】
インターネットを利用した業務アプリケーション（受注管理、生産管理、購買管理、工程管理、在庫管理等）のシステム開発に利用でき、製造と検査に関して、納期短縮・コスト削減・品質向上が見込めるので利用価値大である。
【符号の説明】
【０１１４】
１  プログラム生成部
２  ロジック情報管理部
３  文書生成部
４  画面情報生成部
５  部品情報生成部
６  基本画面プログラム
７  画面情報読込部
８  画面ロジック生成部
９  実行画面プログラム
１０  項目情報変換部
１１  情報格納部
１２  ロジック生成部
１３  データベースアクセス部
１４  ロジック読込部
１５  実行プログラム
１６  画面項目定義書
１７  項目情報読込部
１８  画面情報検査部
１９  単体検査仕様書
２０  画面定義書
２１  項目情報読込部
２２  出力情報読込部
２３  画面情報入力部
２４  画面情報データベースファイル
２５  画面情報出力部
２６  定型形実行画面プログラム
２７  検索文定義書
２８  表示情報読込部
２９  出力情報読込部
３０  部品情報入力部
３１  部品情報データベースファイル
３２  部品情報出力部
３３  実行部品プログラム
【図１】
2011154575.tif 000003
【図２】
2011154575.tif 000004
【図３】
2011154575.tif 000005
【図４】
2011154575.tif 000006
【図１０】
2011154575.tif 000007
【図５】
2011154575.tif 000008
【図６】
2011154575.tif 000009
【図７】
2011154575.tif 000010
【図８】
2011154575.tif 000011
【図９】
2011154575.tif 000012