(57)【特許請求の範囲】
【請求項１】
処理の項目を表す処理項目と、前記処理項目に含まれる操作を表す操作情報と、例外処理を表す例外処理情報とを含む処理項目リストを記憶する処理項目リスト記憶部と、
前記処理項目リストに基づいて記述された前記処理項目の振舞いを記述する振舞い記述情報を記憶する振舞い記述情報記憶部と、
前記処理項目を用いて、クラスを定義するソースコードを生成する振舞い記述生成部と、
前記操作情報を用いて、前記操作を定義するソースコードを生成する操作生成部と、
前記例外処理情報を用いて、前記操作の実行中に発生する前記例外処理を表すソースコードを生成する例外記述生成部と、
前記振舞い記述情報を用いて、前記操作の条件分岐を表すソースコードを生成する条件記述生成部と、
前記振舞い記述情報を用いて、前記操作の処理内容を表すソースコードを生成する処理記述生成部と
を備えるソースコード生成システム。
【請求項２】
前記処理項目リストは、
前記操作として複数の操作を表す前記操作情報を有し、
前記操作生成部は、
前記複数の操作の各操作を定義するソースコードを生成し、
前記例外記述生成部は、
前記複数の操作の各操作を定義するソースコードに対して前記例外処理を表すソースコードを割り付ける請求項１に記載のソースコード生成システム。
【請求項３】
前記処理項目リストは、
前記処理項目として、複数の処理項目を有し、前記複数の処理項目の各々に優先度が設定され、
前記ソースコード生成システムは、
前記処理項目の各々に設定された優先度に基づいて、実行中の処理項目の優先度と実行が要求された処理項目の優先度とを比較し、優先度が高い方の処理項目を実行する優先度制御機能を有する優先度制御ソースコードを生成する優先度制御生成部を備える請求項１または２に記載のソースコード生成システム。
【請求項４】
前記処理項目リストは、
前記処理項目として、複数の処理項目を有し、
前記複数の処理項目の各々に優先度が設定されるとともに、前記複数の処理項目の各々が上位の階層である親処理項目を有し、
実行中の処理項目の親処理項目の優先度と、実行が要求された処理項目の親処理項目の優先度とに基づいて、実行が要求された処理項目の実行の可否を判定する優先度制御機能を有する優先度制御ソースコードを生成する優先度制御生成部を備える請求項１または２に記載のソースコード生成システム。
【請求項５】
前記優先度制御生成部は、
実行が要求された処理項目の親処理項目と異なる親処理項目を有する実行中の処理項目がある場合には、前記実行が要求された処理項目の親処理項目の優先度と前記実行中の処理項目の親処理項目の優先度とを比較し、優先度が低い方の親処理項目を有する処理項目の実行を不可とする請求項４に記載のソースコード生成システム。
【請求項６】
処理の項目を表す処理項目と、前記処理項目に含まれる操作を表す操作情報と、例外処理を表す例外処理情報とを含む処理項目リストと、前記処理項目リストに基づいて記述された前記処理項目の振舞いを記述する振舞い記述情報とを取得する取得部と、
前記処理項目を用いて、クラスを定義するソースコードを生成する振舞い記述生成部と、
前記操作情報を用いて、前記操作を定義するソースコードを生成する操作生成部と、
前記例外処理情報を用いて、前記操作の実行中に発生する前記例外処理を表すソースコードを生成する例外記述生成部と、
前記振舞い記述情報を用いて、前記操作の条件分岐を表すソースコードを生成する条件記述生成部と、
前記振舞い記述情報を用いて、前記操作の処理内容を表すソースコードを生成する処理記述生成部と
を備えるソースコード生成装置。
【請求項７】
処理の項目を表す処理項目と、前記処理項目に含まれる操作を表す操作情報と、例外処理を表す例外処理情報とを含む処理項目リストを記憶する処理項目リスト記憶部と、前記処理項目リストに基づいて記述された前記処理項目の振舞いを記述する振舞い記述情報を記憶する振舞い記述情報記憶部と、振舞い記述生成部と、操作生成部と、例外記述生成部と、条件記述生成部と、処理記述生成部とを備えるソースコード生成システムのソースコード生成方法において、
前記振舞い記述生成部が、前記処理項目を用いてクラスを定義するソースコードを生成し、
前記操作生成部が、前記操作情報を用いて前記操作を定義するソースコードを生成し、
前記例外記述生成部が、前記例外処理情報を用いて前記操作の実行中に発生する前記例外処理を表すソースコードを生成し、
前記条件記述生成部が、前記振舞い記述情報を用いて前記操作の条件分岐を表すソースコードを生成し、
前記処理記述生成部が、前記振舞い記述情報を用いて前記操作の処理内容を表すソースコードを生成するソースコード生成方法。
【請求項８】
処理の項目を表す処理項目と、前記処理項目に含まれる操作を表す操作情報と、例外処理を表す例外処理情報とを含む処理項目リストと、前記処理項目リストに基づいて記述された前記処理項目の振舞いを記述する振舞い記述情報とを取得する取得処理と、
前記処理項目を用いてクラスを定義するソースコードを生成する振舞い記述生成処理と、
前記操作情報を用いて前記操作を定義するソースコードを生成する操作生成処理と、
前記例外処理情報を用いて前記操作の実行中に発生する前記例外処理を表すソースコードを生成する例外記述生成処理と、
前記振舞い記述情報を用いて前記操作の条件分岐を表すソースコードを生成する条件記述生成処理と、
前記振舞い記述情報を用いて前記操作の処理内容を表すソースコードを生成する処理記述生成処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコード生成システム、ソースコード生成装置、ソースコード生成方法及びプログラムに関する。
【背景技術】
【０００２】
代表的なモデル記述言語であるＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）では、静的モデルとしてクラス図、動的モデルとして状態遷移図、シーケンス図、アクティビティ図などがある。標準で規定されているのは、個々の図で利用するモデル要素、すなわちクラスの箱や状態の書き方、条件の書き方のみであり、記載する内容や図間の整合性などは設計者に委ねられている。
【０００３】
組込み製品においては、センサ、ディスプレイ等のハードウェア機器上で発生する故障、異常等の「例外」事象に対応したソフトウェアの例外処理が重要であるが、ＵＭＬでの記載方法は定まっていない。
また、ユースケ―ス分析において、ユースケース記述の中のシナリオの１つとしてユースケース図が記述される場合がある。しかし、ユースケース図は要求レベルの形式化されていないテキストであるため、コード生成するには、詳細設計レベルの設計情報との紐付けとコード生成の作り込みが必要であり、作成に時間がかかっている。
【０００４】
また、機能実行中の割込みに対応して「処理の優先度」に応じた実行制御を行う必要があり、一般的には、タスクの競合分析により、タスク単位で競合関係をマトリクスで整理する場合がある。タスクは、ソフトウェア設計レベルのデータであり、例外処理と同様に、詳細設計レベルの設計情報との紐付けとコード生成の作り込みが必要である。
【０００５】
特許文献１では、例外処理を定義して、自動的にソースコードに埋め込むことが可能である。
また、特許文献２では、階層化された機能項目ごとに、優先順位を記入するようにして、その実行優先順位情報に基づいて、ソースコードを実行することが可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−０９４９２２号公報
【特許文献２】特開２０１２−２５２５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、状態遷移図をインプットとして、定義された状態以外になった場合の１つの条件分岐文、すなわちｉｆに対するｅｌｓｅなどを出力することができるが、複数パターンの例外処理の分岐を出力することはできないという課題があった。
【０００８】
本発明では、すべての例外事象の条件分岐を表すソースコードを出力することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るソースコード生成システムは、
処理の項目を表す処理項目と、前記処理項目に含まれる操作を表す操作情報と、例外処理を表す例外処理情報とを含む処理項目リストを記憶する処理項目リスト記憶部と、
前記処理項目リストに基づいて記述された前記処理項目の振舞いを記述する振舞い記述情報を記憶する振舞い記述情報記憶部と、
前記処理項目を用いて、クラスを定義するソースコードを生成する振舞い記述生成部と、
前記操作情報を用いて、前記操作を定義するソースコードを生成する操作生成部と、
前記例外処理情報を用いて、前記操作の実行中に発生する前記例外処理を表すソースコードを生成する例外記述生成部と、
前記振舞い記述情報を用いて、前記操作の条件分岐を表すソースコードを生成する条件記述生成部と、
前記振舞い記述情報を用いて、前記操作の処理内容を表すソースコードを生成する処理記述生成部とを備える。
【発明の効果】
【００１０】
本発明に係るソースコード生成システムは、処理項目と操作情報と例外処理情報とを含む処理項目リストを記憶する処理項目リスト記憶部と、処理項目リストに基づいて記述された処理項目の振舞いを記述する振舞い記述情報を記憶する振舞い記述情報記憶部と、処理項目を用いて、クラスを定義するソースコードを生成する振舞い記述生成部と、操作情報を用いて、操作を定義するソースコードを生成する操作生成部と、例外処理情報を用いて、操作の実行中に発生する例外処理を表すソースコードを生成する例外記述生成部とを備えるので、操作時に発生する例外処理を表すソースコードを生成することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るソースコード生成システム８００のブロック構成図。
【図２】実施の形態１に係るソースコード生成システム８００における仕様記述からソースコード生成までの流れを示す図。
【図３】実施の形態１に係る物理項目リスト１０２の具体例及び作成の手順を示す図。
【図４】実施の形態１に係る物理項目の振舞い記述１０４の具体例及び作成の手順を示す図。
【図５】実施の形態１に係る機能項目リスト１０３の具体例及び作成の手順を示す図。
【図６】実施の形態１に係る機能項目の振舞い記述１０５の具体例及び作成の手順を示す図。
【図７】実施の形態１に係るソースコード生成装置２０におけるソースコード生成方法、ソースコード生成処理Ｓ１０の動作を示すフロー図。
【図８】実施の形態１に係る物理項目リストと物理項目の振舞い記述とから生成したソースコードの例を示す図。
【図９】実施の形態１に係る機能項目リストと機能項目の振舞い記述とから生成したソースコードの例を示す図。
【図１０】実施の形態１に係るソースコード生成装置２０のハードウェア構成図。
【図１１】実施の形態２に係るソースコード生成システム８００ａのブロック構成図。
【図１２】実施の形態２に係る優先度制御ソースコード３０３１を実現する優先度制御部３０３１ａの優先度制御処理の動作を示すフロー図。
【図１３】実施の形態２に係る優先度制御部３０３１ａによる各機能の継承関係の例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１を用いて、本実施の形態に係るソースコード生成装置２０のブロック構成について説明する。
本実施の形態では、物理項目に対して発生しうる例外事象と機能項目に対する処理の優先度と仕様記述方法とコード生成方法とを示す。
【００１３】
＊＊＊構成の説明＊＊＊
ソースコード生成システム８００は、処理項目リスト記憶部１０７１、振舞い記述情報記憶部１０８１、ソースコード生成装置２０、ソースコード３０を有する。
ソースコード生成装置２０は、取得部４０とソースコード生成部５０と優先度制御生成部６０とを有する。
取得部４０は、物理項目リスト１０２、機能項目リスト１０３、物理項目の振舞い記述１０４、機能項目の振舞い記述１０５を入力とする。
【００１４】
物理項目リスト１０２、機能項目リスト１０３は、処理項目リスト１０７の例である。
物理項目の振舞い記述１０４、機能項目の振舞い記述１０５は、振舞い記述情報１０８の例である。
【００１５】
処理項目リスト記憶部１０７１は、処理の項目を表す処理項目１０７２と、処理項目１０７２に含まれる操作を表す操作情報１０７３と、例外処理を表す例外処理情報１０７４とを含む処理項目リスト１０７を記憶する。処理項目リスト記憶部１０７１は、処理項目リスト１０７として、物理項目リスト１０２と機能項目リスト１０３とを記憶する。
【００１６】
振舞い記述情報記憶部１０８１は、処理項目リスト１０７に基づいて記述された処理項目１０７２の振舞いを記述する振舞い記述情報１０８を記憶する。振舞い記述情報記憶部１０８１は、振舞い記述情報１０８として、物理項目の振舞い記述１０４と機能項目の振舞い記述１０５とを記憶する。
処理項目リスト１０７は、操作として複数の操作１０７３ａを表す操作情報１０７３を有する。
【００１７】
ソースコード生成部５０は、振舞い記述生成部５０１、操作生成部５０２、例外記述生成部５０３、条件記述生成部５０４、処理記述生成部５０５を有する。
振舞い記述生成部５０１は、処理項目１０７２を用いて、クラスを定義するソースコードを生成する。
操作生成部５０２は、操作情報１０７３を用いて、操作を定義するソースコードを生成する。操作生成部５０２は、複数の操作の各操作を定義するソースコードを生成する。
例外記述生成部５０３は、例外処理情報１０７４を用いて、操作の実行中に発生する例外処理を表すソースコードを生成する。例外記述生成部５０３は、複数の操作の各操作を定義するソースコードに対して例外処理を表すソースコードを割り付ける。
条件記述生成部５０４は、振舞い記述情報１０８を用いて、操作の条件分岐を表すソースコードを生成する。
処理記述生成部５０５は、振舞い記述情報１０８を用いて、操作の処理内容を表すソースコードを生成する。
【００１８】
各構成部についてさらに詳しく説明する。
振舞い記述生成部５０１は、物理項目リスト１０２および機能項目リスト１０３で定義された全ての物理項目および機能項目毎に１つのクラスを生成する。ここでクラスとは、ソースコードの形式で生成されたものである。クラスの名称には、物理項目および機能項目毎、すなわち処理項目１０７２毎に定義したラベル名を使用する。
次に、物理項目リスト１０２および機能項目リスト１０３、すなわち処理項目リスト１０７で、自項目の上位階層項目が定義されているものについては、その上位階層の項目から生成されたクラスと親子関係があることを示す継承コードを生成する。振舞い記述生成部５０１は、生成した継承コードをソースコードの形式で生成されたクラスに追記する。
【００１９】
操作生成部５０２は、物理項目リスト１０２および機能項目リスト１０３で定義された全ての操作毎に１つのメソッドを生成し、当該操作が属する機能のクラス内に配置する。ここでメソッドとは、ソースコードの形式で生成されたものである。メソッドの名称には、操作毎に定義したラベル名を使用する。メソッドのソースコードを生成するとは、操作を定義するソースコードを生成することである。
【００２０】
例外記述生成部５０３は、物理項目リスト１０２で定義された例外毎に例外コードを生成し、その例外が属する物理項目のすべてのメソッドに例外コードを配置する。
【００２１】
条件記述生成部５０４は、物理項目の振舞い記述１０４および機能項目の振舞い記述１０５、すなわち振舞い記述情報１０８で定義された全ての条件記述について、同じ内容となるｉｆ文を生成する。ここでｉｆ文の判定対象として使用する属性名称は、物理項目リスト１０２または機能項目リスト１０３において属性名称とラベルを対にして定義しており、ソースコードには当該ラベルを使用する。また、生成したｉｆ文は、物理項目の振舞い記述１０４および機能項目の振舞い記述１０５で定義した操作のソースコード内にて、記述した順番通りに配置する。
【００２２】
処理記述生成部５０５では、物理項目の振舞い記述１０４および機能項目の振舞い記述１０５で定義された全ての処理記述について、同じ内容となる制御文を生成する。制御文内で使用する属性名称は、物理項目リスト１０２または機能項目リスト１０３において属性名称とラベルを対にして定義しており、ソースコードには当該ラベルを使用する。また、生成した制御文は、物理項目の振舞い記述１０４および機能項目の振舞い記述１０５で定義した操作のソースコード内にて、記述した順番通りに配置する。
【００２３】
優先度制御生成部６０は、処理項目１０７２の各々に設定された優先度１０７５に基づいて、実行中の処理項目の優先度と実行が要求された処理項目の優先度とを比較し、優先度が高い方の処理項目を実行する優先度制御機能を有する優先度制御ソースコード３０３を生成する。
なお、優先度制御生成部６０は無くてもよく、機能の優先順位の制御プログラムを各機能のソースコードに持つ構成でも構わない。
【００２４】
図２を用いて、本実施の形態に係るソースコード生成システム８００における仕様記述からソースコード生成までの流れについて説明する。
仕様が記述されたインプット仕様書１０１から、ハードウェアを抽出し、故障、電源断、異常値検出などの発生する可能性のある例外項目の定義を物理項目リスト１０２に列挙する。また、インプット仕様書１０１から、ソフトウェアの機能を抽出し、優先度の定義を機能項目リスト１０３に列挙する。
【００２５】
物理項目リスト１０２の項目ごとに、物理項目の振舞い記述１０４に日本語の振舞い記述言語により、例外発生時の例外と振舞いを定義する。
機能項目リスト１０３の項目ごとに、機能の振舞いの定義を機能項目の振舞い記述１０５に記述する。
【００２６】
ソースコード生成装置２０に、物理項目リスト１０２、物理項目の振舞い記述１０４、機能項目リスト１０３、機能項目の振舞い記述１０５を入力して、物理項目クラス３０１、機能項目クラス３０２のソースコード３０を生成する。
【００２７】
図３を用いて、本実施の形態に係る物理項目リスト１０２の具体例及び作成の手順について説明する。物理項目リスト１０２では、ハードウェアの項目を階層化して表記する。
【００２８】
物理項目は、処理の項目であるクラスを表す処理項目１０７２の例である。
物理項目リスト１０２、すなわち処理項目リスト１０７は、処理項目１０７２として、複数の処理項目１０７２ａを有する。また、複数の処理項目１０７２ａの各々が上位の階層である親処理項目１０７２１を有する。最上位の処理項目には親処理項目はない。
具体的には、物理項目リスト１０２には、物理項目ごとに、物理名称である名称とソースコード生成時に用いるラベルとを階層的に記載する。階層が下になるほど物理項目を詳細化する。
物理項目の名称として、センサの階層の下にセンサ１とセンサ２とを記載し、物理項目のラベルとして、センサに対応するＳｅｎｓｏｒ、センサ１に対応するＳｅｎ１、センサ２に対応するＳｅｎ２と記載する。
例えば、センサが親物理項目、すなわち親処理項目１０７２１であり、センサ１、センサ２が子物理項目、すなわち子処理項目１０７２２となる。
【００２９】
また、物理項目ごとに操作の名称、操作のラベルを記載する。図３では、センサ１の操作の名称として、起動と値取得を記載し、それぞれのラベルＯｐｅＹ，ＯｐｅＺを記載する。
【００３０】
それぞれの操作に対して、属性の名称、属性のラベル、属性の範囲、属性の初期値を記載する。すべての操作に共通する属性は、どの操作にも属さない行に記載する。図３では「起動」と、「値取得」という名称の操作に対して共通する、電源状態という属性の名称を記載している。「電源状態」という属性の名称に対して、ラベルをＡｔｔｒＮ、範囲をＰＯＷＥＲＯＮとＰＯＷＥＲＯＦＦとした。
【００３１】
物理項目に対して例外項目がある場合は、例外の名称と例外のラベルとを記載する。図３では、「センサ１」という物理項目の名称に対して、「電源断」という例外の名称と、ＰＯＷＥＲＯｆｆＥｖｅｎｔという例外のラベルを記載している。
【００３２】
図４を用いて、本実施の形態に係る物理項目の振舞い記述１０４の具体例及び作成の手順について説明する。
物理項目リスト１０２の物理項目ごとに、物理項目の振舞い記述１０４を作成する。図４では「センサ１」についての振舞い記述を記載した。
物理項目の振舞い記述１０４では、物理項目の名称、概要、目的を記載したあと、物理項目の振舞い記述を記載する。
【００３３】
物理項目リスト１０２において、振舞い記述の作成対象である物理項目に、例外処理があれば、［］のカッコの中に例外の名称を記載する。
また、処理を表す処理記述は先頭に・をつける。
図４では、「電源断」という例外処理が起きた場合、電源状態をＰＯＷＥＲＯＦＦにするという処理を記述している。
また、操作に対しては＜＞のカッコで表し、＜＞のカッコの中に操作の名称を記載する。
【００３４】
図５を用いて、本実施の形態に係る機能項目リスト１０３の具体例及び作成の手順について説明する。機能項目リスト１０３では、システムに要求される機能を階層化して表記する。
機能項目は、処理の項目であるクラスを表す処理項目１０７２の例である。
機能項目リスト１０３、すなわち処理項目リスト１０７は、処理項目として、複数の処理項目を有し、複数の処理項目の各々に優先度１０７５が設定される。また、複数の処理項目の各々が上位の階層である親処理項目を有する。最上位の処理項目には親処理項目はない。以下で説明する優先レベルは、優先度１０７５の例である。
【００３５】
機能項目リスト１０３では、まずシステムが要求する機能を抽出する。そして、抽出した各機能を大分類・中分類・小分類というように階層的に整理する。階層の深さに制限を設ける必要は無く、また機能により階層の深さが異なっていても良い。
図５の例では、機能項目の欄に、上位階層から順に機能の名称が設定される。大分類が機能Ａ、中分類が機能Ａ１及び機能Ａ２と設定されている。また、大分類が機能Ｂ、中分類が機能Ｂ１及び機能Ｂ２、機能Ｂ２の小分類として機能Ｂ２１及び機能Ｂ２２と設定されている。なお、ここで機能の名称に使用する名前、すなわち文字列に制限は無い。
例えば、機能Ａが親機能項目、すなわち親処理項目であり、機能Ａ１、機能Ａ２が子機能項目、すなわち子処理項目となる。また、子機能項目、すなわち子処理項目を機能Ｂ２１、機能Ｂ２２とすると、親機能項目、すなわち親処理項目は機能Ｂ２である。
【００３６】
次に、各機能についてシステムが要求する優先度１０７５を検討する。この優先度１０７５とは、同じ階層に分類した機能同士の実行優先度を指している。図５の例では、機能Ａと機能Ｂの優先レベルは、それぞれ１と２であるため、機能Ａの優先度が機能Ｂの優先度よりも高いことになる。
上記優先度は、上位階層の機能が同じである機能同士では固有の値を指定する必要がある。一方、上位階層が異なる機能同士では優先度の値が重複しても良い。図５の例では、上位階層が機能Ａである中分類の機能Ａ１と機能Ａ２との優先レベルは、それぞれ１と２である。また、同じ中分類であるが上位階層が機能Ｂである中分類の機能Ｂ１と機能Ｂ２との優先レベルについても、それぞれ１と２とが設定されている。
【００３７】
次に、各機能にラベルを設定する。これは、ソースコード生成の際、クラス名に使用される。そのため、生成するコードのプログラミング言語仕様に則った命名をする必要がある。
【００３８】
続いて、機能項目リスト１０３の作成において定義した各機能の具体的な仕様を機能仕様として定義する。機能仕様は操作情報１０７３の例である。機能仕様には、大きく分けて操作と属性がある。
【００３９】
まず操作の項目では、各機能において必要となる処理内容を抽出し、その処理に対して名称を付ける。この名称は、一つの機能内で固有である必要がある。
次に、抽出した各操作にラベルを設定する。これは、ソースコード生成の際、メソッド名に使用される。そのため、生成するコードのプログラミング言語仕様に則った命名をする必要がある。
【００４０】
次に属性の項目では、各操作で使用するデータを抽出し、抽出したデータに対して名称を付ける。抽出したデータに対して付する名称は、一つの操作内で固有である必要がある。
抽出した各属性にラベルを設定する。このラベルは、ソースコード生成の際、フィールド名に使用される。そのため、生成するコードのプログラミング言語仕様に則った命名をする必要がある。
また、抽出した各属性の値域を範囲に設定する。これは、ソースコード生成の際、フィールドの値域に使用される。そのため、フィールドとして存在しえない範囲の値は設定できない。
さらに、抽出した各属性の初期値を設定する。これは、ソースコード生成の際、フィールドの初期化に使用される。そのため、フィールドとして存在しえない範囲の値は設定できない。
【００４１】
図６を用いて、本実施の形態に係る機能項目の振舞い記述１０５の具体例及び作成の手順について説明する。
機能項目の振舞い記述１０５では、機能項目リスト１０３で定義した各機能の振舞いを定義し、各機能が持つ操作毎に、処理内容の詳細を記載する。
【００４２】
まず、機能が持つ操作の１つずつについて、当該操作に属する属性をどのように使用するか具体的に検討し、どのような「条件」で、どのような「処理」を行うか明らかにする。
次に、検討した「条件」と「処理」とを、擬似言語にて記述する。この擬似言語では、使用する属性を機能項目リスト１０３に記載の名称と揃え、論理構造のみを記号化する。
【００４３】
１つの機能が持つ全ての操作は、一つの「機能項目の振舞い記述」としてまとめて記述する。
つまり、図５の機能項目リスト１０３における機能Ａ１が持つ操作Ａ及び操作Ｂについては、図６に示す１つの「機能項目の振舞い記述１０５」にまとめて記述する。
以上の手順を、機能項目リスト１０３における全ての機能について実施する。
【００４４】
＊＊＊動作の説明＊＊＊
図７を用いて、本実施の形態に係るソースコード生成装置２０におけるソースコード生成方法、ソースコード生成処理Ｓ１０の動作について説明する。
【００４５】
取得部４０は、処理項目リスト１０７と、処理項目リスト１０７に基づいて記述された処理項目１０７２の振舞いを記述する振舞い記述情報１０８とを取得する取得処理Ｓ１００を実行する。
具体的には、Ｓ７０１において、取得部４０は、物理項目リスト１０２、機能項目リスト１０３、物理項目の振舞い記述１０４、機能項目の振舞い記述１０５を取得する。
振舞い記述生成部５０１は、取得部４０により取得された物理項目の振舞い記述１０４または機能項目の振舞い記述１０５に対して、未処理のものが無い場合、処理を終了し、未処理のものが有る場合、Ｓ７０２に処理を進める。
ここで、処理対象の振舞い記述を処理対象振舞い記述とする。
【００４６】
振舞い記述生成部５０１は、処理項目１０７２を用いてクラスを定義するソースコードを生成する振舞い記述生成処理Ｓ１００ａを実行する。
具体的には、Ｓ７０２において、振舞い記述生成部５０１は、処理対象振舞い記述に基づいて、機能項目リスト１０３あるいは物理項目リスト１０２から、処理対象振舞い記述の機能名称あるいは物理名称のラベルを取得しクラスを生成する。
【００４７】
例えば、処理対象振舞い記述が物理項目の振舞い記述１０４の場合、振舞い記述生成部５０１は、図３の物理項目リスト１０２に基づいて、「センサ１」についてクラスを定義するソースコードを生成する。まず、振舞い記述生成部５０１は、物理項目リスト１０２から振舞い記述「センサ１」のラベルを取得し、物理項目クラス３０１であるＳｅｎ１クラスをソースコードとして生成する。具体的には、振舞い記述生成部５０１は、図８の１行目の「Ｃｌａｓｓ  Ｓｅｎ１」を生成する。
また、例えば、処理対象振舞い記述が機能項目の振舞い記述１０５の場合、振舞い記述生成部５０１は、図５の機能項目リスト１０３に基づいて、「機能Ａ１」についてのソースコードを生成する。まず、振舞い記述生成部５０１は、機能項目リスト１０３から振舞い記述「機能Ａ１」のラベルを取得し、機能項目クラス３０２であるＣｌａｓｓＡ１クラスをソースコードとして生成する。具体的には、振舞い記述生成部５０１は、図９の１行目の「ｃｌａｓｓ  ＣｌａｓｓＡ１」を生成する。
【００４８】
Ｓ７０２におけるクラスのソースコード生成後、処理対象振舞い記述の機能項目または物理項目について親機能項目または親物理項目が有る場合は、処理はＳ７０３に進む。処理対象振舞い記述の機能項目または物理項目について親機能項目または親物理項目が無い場合は、処理はＳ７０４に進む。
【００４９】
Ｓ７０３において、振舞い記述生成部５０１は、継承記述処理Ｓ２００を実行する。振舞い記述生成部５０１は、処理対象振舞い記述に基づいて、機能項目リスト１０３あるいは物理項目リスト１０２から、親機能項目または親物理項目の名称のラベルを取得し、継承コードを生成する。
【００５０】
処理対象振舞い記述が図３の物理項目リスト１０２の場合、振舞い記述生成部５０１は、センサ１には親物理項目である「センサ」があるので、「センサ」のラベルＳｅｎｓｏｒを取得する。振舞い記述生成部５０１は、Ｓ７０２で生成したソースコード「ｃｌａｓｓ  Ｓｅｎ１」に対して、親クラス「Ｓｅｎｓｏｒ」への継承記述を生成する。具体的には、振舞い記述生成部５０１は、図８の１行目の「：ｐｕｂｌｉｃ  Ｓｅｎｓｏｒ」を生成する。
処理対象振舞い記述が図５の機能項目リスト１０３の場合では、振舞い記述生成部５０１は、機能Ａ１には親の機能項目である「機能Ａ」があるので、「機能Ａ」のラベルＣｌａｓｓＡを取得する。振舞い記述生成部５０１は、Ｓ７０２で生成したソースコード「ｃｌａｓｓ  ＣｌａｓｓＡ１」に対して、親クラス「ＣｌａｓｓＡ」への継承記述を生成する。具体的には、振舞い記述生成部５０１は、図９の１行目の「：ｐｕｂｌｉｃ  ＣｌａｓｓＡ」を生成する。
【００５１】
Ｓ７０４において、操作生成部５０２は、処理対象振舞い記述に基づいて、未処理の操作があるか否かを判定する。操作生成部５０２は、未処理の操作が有る場合、処理をＳ７０５に進め、未処理の操作が無い場合、処理をＳ７０８に進める。
【００５２】
操作生成部５０２は、操作情報１０７３を用いて操作を定義するソースコードを生成する操作生成処理Ｓ３００を実行する。
具体的には、Ｓ７０５において、操作生成部５０２は、機能項目リスト１０３あるいは物理項目リスト１０２から、未処理の操作名称のラベルを取得しメソッドを生成する。
【００５３】
例えば、操作生成部５０２は、図３の物理項目リスト１０２の場合、センサ１には操作「起動」があるので、ラベルを取得し、メソッドをソースコードとして生成する。具体的には、操作生成部５０２は、図８の２行目の「ｖｏｉｄ  ＯｐｅＹ（）」を生成する。
また、例えば、操作生成部５０２は、図５の機能項目リスト１０３の場合、機能Ａには操作「操作Ａ」があるので、ラベルを取得し、メソッドをソースコードとして生成する。具体的には、操作生成部５０２は、図９の２行目の「ｖｏｉｄ  ＯｐｅＡ（）」を生成する。
【００５４】
例外記述生成部５０３は、例外処理情報１０７４を用いて操作の実行中に発生する例外処理を表すソースコードを生成する例外記述生成処理Ｓ４００を実行する。
Ｓ７０６において、例外記述生成部５０３は、処理対象振舞い記述に未処理の例外記述があるか否かを判定する。例外記述生成部５０３は、未処理の例外記述がある場合、処理をＳ７０７に進める。また、例外記述生成部５０３は、未処理の例外記述が無い場合、処理をＳ７０４に進める。
【００５５】
Ｓ７０７において、例外記述生成部５０３は、物理項目リスト１０２から、例外名称のラベルを取得し、操作に例外コードを追加する。
例えば、例外記述生成部５０３は、図３の物理項目リスト１０２の場合、センサ１には例外項目「電源断」があるので、「電源断」のラベルを取得し、「起動」メソッドに例外コードを追加する。具体的には、例外記述生成部５０３は、図８の３行目と５行目のように、ソースコードを生成する。
【００５６】
条件記述生成部５０４は、振舞い記述情報１０８を用いて操作の条件分岐を表すソースコードを生成する条件記述生成処理Ｓ５００を実行する。
Ｓ７０８において、条件記述生成部５０４は、処理対象振舞い記述に未処理の条件記述がある場合、処理をＳ７０９に進める。条件記述生成部５０４は、未処理の条件記述が無い場合、処理をＳ７１０に進める。
【００５７】
Ｓ７０９において、条件記述生成部５０４は、条件記述内の属性名称のラベルを取得しｉｆ文を生成する。
例えば、条件記述生成部５０４は、図５の機能項目リスト１０３の場合、操作「操作Ａ」に条件記述があるので、条件記述内の属性名称「属性Ｂ」「属性Ｃ」「属性Ｄ」「属性Ｅ」のラベルを機能項目リスト１０３から取得し、ｉｆ文を生成する。具体的には、条件記述生成部５０４は、図９の３行目と６行目のように、ソースコードを生成する。
【００５８】
処理記述生成部５０５は、振舞い記述情報１０８を用いて操作の処理内容を表すソースコードを生成する処理記述生成処理Ｓ６００を実行する。
Ｓ７１０において、処理記述生成部５０５は、処理対象振舞い記述に未処理の処理記述が有るか否かを判定する。処理記述生成部５０５は、未処理の処理記述が有る場合、処理をＳ７１１に進める。処理記述生成部５０５は、未処理の処理記述が無い場合、処理をＳ７０１に進める。
【００５９】
Ｓ７１１において、処理記述生成部５０５は、処理記述内の属性名称のラベルを取得し制御文を生成する。
例えば、処理記述生成部５０５は、図５の機能項目リスト１０３の場合、操作「操作Ａ」に未処理の処理記述があるので、条件記述内の属性名称「属性Ｆ」のラベルを取得し、制御文を生成する。具体的には、処理記述生成部５０５は、図９の４行目と７行目のように、ソースコードを生成する。
【００６０】
図８は、物理項目クラス３０１のソースコード３０の例を示す。図９は、機能項目クラス３０２のソースコード３０の例を示す。
以上のソースコード生成処理Ｓ１０により、図８及び図９に示すようなソースコード３０が自動的に出力される。
【００６１】
ソースコード生成部５０は、物理項目クラス３０１と機能項目クラス３０２とのソースコード３０を出力する。
なお、優先度制御生成部６０は、機能項目の各々に設定された優先レベルに基づいて、実行中の機能項目の優先レベルと実行が要求された機能項目の優先レベルとを比較する。優先度制御生成部６０は、優先レベルが高い方の機能項目を実行する優先度制御機能を有する優先度制御ソースコード３０３を生成する。
【００６２】
図１０を用いて、本実施の形態に係るソースコード生成装置２０のハードウェア構成について説明する。
ソースコード生成装置２０はコンピュータである。
ソースコード生成装置２０は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。
プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース９０５は、入力装置９０７に接続されている。
ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【００６３】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、データを受信するレシーバー９０４１及びデータを送信するトランスミッター９０４２を含む。
通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。
入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。
ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。
入力装置９０７は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００６４】
補助記憶装置９０２には、図１に示す振舞い記述生成部５０１、操作生成部５０２、例外記述生成部５０３、条件記述生成部５０４、処理記述生成部５０５（以下、振舞い記述生成部５０１、操作生成部５０２、例外記述生成部５０３、条件記述生成部５０４、処理記述生成部５０５をまとめて「部」と表記する）の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
更に、補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
図１０では、１つのプロセッサ９０１が図示されているが、ソースコード生成装置２０が複数のプロセッサ９０１を備えていてもよい。
そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ９０３、補助記憶装置９０２、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリにファイルとして記憶される。
【００６５】
「部」を「サーキットリー」で提供してもよい。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ９０１だけでなく、ロジックＩＣ又はＧＡ（Ｇａｔｅ  Ａｒｒａｙ）又はＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
なお、プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体、記憶装置などであり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
【００６６】
＊＊＊効果の説明＊＊＊
【００６７】
本実施の形態に係るソースコード生成装置２０では、ソースコードの雛型、条件記述、処理記述などの正常記述の自動生成に加え、例外と処理の優先度とを考慮したソースコードの自動生成が可能となる。よって、ソースコード作成時間を削減する効果がある。
【００６８】
本実施の形態に係るソースコード生成装置２０では、ハードウェア物理項目に対して、任意の例外を定義した物理項目リストから物理項目リストに定義されている各操作をソースコードとして生成する。生成された全操作のソースコードに対して、同一のハードウェア物理項目に対する全例外のソースコードを割り付ける。このような処理により、例外記述生成部において、ハードウェア物理項目に属する複数の操作へ例外処理毎の例外処理ソースコードを自動生成する。このように、本実施の形態に係るソースコード生成装置２０では、すべての例外事象の条件分岐を自動で出力することで、更に作成時間の削減効果を高めることができる。
【００６９】
本実施の形態に係るソースコード生成装置２０では、優先度制御生成部を備えているので、機能の優先順位の制御プログラムを各機能のソースコードに持つ必要がない。そのため、ソースコード量を削減することができる。また、優先度制御機能により、機能優先度を考慮した切り替えが可能となる。
【００７０】
実施の形態２．
本実施の形態では、主に、実施の形態１と異なる点について説明する。
本実施の形態では、機能項目に対する処理の優先度の仕様記述方法とコード生成方法とについて説明する。
【００７１】
＊＊＊構成の説明＊＊＊
図１１を用いて、本実施の形態に係るソースコード生成システム８００ａのブロック構成につて説明する。
本実施の形態に係るソースコード生成装置２０ａでは、各機能項目の優先度を考慮し、実行することが可能となる。
【００７２】
図１１に示すように、ソースコード生成装置２０ａは、実施の形態１の優先度制御生成部６０、優先度制御ソースコード３０３に替えて、優先度制御生成部６０１、優先度制御ソースコード３０３１を有する。優先度制御生成部６０１は、優先度制御ソースコード３０３１を生成する。
【００７３】
優先度制御生成部６０１は、実行中の処理項目の親処理項目の優先度１０７５ａと、実行が要求された処理項目の親処理項目の優先度とに基づいて、実行が要求された処理項目の実行の可否を判定する優先度制御機能を有する優先度制御ソースコード３０３１を生成する。
優先度制御生成部６０１は、実行が要求された処理項目の親処理項目と異なる親処理項目を有する実行中の処理項目がある場合には、実行が要求された処理項目の親処理項目の優先度と実行中の処理項目の親処理項目の優先度とを比較する。優先度制御生成部６０１は、優先度が低い方の親処理項目を有する処理項目の実行を不可とすることで、異なる子項目同士の比較を省略できる。
【００７４】
＊＊＊動作の説明＊＊＊
図１２を用いて、本実施の形態に係る優先度制御ソースコード３０３１を実現する優先度制御部３０３１ａの優先度制御処理の手順について説明する。ここで、優先度制御ソースコード３０３１の優先度制御機能を実現する構成部を優先度制御部３０３１ａとする。
【００７５】
Ｓ１２０１において、優先度制御部３０３１ａは、実行要求の機能項目の優先レベルを取得する。
Ｓ１２０２において、優先度制御部３０３１ａは、優先レベルを判定し、優先レベルが０の場合、Ｓ１２１２の実行許可に進む。
優先レベルが０以外の場合、優先度制御部３０３１ａは、Ｓ１２０３に進み、実行中の機能情報を取得する。
【００７６】
Ｓ１２０４において、優先度制御部３０３１ａは、実行中機能が無い場合、Ｓ１２１２の実行許可に進む。
優先度制御部３０３１ａは、実行中機能が有る場合、Ｓ１２０５で異なる親クラスの実行中機能があるか否かを判定する。親クラスとは、親機能項目すなわち親処理項目のことである。
優先度制御部３０３１ａは、異なる親クラスの実行中機能が有る場合、Ｓ１２０７に進む。
優先度制御部３０３１ａは、異なる親クラスの実行中機能が無い場合、Ｓ１２０６に進む。
【００７７】
Ｓ１２０６において、優先度制御部３０３１ａは、同じ親クラスの実行中機能が有るか否かを判定する。優先度制御部３０３１ａは、同じ親クラスの実行中機能が有る場合、Ｓ１２０９に進む。優先度制御部３０３１ａは、同じ親クラスの実行中機能が無い場合、Ｓ１２１２の実行許可に進む。
【００７８】
Ｓ１２０７において、優先度制御部３０３１ａは、実行中機能と実行要求機能との親クラス同士の優先レベルを比較する。Ｓ１２０８において、優先度制御部３０３１ａは、実行中機能と実行要求機能との親クラス同士の優先レベルの比較の結果、実行要求機能の親クラスの優先レベルが低い場合はＳ１２１１の実行不許可とする。優先度制御部３０３１ａは、実行要求機能の親クラスの優先レベルが高い場合はＳ１２０６に進む。
【００７９】
Ｓ１２０９において、優先度制御部３０３１ａは、同じ親クラスの実行中機能と実行要求機能との優先レベル同士を比較し、実行要求機能の優先レベルが高い場合、Ｓ１２１２の実行許可とする。優先度制御部３０３１ａは、実行要求機能の優先レベルが低い場合、Ｓ１２１１の実行不許可とする。
以上で、優先度制御処理の手順についての説明を終わる。
【００８０】
次に、図１３を用いて、本実施の形態にかかる優先度制御部３０３１ａによる各機能の継承関係の例について説明する。
機能Ｂ２の場合、実行許可を判断するためには親クラスである機能Ｂの優先レベルを考慮して、実行許可判定を行う。親クラスの参照方法は、各言語の継承クラスの参照機能を利用する。
例えば、機能Ａ２が実行要求機能であり、機能Ｂ１及び機能Ｂ２が実行中機能である場合、機能Ａ２と、機能Ｂ１及び機能Ｂ２とは親クラスが異なる。そこで親クラス同士の優先レベルを比較すると、機能Ａ２の親クラスである機能Ａの優先レベル「１」は、機能Ｂ１及び機能Ｂ２の親クラスである機能Ｂの優先レベル「２」よりも低い。そこで、機能Ａ２と機能Ｂ１及び機能Ｂ２の各々との優先レベルを比較するまでもなく、機能Ａは実行不可となる。
【００８１】
＊＊＊効果の説明＊＊＊
本実施の形態に係るソースコード生成装置２０ａでは、実行中の機能を階層に従って上位機能毎に管理し、優先度比較を段階的に行う。起動する機能の上位機能と、実行中の機能の上位機能同士で比較し、比較対象を絞り込む。次に同一階層の機能同士で優先度を比較する。これにより、比較対象数を減らすことができ、処理時間の短縮を可能とする。
【００８２】
本実施の形態に係るソースコード生成装置２０ａでは、優先順位の制御は、各機能のソースコードで持たず、機能優先度の制御の役割を持つ実行優先度制御に集約することで、ソースコード量の削減を可能とする。
【００８３】
本実施の形態に係るソースコード生成装置２０では、起動する機能と全ての実行中の機能の優先度を比較する必要がなく、優先度の比較処理時間を短縮することができる。
【００８４】
上記の実施の形態では、取得部４０、振舞い記述生成部５０１、操作生成部５０２、例外記述生成部５０３、条件記述生成部５０４、処理記述生成部５０５、優先度制御生成部６０がそれぞれ独立した機能ブロックとしてソースコード生成装置２０を構成している。しかし、ソースコード生成装置２０の構成は任意である。また、振舞い記述生成部５０１、操作生成部５０２、例外記述生成部５０３、条件記述生成部５０４、処理記述生成部５０５をひとつの機能ブロックで実現してもよい。また、優先度制御生成部６０の機能をソースコード生成部５０が備えていてもよい。
ソースコード生成装置２０の機能ブロックは、実施の形態に記載した機能を実現することができれば、任意であり、これらの機能ブロックを、他のどのような組み合わせでファイル管理装置を構成しても構わない。
【００８５】
以上、実施の形態１，２について説明したが、これらの２つの実施の形態のうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらの２つの実施の形態のうち、複数を部分的に組み合わせて実施しても構わない。その他、これらの２つの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８６】
２０，２０ａ  ソースコード生成装置、３０  ソースコード、４０  取得部、５０  ソースコード生成部、６０，６０１  優先度制御生成部、１０１  インプット仕様書、１０２  物理項目リスト、１０３  機能項目リスト、１０４  物理項目の振舞い記述、１０５  機能項目の振舞い記述、１０７  処理項目リスト、１０８  振舞い記述情報、３０１  物理項目クラス、３０２  機能項目クラス、３０３，３０３１  優先度制御ソースコード、５０１  振舞い記述生成部、５０２  操作生成部、５０３  例外記述生成部、５０４  条件記述生成部、５０５  処理記述生成部、８００，８００ａ  ソースコード生成システム、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０５  入力インタフェース、９０６  ディスプレイインタフェース、９０７  入力装置、９０８  ディスプレイ、９１０  信号線、９１１，９１２  ケーブル、１０７１  処理項目リスト記憶部、１０７２  処理項目、１０７２ａ  複数の処理項目、１０７３  操作情報、１０７３ａ  複数の操作、１０７４  例外処理情報、１０７５  優先度、１０７５ａ  実行中の処理項目の親処理項目の優先度、１０７５ｂ  実行が要求された処理項目の親処理項目の優先度、１０８１  振舞い記述情報記憶部、３０３１ａ  優先度制御部、９０４１  レシーバー、９０４２  トランスミッター、１０７２１  親処理項目、１０７２２  子処理項目、Ｓ１０  ソースコード生成処理、Ｓ１００  取得処理、Ｓ１００ａ  振舞い記述生成処理、Ｓ２００  継承記述処理、Ｓ３００  操作生成処理、Ｓ４００  例外記述生成処理、Ｓ５００  条件記述生成処理、Ｓ６００  処理記述生成処理。
【図１】
0006482362.tif 000002
【図２】
0006482362.tif 000003
【図３】
0006482362.tif 000004
【図４】
0006482362.tif 000005
【図５】
0006482362.tif 000006
【図６】
0006482362.tif 000007
【図７】
0006482362.tif 000008
【図８】
0006482362.tif 000009
【図９】
0006482362.tif 000010
【図１０】
0006482362.tif 000011
【図１１】
0006482362.tif 000012
【図１２】
0006482362.tif 000013
【図１３】
0006482362.tif 000014