(57)【特許請求の範囲】
【請求項１】
表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリとを有するコンピュータにおけるインターフェース方法において、
前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記方法は
前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形を第１のユーザ入力に応答して表示するステップと、
前記第１再利用プログラム部品により第２再利用プログラム部品が起動されることを示す第３図形を第２のユーザ入力に応答して表示するステップと、
前記第１再利用プログラムに入力データを供給するステップと、
前記第３図形で表わされる起動関係にある前記第１、第２再利用プログラム部品に応じて入力データを処理するステップと、
を具備するインターフェース方法。
【請求項２】
前記メモリに格納されている再利用プログラム部品のいくつかを示す再利用プログラム部品メニューを第３のユーザ入力に応答して表示するステップをさらに具備することを特徴とする請求項１記載のインターフェース方法。
【請求項３】
前記第１のユーザ入力は表示メニューに基づく再利用プログラム部品の選択であることを特徴とする請求項２記載のインターフェース方法。
【請求項４】
前記第１、第２図形の少なくとも一つはユーザによるデータ入力のためのプログラム部品を示し、前記入力装置によりユーザがデータを入力できるようにウィンドウを表示することを特徴とする請求項１記載のインターフェース方法。
【請求項５】
前記第１再利用プログラム部品が第２再利用プログラム部品の属性を参照することを示す第４図形を第３のユーザ入力に応答して表示するステップをさらに具備することを特徴とする請求項１記載のインターフェース方法。
【請求項６】
前記再利用プログラム部品は関数の配列要素に割当てられ、割当ての変更により新しい再利用プログラム部品が挿入されることを特徴とする請求項１記載のインターフェース方法。
【請求項７】
前記再利用プログラム部品は関数が参照されることにより起動されることを特徴とする請求項６記載のインターフェース方法。
【請求項８】
前記再利用プログラム部品のある関数が先行する再利用プログラム部品によって起動されるとき、後続する再利用プログラム部品は自身に後続する再利用プログラム部品の同一名称の関数を起動することを特徴とする請求項７記載のインターフェース方法。
【請求項９】
表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリとを有するコンピュータにおけるインターフェース方法において、
前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記方法は
前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形を第１のユーザ入力に応答して表示するステップと、
前記第１再利用プログラム部品により第２再利用プログラム部品が起動されることを示す第３図形を第２のユーザ入力に応答して表示するステップと、
前記表示されている第１、第２、第３図形に関し、第１、第２図形により表わされている第１、第２再利用プログラム部品と、第３図形により表わされている起動関係に応じてデータを処理する処理を定義する処理情報を前記メモリに格納するステップと、
を具備するインターフェース方法。
【請求項１０】
前記メモリに格納されている再利用プログラム部品のいくつかを示す再利用プログラム部品メニューを第３のユーザ入力に応答して表示するステップをさらに具備することを特徴とする請求項９記載のインターフェース方法。
【請求項１１】
前記第１のユーザ入力は表示メニューに基づく再利用プログラム部品の選択であることを特徴とする請求項１０記載のインターフェース方法。
【請求項１２】
前記第１再利用プログラム部品が第２再利用プログラム部品の属性を参照することを示す第４図形を第３のユーザ入力に応答して表示するステップをさらに具備することを特徴とする請求項９記載のインターフェース方法。
【請求項１３】
前記処理情報は再利用プログラム部品として前記メモリに格納されることを特徴とする請求項９記載のインターフェース方法。
【請求項１４】
前記再利用プログラム部品は関数の配列要素に割当てられ、割当ての変更により新しい再利用プログラム部品が挿入されることを特徴とする請求項９記載のインターフェース方法。
【請求項１５】
前記再利用プログラム部品は関数が参照されることにより起動されることを特徴とする請求項１４記載のインターフェース方法。
【請求項１６】
前記再利用プログラム部品のある関数が先行する再利用プログラム部品によって起動されるとき、後続する再利用プログラム部品は自身に後続する再利用プログラム部品の同一名称の関数を起動することを特徴とする請求項１５記載のインターフェース方法。
【請求項１７】
表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品と請求項９に記載の処理情報とを格納するメモリとを有するコンピュータを用いてデータを処理する方法において、
前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記方法は
前記処理情報に基づいて、前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形と、前記第１、第２図形で表わされる第１、第２再利用プログラム部品間の起動関係を示す少なくとも一つの第３図形を表示するステップと、
前記第１、第２図形で表わされる第１、第２再利用プログラムに入力データを供給するステップと、
前記第３図形で表わされる起動関係にある前記第１、第２図形で表わされる第１、第２再利用プログラムに応じて入力データを処理するステップと、
を具備するデータ処理方法。
【請求項１８】
前記第１、第２図形の少なくとも一つはユーザによるデータ入力のためのプログラム部品を示し、前記入力装置によりユーザがデータを入力できるようにウィンドウを表示することを特徴とする請求項１７記載のデータ処理方法。
【請求項１９】
前記再利用プログラム部品は関数の配列要素に割当てられ、割当ての変更により新しい再利用プログラム部品が挿入されることを特徴とする請求項１７記載のデータ処理方法。
【請求項２０】
前記再利用プログラム部品は関数が参照されることにより起動されることを特徴とする請求項１９記載のデータ処理方法。
【請求項２１】
前記再利用プログラム部品のある関数が先行する再利用プログラム部品によって起動されるとき、後続する再利用プログラム部品は自身に後続する再利用プログラム部品の同一名称の関数を起動することを特徴とする請求項２０記載のデータ処理方法。
【請求項２２】
データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリを有するコンピュータに実装され、再利用プログラム部品からプログラムを作成する方法において、
前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記方法は
第１の入力情報に応じて少なくとも二つの再利用プログラム部品を選択するステップと、
選択された再利用プログラム部品の少なくとも一つの起動を第２の入力情報に応じて定義するステップと、
を具備するプログラム作成方法。
【請求項２３】
他の再利用プログラム部品による前記少なくとも一つの再利用プログラム部品の属性の参照を定義するステップをさらに具備する請求項２２記載のプログラム作成方法。
【請求項２４】
定義した起動を表わす情報を前記メモリに格納するステップをさらに具備することを特徴とする請求項２２記載のプログラム作成方法。
【請求項２５】
選択された再利用プログラム部品を定義した起動に応じて実行するステップをさらに具備することを特徴とする請求項２２記載のプログラム作成方法。
【請求項２６】
特定の条件が満たされた場合のみ前記第１再利用プログラム部品により第２再利用プログラム部品が起動されるように、起動条件を定義するステップをさらに具備することを特徴とする請求項２２記載のプログラム作成方法。
【請求項２７】
前記起動条件は前記第１再利用プログラム部品と第２再利用プログラム部品の間に起動条件を表わす条件部品を挿入することにより定義され、第１再利用プログラム部品は条件部品を起動し、条件部品は起動条件が満たされた場合のみ第２再利用プログラム部品を起動することを特徴とする請求項２６記載のプログラム作成方法。
【請求項２８】
前記第１再利用プログラム部品による複数の第２再利用プログラム部品の起動するための複数の条件を定義するステップをさらに具備し、前記第１再利用プログラム部品はどの条件が満たされているかに応じて複数の第２再利用プログラム部品のいずれかを起動することを特徴とする請求項２２記載のプログラム作成方法。
【請求項２９】
前記起動条件は前記第１再利用プログラム部品と第２再利用プログラム部品の間に複数の第２再利用プログラム部品の起動条件をそれぞれ格納する複数の条件部品からなる条件部品セットを挿入することにより定義され、第１再利用プログラム部品は条件部品セットを起動し、条件部品セットはどの条件が満たされているかに応じて複数の第２再利用プログラム部品のいずれかを起動することを特徴とする請求項２８記載のプログラム作成方法。
【請求項３０】
前記条件は時間に関する条件であることを特徴とする請求項２６、または請求項２８記載のプログラム作成方法。
【請求項３１】
前記再利用プログラム部品は関数の配列要素に割当てられ、割当ての変更により新しい再利用プログラム部品が挿入されることを特徴とする請求項２２記載のプログラム作成方法。
【請求項３２】
前記再利用プログラム部品は関数が参照されることにより起動されることを特徴とする請求項３１記載のプログラム作成方法。
【請求項３３】
前記再利用プログラム部品のある関数が先行する再利用プログラム部品によって起動されるとき、後続する再利用プログラム部品は自身に後続する再利用プログラム部品の同一名称の関数を起動することを特徴とする請求項３２記載のプログラム作成方法。
【請求項３４】
データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリとユーザインターフェースを有し、メモリに格納されている再利用プログラム部品からプログラムを作成するコンピュータにおけるインターフェース装置において、
前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記装置は
オブジェクト指向プログラミング及び環境実行部と、
前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形を第１のユーザ入力に応答してユーザインターフェースに表示し、前記第１再利用プログラム部品により第２再利用プログラム部品が起動されることを示す第３図形を第２のユーザ入力に応答してユーザインターフェースに表示する複合表示部と、
第１の入力に応答して再利用プログラム部品を選択し、第１の要求を発生する再利用部品選択部と、
選択された再利用プログラム部品の起動関係を定義し、第２の要求を発生する再利用部品接続部と、
を具備するインターフェース装置。
【請求項３５】
前記複合表示部は、オブジェクトを生成し、前記オブジェクト指向プログラミング及び環境実行部内で前記第１、第２の要求に応じて、生成されたオブジェクト間の起動を定義することを特徴とする請求項３４記載のインターフェース装置。
【請求項３６】
前記メモリに格納されている再利用プログラム部品のいくつかを特定するメニューを表示する再利用プログラム表示部をさらに具備することを特徴とする請求項３４記載のインターフェース装置。
【請求項３７】
処理すべきデータを入力する入力部をさらに具備することを特徴とする請求項３４記載のインターフェース装置。
【請求項３８】
再利用プログラム部品の状態を示す再利用部品状態表示部をさらに具備することを特徴とする請求項３４記載のインターフェース装置。
【請求項３９】
選択した再利用プログラム部品と、該部品間の関係を示す情報を格納する複合データファイルをさらに具備することを特徴とする請求項３４記載のインターフェース装置。
【請求項４０】
前記メモリに格納されている再利用プログラム部品から新たな再利用プログラム部品を作成する再利用プログラム部品定義部をさらに具備することを特徴とする請求項３４記載のインターフェース装置。
【請求項４１】
選択した再利用プログラム部品間の条件を定義する接続管理部をさらに具備することを特徴とする請求項３４記載のインターフェース装置。
【請求項４２】
前記再利用プログラム部品は関数の配列要素に割当てられ、割当ての変更により新しい再利用プログラム部品が挿入されることを特徴とする請求項３４記載のインターフェース装置。
【請求項４３】
前記再利用プログラム部品は関数が参照されることにより起動されることを特徴とする請求項４２記載のインターフェース装置。
【請求項４４】
前記再利用プログラム部品のある関数が先行する再利用プログラム部品によって起動されるとき、後続する再利用プログラム部品は自身に後続する再利用プログラム部品の同一名称の関数を起動することを特徴とする請求項４３記載のインターフェース装置。
【請求項４５】
表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリとを有するコンピュータにおけるインターフェースのためのコンピュータプログラムを記録しコンピュータ読取り可能な記憶媒体において、前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記コンピュータプログラムは
前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形を第１のユーザ入力に応答して表示するプログラムコードと、
前記第１再利用プログラム部品により第２再利用プログラム部品が起動されることを示す第３図形を第２のユーザ入力に応答して表示するプログラムコードと、
前記第１再利用プログラムに入力データを供給するプログラムコードと、
前記第３図形で表わされる起動関係にある前記第１、第２再利用プログラム部品に応じて入力データを処理するプログラムコードと、
を具備することを特徴とする記憶媒体。
【請求項４６】
表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリとを有するコンピュータにおけるインターフェースのためのコンピュータプログラムを記録しコンピュータ読取り可能な記憶媒体において、前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記コンピュータプログラムは
前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形を第１のユーザ入力に応答して表示するプログラムコードと、
前記第１再利用プログラム部品により第２再利用プログラム部品が起動されることを示す第３図形を第２のユーザ入力に応答して表示するプログラムコードと、
前記表示されている第１、第２、第３図形に関し、第１、第２図形により表わされている第１、第２再利用プログラム部品と、第３図形により表わされている起動関係に応じてデータを処理する処理を定義する処理情報を前記メモリに格納するプログラムコードと、
を具備することを特徴とする記憶媒体
【請求項４７】
表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品と請求項９に記載の処理情報とを格納するメモリとを有するコンピュータを用いてデータを処理するためのコンピュータプログラムを記録しコンピュータ読取り可能な記憶媒体において、前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記コンピュータプログラムは
前記処理情報に基づいて、前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形と、前記第１、第２図形で表わされる第１、第２再利用プログラム部品間の起動関係を示す少なくとも一つの第３図形を表示するプログラムコードと、
前記第１、第２図形で表わされる第１、第２再利用プログラムに入力データを供給するプログラムコードと、
前記第３図形で表わされる起動関係にある前記第１、第２図形で表わされる第１、第２再利用プログラムに応じて入力データを処理するプログラムコードと、
を具備することを特徴とする記憶媒体。
【請求項４８】
データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリを有するコンピュータに実装され、再利用プログラム部品からプログラムを作成するためのコンピュータプログラムを記録しコンピュータ読取り可能な記憶媒体において、前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記コンピュータプログラムは
第１の入力情報に応じて少なくとも二つの再利用プログラム部品を選択するプログラムコードと、
選択された再利用プログラム部品の少なくとも一つの起動を第２の入力情報に応じて定義するプログラムコードと、
を具備する記憶媒体。
【請求項４９】
前記再利用プログラム部品は関数の配列要素に割当てられ、割当ての変更により新しい再利用プログラム部品が挿入されることを特徴とする請求項４５乃至請求項４８のいずれか一項記載の記憶媒体。
【請求項５０】
前記再利用プログラム部品は関数が参照されることにより起動されることを特徴とする請求項４９記載の記憶媒体。
【請求項５１】
前記再利用プログラム部品のある関数が先行する再利用プログラム部品によって起動されるとき、後続する再利用プログラム部品は自身に後続する再利用プログラム部品の同一名称の関数を起動することを特徴とする請求項５０記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、特に、プログラムコードを修正、または再コンパイルせずに、システムの変更を可能にする改良されたコンピュータシステムに関するものである。
【０００２】
【従来の技術】
ソフトウェア開発ツールとして、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、およびＪａｖａ等のオブジェクト指向のプログラミング・システム（ＯＯＰＳ）が普及している。オブジェクト指向技術の一つの利点はプログラムコードの再利用を向上させる能力にある。オブジェクト指向プログラムでは、現実世界のオブジェクトはオブジェクトと呼ばれる（「インスタンス」とも呼ばれる）ソフトウェア・エンティティにより表され、現実世界のオブジェクトの状態、および挙動はそれぞれのオブジェクトの属性、および演算として定義される。
【０００３】
オブジェクト指向のプログラミングはオブジェクトの設計と実装、およびそれらの相互作用の具体的記述から構成される。オブジェクト指向プログラミングシステムはオブジェクトやクラス、および継承や多相性等の概念を使用することが特徴である。オブジェクトはデータとそのデータの演算（メソッドと呼ばれることが多い）との離散的で、独立した（ｓｅｌｆ−ｃｏｎｔａｉｎｅｄ）組み合わせである。クラスとはオブジェクトの集合に対してその特徴を抽出したものである。この集合内の全てのオブジェクトは特別なクラスに属する、あるいはそのクラスにより生成されると言うことが出来る。用語「継承」は、既存のクラスから新たなクラスを派生させることによりその新クラスを定義するオブジェクト指向プログラミング言語の機構を言う。この派生したクラスは元のクラスのサブクラスと呼ばれ、この元のクラスは派生したクラスのスーパークラスと呼ばれる。その派生したクラスは既存のクラスから全てのデータとメソッドを継承しているが、派生したクラスにはデータまたはメソッドを新たに付加しても良いし、元のクラスの挙動とは異なる挙動をするように、継承したメソッドを再定義しても良い。オブジェクト指向プログラミングでの「多相性」という用語は、異なる挙動を有する同一名のメソッドを指し、この挙動はこれらのメソッドが参照するオブジェクトの種類により異なるものである。メソッドが起動されると、多相性は問題のオブジェクトをラン・タイムで判断することにより適切な演算が実施されることを確実にする。継承はコード共有を促進し、多相性は演算とオブジェクトのラン・タイムの結合を可能にする。
【０００４】
オブジェクト指向技術はビジネス・ソフトウェアのフレームワークを開発するために使用される。フレームワークは会計システム、データベース、グラフィック・ユーザ・インターフェース、オペレーティングシステム、在庫管理、物流、人的資源管理等の特定の分野でのオブジェクト間の相互作用を記述する抽象的な設計である。例えば、会計フレームワークは会計分野のアプリケーションに共通の知識を含んでいる。そのフレームワークのユーザはそれを使って、特定の会計システムの下位レベルの細部の設計に関わる特定業務用の会計システムを設計しても良い。会計システム用のその様なフレームワークの一例としては、ＡＣＣＯＵＮＴＳソフトウェアがあり、その初期版はポール・Ｄ・キーファー（Ｐａｕｌ  Ｄ．  Ｋｅｅｆｅｒ）の論文「会計システム用のオブジェクト指向フレームワーク」に記載されている。これはイリノイ大学アーバナ／シャンペン（Ｕｒｂａｎａ−Ｃｈａｍｐａｉｇｎ）校の大学院へ１９９４年に提出された修士論文である。
【０００５】
ＡＣＣＯＵＮＴＳは、コンピュータ化された業務取引処理システムを構築するためにオブジェクト指向プログラミング・システムに実装されたフレームワークである。このフレームワークの下では、ユーザは勘定と取引を定義するためにそのＡＣＣＯＵＮＴＳシステムを使用する。取引は勘定に転記されたタイム・スタンプ済みレコードと考えられる。各勘定はそれに影響を与える取引の履歴を保管する。勘定は、例えば、在庫仕訳帳や、銀行口座や、雇用者レコード等であっても良く、一方、取引は、例えば、仕入と販売取引や、預金と引出や、タイム・カードと給料等であっても良い。勘定は、そこに記憶された取引から現行総計（ｒｕｎｎｉｎｇ  ｔｏｔａｌ）を計算するような属性の集合を有していても良い。例えば、在庫勘定は、売残り、当月売上、および当月売上げ商品の原価等の属性を有していても良く、雇用者レコードはこの支払期間にした残業時間、到来給与額、時間給、および有給休暇等の属性を持っていても良い。特定のＡＣＣＯＵＮＴＳシステムでは、勘定、取引と勘定属性、およびそれらの関係は「業務規則」の集合として定義されている。例えば、ある業務規則では、売上げ商品量を適切な在庫勘定に登録し、受け取った代金を現金勘定に登録することにより処理されるものとして販売取引を定義しているかもしれない。
【０００６】
特定業務用の新しいＡｃｃｏｕｎｔｓシステムは、そのシステムの勘定と取引、および各勘定の属性、更にそれらの勘定により取引を処理する方法を定義することによって設計される（「Ａｃｃｏｕｎｔｓ」と言う用語は、本明細書ではＡｃｃｏｕｎｔｓフレームワークを実装するソフトウェアと、特定業務用にユーザが設計した特定のＡｃｃｏｕｎｔｓシステムの両方を指す）。Ａｃｃｏｕｎｔｓシステムがセットアップされれば、ユーザはそれを使用して、例えば取引を生成したり、勘定属性に問合わせを行うこともできる。取引は、買掛金システムまたは給与システム用のチェック・ライター等の他のコンピュータシステムから来ても良いし、ユーザが入力画面上で記入することにより作成しても良い。問合せは、簡単なグラフィック・ユーザ・インターフェース（ＧＵＩ）ツールや、銀行の報告書や毎月の売上報告等や、問合せを使用して作成する小切手の金額を決定するチェック・ライター等の取引を生成するコンピュータプログラムから行っても良い。
【０００７】
【発明が解決しようとする課題】
このように、通常、エンドユーザは取引を作成し、属性を問い合せることによりＡＣＣＯＵＮＴＳシステムと対話する。しかし、業務用のＡＣＣＯＵＮＴＳシステムをセットアップする場合、または業務規則の変化に応じてＡＣＣＯＵＮＴＳシステムを変更する場合は、ユーザが、例えば取引、勘定または属性の定義を追加または変更することが必要になる場合もある。この種の対話は、一般的に、プログラミングにより実現されるが、その際にユーザがプログラムコードを入力または修正したり、そのコードを再コンパイルして実行可能プログラムを生成する必要がある。
【０００８】
本発明の目的は、プログラムコードを入力、修正、または再コンパイルせずに、新しい、または修正されたプログラムを組み立てるコンピュータシステムに関するものである。さらに、好適にはグラフィック・ユーザ・インターフェースを利用して新しい、または修正されたプログラムを組み立てるコンピュータシステムを提供することが望ましい。また、業務規則の変化を時間とともに追跡可能で、所定の時間に処理される取引に適切な業務規則が適用され得るコンピュータシステムを提供することが望ましい。
【０００９】
【課題を解決するための手段】
本発明の一態様によれば、表示装置と、入力装置と、データ処理の処理の単位を表わす再利用プログラム部品を格納するメモリとを有するコンピュータにおけるインターフェース方法において、前記コンピュータはオブジェクト指向プログラミングシステムであり、前記再利用プログラム部品は同一のインターフェースを有する関数を実装し、前記方法は前記メモリに格納されている第１、第２再利用プログラム部品を表す第１、第２図形を第１のユーザ入力に応答して表示するステップと、前記第１再利用プログラム部品により第２再利用プログラム部品が起動されることを示す第３図形を第２のユーザ入力に応答して表示するステップと、前記第１再利用プログラムに入力データを供給するステップと、前記第３図形で表わされる起動関係にある前記第１、第２再利用プログラム部品に応じて入力データを処理するステップとを具備する。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明によるコンピュータシステムの実施形態を説明する。ここでは、会計システムに適用したコンピュータシステムを例に取り、説明するが、本発明は会計システムに限定されず、種々の分野に適用可能である。
【００１５】
第１実施形態
本発明の第１の実施形態によるＡＣＣＯＵＮＴＳシステムはコンピュータ上に実装されており、本システムの各機能もコンピュータ上に実装されており、本システムの各機能はこのコンピュータをプログラム形式で記憶されている手順に従い動作させることにより実現される。従って、以下では夫々対応した機能を有する仮想回路ブロック（手段）を想定してこのシステムを説明する。
【００１６】
コンピュータ・ハードウェア構成は柔軟性がある。一般に、コンピュータはＣＰＵ（中央処理装置）とＲＡＭ（ランダムアクセスメモリ）から成る主記憶装置により構成されている。コンピュータはどんなサイズでもかまわない。即ち、マイクロコンピュータ、パソコン、小型コンピュータ、ワークステーション、またはメインフレーム・コンピュータが使用可能である。一般に、コンピュータのハードウェアは、必要となるハード・ディスク等の外部記憶装置、およびキーボードとマウス等の入力装置と、ＣＲＴディスプレイとプリンタ等の出力装置とＩ／Ｏ制御部を含むユーザ・インターフェースから構成される。外部記憶装置、入力装置、出力装置として、他の装置の利用も可能である。
【００１７】
典型的には、コンピュータ上に本システムを実装させるソフトウェアはこのシステムの各機能を実現するアプリケーションプログラムと、その制御の下でこのアプリケーションプログラムが実行されるオペレーティングシステムとから構成される。コンピュータ・ソフトウェア構成は同様に柔軟である。即ち、本発明が実装される限り、ソフトウェア構造は変更しても良い。
【００１８】
本明細書で使用されている用語「手段（あるいは部分）」はこのシステムの各機能に対応する概念的手段を指している。手段とハードウェア、またはソフトウェアの単位間には必ずしも一対一の対応関係は無い。例えば、同一のハードウェア、またはソフトウェア、部品は時には異なる手段を構成している。
【００１９】
入力装置を使ってウィンドウを開けたり、ポップアップ・メニューを起動したり、メニューから項目を選択したり、アイコンの位置を定めたり、または幾何学的図形を描いたり等の本明細書に記載されているグラフィック・ユーザ・インターフェースの特徴を実施する方法は当該技術分野では周知であるので、ここではその記述はしない。さらに、メニュー、ウィンドウ、ボタン、アイコン、線等の実施形態の説明中で種々の図形的特徴を示す用語は、他の同様なグラフィカル表現も含む。
【００２０】
このシステムはコンピュータ上に実装されるが、その全部、または一部は電子回路に実装されても良い。
【００２１】
フレームワーク本発明の実施形態は会計分野について記載されているが、本発明はデータベース、グラフィック・ユーザ・インターフェース、オペレーティングシステム、在庫管理、物流、人的資源の管理等の幅広い分野に適用可能である。
【００２２】
以下にＡＣＣＯＵＮＴＳシステムのフレームワークについて説明する。図１は商店を表す勘定ツリーの実例を示している。最上位レベルの「商店」勘定１１には「在庫」勘定１２と「買掛金」勘定１３が含まれているとする。勘定１２と１３は勘定１１の「要素（部品）」勘定と呼ばれる。「在庫」勘定１２は、夫々「りんご」１４や「みかん」１５等の商品の種類ごとに勘定を持っているとする。「買掛金」勘定１３は、「ＡＢＣ社」勘定１６、「ＸＹＺ社」勘定１７等の仕入先ごとの勘定を持っているとする。勘定１４〜１７等の最下位レベルの勘定は基本勘定であり、そこへ記載された取引を格納する。「在庫」勘定１２、および「買掛金」勘定１３等のように比較的同質の要素勘定を下位に持つものは分類と呼ばれる。分類勘定の要素勘定は典型的には共通の属性名集合を持っている。「商店」勘定１１等の異質の要素勘定を下位に持つものは分割勘定と呼ばれる。
【００２３】
図２は各種の取引と勘定間の関係だけでなく、図１に示す会計システムが持ち得る取引（二重枠のボックス）の例を示す。例えば、「販売」取引２１は「在庫」勘定２３のみに影響を与え、「納品書」取引２２は「在庫」勘定２３と「買掛金」勘定２４の両方に影響する。
【００２４】
取引が転記されると、勘定ツリーのルート勘定（例えば、図１の「商店」勘定）から始まり格納されるべき一つ以上の勘定へ到達するまでそのツリーの下位レベルの勘定へと勘定間で取引が受け渡されていく。異なる種類の勘定はそこへ転記された取引を異なる方法で処理する。基本勘定は単にその取引を格納する。分類勘定は一般的にその要素勘定の一つへその取引を送る。例えば、取引の「商品タイプ」のフィールドの値に応じて、図１の「在庫」勘定は受け取った「販売」取引を「りんご」勘定、または「みかん」勘定のどちらかに送ることになる。この機能は分類機能と呼ばれる。分割勘定は一般に取引を一個以上の新たな取引に変換し、その新取引をその要素勘定の中の一つ以上の勘定へ転記する。システム内で発生された新取引は内部取引と称されることもあり、またユーザにより外部からシステムへ転記された取引は外部取引と称されることもある。例えば、「納品書」取引（外部取引）が「商店」勘定に転記されると、「商店」勘定は二つの内部取引を作成する。その内部取引の一つは売れた商品の量に関する情報を含んでおり、「在庫」勘定に転記される。他方の内部取引は金額に関する情報を含んでおり、「買掛金」勘定に転記される。図３は、「販売」取引３１がどのようにして「買掛金」勘定に転記される取引３２と「在庫」勘定に転記される取引３３に分割されるかを示している。図３に示す取引のデータフィールドの一個以上の内部取引へのマッピングは取引マッピングと呼ばれることもある。
【００２５】
したがって、会計システムでの各勘定は取引に適用される処理と考えても良い。例えば、基本勘定は取引を格納する処理と考えられる。分類勘定は、取引が分類され、要素処理（要素勘定）の一つへ転記される処理と考えられる。分割勘定は、一つの取引を二個以上の新たな取引に変換し、二つ以上の要素処理（要素勘定）に転記する処理と考えても良い。本発明によれば、これらの処理は別個の再利用プログラム部品としてオブジェクト指向プログラミング・システムに実装されている。
【００２６】
従って、本明細書で使用されているように、会計フレームワークでの勘定は時には処理、再利用（プログラム）部品、または単に部品とも称される。例えば、上述の処理は夫々「基本」、「分類」、および「分割」部品と称しても良い。
【００２７】
会計システムのフレームワークの説明をした所で、本発明の各種の形態を以下に説明する。
【００２８】
図４〜図８は会計システム用のグラフィック・ユーザ・インターフェース（ＧＵＩ）を勘定ツリーの設計がされ、プログラムが再利用プログラム部品から作成される場合を例にとって示している。図４〜図８に示すように、ユーザはコンピュータ画面上でアイコンと線を描くことにより勘定ツリーを設計する（図４〜図８の境界は画面上のユーザ・インターフェース・ウィンドウを表している）。アイコンは再利用プログラム部品を表し、そのアイコンをつなぐ線は一連の処理を表している。コンピュータは、再利用プログラム部品を使い、その勘定ツリーグラフに従ってプログラムを作成する。そしてこのプログラムは取引を処理するために実行される。
【００２９】
図４に戻って、ユーザはまず入力装置を用いて、利用可能な再利用部品のリストが含まれるポップアップ・メニュー４１等の画面表示を起動する。次に、ユーザはメニュー項目４２を選択し、表示されるアイコンのために画面上の位置を指示する。選択した再利用部品の図形（アイコン）４３ａは画面上のユーザが選んだ位置に表示される（図５）。上述の工程は全ての部品４３ａ〜４３ｆが画面上の希望位置に置かれるまで繰り返される（図５）。次に、ユーザは入力装置を用い処理ツリーの設計に従って、矢印を画面上に引き部品４３ａ〜４３ｆを結び付ける（図６）。図６は引かれた矢印線４４と現在引かれている線４５と共に線４５が引かれているときのカーソル４６の位置を示す。矢印線４４は連続する処理を示し、矢印線４４に対応する矢印線４４ａは取引が一つの処理から別の処理へ送られる際の方向を表している。
【００３０】
処理ツリーの中のアイコンの一つは入力部品を示す入力アイコン４７である（図７）。図示の例では、入力部品４７は分割部品４３ａに接続される。入力部品は処理ツリーで定義される一連の処理の始点を表し、取引を入力するために使用される。ユーザは入力定義ウィンドウ４８を起動する（例えば、入力アイコンの位置でマウスカーソルをクリックすることにより起動する）。これにより、ユーザは取引が持つことになるデータ・フィールド等の入力フォーマットを定義できる。入力定義ウィンドウ４８はこの入力フォーマット内のデータ・フィールドを追加、削除できるようにポップアップ・メニュー４８ａを含む。
【００３１】
この入力フォーマットを定義後、ユーザは入力ウィンドウ４９を起動し取引用のデータを入力する（例えば、入力アイコンの位置でマウスカーソルをクリックすることにより起動する：図８）。全てのデータ項目の入力が終了後、ユーザは入力ウィンドウ４９の了解ボタン４９ａをクリックする（図８）。これにより、図９に示すように、ユーザが描いた処理ツリーが表す連続処理に従って進行する入力データの処理が始まる（図９において、括弧で括られているテキストとそのテキストの隣にある矢印はＧＵＩ表示の一部ではなく、単に入力データが各部品によりどのように処理されて、渡されるかを説明するために入れてある）。ユーザが定義した処理ツリーはコンピュータに記憶しておいて、後で入力データを処理するために再表示、および使用される。
【００３２】
図４〜図７に示した例では、部品アイコンを配置してから矢印線を引いたが、アイコン（入力アイコンも含む）と矢印線はどのような順序で画面上に描いても良い。例えば、いくつかのアイコンを結ぶ矢印線は他のアイコンを画面上に描くよりも早く描いても良い。さらに、矢印線が部品間の関係を、つまりアイコンによって表される連続処理を概念レベルで示す限り、部品アイコンの実際の配置位置とその線は重要ではない。
【００３３】
ＧＵＩのアイコンは再利用プログラム部品、即ち処理単位を表している。再利用部品は、メソッドをカプセル化するオブジェクト、すなわちそのメソッドが属するクラスとしてオブジェクト指向プログラミングシステムに実装され得る既存のプログラム部品である。ＧＵＩを使用することにより、ユーザは、プログラムコードを一つも生成、変更、または再コンパイルせずに既存のプログラム部品からプログラムを作成する。この処理は「プログラム組み立て」と呼ばれ、以下に記述するオブジェクト指向技術を用いて達成される（別段の定めが無い限り、以下の説明で使用される例題はＣ＋＋文法で書かれている）。
【００３４】
プログラム組み立ての実装
非オブジェクト指向プログラミングシステムでは、再利用プログラム部品は一般に関数の形式で提供されている。その様なプログラム部品を挿入したり削除したりするには、プログラムのコンパイルが必要となる。他方、オブジェクト指向プログラミングシステムでは、再利用部品はオブジェクトの形で提供される。オブジェクトは属性やメソッドが定義されるクラスから生成される。本明細書では、クラスで定義されるメソッドを、クラスまたはクラスから作成されるオブジェクトのメンバー関数と呼ぶこともある。あるオブジェクトのあるメンバー関数はその関数を参照する、すなわちメッセージをそのオブジェクトに渡すことにより起動可能である。オブジェクト指向プログラミングシステムでは、オブジェクトはそのメンバー関数のコンパイルされたコードに対するポインタの集合を得る。オブジェクトの関数が起動されると、その関数を起動するプログラムコードはその起動された関数へのポインタに置き換えられる。これは、プログラムのコンパイル中ではなくその実行中に、動的に実施される。
【００３５】
プログラム組み立てをコードを生成また再コンパイルせずに達成するために、全ての再利用・プログラムは同一のインターフェースを有するクラスの形で提供される。
【００３６】
Ｃ１：：ｆ（ａｒｇ１，…，ａｒｇＮ）
Ｃ２：：ｆ（ａｒｇ１，…，ａｒｇＮ）
Ｃ３：：ｆ（ａｒｇ１，…，ａｒｇＮ）
Ｃ４：：ｆ（ａｒｇ１，…，ａｒｇＮ）
．．．
ここで、「Ｃ１：：ｆ」は、クラス「Ｃ１」のメソッド「ｆ」を参照するＣ＋＋文法である。上述の例では、各クラスＣ１，Ｃ２，Ｃ３，Ｃ４，…は同一インターフェースｆ（ａｒｇ１，…，ａｒｇＮ）を有する関数ｆを実装する。多相性の原理により、それらの関数はそれが定義されるクラスによって異なる演算を表す。例えば、関数Ｃ１：：ｆ、Ｃ２：：ｆ、Ｃ３：：ｆとＣ４：：ｆは夫々基本処理（入力データの格納）、分類処理（入力データの分類）、分割処理（入力データの分割）と変換処理（入力データの変換）を実装しても良い。しかし、これら関数の全ては同一インターフェースｆ（ａｒｇ１，…，ａｒｇＮ）を有している。
【００３７】
従って、本発明の一つの形態では、全ての再利用プログラム部品は同一インターフェースを持っている。これは、スーパークラスから得られたサブクラスがそのスーパークラスと同一のインターフェースを有することになる継承機構を使ってオブジェクト指向プログラミングシステム内で達成される。好適には、一つのスーパークラスは、会計システムの全ての再利用部品用の共通インターフェースを定義するために使用される。
【００３８】
プログラム組み立てを達成するために、配列、リスト、または辞書等のデータ構造は任意の部品の集合を保持し、後続の部品の挿入、および削除を容易にするために使用される。その様なデータ構造を使用することにより、その部品の連続起動もまた容易になる。例えば、そのソフトウェアのメイン関数は下記のように実装されても良い。
【００３９】
0003592944.tif 000002
ここでａ［ｉ］．ｆはオブジェクトａ［ｉ］中のメソッドｆを起動するＣ＋＋文法である。上述の例では、配列ａ［ｉ］はオブジェクトの集合を保持するのに使用される。そのオブジェクトａ［ｉ］のメンバー関数ｆ（ａｒｇ１，…，ａｒｇＮ）はループを使用して起動され、それぞれのメンバー関数により定義された操作が順番に実行される。再利用部品を挿入（または削除）するために、所望の再利用部品（オブジェクトとして実装されている）は配列要素ａ［ｉ］に割当てられる。例えば、上記の例では、入力データを分類しそのデータを基本勘定に格納する処理は、クラスＣ２（これは分類処理を実装する）に属するオブジェクトを配列要素ａ［０］に割当て、クラスＣ１（これは基本処理を実装する）に属するオブジェクトを配列要素ａ［１］に割当てることにより実装される：
ａ［０］＝ｎｅｗ  Ｃ２；
ａ［１］＝ｎｅｗ  Ｃ１；
従って、このループが実行されると、分類部品、および基本部品は対応する処理を実装するために実行される。新しい部品の挿入は挿入された部品を適切な配列要素に割当てることにより行われる。例えば、以下の割当てにより、変換処理（クラスＣ４に属するオブジェクトにより実装されている）が前列での分類部品（クラスＣ２に属するオブジェクトにより実装されている）と基本部品（クラスＣ１に属するオブジェクトにより実装されている）間に挿入されることになる。
【００４０】
ａ［０］＝ｎｅｗ  Ｃ２；
ａ［１］＝ｎｅｗ  Ｃ４；
ａ［２］＝ｎｅｗ  Ｃ１；
このシステムは一連の起動を可能にする。例えば、部品Ａによって起動された部品Ｂが部品Ｃを更に起動することが可能となる（本明細書では、部品が起動されると記述するが、オブジェクト指向プログラミング言語の文脈では、起動されるものは一般にオブジェクトのメソッドである）。これは、後続の部品（例えば、部品Ａに対する部品Ｂ）の各メンバー関数を、次のように実装することにより実現される。すなわち、部品（部品Ｂ）のあるメンバー関数が先行する部品（部品Ａ）によって起動されるとき、後続部品（部品Ｂ）は、それ自身の（Ｂの）後続部品（例えば、部品Ｃ）の同一名の関数を起動する。例えば、部品Ｂのメンバー関数ｆ（ａｒｇ１，…，ａｒｇＮ）は下記のように実装される。
【００４１】
0003592944.tif 000003
ここで、「クラスＢ」はオブジェクトＢが属するクラスであり、「スーパークラス」は好適にはクラスＢが継承しているスーパークラスである。上述の例では、後続部品は配列ａ［Ｎ］に保持される。後続部品は起動する部品が継承するスーパークラスと同一のクラスから継承するのが好適である。好適には、関数インターフェースｆ（ａｒｇ１，…，ａｒｇＮ）は元来そのスーパークラスで宣言されている。
【００４２】
オブジェクトの配列要素に対する割当てはユーザがＧＵＩを介してラン・タイムで実行される。例えば、部品ＢとＣを表すアイコンが表示画面上に置かれ、部品Ｂから部品Ｃに線が引かれると、部品Ｂは部品Ｃを配列要素に割当てる。このような割当てにはプログラムコードの変化は全然無く、従って再コンパイルは必要が無い。従って、上述のオブジェクト指向プログラミング技術を利用することによりプログラム組み立てを達成出来る。これにより、再利用部品がユーザ、またはコンピュータによるプログラムコードの生成、または修正無しに、かつ再コンパイル無しにプログラムを組み立てるのに使用される。
【００４３】
ここで、図９を参照して、各部品のメンバー関数の起動処理を説明する。先ず、図９では、「分割」部品から「変換」部品、「分類」部品にそれぞれ矢印線が引かれ、「変換」部品から「基本（税金）」部品に矢印線が引かれ、「分類」部品から「基本（ＸＹＺ社）」部品、「基本（ＡＢＣ社）」部品に矢印線が引かれている。
【００４４】
そのため、「分割」部品内では、「変換」部品、「分類」部品が配列要素に割り当てられる。例えば、ａ［１］＝「変換」部品、ａ［２］＝「分類」部品というようにである。また、「変換」部品内では、「基本（税金）」部品が配列要素に割り当てられており、ａ［１］＝「基本（税金）」部品となっている。さらに、「分類」部品内では、「基本（ＸＹＺ社）」部品、「基本（ＡＢＣ社）」部品が配列要素に割り当てられ、ａ［１］＝「基本（ＸＹＺ社）」部品、ａ［２］＝「基本（ＡＢＣ社）」となっている。
【００４５】
次に、処理手順を説明する。図９で、「入力」部品から「分割」部品が起動されると、「分割」部品のメンバー関数が実行される。すると、配列要素としてａ［１］＝「変換」部品、ａ［２］＝「分類」部品となっているので、先ず、「変換」部品が起動される。
【００４６】
「変換」部品が起動されると、さらに「変換」部品のメンバー関数が実行され、配列要素として割り当てられている「基本（税金）」部品が起動する。
【００４７】
そして、「変換」部品の実行が終了すると、「分類」部品が起動される。「分類」部品が起動されると、「分類」部品のメンバー関数が実行され、ａ［１］に割り当てられている「基本（ＸＹＺ社）」部品が起動される。「基本（ＸＹＺ社）」の処理が終了すると、ａ［２］に割り当てられている「基本（ＡＢＣ社）」部品が起動される。
【００４８】
このように、「分類」部品→「変換」部品→「基本（税金）」部品→「分類」部品→「基本（ＸＹＺ社）」部品→「基本（ＡＢＣ社）」部品というように、一連の起動が可能となるものである。
【００４９】
システム構成
本発明の一実施形態の機能ブロック図である図１０を参照してこの会計システムの構成を説明する。図中の各機能ブロックは別個のハードウェア、またはソフトウェア部品である必要はないが、ハードウェア、またはソフトウェアによって実現可能である。
【００５０】
図１０に示すように、このシステムはキーボード、および／またはマウスであっても良い入力装置１０１と、ＣＲＴであっても良い表示ユニット１０２を含む。入出力制御部（Ｉ／Ｏ制御部）１０３は入力装置１０１と、表示ユニット１０２とその他のシステムの部分間のインターフェースを管理する。このシステムには更に、再利用部品の定義、コンパイル、組み立て、および実行を全てシステムのバックグラウンドで管理するオブジェクト指向プログラミング及び実行環境部１０４が含まれている。再利用部品表示部１０６はオブジェクト指向プログラミング及び実行環境部１０４からの再利用部品の定義を受け、図４に示すポップアップメニューのようにユーザのブラウジングを容易にするフォーマットでの定義を表示する。再利用部品定義部１０５はユーザが再利用部品の定義を行えるようにし、ユーザ定義の部品がその他の再利用部品と協動するように新しい再利用部品を定義する際に適切な制約を課す。また、定義部１０５はユーザ定義の再利用部品の定義をオブジェクト指向プログラミング及び実行環境部１０４に登録する。
【００５１】
再利用部品選択部１０７は、入力装置１０１からの選択入力（ユーザ選択の再利用部品を表す）に応答し、複合表示部１０８に指示して、ユーザが選択した再利用部品の図形を表示ユニット１０２に表示させる。選択入力は、例えば、再利用部品表示部１０６で表示されたメニューから選択されたものである。その再利用部品の図形は、例えば、図１０に示すアイコン４３ａ〜４３ｆである。再利用部品接続部１１０は、再利用部品間でユーザが定義する接続を表す入力装置１０１からの接続入力に応答して、複合表示部１０８に、ユーザが定義した接続の図形を表示ユニット１０２に表示させるように指示する。接続入力とは、例えば、ある再利用部品を表すアイコンを別の部品を表す別のアイコンと結ぶマウス操作である。そのユーザ定義された接続の図形は、例えば、図１１に示す矢印線４４のように、アイコンを連結する矢印の形である。
【００５２】
再利用部品選択部１０７と再利用部品接続部１１０からの要求で再利用部品、およびそれら間の接続の図形を表示することに加えて、複合表示部１０８は受け取った選択、および接続入力を表すデータを複合データファイル１０９に記憶させる。この選択、および接続入力データに従って、複合表示部１０８はオブジェクトと、このオブジェクトの一連の起動関係をオブジェクト指向プログラミング及び実行環境部１０４で作成する。従って、表示部１０８は再利用部品から組み立てられたプログラムの再生成を容易にする。
【００５３】
入力データフォーマット定義部１１１は入力装置１０１の要求に応答し、ユーザが入力フォーマットを定義できるように複合表示部１０８に指示を出してデータと図式表現を表示ユニット１０２に表示させる。このデータと図式表現は、例えば、図７に示すようにウィンドウ４８の形で表示される。また、この入力データフォーマット定義部１１１はユーザにより定義される入力フォーマットを表す入力装置１０１からの入力を受け取り、定義された入力データフォーマットを入力データフォーマットファイル１１２に記憶させる。データ入力部１１３は入力装置１０１からの要求に応答し、複合表示部１０８に指示してそのデータと図式表現を表示ユニット１０２に表示させて、ユーザが入力データフォーマットファイル１１２に記憶された入力データフォーマットに応じてデータを入力できるようにする。このデータと図式表現は、例えば、図８に示すようにウィンドウ４９のような形で表示される。データ入力部１１３は更にユーザが入力したデータ、即ちＡＣＣＯＵＮＴＳシステムで処理される入力データを表す、入力装置１０１からの入力を受け取る。
【００５４】
処理開始部１１４は、データ入力部１１３からの入力データを受け取り、この入力データの処理に関するユーザからの要求を表す、入力装置１０１からの要求に応答して、作成されたプログラム（つまり、対応するオブジェクトの組み立て）をオブジェクト指向プログラミング及び実行環境部１０４で実行する。再利用部品状態表示部１１５はオブジェクト指向プログラミング及び実行環境部１０４でのオブジェクトの状態を表示ユニット１０２に表示する。この表示により、ユーザはデータ処理結果を見ることが容易となる。
【００５５】
カスタム再利用部品の定義
図９に示す「分割」、「分類」、「変換」部品等の各再利用部品により実行される特定の関数はＧＵＩにより定義される。例えば、分割部品は転記されてきた取引を分割し、取引マッピングに応じて、異なる低位レベルの勘定のデータフィールドに渡す。ユーザはＧＵＩを通して取引マッピングを指定することによりカスタム分割部品を定義する。分類部品は特定のフィールドの値に応じて取引を複数の低位レベルの勘定の一つに渡す。ユーザは取引が渡された低位レベルの勘定と特定のフィールドの値の対応関係をＧＵＩを通して指定することによりカスタム分類部品を定義する。
【００５６】
しかしながら、変換部品の処理は複雑であるので、カスタム変換部品の定義は複雑である。図１１には取引６１が変換部品「給与」６２により処理される方法が示されている。この例では、変換部品「給与」６２は毎月の給与と残業手当データを含む取引６１を受け取ると、変換部品「給与」６２は給与データを含む取引を給与勘定６３に転記し、入力された残業データから残業手当を計算し、それを残業手当勘定６４に転記し、給与と残業手当を加算して給与総額を計算し、それを給与総額勘定６５に転記し、税金データを計算して、それを税金勘定６６に転記し、税金をその給与総額から減算し、手取りを計算しそれを、預金勘定６７に転記する。この例における下位レベル勘定６３〜６７の全ては、そこに転記された取引を格納する基本勘定である。変換部品「給与」はユーザがＧＵＩを以下のようにして使用し定義することが可能である。
【００５７】
このような変換部品は本明細書で説明したプログラム組み立て技術を用いて、プログラムコードを入力、修正、または再コンパイルせずに、１つ、または複数の再利用部品から構成される。
【００５８】
図１１に示す給与部品の機能を実現するための変換部品を構成する際のＧＵＩを図１２〜図１４に示す。図１２に示すように、（未定義の）変換部品を含む処理ツリー７１が設計され、先ず画面に表示される。ユーザは例えば「変換」アイコン７３に位置するマウスカーソル７２をクリックすることにより、変換部品を定義する。これに応じて、表示画面には定義される変換部品と協動する部品（ここでは、取引を変換部品に転記する入力部品７４と、変換部品が転記される基本部品７５ａ〜７５ｅ）と、定義される変換部品を定義するための空白エリアが表示される（図１３）。図４〜図６を参照して前述した入力技術を用いて、ユーザはメニュー（図示せず）から既存の再利用部品、例えば給与、残業手当、給与総額、税金、預金等を選択し、その選択された部品に対応するアイコン（例えば、７６ａ〜７６ｅ）を画面上に配置する（図１４）。これらの再利用部品は、変換部品「給与」の操作を定義するために使用される規則、公式等を表わすので、変換規則と呼称される。変換規則部品はシステムに設けられていても良いし、オブジェクト指向プログラミング及び実行環境部１０４を用いてプログラマーにより予め作成されていても良い。一度作成されると、変換規則部品は他の再利用部品と同様に扱われる。
【００５９】
ユーザは種々の部品を接続する矢印線（例えば、実線７７ａ〜７７ｊ、点線７８ａ〜７８ｂ）を引く。実線と点線は、例えばマウスの左ボタンを押しながらカーソルをドラッグする、あるいはマウスの右ボタンを押しながらカーソルをドラッグする等の異なる入力技術を用いて引いてもよい。各実線は宛先の部品の起動を示す。起動には、起動側部品から宛先部品への取引の転記も含まれる。例えば、実線７７ａは入力部品７４（起動側部品）により給与部品７６ａ（宛先部品）が起動され、入力された取引が給与部品へ転記されることを示す。各点線は宛先部品によるソース部品の属性の参照を示す。例えば、点線７８ａは給与総額７６ｃ（宛先部品）による給与部品７６ａ（ソース部品）の属性（給与データ）参照を示す。宛先部品によるソース部品の属性の参照はソース部品の機能（例えば、参照”ｒｅｆｅｒＴｏ”機能）を宛先部品から起動することにより実現される。この機能は、ソース部品の参照される属性を宛先部品に返す。
【００６０】
図１４の例では、実線７７ｃに示すように入力部品７４により給与総額部品７６ｃが起動されると、それぞれ点線７８ａ、７８ｂに示すように給与部品７６ａと残業手当部品７６ｃの参照が開始される。給与総額部品７６ｃは給与部品、残業手当部品から返されたデータを用いて給与総額データを計算する。この給与総額データは給与総額部品の属性となり、続いて、例えば税金部品７６ｄ、預金部品７６ｅにより参照される。
【００６１】
一度処理ツリーが定義されると（図１４）、システムは再利用部品７６ａ〜７６ｅと起動に基づいて変換部品を作成し、実線７７ａ〜７７ｇ、点線７８ａ〜７８ｅで定義されるように参照を行う。このようにユーザにより定義された給与部品は入力データ（ここでは入力部品により転記された取引）を処理するために使われ、後で利用できるように保存される。
【００６２】
既存の再利用部品から再利用部品を作成することは前述した同一のオブジェクト指向プログラミング技術で実装される。特に、後続の部品の同一名のメンバー関数を起動させるある部品のあるメンバー関数（先行部品により起動された）の能力が利用される。この技術により一連の処理の構築が容易となる。
【００６３】
上述の例は、ユーザによる変換部品の定義を示した。一般的に、ユーザは既存の再利用部品を用いて所望の機能を実現する新しい再利用部品を構成する。ユーザが定義した再利用部品はデータ処理のための処理ツリーを構築するため、あるいは新しい再利用部品を定義するために使われる。これは、コードの再利用を促進し、モジュール化、あるいは階層化されたシステム設計を容易にする。このため、ユーザは大規模な、そして複雑なプログラムモジュールを簡単に設計することができる。上記の動作はプログラムコードを入力、修正、または再コンパイルせずに、行われる。
【００６４】
業務規則の変化
このＡＣＣＯＵＮＴＳシステムがサーポートする別の特徴は業務規則の変化を追跡することである。本発明のオブジェクト指向プログラミング技術を用いると、業務規則の変化を時間を追って追跡することができる。これにより、過去に発生した取引の処理が可能になり、取引が発生した時点で有効な業務規則に従った取引の処理が行われることが確保される。
【００６５】
業務規則の変化は部品間の接続が有効となる期間に関して定義される。業務規則の変化の一例としては、業務組織の組織表の一部を示す図１５に示されているものがある。図１５に示すように、業務単位の「オブジェクト指向技術グループ」８１は、１９９７年９月３０日以前は業務単位の「Ｒ＆Ｄセンター」８２のサブユニットであり、１９９７年１０月１日に「ソフトウェア業務ユニット」８３のサブユニットになっている。従って、部品８２と部品８１間のリンク８４ａは１９９７年９月３０日より前の期間でのみ有効であり、部品８３と部品８１間のリンク８４ｂは１９９７年１０月１日以降の期間でのみ有効である。図１５の下位レベルの部品８５はユニット８１のサブユニットを表し、部品８１と部品８５間のリンクは両期間で有効のままである。
【００６６】
図１６〜図１９には変化する業務規則を定義し、適用するためのグラフィック・ユーザ・インターフェースの利用が図示されている。処理ツリー９１が表示画面に表示されると、ユーザは特定のリンク、即ち、部品９３ａと９３ｂ間のリンク９２の有効期間を、そのリンク９２を指示しているマウスカーソル９４をクリックすることにより定義可能である（図１６）。それに応答して、ウィンドウ９５のようなプロンプトが画面に表示され、ユーザはリンク９２が有効となる期間を入力できる（図１７）。このシステムはユーザによって入力された全ての業務規則用の有効な期間を記憶し、それにより業務規則の変化を時間を追って追跡できる。作成されたプログラムが実行され取引が処理される際に、ユーザはウィンドウ９６のような画面表示により処理される取引の発生日（モデル日付と称される）を入力するように促される（図１８）。このモデル日付は任意の日付である。プログラムは次にそのモデル日付に有効な業務規則に従って取引を処理する。加えて、そのプログラムが特定のモデル日付に実行された場合は、処理ツリーはそのモデル日付に有効な業務規則に従って画面に表示される。例えば、そのプログラムが部品９３ａと９３ｂ間のリンク９２の有効期間外のモデル日付に実行されると、そのリンク９２は処理ツリーグラフから消えてしまう（図１９）。
【００６７】
業務規則の変化を追跡する処理は、部品間の接続有効期間をオブジェクトとして表すことによりオブジェクト指向プログラミングで実装される。たとえば、図２０の（ａ）と（ｂ）に示すように、ユーザが部品Ａと部品Ｂ間のリンク２０１の有効期間を（ＧＵＩを介して）定義すると、有効期間部品２０２が部品Ａから部品Ｂへの一連の起動関係（ａ）に挿入される（ｂ）。あるいは、有効期間部品２０２はユーザが初めてリンク２０１を生成した時に自動的に挿入されてもよい。後者の場合、リンク２０１が有効である期間はユーザにより定義されない限り無限である。
【００６８】
上述したオブジェクト指向プログラミング技術は、有効期間部品２０２の挿入と、プログラムコードの入力、または修正あるいはそのコードの再コンパイル無しに、図２０（ｂ）に示す一連の起動関係を作る際に使用される。特に、有効期間部品２０２は部品Ｂと同じインターフェースを持つように実装され、これにより部品Ａは部品２０２中のメンバー関数を部品Ｂ中の同名のメンバー関数を起動させるのと同じ方法で起動することが出来る。有効期間部品２０２中のメンバー関数が部品Ａにより起動されると、それはモデル日付とそこに含まれる有効期間を比較する。モデル日付がこの有効期間内であれば、有効期間部品２０２中のメンバー関数は部品Ｂ（後続部品）中の同名のメンバー関数を起動する。一方、モデル日付がこの有効期間外であれば、有効期間部品２０２中のメンバー関数は部品Ｂ中の同名のメンバー関数を起動せず、一連の起動は終了する。
【００６９】
業務規則の変化の別の例は、ある部品が二個以上の後続部品を持ち、ある有効期間内に一個の部品を選択的に起動する場合である。この二個以上の後続部品の有効期間は相互排他的である。即ち、これらの有効期間は夫々重なることはない。この状態の一例としては、業務組織表の一部を示す図２１に示されているものがある。この例では、「Ｒ＆Ｄセンター」は１９９７年９月３０日以前は「オブジェクト指向技術グループ」を含んでいるが、１９９７年１０月１日からは、オブジェクト指向技術はアウトソーシングにより取り扱われる。図１２に示すように、この状況での業務規則の変化の追跡は、起動部品（「Ｒ＆Ｄセンター」２２１）内のディクショナリ等のデータ構造を使い、かつその起動部品２２１と二個の有効期間部品２２３ａと２２３ｂ間に「部品・セット」オブジェクト２２２を挿入することによりオブジェクト指向プログラミングで実装される。
【００７０】
ディクショナリとセットはオブジェクト指向プログラミングではコレクションクラスの範疇に入る。コレクションは一つのオブジェクトであり、これには他のオブジェクトのグループが含まれる。各ディクショナリは複数対のオブジェクトのリストであり、各対は「キー」と「値」から成る。一つのディクショナリ内のこれらのキーと値はオブジェクトである。一方、セットは複製がないコレクションである。
【００７１】
図２２に実質的に示されるように、起動部品であるＲ＆Ｄセンター２２１はディクショナリ２２４を使用する。このディクショナリ２２４では、キー「オブジェクト指向技術グループ」２２６の値２２５は部品・セット２２２である。この部品・セット２２２は相互排他的有効期間を定義する一群の有効期間オブジェクト２２７ａ、２２７ｂ、…を保持する。図２０（ｂ）に示す例の場合と同様に、有効期間オブジェクト中のあるメンバー関数を起動する代わりに、本例での起動部品２２１は部品セットオブジェクト２２２中の同名のメンバー関数を起動する。次に、部品セットオブジェクト２２２中のこのメンバー関数は、起動が発生する時間（即ち、モデル日付）によって、有効期間オブジェクト２２３ａ、２２３ｂ、…の内の一つのオブジェクト中の同名のメンバー関数を起動する。
【００７２】
部品セットオブジェクトと有効期間オブジェクトは部品２２１と部品２２３ａ、２２３ｂとの間のリンクが生成される時、あるいはユーザにより相互排他的有効期間が定義される時に、コンピュータにより自動的に挿入される。新しい有効期間オブジェクトを挿入する前に、部品セットオブジェクト２２２は追加すべき新しいオブジェクトで定義されている有効期間が部品・セット２２２に保持されている他のオブジェクトの期間と排他的であるかどうか判定する。新しい有効期間オブジェクトは定義されている有効期間が他のオブジェクトの期間と排他的であるか場合のみ挿入される。
【００７３】
前述のオブジェクト指向プログラミング技術を使うことにより、部品セットオブジェクトの挿入と部品・セット内への有効期間の追加はプログラムコードの入力、または修正あるいはそのコードの再コンパイル無しに実施され得る。
【００７４】
従って、本発明のオブジェクト指向プログラミング技術を使うことにより、時間経過につれての業務規則の変化は追跡することが可能である。これにより、取引は何時でも処理可能であり、転記された取引はモデル時間に有効な適切な業務規則に従って処理される。
【００７５】
図２３は業務規則の変化の追跡を実施する他の実施形態の構造を示す部分的な機能ブロック図である。図２３ではいくつかの要素が図示省略されているが、図１０に示す構造の全ての機能的構成要素は本実施形態に含まれている。図２３に示すように、接続管理部１１６は、二個の部品間の接続の有効期間についてのユーザ定義を表す入力データを入力装置から受け取り、複合表示部１０８に指示して入力された有効期間に応じて接続関係を示すグラフィック表示を行う。複合表示部１０８は有効期間入力を表すデータを複合データファイル１０９に記憶させ、オブジェクトとそのオブジェクトの一連の起動をオブジェクト指向プログラミング及び実行環境部１０４で作成する。モデル選択部１１７はモデル時間を表す入力データを入力装置から受け取り、複合表示部１０８に指示してそのモデル時間に応じて図形を表示する。例えば、表示部１０８は、もしこのモデル時間が処理ツリー中の二個の部品間の接続の有効期間内であればその接続を表示し、もしこのモデル時間がその有効期間外であれば表示されている処理ツリーからその接続を削除する（図１９参照）。加えて、モデル選択部１１７はグローバル変数等のそのプログラムの適切な変数内にそのモデル時間を設定する。その結果、このモデル時間はオブジェクト指向プログラミング及び実行環境部１０４で全てのオブジェクトによりアクセス可能となる。
【００７６】
本明細書で説明した実施形態では、カーソル・ポインティング、マウスボタン・クリック等の特定の入力装置と入力技術を用いてＧＵＩを説明してきたが、タッチパネル、ライトペン、トラックボール等の他の入力装置と入力技術を用いてＧＵＩを構成しても良い。
【００７７】
このＡＣＣＯＵＮＴＳシステムとユーザ間のインターフェースはグラフィック・ユーザ・インターフェース（ＧＵＩ）として説明されている。ユーザがこのシステムとの対話に要する全ての情報を入力するのには、非グラフィックすなわちテキストによるユーザ・インターフェースを使用しても良い。そのような非グラフィック・ユーザ・インターフェースは、例えばテキスト形式のプロンプトでユーザに入力を促す方法を使っても良い。例えば、図４に示すポップアップメニューの代わりに、利用可能な再利用部品のリストをテキスト表示し、ユーザに選択した再利用部品の名前を入力するよう促すプロンプトを表示しても良い。同様に、プロンプトを使用して、例えば接続に対する始点と終点の部品の名前の入力を促すことでユーザに再利用部品間の接続を定義するように要求しても良い。更に、グラフィックと非グラフィックが混合したユーザ・インターフェースも使用可能である。グラフィック・ユーザ・インターフェースの場合同様に、非グラフィック・ユーザ・インターフェースでも、ユーザはプログラムコードを一つも入力する必要は無いし、このシステムによってプログラムコードが生成されることもない。使用するユーザ・インターフェースの種類に関係なく、本明細書で説明したオブジェクト指向プログラミング技術は、同じくプログラムの変更や再コンパイルせずにプログラムを作成することにも適用される。更に、図１０と図２３に示す本システム構造の機能ユニットを動作させて、使用しているユーザ・インターフェースの種類に応じて適切な表示を作成することも可能である。
【００７８】
本明細書で説明した、業務規則の時間的な変化を実装するオブジェクト指向プログラミング技術は、ユーザの特徴等の他の条件で変化する業務規則を実装するのにも使用できる。ここで述べているオブジェクト指向プログラミング技術により、ユーザはいかなるプログラムコードの生成、変更、または再コンパイルをすることなく、ラン・タイム時にそのような条件を定義することが可能となる。これにより、実現世界のオブジェクトとそのオブジェクト間の関係のモデルを作る際のソフトウェアの柔軟性、および万能性を高めることができる。
【００７９】
本発明の実施形態と応用例について示し、説明してきたが、本発明の範囲内でその他多くの変更が可能であることは明らかである。従って、ここで開示した実施形態は実例として挙げたものであって、本発明を何ら限定するものではなく、本発明の範囲はこれまでの記載内容からと言うよりは特許請求の範囲によって示されるものである。特許請求の範囲はそのような実施形態と変更例、および本発明の実際の範囲内におけるその他の変更例を保護するものである。従って、特許請求の範囲で意味するもの、および特許請求の範囲から派生する変更は本発明の中に包含されるものである。
【００８０】
たとえば、本発明が実施できる限り、上述のハードウェア部品の何個かを追加、交換、または削除しても良い。例えば、このシステムは複数のコンピュータが接続されたコンピュータネットワーク上で設置されても良い。ＣＰＵはどんなタイプのでもかまわない。複数の処理を同時に実行するために複数のＣＰＵが使用されても良いし、一個のＣＰＵが時分割で使用されても良い。他の種類の入力装置を使用しても良い。例えば、タッチパネル、ライトペン、またはトラックボール等のポインティング装置や、ディジタイザー、イメージリーダ、またはビデオカメラ等の画像入力装置と、音声認識装置と、各種センサを使用しても良い。他の種類の外部記憶装置を使用しても良い。例えば、フロッピーディスクドライブ、ＲＡＭカードユニット、磁気テープユニット、光ディスクユニット、光磁気ディスクユニット、バブルメモリユニット、またはフラッシュメモリが使用可能である。他の種類の出力装置を使用しても良い。例えば、液晶表示部、プラズマ表示部、ビデオプロジェクタ、ＬＥＤ表示部、音響発生回路、または音声合成器を使用とてもかまわない。
【００８１】
【発明の効果】
以上説明したように本発明によれば、プログラムコードを入力、修正、または再コンパイルせずに、新しい、または修正されたプログラムを組み立てるコンピュータシステムを提供することができる。さらに、グラフィック・ユーザ・インターフェースを利用して新しい、または修正されたプログラムを組み立てるコンピュータシステムを提供することができる。また、業務規則の変化を時間とともに追跡可能で、所定の時間に処理される取引に適切な業務規則が適用され得るシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明によるコンピュータシステムを会計システムに適用する場合の勘定ツリーの実例を示す図。
【図２】図１に示す勘定ツリー・システム用の取引例を示す図。
【図３】引取マッピングの実例を示す図。
【図４】本発明の実施形態によりグラフィック・ユーザ・インターフェースを用いるプロセス・ツリーを示す図。
【図５】本発明の実施形態によりグラフィック・ユーザ・インターフェースを用いるプロセス・ツリーを示す図。
【図６】本発明の実施形態によりグラフィック・ユーザ・インターフェースを用いるプロセス・ツリーを示す図。
【図７】本発明の実施形態によりグラフィック・ユーザ・インターフェースを用いるプロセス・ツリーを示す図。
【図８】本発明の実施形態によりグラフィック・ユーザ・インターフェースを用いるプロセス・ツリーを示す図。
【図９】図４〜図９に示すプロセス・ツリーによる取引の処理を示す図。
【図１０】本発明の実施形態の構造を示す機能ブロック図。
【図１１】変換部品の実例を示す図。
【図１２】本発明の実施形態によるグラフィック・ユーザ・インターフェースを使用する、図１１の変換部品の作成を示す図。
【図１３】本発明の実施形態によるグラフィック・ユーザ・インターフェースを使用する、図１１の変換部品の作成を示す図。
【図１４】本発明の実施形態によるグラフィック・ユーザ・インターフェースを使用する、図１１の変換部品の作成を示す図。
【図１５】業務規則変更の一例を示す図。
【図１６】グラフィック・ユーザ・インターフェースを使用した業務規則の変更の有効化を示す図。
【図１７】グラフィック・ユーザ・インターフェースを使用した業務規則の変更の有効化を示す図。
【図１８】グラフィック・ユーザ・インターフェースを使用した業務規則の変更の有効化を示す図。
【図１９】グラフィック・ユーザ・インターフェースを使用した業務規則の変更の有効化を示す図。
【図２０】オブジェクト指向プログラミング技術を使用して業務規則の変化を追跡する一つの方法を示す図。
【図２１】業務規則を変更する別の例を示す図。
【図２２】オブジェクト指向プログラミング技術を使用して図２１に示す例の業務規則変化を追跡する方法を示す図。
【図２３】業務規則の変化を実施する本発明の実施形態の構造を示す部分機能ブロック図である。
【図１】
0003592944.tif 000004
【図２】
0003592944.tif 000005
【図３】
0003592944.tif 000006
【図４】
0003592944.tif 000007
【図５】
0003592944.tif 000008
【図６】
0003592944.tif 000009
【図７】
0003592944.tif 000010
【図８】
0003592944.tif 000011
【図９】
0003592944.tif 000012
【図１０】
0003592944.tif 000013
【図１１】
0003592944.tif 000014
【図１２】
0003592944.tif 000015
【図１３】
0003592944.tif 000016
【図１４】
0003592944.tif 000017
【図１５】
0003592944.tif 000018
【図１６】
0003592944.tif 000019
【図１７】
0003592944.tif 000020
【図１８】
0003592944.tif 000021
【図１９】
0003592944.tif 000022
【図２０】
0003592944.tif 000023
【図２１】
0003592944.tif 000024
【図２２】
0003592944.tif 000025
【図２３】
0003592944.tif 000026