(57)【特許請求の範囲】
【請求項１】
状態遷移図からプログラムのソースコードを生成するソースコード生成装置において、
プログラムの状態と前記状態間の状態遷移の関係とを記述した状態遷移図を記憶する状態遷移図記憶手段と、
前記状態遷移図記憶手段に記憶された前記状態遷移図の前記状態遷移それぞれについて、前記状態遷移が生起する条件を示す遷移条件の記述形式を、予め設定された複数の前記記述形式の一覧から選択させる選択領域と、選択された前記記述形式に従って前記遷移条件を記述するための記述領域とを備える入力画面を表示する入力画面表示手段と、
前記入力画面表示手段で表示した前記入力画面に対する操作入力を受け付け、選択された前記記述形式の情報と前記遷移条件の記述とを備える遷移条件情報を取得する遷移条件情報取得手段と、
前記入力画面で選択可能な前記記述形式それぞれに対応付けて、前記記述形式に従って記述された前記遷移条件から条件判定を行う判定コードを生成する判定コード生成機能を有しており、前記遷移条件情報取得手段が前記状態遷移図記憶手段に記憶された前記状態遷移図のすべての前記状態遷移について前記遷移条件情報を取得すると、前記状態遷移ごとに前記遷移条件情報で示される前記記述形式に対応する前記判定コード生成機能を呼び出して前記判定コードを生成すると共に、前記状態遷移図から前記条件判定以外の処理を記述した処理コードを生成し、生成した前記処理コードとすべての前記判定コードとを合成してプログラムのソースコードを出力するソースコード生成手段と、
を有することを特徴とするソースコード生成装置。
【請求項２】
前記入力画面の前記選択領域は、真偽の判定が可能な論理式の形式を、選択可能な前記記述形式の１つとして有しており、
前記ソースコード生成手段が有する、前記論理式の形式に対応する前記判定コード生成機能は、入力として与えられた前記論理式が埋め込まれた条件分岐文のコードを、前記判定コードとして生成する、
ことを特徴とする請求項１記載のソースコード生成装置。
【請求項３】
前記入力画面の前記選択領域は、戻り値として真偽の判定結果を返す判定関数の形式を、選択可能な前記記述形式の１つとして有しており、
前記ソースコード生成手段が有する、前記判定関数の形式に対応する前記判定コード生成機能は、入力として与えられた前記判定関数と、前記判定関数を呼び出す関数呼び出し文が埋め込まれた条件分岐文とを備えるコードを、前記判定コードとして生成する、
ことを特徴とする請求項１記載のソースコード生成装置。
【請求項４】
前記入力画面の前記選択領域は、真偽の判定が可能な論理回路の形式を、選択可能な前記記述形式の１つとして有しており、
前記ソースコード生成手段が有する、前記論理回路の形式に対応する前記判定コード生成機能は、入力として与えられた前記論理回路を同等の意味をもつ論理式に変換すると共に、変換した前記論理式に基づいて真偽を判定し戻り値として判定結果を返す判定関数と、前記判定関数を呼び出す関数呼び出し文が埋め込まれた条件分岐文とを備えるコードを、前記判定コードとして生成する、
ことを特徴とする請求項１記載のソースコード生成装置。
【請求項５】
プログラムの状態と前記状態間の状態遷移の関係とを記述した状態遷移図からプログラムのソースコードを生成するソースコード生成方法において、
入力画面表示手段が、状態遷移図記憶手段に記憶された前記状態遷移図の前記状態遷移それぞれについて、前記状態遷移が生起する条件を示す遷移条件の記述形式を、予め設定された複数の前記記述形式の一覧から選択させる選択領域と、選択された前記記述形式に従って前記遷移条件を記述するための記述領域とを備える入力画面を表示し、
遷移条件情報取得手段が、前記入力画面表示手段で表示した前記入力画面に対する操作入力を受け付け、選択された前記記述形式の情報と前記遷移条件の記述とを備える遷移条件情報を取得し、
ソースコード生成手段が、前記入力画面で選択可能な前記記述形式それぞれと対応付けて、前記記述形式に従って記述された前記遷移条件から条件判定を行う判定コードを生成する判定コード生成機能を有しており、前記遷移条件情報取得手段が前記状態遷移図記憶手段に記憶された前記状態遷移図のすべての前記状態遷移について前記遷移条件情報を取得すると、前記状態遷移ごとに前記遷移条件情報で示される前記記述形式に対応する前記判定コード生成機能を呼び出して前記判定コードを生成すると共に、前記状態遷移図から前記条件判定以外の処理を記述した処理コードを生成し、生成した前記処理コードとすべての前記判定コードとを合成してプログラムのソースコードを出力する、
ことを特徴とするソースコード生成方法。
【請求項６】
状態遷移図からプログラムのソースコードを生成するソースコード生成プログラムにおいて、
コンピュータを、
プログラムの状態と前記状態間の状態遷移の関係とを記述した状態遷移図を記憶する状態遷移図記憶手段、
前記状態遷移図記憶手段に記憶された前記状態遷移図の前記状態遷移それぞれについて、前記状態遷移が生起する条件を示す遷移条件の記述形式を、予め設定された複数の前記記述形式の一覧から選択させる選択領域と、選択された前記記述形式に従って前記遷移条件を記述するための記述領域とを備える入力画面を表示する入力画面表示手段、
前記入力画面表示手段で表示した前記入力画面に対する操作入力を受け付け、選択された前記記述形式の情報と前記遷移条件の記述とを備える遷移条件情報を取得する遷移条件情報取得手段、
前記入力画面で選択可能な前記記述形式それぞれに対応して、前記記述形式に従って記述された前記遷移条件から条件判定を行う判定コードを生成する判定コード生成機能を有しており、前記遷移条件情報取得手段が前記状態遷移図記憶手段に記憶された前記状態遷移図のすべての前記状態遷移について前記遷移条件情報を取得すると、前記状態遷移ごとに前記遷移条件情報で示される前記記述形式に対応する前記判定コード生成機能を呼び出して前記判定コードを生成すると共に、前記状態遷移図から前記条件判定以外の処理を記述した処理コードを生成し、生成した前記処理コードとすべての前記判定コードとを合成してプログラムのソースコードを出力するソースコード生成手段、
として機能させることを特徴とするソースコード生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラムのソースコードを生成するソースコード生成装置、ソースコード生成方法およびソースコード生成プログラムに関し、特に状態遷移図からプログラムのソースコードを生成するソースコード生成装置、ソースコード生成方法およびソースコード生成プログラムに関する。
【背景技術】
【０００２】
現在、コンピュータで実行されるソフトウェアが大規模化、複雑化するに伴い、ソフトウェアの設計を効率的に行うために多種多様な図が使用されている。例えば、実行する処理の結果に応じてプログラムの状態が変化していくソフトウェアを設計する場合、状態遷移図が使用される。状態遷移図は、状態を表すノードと、状態間の遷移を表す矢印線とから構成される。また、それぞれの状態遷移に対して、その遷移が生起する条件を示す遷移条件が付加されることがある。状態遷移図は、標準化されたモデル記述言語であるUML（Unified Modeling Language）においても状態機械（State Machine）として採用されており、広く一般に使用されている。状態遷移図を記述することで、開発者はプログラムの振る舞いを容易に把握することができる。
【０００３】
一方、ソフトウェアをコンピュータで実行させるためには、最終的にプログラムのソースコードを記述しなければならない。そのため、開発者は状態遷移図を記述して設計を行った後、それに基づいて改めてソースコードを記述する必要がある。状態遷移図の記述とソースコードの記述という二重の作業は、開発者にとって大きな負担となる。
【０００４】
そこで、開発者の作業負担を軽減すべく、遷移条件が付加された状態遷移図から、状態遷移図で表される振る舞いを実現するプログラムのソースコードを自動的に生成する技術が知られている（例えば、特許文献１参照）。この方法では、現在の状態を示す値を格納する変数と、状態遷移図に記述された遷移条件が満たされたときに変数の値を更新する関数とを備えるソースコードが生成される。これにより、プログラムの実行中に状態が変化するソフトウェアの開発の負担が大きく軽減される。
【特許文献１】特開平７−７８０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１記載の技術では遷移条件の記述方法が固定されており、生成されるソースコードの構造も遷移条件の記述内容に関わらず一定であるという問題がある。遷移条件を記述する際には、条件の複雑さなどの性質に応じて記述形式を変えたいという要求がある。例えば、簡単な遷移条件は論理式を用いることで簡潔に記述できる一方、複雑な遷移条件は条件判定を行う計算の手順を記述する方が理解容易な記述になる。また、遷移条件の記述とソースコードとの対応関係が固定的であると、記述形式によっては著しく処理効率が悪い構造のソースコードが生成されることがある。例えば、遷移条件の記述が１つの論理式のみから成る簡単な記述であっても、複雑な構造をもつ冗長なソースコードが生成されることがある。
【０００６】
本発明はこのような点に鑑みてなされたものであり、状態遷移図の遷移条件の記述形式を複数の記述形式の中から選択でき、選択された記述形式に適した構造をもつソースコードを状態遷移図から自動的に生成するソースコード生成装置、ソースコード生成方法およびソースコード生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では上記問題を解決するために、状態遷移図からプログラムのソースコードを生成するソースコード生成装置において、プログラムの状態と前記状態間の状態遷移の関係とを記述した状態遷移図を記憶する状態遷移図記憶手段と、前記状態遷移図記憶手段に記憶された前記状態遷移図の前記状態遷移それぞれについて、前記状態遷移が生起する条件を示す遷移条件の記述形式を、予め設定された複数の前記記述形式の一覧から選択させる選択領域と、選択された前記記述形式に従って前記遷移条件を記述するための記述領域とを備える入力画面を表示する入力画面表示手段と、前記入力画面表示手段で表示した前記入力画面に対する操作入力を受け付け、選択された前記記述形式の情報と前記遷移条件の記述とを備える遷移条件情報を取得する遷移条件情報取得手段と、前記入力画面で選択可能な前記記述形式それぞれに対応付けて、前記記述形式に従って記述された前記遷移条件から条件判定を行う判定コードを生成する判定コード生成機能を有しており、前記遷移条件情報取得手段が前記状態遷移図記憶手段に記憶された前記状態遷移図のすべての前記状態遷移について前記遷移条件情報を取得すると、前記状態遷移ごとに前記遷移条件情報で示される前記記述形式に対応する前記判定コード生成機能を呼び出して前記判定コードを生成すると共に、前記状態遷移図から前記条件判定以外の処理を記述した処理コードを生成し、生成した前記処理コードとすべての前記判定コードとを合成してプログラムのソースコードを出力するソースコード生成手段と、を有することを特徴とするソースコード生成装置が提供される。
【０００８】
このようなソースコード生成装置によれば、入力画面表示手段により、状態遷移図の状態遷移それぞれについて、遷移条件の記述形式を選択する選択領域と遷移条件を記述する記述領域とを備える入力画面が表示される。次に、遷移条件情報取得手段により、入力画面で選択された記述形式の情報と入力された遷移条件の記述とを備える遷移条件情報が取得される。そして、ソースコード生成手段により、それぞれの遷移条件の記述形式に応じて適切な構造をもつ判定コードが生成されると共に、状態遷移図から条件判定以外の処理を記述した処理コードが生成され、処理コードと判定コードとが合成されてプログラムのソースコードが生成される。
【０００９】
また、上記問題を解決するために、プログラムの状態と前記状態間の状態遷移の関係とを記述した状態遷移図からプログラムのソースコードを生成するソースコード生成方法において、入力画面表示手段が、状態遷移図記憶手段に記憶された前記状態遷移図の前記状態遷移それぞれについて、前記状態遷移が生起する条件を示す遷移条件の記述形式を、予め設定された複数の前記記述形式の一覧から選択させる選択領域と、選択された前記記述形式に従って前記遷移条件を記述するための記述領域とを備える入力画面を表示し、遷移条件情報取得手段が、前記入力画面表示手段で表示した前記入力画面に対する操作入力を受け付け、選択された前記記述形式の情報と前記遷移条件の記述とを備える遷移条件情報を取得し、ソースコード生成手段が、前記入力画面で選択可能な前記記述形式それぞれと対応付けて、前記記述形式に従って記述された前記遷移条件から条件判定を行う判定コードを生成する判定コード生成機能を有しており、前記遷移条件情報取得手段が前記状態遷移図記憶手段に記憶された前記状態遷移図のすべての前記状態遷移について前記遷移条件情報を取得すると、前記状態遷移ごとに前記遷移条件情報で示される前記記述形式に対応する前記判定コード生成機能を呼び出して前記判定コードを生成すると共に、前記状態遷移図から前記条件判定以外の処理を記述した処理コードを生成し、生成した前記処理コードとすべての前記判定コードとを合成してプログラムのソースコードを出力する、ことを特徴とするソースコード生成方法が提供される。
【００１０】
このようなソースコード生成方法によれば、状態遷移図の状態遷移それぞれについて、遷移条件の記述形式を選択する選択領域と遷移条件を記述する記述領域とを備える入力画面が表示される。次に、入力画面で選択された記述形式の情報と入力された遷移条件の記述とを備える遷移条件情報が取得される。そして、それぞれの遷移条件の記述形式に応じて適切な構造をもつ判定コードが生成されると共に、状態遷移図から条件判定以外の処理を記述した処理コードが生成され、処理コードと判定コードとが合成されてプログラムのソースコードが生成される。
【００１１】
また、上記問題を解決するために、状態遷移図からプログラムのソースコードを生成するソースコード生成プログラムにおいて、コンピュータを、プログラムの状態と前記状態間の状態遷移の関係とを記述した状態遷移図を記憶する状態遷移図記憶手段、前記状態遷移図記憶手段に記憶された前記状態遷移図の前記状態遷移それぞれについて、前記状態遷移が生起する条件を示す遷移条件の記述形式を、予め設定された複数の前記記述形式の一覧から選択させる選択領域と、選択された前記記述形式に従って前記遷移条件を記述するための記述領域とを備える入力画面を表示する入力画面表示手段、前記入力画面表示手段で表示した前記入力画面に対する操作入力を受け付け、選択された前記記述形式の情報と前記遷移条件の記述とを備える遷移条件情報を取得する遷移条件情報取得手段、前記入力画面で選択可能な前記記述形式それぞれに対応して、前記記述形式に従って記述された前記遷移条件から条件判定を行う判定コードを生成する判定コード生成機能を有しており、前記遷移条件情報取得手段が前記状態遷移図記憶手段に記憶された前記状態遷移図のすべての前記状態遷移について前記遷移条件情報を取得すると、前記状態遷移ごとに前記遷移条件情報で示される前記記述形式に対応する前記判定コード生成機能を呼び出して前記判定コードを生成すると共に、前記状態遷移図から前記条件判定以外の処理を記述した処理コードを生成し、生成した前記処理コードとすべての前記判定コードとを合成してプログラムのソースコードを出力するソースコード生成手段、として機能させることを特徴とするソースコード生成プログラムが提供される。
【００１２】
このようなソースコード生成プログラムを実行するコンピュータによれば、入力画面表示手段により、状態遷移図の状態遷移それぞれについて、遷移条件の記述形式を選択する選択領域と遷移条件を記述する記述領域とを備える入力画面が表示される。次に、遷移条件情報取得手段により、入力画面で選択された記述形式の情報と入力された遷移条件の記述とを備える遷移条件情報が取得される。そして、ソースコード生成手段により、それぞれの遷移条件の記述形式に応じて適切な構造をもつ判定コードが生成されると共に、状態遷移図から条件判定以外の処理を記述した処理コードが生成され、処理コードと判定コードとが合成されてプログラムのソースコードが生成される。
【発明の効果】
【００１３】
本発明では、入力画面において一覧から遷移条件の記述形式を選択できるようにし、選択された記述形式に対応した判定コード生成機能を用いて条件判定を行うコードを生成することとした。これにより、開発者は遷移条件の複雑さなどの性質に応じて適切な記述形式を選択できると共に、選択された記述形式に適した構造をもつソースコードを生成できる。したがって、いずれの記述形式が選択されても冗長なソースコードが生成されることがなくなり、生成されるプログラムの処理効率が向上する。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。図１に示されるソースコード生成装置は、状態遷移図とそれぞれの状態遷移についての遷移条件の詳細な記述とから、ソースコードを自動的に生成するものである。ソースコード生成装置１０は、状態遷移図記憶手段１１、入力画面表示手段１２、遷移条件情報取得手段１３およびソースコード生成手段１４を有する。
【００１５】
状態遷移図記憶手段１１は、プログラムの状態２ａ，２ｂと、状態２ａ，２ｂ間の状態遷移２ｃの関係とを記述した状態遷移図２を記憶する。開発者は、予め状態遷移図２を記述し、状態遷移図記憶手段１１に格納しておく。ただし、状態遷移図２には、それぞれの遷移条件の詳細は記述しない。
【００１６】
入力画面表示手段１２は、状態遷移図記憶手段１１に記憶された状態遷移図２の状態遷移それぞれについて、遷移条件の詳細を記述するための入力画面を入出力装置３に表示する。表示される入力画面は、予め設定された複数の記述形式の一覧から遷移条件の記述形式を選択するための選択領域と、選択された記述形式に従って遷移条件を記述するための記述領域とを備える。
【００１７】
遷移条件情報取得手段１３は、入出力装置３に表示された入力画面に対する操作入力を受け付け、選択された記述形式の情報と入力された遷移条件の記述とを備える遷移条件情報４を取得する。
【００１８】
ソースコード生成手段１４は、入力画面で選択可能な記述形式ごとに、その記述形式で記述された遷移条件から条件判定を行う判定コードを生成する判定コード生成機能１４ａ，１４ｂ，１４ｃ，・・・を有している。ここで、遷移条件情報取得手段１３が状態遷移図記憶手段１１に記憶された状態遷移図２のすべての状態遷移について遷移条件情報を取得すると、ソースコード生成手段１４はソースコードの生成処理を開始する。
【００１９】
まず、ソースコード生成手段１４は、状態遷移ごとに遷移条件情報４で示される記述形式に対応する判定コード生成機能を呼び出して判定コードを生成する。例えば、記述形式が論理式であるとき、判定コード生成機能１４ａが呼び出される。次に、ソースコード生成手段１４は、状態遷移図２から条件判定以外の処理を記述した処理コードを生成する。そして、ソースコード生成手段１４は、生成した処理コードとすべての判定コードとを合成してプログラムのソースコード５を出力する。出力されるソースコード５は、状態遷移図２の振る舞いを実現する具体的な処理手順を記述したものである。
【００２０】
このようなソースコード生成装置１０によれば、入力画面表示手段１２により、状態遷移図２の状態遷移それぞれについて、記述形式の選択領域と遷移条件の記述領域とを備える入力画面が入出力装置３に表示される。次に、遷移条件情報取得手段１３により、入力画面に対する操作入力を受け付け、選択された記述形式の情報と入力された遷移条件の記述とを備える遷移条件情報４が取得される。そして、ソースコード生成手段１４により、それぞれの遷移条件の記述形式に応じて適切な構造をもつ判定コードが生成されると共に、状態遷移図２から条件判定以外の処理を記述した処理コードが生成され、処理コードと判定コードとが合成されてプログラムのソースコード５が生成される。
【００２１】
これにより、開発者は、それぞれの遷移条件の性質に応じて適切な記述形式を選択して遷移条件を記述できると共に、選択された記述形式に適した構造をもつソースコードを生成できる。したがって、いずれの記述形式が選択されても冗長なソースコードが生成されることがなくなり、生成されるプログラムの処理効率が向上する。また、開発者が適切な記述形式を選択することで、遷移条件の記述や理解が容易となり、開発者の入力ミスを防止できる。その結果、生成されるプログラムの品質も向上する。
【００２２】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。本実施の形態は、１つのソースコード生成装置１００で構成される。開発者は、ソースコード生成装置１００を用いて状態遷移図を記述し、記述した状態遷移図からソースコードを生成することができる。
【００２３】
図２は、ソースコード生成装置のハードウェア構成を示す図である。ソースコード生成装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４および入力インタフェース１０５が接続されている。
【００２４】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳプログラムやアプリケーションプログラムが格納される。
【００２５】
グラフィック処理装置１０４には、モニタ２０が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ２０の画面に表示させる。入力インタフェース１０５には、キーボード３１とマウス３２とが接続されている。入力インタフェース１０５は、キーボード３１やマウス３２から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００２６】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、ソースコード生成装置１００のモジュール構成について説明する。
【００２７】
図３は、ソースコード生成装置の機能を示すブロック図である。ソースコード生成装置１００は、状態遷移図記憶部１１０、ソースファイル記憶部１２０、状態遷移図作成部１３０、遷移条件記述部１４０、状態遷移図確認部１５０およびソースコード生成部１６０を有する。状態遷移図作成部１３０、遷移条件記述部１４０および状態遷移図確認部１５０は、キーボード３１およびマウス３２を通じて開発者からの入力を受け付けることができる。また、状態遷移図作成部１３０、遷移条件記述部１４０、状態遷移図確認部１５０およびソースコード生成部１６０は、モニタ２０の画面に処理結果を表示することができる。
【００２８】
状態遷移図記憶部１１０は、状態遷移図が記述されたファイルを格納する。状態遷移図には、プログラムの状態と状態間の遷移関係とが記述される。また、状態遷移図記憶部１１０は、状態遷移図のそれぞれの状態遷移と対応付けられた遷移条件情報を格納する。遷移条件情報は、遷移条件の記述形式を示す情報と、その記述形式に従って記述された遷移条件の詳細とを含んでいる。
【００２９】
ソースファイル記憶部１２０は、生成されたソースコードが記述されたファイルを格納する。
状態遷移図作成部１３０は、開発者からの入力に基づいて状態遷移図を作成する。ここで、状態遷移図作成部１３０は、開発者による状態遷移図の作図を視覚的に支援する機能をもつ。例えば、モニタ２０の画面端に表示されたボタンを押すことで、描画領域に状態を表す楕円が配置されるようにする。そして、状態遷移図作成部１３０は、作成した状態遷移図をファイルに保存し状態遷移図記憶部１１０に格納する。
【００３０】
遷移条件記述部１４０は、開発者からの入力によって、状態遷移図作成部１３０で作成されモニタ２０に表示されている状態遷移図の中から１つの状態遷移が選択されると、遷移条件の記述形式を選択するための選択画面を表示する。
【００３１】
本実施の形態では、選択可能な記述形式として、論理式、判定関数、論理回路の３つの記述形式を用意する。論理式は、変数に具体的な値を代入することで真（Ｔｒｕｅ）または偽（Ｆａｌｓｅ）の判定が可能な式である。判定関数は、真または偽を戻り値として返す関数であり、真偽を判定する過程で行われる計算手順を記述したコードを含む。論理回路は、入力値に基づいて真または偽の値を出力する回路である。論理回路は、同等の意味をもつ論理式に変換することが可能である。
【００３２】
ここで、モニタ２０に表示された選択画面で１つの記述形式が選択されると、遷移条件記述部１４０は、選択された記述形式に従って遷移条件を記述するための入力画面を表示する。表示された入力画面で遷移条件の記述が入力されると、遷移条件記述部１４０は、選択された記述形式の情報と入力された遷移条件の記述とを含む遷移条件情報を、選択された状態遷移と対応付けて状態遷移図記憶部１１０に格納する。
【００３３】
状態遷移図確認部１５０は、ソースコードを生成する指示が入力されると、状態遷移図記憶部１１０を参照して、ソースコードの生成に必要な状態遷移図が作成されているか確認する。また、状態遷移図確認部１５０は、状態遷移図のすべての状態遷移に対して遷移条件情報が作成されているか確認する。そして、記述に不備がある場合、状態遷移図確認部１５０は、その旨をモニタ２０に表示する。不備がない場合、状態遷移図確認部１５０は、状態遷移図記憶部１１０に格納された状態遷移図とすべての遷移条件情報とをソースコード生成部１６０へ渡す。
【００３４】
ソースコード生成部１６０は、論理式変換部１６１、判定関数変換部１６２および論理回路変換部１６３を有する。論理式変換部１６１は、論理式の形式で記述された遷移条件から条件判定を行う判定コードを生成する。判定関数変換部１６２は、判定関数の形式で記述された遷移条件から判定コードを生成する。論理回路変換部１６３は、論理回路の形式で記述された遷移条件から判定コードを生成する。
【００３５】
ソースコード生成部１６０は、状態遷移図と遷移条件情報とを受け取ると、それぞれの状態遷移について、遷移条件の記述形式に対応する生成機能を呼び出して判定コードを生成する。具体的には、記述形式が論理式である場合、ソースコード生成部１６０は論理式変換部１６１を呼び出す。記述形式が判定関数である場合、ソースコード生成部１６０は判定関数変換部１６２を呼び出す。記述形式が論理回路である場合、ソースコード生成部１６０は論理回路変換部１６３を呼び出す。
【００３６】
また、ソースコード生成部１６０は、状態遷移図から条件判定以外の処理を記述した処理コードを生成する。そして、ソースコード生成部１６０は、生成した処理コードに生成した判定コードを埋め込みソースコードを生成する。その後、ソースコード生成部１６０は、生成したソースコードをファイルに保存してソースファイル記憶部１２０に格納すると共に、生成が完了した旨をモニタ２０に表示する。
【００３７】
図４は、ソースコードの生成に使用される状態遷移図の例である。状態遷移図ファイル１１１は、状態遷移図記憶部１１０に格納されている。状態遷移図ファイル１１１には、状態１１１ａ，１１１ｂ，１１１ｃおよび状態遷移１１１ｄ，１１１ｅ，１１１ｆ，１１１ｇ，１１１ｈが記述されている。
【００３８】
状態を表す楕円内には、その状態の状態名が記述される。例えば、状態１１１ａの状態名は“ＳＴＡＴＥ１”である。
状態遷移を表す矢印線には、それぞれラベルが付加される。ラベルは、イベント名、条件名、アクション名の３つの要素で構成される。イベント名は、プログラムの実行時に発生する可能性があるイベントの名前である。条件名は、状態遷移の遷移条件を識別するための名前であり、“［”と“］”の間に記述される。アクション名は、プログラムによって実行される処理を識別するための名前であり、“／”の右側に記述される。
【００３９】
上記のラベルは以下の意味をもつ。現在の状態が矢印元の状態であるときに、イベント名で示されるイベントが発生し、かつ、条件名で示される遷移条件が満たされていると、プログラムの状態が矢印先の状態に遷移する。このとき、状態が遷移する直前に、アクション名で示される処理が実行される。
【００４０】
例えば、状態遷移１１１ｄは、現在の状態が状態１１１ａであるときに“ｅｖｅｎｔ１−１”で示されるイベントが発生し、“ｃｏｎｄ１−１”で示される遷移条件が満たされていると、“ａｃｔ１−１”で示される処理が実行された上で、状態が状態１１１ｂに遷移することを意味する。なお、遷移条件および実行される処理の詳細は状態遷移図に直接記述せず、付加的情報として別手段で記述する。
【００４１】
上記の状態遷移図は、開発者からの入力に基づいて状態遷移図作成部１３０で作成される。このような状態遷移図によって、プログラムの振る舞いを表現することができる。
次に、遷移条件記述部１４０がモニタ２０に表示する選択画面および入力画面について説明する。
【００４２】
図５は、遷移条件の記述形式の選択画面例を示す図である。選択画面２１は、入力領域２１ａ，２１ｂ、選択領域２１ｃおよびボタン２１ｄを有する。
入力領域２１ａは、状態遷移図に記述された条件名のうちの１つを入力するための入力領域である。条件名は、状態遷移図の中の状態遷移と遷移条件情報とを対応付けるために用いられる。入力領域２１ｂは、シンボルを入力するための入力領域である。シンボルは、ソースコード中で遷移条件の条件判定を行うコードを識別するために用いられる。
【００４３】
選択領域２１ｃは、遷移条件の記述形式を１つ選択するための選択領域である。具体的には、論理式、判定関数、論理回路の中から１つを選択する。ボタン２１ｄは、入力内容を確定するためのボタンである。ボタン２１ｄが押されると、選択領域２１ｃで選択された記述形式に対応する入力画面が次に表示される。
【００４４】
例えば、図４に示した状態遷移図の状態遷移１１１ｄに対して、条件名を“ｃｏｎｄ１−１”、シンボルを“Ｈａｎｔｅｉ１−１”と入力し、記述形式を“論理式”と選択する。
【００４５】
図６は、論理式形式による遷移条件の入力画面例を示す図である。入力画面２２は、選択画面２１の選択領域２１ｃで“論理式”が選択された場合に表示される。入力画面２２は、入力領域２２ａおよびボタン２２ｂを有する。
【００４６】
入力領域２２ａは、論理式を入力するための入力領域である。論理式は、ソースコード中で使用される変数、数値などの定数、“＆＆”（論理積）や“｜｜”（論理和）などの論理演算子、“＋”（加算）や“＊”（積）などの算術演算子、“＞”などの比較演算子を用いて記述される。これら演算子は、Ｃ言語などの一般的なプログラミング言語で使用可能な演算子である。例えば、変数“ｃｏｕｎｔ”の値が“１０”以上であるという条件を示す論理式は、“ｃｏｕｎｔ＞＝１０”と記述できる。
【００４７】
ボタン２２ｂは、入力内容を確定するためのボタンである。ボタン２２ｂが押されると、遷移条件記述部１４０は、入力領域２２ａに入力された論理式、選択画面２１の入力領域２１ｂに入力されたシンボルおよび記述形式が“論理式”であることを示す情報で構成される遷移条件情報を、選択画面２１の入力領域２１ａに入力された条件名と対応付けて、状態遷移図記憶部１１０に格納する。
【００４８】
図７は、判定関数形式による遷移条件の入力画面例を示す図である。入力画面２３は、選択画面２１の選択領域２１ｃで“判定関数”が選択された場合に表示される。入力画面２３は、入力領域２３ａおよびボタン２３ｂを有する。
【００４９】
入力領域２３ａは、判定関数を入力するための入力領域である。判定関数は、出力するソースコードの記述に使用されるプログラミング言語の文法に従って記述する。本実施の形態では、プログラミング言語としてＣ言語を用いている。入力領域２３ａには、条件判定の過程で行われる計算の手順を示すコードを記述できる。ただし、最終的に戻り値として真または偽の値を返すように記述する必要がある。なお、入力領域２３ａには、判定関数の処理内容のコードを記述すればよく、関数名などの宣言文を記述する必要はない。必要な宣言文はソースコード生成装置１００が自動的に付加する。
【００５０】
ボタン２３ｂは、入力内容を確定するためのボタンである。ボタン２３ｂが押されると、遷移条件記述部１４０は、入力領域２３ａに入力された判定関数、選択画面２１の入力領域２１ｂに入力されたシンボルおよび記述形式が“判定関数”であることを示す情報で構成される遷移条件情報を、選択画面２１の入力領域２１ａに入力された条件名と対応付けて、状態遷移図記憶部１１０に格納する。
【００５１】
図８は、論理回路形式による遷移条件の入力画面例を示す図である。入力画面２４は、選択画面２１の選択領域２１ｃで“論理回路”が選択された場合に表示される。入力画面２４は、要素ボタン２４ａ，２４ｂ，２４ｃ，２４ｄ，２４ｅ，２４ｆ，２４ｇ、描画領域２４ｈおよびボタン２４ｉを有する。
【００５２】
要素ボタン２４ａ，２４ｂ，２４ｃ，２４ｄ，２４ｅ，２４ｆ，２４ｇは、開発者による論理回路の作図を視覚的に支援するためのボタンである。要素ボタン２４ａ，２４ｂ，２４ｃ，２４ｄ，２４ｅ，２４ｆ，２４ｇのいずれかのボタンが押されると、そのボタンに対応する回路要素が描画領域２４ｈに配置される。
【００５３】
要素ボタン２４ａは、入力要素を示すボタンである。入力要素は論理回路の入力変数を表す。それぞれの入力要素には変数名が設定される。要素ボタン２４ｂは、定数要素を示すボタンである。定数要素は定数を表す。それぞれの定数要素には数値などの具体的な値が設定される。
【００５４】
要素ボタン２４ｃは、比較要素を示すボタンである。比較要素は、“＋”の側に入力される値と“−”の側に入力される値とを比較し、“＋”の側の値の方が大きい場合は“１”（真）を出力し、それ以外の場合は“０”（偽）を出力する。要素ボタン２４ｄは、加減算要素を示すボタンである。加減算要素は、入力される値をすべて合計した値を出力する。ただし、“−”が付された側から入力される値は、符号を反転させて合計する。
【００５５】
要素ボタン２４ｅは、論理積要素を示すボタンである。論理積要素は、入力される値がすべて“０”以外（真）の場合は“１”（真）を出力し、それ以外の場合は“０”（偽）を出力する。要素ボタン２４ｆは、論理和要素を示すボタンである。論理和要素は、入力される値がすべて“０”（偽）の場合には“０”（偽）を出力し、それ以外の場合には“１”（真）を出力する。要素ボタン２４ｇは、出力要素を示すボタンである。出力要素は論理回路の出力を表す。出力要素は論理回路で１つだけ記述できる。
【００５６】
描画領域２４ｈは、論理回路を描画するための描画領域である。開発者は、要素ボタン２４ａ，２４ｂ，２４ｃ，２４ｄ，２４ｅ，２４ｆ，２４ｇを用いて回路要素を描画領域２４ｈに配置し、配置した回路要素を線で接続して入出力関係を定義する。
【００５７】
ボタン２４ｉは、入力内容を確定するためのボタンである。ボタン２４ｉが押されると、遷移条件記述部１４０は、描画領域２４ｈに入力された論理回路、選択画面２１の入力領域２１ｂに入力されたシンボルおよび記述形式が“論理回路”であることを示す情報で構成される遷移条件情報を、選択画面２１の入力領域２１ａに入力された条件名と対応付けて、状態遷移図記憶部１１０に格納する。
【００５８】
このように、開発者は、選択画面２１および入力画面２２，２３，２４を用いて、遷移条件の詳細を入力することができる。なお、本実施の形態では選択画面２１および入力画面２２，２３，２４をそれぞれ別個の画面としたが、これらを１つの画面としてもよい。
【００５９】
次に、以上のような装置の構成および入力データの構造のもとで実行されるソースコード生成処理の詳細を説明する。
図９は、ソースコード生成処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
【００６０】
［ステップＳ１１］ソースコード生成部１６０は、状態遷移図確認部１５０から状態遷移図とそれぞれの状態遷移に対応する遷移条件情報とを受け取ると、状態遷移図に記述されたそれぞれの状態遷移について、以下のステップＳ１２からステップＳ２０までの処理を繰り返す。
【００６１】
［ステップＳ１２］ソースコード生成部１６０は、ステップＳ１１で選択した状態遷移に付加された条件名と対応付けられている遷移条件情報から、記述形式の情報を抽出する。そして、ソースコード生成部１６０は、遷移条件の記述形式が論理回路であるか否か判断する。論理回路である場合には、処理がステップＳ１３に進められる。論理回路でない場合には、処理がステップＳ１６に進められる。
【００６２】
［ステップＳ１３］ソースコード生成部１６０は、ステップＳ１１で選択した状態遷移に対応する遷移条件情報を論理回路変換部１６３へ渡す。論理回路変換部１６３は、受け取った遷移条件情報から遷移条件である論理回路を抽出し、抽出した論理回路を同等の意味をもつ論理式に変換する。論理回路から論理式への変換方法は、後で詳細に説明する。
【００６３】
［ステップＳ１４］論理回路変換部１６３は、ステップＳ１３で変換した論理式を含む判定関数のコードを生成する。具体的には、論理回路変換部１６３は、ステップＳ１３で受け取った遷移条件情報に含まれるシンボルを判定関数の関数名とし、ステップＳ１３で変換した論理式の評価結果が真の場合には“ｔｒｕｅ”を、偽の場合には“ｆａｌｓｅ”を戻り値として返す判定関数のコードを生成する。
【００６４】
［ステップＳ１５］論理回路変換部１６３は、ステップＳ１４で生成した判定関数を呼び出す関数呼び出し文を作成し、作成した関数呼び出し文を埋め込んだ条件分岐のコードを生成する。
【００６５】
［ステップＳ１６］ソースコード生成部１６０は、ステップＳ１２で抽出した記述形式の情報に基づいて、遷移条件の記述形式が判定関数であるか否か判断する。判定関数である場合には、処理がステップＳ１７に進められる。判定関数でない場合には、処理がステップＳ１９に進められる。
【００６６】
［ステップＳ１７］ソースコード生成部１６０は、ステップＳ１１で選択した状態遷移に対応する遷移条件情報を判定関数変換部１６２へ渡す。判定関数変換部１６２は、受け取った遷移条件情報から遷移条件である判定関数を抽出し、遷移条件情報に含まれるシンボルを関数名とする判定関数のコードを生成する。
【００６７】
［ステップＳ１８］判定関数変換部１６２は、ステップＳ１７で生成した判定関数を呼び出す関数呼び出し文を作成し、作成した関数呼び出し文を埋め込んだ条件分岐のコードを生成する。
【００６８】
［ステップＳ１９］ソースコード生成部１６０は、ステップＳ１２で抽出した記述形式の情報に基づいて、遷移条件の記述形式が論理式であるか否か判断する。論理式である場合には、処理がステップＳ２０に進められる。論理式でない場合には、記述形式の選択が不適切であるため、ステップＳ１１で選択した状態遷移についての処理を終了する。
【００６９】
［ステップＳ２０］ソースコード生成部１６０は、ステップＳ１１で選択した状態遷移に対応する遷移条件情報を論理式変換部１６１へ渡す。論理式変換部１６１は、受け取った遷移条件情報から遷移条件である論理式を抽出し、抽出した論理式が埋め込まれた条件分岐のコードを生成する。
【００７０】
［ステップＳ２１］ソースコード生成部１６０は、状態遷移図確認部１５０から受け取った状態遷移図に基づいて、条件判定以外の処理を記述した処理コードを生成する。状態遷移図からの処理コードの生成は、特許文献１に記載の生成方法などを用いて実現できる。これにより、現在の状態を記憶する変数の宣言、イベントの検出、状態の遷移、状態遷移時の処理の実行などを実現するコードが生成される。ただし、遷移条件を評価して条件分岐を行う箇所には、条件名のみを埋め込んでおく。
【００７１】
［ステップＳ２２］ソースコード生成部１６０は、ステップＳ２１で生成された処理コードに埋め込まれた条件名を検出し、検出した箇所の文字列を、ステップＳ１５，Ｓ１８，Ｓ２０で生成された対応する条件分岐のコードにそれぞれ置き換える。さらに、ソースコード生成部１６０は、ステップＳ１４，Ｓ１７で生成された判定関数のコードを処理コードに追加して、ソースコードを出力する。
【００７２】
ここで、ステップＳ１３で行われる論理回路から論理式への変換は、以下の方法で実現できる。まず、ソースコード生成部１６０は、論理回路のそれぞれの回路要素に対して識別記号を割り当てる。次に、ソースコード生成部１６０は、回路要素ごとに、識別記号、変数名および定数値を用いて、入力値から出力値を計算する式を作成する。ここで、比較要素では比較演算子“＞”、加減算要素では算術演算子“＋”または“−”、論理積要素では論理演算子“＆＆”、論理和要素では論理演算子“｜｜”を演算子としてそれぞれ用いる。例えば、識別記号が“Ａ７”の比較要素において、“＋”側の入力に変数名が“ｃ”の変数要素が接続され、“−”側の入力に識別記号が“Ａ８”の加減算要素が接続されているとき、“Ａ７＝ｃ＞Ａ８”という計算式が作成される。
【００７３】
そして、ソースコード生成部１６０は、出力要素に対応する計算式から順に式を展開していく。例えば、“Ａ７＝ｃ＞Ａ８”と“Ａ８＝ａ−ｂ”の２つの計算式があるとき、前者に後者を代入すると“Ａ７＝ｃ＞ａ−ｂ”という計算式が得られる。このようにして計算式を順に展開すると、左辺に出力要素の識別記号のみをもち、右辺に識別記号を含まない式をもつ計算式が作成される。ここで、右辺の式が論理回路と同様の意味をもつ論理式となる。
【００７４】
このようにして、ソースコード生成部１６０は、状態遷移図と遷移条件情報とから、それぞれの遷移条件の記述形式に応じた構造をもつソースコードを自動的に生成する。
次に、以上のような処理によって生成されるソースコードについて説明する。本実施の形態で生成されるソースコードは、Ｃ言語で記述されたものである。
【００７５】
図１０は、生成されるソースコード例を示す図である。ソースファイル１２１は、ソースファイル記憶部１２０に格納されている。ソースファイル１２１に記述されたソースコードは、図４に示した状態遷移図に基づいて生成されたものである。なお、状態遷移１１１ｄの遷移条件の記述形式は論理式、状態遷移１１１ｅの遷移条件の記述形式は判定関数、状態遷移１１１ｆの遷移条件の記述形式は論理回路であるとする。
【００７６】
条件分岐文１２１ａは、プログラムの実行中に発生するイベントを検出するコードである。状態遷移図に記述されたイベント“ｅｖｅｎｔ１−１”、“ｅｖｅｎｔ１−２”、“ｅｖｅｎｔ２−１”、“ｅｖｅｎｔ２−２”、“ｅｖｅｎｔ３”のいずれかが発生すると、以後の処理が開始される。
【００７７】
条件分岐文１２１ｂは、プログラムの現在の状態に応じて以後の処理の内容を変えるためのコードである。現在の状態が、状態遷移図に記述された状態“ＳＴＡＴＥ１”、“ＳＴＡＴＥ２”、“ＳＴＡＴＥ３”のいずれであるか判断される。
【００７８】
条件分岐文１２１ｃは、状態遷移１１１ｄの遷移条件が満たされているか否か判断するコードである。ここで、状態遷移１１１ｄの遷移条件の記述形式が論理式であるので、条件分岐文の中に論理式が埋め込まれたコードが生成される。遷移条件が満たされているときは、“ａｃｔ１−１”の処理が実行された後、状態が“ＳＴＡＴＥ２”に遷移する。
【００７９】
条件分岐文１２１ｄは、状態遷移１１１ｅの遷移条件が満たされているか否か判断するコードである。ここで、状態遷移１１１ｅの遷移条件の記述形式が判定関数であるので、条件分岐文の中に関数呼び出し文が埋め込まれたコードが生成される。遷移条件が満たされているときは、“ａｃｔ１−２”の処理が実行された後、状態が“ＳＴＡＴＥ３”に遷移する。
【００８０】
条件分岐文１２１ｅは、状態遷移１１１ｆの遷移条件が満たされているか否か判断するコードである。ここで、状態遷移１１１ｆの遷移条件の記述形式が論理回路であるので、条件分岐文の中に関数呼び出し文が埋め込まれたコードが生成される。遷移条件が満たされているときは、“ａｃｔ２−１”の処理が実行された後、状態が“ＳＴＡＴＥ１”に遷移する。
【００８１】
関数１２１ｆは、条件分岐文１２１ｄの中で呼び出される判定関数である。関数１２１ｆの処理内容のコードは、入力画面２３に入力されたコードと同一である。関数１２１ｇは、条件分岐文１２１ｅの中で呼び出される判定関数である。関数１２１ｇの処理内容のコードは、入力画面２４に入力された論理回路と同等の意味をもつ論理式に基づいて真偽を判定するコードである。
【００８２】
なお、ソースファイル１２１では、状態遷移の直前に実行される処理を記述すべき箇所にアクション名のみが記述されているが、予め別手段で処理内容を示すコードを入力しておくことで、そのコードがアクション名の位置に埋め込まれるようにすることができる。また、生成後に開発者がソースコードを編集するようにしてもよい。
【００８３】
このようなソースコード生成装置を用いることで、開発者は記述する遷移条件の性質に応じて、適切な記述形式を選択することができる。例えば、簡単な遷移条件の場合には、論理式による記述が適切である。遷移条件を判定する過程で複数ステップの計算が必要な場合には、判定関数による記述が適切である。複雑な比較演算や論理演算が必要な遷移条件の場合には、論理回路による記述が適切である。適切な記述形式を選択できることで、開発者の入力ミスが減り、生成されるプログラムの品質が向上する。
【００８４】
また、選択された記述形式に適した構造をもつソースコードが自動的に生成される。例えば、論理式の場合、関数呼び出しを行わずに条件分岐文の中で直接条件判定を行うようにすることで、プログラムの処理効率が向上する。したがって、高い処理効率が求められるソフトウェアを開発する場合にも、ソースコード生成装置を使用することができ、開発効率が大幅に向上する。
【００８５】
なお、上記説明において図５に遷移条件の記述形式の選択画面例を示したが、この選択画面例と異なる構成の選択画面も考えられる。
図１１は、遷移条件の記述形式の選択画面の他の例を示す図である。選択画面２５は、入力領域２５ａ，２５ｂ、選択領域２５ｃおよびボタン２５ｄを有する。入力領域２５ａ，２５ｂおよびボタン２５ｄの機能は、選択画面２１における入力領域２１ａ，２１ｂおよびボタン２１ｄの機能とそれぞれ同一である。選択領域２５ｃは、遷移条件の記述形式を１つ選択するための選択領域である。選択画面２１の選択領域２１ｃはラジオボタン形式を用いているが、選択領域２５ｃはプルダウン形式を用いている。プルダウン形式にすることで、より小さい画面領域で選択領域を構成することができる。
【００８６】
また、本実施の形態ではＣ言語で記述されたソースコードを生成したが、本実施の形態に係るソースコード生成装置は、さまざまなプログラミング言語への応用が可能である。生成されるソースコードの記述は汎用的な内容であり、さまざまな分野のソフトウェア開発に適用することができる。さらに、本実施の形態では、遷移条件の記述形式を３つの記述形式の中から選択できるようにしたが、これ以外の記述形式を選択できるように拡張することも容易である。
【００８７】
以上、本発明のソースコード生成装置、ソースコード生成方法およびソースコード生成プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００８８】
また、本発明は、前述した実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ソースコード生成装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどが挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などが挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）などが挙げられる。
【００８９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９０】
ソースコード生成プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【００９１】
【図１】実施の形態に適用される発明の概念図である。
【図２】ソースコード生成装置のハードウェア構成を示す図である。
【図３】ソースコード生成装置の機能を示すブロック図である。
【図４】ソースコードの生成に使用される状態遷移図の例である。
【図５】遷移条件の記述形式の選択画面例を示す図である。
【図６】論理式形式による遷移条件の入力画面例を示す図である。
【図７】判定関数形式による遷移条件の入力画面例を示す図である。
【図８】論理回路形式による遷移条件の入力画面例を示す図である。
【図９】ソースコード生成処理の手順を示すフローチャートである。
【図１０】生成されるソースコード例を示す図である。
【図１１】遷移条件の記述形式の選択画面の他の例を示す図である。
【符号の説明】
【００９２】
２  状態遷移図
２ａ，２ｂ  状態
２ｃ  状態遷移
３  入出力装置
４  遷移条件情報
５  ソースコード
１０  ソースコード生成装置
１１  状態遷移図記憶手段
１２  入力画面表示手段
１３  遷移条件情報取得手段
１４  ソースコード生成手段
１４ａ，１４ｂ，１４ｃ  判定コード生成機能
【図１】
0004670724.tif 000002
【図２】
0004670724.tif 000003
【図３】
0004670724.tif 000004
【図４】
0004670724.tif 000005
【図５】
0004670724.tif 000006
【図６】
0004670724.tif 000007
【図７】
0004670724.tif 000008
【図８】
0004670724.tif 000009
【図９】
0004670724.tif 000010
【図１０】
0004670724.tif 000011
【図１１】
0004670724.tif 000012