(57)【特許請求の範囲】
【請求項１】
イベントが発生し、このイベントに対応したイベント識別子が通知されたとき、このイベント識別子の通知に基づき、データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表を参照して、上記イベント識別子に対応する項目部品エレメントを実行し、
上記項目部品エレメントの実行が完了し、実行完了した項目部品エレメント識別子が通知されたとき、この通知に基づき、実行完了した項目部品エレメント識別子に対応付けて、データ項目に対応する処理である次に実行される項目部品エレメントのアドレスを格納した追加イベント表を参照して、追加イベント表に存在する上記実行完了した項目部品エレメント識別子に対応する項目部品エレメントを実行する
ことを特徴とする項目部品エレメントの実行方法。
【請求項２】
データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表と、
実行完了した項目部品エレメント識別子に対応付けて、データ項目に対応する処理である次に実行される項目部品エレメントのアドレスを格納した追加イベント表と、
イベントが発生し、このイベントに対応したイベント識別子が通知されたとき、この発生したイベントのイベント識別子の通知に基づき、前記イベント表を参照して、通知されたイベント識別子に対応する項目部品エレメントを実行する手段と、
上記項目部品エレメントの実行が完了し、実行完了した項目部品エレメント識別子が通知されたとき、この通知に基づき、前記追加イベント表を参照し、追加イベント表に、上記実行完了した項目部品エレメント識別子が存在するとき、該実行完了した項目部品エレメント識別子に対応した次に実行される項目部品エレメントを実行する手段とを備えた
ことを特徴とする項目部品エレメントの実行装置。
【請求項３】
入出力制御に関する運用パラメータを設定する手段を備え、  前記運用パラメータの設定に応じて入出力制御を行う
ことを特徴とする請求項２の項目部品エレメントの実行装置。
【請求項４】
データ項目の型名に対応したデータ項目の型を定義した型ファイルを備え、
前記項目部品エレメントには、該項目部品エレメントで使用するデータ項目を宣言するデータ宣言部が設けられており、
項目部品エレメントを実行する際、前記型ファイルの定義に基づき、各項目部品エレメントのデータ宣言部に指定されているデータ型を変換する
ことを特徴とする請求項２または請求項３の項目部品エレメントの実行装置。
【請求項５】
添字付きデータ項目と添字なしデータ項目を相互に変換する変換機構を備え、
項目部品エレメントを実行する際、前記変換機構により添字付きデータ項目を添字なしデータ項目に変換し、項目部品エレメントは、該添え字なしデータ項目を用いて処理を行う
ことを特徴とする請求項２，３または請求項４の項目部品エレメントの実行装置。
【請求項６】
項目部品エレメントは、同じ項目に対応する複数の項目部品エレメントをまとめた項目部品に定義されており、
前記項目部品には、該項目部品に含まれる複数の項目部品エレメントにより使用される、決まりきった手続を記述した機能部品が格納され、
前記項目部品で使用される機能部品そのものまたはその宣言、及び、項目部品または該機能部品が使用するデータ項目の宣言のうち、重複する機能部品または宣言が重複しないように、重複するものを一つにまとめて記憶装置に格納する
ことを特徴とする請求項２，３，４または請求項５の項目部品エレメントの実行装置。
【請求項７】
データ項目間の関係チェック機能を持つ関係チェック部品を設け、
各項目部品エレメントが該関係チェック部品を呼び出すことにより、データ項目間の関係をチェックする
ことを特徴とする請求項２，３，４，５または請求項６の項目部品エレメントの実行装置。
【請求項８】
前記項目部品と、共通に使用できる項目部品のひな型である手本ファイルをロードし、
前記手本ファイルに基づいて、項目部品を自動的に生成する
ことを特徴とする請求項２，３，４，５，６または請求項７の項目部品エレメントの実行装置。
【請求項９】
前記項目部品が省略されたとき、前記共通に使用できる項目部品のひな型である手本ファイルをもとに項目部品を自動的に生成することを特徴とする請求項８の項目部品エレメントの実行装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ソフトウェア部品から構成される主に事務処理分野のソフトウェアの実行を可能にする項目部品エレメントの実行方法および実行装置に関する。
企業活動には、大量の事務処理が伴うものである。事務処理の多くは、コンピュータのハードウェアと事務処理支援ソフトウェアを組み合わせることで自動的に実施することができる。しかし、ソフトウェアの開発作業に多くの人手を要することに加えて、事務処理の変化に対応するためのソフトウェアの機能変更作業にも多くの人手を要している。
【０００２】
そこで、ソフトウェアの開発作業および機能変更作業の省力化の策として、再利用性の高いソフトウェア部品から構成され、かつ、主に事務処理分野によくあるタイプの機能変更に少数のソフトウェア部品の交換によって対応できるソフトウェアが要求されている。
【０００３】
【従来の技術】
上記のような再利用性の高いソフトウェア部品から構成されたソフトウェアを実行する従来の技術としては、主として次の３種のものが知られている。
１）サブルーチン実行装置
ソフトウェアに呼び出し元ルーチンとサブルーチンという階層関係を持ち込むことによって、呼び出し元ルーチンおよびサブルーチンを一種のソフトウェア部品として切り出す技術が従来から知られている。
【０００４】
そして、通常のコンピュータはサブルーチンを実行して呼び出し元に復帰するための制御機構を既に持っている。この制御機構は、複数の呼び出し元ルーチンから呼び出されるサブルーチンに関する「呼び出しおよび呼び出し元への復帰」の実行の流れを制御するものであり、部品化ソフトウエアを実行する主な要素である。なお、ＣＯＢＯＬ言語のＰＥＲＦＯＲＭ文によるセクションの実行と同等なソフトウェア部品の実行はサブルーチンの実行の一種だとみなすことができる。
２）オブジェクトの実行装置
ソフトウェアをオブジェクトという内部処理を隠蔽した単位に分解し、あるオフジェクトから別の適当なオブジェクトにメッセージを送り、メッセージを受けたオブジェクトは規定された処理を実行するという「処理実施の枠組み」を連ねて所望の処理を行わせる技術が従来から知られている。
【０００５】
そして、オブジェクトは一種のソフトウェア部品だと見なすことができる。オブジェクトにメッセージを送る仕組みおよびメッセージを受けて所望の処理を実行する装置は既存の技術によって例えば、コンピュータのハードウェアとソフトウェアによって実現されている。
３）イベント駆動ルーチンの実行装置
特定のイベントの発生を契機として、それに相応しい処理を行うイベント駆動ルーチンを実行する技術が従来から知られている。
【０００６】
そして、イベント駆動ルーチンは一種のソフトウェア部品だとみなすことができる。あるイベントの発生を契機としてそれを処理するイベント駆動ルーチンを実行する装置は既存の技術によってコンピュータのハードウェアとソフトウェアによって実現されている。
上記した「イベント駆動ルーチンの実行装置」に相当する技術は種々のものが提案されており、以下に従来の技術について説明する。
i)従来例１
図２２は上記した従来のイベント駆動ルーチンを実行する実行装置の一例を示す図であり、同図は、画面という出力装置とキーボードという入力装置とを用いてデータの入出力を行う実行装置の一例を示している。
【０００７】
同図において、１０１は例えばキーボート等の入力装置、１０２はディスプレイ等の出力装置、１０２ａは出力装置の画面の一例、１０２ｂはファンクション・キー、１０３はイベント駆動ルーチンの動作を決定する動作ルーチン決定装置、１０３ａは上記イベントを識別するイベント識別子とそのイベントの発生によって駆動されるイベント駆動ルーチンのアドレスを記憶したイベント表であり、動作ルーチン決定装置１０３はイベントが発生したとき、上記イベント表１０３ａを参照して駆動すべきイベント駆動ルーチンを決定する。
【０００８】
また、１０４はイベント駆動ルーチンを実行する処理装置、１０５はイベント駆動ルーチン１０５ａ−１，１０５ａ−２，…、その他のルーチン１０５ｂを格納した記憶装置である。
図２３はイベント表１０３ａの一例を示す図であり、イベント表１０３ａには同図に示すように、イベントを識別するためのイベント識別子とそのイベントが発生したときに駆動されるイベント駆動ルーチンの記憶装置１０５上のアドレスが記憶されている。
【０００９】
図２２において、入力装置１０１、出力装置１０２は、例えば、１０２ａに示す表示画面において、所定のデータ項目Ａの位置へのカーソルの移動（以下、これを「そのデータ項目へのフォーカスイン」という）あるいはファンクションキー１０２ｂの操作等が行われたとき、イベント発生を動作ルーチン決定装置１０３に通知する。
【００１０】
イベントの発生が通知されると、動作ルーチン決定装置１０３はイベント表１０３ａを参照し、発生したイベントに対応するイベント駆動ルーチン１０５ａ−１，１０５ａ−２，…、のアドレスを読み出し、処理装置１０４に対して発生したイベントに対応したイベント駆動ルーチンの実行を指示する。処理装置１０４は上記指示を受けると、記憶装置１０５に格納されたイベント駆動ルーチンを実行する。
【００１１】
例えば、表示画面１０２ａにおいて、データ項目Ａへのフォーカスインによるイベントが発生すると、動作ルーチン決定装置１０３はイベント表を参照して、そのイベントに対応するイベント駆動ルーチンのアドレスを読み出し、処理装置１０４に実行を指示し、例えばデータ項目Ａへどのようなデータを入力すべきかを示す入力促進メッセージ等を画面１０２ａに出力する。
【００１２】
ところで、上記のような実行装置において、代表的なイベントに対するイベント駆動ルーチンの処理としては次のものがある。
ａ）データ項目のフォーカスイン
上記したように、画面１０２ａ上の入力ポイントを示すカーソルがあるデータ項目に移動されたというイベントをとらえて、「そのデータ項目へのフォーカスイン」というイベントに対応するイベント駆動ルーチンを実行する。このイベント駆動ルーチンで行われる代表的な処理は、上記したようにそのデータ項目にどのようなデータを入力すべきかを示す入力促進メッセージを画面上に出力することである。
ｂ）入力候補一覧表示
入力候補一覧表示という機能に対応するファンクションキーが押下されたというイベントをとらえて「入力候補一覧表示」というイベントに対応するイベント駆動ルーチンを実行する。
【００１３】
このイベント駆動ルーチンで行われる代表的な処理は、画面上の入力ポイントを示すカーソルが位置するデータ項目を探し出して、画面上にそのデータ項目に入力可能なデータの候補一覧を出力することである。なお、このような処置をしておくと、この後、操作者はキーボードから一文字ずつデータ入力をするのではなく、入力候補の中のデータを選ぶという簡易な入力操作を可能にするという効果がある。
ｃ）データ項目へのデータ入力完了
あるデータ項目にデータが入力されたというイベントをとらえて、「そのデータ項目へのデータ入力完了」というイベントに対応するイベント駆動ルーチンを実行する。
【００１４】
このイベント駆動ルーチンで行われる代表的な処理は、▲１▼入力されたデータの形式の妥当性をチェックすること、および必要なら他のデータ項目の内容との矛盾の有無のチェックを含めて入力されたデータの内容の妥当性をチェックすること、▲２▼このデータが入力されたことでその値が算出可能になったデータ項目に算出データを設定すること、▲３▼このデータが入力されたことで表示可能となったデータ項目の内容を画面上に出力すること、等である。
【００１５】
上記ａ）〜ｃ）の例において、ａ）とｃ）のイベントは特定の一つのデータ項目に関係付けられているが、ｂ）のイベントは、ファンクションキーが押下されたいうイベントのみ関係付けられ、特定の一つのデータ項目に関係付けられていない。そして、ａ）のイベント駆動ルーチンは、特定の一つのデータ項目だけに強い関連性を持つ処理を行うものであるが、ｂ）とｃ）のイベント駆動ルーチンは、複数のデータ項目に強い関連性を持つ処理を行う場合がある。ただし、ｃ）のイベント駆動ルーチンは、それが処理すべき内容が単純であれば、特定の一つのデータ項目だけに強い関連性を持つものである場合がある。
【００１６】
なお、上記ｂ）を改良して、特定の一つのデータ項目と関係付けられたイベントにすることは、下記のｂ’）で説明するように既存技術として行われている。
ｂ’）特定のデータ項目の入力候補一覧表示
画面上の入力ポイントを示すカーソルがある特定のデータ項目に位置付けられている状態で入力候補一覧表示という機能に対応するファンクションキーが押下されたというイベントをとらえて、「特定のデータ項目の入力候補一覧表示」というイベントに対応するイベント駆動ルーチンを実行する。このイベント駆動ルーチンで行われる代表的な処理は、その特定のデータ項目に入力可能なデータの候補一覧を画面上に出力することである。上記ようにすると、ｂ’）のイベント駆動ルーチンは、特定のデータ項目だけに強い関連性をもつ処理を行うものとなる。
【００１７】
以上を総合すると、例えば、ａ）とｂ’）のイベント駆動ルーチン、およびｃ）のイベント駆動ルーチンの中で、その処理内容が単純で特定の一つのデータ項目だけに強い関連性をもつ処理を行うイベント駆動ルーチンなどは、データ項目に対応するソフトウェア部品だとみなすことができる。
ii) 従来例２
画面入力出力制御を行うプログラムを複数の部品に分割して、項目単位の画面入出力制御を行う技術としては、例えば、特開平４−２３８５３４号公報に示される項目単位型画面入出力制御方式が提案されている。
【００１８】
上記従来技術は、画面入力出力制御を行うプログラムを画面の遷移順序を決定する画面制御部品と、画面に表示される各データ項目の処理順序を決定する項目制御部品と、そのデータ項目の編集処理を行う項目処理部品に分割することにより、ソフトウェアの部品化を容易にし、ソフトウェアの生産性の向上、操作性の向上を図ったものである。
iii)従来例３
一つの項目ごとに対応する項目部品と、複数の項目部品に対応する項目群部品とからソフトウェアを構成する方法が知られている。
【００１９】
【発明が解決しようとする課題】
ところで、上記した従来の技術においては、次のような問題点があった。
１）部品の多くは再利用性が低い。
特定の応用分野では、従来の技術によってその大半が再利用可能性の高い部品から構成されるようなソフトウェアを実行することができる。
【００２０】
しかし、次に示す主に事務処理分野のソフトウェアにおいては、従来の技術により、その一部の部品は再利用性の高い部品から構成することができるが、残りの大部分の部品は再利用性の低い部品から構成されがちであり、全体として再利用性が上がりにくいという問題があった。
▲１▼  データエンリトなどを行うソフトウェア
入力装置から入力されたデータを基にして、データファイルなどの記憶装置の中にデータを追加したり、データファイルなどの記憶装置の中のデータを更新または削除するソフトウェア。
▲２▼  集計情報を作成するソフトウェア
データファイルなどの記憶装置の中のデータを集計することで得られたデータをデータファイルなどの記憶装置の中に格納するソフトウェア。
▲３▼  帳票出力を行うソフトウェア
データファイルなどの記憶装置の中のデータを特定の形式の帳票として出力するソフトウェア。
【００２１】
ところで、前記したi)従来例１に示した「イベント駆動ルーチンの実行装置」の場合には、ａ）とｂ’）のイベント駆動ルーチンは再利用性が高い部品ということができる。
しかし、ｃ）のイベント駆動ルーチンについては、処理内容が単純なある範囲に限定すれば、それなりに再利用性もつといえるが、主に事務処理分野の実用的なソフトウェアに適用すると処理内容が複雑となり、複数の項目と関連性をもつものも多くなるため、必ずしも再利用性が高いとはいいがたい。
【００２２】
また、前記したii) 従来例２においては、単純な項目部品については、かなり再利用性が高いものもあると考えられるが、それ以外の部品については、複数の項目と関連性をもつものが多いため、必ずしも再利用性が高いとはいいがたい。
さらに、前記したiii)従来例３についても、複数の項目と関連性をもつ部品については再利用性が高いとはいいがたい。
２）機能変更要求とソフトウェア部品との対応関係が希薄。
【００２３】
特定の応用分野においては、従来の技術によって、その分野によくあるタイプの機能変更要求と対応付け易い部品から構成されるソフトウェアを実行することができる。したがって、機能変更要求の多くはそれに対応する少数のソフトウェア部品を交換することで対応することができる。
しかしながら、前記１）の▲１▼ないし▲３▼に示した事務処理分野においては、ソフトウェアを、その分野によくあるタイプの機能変更と強い関連性を持つソフトウェア部品から構成しにくく、少数のソフトウェア部品の交換では機能変更要求に対応しにくいという問題点があった。
【００２４】
例えば、前記したi)従来例１においては、ｃ）のイベント駆動ルーチンのように、複数のデータ項目に強い関連性を持つ処理を行うイベント駆動ルーチンが存在するため、ある一つのデータ項目に関する機能変更を行う場合であっても、多くのイベント駆動ルーチンが関係することとなりがちであり、それらの多くの交換が必要となってくる。
【００２５】
また、前述したii) 従来例２においても、ある一つのデータ項目に関する機能変更を行うと、一つの項目部品だけでなく、多くの項目制御部品などに関連性をもつ場合があり、多くの部品の交換が必要となってくる。
更に、前述したiii)従来例３においては、ある一つのデータ項目に関する機能変更を行う場合に、多くの項目部品の交換が必要になりがちである。
【００２６】
本発明は上記した従来技術の問題点を考慮してなされたものであって、本発明の第１の目的は、再利用性の高いソフトウェア部品によってソフトウェアを構成することにより、主に事務処理分野において、ソフトウェアの開発作業の生産性を構造的に向上させるとともに、少数のソフトウェア部品の交換によって機能変更要求の大半に対応できる項目部品エレメントの実行方法および実行装置を提供することである。
【００２７】
本発明の第２の目的は、運用パラメータを設定することにより、データ更新方法、データの入出力、ヒューマン・コンピュータ・インタフェース（以下ＨＣＩと略記する）、サーバクライアント構成を採用するかスタンドアロン構成を採用するかなどをユーザの希望するものに設定することができる項目部品エレメントの実行方法および実行装置を提供することである。
【００２８】
本発明の第３の目的は、ソフトウェア部品の作成および修正を容易に行うことができる項目部品エレメントの実行方法および実行装置を提供することである。
【００２９】
【課題を解決するための手段】
図１は本発明の原理ブロック図である。
同図において、１はイベント発生の通知を行う入出力装置、２はイベント発生の通知もしくは項目部品エレメントの実行完了の通知を受けて項目部品エレメントの実行を指示する手段、２ａは入出力装置１との間の入力制御方法を設定する運用パラメータ、２ｂは配列データのような添字付きデータ項目と添字なしデータ項目相互間を変換する変換機構であり、上記項目部品エレメントの実行を指示する手段２は、データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表と、データ項目に対応する処理である項目部品エレメントを、実行完了した項目部品エレメント識別子に対応付けて格納した追加イベント表を備えている。
３は項目部品エレメントの実行を指示する手段２からの実行の指示を受けて記憶装置４に格納された項目部品エレメント４ｂを実行する手段、４は記憶装置であり、記憶装置４はディスク等の不揮発性記憶装置、または主記憶装置等の一時的な記憶装置、またはこれらの両方から構成される。
【００３０】
また、４ａは項目部品エレメントをまとめた項目部品、４ｂはデータ項目に対応する処理である項目部品エレメント、４ｃは項目部品エレメント４ｂから呼び出される機能部品、４ｄはデータ項目間の関係をチェックする関係チェック部品、４ｅは記憶装置に格納されたデータの更新方法を設定する運用パラメータ、５は項目部品の手本となる手本ファイルである。
【００３１】
上記課題を解決するため、本発明の請求項１の発明は、イベントが発生し、このいべんとに対応したイベント識別子が通知されたとき、このイベント識別子の通知に基づき、データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表を参照して、上記イベント識別子に対応する項目部品エレメントを実行し、上記項目部品エレメントの実行が完了し、実行完了した項目部品エレメント識別子が通知されたとき、この通知に基づき、実行完了した項目部品エレメント識別子に対応付けて、データ項目に対応する処理である次に実行される項目部品エレメントのアドレスを格納した追加イベント表を参照して、追加イベント表に存在する上記実行完了した項目部品エレメント識別子に対応する項目部品エレメントを実行するようにしたものである。
【００３２】
本発明の請求項２の発明は、データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表と、実行完了した項目部品エレメント識別子に対応付けて、データ項目に対応する処理である次に実行される項目部品エレメントのアドレスを格納した追加イベント表と、イベントが発生し、このイベントに対応したイベント識別子が通知されたとき、この発生したイベントのイベント識別子の通知に基づき、前記イベント表を参照して、通知されたイベント識別子に対応する項目部品エレメントを実行する手段と、上記項目部品エレメントの実行が完了し、実行完了した項目部品エレメント識別子が通知されたとき、この通知に基づき、前記追加イベント表を参照し、追加イベント表に、上記実行完了した項目部品エレメント識別子が存在するとき、上記実行完了した項目部品エレメント識別子に対応した次に実行される項目部品エレメントを実行する手段とを設けたものである。
【００３３】
本発明の請求項３の発明は、請求項２の発明において、入出力制御に関する運用パラメータ２ａを設定する手段を設け、該運用パラメータ２ａの設定に応じて入出力制御を行うように構成したものである。
【００３４】
本発明の請求項４の発明は、請求項２または請求項３の発明において、データ項目の型名に対応したデータ項目の型を定義した型ファイルを設け、前記項目部品エレメント４ｂには、該項目部品エレメント４ｂで使用するデータ項目を宣言するデータ宣言部を設け、項目部品エレメントを実行する際、前記型ファイルの定義に基づき、各項目部品エレメントのデータ宣言部に指定されているデータ型を変換するように構成したものである。
本発明の請求項５の発明は、請求項２，３または請求項４の発明において、添字付きデータ項目と添字なしデータ項目を相互に変換する変換機構２ｂを設け、項目部品エレメント４ｂを実行する際、前記変換機構２ｂにより添字付きデータ項目を添字なしデータ項目に変換し、項目部品エレメントは、該添え字なしデータ項目を用いて処理を行うように構成したものである。
【００３５】
本発明の請求項６の発明は、請求項２，３，４または請求項５の発明において、項目部品エレメント４ｂを、同じ項目に対応する複数の項目部品エレメント４ｂをまとめた項目部品に定義し、前記項目部品には、該項目部品に含まれる複数の項目部品エレメントにより使用される、決まりきった手続を記述した機能部品を格納し、前記項目部品で使用される機能部品そのものまたはその宣言、及び、項目部品または該機能部品が使用するデータ項目の宣言のうち、重複する機能部品または宣言が重複しないように、重複するものを一つにまとめて記憶装置４ａに格納するように構成したものである。
本発明の請求項７の発明は、請求項２，３，４，５または請求項６の発明において、データ項目間の関係チェック機能を持つ関係チェック部品４ｄを設け、各項目部品エレメントが該関係チェック部品４ｄを呼び出すことにより、データ項目間の関係をチェックするように構成したものである。
【００３６】
本発明の請求項８の発明は、請求項２，３，４，５，６または請求項７の発明において、前記項目部品と、共通に使用できる項目部品のひな型である手本ファイルをロードし、前記手本ファイルに基づいて、項目部品を自動的に生成するように構成したものである。
本発明の請求項９の発明は、請求項８の発明において、前記項目部品が省略されたとき、前記共通に使用できる項目部品のひな型である手本ファイルをもとに項目部品を自動的に生成するように構成したものである。
【００３７】
【作用】
主に事務処理分野のソフトウェアに関する機能変更要求の多くは、データ項目との関連性が強い。更に、主に事務処理分野のソフトウェアの中で使われるデータ項目そのものは再利用性が高い。したがって、データ項目と強い関連性をもつソフトウェア部品の実行装置を作ることによって、少数のソフトウェア部品の交換によって機能変更要求の大半に対応できるとともに、その大半を再利用可能性の高い部品から構成することができる。なお、データ項目とは、論理的に意味のあるデータの最小単位である。主に事務処理分野のソフトウェアは、記憶装置をデータ項目という単位に分割して使用するものであり、また、キーボードや画面表示装置や帳票印刷装置などの入出力装置との間のデータのやりとりをデータ項目という単位で行うものである。なお、データ項目は項目とかフィールドなどと呼ばれることもある。
【００３８】
先ず、データ項目と強い関連性を付けるための前準備として、イベント駆動ルーチンという種類のソフトウェア部品を拡張して、単なるイベントの発生だけを契機として実行するだけでなく、記憶装置に格納されたデータの間に特定の条件が成立することを契機として実行する「拡張イベント駆動ルーチン」という形態とする。このようにすることで、ソフトウェアの大半は拡張イベント駆動ルーチンという種類のソフトウェア部品から構成することができるようになる。
【００３９】
ここで、拡張イベント駆動ルーチンの多くは、一つまたは複数のデータ項目と強い関連性をもつので、拡張イベント駆動ルーチンという種類のソフトウェア部品から、さらにその一部または全部を切り出してそれぞれ一つのデータ項目に強い関連性をもつようにしたルーチンまたはこれと等価なルーチンを「項目部品エレメント」として幾つも切り出し、切り出せなかった残りの部分をできるだけ少なくなるようにする。
【００４０】
このようにすると、ソフトウェアの大半は、項目部品エレメントから構成され、各項目部品エレメントは特定の一つのデータ項目だけに強い関連性をもつようにすることができる。データ項目は、主に事務処理分野においては再利用性が高いので、項目部品エレメントそのものの再利用性も高いものになる。
なお、ある一つのデータ項目に強い関連性をもつ項目部品エレメントを集めたものを、そのデータ項目に関する項目部品と呼ぶことにするが、項目部品という単位でソフトウェアを管理すると、データ項目と部品とが一対一の対応関係となり、機能変更への対応作業の生産性を向上させることができる。
【００４１】
そして、上記項目部品エレメントを実行するために、イベント駆動ルーチンという種類のソフトウェア部品の実行装置を改良して、イベントの発生という契機、または、記憶装置に格納されたデータの間に特定の条件が成立したことを契機として、単に一つのイベント駆動ルーチンを実行するだけでなく、関係する全ての項目部品エレメントを実行するようにする。
【００４２】
さらに、あるデータ項目に格納されているデータまたはそのデータ項目の状態データが変更されることによって、他のデータ項目に関係する項目部品エレメントを実行する必要があるので、このために項目部品エレメントの実行完了時に必要な条件判定を行い、必要とする全ての項目部品エレメントを実行する機構を追加する。このようにすることで、項目部品エレメントという種類のソフトウェア部品の実行装置を構築することができる。
【００４３】
本発明は上記原理に基づき、項目部品エレメントの実行装置を構成したものであり、本発明の請求項１の発明においては、上記のようにイベントが発生し、このイベントに対応したイベント識別子が通知されたとき、このイベント識別子の通知に基づき、データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表を参照して、上記イベント識別子に対応する項目部品エレメントを実行し、上記項目部品エレメントの実行が完了し、実行完了した項目部品エレメント識別子が通知されたとき、この通知に基づき、実行完了した項目部品エレメント識別子に対応付けて、データ項目に対応する処理である次に実行される項目部品エレメントのアドレスを格納した追加イベント表を参照して、追加イベント表に存在する上記実行完了した項目部品エレメント識別子に対応する項目部品エレメントを実行するようにしたので、再利用性の高いソフトウェア部品を組み合わせるだけで、所望の処理の殆どを実現することができ、主に事務処理分野において、ソフトウェアの開発作業の生産性を構造的に向上させるとともに、少数のソフトウェア部品の交換によって機能変更要求の大半に対応することが可能となる。
【００４４】
本発明の請求項２の発明においては、データ項目に対応する処理である項目部品エレメントのアドレスをイベント識別子に対応付けて格納したイベント表と、実行完了した項目部品エレメント識別子に対応付けて、データ項目に対応する処理である次に実行される項目部品エレメントのアドレスを格納した追加イベント表と、イベントが発生し、このイベントに対応したイベント識別子が通知されたとき、この発生したイベントのイベント識別子の通知に基づき、前記イベント表を参照して、通知されたイベント識別子に対応する項目部品エレメントを実行する手段と、上記項目部品エレメントの実行が完了し、実行完了した項目部品エレメント識別子が通知されたとき、この通知に基づき、前記追加イベント表を参照し、追加イベント表に、上記実行完了した項目部品エレメント識別子が存在するとき、該実行完了した項目部品エレメント識別子に対応した次に実行される項目部品エレメントを実行する手段とを設けたので、請求項１の発明と同様、再利用性の高いソフトウェア部品を組み合わせるだけで、所望の処理の殆どを実現することができ、主に事務処理分野において、ソフトウェアの開発作業の生産性を構造的に向上させるとともに、少数のソフトウェア部品の交換によって機能変更要求の大半に対応することが可能となる。
【００４５】
本発明の請求項３の発明においては、請求項２の発明において、入出力制御に関する運用パラメータ２ａを設定する手段を設け、該運用パラメータ２ａの設定に応じて入出力制御を行うようにしたので、システムの適用範囲を広げることができるとともに、項目部品エレメント４ｂの再利用性を向上させることができる。
【００４６】
本発明の請求項４の発明においては、請求項２または請求項３の発明において、データ項目の型名に対応したデータ項目の型を定義した型ファイルを設け、前記項目部品エレメント４ｂには、該項目部品エレメント４ｂで使用するデータ項目を宣言するデータ宣言部を設け、項目部品エレメントを実行する際、前記型ファイルの定義に基づき、各項目部品エレメントのデータ宣言部に指定されているデータ型を変換するようにしたので、型の内容を変更する場合に型の定義をしなおすだけで済み、項目部品あるいは項目部品エレメントで使用するデータ項目の型の宣言をしなおす必要がなくなり、項目部品エレメントの修正を容易に行うことが可能となる。
【００４７】
本発明の請求項５の発明においては、請求項２，３または請求項４の発明において、添字付きデータ項目と添字なしデータ項目を相互に変換する変換機構２ｂを設け、項目部品エレメント４ｂを実行する際、前記変換機構２ｂにより添字付きデータ項目を添字なしデータ項目に変換し、項目部品エレメントは、該添え字なしデータ項目を用いて処理を行うようにしたので、項目部品エレメント４ｂにはカレント明細行に対する手続きを記述するだけでよく、項目部品エレメントの再利用性を向上させることができる。
本発明の請求項６の発明においては、請求項２，３，４または請求項５の発明において、項目部品エレメント４ｂを、同じ項目に対応する複数の項目部品エレメント４ｂをまとめた項目部品に定義し、前記項目部品には、該項目部品に含まれる複数の項目部品エレメントにより使用される、決まりきった手続を記述した機能部品を格納し、前記項目部品で使用される機能部品そのものまたはその宣言、及び、項目部品または該機能部品が使用するデータ項目の宣言のうち、重複する機能部品または宣言が重複しないように、重複するものを一つにまとめて記憶装置４ａに格納するようにしたので、項目部品間で宣言が重複することを避けることができる。
【００４８】
本発明の請求項７の発明においては、請求項２，３，４，５または請求項６の発明において、データ項目間の関係チェック機能を持つ関係チェック部品４ｄを設け、各項目部品エレメントが該関係チェック部品４ｄを呼び出すことにより、データ項目間の関係をチェックするようしたので、各項目部品エレメントのそれぞれに関係チェック処理部を設ける必要がなく、項目部品エレメントの構成を簡単化することができる。
本発明の請求項８の発明においては、請求項２，３，４，５，６または請求項７の発明において、前記項目部品と、共通に使用できる項目部品のひな型である手本ファイルをロードし、前記手本ファイルに基づいて、項目部品を自動的に生成するようにしたので、項目部品をその都度作成する必要がなく、項目部品を容易に作成することが可能となる。
【００４９】
本発明の請求項９の発明においては、請求項８の発明において、前記項目部品が省略されたとき、前記共通に使用できる項目部品のひな型である手本ファイルをもとに項目部品を自動的に生成するようにしたので、必ずしも全ての項目部品を作成しなくてもよいようにできる。
【００５０】
【実施例】
図２は本発明の第１の実施例のシステム構成を示す図であり、２１はキーボート等の入力装置、２２はディスプレイ画面等の出力装置、２３は入力装置２１あるいは出力装置２２からのイベント発生の通知を受けて発生したイベントに対応した項目部品エレメントの実行の指示を行う動作ルーチン決定装置である。
【００５１】
動作ルーチン決定装置２３において、２３ａはイベント表であり、イベント表２３ａには、図３に示すように、イベントの識別子とイベントに対応した複数の項目部品エレメントのアドレスが記憶されている。
２３ｂは追加イベント表であり、追加イベント表には、図４に示すように、実行完了した項目部品エレメントの識別子とその識別子に対応した複数の項目部品エレメントのアドレスが記憶されており、イベント表２３ａを参照して項目部品エレメントの実行を完了したのちに追加イベント表２３ｂが参照され、次の実行される項目部品エレメントのアドレスが得られ実行される。
【００５２】
２３ｃはスタックであり、スタック２３ｃは動作ルーチン決定装置２３が項目部品エレメントの実行順序を決定する際に、項目部品エレメントのアドレスを一時的に格納する。
２３ｄは添字付きデータ項目と添字なしデータ項目との変換機構、２３ｅは添字付きデータ項目格納部である。
【００５３】
添字付きデータ項目格納部２３ｅは、入力装置２１等から転送された添字付きの配列データとして扱うべき繰り返しのあるデータ項目を格納する。そして、添字付きデータを上記変換機構２３ｄにより添字なしデータに変換し、記憶装置２５の一時記憶装置２５ｄに設けられた添字なしデータ項目格納部２５１に転送する。項目部品エレメント２５ａ−１，２５ａ−２，…，は上記添字なしデータ項目格納部２５１に格納された添字なしデータを用いて処理を行い、実行完了時にその実行結果を動作ルーチン決定装置２３に転送する。転送された添字なしデータは上記変換機構２３ｄにより添字付きデータに変換され、添字付きデータ項目格納部２３ｅに格納され、出力装置２２等に転送される。
【００５４】
このようにすることにより、項目部品エレメント２５ａ−１，２５ａ−２，…は、添字なしのデータのみを扱えばよいこととなり、配列データを扱う専用の項目部品エレメントを設ける必要がなくなる。
２４は処理装置であり、処理装置２４は動作ルーチン決定装置２３により実行が指示された項目部品エレメントの実行を行い、その実行が完了すると動作ルーチン決定装置に実行完了の通知を行う。
【００５５】
２５はディスク等の不揮発性記憶装置、処理装置の主記憶装置などから構成される記憶装置であり、記憶装置２５には項目部品エレメント２５ａ−１，２５ａ−２，…、その他のルーチン２５ｂ、および必要に応じて処理に用いるデータを記憶したデータファイル２５ｃが格納される。また、主記憶装置等の一時記憶装置２５ｄには添字なしデータ項目格納部２５１が設けられており、上記した添字なしデータが格納される。なお、上記、記憶装置２５は不揮発性、揮発性を問わず、任意の記憶装置を用いることができる。
【００５６】
項目部品エレメント２５ａ−１，２５ａ−２，…，は前記したように、一つのデータ項目に強い関連性をもつようにしたルーチンまたはこれと等価なルーチンであり、イベントの発生という契機、または、記憶装置に格納されたデータの間に特定の条件が成立したことを契機として、関係する全ての項目部品エレメントが実行される。
【００５７】
その他のルーチン２５ｂは特定項目に関連性を持たないルーチンであり、画面システムにおいては画面全体についての処理を行うルーチン、帳票システムにおいては帳票全体についての処理を行うルーチン、データベースまたはデータファイルシステムにおいては表（テーブルまたはレコード）全体についての処理を行うルーチン等から構成される。
【００５８】
項目部品エレメント２５ａ−１，２５ａ−２，…のイベント種別としては、例えば、次のものを選定することができる。
１）画面項目部品のイベント種別
・表開設                                          OPEN-TABLE
・初期化                                          INIT
・プロンプト（フォーカスイン）                    PROMPT
・ヘルプ表示                                      HELP
・選択リスト（入力候補一覧表示）                  SLIST
・関連情報表示                                    INFORMATION
・マスタ保守                                      MASTER
・入力チェック（データ入力完了、フォーカスアウト）CHECK
・派生処理                                        DERIVED
・タイマ割込                                      TIMER-INT
・表閉鎖                                          CLOSE-TABLE
２）帳票項目部品のイベント種別
・表開設                                          OPEN-TABLE
・横計算                                          CALC-DE
・報告書頭書き                                    REPORT-HEAD
・ページ頭書き                                    PAGE-HEAD
・制御頭書き                                      CB-HEAD
・縦計算明細                                      PRINT-DE
・制御脚書き                                      CB-FOOT
・ページ脚書き                                    PAGE-FOOT
・報告書脚書き                                    REPORT-FOOT
・表閉鎖                                          CLOSE-TABLE
３）表項目部品のイベント種別
・表項目初期化                                    DBINIT
・表項目設定                                      DBSET
・表項目削除                                      DBDEL
図５は項目部品エレメントをまとめた項目部品の一般的な構成を示す図である。同図においてＡは項目名、Ｂはデータ宣言部であり、データ宣言部でその項目部品で使用するデータ項目の宣言をする。
【００５９】
Ｃ１，Ｃ２は項目部品エレメントであり、項目部品エレメントは基本的には、「イベント種別」と「その処理内容」からなり、前記した「項目名」と「イベント種別」は項目部品エレメントを特定する「イベント識別子」として用いられる。
また、「派生元項目名」は、前記した追加イベント表に記憶されている項目部品エレメントのように、ある項目部品エレメントの実行の完了の通知を受けて実行される項目部品エレメントにおいて、その実行の契機となる項目部品エレメントの項目名（派生元項目名）を記述する部分であり、項目部品エレメントによってはこの部分は存在しない。
【００６０】
上記のような「派生元項目名」（一つまたは複数個指定できる）を指定した項目部品エレメントは、派生元の項目の項目部品エレメントがその値を変化させた場合に、その項目部品エレメントの実行完了を契機として実行される。
なお、前記したようにイベント表２３ａ、追加イベント表２３ｂには上記項目部品エレメントのアドレスが記録され、イベントの発生の通知により上記項目部品エレメントが実行される。
【００６１】
Ｄ１，Ｄ２は機能部品であり、機能部品は項目部品エレメントにおいて良く使われる決まりきった手続き、例えば「日付の計算」とか「利子の計算」などの手続きを記述した部分であり、必要に応じて付加され項目部品エレメントからサブルーチンのように呼び出され使用される。
図６は項目部品の中に必要に応じて設けられる関係チェック部品（同図におけるを「PERFORM 関−チェツク年月日」の部分）の使われ方の一例を示す図であり、同図の（ａ）は年項目部品の中に設けられた関係チェック部品、（ｂ）は月項目部品の中に設けられた関係チェック部品、（ｃ）は日項目部品の中に設けられた関係チェック部品を示している。
【００６２】
例えば、年月日間の整合性をチェックするなど、項目間の関係チェックを行う何行かのプログラムからなる関係チェックルーチンは同図に示すように複数の項目部品に出現する。そこで、その内容を一か所に書いておき、ぞれぞれ必要とする所で実行させることによりチェック内容の不一致は発生しないし、全体の行数も少なくてすむ。このような部品を機能部品の一種として扱う。
【００６３】
図６において、「CHECK SECTION 」は、例えば、フォーカスアウト時（カーソルが画面上の当該データ項目の位置から移動したとき）等に入力データのチェック等を行う項目部品エレメントであり、同図は、上記項目部品エレメント「CHECK SECTION 」の中に関係チェック部品「PERFORM 関−チェツク年月日」を設けた例を示しており、最後の行の「#COPYCOMMON CHECKYMD」の「CHECKYMD」は取り込むべき関係チェック部品の部品名を示している。
【００６４】
図７は上記した機能部品等を含む項目部品の一例を示す図であり、同図において、Ａは項目名記述部、Ｂはデータ項目の宣言部、Ｃ１，Ｃ２は項目部品エレメントを示している。
同図の項目部品エレメントＣ１，Ｃ２における「INIT SECTION」および「CHECK SECTION 」はイベント種別であり、「INIT SECTION」は画面の開始時に実行される項目部品エレメントであることを示し、ここでは初期値の設定を行うのが普通である。また、「CHECK SECTION 」は上記したようにフォーカスアウト時に実行される項目部品エレメントであることを示し、ここでは入力データのチェック等を行う。
【００６５】
同図に例においては、項目部品エレメントＣ１，Ｃ２内に利子計算を行う機能部品の呼び出し「PERFORM 利子計算」と、利用者資格についての関係チェックを行う機能部品の呼び出し「PERFORM 関−利用者資格−操作」を設けている。
図８ないし図１０は本実施例の動作ルーチン決定装置２３における処理を示すフローチャートであり、図８はイベント発生の通知がなされた場合の処理、図９および図１０は項目部品エレメントの実行完了の通知がなされた場合の処理を示している。
【００６６】
次に、図８ないし図１０のフローチャートを参照して本実施例の動作を説明する。
入力装置２１もしくは出力装置２２でイベントが発生しイベント識別子が通知されると、動作ルーチン決定装置２３は、図８のステップＳ１において通知されたイベント識別子がイベント表２３ａの中に存在するかどうかを調べ、存在しない場合には処理を終了する。また、存在する場合には、ステップＳ２において、通知されたイベント識別子が複数の項目部品エレメントのアドレスに対応するかどうか調べ、複数に対応しない場合には、ステップＳ４に行く。
【００６７】
複数に対応する場合には、ステップＳ３において、先頭の項目部品エレメントアドレスを除いた残りの項目部品エレメントアドレスを一つずつスタック２３ｃに入れ込む。
ついで、ステップＳ４において、通知されたイベント識別子に対応する先頭の項目部品エレメントアドレスを指定して、処理装置２４に項目部品エレメントの実行の指示を行う。
【００６８】
処理装置２４は動作ルーチン決定装置２３により指示された項目部品エレメントを記憶装置２５の指定されたアドレスより読み出して処理を実行し、実行が完了すると、動作ルーチン決定装置２３に項目部品エレメントの実行完了の通知を行う。
動作ルーチン決定装置２３は、処理装置２４より項目部品エレメントの実行完了の通知を受け、「実行完了した項目部品エレメント識別子」が通知されると、図９のステップＳ５において、通知された「実行完了した項目部品エレメント識別子」が追加イベント表２３ｂに存在するかどうかを調べ、存在する場合には、図１０のステップＳ８に行く。また、存在しない場合には、ステップＳ６において、スタック２３ｃが空き状態かどうか調べ、スタック２３ｃが空き状態の場合には処理を終了する。また、空き状態でない場合には、ステップＳ７に行き、スタック２３ｃから項目部品エレメントアドレスを一つ取り出して上記と同様に処理装置２４に対して項目部品エレメントアドレスを指定して、処理装置２４に項目部品エレメントの実行の指示を行う。
【００６９】
ステップＳ５において、実行完了した項目部品エレメントアドレスが存在すると判断された場合には、図１０のステップＳ８に行き、通知された「実行完了した項目部品エレメント識別子」が複数の項目部品エレメントアドレスに対応するかどうか調べ、複数に対応しない場合には、ステップＳ１０に行く。複数に対応する場合には、ステップＳ９において、先頭の項目部品エレメントアドレスを一つずつスタック２３ｃに入れ込む。ついで、ステップＳ１０において、通知された「実行完了した項目部品エレメント識別子」に対応する先頭の項目部品エレメントアドレスを指定して処理装置２４に対して項目部品エレメントの実行の指示を行い、処理終了する。
【００７０】
処理装置２４は上記指示を受けると、記憶装置２５の指定されたアドレスより項目部品エレメントを読み出し、その処理を実行する。
なお、上記実施例においては、説明を簡単にするため、項目部品エレメントの実行の順序を決定する方式として、デプスファーストを採用した場合を示した。実際には、ロジックが少し複雑になるが、ウィドゥスファースト方式を採用する方が実用的である。
【００７１】
例えば、Ｐ〜Ｖの７個の項目部品エレメントが存在し、図１１に示す追加イベント表が存在する場合、デプスファースト方式を採用した場合の動作順序は例えば下記▲１▼のようになり、また、ウィドゥスファースト方式を採用した場合には例えば下記の▲２▼のようになる。
▲１▼  項目部品エレメントＰの実行完了：項目部品エレメントＱ→Ｓ→Ｔ→Ｒ→Ｕ→（Ｓ）→Ｖ
▲２▼  項目部品エレメントＰの実行完了：項目部品エレメントＱ→Ｒ→Ｔ→Ｕ→Ｖ→Ｓ
図１２ないし図１４は上記システムを商品単価と数量より売上金額を計算する場合に適用した実施例を示す図であり、同図により、本実施例について説明する。
【００７２】
図１２はディスプレイ画面上に表示された売上画面を示す図であり、同図に示すように、画面には、顧客コード、商品コード欄、商品名欄、単価、数量、金額欄等が表示されている。
同図の画面は、顧客コード、顧客名、日付からなるヘッド部分と、商品コード、商品名、単価、数量、金額からなるボディ部分と合計金額からなるテール部分の三つの部分に分けられ、ボディ部分は明細行が繰り返す形をしている。
【００７３】
上記のような繰り返しのあるデータ項目は、通常、次に示すように添字を付けた配列データ項目として扱うのが普通である。
商品コード〔明細ポインタ〕，商品名〔明細ポインタ〕，・・・
しかし、項目部品エレメントにおいて、上記データを配列データとして扱うと、そのデータ項目を扱う項目部品エレメントは配列を扱えるものに専用にしなければならないことになる。例えば、ヘッド部分にあるデータ項目をボディ部分に移動する場合には添字を付加する修正が必要になってくるからである。
【００７４】
上記のような修正を不要にするため、前記したように、動作ルーチン決定装置２３は添字付きデータ項目格納部２３ｅに格納された添字付きデータを添字付きデータ項目−添字なしデータ項目変換機構２３ｄにより変換して、記憶装置２５の一時記憶装置２５ｄに設けられた添字なしデータ項目格納部２５１に転送する。項目部品エレメント２５ａ−１，２５ａ−２，…，にはカレント行に対する手続きが記述されており、項目部品エレメント２５ａ−１，２５ａ−２，…，は添字なしデータ項目格納部２５１に格納された添字なしデータ項目について処理を行う。
【００７５】
図１３は本実施例における項目部品の一例を示す図であり、本実施例において、項目部品は、例えば、顧客コード部品、顧客名部品、日付部品、商品コード部品、商品名部品、単価部品、数量部品、金額部品、合計金額部品から構成されている。
次に、本実施例における項目部品エレメントが次のＡ〜Ｅで構成されており、また、追加イベント表が図１４に示す構成である場合に、本実施例を図２に示す装置で実行した場合の動作を説明する。
Ａ：データ入力完了イベントに対応する商品コード部品の項目部品エレメント
Ｂ：Ａの実行完了で動作する商品名部品の項目部品エレメント
Ｃ：Ａの実行完了で動作する単価部品の項目部品エレメント
Ｄ：Ｃの実行完了で動作する金額部品の項目部品エレメント
Ｅ：Ｄの実行完了で動作する合計金額部品の項目部品エレメント
図１２の画面において、商品コードの入力が完了すると、入力装置２１より  動作ルーチン決定装置２３に商品コードの入力完了というイベント発生の通知が行われ、動作ルーチン決定装置２３はイベント表２３ａを参照して、Ａの項目部品エレメントアドレスを求め、処理装置２４に対してその項目部品エレメントの実行を指示する。
【００７６】
処理装置２４は上記指示をうけると、Ａの項目部品エレメントの実行を行う。すなわち、入力データをチェックするため、この値をキーにしてデータファイル２５ｃの商品コードマスタファイルまたは商品コードマスタ・データベースを読み込んで、その商品コードの情報を得る。
上記項目部品エレメントの実行が完了すると、処理装置２４は動作ルーチン決定装置２３に実行完了の通知を行う。動作ルーチン決定装置２３が上記通知を受けると、追加イベント表２３ｂ（図１４）を参照して、Ａの項目部品エレメントの実行完了識別子に対応したＢの項目部品エレメント、Ｃの項目部品エレメントアドレスを得る。そして、Ｃの項目部品エレメントアドレスをスタック２３ｃに入れ込むとともに、Ｂの項目部品エレメントの実行を処理装置２４に指示する。
【００７７】
処理装置２４は上記実行の指示を受けると、Ｂの項目部品エレメントの実行を行う。すなわち、Ａの項目部品エレメントを実行したことによって得た商品名を図１２に示す画面に表示し、動作ルーチン決定装置２３にＢの項目部品エレメントの実行が完了したことを通知する。
動作ルーチン決定装置２３が上記通知を受けると、スタック２３ｃよりＣの項目部品エレメントアドレスを取り出して、Ｃの項目部品エレメントの実行を処理装置２４に指示する。処理装置２４は上記実行の指示を受けると、Ｃの項目部品エレメントの実行を行う。すなわち、Ａの項目部品エレメントを実行したことによって得た単価を図１２に示す画面に表示し、動作ルーチン決定装置２３にＣの項目部品エレメントの実行が完了したことを通知する。
【００７８】
動作ルーチン決定装置２３が上記通知を受けると、追加イベント表２３ｂを参照して、Ｃの項目部品エレメントの実行完了識別子に対応したＤの項目部品エレメントアドレスを得て、その実行を処理装置２４に指示する。
処理装置２４は上記実行の指示を受けると、Ｄの項目部品エレメントの実行を行う。すなわち、数量が入力済であるか否か調べ、入力済の場合には、数量×単価を金額として図１２に示す画面に表示する。そして、動作ルーチン決定装置２３にＤの項目部品エレメントの実行が完了したことを通知する。
【００７９】
動作ルーチン決定装置２３が上記通知を受けると、追加イベント表２３ｂを参照して、Ｄの項目部品エレメントの実行完了識別子に対応したＥの項目部品エレメントアドレスを得て、その実行を処理装置２４に指示する。
処理装置２４は上記実行の指示を受けると、Ｅの項目部品エレメントの実行を行う。すなわち、算出された金額を合計して、合計金額を図１２に示す画面に表示する。
【００８０】
図１５は本発明の第２の実施例を示す図であり、本実施例は、第１の実施例の動作ルーチン決定装置２３に入出力制御機構２３ｆを設け、ここで人間と機械の間の情報交換方式（ＨＣＩ：ヒューマン・コンピュータ・インタフェース、ＬＯＯＫ＆ＦＥＥＬ）を、項目部品に影響を与えることなく制御できるようにしたものであり、その他の構成は図２に示した第１の実施例と同様であり、同一のものには同一の符号が付されている。
【００８１】
動作ルーチン決定装置２３において、入出力制御機構２３ｆは、運用パラメータを設定する手段２３ｇに設定された運用パラメータに応じて、例えば、画面に全てのデータ項目が入力されたときに画面上のデータ項目の処理を一括して行うか、画面上にデータ項目が入力される毎にデータ項目の処理を逐次行うか等のデータの入力と画面処理の制御、１画面におさまりきらない情報を表示する場合にスクローリングするかページングするかの制御等を、項目部品に影響を与えることなく制御する。
【００８２】
本実施例においては、上記のように、入出力制御機構２３ｆを設け、運用パラメータの選定に応じて、ここで、入出力の制御を行うようにしたので、項目部品に影響を与えることなくユーザの好みに合ったインタフェースを得ることができる。
また、上記運用パラメータを選定することにより、上記第１、第２の実施例に示したような、画面への入出力だけでなく、磁気テープ、ＦＤ等との入出力を制御することができる。
【００８３】
図１６は本発明の第３の実施例を示す図であり、同図は上記したように運用パラメータ２３ｇの設定により入出力制御機構２３ｆが、磁気テープ、キーボードあるいはＦＤ等の入力装置２１’と磁気テープ、プリンタ、ＦＤ装置等の出力装置２２’を制御する実施例を示している。
本実施例においては、運用パラメータを設定する手段が動作ルーチン決定装置２３と記憶装置２５に設けられており、動作ルーチン決定装置２３の運用パラメータＡは入出力制御機構２３ｆの入出力制御を設定し、また記憶装置２５に設けられた運用パラメータＢはデータファイル２５ｃの更新方式を設定する。また、運用パラメータＢについても、運用パラメータＡと同様、その値を設定することにより、動作ルーチン決定装置２３あるいは項目部品エレメント２５ａ−１，２５ａ−２，…，の動作とは独立にデータファイル２５ｃの更新方式またはサーバクライアント構成を採用するかスタンドアロン構成を採用するか等を設定することができる。
【００８４】
一般に、データファイルの更新方式としては、全サマリ・ファイルを更新してから次のデータを受け付けるリアルタイム更新方式、トランザクション・ファイルだけを更新して次のデータを受け付けサマリ・ファイルは並列的に更新するコンカレント更新方式、トランザクション・ファイルだけを更新して次のデータを受け付けサマリ・ファイルの更新は後刻バッチ処理するバッチ更新方式があるが、運用パラメータＢを設定することにより、上記のようなデータファイル２５ｃの更新方式を設定することができる。
【００８５】
本実施例の動作は、前記した図２に示した実施例と同様であり、入力装置２１’あるいは出力装置２２’の磁気テープ、キーボード、ＦＤ装置等からイベント発生の通知を受けると、動作ルーチン決定装置２３はイベント表２３ａを参照して項目部品エレメント２５ａ−１，２５ａ−２，…，のアドレスを読み出し、その実行を処理装置２４に指示する。上記指示を受けると処理装置２４は実行を指示された項目部品エレメントを実行し、例えば、運用パラメータＢに設定された更新方式により、データファイル２５ｃを更新する。処理装置２４が実行を完了すると、動作ルーチン決定装置２３に項目部品エレメント実行完了の通知を行う。上記通知を受けると動作ルーチン決定装置２３は追加イベント表２３ｂを参照して次に実行する項目部品エレメントのアドレスを求め、上記と同様に処理装置２４にその実行を指示する。
【００８６】
図１７は本発明の第４の実施例を示す図であり、本実施例は図２に示した第１の実施例における動作ルーチン決定装置２３が行っていた機能を処理装置３３で実行させるようにしたものである。
同図において、３１は入力装置、３２は出力装置、３３は処理装置、３４は記憶装置であり、記憶装置３４には、項目部品エレメント３４ａ、その他のルーチン３４ｄ、データファイル３４ｅに加え、イベント表３４ｂ、追加イベント表３４ｃおよび処理装置３３に第１、第２、第３の実施例における動作ルーチン決定装置の機能を代行させるための動作ルーチン決定処理プログラムが格納され、さらに、第２、第３の実施例に示したように、入力制御方式およびファイルの更新方式を設定する運用パラメータ３４ｇを格納する格納部および次に実行する項目部品エレメントアドレスを入れ込むスタックが設けられている。
【００８７】
本実施例の動作は第１ないし第３の実施例と同様であり、画面あるいは磁気テープ、ＦＤ装置等から構成される入力装置３１、出力装置３２からイベントの発生が処理装置３３に通知されると、処理装置３３はイベント表３４ｂを参照して、イベント識別子に対応した項目部品エレメントアドレスを求め、そのアドレスに格納された項目部品エレメント３４ａを実行する。また、上記イベント識別子に対応した項目部品エレメントアドレスが複数ある場合には、実行する項目部品エレメント以外の項目部品エレメントアドレスをスタック３４ｈに入れ込む。
【００８８】
そして、項目部品エレメントの実行が完了すると、追加イベント表３４ｃを参照して、次に実行する項目部品エレメントアドレスを求め、その項目部品エレメントを実行する。以下同様にして、順次項目部品エレメントを実行して所望の処理を行う。
図１８は本発明の第５の実施例を示す図であり、本実施例はローダ３５により、項目部品エレメント３６ａ、その他のルーチン３６ｂ等をロードするようにした実施例を示している。
【００８９】
同図において、３５は機械語に翻訳されている項目部品エレメント３６ａ等を処理装置３３の記憶装置３４にロードするローダ、３６ａ，３６ｂはそれぞれローダ３５を介して記憶装置３４にロードされる項目部品エレメントおよびその他のルーチン、３６ｃは項目部品エレメント３６ａおよびその他のルーチン３６ｂとともにローダ３５を介してロードされる各種定義体であり、各種定義体３６ｃには、画面を介して入出力を行う画面制御システムの場合には、その画面上のデータ項目、データ項目を表示する位置等が定義され、帳票を処理する帳票システムの場合には、帳票の構造が定義され、さらに、データベース・システムの場合には、データベースにおける表（テーブル）構造が定義されている。
【００９０】
３６ｄは手本ファイルであり、手本ファイル３６ｄは手本として用意された共通に使用できる項目部品のひな型である。すなわち、項目部品を数多く開発すると、非常に似通った項目部品が存在することに気が付く。その違いを詳しく調べてみると、データ項目名だけが異なるだけであったり、データ項目名とファイル名などの一部の名称がことなるだけで他は同じである場合が多い。手本ファイル３６ｄは上記のような共通に使用できる項目部品のひな型であり、ロード時、手本ファイル３６ｄと、図１９に示すようなデータ項目名、ファイル名などの文字列の置き換えを指示する項目部品とを入力し、ローダ３５で必要とする項目部品を生成する。
【００９１】
本実施例のその他の構成は図１７に示した第４の実施例と同様であり、同一のものには同一の符号が付されている。
図１８において、ローダ３５より項目部品エレメント３６ａ（もしくは項目部品エレメント３６ａをまとめた項目部品）、その他のルーチン３６ｂ、各種定義体３６ｃ、手本ファイル３６ｄを入力すると、ローダ３５は項目部品エレメント３６ａ、その他のルーチン３６ｂを記憶装置３４の所定のアドレスに格納するとともに、項目部品エレメント３６ａに記録された「イベント識別子」もしくは「実行完了した項目部品エレメント識別子」と上記項目部品エレメントの格納アドレスに基づき、記憶装置３４上のイベント表３４ｂおよび追加イベント表３４ｃを生成する。
【００９２】
その際、各項目部品で使用する機能部品そのものまたはその宣言、および、項目部品または機能部品が使用するデータ項目の宣言の内重複する機能部品そのものまたは宣言を一つにまとめる。
すなわち、各項目部品には、その項目部品で使用する機能部品そのものや、その宣言や、その項目部品または機能部品が使用するデータ項目の宣言を含めるようにすることが望ましい。このようにしないと、いくつかの項目部品から構成されるアプリケーション・プログラムが使用する機能部品やデータ項目を手作業で収集して別途宣言する必要が生ずる。しかしこのように各項目部品ごとに機能部品やデータ項目を宣言すると、項目部品間で宣言の重複が生じてしまうという問題が生ずる。そこで上記のように、ローダ３５が項目部品を読み込む際に、重複する宣言を一つにまとめる。
【００９３】
また、手本ファイル３６ｄから項目部品を作成する場合には、ローダ３５は手本ファイル３６ｄと図１９に示す項目部品とから、データ項目名、ファイル名などが置き換えられた項目部品を生成し、前記した項目部品エレメント３６ａと同様に、記憶装置３４の所定のアドレスに格納するとともに、イベント表３４ｂおよび追加イベント表３４ｃを生成する。
【００９４】
上記のようにして記憶装置３４に項目部品エレメント３４ａ、イベント表３４ｂ等がロードされると、処理装置３３は前記した第４の実施例と同様に、入力装置３１，出力装置３２からの入力装置３１、出力装置３２からのイベントの発生の通知に応じて項目部品エレメント３４ａ、その他のルーチンを実行する。
また、上記実施例においては、手本ファイル３６ｄと手本ファイルのデータ項目名等の置き換えを指示する項目部品をローダ３５に入力し、項目部品エレメント３４ａを生成し記憶装置３４にロードする実施例を示したが、手本ファイル３４ｉを予め記憶装置３４に格納しておき、ユーザが項目部品の入力の省略をしたときは、ロード時に各種定義体に存在するにもかかわらずそれに対応する項目部品エレメントが存在しないことから項目部品エレメントが省略されたことを判断して、自動的に項目部品エレメント３４ａを生成させることもできる。
【００９５】
この場合には、図１８に示すように、予め手本ファイル３４ｉを記憶装置３４に格納しておく。そして、ローダ３５に各種定義体３６ｃが入力されたとき、ローダ３５は各種定義体３６ｃで定義されているデータ項目を参照して、手本ファイル３４ｉのデータ項目を置き換えて自動的に項目部品エレメント３４ａを生成し、記憶装置３４にロードする。
【００９６】
上記のようにすることにより、図１９に示すデータ項目名などの値の置き換えを指示する項目部品を入力することなく、項目部品エレメント３４ａを生成することができる。
図２０は本発明の第６の実施例を示す図であり、本実施例はソース・プログラム形式で記述された項目部品エレメント等をコンパイラ３７によりコンパイルして目的プログラム３８を得て、目的プログラム３８をローダ３５により記憶装置３４にロードするとともに、データ項目の型の定義を行う型ファイル３６ｅをコンパイラ３７に入力してデータ型を指定する実施例を示している。
【００９７】
同図において、型ファイル３６ｅはデータ項目の型名に対応したデータ項目の型（数値項目か文字項目かの属性や長さなど）を定義するファイルである。
項目部品エレメントもしくは項目部品で使用するデータ項目の型は、直接的に型の宣言をするのではなく、間接的に型の名で指定し、別途、それぞれの型がどのような内容となるかを定義しておくことにより、型の内容を変更する場合に、型の定義だけを指定し直すことで、それぞれの項目部品もしくは項目部品エレメントで使用するデータ項目の型の宣言をしなおす必要がなくなる。
【００９８】
このために、上記型ファイル３６ｅを設け、データ項目の型名に対応したデータ項目の型を定義しておく。
例えば、図２１の（ａ）に示すように、項目部品もしくは項目部品エレメントでデータの型を宣言する場合に、「得意先名称」、「優待得意先名称」、「休眠得意先名称」の型を「得意先名称型」として宣言しておき、型ファイル３６ｅにより、別途、「得意先名称型」を「長さ２０の文字」と定義しておく。そして、上記データ型制御機構により「得意先名称型」を「長さ２０の文字」として扱うようにする。
【００９９】
図２１（ｂ）は上記のようにデータ型を指定しない場合における項目部品もしくは項目部品エレメントにおけるデータ項目の宣言を示す図であり、この場合には、同図に示すように各項目部品もしくは項目部品エレメントでデータ項目の宣言をする必要があり、文字の長さ等を変更する場合に変更する箇所が多くなる。
同様に、例えば、型ファイル３６ｅにおいて電話番号型として、「電話番号型長さ８の数値」として定義しておき、項目部品エレメントのデータ項目の宣言部において、「電話番号  電話番号型」と宣言しておけば、電話番号を８桁の市内番号から１０桁の市外番号に変更する場合に、上記型ファイル３６ｅの定義を「電話番号型  長さ１０の数値」と変えるだけで、各項目部品のデータ宣言部を変更することなく、データ項目の型を変えることができる。
【０１００】
図２０において、コンパイラ３７にソースプログラム形式で記述された項目部品エレメント３６ａ、その他のルーチン３６ｂ、型ファイル３６ｅが入力されると、コンパイラ３７はこれらをコンパイルして、目的プログラムを生成する。その際、項目部品エレメント３６ａがロードされるアドレスとそのイベント識別子に基づきイベント表と追加イベント表を生成するとともに、型ファイル３６ｅに定義されたデータ項目の型に基づき、各項目部品もしくは項目部品エレメントのデータ宣言部に間接的に指定されているデータ項目の型を直接的なデータ項目型に変換する。また、第５の実施例の場合と同様、各項目部品で使用する機能部品の宣言、および、項目部品または機能部品が使用するデータ項目の宣言の内重複する宣言を一つにまとめる。
【０１０１】
上記のようにして生成された目的プログラム３８はローダ３５により記憶装置３４にロードされ、処理装置３３は前記した第４の実施例と同様に、入力装置３１，出力装置３２からのイベントの発生の通知に応じて項目部品エレメント３４ａ、その他のルーチンを実行する。
なお、上記実施例においては、型ファイル３６ｅを入力してデータ項目の型を定義する実施例について説明したが、本実施例においても、第５の実施例において示したように、手本ファイルをコンパイラ３７に入力して項目部品を生成したり、また、記憶装置３４に予め手本ファイルを格納しておき、項目部品を自動的に生成することもできる。
【０１０２】
また、同様に、第５の実施例において、第６の実施例と同様、データ項目の型を定義する型ファイルをローダに入力して、データ型の定義された項目部品を生成することもできる。
【０１０３】
【発明の効果】
以上説明したように、本発明においては、特定イベントの発生もしくは特定の条件が成立したことを契機として実行されるイベント駆動ルーチンから一つのデータ項目に強い関連性を持つ処理部分を項目部品エレメントとして切り出して、上記項目部品エレメントを組み合わせてソフトウェアを構成し、イベントの発生が通知されたとき、もしくは、項目部品エレメントの実行により特定の条件が成立したことを契機として、項目部品エレメントを実行するようにしたので、再利用性の高いソフトウェア部品を組み合わせるだけで、所望の処理の殆どを実現することができ、主に事務処理分野において、ソフトウェアの開発作業の生産性を構造的に向上させることができる。
【０１０４】
また、少数のソフトウェア部品の交換によって機能変更要求の大半に対応することができ、主に事務処理分野において機能変更作業の生産性を向上させることができる。例えば、事務処理分野のソフトウェアによくあるタイプの機能変更作業の９３例について調査したところ、通常のＣＯＢＯＬにより記述されたソフトウェアに比べて、本発明においては、変更作業の生産性については９例は約５倍、２５例は約３倍、３４例は約１．５倍の生産性の向上が見込まれるという結果を得ることができた。
【０１０５】
さらに、項目部品エレメントにおけるデータ項目の型をデータ項目の型を示す名前で指定できるようにしたり、データ項目間の関係チェック機能を持つ関係チェック部品を設けたり、また、項目部品の手本を基に新たな項目部品を生成する等の手段を用いることにより、ソフトウェアの作成、修正作業を一層容易にすることができる。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の第１の実施例を示す図である。
【図３】本発明の実施例におけるイベント表を示す図である。
【図４】本発明の実施例における追加イベント表を示す図である。
【図５】本発明の実施例における項目部品の一般的な構成を示す図である。
【図６】本発明の実施例における関係チェック部品の使われ方の一例を示す図である。
【図７】機能部品、関係チェック部品等を含む項目部品の一例を示す図である。
【図８】動作ルーチン決定装置における処理を示すフローチャートである。
【図９】動作ルーチン決定装置における処理を示すフローチャート（続き）である。
【図１０】動作ルーチン決定装置における処理を示すフローチャート（続き）である。
【図１１】追加イベント表の一例を示す図である。
【図１２】ディスプレイ画面上に表示された売上画面を示す図である。
【図１３】図１２の売上画面における項目部品の一例を示す図である。
【図１４】図１２の売上画面における追加イベント表を示す図である。
【図１５】本発明の第２の実施例を示す図である。
【図１６】本発明の第３の実施例を示す図である。
【図１７】本発明の第４の実施例を示す図である。
【図１８】本発明の第５の実施例を示す図である。
【図１９】本発明の第５の実施例における項目部品の一例を示す図である。
【図２０】本発明の第６の実施例を示す図である。
【図２１】本発明の第６の実施例においてデータ項目の型の宣言を示す図である。
【図２２】従来例を示す図である。
【図２３】従来例におけるイベント表を示す図である。
【符号の説明】
１                            入出力装置
２                            項目部品エレメントの実行を指示する手段
２ａ，４ｅ，２３ｇ，３４ｇ    運用パラメータ
２ｂ，２３ｄ                  データ項目変換機構
３                            項目部品エレメントを実行する手段
４，２５，３４                記憶装置
４ａ                          項目部品
４ｂ，２５ａ−１，２５ａ−２，３４ａ，３６ａ  項目部品エレメント
４ｃ                          機能部品
４ｄ                          関係チェック部品
５，３４ｉ，３６ｄ            手本ファイル
２１，２１’，３１            入力装置
２２，２２’，３２            出力装置
２３                          動作ルーチン決定装置
２３ａ，３４ｂ                イベント表
２３ｂ，３４ｃ                追加イベント表
２３ｃ，３４ｈ                スタック
２３ｅ                        添字付きデータ項目格納部
２３ｆ                        入出力制御機構
２４，３３                    処理装置
２５ｂ，３６ｂ，３４ｄ        その他のルーチン
２５ｃ，３４ｅ                データファイル
２５ｄ                        一時記憶装置
２５１                        添字なしデータ項目格納部
３４ｆ                        動作ルーチン決定処理プログラム
３５                          ローダ
３６ｃ                        各種定義体
３７                          コンパイラ
３８                          目的プログラム
３６ｅ                        型ファイル
【図１】
0003741450.tif 000002
【図２】
0003741450.tif 000003
【図３】
0003741450.tif 000004
【図４】
0003741450.tif 000005
【図５】
0003741450.tif 000006
【図６】
0003741450.tif 000007
【図７】
0003741450.tif 000008
【図８】
0003741450.tif 000009
【図９】
0003741450.tif 000010
【図１０】
0003741450.tif 000011
【図１１】
0003741450.tif 000012
【図１２】
0003741450.tif 000013
【図１３】
0003741450.tif 000014
【図１４】
0003741450.tif 000015
【図１５】
0003741450.tif 000016
【図１６】
0003741450.tif 000017
【図１７】
0003741450.tif 000018
【図１８】
0003741450.tif 000019
【図１９】
0003741450.tif 000020
【図２０】
0003741450.tif 000021
【図２１】
0003741450.tif 000022
【図２２】
0003741450.tif 000023
【図２３】
0003741450.tif 000024