JPH11102293A - プログラム自動生成方法 - Google Patents

プログラム自動生成方法

Info

Publication number
JPH11102293A
JPH11102293A JP9262991A JP26299197A JPH11102293A JP H11102293 A JPH11102293 A JP H11102293A JP 9262991 A JP9262991 A JP 9262991A JP 26299197 A JP26299197 A JP 26299197A JP H11102293 A JPH11102293 A JP H11102293A
Authority
JP
Japan
Prior art keywords
program
objects
property
logic
database
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
Application number
JP9262991A
Other languages
English (en)
Inventor
Mikito Sugano
幹人 菅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP9262991A priority Critical patent/JPH11102293A/ja
Publication of JPH11102293A publication Critical patent/JPH11102293A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 3階層のアプリケーションプログラムを容易
に、通信に関する専門知識を必要とせずに、最低限のプ
ログラミング技術のみで複数に分割されたプログラムを
作成でき、さらにその開発過程で必要な通信インタフェ
ース及び仕様書も自動生成されるプログラム自動生成方
法を提供する。 【解決手段】 オブジェクト定義という手段により、各
コンポーネントで使用するデータ項目を特化し、3階層
型というアプリケーション形態において、各コンポーネ
ントプログラムを自動生成する機能を備える。さらに各
機能はユーザインタフェース、ビジネスロジック、デー
タベースロジックと異なる概念のスキルが要求される
が、各機能において自動生成機能を備えた。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、分散コンピュー
ティング環境における、多階層型のコンポーネントベー
スのアプリケーション開発における、各プログラムコン
ポーネントをその分散環境で使用されるデータについて
記述したオブジェクト定義から自動生成する機構を備え
たコンポーネント分割型アプリケーションにおけるプロ
グラム自動生成方法に関するものである。
【0002】
【従来の技術】最近では、分散コンピューティング環境
も一般に知られるところとなり、分散型3階層システム
によるアプリケーション構築技術も活発に用いられるよ
うになってきた。分散型3階層システムとは、1つのア
プリケーションをユーザインタフェース層、データベー
スアクセス層、ビジネスロジック層の3つのカテゴリに
分解して構築する技術である。この技術を用いてアプリ
ケーション構築を行うと、保守運用効率が改善できると
か、アプリケーションの拡張が容易になるとか、アプリ
ケーションの開発がそれぞれのカテゴリに分割して作成
できるので単純化できるなどの効果を得ることができ
る。
【0003】アプリケーション開発の生産性を向上させ
る技術として、特開平3−34023号公報に記載され
たプログラム自動生成方法に関する発明がある。この技
術は、入出力データの関係からプログラムを自動生成す
る方式であり、データ処理におけるプログラム作成を簡
単化し、プログラム生成時の不良の混入を未然に防ぐ効
果がある。
【0004】また、従来のアプリケーションプログラム
の開発は、プログラミング用のテキストエディタでプロ
グラミング言語によりコーディング作業を行いアプリケ
ーション開発を行っていた。この方法だと、プログラム
仕様書とコーディング作業は別工程になるため、アプリ
ケーションプログラムの生産性を評価すると開発時間工
数の非常に悪いものとなる。従って,これらの生産性を
向上するための手段が求められてきている。
【0005】しかし、1つのアプリケーションプログラ
ムを3つ以上のプログラムに分割して作成するため、そ
のプログラムインタフェースの統一などに多くの時間が
必要となるのが現状である。
【0006】
【発明が解決しようとする課題】従来のプログラム自動
生成方法は、上記の様に構成されているので、以下に示
す様な問題点があった。
【0007】特開平3−34023号公報に記載された
技術においては、従来型の汎用機を用いたホスト集中型
のアプリケーション開発において有効な手法であり、現
在主流となりつつある3階層型アプリケーションのよう
な複雑な通信インタフェースを持つコンポーネント型ア
プリケーションには対応できない。特にユーザインタフ
ェースの画面コンポーネントの自動生成機能や、ビジネ
スロジック自動生成機能、RDBインタフェースコンポ
ーネント自動生成機能については機能が大きく欠如して
いる。
【0008】次に、アプリケーションプログラム開発と
仕様書の問題である。一般にビジネスソリューションを
提供するソフトウェア会社などでは、ソフトウェアの受
注による形態で開発業務を進めている。この受注に対す
るアウトプットが開発アプリケーションであり、開発概
要の仕様書である。アプリケーションプログラムの納入
と同時に、その開発内容を示す仕様書も重要な納品物に
なっている。これらのアプリケーションプログラムと仕
様書は一般に別々な工程で作成されるため、アプリケー
ションソフトウェアの生産工数を増加させる傾向にあ
る。
【0009】この発明は、上記のような問題点を解消す
るためになされたもので、3階層のアプリケーションプ
ログラムを容易に、通信に関する専門知識を必要とせず
に、最低限のプログラミング技術のみで複数に分割され
たプログラムを作成でき、さらにその開発過程で必要な
通信インタフェース及び仕様書も自動生成されるプログ
ラム自動生成方法を提供することを目的とする。
【0010】
【課題を解決するための手段】この発明に係るプログラ
ム自動生成方法は、アプリケーションプログラムをユー
ザインタフェースロジック、ビジネスロジック、データ
ベースアクセスロジックの3階層のプログラムに分割し
て生成する方法において、上記アプリケーションプログ
ラムの基本的なロジックであるモデルを格納した基本オ
ブジェクトから上記モデルを選択するステップ、選択し
たモデルに基づきデータのデータ型、データ長、データ
名、データ属性をプロパティとして指定し、そのプロパ
ティの操作や一連の処理手順をメソッドとして指定し、
それらのプロパティ及びメソッドの集合を上記3階層の
プログラムのそれぞれに対応したオブジェクトとして定
義するステップ、定義したオブジェクトを用いることに
より上記モデルを参照しつつ上記3階層のプログラム間
のインタフェースをとりながらそれぞれのプログラムを
自動生成するステップからなるものである。
【0011】また、アプリケーションプログラムをユー
ザインタフェースロジック、ビジネスロジック、データ
ベースアクセスロジックの3階層のプログラムに分割し
て生成する方法において、上記アプリケーションプログ
ラムごとに関係する生成済の継承オブジェクトを格納し
たオブジェクト情報から必要な継承オブジェクトを選択
するステップ、それらの継承オブジェクトに含まれるプ
ロパティ及びメソッドを必要により変更するステップ、
それらの継承オブジェクトを用いることにより上記アプ
リケーションプログラムの基本的なロジックであるモデ
ルを参照しつつ上記3階層のプログラム間のインタフェ
ースをとりながらそれぞれのプログラムを自動生成する
ステップからなるものである。
【0012】さらに、上記3階層のプログラムのユーザ
インタフェースロジックは画面プログラムの画面上に配
置される入出力GUI部品のレイアウトを自動配置する
ものである。
【0013】また、上記3階層のプログラムのデータベ
ースアクセスロジックはデータベーススキーマを定義す
るデータベーススキーマ定義プログラムを自動生成する
ものである。
【0014】さらにまた、上記3階層の各プログラムが
複数のオブジェクトから生成されるときリレーショナル
データベース上のテーブルの結合関係であるビューを自
動生成するものである。
【0015】また、上記3階層の各プログラムが複数の
オブジェクトから生成されるとき生成に関係したオブジ
ェクト名をツリー表示するものである。
【0016】さらに、上記オブジェクトが変更されたと
き変更されたことを上記オブジェクトの各ユーザに知ら
せるものである。
【0017】また、上記3階層の各プログラムが自動生
成されるとき各プログラムに関するそれぞれの仕様書を
自動生成するものである。
【0018】
【発明の実施の形態】
実施の形態1.図1はこの発明の一実施の形態であるプ
ログラム自動生成方法を実施するためのシステム構成を
示すもので、計算機上に基本オブジェクト、オブジェク
ト定義ツール、オブジェクト情報、オブジェクト一覧、
プログラム自動生成装置等を設け、3階層のコンポーネ
ントプログラムである、データベースアクセスプログラ
ム、ビジネスロジックプログラム、ユーザインタフェー
スプログラム、データベーススキーマ定義プログラム、
及びそれらの仕様書の自動生成を行う。以下、詳細に説
明する。
【0019】図1において、1は計算機で、一般的には
クライアントマシンであり、本実施の形態においては、
この装置上でプログラムを開発し、開発されたプログラ
ムは別の計算機環境で実行されることを想定している。
2は基本オブジェクトで、3階層のプログラムを作成す
るために必要な最低限の実行動作メソッドやプロパティ
が記述されたオブジェクトである。例えば、在庫管理、
給与計算等のアプリケーションプログラムの場合には、
それぞれのアプリケーションプログラムとして典型的な
モデルとしてのメソッドやプロパティが記述されたオブ
ジェクトである。これらのアプリケーションプログラム
には、代表的な業務パターンがあるので、予め設定する
ことが可能である。
【0020】3はオブジェクト定義ツールであり、この
ツールによってユーザはオブジェクトの内容を定義す
る。オブジェクトの内容はプロパティとメソッドという
概念で扱われる。プロパティは値を保存するための領域
をいい、メソッドは手続きの内容とその手続きを呼び出
すためのインタフェースを定義したものである。ユーザ
は基本オブジェクト2から選択したオブジェクトとして
のモデルについて、修正する必要がある場合は修正する
ことにより希望のオブジェクトを定義することができ
る。4はオブジェクト定義ツール3により、生成される
オブジェクト情報であり、オブジェクト1つに対して1
つのファイルが生成される。このオブジェクト情報4に
は、各アプリケーションプログラムごとに関係するオブ
ジェクトが格納されており、必要により検索可能な状態
になっている。
【0021】5は実際にオブジェクトからプログラムを
作成する動作の中の機能の1つでオブジェクトを一覧表
示するツールである。一覧表示は、各アプリケーション
プログラムごとに関係するオブジェクトが整然と並んで
おり、それらのオブジェクトの機能は別途説明書きを参
照することにより理解できるようになっている。ユーザ
はここからオブジェクトを選択して、3階層のプログラ
ム構成を決定する。6は本実施の形態の中心的な働きを
するプログラム自動生成装置である。ユーザに選択され
たオブジェクトを解析して、3階層のプログラムを自動
生成する。
【0022】7は3階層のプログラムにおいてデータベ
ースにアクセスする部分の機能をコンポーネントにした
プログラムである。データベースにアクセスするメソッ
ドが定義されている。このメソッドを呼び出すことによ
り、データベースをアクセスすることができる。8はビ
ジネスロジックプログラムであり、9のユーザインタフ
ェースプログラムと7のデータベースプログラムの仲介
をすると同時に、必要な手続き処理を実行する。9はユ
ーザインタフェースプログラムであり、実際にシステム
を操作するユーザが使用する画面の機能を定義したコン
ポーネントプログラムである。画面にイベントが起る
と、ビジネスロジックのコンポーネントプログラムが動
作するようにプログラムされる。
【0023】本実施の形態においては説明をわかりやす
くするためにデータベースアクセス、ビジネスロジッ
ク、ユーザインタフェースのコンポーネントは1対1に
なるようにしてあるが、実際には、これらは複数生成す
ることも可能である。10はデータベーススキーマ定義
プログラムであり、実行環境の計算機システム内のデー
タベース管理装置に実際にここで生成されたプログラム
が動作するために必要なデータベースのスキーマを定義
するプログラムである。これは実行環境の計算機システ
ムで1度だけ動作させれば、そのデータベースシステム
内に必要なデータベースが生成される。11は仕様書で
あり、これら自動生成されたプログラムがどのようなオ
ブジェクトから生成されたか、どのような機能をもって
いるかを仕様書のドキュメント形式で出力されるもので
ある。
【0024】図2は生成されたプログラムの実行イメー
ジである。12は実行システム上のリレーショナルデー
タベース(RDB)であり、このデータベースの中にデー
タベースのテーブルの定義を行うプログラムがデータベ
ーススキーマ定義プログラムである。定義が終了したあ
とは、実際に3階層のプログラムを動作させることがで
きる。データベースアクセスプログラムとビジネスロジ
ックプログラムはサーバ側に配置し、ユーザインタフェ
ースプログラムはクライアントマシン上に配置する。こ
のようにして、LAN経由で3階層のプログラムをそれ
ぞれ異なる計算機環境で実行させることができる。
【0025】ユーザインタフェースプログラムとビジネ
スロジックプログラムは通信によるメソッド呼び出しに
より実行される。ユーザインタフェースプログラムが起
動されると、そのユーザインタフェースプログラムとセ
ットになっている他の3階層のプログラムであるビジネ
スロジックプログラム、データベースプログラムがサー
バマシン上で起動され、実行が開始される。ユーザイン
タフェースプログラムを操作するユーザが商品コードを
入力するとその商品コードデータがビジネスロジックに
メソッド呼び出しの引数の形で通知され、ビジネスロジ
ックの中で整合性チェックが行われ、その商品コードデ
ータを基に該当するデータベーステーブルを検索し、検
索した結果レコードを返すといった処理が行われる。
【0026】図3はプログラム自動生成装置のユーザと
のインタフェース画面の一例である。この例ではオブジ
ェクト一覧機能とプログラム自動生成機能は同じ画面上
に配置されている。13はオブジェクト一覧エリア(Wi
ndowフレーム)であり、14が個々のオブジェクトであ
る。この例ではオブジェクトは名前とアイコンで表現さ
れている。15はユーザインタフェースプログラムを生
成するエリアである。このエリアにオブジェクト一覧か
らオブジェクトをマウスでドラッグするだけでユーザイ
ンタフェースプログラムが自動的に生成される。16が
生成されたユーザインタフェースプログラムをあらわす
アイコンである。
【0027】17はビジネスロジックプログラムを生成
するエリアであり、18が上記と同様の操作において生
成されたビジネスロジックをあらわすアイコンである。
19はデータベースアクセスプログラムを生成するエリ
アあである。20は上記と同様にデータベースアクセス
プログラムをあらわすアイコンである。ユーザインタフ
ェース、ビジネスロジック、データベースの生成された
プログラムアイコンはマウスクリックすると、どのよう
なオブジェクトから生成されたかがわかるようにツリー
表示されるようになっている。これは1つのオブジェク
トからだけではなく、2つ以上のオブジェクトを複数マ
ウスドラッグした場合には、複数のオブジェクトから1
つのプログラムを作成することができる。
【0028】図4はオブジェクト定義ツールである。本
実施の形態の場合には上記図3のメイン画面とオブジェ
クト定義ツール3を一体化させた例を用いて説明する。
図3におけるオブジェクト一覧エリア13にオブジェク
トを追加するには、図3のウィンドウメニューの中にあ
る新規オブジェクトメニューを選択することにより、図
4のオブジェクト定義画面が表示される。図4において
21はオブジェクトの英数名称を指定するエリアであ
る。この例ではオブジェクト名は英数の文字列からなる
と仮定する。22はオブジェクトの日本語名称を記述す
るエリアである。その日本語名称は、そのまま仕様書を
生成するために利用されるので、意味のある日本語名称
を指定する必要がある。
【0029】23は参照ボタンであり、オブジェクトを
既に定義済のオブジェクトから継承により作成する場合
には、このボタンにより基本オブジェクトや既定義済み
の継承オブジェクトの一覧を表示し、オブジェクトの基
本機能を継承する。これにより、オブジェクトは既定義
済みのオブジェクトの機能を受け継ぐことが可能とな
る。24はプロパティ一覧エリアである。プロパティと
はオブジェクトの状態をあらわす変数のことで、情報を
保存するための領域を確保する働きがある。
【0030】25はプロパティの追加ボタンであり、こ
のボタンをマウスクリックすることにより、プロパティ
の追加や編集を行うことができる。26はメソッド一覧
エリアである。メソッドはオブジェクトに対する手続き
を呼び出すためのインタフェースを定義するもので、引
数とリターン値の型を持つ。27はメソッドの追加ボタ
ンであり、このボタンをマウスクリックすることによ
り、メソッドの追加や編集を行うことができる。28は
確定ボタン、29は操作をすべて取り消すキャンセルボ
タンである。
【0031】図5はプロパティの追加を行うウィンドウ
のイメージである。図4のプロパティ追加ボタン25を
クリックすると表示される。30はプロパティ名を表示
するエリアである。31は日本語のプロパティを表示す
るエリアである。32と33はインプリメントを表示す
るエリアで、既に基本オブジェクトの中に定義されてい
る用意されたプロパティの場合にはストックを選択し、
開発者が任意にカスタマイズする場合にはカスタムを選
択する。34は例えば数字型等のプロパティの型を決定
するエリアである。35はタイプエリアで、ここでプロ
パティの型を選択する。
【0032】36は長さであり、データ領域として確保
する長さを指定する。37はコメントエリアで仕様書を
作成する際に必要なコメント情報を記述する。38はパ
ラメータ情報を決定するエリアのタブ、39はプロパテ
ィ属性を決定するタブである。タブはそれぞれマウスク
リックすることにより、画面が切り替わるグラフィカル
ユーザインタフェースである。40は追加ボタンであ
り、このボタンによりプロパティの追加変更が行える。
41はクリアボタンであり、表示上のエリアをクリアす
る。42は閉じるボタンであり、このダイアログウィン
ドウを閉じる。
【0033】図6は図5におけるタブを切り替えたとき
のパラメータ情報のタブ画面を示している。43はパラ
メータ名、44はパラメータタイプ、45はパラメータ
入力エリアである。パラメータはプロパティに与える条
件を設定するものである。例えば、Aというプロパティ
は1から50の範囲以内の値であることをチェックする
ようなときに使用する。
【0034】図7は図5におけるタブを切り替えたとき
のプロパティ特性のタブ画面を示している。種々の条件
を設定することによりプロパティ特性を自由に設定する
ことができる。46はプロパティの取得関数名、47は
プロパティの設定関数名をそれぞれ指定するエリアであ
る。プロパティは取得関数により値を得ることが可能と
なり、設定関数により内部的な値を変更することができ
る。48はコメントエリアであり、これらの関数につい
てコメントを付加しておくことで、仕様書生成が行われ
る。49はデータベースにこのプロパティを追加するか
どうかを指定する。50はさらにデータベースのテーブ
ル上のキーにするかどうかを設定するものである。51
はこのプロパティを画面に表示するかどうかを指定する
ものである。52は特権モードをあらわすもので、この
プロパティを特権がないとアクセスできないプロパティ
にするかどうかを設定するものである。
【0035】図8は図4のメソッドの追加ボタン27を
クリックすると表示されるウィンドウダイアログであ
る。この画面でメソッドを定義する。53はメソッドの
英数名称を指定するエリアで、54はメソッドの漢字名
称を指定するエリアである。55と56がメソッドの実
装方法を指定するもので、55のストックが既存のメソ
ッドをあらわし、56がカスタムメソッドで開発者が定
義するメソッドを示す。57はメソッドの型を示すタブ
で、58がメソッドのリターン値のタイプ、59がリタ
ーン値の長さを示すエリアである。60はメソッドに対
するコメントを表示するエリアでここに記述した内容が
仕様書作成に用いられる。61はパラメータ情報タブで
あり、メソッドの引数などをこのタブ画面で指定する。
62は追加ボタン、63はクリアボタンである。64は
閉じるボタンである。
【0036】図9は図8のパラメータ情報タブ61をク
リックしたときの画面である。65はパラメータ名を指
定するエリア、66はパラメータのタイプを指定するエ
リアである。これによりパラメータリストに内容が追加
されていき、メソッドの引数の指定ができる。67はパ
ラメータの表示領域で指定したパラメータを表示する。
【0037】図10はオブジェクトの形式概要である。
68がオブジェクト形式ファイルの内容の構成である。
オブジェクトヘッダ,メソッド定義領域、プロパティ定
義領域から構成される。69はオブジェクトヘッダであ
り、オブジェクトの管理を行うためのヘッダである。7
0はメソッド定義領域に記述される1つのメソッドの定
義に関する内容である。実際にはMETHOD2、ME
THOD3のように、メソッドの数だけ、この構造が用
意される。71はプロパティ定義領域に記述されるプロ
パティ定義に関する内容である。これも実際にはプロパ
ティの数だけ、この構造が用意される。メソッド定義領
域及びプロパティ定義領域はそれぞれオブジェクトヘッ
ダ内のメソッド定義領域ポインタとプロパティ定義領域
ポインタにより指定される。図11にオブジェクト形式
ファイルの一例を示す。
【0038】図12はオブジェクト間の関係をユーザイ
ンタフェース、ビジネスロジック、データベースアクセ
スのそれぞれについて示したものである。一例として、
オブジェクトAというオブジェクト名のオブジェクト形
式ファイルから3階層でそれぞれ必要なメソッド、プロ
パティが使用されて3階層の各プログラムが自動生成さ
れることになる。
【0039】図1から図12を使用してプログラム自動
生成方法について説明する。図3においてオブジェクト
一覧にオブジェクトが表示されている。プログラムを自
動生成するためには、これらのオブジェクトの働きや効
果などは、予め開発者は知っているものと想定する。ま
た、別途格納されている各オブジェクトの説明書きを参
照するようにすることも可能である。必要なオブジェク
トが定義されている場合には、そのオブジェクトを使用
することでプログラムが開発可能であるが、オブジェク
ト機能がない場合には、新しくオブジェクトを作成する
必要がある。
【0040】オブジェクトを作成する場合には、図4に
あるオブジェクトの定義ツールを使用して、新しいオブ
ジェクトを作成する。オブジェクトはプロパティとメソ
ッドで表現する。プロパティはオブジェクト内の変数で
あり、状態や値を保存するためのメモリ上の領域を確保
するための定義である。メソッドはこれらのオブジェク
トの振る舞いを定義するもので、外部から手続きを動作
させるためのインタフェースになる。オブジェクトはゼ
ロから作成すると、大変なので、効果的にオブジェクト
を作成できるようにするために、基本オブジェクト2を
用意する。基本オブジェクト2にはDBの基本的なアク
セスメソッドや、ビジネスロジックとしての簡単な演算
機能などよく使われる定型処理をアプリケーションプロ
グラムごとにまとめて基本オブジェクト2にしておく。
開発者はこれを継承して、修正することにより新しいオ
ブジェクトを定義することで、簡単にその継承オブジェ
クトをカスタマイズした新しいオブジェクトを手に入れ
ることが可能となる。
【0041】図3において、定義されたオブジェクト一
覧から複数のオブジェクトを選択して、ユーザインタフ
ェースのエリア16、ビジネスロジックのエリア17、
データベースのエリア19にそれぞれドラッグする。こ
の時点でオブジェクト間の関係より、図12のような関
係が得られる。これはオブジェクトAとBはユーザイン
タフェースの画面を作成するときには、AとBを別々の
フレーム上にならべ、そしてその別々のフレーム上にオ
ブジェクトの内部に記述されているプロパティ情報を部
品として設定する。
【0042】プロパティ情報には予め、型や長さが埋め
込まれているので、画面を配置するのと同時に、その入
力部品でどのようなタイプチェックを行うか、長さチェ
ックを行うかのプログラムをユーザインタフェースプロ
グラムの中に生成することができる。そして1プロパテ
ィずつ画面に配置していくわけである。画面上のマージ
ンなどは適当なデフォルト値で決定される。もちろん変
更できるようなオプション機能をもたせてもよい。次に
ビジネスロジックエリアにドラッグされたオブジェクト
では、メソッドを作成する。メソッドはインタフェース
を持っているので、それを定義する。メソッドの本体で
は、カスタマイズされているか、そのまま基本オブジェ
クトのメソッドを使用するかオブジェクト定義の中に記
述されているので、それを使用してメソッド生成する。
カスタマイズされているメソッドの場合には、その内容
を設定する。
【0043】次にデータベースアクセスエリアにドラッ
グされたオブジェクトでは、各プロパティ情報を参照し
て、データベースのテーブルをアクセスするデータベー
スアクセスプログラムを生成する。次に各プログラムが
生成されたのち、それぞれのコンポーネント間の呼び出
しルーチンを生成する。これにより、ユーザインタフェ
ースプログラムからビジネスロジックプログラム、デー
タベースアクセスプログラムへと制御を移動することが
できる。
【0044】次に図13のフローチャートを用いてオブ
ジェクト定義の内部処理について示す.これは図4に対
応した処理である。ステップS1において、オブジェク
ト名を取得する。次にステップS2とS3において、継
承オブジェクトが参照されたかどうかチェックする。継
承オブジェクトがあればステップS4とS5で継承オブ
ジェクトのプロパティとメソッドをすべて取得する。こ
れは継承オブジェクトの構造図10より、どのように取
り出すかは明らかである。次に、プロパティ追加処理と
メソッド追加処理を行うためのループを構成する。ステ
ップS6ではプロパティ追加処理を判断し、もしプロパ
ティの追加があればステップS7で追加処理を行う。ス
テップS8ではメソッド追加処理を判断し、もしメソッ
ドの追加があればステップS9でメソッドの追加処理を
行う。終了ボタン、あるいはキャンセルボタンが押され
るまで、これらの追加処理を行う。
【0045】図14にプロパティの追加処理について示
す.これは図5に対応した処理である。ステップS11
においてプロパティ名を取得する。次にステップS12
において日本語名称を取得する。ステップS13におい
て実装方法がカスタムかストックかの内容を取得する。
ステップS14において型、長さ、コメント、パラメー
タ情報、プロパティ特性を取得し、メモリ領域にコピー
する。
【0046】図15においてメソッドの追加処理につい
て示す。これは図6に対応した処理である。ステップS
15においてメソッド名を取得する。次にステップS1
6において日本語名称を取得する。次にステップS17
において実装方法がカスタムかストックかの内容を取得
する。ステップS18において型、長さ,コメント、パ
ラメータ情報について取得し、メモリ領域にコピーす
る。
【0047】次にプログラムの自動生成部分の説明をフ
ローチャートを用いて行う。図16はユーザインタフェ
ース部分の画面レイアウトとプログラムを自動生成する
時のフローチャートである。図17は図16から呼び出
されるサブルーチンであり、画面レイアウト生成を行う
フローチャートである。図18は図16から呼び出され
るサブルーチンであり、ビジネスロジック部のメソッド
の呼び出しと生成を行うフローチャートである。
【0048】図16において、ステップS19はユーザ
インタフェースエリアから使用されているオブジェクト
を取得してくる。オブジェクトは複数から成り立ってい
る場合があるので、ループ構造になっており、ユーザイ
ンタフェースオブジェクトがなくなるまで、繰り返しが
行われる。 次にステップS20でオブジェクトがある
かどうかを判定する。オブジェクトがあれば、ステップ
21で画面レイアウトを作成する。ユーザインタフェー
スオブジェクトごとに画面上はフレームが生成させる。
次に生成した画面部分に対して、メソッドの呼び出しの
プログラムを作成するサブルーチンを呼び出すステップ
がS22である。このループをユーザインタフェースオ
ブジェクトがなくなるまで続ける。ステップS20の判
定でオブジェクトがなくなれば、実際にファイルへ画面
レイアウトとプログラムを出力する。
【0049】図17は画面レイアウト配置のフローチャ
ートである。ここでの基本的な画面配置ルールはプロパ
ティの出現順番に応じて,決められた画面レイアウト上
の間隔で部品を配置していくルールである。画面上のレ
イアウトはX、Y座標の2次元のレイアウトを行う。ス
テップ24でX、Y座標の初期値を与える。次にS25
でオブジェクトのプロパティを1つ取り出す。ステップ
S26でプロパティが存在するかどうかチェックする。
もし、プロパティがあれば、ステップS27でプロパテ
ィの名称を取得し、ステップS28で型、長さを取得す
る。ステップS29ではテキスト入力エリアの見出しと
なるラベル部品を配置し、ラベルの内容をプロパティの
名称とする。次にステップS30において、テキストエ
リアを配置する。この時テキストエリアの大きさを決定
するのに、型と長さ情報を使用する。Y座標を進めるス
テップS31を行いループする。
【0050】図18はメソッド呼び出しの割付けのフロ
ーチャートである。画面に入力されたデータはメソッド
を呼び出すことでビジネスロジックと通信を行うことが
できる。その通信を行うためのメソッド呼び出しルーチ
ンを作成するものである。ステップS32において、ビ
ジネスロジックオブジェクトを取得する。この中に呼び
出すべきメソッドが定義されている。そのインタフェー
スを使用すれば、呼び出すべきメソッドを生成可能であ
る。ステップS33において、メソッドを1つ取得す
る。ステップS34でメソッドがあったかどうかチェッ
クする。メソッドがあれば、ステップS35で画面レイ
アウト上にボタンを配置し、ステップS36でそのボタ
ンのクリックイベントにメソッド呼び出しを割り当て
る。これを繰り返すことにより、ユーザインタフェース
の画面からボタンを押すことで、ビジネスロジックのメ
ソッドを呼び出すことができる。
【0051】次にビジネスロジックの自動生成について
図19のフローチャートを用いて説明する。ビジネスロ
ジックプログラムはユーザインタフェースとデータベー
スアクセスロジックをつなぐ役割と、基本的なビジネス
ルールのロジックがある。それらはオブジェクトの中に
メソッドとプロパティということで定義してあるので、
それを設定するのが図19のフローチャートサブルーチ
ンの役割である。
【0052】図19において、ステップS37でビジネ
スオブジェクトに継承オブジェクトがあるかどうかチェ
ックする。もし、継承オブジェクトがあれば、ステップ
S38で継承オブジェクトからメソッドを取り出し、メ
ソッドを設定する。もし継承オブジェクトがなければ、
ステップS39を行う。ステップS39ではビジネスオ
ブジェクトのプロパティを設定するための処理で、プロ
パティを1つ取得する。ステップS40ではプロパティ
が終了したかどうかを判定する。もし、プロパティがあ
れば、ステップS41でプロパティの取得関数、設定関
数を設定する。これをすべてのプロパティについて繰り
返す。次にステップS42において、メソッド情報を1
つ取り出す。ステップS43でメソッド情報が終了して
いないかどうかチェックし、メソッドがあれば、メソッ
ド情報を設定し、メソッドを作成する。これをメソッド
情報がなくなるまで繰り返す。この操作によりビジネス
ロジックとして、データを保存するプロパティとデータ
操作を行うメソッドが作成される。
【0053】次にデータベースロジックの自動生成につ
いて図20のフローチャートを用いて説明する。データ
ベースアクセスプログラムは、オブジェクトに定義され
たプロパティをリレーショナルデータベースのテーブル
の項目とみなして、データベースアクセスを行う。デー
タベースのアクセス方法は、READ、WRITE、D
ELETE、INSERTである。
【0054】図20において、ステップS45において
継承オブジェクトの有無を判定する。もし基本オブジェ
クトからの継承があれば、基本オブジェクトのメソッド
をステップS46で生成する。次に、ステップS47に
おいて1つずつプロパティを検査する。そして、プロパ
ティに記述されたデータベースの情報をチェックし、プ
ロパティ情報を作り上げる。これがステップS49での
処理である。最終的にステップS48ですべてのプロパ
ティが検査されたとき、このオブジェクトから生成され
るデータベースのテーブルのイメージが作成される。こ
の情報をもとに、ステップS50、S51、S52、S
53でREAD、WRITE、DELETE、INSE
RTのメソッドを作成する。
【0055】次にスキーマ生成プログラムの自動生成に
ついて図21のフローチャートを用いて説明する。スキ
ーマ定義は実行環境システムのデータベースの中に、デ
ータベースアクセスプログラムの使用するデータベース
テーブルの定義体を作成するためのプログラムである。
【0056】図21において、ステップS54でデータ
ベースオブジェクトを取得する。ステップS55におい
て、データベースオブジェクトが0ではないことを判断
する。データベースオブジェクトが0ならプログラム生
成終了。ステップS56において、データベースオブジ
ェクトからテーブルの項目となるべき、プロパティを取
得する。ステップS57においてプロパティが0でない
ことを判定する。ステップS58においてプロパティの
情報からデータベースに関連する情報を抽出し、メモリ
上に貯えていく。ステップS57においてプロパティを
すべて検査したらステップS59においてCreateTable
のテーブル生成命令を生成する。これをデータベースオ
ブジェクトの個数分繰り返すことにより、本発明環境で
使用されるデータベースのスキーマ定義プログラムを生
成することができる。
【0057】次に仕様書生成について図22のフローチ
ャートを用いて説明する。仕様書はオブジェクトの中に
埋め込まれたコメントと、各メソッドやプロパティの日
本語名称、型、長さなどを人間が見やすい形で出力する
ものである。アルゴリズムとしては、すべてのオブジェ
クトを1つずつ検査して内容を取り出し、ドキュメント
として見やすくする作業を行う。
【0058】図22において、ステップS60において
オブジェクトを1つ取得する。ステップS61におい
て、オブジェクトが最後でないことを判断する。ステッ
プS62において、オブジェクトの継承関係があるかど
うか検査するための情報を取得する。オブジェクトの継
承関係があれば、そのオブジェクトについて先に、仕様
書を作成するため、図21の仕様書作成サブルーチンを
自己再帰呼び出しにより、呼び出し処理する。継承オブ
ジェクトがなくなれば、ステップS65において、プロ
パティ情報を取得し、ステップS66でメソッド情報を
取得し、ステップS67でドキュメントとして整形編集
処理して、ステップS68で仕様書ファイルへ出力す
る。これをオブジェクトの数だけ繰り返す。
【0059】次に2つのオブジェクトの関係からリレー
ショナルデータベース上のテーブルの結合関係であるビ
ューを生成する方式について、図23のフローチャート
を用いて説明する。
【0060】図23において、ステップS69でデータ
ベースオブジェクトを取得する。次にステップS70に
おいて継承元のオブジェクトを取得する。ステップS7
1において、継承関係があるかどうか判断する。もし、
継承関係がなければ、このルーチンでは何も起らない。
継承関係があれば、ビューが作成できるので、継承元の
オブジェクトよりプロパティをステップS72で取得す
る。次にステップS73において、継承先のオブジェク
トのプロパティを取得する。これで、ビューを作成する
ための、テーブル項目情報が集まったので、プロパティ
同士を結合するステップS74で、プロパティを論理的
なandを取ってプロパティを一意に結合する。ステッ
プS75において結合情報を継承先オブジェクトに保存
することで、ビュー定義が行える。
【0061】次にオブジェクトの変更通知について図2
4を用いて説明する。図24において、ステップS76
のオブジェクト定義を行うと、オブジェクト情報の中に
保管されている日付、時間においてオブジェクトの変更
をチェックすることができる。ステップS77ではその
オブジェクトの変更を判断する。もし、オブジェクトが
変更されていたら、ステップS78によって、オブジェ
クトの変更リストへオブジェクトが変更されたことを書
き込んでおく。あとで、この変更リストをソース生成な
どのタイミングでチェックすることにより、オブジェク
トが変更されたことをチェックすることが可能となる。
【0062】
【発明の効果】この発明は、以上説明したように構成さ
れているので、以下に示すような効果を奏する。
【0063】アプリケーションプログラムの基本的なロ
ジックであるモデルを格納した基本オブジェクトから上
記モデルを選択するように構成したので、プログラム開
発時に混入しがちな不良を未然に防止し、信頼性を向上
することができる。
【0064】また、アプリケーションプログラムごとに
関係する定義済の継承オブジェクトを格納したオブジェ
クト情報から必要な継承オブジェクトを選択するように
構成したので、プログラムの生産性を向上させることが
できる。
【0065】さらに、ユーザインタフェースロジックは
画面プログラムの画面上に配置される入出力GUI部品
のレイアウトを自動配置するように構成したので、画面
の自動的なレイアウトを可能とし、生産性を向上させる
ことができる。
【0066】また、データベースアクセスロジックはデ
ータベーススキーマを定義するデータベーススキーマ定
義プログラムを自動生成するように構成したので、基本
的なスキーマを自動生成することができ、設定時間を小
さくすることができる。
【0067】さらにまた、リレーショナルデータベース
上のテーブルの結合関係であるビューを自動生成するよ
うに構成したので、リレーショナルデータベースの連結
を簡単に行なうことができる。
【0068】また、自動生成に関係したオブジェクト名
をツリー表示するように構成したので、オブジェクト定
義の継承関係が分かり、プログラム作成が容易になる。
【0069】さらに、オブジェクトが変更されたとき変
更されたことを上記オブジェクトの各ユーザに知らせる
ように構成したので、アプリケーションプログラムへの
影響を判断することができ、プログラム開発の自由度が
向上する。
【0070】また、各プログラムに関するそれぞれの仕
様書を自動生成するように構成したので、プログラム開
発と同時に仕様書を作成することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のプログラム自動生
成装置を示すシステム構成図である。
【図2】 この発明の実施の形態1の自動生成プログラ
ム実行イメージを示すブロック図である。
【図3】 この発明の実施の形態1のインターフェース
画面を示す概念図である。
【図4】 この発明の実施の形態1のオブジェクト定義
画面を示す概念図である。
【図5】 この発明の実施の形態1のプロパティ追加ダ
イアログウィンドウを示す概念図である。
【図6】 この発明の実施の形態1のプロパティ追加ダ
イアログウィンドウを示す概念図である。
【図7】 この発明の実施の形態1のプロパティ追加ダ
イアログウィンドウを示す概念図である。
【図8】 この発明の実施の形態1のメソッド追加ダイ
アログウィンドウを示す概念図である。
【図9】 この発明の実施の形態1のメソッド追加ダイ
アログウィンドウを示す概念図である。
【図10】 この発明の実施の形態1のオブジェクト内
部構造を示す構成図である。
【図11】 この発明の実施の形態1のをオブジェクト
内部構造の具体例を示す構成図である。
【図12】 この発明の実施の形態1のオブジェクトの
関連を示す模式図である。
【図13】 この発明の実施の形態1のオブジェクト定
義処理を示すフローチャートである。
【図14】 この発明の実施の形態1のプロパティ追加
処理を示すフローチャートである。
【図15】 この発明の実施の形態1のメソッド追加処
理を示すフローチャートである。
【図16】 この発明の実施の形態1のユーザインタフ
ェースロジック自動生成を示すフローチャートである。
【図17】 この発明の実施の形態1の画面レイアウト
処理を示すフローチャートである。
【図18】 この発明の実施の形態1のメソッド呼び出
しの割付処理を示すフローチャートである。
【図19】 この発明の実施の形態1のビジネスロジッ
ク自動生成処理を示すフローチャートである。
【図20】 この発明の実施の形態1のデータベースロ
ジック自動生成処理を示すフローチャートである。
【図21】 この発明の実施の形態1のスキーマ生成処
理を示すフローチャートである。
【図22】 この発明の実施の形態1の仕様書生成処理
を示すフローチャートである。
【図23】 この発明の実施の形態1のビュー生成処理
を示すフローチャートである。
【図24】 この発明の実施の形態1のオブジェクト変
更通知処理を示すフローチャートである。
【符号の説明】
2 基本オブジェクト、3 オブジェクト定義ツール、
6 プログラム自動生成装置、10 データベーススキ
ーマ定義プログラム、11 仕様書。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 アプリケーションプログラムをユーザイ
    ンタフェースロジック、ビジネスロジック、データベー
    スアクセスロジックの3階層のプログラムに分割して生
    成する方法において、上記アプリケーションプログラム
    の基本的なロジックであるモデルを格納した基本オブジ
    ェクトから上記モデルを選択するステップ、選択したモ
    デルに基づきデータのデータ型、データ長、データ名、
    データ属性をプロパティとして指定し、そのプロパティ
    の操作や一連の処理手順をメソッドとして指定し、それ
    らのプロパティ及びメソッドの集合を上記3階層のプロ
    グラムのそれぞれに対応したオブジェクトとして定義す
    るステップ、定義したオブジェクトを用いることにより
    上記モデルを参照しつつ上記3階層のプログラム間のイ
    ンタフェースをとりながらそれぞれのプログラムを自動
    生成するステップからなることを特徴とするプログラム
    自動生成方法。
  2. 【請求項2】 アプリケーションプログラムをユーザイ
    ンタフェースロジック、ビジネスロジック、データベー
    スアクセスロジックの3階層のプログラムに分割して生
    成する方法において、上記アプリケーションプログラム
    ごとに関係する定義済の継承オブジェクトを格納したオ
    ブジェクト情報から必要な継承オブジェクトを選択する
    ステップ、それらの継承オブジェクトに含まれるプロパ
    ティ及びメソッドを必要により変更するステップ、それ
    らの継承オブジェクトを用いることにより上記アプリケ
    ーションプログラムの基本的なロジックであるモデルを
    参照しつつ上記3階層のプログラム間のインタフェース
    をとりながらそれぞれのプログラムを自動生成するステ
    ップからなることを特徴とするプログラム自動生成方
    法。
  3. 【請求項3】 上記3階層のプログラムのユーザインタ
    フェースロジックは画面プログラムの画面上に配置され
    る入出力GUI部品のレイアウトを自動配置することを
    特徴とする請求項1又は請求項2に記載のプログラム自
    動生成方法。
  4. 【請求項4】 上記3階層のプログラムのデータベース
    アクセスロジックはデータベーススキーマを定義するデ
    ータベーススキーマ定義プログラムを自動生成すること
    を特徴とする請求項1〜請求項3のいずれかに記載のプ
    ログラム自動生成方法。
  5. 【請求項5】 上記3階層の各プログラムが複数のオブ
    ジェクトから生成されるときリレーショナルデータベー
    ス上のテーブルの結合関係であるビューを自動生成する
    ことを特徴とする請求項1〜請求項4のいずれかに記載
    のプログラム自動生成方法。
  6. 【請求項6】 上記3階層の各プログラムが複数のオブ
    ジェクトから生成されるとき生成に関係したオブジェク
    ト名をツリー表示することを特徴とする請求項1〜請求
    項5のいずれかに記載のプログラム自動生成方法。
  7. 【請求項7】 上記オブジェクトが変更されたとき変更
    されたことを上記オブジェクトの各ユーザに知らせるこ
    とを特徴とする請求項1〜請求項6のいずれかに記載の
    プログラム自動生成方法。
  8. 【請求項8】 上記3階層の各プログラムが自動生成さ
    れるとき各プログラムに関するそれぞれの仕様書を自動
    生成することを特徴とする請求項1〜請求項7のいずれ
    かに記載のプログラム自動生成方法。
