(57)【要約】【課題】画面遷移を伴うアプリケーションシステムを開発するたびに新たに開発する必要がない画面遷移プログラムを提供する。【解決手段】画面遷移プログラムは、画面遷移定義ファイルにおいて指定された初期画面の画面ＩＤを前記スタックに積むステップＳ１と、スタックの最上位の位置にある画面ＩＤを取得するステップＳ２と、ステップＳ２において取得された画面ＩＤに対応する画面内の処理を実行するステップＳ３と、ステップＳ３において画面内の処理を実行した結果としてスタック操作を取得し、取得されたスタック操作をスタックに対して実行するステップＳ４と、スタックが空状態になるまで、ステップＳ２〜Ｓ４を繰り返すステップＳ５とを包含する。【選択図】　図６
2004078264.tif 000002
【特許請求の範囲】
【請求項１】
画面遷移処理をコンピュータに実行させる画面遷移プログラムであって、
前記コンピュータは、複数の画面と前記複数の画面のそれぞれに対応する少なくとも１つのスタック操作とを定義する画面遷移定義ファイルを格納する格納部と、前記遷移定義ファイルを参照しながら前記画面遷移プログラムを実行する処理部と、前記複数の画面に対応する複数の画面ＩＤを管理するために使用されるスタックとを含み、
前記画面遷移プログラムは、
（ａ）前記画面遷移定義ファイルにおいて指定された初期画面の画面ＩＤを前記スタックに積むステップと、
（ｂ）前記スタックの最上位の位置にある画面ＩＤを取得するステップと、
（ｃ）前記ステップ（ｂ）において取得された前記画面ＩＤに対応する画面内の処理を実行するステップと、
（ｄ）前記ステップ（ｃ）において前記画面内の処理を実行した結果としてスタック操作を取得し、前記取得されたスタック操作を前記スタックに対して実行するステップと、
（ｅ）前記スタックが空状態になるまで、前記ステップ（ｂ）〜（ｄ）を繰り返すステップと
を包含する、画面遷移プログラム。
【請求項２】
前記画面遷移定義ファイルは、階層型ツリーの形式で表現されており、
前記ステップ（ｃ）は、
前記画面ＩＤをキー項目として含むレコードを生成するステップと、
前記キー項目に対応するノードを前記階層型ツリーの中から探索するステップと、
前記探索されたノードに対応する画面内の処理を実行するステップと
を包含する、請求項１に記載の画面遷移プログラム。
【請求項３】
前記ステップ（ｄ）は、
前記画面ＩＤを第１のキー項目として含み、かつ、前記スタック操作を第２のキー項目として含むレコードを生成するステップと、
前記第１のキー項目と前記第２のキー項目とに対応するノードを前記階層型ツリーの中から探索するステップと、
前記探索されたノードに対応するスタック操作を前記スタックに対して実行するステップと
を包含する、請求項２に記載の画面遷移プログラム。
【請求項４】
前記階層型ツリーは、現在のノードより１つ下位の階層にある１つのノードを指すポインタと現在のノードより１つ上位の階層にある１つのノードを指すポインタと現在のノードと同一の階層にある他の１つのノードを指すポインタとを含むテーブルによって表現される、請求項２に記載の画面遷移プログラム。
【請求項５】
前記格納部は、複数の画面内状態遷移定義ファイルをさらに格納し、前記複数の画面内状態遷移定義ファイルのそれぞれは、前記複数の画面のうち対応する１つの画面内で遷移可能な複数の状態を定義し、前記処理部は、前記複数の画面内状態遷移定義ファイルのうち選択された１つの画面内状態遷移定義ファイルを参照しながら、前記ステップ（ｃ）の前記画面内の処理として画面内状態遷移プログラムをさらに実行し、
前記画面内状態遷移プログラムは、
（ｆ）前記複数の画面内状態遷移定義ファイルのうち、前記ステップ（ｂ）において取得された前記画面ＩＤに対応する１つの画面内状態遷移定義ファイルを選択し、前記選択された画面内状態遷移定義ファイルに指定された初期状態を示す状態ＩＤを現在の状態を示す現状態ＩＤとして設定するステップと、
（ｇ）現状態ＩＤを取得するステップと、
（ｈ）前記ステップ（ｂ）において取得された前記画面ＩＤと前記ステップ（ｇ）において取得された前記現状態ＩＤとに少なくとも応答して、前記画面ＩＤに対応する１つの画面内で現在の状態を遷移させる処理を実行するステップと、
（ｉ）前記ステップ（ｈ）において前記処理を実行した結果として、前記現在の状態から遷移すべき次の状態を示す次状態ＩＤを少なくとも取得するステップと、
（ｊ）前記ステップ（ｈ）において前記処理を実行した結果としてスタック操作が取得されたか否かを判定し、前記スタック操作が取得された場合には、前記画面遷移プログラムに復帰し、前記スタック操作が取得されなかった場合には、前記次状態ＩＤを前記現状態ＩＤとして設定した後に、前記ステップ（ｇ）〜（ｉ）を繰り返すステップと
を包含する、請求項１に記載の画面遷移プログラム。
【請求項６】
前記選択された画面内状態遷移定義ファイルは、階層型ツリーの形式で表現されており、
前記ステップ（ｈ）は、
前記画面ＩＤを第１のキー項目として含み、かつ、前記現状態ＩＤを第２のキー項目として含むレコードを生成するステップと、
前記第１のキー項目と前記第２のキー項目とに対応するノードを前記階層型ツリーの中から探索するステップと、
前記探索されたノードに対応する処理を実行するステップと
を包含する、請求項５に記載の画面遷移プログラム。
【請求項７】
前記階層型ツリーは、現在のノードより１つ下位の階層にある１つのノードを指すポインタと現在のノードより１つ上位の階層にある１つのノードを指すポインタと現在のノードと同一の階層にある他の１つのノードを指すポインタとを含むテーブルによって表現される、請求項６に記載の画面遷移プログラム。
【請求項８】
複数の画面と前記複数の画面のそれぞれに対応する少なくとも１つのスタック操作とを定義する画面遷移定義ファイルを格納する格納部と、
前記遷移定義ファイルを参照しながら画面遷移プログラムを実行する処理部と、
前記複数の画面に対応する複数の画面ＩＤを管理するために使用されるスタックと
を備えたインタプリタ装置であって、
前記画面遷移プログラムは、
（ａ）前記画面遷移定義ファイルにおいて指定された初期画面の画面ＩＤを前記スタックに積むステップと、
（ｂ）前記スタックの最上位の位置にある画面ＩＤを取得するステップと、
（ｃ）前記ステップ（ｂ）において取得された前記画面ＩＤに対応する画面内の処理を実行するステップと、
（ｄ）前記ステップ（ｃ）において前記画面内の処理を実行した結果としてスタック操作を取得し、前記取得されたスタック操作を前記スタックに対して実行するステップと、
（ｅ）前記スタックが空状態になるまで、前記ステップ（ｂ）〜（ｄ）を繰り返すステップと
を包含する、インタプリタ装置。
【請求項９】
前記格納部は、複数の画面内状態遷移定義ファイルをさらに格納し、前記複数の画面内状態遷移定義ファイルのそれぞれは、前記複数の画面のうち対応する１つの画面内で遷移可能な複数の状態を定義し、
前記処理部は、前記複数の画面内状態遷移定義ファイルのうち選択された１つの画面内状態遷移定義ファイルを参照しながら、前記ステップ（ｃ）の前記画面内の処理として画面内状態遷移プログラムをさらに実行し、
前記画面内状態遷移プログラムは、
（ｆ）前記複数の画面内状態遷移定義ファイルのうち、前記ステップ（ｂ）において取得された前記画面ＩＤに対応する１つの画面内状態遷移定義ファイルを選択し、前記選択された画面内状態遷移定義ファイルに指定された初期状態を示す状態ＩＤを現在の状態を示す現状態ＩＤとして設定するステップと、
（ｇ）現状態ＩＤを取得するステップと、
（ｈ）前記ステップ（ｂ）において取得された前記画面ＩＤと前記ステップ（ｇ）において取得された前記現状態ＩＤとに少なくとも応答して、前記画面ＩＤに対応する１つの画面内で現在の状態を遷移させる処理を実行するステップと、
（ｉ）前記ステップ（ｈ）において前記処理を実行した結果として、前記現在の状態から遷移すべき次の状態を示す次状態ＩＤを少なくとも取得するステップと、
（ｊ）前記ステップ（ｈ）において前記処理を実行した結果としてスタック操作が取得されたか否かを判定し、前記スタック操作が取得された場合には、前記画面遷移プログラムに復帰し、前記スタック操作が取得されなかった場合には、前記次状態ＩＤを前記現状態ＩＤとして設定した後に、前記ステップ（ｇ）〜（ｉ）を繰り返すステップと
を包含する、請求項８に記載のインタプリタ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画面遷移プログラムおよびインタプリタ装置に関する。
【０００２】
【従来の技術】
従来、画面遷移を伴うアプリケーションシステムは、画面遷移の仕様に基づいて個々に開発されてきた。
【０００３】
【発明が解決しようとする課題】
従来、アプリケーションシステムを開発するたびに画面遷移プログラムを新たに開発する必要があったため、アプリケーションシステムの開発に多大な労力およびコストがかかっていた。また、画面遷移の仕様は開発過程において変更される可能性が高く、そのことがアプリケーションシステムの納品の遅れ、品質の低下を招く原因となっていた。
【０００４】
本発明は、画面遷移を伴うアプリケーションシステムを開発するたびに新たに開発する必要がない画面遷移プログラムおよびそれを実行するためのインタプリタ装置を提供することを目的とする。
【０００５】
また、本発明は、画面遷移を伴うアプリケーションシステムの開発期間を画期的に短縮するとともに、画面遷移を伴うアプリケーションシステムの品質を画期的に向上させることが可能な画面遷移プログラムおよびそれを実行するためのインタプリタ装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の画面遷移プログラムは、画面遷移処理をコンピュータに実行させる画面遷移プログラムであって、前記コンピュータは、複数の画面と前記複数の画面のそれぞれに対応する少なくとも１つのスタック操作とを定義する画面遷移定義ファイルを格納する格納部と、前記遷移定義ファイルを参照しながら前記画面遷移プログラムを実行する処理部と、前記複数の画面に対応する複数の画面ＩＤを管理するために使用されるスタックとを含み、前記画面遷移プログラムは、（ａ）前記画面遷移定義ファイルにおいて指定された初期画面の画面ＩＤを前記スタックに積むステップと、（ｂ）前記スタックの最上位の位置にある画面ＩＤを取得するステップと、（ｃ）前記ステップ（ｂ）において取得された前記画面ＩＤに対応する画面内の処理を実行するステップと、（ｄ）前記ステップ（ｃ）において前記画面内の処理を実行した結果としてスタック操作を取得し、前記取得されたスタック操作を前記スタックに対して実行するステップと、（ｅ）前記スタックが空状態になるまで、前記ステップ（ｂ）〜（ｄ）を繰り返すステップとを包含し、これにより、上記目的が達成される。
【０００７】
前記画面遷移定義ファイルは、階層型ツリーの形式で表現されており、前記ステップ（ｃ）は、前記画面ＩＤをキー項目として含むレコードを生成するステップと、前記キー項目に対応するノードを前記階層型ツリーの中から探索するステップと、前記探索されたノードに対応する画面内の処理を実行するステップとを包含してもよい。
【０００８】
前記ステップ（ｄ）は、前記画面ＩＤを第１のキー項目として含み、かつ、前記スタック操作を第２のキー項目として含むレコードを生成するステップと、前記第１のキー項目と前記第２のキー項目とに対応するノードを前記階層型ツリーの中から探索するステップと、前記探索されたノードに対応するスタック操作を前記スタックに対して実行するステップとを包含してもよい。
【０００９】
前記階層型ツリーは、現在のノードより１つ下位の階層にある１つのノードを指すポインタと現在のノードより１つ上位の階層にある１つのノードを指すポインタと現在のノードと同一の階層にある他の１つのノードを指すポインタとを含むテーブルによって表現されてもよい。
【００１０】
前記格納部は、複数の画面内状態遷移定義ファイルをさらに格納し、前記複数の画面内状態遷移定義ファイルのそれぞれは、前記複数の画面のうち対応する１つの画面内で遷移可能な複数の状態を定義し、前記処理部は、前記複数の画面内状態遷移定義ファイルのうち選択された１つの画面内状態遷移定義ファイルを参照しながら、前記ステップ（ｃ）の前記画面内の処理として画面内状態遷移プログラムをさらに実行し、前記画面内状態遷移プログラムは、（ｆ）前記複数の画面内状態遷移定義ファイルのうち、前記ステップ（ｂ）において取得された前記画面ＩＤに対応する１つの画面内状態遷移定義ファイルを選択し、前記選択された画面内状態遷移定義ファイルに指定された初期状態を示す状態ＩＤを現在の状態を示す現状態ＩＤとして設定するステップと、（ｇ）現状態ＩＤを取得するステップと、（ｈ）前記ステップ（ｂ）において取得された前記画面ＩＤと前記ステップ（ｇ）において取得された前記現状態ＩＤとに少なくとも応答して、前記画面ＩＤに対応する１つの画面内で現在の状態を遷移させる処理を実行するステップと、（ｉ）前記ステップ（ｈ）において前記処理を実行した結果として、前記現在の状態から遷移すべき次の状態を示す次状態ＩＤを少なくとも取得するステップと、（ｊ）前記ステップ（ｈ）において前記処理を実行した結果としてスタック操作が取得されたか否かを判定し、前記スタック操作が取得された場合には、前記画面遷移プログラムに復帰し、前記スタック操作が取得されなかった場合には、前記次状態ＩＤを前記現状態ＩＤとして設定した後に、前記ステップ（ｇ）〜（ｉ）を繰り返すステップとを包含してもよい。
【００１１】
前記選択された画面内状態遷移定義ファイルは、階層型ツリーの形式で表現されており、前記ステップ（ｈ）は、前記画面ＩＤを第１のキー項目として含み、かつ、前記現状態ＩＤを第２のキー項目として含むレコードを生成するステップと、前記第１のキー項目と前記第２のキー項目とに対応するノードを前記階層型ツリーの中から探索するステップと、前記探索されたノードに対応する処理を実行するステップとを包含してもよい。
【００１２】
前記階層型ツリーは、現在のノードより１つ下位の階層にある１つのノードを指すポインタと現在のノードより１つ上位の階層にある１つのノードを指すポインタと現在のノードと同一の階層にある他の１つのノードを指すポインタとを含むテーブルによって表現されてもよい。
【００１３】
本発明のインタプリタ装置は、複数の画面と前記複数の画面のそれぞれに対応する少なくとも１つのスタック操作とを定義する画面遷移定義ファイルを格納する格納部と、前記遷移定義ファイルを参照しながら画面遷移プログラムを実行する処理部と、前記複数の画面に対応する複数の画面ＩＤを管理するために使用されるスタックとを備えたインタプリタ装置であって、前記画面遷移プログラムは、（ａ）前記画面遷移定義ファイルにおいて指定された初期画面の画面ＩＤを前記スタックに積むステップと、（ｂ）前記スタックの最上位の位置にある画面ＩＤを取得するステップと、（ｃ）前記ステップ（ｂ）において取得された前記画面ＩＤに対応する画面内の処理を実行するステップと、（ｄ）前記ステップ（ｃ）において前記画面内の処理を実行した結果としてスタック操作を取得し、前記取得されたスタック操作を前記スタックに対して実行するステップと、（ｅ）前記スタックが空状態になるまで、前記ステップ（ｂ）〜（ｄ）を繰り返すステップとを包含し、これにより、上記目的が達成される。
【００１４】
前記格納部は、複数の画面内状態遷移定義ファイルをさらに格納し、前記複数の画面内状態遷移定義ファイルのそれぞれは、前記複数の画面のうち対応する１つの画面内で遷移可能な複数の状態を定義し、前記処理部は、前記複数の画面内状態遷移定義ファイルのうち選択された１つの画面内状態遷移定義ファイルを参照しながら、前記ステップ（ｃ）の前記画面内の処理として画面内状態遷移プログラムをさらに実行し、前記画面内状態遷移プログラムは、（ｆ）前記複数の画面内状態遷移定義ファイルのうち、前記ステップ（ｂ）において取得された前記画面ＩＤに対応する１つの画面内状態遷移定義ファイルを選択し、前記選択された画面内状態遷移定義ファイルに指定された初期状態を示す状態ＩＤを現在の状態を示す現状態ＩＤとして設定するステップと、（ｇ）現状態ＩＤを取得するステップと、（ｈ）前記ステップ（ｂ）において取得された前記画面ＩＤと前記ステップ（ｇ）において取得された前記現状態ＩＤとに少なくとも応答して、前記画面ＩＤに対応する１つの画面内で現在の状態を遷移させる処理を実行するステップと、（ｉ）前記ステップ（ｈ）において前記処理を実行した結果として、前記現在の状態から遷移すべき次の状態を示す次状態ＩＤを少なくとも取得するステップと、（ｊ）前記ステップ（ｈ）において前記処理を実行した結果としてスタック操作が取得されたか否かを判定し、前記スタック操作が取得された場合には、前記画面遷移プログラムに復帰し、前記スタック操作が取得されなかった場合には、前記次状態ＩＤを前記現状態ＩＤとして設定した後に、前記ステップ（ｇ）〜（ｉ）を繰り返すステップとを包含してもよい。
【００１５】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。
１．コンピュータシステムの構成
図１は、本発明の実施の形態のコンピュータシステム１の構成の一例を示す。
【００１６】
コンピュータシステム１は、クライアントコンピュータ１０と、サーバコンピュータ２０とを含む。クライアントコンピュータ１０とサーバコンピュータ２０とは、ネットワーク３０を介して接続されている。
【００１７】
ネットワーク３０は、任意のタイプのネットワークであり得る。ネットワーク３０は、例えば、インターネットであり得る。
【００１８】
クライアントコンピュータ１０は、ＣＰＵ１１と、メモリ１２と、入力部１３と、表示部１４と、ネットワークインタフェース部１５とを含む。これらの構成要素１１〜１５は、例えば、内部バス１６を介して相互に接続されている。
【００１９】
メモリ１２には、入力部１３からの入力を受け付ける入力プログラムや、処理結果を表示部１４に表示する表示プログラムが格納されている。
【００２０】
ＣＰＵ１１は、メモリ１２に格納されている入力プログラムや表示プログラムを実行する。入力プログラムを実行することにより、入力部１３から入力されたデータをネットワークインタフェース部１５、ネットワーク３０を介してサーバコンピュータ２０に送信することが可能になる。また、表示プログラムを実行することにより、サーバコンピュータ２０から送信されてくる処理結果に基づいて表示部１４に表示されている画面を他の画面に遷移させたり、表示部１４に表示されている画面の一部を変更したりすることが可能になる。
【００２１】
入力部１３は、ユーザからの入力をクラアントコンピュータ１０に入力することが可能なように構成されている。入力部１３は、例えば、キーボードやマウスである。
【００２２】
表示部１４は、クライアントコンピュータ１０および／またはサーバコンピュータ２０による処理結果をユーザに提示することが可能なように構成されている。表示部１４は、例えば、ＣＲＴディスプレイやＬＣＤディスプレイである。
【００２３】
ネットワークインタフェース部１５は、ネットワーク３０を介してサーバコンピュータ２０と通信するために必要なデータフォーマットの変換やプロトコルの変換などの処理を行う。
【００２４】
サーバコンピュータ２０は、ＣＰＵ（処理部）２１と、メモリ（格納部）２２と、ネットワークインタフェース部２３とを含む。これらの構成要素２１〜２３は、例えば、内部バス２４を介して相互に接続されている。
【００２５】
メモリ２２には、画面遷移処理を実現するプログラム（以下、画面遷移プログラムという）と、複数の画面とその複数の画面のそれぞれに対応する少なくとも１つのスタック操作とを定義する画面遷移定義ファイルとが格納されている。
【００２６】
画面遷移プログラムと画面遷移定義ファイルとは、サーバコンピュータ２０の出荷前にメモリ２２に格納されてもよいし、サーバコンピュータ２０の出荷後にメモリ２２に格納されてもよい。例えば、画面遷移プログラムと画面遷移定義ファイルとが記録媒体に記録されている場合には、その画面遷移プログラムと画面遷移定義ファイルとは、入力装置（例えば、ディスクドライブ）を介してメモリ２２にロードされ得る。なお、画面遷移プログラムと画面遷移定義ファイルとは同一の記録媒体に記録されていてもよいし、別々の記録媒体に記録されていてもよい。記録媒体は、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの任意のタイプのコンピュータ読み取り可能な記録媒体であり得る。
【００２７】
なお、画面遷移プログラムと画面遷移定義ファイルとがウェブサイト上で管理されている場合には、電子配信技術を利用して、画面遷移プログラムまたは画面遷移定義ファイルをメモリ２２にロードするようにしてもよい。
【００２８】
ＣＰＵ２１は、メモリ２２に格納されている画面遷移定義ファイルを参照しながら、メモリ２２に格納されている画面遷移プログラムを実行する。画面遷移プログラムを実行することにより、クライアントコンピュータ１０から送信されてくるデータに基づいて画面遷移処理を行い、その画面遷移処理の結果をクライアントコンピュータ１０に送信することが可能になる。
【００２９】
ＣＰＵ２１が画面遷移定義ファイルを参照しながら画面遷移プログラムを実行することによって、サーバコンピュータ２０は、画面遷移定義ファイルを解釈実行するインタプリタ装置として機能する。
【００３０】
ネットワークインタフェース部２３は、ネットワーク３０を介してクライアントコンピュータ１０と通信するために必要なデータフォーマットの変換やプロトコルの変換などの処理を行う。
【００３１】
このようにして、クライアントコンピュータ１０とサーバコンピュータ２０とが協働することにより、クライアント−サーバ型のアプリケーションプログラムが実行される。
２．画面遷移を伴うアプリケーションシステムの開発手順
以下、画面遷移を伴うアプリケーションシステムの例として、請求書入力／入金伝票入力システムを例にとり、請求書入力／入金伝票入力システムの開発手順を説明する。その開発手順は以下のとおりである。
（１）画面遷移の設計
（２）画面遷移定義ファイルの作成
（３）画面遷移定義ファイルのインストール
（４）画面遷移プログラムの実行
なお、請求書入力／入金伝票入力システムの構成は、図１に示されるコンピュータシステム１の構成と同一であるとする。
２．１　画面遷移の設計
図２は、請求書入力／入金伝票入力システムにおける画面遷移の一例を示す。
【００３２】
図２に示される例では、ＭＥＮＵ画面（ｎｅｎｕ）２１０、請求書番号入力画面（ｓｅｉｋｙｕＮｏ）２２０、請求書入力画面（ｓｅｉｋｙｕＭａｉｎ）２３０、入金伝票番号入力画面（ｎｙｕｋｉｎＮｏ）２４０、入金伝票入力画面（ｎｙｕｋｉｎＭａｉｎ）２５０、請求書一覧画面（ｓｅｉｋｙｕＬｉｓｔ）２６０という６個の画面が定義されている。
【００３３】
ＭＥＮＵ画面２１０には、例えば、「請求書」ボタンと「入金伝票」ボタンと「終了」ボタンとが設けられている。「請求書」ボタンを押下することにより、ＭＥＮＵ画面２１０は請求書番号入力画面２２０に遷移する。「入金伝票」ボタンを押下することにより、ＭＥＮＵ画面２１０は入金伝票番号入力画面２４０に遷移する。「終了」ボタンを押下することにより、ログアウトする。
【００３４】
請求書番号入力画面２２０には、例えば、請求書番号を入力するための請求書番号入力領域と「実行」ボタンと「一覧」ボタンと「戻る」ボタンとが設けられている。請求書番号入力領域に請求書番号を入力した後に「実行」ボタンを押下することにより、請求書番号入力画面２２０は請求書入力画面２３０に遷移する。「一覧」ボタンを押下することにより、請求書番号入力画面２２０は請求書一覧画面２６０に遷移する。「戻る」ボタンを押下することにより、請求書番号入力画面２２０はＭＥＮＵ画面２１０に遷移する。
【００３５】
請求書入力画面２３０には、例えば、請求書の明細（例えば、得意先名称、請求金額、請求日、入金予定日、商品名、単価、数量、金額など）を入力するための請求書明細入力領域と「実行」ボタンと「戻る」ボタンとが設けられている。請求書明細入力領域に請求書の明細を入力した後に「実行」ボタンを押下することにより、請求書の明細がシステムに入力される。「戻る」ボタンを押下することにより、請求書入力画面２３０は、請求書番号入力画面２２０または請求書一覧画面２６０の一方（遷移元の画面）に遷移する。
【００３６】
請求書一覧画面２６０には、例えば、請求書の一覧を表示するための領域と「請求書」ボタンと「入金伝票」ボタンと「戻る」ボタンとが設けられている。「請求書」ボタンを押下することにより、請求書一覧画面２６０は請求書入力画面２３０に遷移する。「入金伝票」ボタンを押下することにより、請求書一覧画面２６０は入金伝票入力画面２５０に遷移する。「戻る」ボタンを押下することにより、請求書一覧画面２６０は請求書番号入力画面２２０に遷移する。
【００３７】
入金伝票番号入力画面２４０には、例えば、入金伝票番号を入力するための入金伝票番号入力領域と「実行」ボタンと「戻る」ボタンとが設けられている。入金伝票番号入力領域に入金伝票番号を入力した後に「実行」ボタンを押下することにより、入金伝票番号入力画面２４０は入金伝票入力画面２５０に遷移する。「戻る」ボタンを押下することにより、入金伝票番号入力画面２４０はＭＥＮＵ画面２１０に遷移する。
【００３８】
入金伝票入力画面２５０には、例えば、入金伝票の明細（例えば、請求書番号、入金額、入金日、入金種別、手形期日など）を入力するための入金伝票明細入力領域と「実行」ボタンと「戻る」ボタンとが設けられている。入金伝票明細入力領域に入金伝票の明細を入力した後に「実行」ボタンを押下することにより、入金伝票の明細がシステムに入力される。「戻る」ボタンを押下することにより、入金伝票入力画面２５０は入金伝票番号入力画面２４０に遷移する。
【００３９】
ある画面から他の画面への遷移は、スタック操作に対応づけて定義される。例えば、ＭＥＮＵ画面２１０から請求書番号入力画面２２０への遷移は、”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”というスタック操作に対応づけられており、請求書番号入力画面２２０からＭＥＮＵ画面２１０への遷移は、”ｐｏｐ”というスタック操作に対応づけられており、ＭＥＮＵ画面２１０からＭＥＮＵ画面２１０への遷移は、”ｐｅｅｋ”というスタック操作に対応づけられている。
【００４０】
このように、ある画面から他の画面への遷移とスタック操作とを対応づけることにおり、どの画面からどの画面に遷移可能であるかを定義することが可能になる。
【００４１】
ここで、スタック操作とは、スタックに対する操作をいう。
【００４２】
図３は、スタックを模式的に示したものである。スタックは、Ｎ個の配列要素３１０１〜３１０Ｎを有する１次元の配列３１０と、次にアクセスすべき配列要素３１０ｉの位置を示すインデクス変数３２０とを用いて表現される。ここで、ｉ＝１、２、．．．、Ｎである。配列要素３１０ｉの値とインデクス変数３２０の値とは、スタック操作に応じて更新される。インデクス変数３２０の値をｉｎｄｅｘとすると、ｉｎｄｅｘ＝１のときスタックは初期状態（空き状態）である。
【００４３】
スタック操作の例としては、例えば、”ｐｕｓｈ　Ｘ”、”ｐｏｐ”、”ｐｏｐＡｌｌ”、”ｐｅｅｋ”が挙げられる。
【００４４】
”ｐｕｓｈ　Ｘ”とは、ｉｎｄｅｘによって指されている位置にある配列要素にＸを代入し、ｉｎｄｅｘを１つだけ増加させること（すなわち、スタックにＸを積むこと）をいう。ここで、Ｘは任意のシンボルである。”ｐｏｐ”とは、ｉｎｄｅｘを１つだけ減少させることをいう。”ｐｏｐＡｌｌ”とは、ｉｎｄｅｘを１にリセットすること（すなわち、スタックを空き状態にすること）をいう。”ｐｅｅｋ”とは、（ｉｎｄｅｘ−１）によって指されている位置にある配列要素の値を参照すること（すなわち、スタックの最上位の位置にある配列要素の値を参照すること）をいう。
【００４５】
上述したスタックは、例えば、プログラムによって実現され得る。例えば、オブジェクト指向のプログラミング技術では、スタックとそれに対するスタック操作とが１つのオブジェクトとして提供され得ることがよく知られている。
【００４６】
図２に示されるような画面遷移は、例えば、公知のペトリネットを用いて好適に設計され得る。
【００４７】
図４は、図２に示される画面遷移をペトリネットで表現したものである。図４の記法によっても、ある画面から他の画面への遷移がスタック操作に対応づけられていることが分かる。
２．２　画面遷移定義ファイルの作成
画面遷移定義ファイルは、複数の画面と、その複数の画面のそれぞれに対応する少なくとも１つのスタック操作とを定義する。
【００４８】
図５Ａは、図２に示される画面遷移を実現するように作成された画面遷移定義ファイルの一例を示す。
【００４９】
図５Ａに示される例では、画面遷移定義ファイルは、”ｒｏｏｔ”ノード５１１を最上位のノードとする階層型ツリーの形式で表現されている。
【００５０】
請求書入力／入金伝票入力システムにおける６個の画面は、それぞれ、”ｒｏｏｔ”ノード５１１より１つ下位の階層にある６個のノード５２１〜５２６（すなわち、”ｎｅｎｕ”ノード５２１、”ｓｅｉｋｙｕＮｏ”ノード５２２、”ｓｅｉｋｙｕＭａｉｎ”ノード５２３、”ｎｙｕｋｉｎＮｏ”ノード５２４、”ｎｙｕｋｉｎＭａｉｎ”ノード５２５、”ｓｅｉｋｙｕＬｉｓｔ”ノード５２６）として表現されている。
【００５１】
各画面に対応するスタック操作は、各画面に対応するノードより１つ下位の階層にあるノードとして表現されている。例えば、ＭＥＮＵ画面２１０（図２）に対応する４つのスタック操作は、ＭＥＮＵ画面２１０に対応する”ｍｅｎｕ”ノード５２１より１つ下位の階層にある４個のノード５３１〜５３４（すなわち、”ｐｅｅｋ”ノード５３１、”ｐｏｐ”ノード５３２、ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”ノード５３３、”ｐｕｓｈ　ｎｙｕｋｉｎＮｏ”ノード５３４）として表現されている。
【００５２】
なお、階層型ツリーとしては、複数の階層を有する任意のタイプのツリーを使用することができる。階層型ツリーは、例えば、バイナリー・サーチ・ツリーであり得る。
【００５３】
図５Ｂは、図５Ａに示される階層型ツリーをテーブル形式で表現した例を示す。
【００５４】
図５Ｂに示される例では、階層型ツリーは、欄５４１〜欄５４５を有するテーブルによって表現されている。
【００５５】
欄５４１は、ノードのアドレスを示す。
【００５６】
欄５４２は、ノードの名称を示す。
【００５７】
欄５４３は、ノードの階層（レベル）を示す。
【００５８】
欄５４４は、子供ノード（すなわち、現在のノードより１つ下位の階層にある１つのノード）を指すポインタを示す。
【００５９】
欄５４５は、親ノード（すなわち、現在のノードより１つ上位の階層にある１つのノード）を指すポインタを示す。
【００６０】
欄５４６は、弟／妹ノード（すなわち、現在のノードと同一の階層にある他の１つのノード）を指すポインタを示す。
【００６１】
ノード間のリンク（Ｌ　Ｌｉｎｋ、Ｃ　ｌｉｎｋ、Ｒ　Ｌｉｎｋ）は、欄５４４〜５４６に記載されるポインタによって実現される。
【００６２】
図５Ｃは、画面遷移定義ファイルをＸＭＬ言語の形式で表現した例を示す。図５Ａに示される画面遷移定義ファイルと図５Ｃに示される画面遷移定義ファイルとは等価である。階層型ツリーのデータとＸＭＬ言語とは、例えば、カスケードデータを仲介して、双方向に変換可能である。このような変換技術は周知であるのでここでは詳しい説明を省略する。
【００６３】
なお、図５Ａに示される画面遷移定義ファイルまたは図５Ｃに示される画面遷移定義ファイルを図４に示されるペトリネット形式の画面遷移から自動的に作成するようにしてもよい。
２．３　画面遷移定義ファイルのインストール
上記２．２で作成された画面遷移定義ファイルは、サーバコンピュータ２０にインストールされる。画面遷移定義ファイルをサーバコンピュータ２０にインストールする方法としては任意の方法を使用することができる。例えば、画面遷移定義ファイルがディスクに記録されている場合には、上述したように、ディスクドライブがディスクに記録されている画面遷移定義ファイルを読み出し、読み出された画面遷移定義ファイルをメモリ２２に格納することにより、画面遷移定義ファイルのインストールを完了することができる。
２．４　画面遷移プログラムの実行
ＣＰＵ２１は、上記２．３でメモリ２２にインストールされた画面遷移定義ファイルを参照しながら画面遷移プログラムを実行する。これにより、請求書入力／入金伝票入力システムにおける画面遷移が上記２．１で設計したとおりに実現される。
【００６４】
例えば、請求書入力／入金伝票入力システムにおける画面遷移の仕様を変更する場合には、画面遷移定義ファイルを変更すれば足り、画面遷移プログラムを変更する必要はない。また、請求書入力／入金伝票入力システム以外の画面遷移を伴うアプリケーションシステムを設計、構築する場合でも、そのアプリケーションシステムにおける画面遷移の仕様に適合するように画面遷移定義ファイルを作成すれば足り、画面遷移プログラムを変更する必要はない。
【００６５】
このように、画面遷移プログラムは、画面遷移を伴うすべてのアプリケーションシステムに共通に使用され得る。この意味で、この画面遷移プログラムは、サーバコンピュータ２０を画面遷移定義ファイルを解釈実行するインタプリタ装置として動作させるためのコアプログラムということができる。
【００６６】
画面遷移プログラムを画面遷移を伴うすべてのアプリケーションシステムに共通に使用することにより、画面遷移の仕様に適合するように画面遷移定義ファイルを作成しさえすれば、”プログラムレス”で（すなわち、新規に画面遷移プログラムを作成することなく）画面遷移を伴うアプリケーションシステムを開発することが可能になる。すなわち、画面遷移を伴うアプリケーションシステムを開発するたびに新たに画面遷移プログラムを開発する必要がない。その結果、画面遷移を伴う新たなアプリケーションシステムの開発期間を画期的に短縮することが可能になる。さらに、”プログラムレス”であるからバグをつくりこむ危険性がない。その結果、画面遷移を伴う新たなアプリケーションシステムの品質を画期的に向上させることが可能になる。
３．画面遷移プログラムの手順
図６は、画面遷移プログラムの手順を示す。画面遷移プログラムは、サーバコンピュータ２０のＣＰＵ２１によって実行される。以下、画面遷移プログラムの各ステップを詳細に説明する。
【００６７】
ステップＳ１：画面遷移定義ファイルにおいて指定された初期画面の画面ＩＤがスタックに積まれる。ここで、画面ＩＤとは、画面を識別するための識別子をいう。
【００６８】
ステップＳ２：スタックの最上位の位置にある画面ＩＤが取得される。
【００６９】
ステップＳ３：ステップＳ２において取得された画面ＩＤに対応する画面内の処理が実行される。ここで、画面内の処理とは、１つの画面のみに関連する任意の処理をいう。
【００７０】
ステップＳ４：ステップＳ３において画面内の処理を実行した結果としてスタック操作が取得される。さらに、取得されたスタック操作がスタックに対して実行される。
【００７１】
ステップＳ５：スタックが空き状態か否かが判定される。「Ｙｅｓ」であれば処理は終了する。「Ｎｏ」であれば処理はステップＳ２に戻る。このように、スタックが空き状態になるまで、ステップＳ２〜Ｓ４が繰り返される。
【００７２】
ステップＳ３における画面ＩＤに対応する画面内の処理は、例えば、画面遷移プログラムからサブルーチンをコールすることによって実行される。このようなサブルーチンは、複数の画面ＩＤに対して共通に設計されてもよいし、画面ＩＤごとに別々に設計されてもよい。複数の画面ＩＤに対して共通に設計されたサブルーチンを使用する場合には、例えば、そのサブルーチンをコールする時に画面ＩＤを引数としてそのサブルーチンに渡してやればよい。ステップＳ４におけるスタック操作は、例えば、サブルーチンの戻り値として取得される。
【００７３】
なお、画面遷移定義ファイルが図５Ａに示されるように階層型ツリーの形式で表現されている場合には、ステップＳ２において取得された画面ＩＤをキー項目として含むレコードを生成し、そのレコードのキー項目に対応するノードを階層型ツリーの中から探索し、その探索されたノードに対応する画面内の処理を行うことによってステップＳ３の処理を行うようにしてもよい。
【００７４】
例えば、画面ＩＤが”ｍｅｎｕ”である場合には、第１の項目（キー項目）が”ｍｅｎｕ”であり、第２の項目が＊であるレコードが生成される。ここで、記号＊は値が未定であることを示す。
【００７５】
レコード：（”ｍｅｎｕ”，＊）
レコードのキー項目”ｍｅｎｕ”に対応するノードが階層型ツリーの中から探索される。このような探索は、レコードのキー項目”ｍｅｎｕ”と”ｒｏｏｔ”ノード５１１より１つ下位の階層のノードとを比較することにより行われる。その探索結果として”ｍｅｎｕ”ノード５２１が特定される。その結果、”ｍｅｎｕ”ノードに対応する画面（ＭＥＮＵ画面２１０）内の処理が実行される。
【００７６】
また、画面遷移定義ファイルが図５Ａに示されるように階層型ツリーの形式で表現されている場合には、ステップＳ２において取得された画面ＩＤを第１のキー項目として含み、かつ、ステップＳ４において取得されたスタック操作を第２のキー項目として含むレコードを生成し、そのレコードの第１のキー項目と第２のキー項目とに対応するノードを階層型ツリーの中から探索し、その探索されたノードに対応するスタック操作をスタックに対して実行することにより、ステップＳ４の処理を行うようにしてもよい。
【００７７】
例えば、画面ＩＤが”ｍｅｎｕ”であり、スタック操作が”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”である場合には、第１の項目（キー項目）が”ｍｅｎｕ”であり、第２の項目（キー項目）が”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”であるレコードが生成される。
【００７８】
レコード：（”ｍｅｎｕ”，”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”）
レコードの第１のキー項目”ｍｅｎｕ”と第２のキー項目”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”に対応するノードが階層型ツリーの中から探索される。このような探索は、レコードの第１のキー項目である”ｍｅｎｕ”と”ｒｏｏｔ”ノード５１１より１つ下位の階層のノードとを比較し、レコードの第２のキー項目である”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”と”ｍｅｎｕ”ノード５２１より１つ下位の階層のノードとを比較することにより行われる。その探索結果として”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”ノード５３３が特定される。その結果、”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”ノード５３３に対応するスタック操作”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”がスタックに対して実行される。
【００７９】
以下、図７Ａ〜図７Ｇを参照して、画面遷移とスタックの状態の遷移との関係を説明する。
【００８０】
図７Ａは、ログイン前のスタックの状態（初期状態）を示す。このとき、ｉｎｄｅｘ＝１である。
【００８１】
図７Ｂは、ログイン直後のスタックの状態を示す。画面遷移定義ファイルには、ログイン直後に遷移する画面（初期画面）が指定されている。例えば、図５Ａに示される画面遷移定義ファイルでは、ＭＥＮＵ画面２１０が初期画面として指定されていると仮定する。この場合、ステップＳ１においてＭＥＮＵ画面２１０に対応する画面ＩＤ（例えば、”ｍｅｎｕ”）がスタックに積まれ、ステップＳ２においてＭＥＮＵ画面２１０に対応する画面ＩＤが取得される。その結果、ステップＳ３においてＭＥＮＵ画面２１０内の処理が実行される。
【００８２】
ＭＥＮＵ画面２１０内の処理として「請求書」ボタンの押下というイベントが発生し、その処理の結果として”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”というスタック操作が取得されたと仮定する。この場合、”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”というスタック操作がスタックに対して実行される（ステップＳ４）。その結果、請求書番号入力画面２２０に対応する画面ＩＤ（例えば、”ｓｅｉｋｙｕＮｏ”）がスタックに積まれる。
【００８３】
図７Ｃは、”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”というスタック操作がスタックに対して実行された直後のスタックの状態を示す。
【００８４】
ステップＳ５においてスタックが空き状態であるか否かが判定される。判定結果は「Ｎｏ」であるので処理はステップＳ２に戻り、ステップＳ２において請求書番号入力画面２２０に対応する画面ＩＤが取得される。その結果、ステップＳ３において請求書番号入力画面２２０内の処理が実行される。
【００８５】
請求書番号入力画面２２０内の処理として「実行」ボタンの押下というイベントが発生し、その処理の結果として”ｐｕｓｈ　ｓｅｉｋｙｕＭａｉｎ”というスタック操作が取得されたと仮定する。この場合、”ｐｕｓｈ　ｓｅｉｋｙｕＭａｉｎ”というスタック操作がスタックに対して実行される（ステップＳ４）。その結果、請求書入力画面２３０に対応する画面ＩＤ（例えば、”ｓｅｉｋｙｕＭａｉｎ”）がスタックに積まれる。
【００８６】
図７Ｄは、”ｐｕｓｈ　ｓｅｉｋｙｕＭａｉｎ”というスタック操作がスタックに対して実行された直後のスタックの状態を示す。
【００８７】
ステップＳ５においてスタックが空き状態であるか否かが判定される。判定結果は「Ｎｏ」であるので処理はステップＳ２に戻り、ステップＳ２において請求書入力画面２３０に対応する画面ＩＤが取得される。その結果、ステップＳ３において請求書入力画面２３０内の処理が実行される。
【００８８】
請求書入力画面２３０内の処理として「戻る」ボタンの押下というイベントが発生し、その処理の結果として”ｐｏｐ”というスタック操作が取得されたと仮定する。この場合、”ｐｏｐ”というスタック操作がスタックに対して実行される（ステップＳ４）。その結果、ｉｎｄｅｘが１だけ減少する。
【００８９】
図７Ｅは、”ｐｏｐ”というスタック操作がスタックに対して実行された直後のスタックの状態を示す。
【００９０】
ステップＳ５においてスタックが空き状態であるか否かが判定される。判定結果は「Ｎｏ」であるので処理はステップＳ２に戻り、ステップＳ２において請求書番号入力画面２２０に対応する画面ＩＤが取得される。その結果、ステップＳ３において請求書番号入力画面２２０内の処理が実行される。
【００９１】
請求書番号入力画面２２０内の処理として「戻る」ボタンの押下というイベントが発生し、その処理の結果として”ｐｏｐ”というスタック操作が取得されたと仮定する。この場合、”ｐｏｐ”というスタック操作がスタックに対して実行される（ステップＳ４）。その結果、ｉｎｄｅｘが１だけ減少する。
【００９２】
図７Ｆは、”ｐｏｐ”というスタック操作がスタックに対して実行された直後のスタックの状態を示す。
【００９３】
ステップＳ５においてスタックが空き状態であるか否かが判定される。判定結果は「Ｎｏ」であるので処理はステップＳ２に戻り、ステップＳ２においてＭＥＮＵ画面２１０に対応する画面ＩＤが取得される。その結果、ステップＳ３においてＭＥＮＵ画面２１０内の処理が実行される。
【００９４】
ＭＥＮＵ画面２１０内の処理として「終了」ボタンの押下というイベントが発生し、その処理の結果として”ｐｏｐ”というスタック操作が取得されたと仮定する。この場合、”ｐｏｐ”というスタック操作がスタックに対して実行される（ステップＳ４）。その結果、ｉｎｄｅｘが１だけ減少する。
【００９５】
図７Ｇは、”ｐｏｐ”というスタック操作がスタックに対して実行された直後のスタックの状態を示す。
【００９６】
ステップＳ５においてスタックが空き状態であるか否かが判定される。判定結果は「Ｙｅｓ」であるので処理は終了する（ログアウトする）。
【００９７】
このように、スタックは、複数の画面に対応する複数の画面ＩＤを管理するために使用される。
【００９８】
スタックの最上位の位置にある画面ＩＤを取得すること（ステップＳ２）、その画面ＩＤに対応する画面内の処理を行うこと（ステップＳ３）、その処理の結果として得られるスタック操作をスタックに対して行うこと（ステップＳ４）を繰り返すことにより、ある画面から他の画面への遷移を制御することが可能になる。
４．画面内状態遷移プログラムの手順
以下、図６のステップＳ３において実行される画面内の処理の一例として、画面内状態遷移処理を説明する。
【００９９】
図８は、画面内状態遷移処理を実現するプログラム（以下、画面内状態遷移プログラムという）の手順を示す。画面内状態遷移プログラムは、サーバコンピュータ２０のメモリ２２に格納されており、ＣＰＵ２１によって実行される。以下、画面内状態遷移プログラムの各ステップを詳細に説明する。
【０１００】
ステップＳ３１：複数の画面内状態遷移定義ファイルのうち、ステップＳ２において取得された画面ＩＤに対応する１つの画面内状態遷移定義ファイルが選択され、選択された画面内状態遷移定義ファイルに指定された初期状態を示す状態ＩＤが現在の状態を示す現状態ＩＤとして設定される。
【０１０１】
ステップＳ３２：現状態ＩＤが取得される。ここで、現状態ＩＤの値は次に更新されるまで保持されているものとする。
【０１０２】
ステップＳ３３：ステップＳ２において取得された画面ＩＤとステップＳ３２において取得された現状態ＩＤとに少なくとも応答して、画面ＩＤに対応する１つの画面内で現在の状態を遷移させる処理が実行される。
【０１０３】
ステップＳ３４：ステップＳ３３において処理を実行した結果として、現在の状態から遷移すべき次の状態を示す次状態ＩＤが少なくとも取得される。
【０１０４】
ステップＳ３５：ステップＳ３３において処理を実行した結果として、スタック操作が取得されたか否かが判定される。「Ｙｅｓ」の場合には、処理は終了する（画面遷移プログラムに復帰する）。「Ｎｏ」の場合には、次状態ＩＤを現状態ＩＤとして設定した後に（ステップＳ３６）、処理はステップＳ３２に戻る。その結果、ステップＳ３２〜Ｓ３４が繰り返される。
【０１０５】
図９は、画面内状態遷移の仕様の一例として、ＭＥＮＵ画面２１０内の状態遷移の仕様を示す。図９に示される例では、ＭＥＮＵ画面２１０内の状態遷移は、「現状態」、「発生イベント」、「処理」、「結果（トークン値）」、「次状態」、「スタック操作」によって定義されている。
【０１０６】
例えば、図９に示されるテーブルの第２行は、現状態＝”ｓｔａｔｅ０２”においてイベント＝”ｅｖｅｎｔ０１”が発生した場合には、”ｍｅｔｈｏｄ０２”の処理を行い、現状態を次状態＝”ｓｔａｔｅ０３”に遷移させ、スタック操作”ｐｕｓｈ　ｓｅｉｋｙｕＮｏ”を画面遷移プログラムに返すことを示している。
【０１０７】
画面内状態遷移定義ファイルは、１つの画面内における状態の遷移を定義する。
【０１０８】
図１０Ａは、図９に示されるＭＥＮＵ画面２１０内の状態遷移を実現するように作成された画面内状態遷移定義ファイルの一例を示す。
【０１０９】
図１０Ａに示される例では、画面内状態遷移定義ファイルは、”ｍｅｎｕ”ノード１０１１を最上位のノードとする階層型ツリーの形式で表現されている。
【０１１０】
ＭＥＮＵ画面２１０における４つの状態は、それぞれ、”ｍｅｎｕ”ノード１０１１より１つ下位の階層にある４個のノード（すなわち、”ｓｔａｔｅ０１”ノード１０２１、”ｓｔａｔｅ０２”ノード１０２２、”ｓｔａｔｅ０３”ノード１０２３、”ｓｔａｔｅ０４”ノード１０２４）として表現されている。
【０１１１】
ＭＥＮＵ画面２１０における３つの発生イベントは、それぞれ、”ｓｔａｔｅ０２”ノード１０２２より１つ下位の階層にある３個のノード（すなわち、”ｅｖｅｎｔ０１”ノード１０３１、”ｅｖｅｎｔ０２”ノード１０３２、”ｅｖｅｎｔ０３”ノード１０３３）として表現されている。
【０１１２】
なお、画面内状態遷移定義ファイルが図１０Ａに示されるように階層型ツリーの形式で表現されている場合には、ステップＳ２において取得された画面ＩＤを第１のキー項目として含み、かつ、ステップＳ３２において取得された現状態ＩＤを第２のキー項目として含むレコードを生成し、そのレコードの第１のキー項目と第２のキー項目とに対応するノードを階層型ツリーの中から探索し、その探索されたノードに対応する処理を行うことによってステップＳ３３の処理を行うようにしてもよい。
【０１１３】
例えば、画面ＩＤが”ｍｅｎｕ”であり、現状態ＩＤが”ｓｔａｔｅ０１”ある場合には、第１の項目（キー項目）が”ｍｅｎｕ”であり、第２の項目（キー項目）であり、第３の項目が＊であるレコードが生成される。ここで、記号＊は値が未定であることを示す。
【０１１４】
レコード：（”ｍｅｎｕ”，”ｓｔａｔｅ０１”，＊）
レコードの第１のキー項目”ｍｅｎｕ”と第２のキー項目”ｓｔａｔｅ０１”に対応するノードが階層型ツリーの中から探索される。このような探索は、レコードの第１のキー項目である”ｍｅｎｕ”と”ｍｅｎｕ”ノード１０１１とを比較し、レコードの第２のキー項目である”ｓｔａｔｅ０１”と”ｍｅｎｕ”ノード１０１１より１つ下位の階層のノードとを比較することにより行われる。その探索結果として”ｓｔａｔｅ０１”ノード１０２１が特定される。その結果、”ｓｔａｔｅ０１”に対応する処理（ｍｅｔｈｏｄ０１）が実行される。
【０１１５】
なお、例えば、画面ＩＤが”ｍｅｎｕ”であり、現状態ＩＤが”ｓｔａｔｅ０２”ある場合において、イベント＝ｅｖｅｎｔ０１が発生した場合には、画面ＩＤが”ｍｅｎｕ”であり、現状態ＩＤが”ｓｔａｔｅ０１”ある場合には、第１の項目（キー項目）が”ｍｅｎｕ”であり、第２の項目（キー項目）が”ｓｔａｔｅ０２”であり、第３の項目（キー項目）が”ｅｖｅｎｔ０１”であるレコードを生成し、このレコードを用いて階層型ツリーを探索するようにすればよい。
【０１１６】
図１０Ｂは、画面内状態遷移定義ファイルをＸＭＬ言語の形式で表現した例を示す。図１０Ａに示される画面内状態遷移定義ファイルと図１０Ｂに示される画面内状態遷移定義ファイルとは等価である。階層型ツリーのデータとＸＭＬ言語とは、例えば、カスケードデータを仲介して、双方向に変換可能である。このような変換技術は周知であるのでここでは詳しい説明を省略する。
【０１１７】
なお、図１０Ａに示される画面内状態遷移定義ファイルまたは図１０Ｂに示される画面内状態遷移定義ファイルを図９に示される状態遷移から自動的に作成するようにしてもよい。
【０１１８】
なお、画面遷移を伴うアプリケーションの開発を例にとり説明したが、本発明の適用はこれに限定されない。本発明は、状態遷移を伴うアプリケーションシステム（例えば、通信を伴うアプリケーションシステム）の開発に広く適用することができる。
【０１１９】
【発明の効果】
上述したように、本発明の画面遷移プログラムは、画面遷移を伴うすべてのアプリケーションシステムに共通に使用され得る。この意味で、この画面遷移プログラムは、コンピュータを画面遷移定義ファイルを解釈実行するインタプリタ装置として動作させるためのコアプログラムということができる。
【０１２０】
画面遷移プログラムを画面遷移を伴うすべてのアプリケーションシステムに共通に使用することにより、画面遷移の仕様に適合するように画面遷移定義ファイルを作成しさえすれば、”プログラムレス”で（すなわち、新規に画面遷移プログラムを作成することなく）画面遷移を伴うアプリケーションシステムを開発することが可能になる。すなわち、画面遷移を伴うアプリケーションシステムを開発するたびに新たに画面遷移プログラムを開発する必要がない。その結果、画面遷移を伴う新たなアプリケーションシステムの開発期間を画期的に短縮することが可能になる。さらに、”プログラムレス”であるからバグをつくりこむ危険性がない。その結果、画面遷移を伴う新たなアプリケーションシステムの品質を画期的に向上させることが可能になる。
【図面の簡単な説明】
【図１】本発明の実施の形態のコンピュータシステム１の構成の一例を示す図
【図２】請求書入力／入金伝票入力システムにおける画面遷移の一例を示す図
【図３】スタックを模式的に示す図
【図４】図２に示される画面遷移をペトリネットで表現した図
【図５Ａ】図２に示される画面遷移を実現するように作成された画面遷移定義ファイルの一例を示す図
【図５Ｂ】図５Ａに示される階層型ツリーをテーブル形式で表現した例を示す図
【図５Ｃ】画面遷移定義ファイルをＸＭＬ言語の形式で表現した例を示す図
【図６】画面遷移プログラムの手順を示すフローチャート
【図７Ａ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図７Ｂ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図７Ｃ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図７Ｄ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図７Ｅ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図７Ｆ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図７Ｇ】画面遷移に関連してスタックの状態の遷移を説明するための図
【図８】画面内状態遷移プログラムの手順を示すフローチャート
【図９】画面内状態遷移の仕様の一例として、ＭＥＮＵ画面２１０内の状態遷移の仕様を示す図
【図１０Ａ】図９に示されるＭＥＮＵ画面２１０内の状態遷移を実現するように作成された画面内状態遷移定義ファイルの一例を示す図
【図１０Ｂ】画面内状態遷移定義ファイルをＸＭＬ言語の形式で表現した例を示す図
【符号の説明】
１　　コンピュータシステム
１０　クライアントコンピュータ
２０　サーバコンピュータ
３０　ネットワーク
【図１】
2004078264.tif 000003
【図２】
2004078264.tif 000004
【図３】
2004078264.tif 000005
【図４】
2004078264.tif 000006
【図５Ａ】
2004078264.tif 000007
【図５Ｂ】
2004078264.tif 000008
【図５Ｃ】
2004078264.tif 000009
【図６】
2004078264.tif 000010
【図７Ａ】
2004078264.tif 000011
【図７Ｂ】
2004078264.tif 000012
【図７Ｃ】
2004078264.tif 000013
【図７Ｄ】
2004078264.tif 000014
【図７Ｅ】
2004078264.tif 000015
【図７Ｆ】
2004078264.tif 000016
【図７Ｇ】
2004078264.tif 000017
【図８】
2004078264.tif 000018
【図９】
2004078264.tif 000019
【図１０Ａ】
2004078264.tif 000020
【図１０Ｂ】
2004078264.tif 000021