(57)【要約】【課題】基本動作がほぼ同じで細部の動作が異なる複数のソフトウェアを開発する場合において、他への流用が困難な派生ソフトウェアの発生を防ぎ、ソフトウェアを極力共通化するようにし、開発効率を改善する。【解決手段】ソフトウェア部品を、複数のソフトウェアで共通な部分と異なる部分に分け、共通な部分については改変を許さず、また異なる部分についても開発に支障ない範囲で制約を強くした簡便なプログラム言語で記述する。取り扱うデータの型が異なるだけのソフトウェア部品についても、データフォーマットを分離し任意のデータフォーマットが扱える共通部品とする。【選択図】図１
2005056012.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの処理の流れを記述したプログラム部品である業務ロジックと、記業務ロジックを処理装置にて実行可能なプログラムに変換する変換プログラムと、  前記業務ロジックから呼び出され、複数のソフトウェアで共有可能なプログラム部品である業務部品と、  前記業務ロジックおよび前記業務部品にて使用するデータ形式の定義であるデータフォーマット定義と、  前記業務部品の入出力を前記業務ロジックを実行可能なプログラムに変換したプログラムに適合させる実行プログラムである実行エンジンと、  前記データフォーマット定義を前記業務ロジックを実行可能なプログラムに変換したプログラムおよび前記実行エンジンで使用可能な実行プログラムに変換する変換プログラムを記憶する記憶装置と、
前記業務ロジックと前記業務部品と前記実行エンジンと前記変換プログラムを前記記憶装置から読み出し、実行する処理装置を有することを特徴とするソフトウェアシステム。
【請求項２】
外部装置からの入力データに対応して処理を行い、その処理結果を前記外部装置に出力するソフトウェアシステムにおいて、
業務の実行に必要となる外部データのリストである引数と、  前記業務を実行した結果得られ、かつ外部装置にて必要となるデータである戻り値を持ち、
業務内で実行するために呼び出される別の業務または外部ソフトウェア部品といった処理の集合について、
各処理を一意に識別するための行番号と、
各処理を表す名称と、
各処理を実行するための条件式である実行条件と、
各処理にて入力として必要となるデータである引数と、
各処理を実行した結果得られるデータである戻り値と、
各処理を実行した後に次の遷移先を決定するための条件式である分岐条件と、
前記実行条件を満たさない場合の次の遷移先の行番号と、
前記分岐条件の評価結果として特定の値を取る場合の次の遷移先の行番号を前記特定の値との組として任意の個数分繰り返し記述した遷移先リストと、
前記分岐条件の評価結果が前記遷移先リストに存在しない場合の次の遷移先の行番号と、を前記業務で実行する処理の個数分、１行毎に繰り返し記述した表を、
前記業務名を宣言関数の名称とし、
前記引数を前記宣言関数の引数とし、
前記戻り値を前記宣言関数の参照渡し型引数とした関数宣言文を出力し、
前記各処理について前記宣言関数の内部処理文として、
前記各処理の行番号を遷移先を示すラベルとして出力し、
前記実行条件を判定条件とした条件文である実行条件文を出力し、
前記実行条件文の内部処理文として、
前記各処理を表す名称を呼び出し関数の名称とし、
前記各処理にて入力として必要となるデータである引数を前記呼び出し関数の引数とし、
前記各処理を実行した結果得られるデータである戻り値を前記呼び出し関数の参照渡し型引数とした関数呼び出し文を出力し、
前記分岐条件を判定条件とした条件文である分岐条件文を出力し、
前記分岐条件文の内部処理文として、
前記分岐条件が前記遷移先リストに記載された特定の値を取る場合に前記遷移先リストにおいて前記特定の値に対応する次の遷移先の行番号に処理を移すジャンプ文を前記遷移先リストの要素の個数分だけ繰り返して出力し、
前記分岐条件の評価結果が前記遷移先リストに存在しない場合の次の遷移先の行番号に処理を移すジャンプ文を出力して前記分岐条件文の内部処理文および実行条件文の出力を終了し、
前記実行条件文を処理しない場合の処理文として前記実行条件を満たさない場合の次の遷移先の行番号に処理を移すジャンプ文を出力し、
前記遷移先を示すラベルから前記実行条件文を処理しない場合の処理文までの出力を前記業務で実行する処理の個数分繰り返して出力し、
前記宣言関数の内部処理文の出力を終了することを特徴とするソフトウェアシステム。
【請求項３】
データフォーマット定義を処理装置にて実行可能なプログラムに変換するソフトウェアシステムにおいて、
内部に複数のデータ要素を持つデータフォーマットにおいて、
前記データフォーマットの名称を持ち、
前記複数のデータ要素について、
各データ要素を一意に識別するための要素名と、
各データ要素に格納するデータ型式である要素型と、
を前記データ要素の個数分、１行毎に繰り返し記述した表を、
前記データフォーマットの名称を構造体の名称として出力し、
前記構造体の内部宣言文として、
前記各データ要素に格納するデータ形式である要素型を前記構造体の要素のデータ型とし、
前記各データ要素を一意に識別するための要素名を前記構造体の要素のデータ型に対応する要素の名称として前記複数のデータ要素の個数分繰り返して出力し、
前記構造体の内部処理文の出力を終了することを特徴とするソフトウェアシステム。
【請求項４】
請求項１に記載のソフトウェアシステムにおいて、
前記業務ロジックを処理装置にて実行可能なプログラムに変換する変換プログラムは、業務の実行に必要となる外部データのリストである引数と、  前記業務を実行した結果得られ、かつ外部装置にて必要となるデータである戻り値を持ち、業務内で実行するために呼び出される別の業務または外部ソフトウェア部品といった処理の集合について、各処理を一意に識別するための行番号と、各処理を表す名称と、各処理を実行するための条件式である実行条件と、各処理にて入力として必要となるデータである引数と、各処理を実行した結果得られるデータである戻り値と、各処理を実行した後に次の遷移先を決定するための条件式である分岐条件と、前記実行条件を満たさない場合の次の遷移先の行番号と、前記分岐条件の評価結果として特定の値を取る場合の次の遷移先の行番号を前記特定の値との組として任意の個数分繰り返し記述した遷移先リストと、前記分岐条件の評価結果が前記遷移先リストに存在しない場合の次の遷移先の行番号と、を前記業務で実行する処理の個数分、１行毎に繰り返し記述した表を、前記業務名を宣言関数の名称とし、前記引数を前記宣言関数の引数とし、前記戻り値を前記宣言関数の参照渡し型引数とした関数宣言文を出力し、前記各処理について前記宣言関数の内部処理文として、前記各処理の行番号を遷移先を示すラベルとして出力し、前記実行条件を判定条件とした条件文である実行条件文を出力し、前記実行条件文の内部処理文として、前記各処理を表す名称を呼び出し関数の名称とし、前記各処理にて入力として必要となるデータである引数を前記呼び出し関数の引数とし、前記各処理を実行した結果得られるデータである戻り値を前記呼び出し関数の参照渡し型引数とした関数呼び出し文を出力し、前記分岐条件を判定条件とした条件文である分岐条件文を出力し、前記分岐条件文の内部処理文として、前記分岐条件が前記遷移先リストに記載された特定の値を取る場合に前記遷移先リストにおいて前記特定の値に対応する次の遷移先の行番号に処理を移すジャンプ文を前記遷移先リストの要素の個数分だけ繰り返して出力し、前記分岐条件の評価結果が前記遷移先リストに存在しない場合の次の遷移先の行番号に処理を移すジャンプ文を出力して前記分岐条件文の内部処理文および実行条件文の出力を終了し、前記実行条件文を処理しない場合の処理文として前記実行条件を満たさない場合の次の遷移先の行番号に処理を移すジャンプ文を出力し、前記遷移先を示すラベルから前記実行条件文を処理しない場合の処理文までの出力を前記業務で実行する処理の個数分繰り返して出力し、前記宣言関数の内部処理文の出力を終了し、
前記データフォーマット定義を処理装置にて実行可能なプログラムに変換する変換プログラムは、内部に複数のデータ要素を持つデータフォーマットにおいて、前記データフォーマットの名称を持ち、  前記複数のデータ要素について、  各データ要素を一意に識別するための要素名と、各データ要素に格納するデータ型式である要素型と、を前記データ要素の個数分、１行毎に繰り返し記述した表を、前記データフォーマットの名称を構造体の名称として出力し、前記構造体の内部宣言文として、前記各データ要素に格納するデータ形式である要素型を前記構造体の要素のデータ型とし、前記各データ要素を一意に識別するための要素名を前記構造体の要素のデータ型に対応する要素の名称として前記複数のデータ要素の個数分繰り返して出力し、前記構造体の内部処理文の出力を終了することを特徴とするソフトウェアシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェアシステムの構成法に関するものであり、特にＡＴＭ（Ａｕｔｏｍａｔｉｃ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）のように、使用目的がほぼ同一だが処理の流れや細部の動作が一部異なるソフトウェアシステムの構成法に関する。
【０００２】
【従来の技術】
従来のＡＴＭ等の装置に関するソフトウェアシステムの構成法としては、顧客操作画面毎に取引処理装置を制御するプログラム部品である場面を複数格納し、それら場面間の遷移テーブルを用意することによって、ソフトウェア開発を容易にする方法がある（特許文献１参照）。
【０００３】
【特許文献１】
特開平７−９８７３７号公報
【０００４】
【発明が解決しようとする課題】
上記従来技術では、大まかな処理の流れを示す遷移テーブルだけでなく、詳細処理を記述したプログラムである場面も改変が可能なため、銀行のＡＴＭのように使用目的がほぼ同一だが処理の流れや細部の動作が一部異なるソフトウェアを複数開発する場合、ある銀行向けのソフトウェアの開発時にその時点での実行速度等といった効率改善のために改変を行うことが多くなり、他の銀行向けソフトウェアへの流用が困難になる。そのため、基本動作がほぼ同じにも関わらず個々の銀行向けにソフトウェアを開発することになってしまい、開発効率が落ちていた。
本発明の目的は、基本動作がほぼ同じで細部の動作が異なる複数のソフトウェアを開発する場合において、他への流用が困難な派生ソフトウェアの発生を抑制し、ソフトウェアを極力共通化するようにし、開発効率を改善するシステムを提供することである。
【０００５】
【課題を解決するための手段】
本発明は、ソフトウェアを、全てのソフトウェアを機能の面から意味のある単位に分割し、それを全てのソフトウェアで共通な部分と異なる部分とに分ける。通帳の印字等、取り扱うデータの型が異なるだけで処理内容は同一の処理に関しては、データフォーマットを分離し任意のデータフォーマットを扱えるようにした共通部品として扱う。その上で、共通部分はソフトウェア開発時の改変を許さず、また個々で異なる部分は、開発に支障ない範囲で制約を強くした簡便なプログラム言語で記述することによって、ソフトウェア部品の共有を行い、個々で異なる部分についても一覧性を向上し他のソフトウェアへの流用を行いやすくする。
【０００６】
【発明の実施の形態】
以下、本発明の実施形態について述べる。
【０００７】
本発明のソフトウェア構成を図１に示す。
【０００８】
業務ロジック１０１は、ＡＴＭで処理する入出金や振込等といった、金融機関毎に仕様が異なる処理を、業務部品１０５を最小単位とする定型化した簡便な言語で記述したソースプログラムである。
【０００９】
データフォーマット定義１０２は、キャッシュカードの磁気ストライプに記録されたデータ形式や通帳の印字形式、ホストサーバとの通信電文形式等、金融機関毎に仕様が異なるデータ形式を記述したフォーマットである。
【００１０】
業務ロジック変換プログラム１０３は、一定の法則に基づき、業務ロジック１０１を処理装置２０１が実行可能な命令群であるアプリケーション実行プログラム１１１に変換する実行プログラムである。データフォーマット定義１０２にて定義されたデータを使用する場合はデータフォーマットライブラリ１１２を呼び出す命令群に変換し、業務部品１０６を扱う処理を必要とする場合は実行エンジン１０５のインタフェースを呼び出す命令群に変換する。
【００１１】
データフォーマット定義変換プログラム１０４は、データフォーマット定義１０２をアプリケーション実行プログラム１１１および実行エンジン１０５が利用可能なデータフォーマット定義であるデータフォーマットライブラリ１１２に変換する実行プログラムである。
【００１２】
実行エンジン１０５は、アプリケーション実行プログラム１１１およびデータフォーマットライブラリ１１２と、業務部品１０６との間に介在し、アプリケーション実行プログラム１１１にて業務部品１０６を呼び出す命令群が実行された場合に、アプリケーション実行プログラム１１１から提供される引数を業務部品１０６で使用する形式に変換した上で、業務部品１０６を実行し、実行結果として得られるデータをアプリケーション実行プログラム１１１の戻り値へ変換する実行プログラムである。また、業務部品１０６にてデータフォーマット定義１０２に定義されているデータを参照した場合に、データフォーマットライブラリ１１２に記述されているデータフォーマットを業務部品１０６で使用可能な形式に変換する。
【００１３】
業務部品１０６は、データフォーマットの違いを除けば各金融機関で共通化可能となる、入出力装置や現金入出金装置等といったデバイス群２０３を操作するための命令群をまとめた実行プログラムである。
【００１４】
デバイス制御層１０７は、業務部品１０６が入出力装置や現金入出金装置等のデバイス群２０３を操作するためのインタフェースであり、デバイス制御層１０７に対してデータを入出力することによりデバイス群２０３を操作し、またデバイス群２０３の状態を取得する。
【００１５】
本発明を実施するハードウェア構成は図２に示す通りである。
【００１６】
処理装置２０１は、例えばＣＰＵ、ＭＰＵ等であり、プログラム内の命令群を逐次読み込み、各命令に対応する演算や操作を行うことにより、アプリケーション実行プログラム１１１や実行エンジン１０５、業務部品１０６を実行する。また業務部品１０６からデバイス制御層１０７に対する入出力操作をデバイス群２０３に対する操作に変換する。
【００１７】
記憶装置２０２は、例えばハードディスク装置やフラッシュメモリ等であり、業務ロジック１０１およびアプリケーション実行プログラム１１１、データフォーマット定義１０２、業務ロジック変換プログラム１０３、データフォーマット定義変換プログラム１０４、実行エンジン１０５、業務部品１０６を記憶する。
【００１８】
デバイス群２０３は、入力装置、表示装置、キャッシュカードリーダライタ、通帳リーダライタ、現金ユニット等、ＡＴＭで使用する外部入出力デバイスの集合体である。
【００１９】
バス２０４は、処理装置２０１、記憶装置２０２、デバイス群２０３を相互接続するためのデータ通信路である。
【００２０】
以下、本実施形態の処理手順について図３を用いて述べる。
【００２１】
処理手順の概要であるが、まず業務ロジック変換処理３０１において、業務ロジック変換プログラム１０３を実行することにより、業務ロジック１０１をアプリケーション実行プログラム１１１に変換する。
【００２２】
次にデータフォーマット定義変換処理３０２において、データフォーマット定義変換プログラム１０４を実行することにより、データフォーマット定義１０２をデータフォーマットライブラリ１１２に変換する。
【００２３】
次にアプリケーション実行処理３０３において、  アプリケーション実行プログラム１１１を実行する。この時、データフォーマット定義１０２にてフォーマットが定義されているデータ形式については、データフォーマットライブラリ１１２を用いてアプリケーション実行プログラム１１１内の変数として定義し使用する。またアプリケーション実行プログラム１１１内にデバイス群２０３の操作や状態取得を行う命令が含まれる場合は、当該命令を実行エンジン１０５によって業務部品１０６を実行するための命令に変換し業務部品１０６を実行する。業務部品１０６はデバイス制御層１０７のインタフェースを介して実際にデバイス群２０３の操作や状態取得を行う。
【００２４】
業務ロジック変換処理３０１において実行される業務ロジック変換プログラム１０３の処理手順は以下の通りである。
【００２５】
これは、図４に示すように、業務ロジック１０１の記述形式を、以下の手順を用いて逐次変換することで行う。本実施例では業務ロジック１０１をＣ言語によるプログラム記述に変換し、それをＣコンパイラを用いてアプリケーション実行プログラム１１１を生成する。
【００２６】
図４の各要素の内容は以下の通りである。
【００２７】
業務名４０１は、当該業務を一意に識別する名称を表し、変換後は当該業務を行うＣ言語ソースプログラムの関数名となる。
【００２８】
業務引数４０２は、当該業務を実行するために必要となるデータ集合を表し、変換後は業務名４０１で表される関数の値渡し型引数となる。
【００２９】
業務戻り値４０３は、当該業務の出力として得られるデータ集合を表し、変換後は業務名４０１で表される関数の参照渡し型引数となる。
【００３０】
動作４０４は、当該業務で実行する業務部品１０６または別の業務名４０１を、各行に１つずつ記述したものである。
【００３１】
行番号４０５は、当該行に記述された動作４０４のそれぞれを業務ロジック内で一意に指定するために付与するラベルである。
【００３２】
実行条件４０６は、当該行に記述された動作４０４を実行するための条件式である。
【００３３】
動作引数４０７は、当該行に記述された動作４０４を実行するために必要となるデータ集合を表す。
【００３４】
動作戻り値４０８は、当該行に記述された動作４０４を実行した結果出力されるデータ集合を表す。
【００３５】
分岐条件４０９は、当該行に記述された動作４０４を実行した後、次にどの動作３０４を実行するのかを決定するためのパラメータを導出する式である。
【００３６】
条件外遷移先４１０は、当該行に記述された実行条件４０４の結果が偽である場合に次に行う動作が記述された行の番号である。
【００３７】
標準遷移先４１１は、当該行に記述された分岐条件４０９の導出結果が、遷移先リスト４１２に記載されていない場合に次に行う動作が記述された行の番号である。
【００３８】
遷移先リスト４１２は、当該行に記述された分岐条件４０９の導出結果で取りうる特定の値である遷移条件値４１３と、分岐条件４０９がその特定の値である場合に次に行う動作が記述された遷移先行番号４１４の組を任意の数だけ記述したものである。
【００３９】
以下、図５に記載の業務ロジック変換プログラム１０３の処理手順を説明する。
【００４０】
まずステップ５０１にて業務ロジック表４００の読み出し対象行を第１行に設定し、業務名４０１、業務引数４０２および業務戻り値４０３を読み出し、業務名４０３を図４の４２１の位置に、業務引数４０２を４２２の位置に、業務戻り値４０３を４２３の位置に置くことによって関数宣言部４５１を記憶装置２０２上のファイル５１１に出力する。
【００４１】
次に、ステップ５０２にて読み出し対象行を第３行に設定する。
【００４２】
次に、ステップ５０３にて読み出し対象行の動作４０４、行番号４０５、実行条件４０６、動作引数４０７、動作戻り値４０８、分岐条件４０９、条件外遷移先４１０、標準遷移先４１１、遷移先リスト４１２を読み出し、動作４０４を４２４の位置に、行番号４０５を４２５の位置に、実行条件４０６を４２６の位置に、動作引数４０７を４２７の位置に、動作戻り値４０８を４２８の位置に、分岐条件４０９を４２９の位置に、条件外遷移先４１０を４３０の位置に、標準遷移先４１１を４３１の位置に置き、遷移先リスト４１２については各要素の遷移条件値４１３を４４１の位置に、遷移先行番号４１４を４４２の位置に置いた上で、遷移先リスト記述部４４０をリストの個数分だけ繰り返し、処理記述部４５２をファイル５１１に出力する。ただし条件外遷移先４１０、標準遷移先４１１、遷移先行番号４１４については、”Ｅ”と記述してある場合は”ｇｏｔｏ  ［行番号］；”の代わりに”ｒｅｔｕｒｎ；”と記述して本関数を終了することを示し、また”−“または空欄である場合は”ｇｏｔｏ  ［行番号］；”を記述せず空欄とする。また動作引数４０７、動作戻り値４０８については、”−“または空欄である場合は対応する４２７もしくは４２８を空欄とする。さらに、動作４０４が括弧で始まる場合は、動作４０４を４２４の位置に、動作引数４０７を４２７の位置に、動作戻り値を４２８の位置に置く代わりに、４０４の括弧内の文字列として記入された数式を４２４の位置に置く。その後、読み出し対象行を現在の次の行に設定する。
【００４３】
次に、ステップ５０４にて読み出し対象行を調べ、業務ロジック表４００の範囲内に収まっている場合はステップ５０３に戻る。
【００４４】
次に、ステップ５０５にて関数終了部４５３をファイル５１１に出力する。
【００４５】
最後に、ステップ５０６にてファイル５１１の内容をＣ言語コンパイラ等を使用してアプリケーション実行プログラム１１１に変換し、記憶装置２０２に出力する。各業務内で呼び出される動作４０４については、動作４０４が他の業務である場合は当該業務を表す関数を呼び出すコード、業務部品１０６である場合は実行エンジン１０５に備わったインタフェースを介して業務部品１０６を呼び出すコードを出力する。
【００４６】
データフォーマット定義変換処理３０２において実行されるデータフォーマット定義変換プログラム１０３の処理手順は以下の通りである。これは、図６に示すように、データフォーマット定義１０２の記述形式を、以下の手順を用いて逐次変換することで行う。本実施例ではデータフォーマット定義１０２をＣ言語によるプログラム記述に変換し、それをＣコンパイラを用いてデバイスフォーマットライブラリ１１２を生成する。
【００４７】
図６の各要素の内容は以下の通りである。
【００４８】
フォーマット名６０１は当該データフォーマットを一意に識別する名称であり、変換後は対応するＣ言語ソースプログラムの構造体名となる。
【００４９】
フィールド名６０２は当該データフォーマット内の各要素を一意に識別する名称であり、変換後はフォーマット名６０１で示される構造体の要素名となる。
【００５０】
フィールド型６０３は、数値型や文字列型等、フィールド名６０２で示される要素が取り扱うデータの型を表し、変換後はフィールド名６０２で示される構造体要素の型となる。
【００５１】
以下、図７に記載のデータフォーマット定義変換プログラム１０４の処理手順を説明する。
【００５２】
まずステップ７０１においてデータフォーマット定義表６００の読み出し対象行を第１行に設定し、フォーマット名６０１を読み出し、図６の６２１の位置に置くことによって構造体宣言部６５１を記憶装置２０２上のファイル７１１に出力する。
【００５３】
次に、ステップ７０２にて読み出し対象行を第３行に設定する。
【００５４】
次にステップ７０３にて、読み出し対象行上にあるフィールド名６０２およびフィールド型６０３を読み出し、フィールド名６０２を図６の６２２の位置に、フィールド型６０３を６２３の位置に置いた上で、フィールド宣言部６５２をファイル７１１に出力する。その後、読み出し対象行を現在の次の行に設定する。
【００５５】
次に、ステップ７０４にて読み出し対象行を調べ、データフォーマット定義表６００の範囲内に収まっている場合はステップ７０３に戻る。
【００５６】
次に、ステップ７０５にて、構造体宣言終了部６５３をファイル７１１に出力する。
【００５７】
最後にステップ７０６にて、ファイル７１１の内容をＣ言語コンパイラ等を使用してデータフォーマットライブラリ１１２に変換し、記憶装置２０２に出力する。
【００５８】
前記業務ロジック変換プログラム１０２を実際の業務ロジックに適用した例を以下に示す。
【００５９】
図８はＡＴＭにおける通帳やカードの挿入および暗証番号の入力処理フローの一例である。
【００６０】
これを、業務名称８０１を業務名４０１、業務の実行に必要な引数８０２を業務引数４０２、業務の実行結果得られる戻り値８０３を業務戻り値４０３とした上で、各ノードの名称８０４を動作４０４、各ノードに付与された番号８０５を行番号４０５、各ノードにて必要とするデータ８０７を動作引数４０７、各ノードの処理結果得られるデータ８０８を動作戻り値４０８、各ノードに付加された実行条件８０６を実行条件４０６、次の遷移先ノードを決定する条件として使用されるデータや式８０９を分岐条件４０９、各ノードにて実行条件４０６を満たさない場合の次の遷移ノードの行番号を条件外遷移先４１０、各ノードから出ている矢印８１０に分岐条件４０９の取る値として付加された値８１３を遷移条件値４１３、その矢印で示される次の遷移ノードの行番号８０５を遷移先行番号４１４として各ノードから出ている矢印８１０の本数だけ繰り返し記述したものを遷移先リスト４１２、分岐条件４０９が遷移先リスト４１２の遷移条件値４１３に記載されていない値を取る場合の遷移先を標準遷移先４１１とし、業務ロジック表４００の形式で記述すると図９が得られる。
【００６１】
この表９００を対象に、業務ロジック変換プログラム１０３を用いて、業務ロジック１０１からアプリケーション実行プログラム１１１への変換を行う。
【００６２】
まずステップ５０１を実行することにより、９０１を図４の４２１の位置に、９０２を４２２の位置に、９０３を４２３の位置に置くことにより、関数宣言部４５１として図１０の１００１の部分がファイル５１１に出力される。
【００６３】
次に、ステップ５０２を実行し、処理対象行を表９００の３行目に設定する。次に、ステップ５０３を実行し、９０４を図４の４２４の位置に、９０５を４２５の位置に、９０６を４２６の位置に、９０７を４２７の位置に、９０８を４２８の位置に、９０９を４２９の位置に、９１０を４３０の位置に、９１１を４３１の位置に置いた上で、遷移先リスト４１２に相当する９１２の要素数が２であるので、まず９１３を４４１の位置に、９１４を４４２の位置に置いて、次いで９１５を４４１の位置に、９１６を４４２の位置に置いて４４０の部分を２回繰り返し、その結果処理記述部４５２として図１０の１００２の部分がファイル５１１に出力される。ただし、９０７および９１０の要素は空であるため、４２７および４３０は出力されない。その後、処理対象行を３行目の次の行である４行目に設定する。
【００６４】
次に、ステップ５０４を実行し、読み出し対象行が４行目であり、表９００の最大行である１５行以下であるため、ステップ５０３に戻る。
【００６５】
その後ステップ５０３と５０４を読み出し対象行を順次次の行に移し、読み出し対象行が１５行目になるまで繰り返し実行し、図１０の１００３、１００４、１００５、１００６、１００７、１００８、１００９、１０１０、１０１１、１０１２、１０１３の部分がファイル５１１に出力される。なお、１００７および１００８においては、４２４の位置に置くべき処理名が括弧で始まる数式９１７および９１８となっているため、４２４、４２５、４２６の代わりに１０１７および１０１８のように数式を出力する。
【００６６】
１０１３の出力後、読み出し対象行が１６行である時にステップ５０４を実行すると、読み出し対象行が表９００の最大行である１５行よりも大きいため、ステップ５０３には戻らずステップ５０５に処理を移す。
【００６７】
次に、ステップ５０５を実行することで、図１０の１０１４の部分が関数終了部４５３としてファイル５１１に出力される。
【００６８】
以上の処理により、実行プログラムのソースリスト１０００が得られるので、ステップ５０６にてこれをＣ言語コンパイラを使用することにより、アプリケーション実行プログラム１１１が得られる。
【００６９】
【発明の効果】
本発明によれば、基本動作は同じだが細部の処理が異なる複数のソフトウェアを開発する場合において、ソフトウェアを共通で使用できる部分と個々で異なる部分に分け、その上で共通部分の改変を許さないようにすることで、同一処理を行うソフトウェアを別々に開発することなく流用できるようにし、最小限度の改変で複数のソフトウェアを開発できるようになる。
【００７０】
本発明によれば、個別開発が必要な部分においても、表形式等で記述した制約の強い簡便な言語を用いることによって、プログラムの見通しを良くし他のソフトウェアとの共有化を高めることができる。
【図面の簡単な説明】
【図１】本発明の実施形態におけるソフトウェア構成図。
【図２】本発明の実施形態におけるハードウェア構成図。
【図３】本発明の実施形態における処理フローの概要。
【図４】本発明の実施形態にて使用する業務ロジックの記述およびＣ言語プログラムへの変換方法。
【図５】本発明の実施形態における業務ロジック変換プログラムの処理フロー。
【図６】本発明の実施形態にて使用するデータフォーマット定義の記述およびＣ言語プログラムへの変換方法。
【図７】本発明の実施形態におけるデータフォーマット定義変換プログラムの処理フロー。
【図８】本発明の実施形態の適用例として使用する業務ロジックのフロー。
【図９】図８を図４で示す業務ロジック表で記述した図。
【図１０】図１０を図４に示す方法でＣ言語プログラムに変換した図。
【符号の説明】
１０１…業務ロジック、１０２…データフォーマット定義、１０３…業務ロジック変換プログラム、１０４…データフォーマット変換プログラム、１０５…実行エンジン、１０６…業務部品、１０７…デバイス制御層、１１１…アプリケーション実行プログラム、１１２…データフォーマットライブラリ、４０１…業務名、４０２…業務引数、４０３…業務戻り値、４０４…処理名、４０５…行番号、４０６…実行条件、４０７…処理引数、４０８…処理戻り値、４０９…分岐条件、４１０…条件外遷移先、４１１…標準遷移先、４１２…遷移先リスト。
【図１】
2005056012.tif 000003
【図２】
2005056012.tif 000004
【図３】
2005056012.tif 000005
【図４】
2005056012.tif 000006
【図５】
2005056012.tif 000007
【図６】
2005056012.tif 000008
【図７】
2005056012.tif 000009
【図８】
2005056012.tif 000010
【図９】
2005056012.tif 000011
【図１０】
2005056012.tif 000012