JP9262991A 1997-09-29 1997-09-29 プログラム自動生成方法 Pending JPH11102293A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9262991A JPH11102293A (ja) 1997-09-29 1997-09-29 プログラム自動生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9262991A JPH11102293A (ja) 1997-09-29 1997-09-29 プログラム自動生成方法

Publications (1)

Publication Number Publication Date
JPH11102293A true JPH11102293A (ja) 1999-04-13

Family

ID=17383388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9262991A Pending JPH11102293A (ja) 1997-09-29 1997-09-29 プログラム自動生成方法

Country Status (1)

Country Link
JP (1) JPH11102293A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006235874A (ja) * 2005-02-23 2006-09-07 Japan Research Institute Ltd 業務用情報処理システム
JP2008532186A (ja) * 2005-03-03 2008-08-14 トムソン グローバル リソーシーズ 自動ビジネスプロセスアプリケーションを設計するための統合システム、ツールおよび方法
JP2010128839A (ja) * 2008-11-28 2010-06-10 Yamatake Corp 画面作成表示システム
US7849413B2 (en) 2006-07-27 2010-12-07 Canon Kabushiki Kaisha Information processing apparatus and user interface control method
JP2011210266A (ja) * 1999-09-14 2011-10-20 Droplet Inc 遠隔に格納されたアプリケーション及び情報を配信する方法及びシステム
JP2013238976A (ja) * 2012-05-14 2013-11-28 Nomura Research Institute Ltd ソースコード生成システム
JP2019169002A (ja) * 2018-03-23 2019-10-03 株式会社日立ソリューションズ・クリエイト ソース作成装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011210266A (ja) * 1999-09-14 2011-10-20 Droplet Inc 遠隔に格納されたアプリケーション及び情報を配信する方法及びシステム
JP2006235874A (ja) * 2005-02-23 2006-09-07 Japan Research Institute Ltd 業務用情報処理システム
JP2008532186A (ja) * 2005-03-03 2008-08-14 トムソン グローバル リソーシーズ 自動ビジネスプロセスアプリケーションを設計するための統合システム、ツールおよび方法
US7849413B2 (en) 2006-07-27 2010-12-07 Canon Kabushiki Kaisha Information processing apparatus and user interface control method
JP2010128839A (ja) * 2008-11-28 2010-06-10 Yamatake Corp 画面作成表示システム
JP2013238976A (ja) * 2012-05-14 2013-11-28 Nomura Research Institute Ltd ソースコード生成システム
JP2019169002A (ja) * 2018-03-23 2019-10-03 株式会社日立ソリューションズ・クリエイト ソース作成装置

Similar Documents

Publication Publication Date Title
US10222951B2 (en) Modeling system for graphic user interface
JP3136035B2 (ja) データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法
US5019961A (en) Computer apparatus and method for logical modelling
US7370315B1 (en) Visual programming environment providing synchronization between source code and graphical component objects
CA2304020C (en) Method and system for database application software creation requiring minimal programming
US7953767B2 (en) Developing applications using configurable patterns
US7366723B2 (en) Visual query modeling for configurable patterns
US7278106B1 (en) Method and apparatus for interacting with a source code control system
US5212771A (en) System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US5146591A (en) Dynamic information management system utilizing entity-relationship information model in which the attribute is independent of an entity
US8464229B2 (en) Creation of form-based software application in a graphical user interface (GUI) environment
EP2369502A2 (en) SQL generation
US8126937B2 (en) Visual database modeling
US20020161777A1 (en) Universal data editor
KR20060087995A (ko) 작업 흐름을 모델링하는 방법 및 시스템
JP2012508934A (ja) データオブジェクトの管理および自動的リンク
CN116627418B (zh) 一种基于递归算法的多级表单界面可视化生成方法及装置
JPH11102293A (ja) プログラム自動生成方法
Vanderdonckt et al. Mocadix: Designing cross-device user interfaces of an information system based on its class diagram
van der Wolf et al. An enhanced flow model for constraint handling in hierarchical multi-view design environments
Yehudai OBSERV/CRUISE—A CASE environment for prototyping of complex systems
Myatt Creating UML Projects
Magee et al. A VISUAL APPROACH TO DISTRIBUTED PROGRAMMING
Eberius Configuration And Modeling Of Mapping Processes in Schema Matching