(57)【要約】【課題】コード生成時間を短縮する部分的プログラムコード生成装置等を提供することを目的とする。【解決手段】プログラムコード生成に際して、修正前と修正後の設計図面の差分情報と、差分情報が生成プログラムコードに影響を与える範囲の定義情報を用い、部分的なプログラムコードの生成または削除を実現する。【選択図】図１
2007114892.tif 000002
【特許請求の範囲】
【請求項１】
プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向であることを特徴とする設計図面情報を解析して設計図面情報を抽出する設計図面解析手段と、
前記設計図面解析手段より得る二つの前記設計図面情報を解析して設計図面情報間での差分情報を抽出する設計図面差分情報抽出手段と、
設計図面情報間の差分情報が生成したプログラムコードに影響を及ぼす範囲を規定した影響範囲情報を解析し影響範囲情報を抽出する影響範囲解析手段と、
前記設計図面差分情報抽出手段より得た設計図面差分情報と前記影響範囲解析手段より得た前記影響範囲情報を解析し、前記設計図面差分情報が生成されたプログラムコードに影響を及ぼす範囲を抽出することでプログラムコードの生成が必要な設計図面情報の要素を特定する生成要素特定手段と、
前記生成要素特定手段より得られた生成要素特定情報を解析することで、更新が必要な部分のみのプログラムコードを生成および削除するプログラムコード生成手段を有することを特徴とするプログラムコード生成装置。
【請求項２】
前記設計図面差分情報抽出手段とは、二つの設計図面間における差分である設計図面情報の要素、例えば、ドメインやクラス等を抽出することを特徴とする請求項１に記載のプログラムコード生成装置。
【請求項３】
前記設計図面差分情報抽出手段とは、二つの設計図面間の差分情報の基準となる設計図面を識別する情報を、設計図面差分情報に付与することを特徴とする請求項１に記載のプログラムコード生成装置。
【請求項４】
前記プログラムコード生成手段とは、プログラムコードを生成する元となる設計図面情報を識別する生成プログラムコード図面識別情報を生成することを特徴とする請求項１に記載のプログラムコード生成装置。
【請求項５】
前記プログラムコード生成手段とは、設計図面差分情報に付与される差分の基準となった設計図面の識別情報と生成プログラムコード図面識別情報を解析する図面識別情報解析手段を備え、前記図面識別情報解析手段より得た情報を解析することで二つの図面識別情報が同じ図面を指しているか判断する手段を有することを特徴とする請求項３に記載のプログラムコード生成装置。
【請求項６】
前記プログラムコード生成手段とは、二つの図面識別情報が同じ図面を指していた場合において、前記生成要素特定手段から得られた生成要素特定情報を解析することで得られる設計図面の要素毎にプログラムコードの生成および削除を行い、二つの図面識別情報が違う図面を指していた場合においては、設計図面のすべての要素についてプログラムコードを生成することを特徴とする請求項４に記載のプログラムコード生成装置。
【請求項７】
プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向であることを特徴とする設計図面情報を解析して設計図面情報を抽出する設計図面解析工程と、
前記設計図面解析工程より得る二つの前記設計図面情報を解析して設計図面情報間での差分情報を抽出する設計図面差分情報抽出工程と、
設計図面情報間の差分情報が生成したプログラムコードに影響を及ぼす範囲を規定した影響範囲情報を解析し影響範囲情報を抽出する影響範囲解析工程と、
前記設計図面差分情報抽出工程より得た設計図面差分情報と前記影響範囲解析工程より得た前記影響範囲情報を解析し、前記設計図面差分情報が生成されたプログラムコードに影響を及ぼす範囲を抽出することでプログラムコードの生成が必要な設計図面情報の要素を特定する生成要素特定工程と、
前記生成要素特定工程より得られた生成要素特定情報を解析することで、更新が必要な部分のみのプログラムコードを生成および削除するプログラムコード生成工程とを有することを特徴とするプログラムコード生成方法。
【請求項８】
請求項７記載のプログラムコード生成方法の各工程をコンピュータにて実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの設計図面からプログラムコードを自動生成することを特徴とするプログラムコード生成装置に関し、特にプラットフォームに依存しないことと、実行可能であることと、オブジェクト指向であることを特徴とする設計図面情報において、設計図面全体の情報を解析することで、プログラムコードを生成するプログラムコード生成装置等に関するものである。
【背景技術】
【０００２】
近年のソフトウェア設計技術として、モデル駆動型アーキテクチャー(Model Driven Architecture技術(以降、ＭＤＡ技術と称す)が広まり、採用されるようになってきている。一般的にＭＤＡ技術とは、オペレータが入力したソフトウェアの設計図面情報から各種プラットフォームのプログラムコードを自動的に生成するモデルコンパイルを行い、且つ、入力したソフトウェアの設計図面情報をＭＤＡ専用ツール上で動作および検証することが可能な技術である。
【０００３】
これらソフトウェアの設計図面情報の代表的な例としては、オブジェクト指向技術のモデル表記言語であるＵＭＬ(Unified Modeling Language)やＳＤＬ(Specification & Description Language)などが挙げられる。
【０００４】
一般的にＭＤＡ技術におけるプログラムコード生成装置は、設計図面情報を解析し、解析結果を元にプログラムコード生成ルールを用いてプログラムコードを生成する。プログラムコードを生成後に、コード生成の元になった設計図面を変更し、再度プログラムコードを生成する場合、設計図面の変更前後の差分を把握し、差分に関する部分だけプログラムコードを再生成する部分モデルコンパイルを行えば、プログラムコードの生成時間を短縮することができる。
【０００５】
設計図面間の差分情報をプログラムコード生成装置がプログラムコードの生成の際に用いる技術については、特許文献１の「プログラム作成支援装置およびそのプログラム記憶媒体」で、設計図面の一つであるクラス図から自動生成したプログラムコードのスケルトンに、開発者が手書きで実装コードを追加した後、クラス図を修正した場合に、修正前後の差分情報と、手書きで追加した部分の論理情報を、プログラム生成装置が読み込み、修正後のクラス図から生成したプログラムコードのスケルトンに手書きで追加した実装コード部分を反映させ、手書きで追加したプログラムコードの消失防止を可能にしている。
【０００６】
しかしながら、上記特許文献１の「プログラム作成支援装置およびそのプログラム記憶媒体」では、設計図面間の差分情報を用いる技術ではあるが、設計図面の差分情報から部分的なプログラムコードの生成を可能にする技術ではなく、加えてＭＤＡ技術で用いられる実行可能モデルを考慮したものでもない。
【０００７】
オブジェクト指向プログラムにおいて、プログラムの修正が他に影響を及ぼす範囲の定義情報を用いる技術については、特許文献２の「オブジェクト指向プログラム編集装置」で、オブジェクト指向プログラムにおいて、開発者がクラス定義部分のソースコードを修正した際に、クラスの依存関係情報をオブジェクト指向プログラム編集装置が用いることで、前記修正が影響を及ぼす他のクラスを特定することを可能にしている。
【０００８】
しかしながら、上記特許文献２の「オブジェクト指向プログラム編集装置」では、クラス間の依存関係情報から、ソースコードを修正した際に影響を及ぼす部分を特定する技術ではあるが、設計図面における修正が、該設計図面から生成されたプログラムコードに影響を及ぼす部分を特定する技術ではなく、加えてＭＤＡ技術に用いられる実行可能モデルを考慮したものではない。
【０００９】
現在、市販されているＭＤＡツールの中には、設計図面を作成する図面エディタ、プログラムコードを生成するモデルコンパイラ、生成後のプログラムコードを実行環境に合わせてコードコンパイル・リンクを行うビルドツールをすべて包含した統合開発ツールがある。
【００１０】
これらのＭＤＡツールでは、ツール内部で、設計図面の差分を把握し、生成したプログラムコードとの対応を保持し、部分的にプログラムコードを更新する部分的なモデルコンパイルを実現したツールや、設計図面を編集するオペレータの操作を監視して設計図面と生成コードを絶えず対応づけて管理しているツールがある。
【００１１】
これらのＭＤＡツールは機能が豊富ではあるが、コード生成ルールをカスタマイズすることができず、ツールがもつモデルコンパイラ性能に左右される傾向がある。
【００１２】
一方、ＭＤＡツールの中には、設計図面情報からプログラムコードを生成するモデルコンパイラだけをもつツールがあり、中には、コード生成ルールがカスタマイズ可能なツールが存在し、ユーザが生成するプログラムコードを修正・拡張することができる。
【００１３】
これらのＭＤＡツールでは、生成したプログラムコードにおいて、実行速度を向上したり、省メモリ化をすること、とりわけ、機器組み込み型のソフトウェア開発に最適なＭＤＡツールに拡張することが可能になる。
【００１４】
【特許文献１】特開平１１−１９１０６３号公報
【特許文献２】特開平８−３１４７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、プログラムコード生成ルールをカスタマイズ可能なＭＤＡツールにおいては、設計図面の一部が変更された場合にもプログラムコード全体を生成するルールしか規定されておらず、設計図面上の一部分が変更されただけの場合でも、設計図面全体からプログラムコードすべてを生成し直すモデルコンパイルが実行され、同一のプログラムコードを再生成するという冗長性から、プログラムコード生成時間が長くなり、ＭＤＡによる開発の効率を低下させる問題が発生していた。
【００１６】
本発明では、プログラムコードの生成ルールと、プログラムコードの生成対象である設計図面情報とプログラムコードを生成済みの修正前の設計図面情報間の差分情報と、差分情報がプログラムコードに影響を及ぼす範囲の定義情報を用いるプログラムコード生成装置を提供することで、部分的プログラムコードの生成を可能とし、同内容のプログラムコード生成を省くことにより、プログラムコード生成時間を短縮してＭＤＡによる開発効率の向上を目的とする。
【課題を解決するための手段】
【００１７】
本発明のプログラムコード生成装置は、プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向であることを特徴とする設計図面情報を解析して設計図面情報を抽出する設計図面解析手段と、前記設計図面解析手段より得る二つの前記設計図面情報を解析して設計図面情報間での差分情報を抽出する設計図面差分情報抽出手段と、設計図面情報間の差分情報が生成したプログラムコードに影響を及ぼす範囲を規定した影響範囲情報を解析し影響範囲情報を抽出する影響範囲解析手段と、前記設計図面差分情報抽出手段より得た設計図面差分情報と前記影響範囲解析手段より得た前記影響範囲情報を解析し、前記設計図面差分情報が生成されたプログラムコードに影響を及ぼす範囲を抽出することでプログラムコードの生成が必要な設計図面情報の要素を特定する生成要素特定手段と、前記生成要素特定手段より得られた生成要素特定情報を解析することで、更新が必要な部分のみのプログラムコードを生成および削除するプログラムコード生成手段を有することを特徴とする。
本発明のプログラムコード生成方法は、プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向であることを特徴とする設計図面情報を解析して設計図面情報を抽出する設計図面解析工程と、前記設計図面解析工程より得る二つの前記設計図面情報を解析して設計図面情報間での差分情報を抽出する設計図面差分情報抽出工程と、設計図面情報間の差分情報が生成したプログラムコードに影響を及ぼす範囲を規定した影響範囲情報を解析し影響範囲情報を抽出する影響範囲解析工程と、前記設計図面差分情報抽出工程より得た設計図面差分情報と前記影響範囲解析工程より得た前記影響範囲情報を解析し、前記設計図面差分情報が生成されたプログラムコードに影響を及ぼす範囲を抽出することでプログラムコードの生成が必要な設計図面情報の要素を特定する生成要素特定工程と、前記生成要素特定工程より得られた生成要素特定情報を解析することで、更新が必要な部分のみのプログラムコードを生成および削除するプログラムコード生成工程とを有することを特徴とする。
本発明のプログラムは、前記プログラムコード生成方法の各工程をコンピュータにて実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、生成ルールを利用者がカスタマイズできるＭＤＡツールにおいて、プログラムコード生成時にプログラムコードの生成対象である設計図面情報とプログラムコードを生成済みである修正前の設計図面情報との間の差分情報と、差分情報が生成プログラムコードに影響を及ぼす範囲を定義した情報をプログラムコード生成装置が用いることで、部分的なプログラムコード生成を行えるプログラムコード生成装置を提供することができる。故に、従来の問題点であった、生成毎に全てのプログラムコードを生成する時間を短縮でき、ＭＤＡ技術をもちいた開発の効率が向上する。
【００１９】
本発明である部分的プログラムコード生成が可能なプログラムコード生成装置を用いることにより、設計図面要素のうちプログラムコード生成を行わない要素情報と、その要素情報がプログラムコード生成に影響を及ぼす範囲定義情報から、部分的なプログラムコード生成が可能となり、製品固有のプログラムコードを生成できるので、製品間の構成管理が容易になる。
【発明を実施するための最良の形態】
【００２０】
以下、添付図面を参照として本発明の好適な実施例を詳細に説明する。
【００２１】
図１は本発明の実施例を示す全体構成図である。図１において、１はＣＰＵであり、以下に説明する３〜１０の装置を２で示したバスを介してアクセスし制御を行なう。３はバス２を介してＣＰＵ１からアクセス可能な読み出し専用メモリ（ＲＯＭ）であり、本実施例ではその動作を詳細に説明する処理プログラム３ａ及び処理プログラムにより使用されるパラメータ３ｂが格納されている。
【００２２】
４は読み書き可能なメモリ（ＲＡＭ）であり、ＲＡＭ４上には、上記処理プログラム３により作成・変更がなされる、設計図面情報、設計図面差分情報、基準設計図面情報、部分再生成情報、生成ルール、部分モデルコンパイルテーブル、生成プログラムコード図面識別情報、プログラムコード、ライブラリ、実行可能形式をそれぞれ格納するための領域（順に４ａ、４ｂ、４ｃ、４ｄ、４ｅ，４ｆ，４ｇ，４ｈ，４ｉ，4j）が確保されている。
【００２３】
５は入力インタフェースであり、６で示したキーボード、マウス、タブレット等の入力装置を介してなされる入力を受け取る。７は出力インタフェースであり、８で示したＣＲＴ，ＬＣＤ等の表示媒体、更にはプリンタ、プロッタ等の出力装置に対し、データの表示・出力を行なう。
【００２４】
また、９は外部記憶装置インタフェースであり、１０で示したＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＤ、ＣＦ等の外部記憶装置に対するデータの入出力を行なうものである。
【００２５】
本実施例では、動作の詳細な説明と行なう処理プログラム３ａやパラメータ３ｂがＲＯＭ３上にあるものとして、また、処理対象となる各データの格納領域（４ａ〜４ｊ）がＲＡＭ上にあるものとして説明を行なうが、これらはすべて、外部記憶装置上に配置することも可能であり、更に、必要に応じて、外部記憶装置からＲＡＭ上にロードし、使用することもできる。また、ＣＰＵのキャッシュメモリ上に配置することも同様に可能である。
【００２６】
図２は、図１において３ａで示した処理プログラムの構成要件とそれら構成要件が第１図の４ａ〜４ｊで示した格納領域に格納されるデータとどのような関係にあるかを示すものである。
【００２７】
２００は図1における入力インタフェース５を介して入力されるデータを扱うＧＵＩ入力処理部であり、ユーザはこのＧＵＩ入力処理部によりデータの入力や編集と、各処理部へ指示できるようになっている。本発明におけるプログラムコード生成装置においては、自動生成装置起動部２００として利用する。
【００２８】
２０１は外部記憶装置内から実行可能な設計図面を読み込み、構文解析を行う設計図面入力部であり、処理プログラムが実行可能な設計図面を解釈し、設計図面情報２０２を生成する。
【００２９】
２０２は、設計図面入力部２０１より生成されたプログラムコードの生成対象となる設計図面情報であり、処理プログラムが解釈することが可能な情報である。オペレータが設計図面情報２０２を入力し、本発明のプログラムコード生成装置でプログラムコードの生成を行った後、設計図面情報２０２はプログラムコードの生成後にプログラムコード生成部２０６が前記設計図面情報２０２を基準設計図面２０４として置き換えることで、オペレータが再び設計図面を修正した際に、修正前後の図面間の差分の基準となる設計図面となり、修正前のバージョンの図面情報を表す。
【００３０】
２０３は設計図面情報２０２と基準設計図面情報２０４の二つの設計図面情報の差分を抽出する設計図面差分情報生成部で、設計図面の差分情報である設計図面差分情報２０５を生成する。
【００３１】
２０４は、プログラムコード生成部２０６がプログラムコードの生成を行った図面情報である設計図面情報２０２をオペレータが再度修正してプログラムコードを生成する際の差分の基準図面とするために保存しておく情報であり、処理プログラムが解釈することが可能な情報である。
【００３２】
２０５は設計図面差分情報生成部２０３より生成された、処理プログラムが解釈することが可能な情報で、プログラムコードの生成対象である設計図面情報２０２と設計図面情報２０２の修正前の設計図面である基準設計図面情報２０４との差分情報であり、差分情報と共に基準設計図面情報２０４に関する図面識別情報を含んでいる。２０５のデータ例は図９に示す。
【００３３】
２０６は設計図面情報２０２と設計図面差分情報２０５からプログラムコードを生成するルールである生成ルール２０８を用いてプログラムコードを自動生成するプログラムコード生成部であり、設計図面差分情報２０５がない場合、すべてのプログラムコードを自動生成することが可能であるプログラムコード生成部である。
【００３４】
加えて、設計図面差分情報２０５があり、かつ、設計図面差分情報２０５に含まれる基準設計図面情報２０４の図面識別情報と、生成対象である設計図面情報２０２を修正する前に生成したプログラムコードが、どの図面から生成されたかを識別する情報である生成プログラムコード図面識別情報２０７と一致すれば、差分情報がプログラムコードに影響を与える範囲が規定されている情報である部分モデルコンパイルテーブル２０９を参照し、設計図面情報２０２の要素中で生成又は削除が必要な要素を指定する部分再生成情報２１０を構築することで、差分情報がプログラムコードに影響を及ぼす部分だけを生成するプログラムコード生成部である。
【００３５】
加えて、プログラムコード生成部２０６は、プログラムコードの生成対象である設計図面情報２０２からプログラムコードを生成した後、生成プログラムコード図面識別情報２０７を前記設計図面情報２０２を識別する情報に置き換え、さらに前記設計図面情報２０２を基準設計図面情報２０４として置き換える。
【００３６】
２０７はプログラムコード生成完了時にプログラムコード生成部が生成したプログラムコードとプログラムコードを生成した図面である設計図面情報２０２を紐付けする情報であり、処理プログラムが解釈することが可能な情報である。
【００３７】
２０８はプログラムコード生成時にプログラムコード生成部から参照される設計図面情報２０２からプログラムコードを生成するルールであり、処理プログラムが解釈することが可能な情報である。
【００３８】
２０９は設計図面差分情報２０５がプログラムコードに影響を及ぼす範囲が規定されている情報で、２０９は処理プログラムが解釈することが可能な情報である。２０９のデータ例は図１２に示す。
【００３９】
なお、差分情報がプログラムコードに影響を及ぼす範囲に関してはプログラムコードの実装に依存するので、本実施例の影響範囲に限らない。
【００４０】
２１０はプログラムコード生成時にプログラムコード生成部２０６が生成する情報で、設計図面差分情報２０５と部分的プログラムコード生成２０９を対応づけすることで処理プログラムが導きだす部分的プログラムコード生成を行なう必要がある設計図面情報の要素情報であり、処理プログラムが解釈することが可能な情報である。
【００４１】
部分的プログラムコード生成を行うことができるモデル要素とは、設計図面がプログラムコードに変換された時一つのファイルとして変換される設計図面の要素である。本実施例ではシステム、ドメイン、クラス等の要素であるが、これはプログラムコードの実装に依存するので特にこれに限らない。２１０のデータ例は図１２に示す。
【００４２】
２１１はプログラムコード生成部２０６から生成されたプログラムコードである。２１２はプログラムコード２１１から参照されるライブラリである。２１３はプログラムコード２１１とライブラリ２１２から、生成したプログラムコードをコンパイル、リンクするコード・コンパイラである。２１４はコードコンパイラ２１３が生成したプログラム実行形式である。
【００４３】
次に実行可能な設計図面について説明する。実行可能な設計図面の全体構成を規定する図面は、一般にドメイン図と呼ばれている。実際の例を図３に示す。図３は、オペレータからの入力を受け、ライトを付けたり、時間を指定してライトを消すシステムを表したドメイン図の一例である。３０１はライトを明滅するシステムの制御を行うControllerドメイン、３０２はオペレータからの操作を受け取るUIドメイン、３０３はライトを制御するLightドメイン、３０４はタイムサービスを提供するTimerドメインを示している。
さらに、ドメイン同士の結びつきは、関連と呼ばれ、図３においては矢印付きの点線で表現される。
【００４４】
図３では、ドメイン間の通信であるイベントの送受信を行う場合に点線で結ぶ例を示している。３０５は、関連の一例で、Controllerドメイン３０１とTimerドメイン３０４の間で、双方向のイベント通信を行うため、両方向に矢印のついた点線で示している。３０６の関連の一例で、Controllerドメイン３０１とLightドメイン３０３の間で、片方向のイベント通信を行うため、Lightドメイン３０３側だけに矢印のついた点線で示す。
実行可能な設計図面において、処理を行うオブジェクトの静的な構造を示す設計図は、クラス図と呼ばれている。実際の例を図４に示す。
【００４５】
図４は、図３で示したオペレータからの入力を受け、ライトを付けたり、時間を指定してライトを消すシステムを表したドメイン図の一例における、ライトを明滅するシステムの制御を行うControllerドメイン３０１のクラス図の一例である。
【００４６】
図４において、４０１はクラスの名称を示し、図４の例では「Controller」がクラスの名称である。４０２はControllerクラスが「name」というString型のインスタンス変数を持つことを表現している。４０３はControllerクラスが「getName」というメソッドをもち、「evOn」、「evOff」、「alarm」という３つのイベントを受け取ることを示している。メソッドは処理の内容が書かれており、イベントはクラス間での通信オブジェクトの一例である。
【００４７】
実行可能な設計図面において、クラスの動的な振る舞いは状態の遷移を表現する図や表などで表現する。実際の例を図５に示す。図５は状態遷移図を使ったクラスの動的な振る舞いを表現した例で、図４におけるControllerクラスの状態遷移図の例である。
【００４８】
図５において、５０１は初期状態を示し、Controllerクラスのインスタンスが生成されたときに入る状態を表す。
【００４９】
初期状態５０１はその状態に留まることはなく、すぐに次の状態５０２に遷移する。５０２は「Off」と名づけた状態を表し、Controllerクラスのインスタンスが生成された後、この状態に留まる。
【００５０】
５０３は状態から状態への遷移を示し、Off状態５０２のときにevOnイベントが発行されると特定のアクションevOn()を実行して、状態５０４に遷移する。
【００５１】
５０５は、On状態５０４のときにalarmイベントが発行されると特定のアクションalarmを実行して、再度、On状態５０４に遷移する。
【００５２】
なお、一般に、状態遷移図にはアクションを記述することも可能であるが、図５に示した状態遷移図の例では別のファイルに定義して利用する例を示している。
【００５３】
プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向である、設計図面において、各クラスの状態における処理手順の記述を一般にはアクションと呼ぶ。本発明においてはアクションの記述を別ファイルにて提供する場合を例に説明するが、状態遷移図などに記入する場合も問わない。
【００５４】
プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向である、設計図面におけるアクション記述の例を図６に示す。
【００５５】
図６において、６０１は図３で例として示した、オペレータからの入力を受け、ライトを付けたり、時間を指定してライトを消すシステムの初期化時に実行されるアクションを示した例である。
【００５６】
システムで必要となるControllerクラス、UIクラス、Lightクラスのインスタンスを、それぞれ、newにより作成する。ここで作成したインスタンスは、システム全体で操作可能な変数として登録するため、registLinkにより登録する。
【００５７】
６０２は図５で示したControllerクラスの状態遷移図において、Off状態５０２からOn状態５０４に遷移するアクションevOnを記述した例である。
【００５８】
evOnアクション６０２では、このアクション内で、クラスTimerのインスタンスを新たに生成し、このアクションを実行するControllerクラスのインスタンス内で操作可能な変数として登録するため、resigtLinkにより登録する。
【００５９】
さらに、evOnアクション６０２では、既にシステム全体で操作可能として登録したLightクラスの唯一のインスタンスをqueryLinkにより入手して、ライトを点灯するためのイベントlightOnをsendEventにより送信する。
【００６０】
６０３は図５で示したControllerクラスの状態遷移図において、On状態５０４からOff状態５０２に遷移するアクションevOffを記述した例である。evOffアクション６０３では、既にシステム全体で操作可能として登録したLightクラスの唯一のインスタンスをqueryLinkにより入手して、ライトを消灯するためのイベントlightOffをsendEventにより送信する。
【００６１】
さらに、evOffアクション６０３では、evOnアクション６０２でControllerクラスのインスタンス内で操作可能な変数として登録したTimerクラスのインスタンスをqueryLinkにより入手してtimerインスタンスを削除する。
【００６２】
加えて、evOffアクション６０３では、既にシステム全体で操作可能として登録したUIクラスの唯一のインスタンスuiをqueryLinkにより入手して、ライトを消灯したことを知らせるイベントstopをsendEventにより送信する。
【００６３】
図６に示したアクションの例では、インスタンスの識別に生成時の変数名を利用しているが、インスタンスを識別するための情報、例えばシステム内で特定できる識別番号などを用いる別の方法でも実現可能である。
【００６４】
図６に示したアクションの例では、生成したクラスのインスタンスが、システム全体で利用可能なインスタンスであるのか、特定のインスタンス内で利用可能なインスタンスであるのか、アクション記述のブロック内だけで利用可能なインスタンスであるのかを、ユーザがアクションで記述しているが、図４で示したドメイン図や図５で示したクラス図からこれらの変数の利用範囲を特定する情報を得ることができるため、この方法によらない。これ以降の説明においてのフローチャートによる処理手順は、例に限定されることはなく、本発明の結果を満たす限りいかなる手順の組み合わせも、複数処理をまとめることも、処理を細分化することも可能であり、また、各処理を個々に切り出してひとつの機能要素として単体として機能し、示している処理以外の処理と組み合わせて使用することも可能である。
【００６５】
以下、本発明の実施例を図面およびフローチャートを参照して説明する。図７は、本実施例のシステム全体の処理手順を示したフローチャートである。起動した部分的なプログラムコードが生成可能であるプログラムコード生成装置は、ステップ７０１において外部記憶装置内などに記憶してある実行可能な設計図面を読み込み、設計図面入力部２０１により設計図面情報２０２を生成する。
【００６６】
ステップ７０２において、設計図面差分情報生成部２０３がプログラムコードの生成対象である前記設計図面情報２０２と外部記憶装置内などに記憶してある基準設計図面情報２０４を読み込み、設計図面情報２０２と基準設計図面情報２０４の差分を設計図面差分情報２０５として生成する。
【００６７】
処理の詳細については図８のフローチャートに記述する。ステップ７０３においてプログラムコード生成部２０６が設計図面情報２０２、設計図面差分情報２０５、生成したプログラムコードの元となる設計図面を識別する情報である生成プログラムコード図面識別情報２０７を読み込む。
【００６８】
ステップ７０４にてステップ７０３で読み込む設計図面差分情報２０５が存在する場合にはステップ７０５へ分岐する。設計図面差分情報２０５が存在するのは、プログラムコードの生成対象である設計図面情報２０２と設計図面情報２０２の修正前の設計図面情報である基準設計図面情報２０４との間に差がある場合で、プログラムコード生成後に生成元となる設計図面を更新したことを意味する。
【００６９】
設計図面差分情報２０５が存在しない場合には、ステップ７０８へ分岐して、設計図面全体からプログラムコードを生成する全モデルコンパイルを行なう。
【００７０】
ステップ７０５にて、プログラムコード生成部２０６が設計図面差分情報２０５に含まれる差分の基準となる設計図面を識別する情報と、生成済みのプログラムコードがどの設計図面から生成されたものであるかを識別する情報である生成プログラムコード図面識別情報２０７を比較する。
【００７１】
比較の結果、同じ図面を指していれば、設計図面差分情報２０５が生成済みのプログラムコードを生成した設計図面からの差分情報であることが保証される。故に、生成済みのプログラムコードと設計図面差分情報２０５が影響を及ぼす範囲の部分的なプログラムコードのみを生成または削除することで、前記設計図面情報２０２から完全なプログラムコードを生成した時と同内容のプログラムコードが得られる。
【００７２】
ステップ７０６にてステップ７０５で行なった比較結果が同じ設計図面識別情報である、つまり、設計図面差分情報２０５が生成済みのプログラムコードを生成した設計図面からの差分であればステップ７０７へ分岐して部分的プログラムコード生成を行なうために、部分再生成情報２１０を生成する。比較結果が違う設計図面識別情報であればステップ７０８へ分岐して全モデルコンパイルを行なう。
【００７３】
ステップ７０７にてプログラムコード生成部２０６が設計図面差分情報２０５と部分モデルコンパイルテーブル２０９から部分的プログラムコード生成を行なう必要があるモデル要素情報である部分再生成情報２１０を生成する。この処理の詳細は図９に記述する。
【００７４】
ステップ７０８にてプログラムコード生成部２０６がプログラムコードを生成する対象である設計図面情報２０２のモデルコンパイルを行い、プログラムコードを生成する。設計図面から完全なプログラムコードを生成する場合はすべてのプログラムコードを生成し直すことになる。
【００７５】
部分的にプログラムコードを生成する場合で、設計図面上の更新が既存の設計要素の追加や修正の場合はその部分のみのコードを生成し直すことになるが、設計要素を削除した場合は既に生成したプログラムコードから該当コードを削除することになる。この処理の詳細は図１３に記述する。
【００７６】
ステップ７０９にてプログラムコード生成部２０６が設計図面差分情報２０５を削除する。これはステップ７０８にて生成対象の設計図面からのプログラムコードの生成が完了したことで不必要な情報となるためである。
【００７７】
ステップ７１０にてプログラムコード生成部２０６がプログラムコードを生成した図面である設計図面情報２０２を、基準設計図面情報２０４として外部記憶装置などに保存する。これにより、プログラムコードの更新が完了した時点で、生成したプログラムコード２１１と基準設計図面情報２０４が対応づけられる。その後、オペレータが設計図面を更新すると、設計図面情報２０２が更新される。
【００７８】
ステップ７１１においてプログラムコード２１１とライブラリ２１２から、コードコンパイラ２１３によりコンパイル、リンクを実施し、プログラム実行形式２１４を生成する。本実施例では、設計図面の入力、設計図面の差分の調査、プログラムコード生成を別の処理部分で実現した例を示したが、すべての処理をプログラムコード生成部が行う場合も考えられる。
【００７９】
加えて、設計図面情報２０２そのものを基準設計図面情報２０４として保存したが、設計図面差分情報２０５を保存・蓄積していくことで、保存データ量を削減することも考えられる。
【００８０】
図８は図７の設計図面差分情報生成処理７０２の詳細なフローチャートの例で、設計図面差分情報生成部２０３が設計図面情報２０２と基準設計図面情報２０４を用いて、設計図面差分情報２０５を生成するための処理を示す。ステップ８０１において差分情報の基準となる設計図面である基準設計図面情報２０４が存在するかチェックする。存在すればステップ８０２へと分岐する。
【００８１】
ステップ８０２において設計図面情報２０２と基準設計図面情報２０４を比較して差分情報を生成する。生成された差分情報の例は図９に記述する。
【００８２】
図９に設計図面差分情報２０５のデータの一例を示す。設計図面差分情報２０５は、設計図面差分情報生成部２０３が生成する設計図面情報２０２と基準設計図面情報２０４との差分を示す情報である。
【００８３】
図９の例で示すとおり、差分情報はどのような差分かを示す意味データと、設計図面のどの要素において差分があるかを示す変更モデルデータパスから成る。意味データは差分の変更のレベル、例えば、SYSTEM部、DOMAIN部、CLASS部、ACTION言語部のどのレベルにおいての差分かを示す"差分レベル"、差分を発生させた動作、例えば、設計図面の要素の追加(add)、削除(delete)、修正(modilfy)を示す"動作"、動作の対象、例えば、DOMAIN、CLASS、EVENT、CLASS_METHOD等を示す"対象"の３つの要素から構成される。変更モデルデータパスは設計図面のどの要素においての差分か特定できるデータ形式を持つ。
【００８４】
なお、本実施例の実行可能な設計図面情報において、SYSTEM部が保有するデータとしては、設計図面名や、この設計図面が表すシステム内に存在するドメインのデータである。
【００８５】
また、設計図面情報には、SYSTEMに関するデータがありDOMAINに関するデータがありCLASSに関するデータがありACTIONに関するデータがあるが、それぞれ独立したデータではなくSYSTEMはDOMAINに関する情報を持ち、DOMAINはCLASSに関する情報を持ち、ACTIONに関するデータはSYSTEM、DOMAIN、CLASSそれぞれのデータに属する。つまり、SYSTEMに関するデータの入れ子としてDOMAINのデータがあり、DOMAINのデータの入れ子としてCLASSのデータがあるというように構造化することができるので、データ形式の一例として文書やデータの意味や構造を記述するためのマークアップ言語の一つであるXML（eXtensible Markup Language）言語を用いて記述している。この意味データと変更モデルデータパスからなる差分情報はそれぞれ1つの差分毎に設計図面差分情報生成部２０３により生成される。
【００８６】
データの具体的な例として図３から図６に示した実行可能な設計図面において、設計図面情報２０２と基準設計図面情報２０４との間に、
ドメインTimerを削除
ドメインLightにLightBクラスを追加
LightBクラスにイベントevA_Onを追加
ControllerクラスのメソッドgetName()に定義されるアクションの変更
の４つの差分が存在する時のデータの例を示している。図９に示した図面差分情報のデータについて説明する。
【００８７】
１つ目の差分データは、"ドメインTimerを削除"したことによる差分情報である。この差分情報における意味データはTimerドメインが削除されたことにより差分レベルが"DOMAIN"、動作が削除を示す"delete"、対象があるドメインを示す"DOMAIN"である。変更モデルデータパスは差分が設計図面のどこにあるかを示すデータであり、前記データ例では、差分は＜SYSTEM＞属性のデータである設計図面"Light_model"に存在し、Light_model内のドメインが記される＜DOMAIN＞属性のデータである、"Timer"に存在することを示す。
【００８８】
また、１つのドメインが削除されることで、削除されたドメインと関連線で繋がる先のドメイン、削除されたドメインが内包していたクラス、に関しても差分が発生する。よって、一つ目の変更モデルデータパスには、＜DOMAIN＞属性内に"Timer"ドメインと関連を持つドメインのリストである＜RELATION_DOMAIN_LIST＞属性のデータに "Controller"が記され、"Timer"ドメインが内包するクラスのリストである＜CLASS_LIST＞属性のデータに"oclock"、"minutes"が記されている（Timerドメイン内にはoclockクラスとminutesクラスが定義されているとする）。
【００８９】
なお、本実施例のデータ例では、削除対象ドメインと関連を持つドメインや、削除対象ドメインが内包するクラスについて、１つの変更モデルデータパス内に記したが、それぞれ１つの差分情報に分けて、削除対象ドメインの、関連先のドメインが"modify"された、内包するクラスが"delete"された、というようにそれぞれ１つの差分情報として生成することも可能である。
【００９０】
図１０は図７のシステム全体の処理手順を示したフローチャートのうち７０７にあたり、プログラムコード生成部２０６が部分的プログラムコード生成を行う必要があるモデル要素の情報である部分再生成情報２１０を生成する処理を示している。このフローチャートでは、図１２で示す部分再生成情報２１０を生成するために、図９に示した基準設計図面差分情報２０５、図１１で示す部分モデルコンパイルテーブル２０９を用いる。
【００９１】
ステップ１００１にてプログラムコード生成部２０６が差分情報と影響範囲が対応づけされた情報である部分モデルコンパイルテーブル２０９を読み込む。
【００９２】
ステップ１００２にて設計図面差分情報２０５のすべての差分情報について、以降の処理を繰り返すことを示す。
【００９３】
ステップ１００３にて設計図面差分情報２０５から一つの差分情報を読み込む。ステップ１００４にてステップ１００３で読み込んだ一つの差分情報と、その差分情報がプログラムコード生成を行なう際に影響を及ぼす範囲を記述した部分モデルコンパイルテーブル２０９から、再生成が必要な設計図面のモデル要素を特定することにより部分再生成情報２１０を生成する。
【００９４】
ステップ１００５は、設計図面差分情報２０５のすべての差分情報について前記ステップ１００３から１００４を繰り返した時点で処理を終えることを示す。
【００９５】
図１１は部分モデルコンパイルテーブル２０９のデータ例である。該データはプログラムコード生成部２０６から参照されるデータで、部分プログラムコード生成時に部分再生成情報２１０を生成するために、差分データである設計図面差分情報２０５とプログラムコードの生成または削除の範囲を対応づけるために用いられる。
【００９６】
データは意味データと影響範囲データから成っており、意味データは図９に示した意味データと対応しており、影響範囲データは意味データ内容がプログラムコードに影響をおよぼす範囲を規定しており、プログラムコード生成部２０６が行う生成または削除のオペレーションとそのオペレーション対象を定義している。
【００９７】
なお、図１１の生成プログラムコードへの影響範囲を規定するデータに関しては、プログラムの実装に依存、つまりプログラムの生成ルールに依存するので、ユーザが生成ルールをカスタマイズする際は、影響範囲も修正する必要がある。
【００９８】
図１２はプログラムコードの生成または削除の必要な設計図面要素データを特定する部分再生成情報２１０のデータ例である。該データは部分プログラムコード生成時に生成されるデータで、プログラムコード生成部２０６が設計図面差分情報２０５と部分モデルコンパイルテーブル２０９を対応付けることにより生成する。本実施例においては、部分再生成情報２１０はプログラムコード生成部２０６がモデルコンパイル時に行う生成または削除のオペレーションの種別、オペレーションが図１３に示すモデルコンパイル時にSYSTEM、DOMAIN、CLASSのどのプログラムコード生成部分で行われるかを示す粒度、その粒度においてオペレーションが行われる設計図面の要素を示す再生成必要モデル要素の３つから成る。
【００９９】
次に、図１０のフローチャート内の１００４の処理において、プログラム生成部２０６が図９に示す設計図面差分情報２０５と図１１に示す部分モデルコンパイルテーブル２０９を用いて、図１２に示す部分再生成情報２１０を生成する具体例を示す。
【０１００】
図９の設計図面差分情報２０５の一番目のデータは、意味データが[DOMAIN,delete,DOMAIN]であるので、図１１に示す部分モデルコンパイルテーブル２０９の2番目のデータとマッチする。部分モデルコンパイルテーブルのマッチしたデータは、生成が必要な対象はSYSTEMとRELATION_DOMAIN_LISTであり、削除が必要な対象はDOMAINとCLASS_LISTである。SYSTEMはシステム部を示し、RELATON_DOMAIN_LISTは意味データに示されるdeleteされたドメインと関連をもつすべてのドメインを示す。DOMAINは意味データに示されるdeleteされたドメインを示し、CLASS_LISTはdeleteされたドメインが内包するすべてのクラスを示す。
【０１０１】
設計図面差分情報２０５の一番目の差分データにおいて、プログラムコードの生成が必要なモデル要素は、SYSTEM部のモデル要素であるLight_modelとDOMAIN部のモデル要素であるControllerドメインであり、プログラムコードの削除が必要なモデル要素は、DOMAIN部のモデル要素であるTimerドメインとCLASS部のモデル要素であるoclockクラスとminutesクラスであることが特定され、これを部分再生成情報２１０として生成する。
【０１０２】
以上の処理を、設計図面差分情報２０５の全差分データに対して同様に行うと、設計図面差分情報２１０は図１２に示すデータ例になり、プログラムコードの再生成が必要なモデル要素はSYSTEM部のモデル要素であるLight_model、DOMAIN部のモデル要素であるControllerドメイン、CLASS部のモデル要素であるControllerクラスとLightBクラス、プログラムコードの削除が必要なモデル要素は、DOMAIN部のモデル要素であるTimerドメイン、CLASS部のモデル要素であるoclockクラス、minutesクラスであることが特定できる。
【０１０３】
本実施例においては、特定した設計図面の要素である部分再生情報２１０を用いて、プログラムコード生成部２０６が、それぞれの粒度ごとに生成または削除が必要か判断し部分的なプログラムコード生成または削除を実現する。この処理については図１３のフローチャートに示す。
【０１０４】
図１３は図７のシステム全体の処理手順を示したフローチャートのうちモデルコンパイル処理７０８に関するフローチャートである。７０８はプログラムコード生成部２０６が生成ルール２０８を用いることでプログラムコードを生成する処理である。本実施例のモデルコンパイルにおけるプログラムコード生成手順は、設計図面情報の各図面要素に対して、システム要素のプログラムコード生成、ドメイン要素のプログラムコード生成、クラス要素のプログラムコード生成というように、各モデル要素ごとにプログラムコードを生成する。部分的プログラムコード生成の場合は各モデル要素ごとにプログラムコード生成部２０６が部分再生成情報２１０を参照することにより生成または削除が必要か判断する。
【０１０５】
次に各ステップの処理内容を示す。ステップ１３０１において生成ルール２０８を読み込む。ステップ１３０２においてステップ７０７で生成した部分再生成情報２１０を読み込む。ステップ１３０３において部分再生成情報２１０が存在するかどうか、つまり部分的プログラムコード生成を生成対象である設計図面情報２０２に対して行うか判断する。２１０が存在すればステップ１３０４に分岐し、存在しなければステップ１３０５に分岐する。
【０１０６】
ステップ１３０４にて生成対象である設計図面情報２０２に対して部分的プログラムコード生成を行う事を示すフラグである部分プログラムコード生成フラグを立てる。
【０１０７】
ステップ１３０５にて前記フラグが真か判断する。真であればステップ１３０６に分岐してシステム部のプログラムコード生成が必要であるか判断する。偽であれば生成対象である設計図面情報２０２においては部分的プログラムコード生成は必要ないので、ステップ１３０７に分岐してシステム部のプログラムコードを生成する。
【０１０８】
ステップ１３０６にて部分再生成情報２１０を参照することでシステム部の生成または削除が指定されているか判断する。指定されていればプログラムコードの生成または削除の必要があるのでステップ１３０７へ分岐。指定されていなければシステム部のプログラムコードを生成または削除する必要がないのでステップ１３０８へ分岐する。
【０１０９】
ステップ１３０７にてプログラムコード生成部２０６が設計図面情報２０２から生成ルール２０８を用いてシステム部のプログラムコードを生成または削除する。
【０１１０】
ステップ１３０８において設計図面情報２０２の全てドメイン要素の情報について、以降ステップ１３１７までの処理を繰り返す。
【０１１１】
ステップ１３０９にてセットした部分プログラムコード生成フラグが真か判断する。真であればステップ１３１０に分岐して、ループ要素であるドメインのプログラムコードの生成または削除が必要であるか判断する。偽であれば生成対象である設計図面情報２０２においては部分的プログラムコード生成は必要ないので、ステップ１３１１に分岐してループ要素であるドメインのプログラムコードを生成する。
【０１１２】
ステップ１３１０にて部分再生成情報２１０を参照することでループ要素であるドメインのプログラムコードの生成または削除が指定されているか判断する。指定されていれば該ドメインに対してプログラムコードの生成または削除が必要なのでステップ１３１１へ分岐し、指定されていなければ該ドメインに対してプログラムコードの生成をする必要がないのでステップ１３１２へ分岐する。
【０１１３】
ステップ１３１１にてプログラムコード生成部２０６が設計図面情報２０２から生成ルール２０８を用いてループ要素であるドメインのプログラムコードを生成または削除する。
【０１１４】
ステップ１３１２にてループ要素であるドメイン内の全てのクラス要素の情報について以降ステップ１３１６までの処理を繰り返すことを示す。
【０１１５】
ステップ１３１３においてセットした部分プログラムコード生成フラグが真か判断する。真であればステップ１３１４に分岐してループ要素であるクラスのプログラムコードの生成または削除が必要であるか判断する。偽であれば生成対象である設計図面情報２０２においては部分的プログラムコード生成は必要ないので、ステップ１３１５に分岐してループ要素であるクラスのプログラムコードを生成する。
【０１１６】
ステップ１３１４にて部分再生成情報２１０を参照することでループ要素であるクラスのプログラムコード生成または削除が指定されているか判断する。指定されていれば該クラスに対してプログラムコードの生成または削除が必要なのでステップ１３１５へ分岐し、指定されていなければループ要素であるクラスのプログラムコード生成をする必要がないのでステップ１３１６へ分岐する。
【０１１７】
ステップ１３１５にてプログラムコード生成部が設計図面情報２０２から生成ルール２０８を用いてループ要素であるクラスのプログラムコードを生成または削除する。
【０１１８】
ステップ１３１６はループ要素であるドメイン内の全クラス要素に対し、ステップ１３１２からの処理を繰り返すこと示す。
【０１１９】
ステップ１３１７は設計図面情報２０２の全ドメイン要素に対し、ステップ１３０８からの処理を繰り返すこと示す。
【０１２０】
ステップ１３１８にて生成プログラムコード２１１と生成元の設計図面情報２０２をひも付けるため、生成プログラムコード図面識別情報２０７に前記設計図面情報２０２を識別できる情報を設定する。
【０１２１】
ステップ１３１９にてプログラムコード生成部が部分再生成情報２１０を削除する。
【０１２２】
以上の説明から、プログラムコードの生成対象である設計図面情報２０２と修正前の図面情報である基準設計図面情報２０４との間に差分が存在する際、差分が影響する範囲のみのプログラムコードの生成または削除を行うことが可能となる。
【０１２３】
なお、本実施例で示したモデルコンパイルの例では、設計図面がドメイン、クラス、状態、アクション等の階層構造をもつこと、設計図面から生成したプログラムコードの動作を規定したシステム部のコードを含むことを前提とし、この前提に依存した設計図面情報２０２のデータ構造と生成ルール２０８を使って、プログラムコードを生成する例を示した。本発明の部分的プログラムコード生成装置は、こうした設計図面のデータ構造やコード生成ルールに限定するものではない。設計図面情報と設計図面差分情報と差分がプログラムコードに影響を及ぼす範囲を規定した情報と同質の情報を持つことで、部分的なプログラムコードを生成することが可能になる。
【０１２４】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。
【０１２５】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１２６】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１２７】
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきＣＰＵ等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１２９】
【図１】本発明の一実施形態のシステムの概要構成を示す構成ブロック図である。
【図２】本発明の一実施形態のプログラムコード生成装置のデータフローチャートである。
【図３】本発明の一実施形態における設計図面情報のうちドメイン図について説明した図である。
【図４】本発明の一実施形態における設計図面情報のうち、クラス図について説明した図である。
【図５】本発明の一実施形態における設計図面情報のうち、状態遷移図について説明した図である。
【図６】本発明の一実施形態における設計図面情報のうち、アクション記述について説明した図である。
【図７】本発明の一実施形態における、システム全体に関するフローチャートである。
【図８】本発明の一実施形態における、設計図面差分情報生成部に関するフローチャートである。
【図９】本発明の一実施形態における、設計図面差分情報の例を示す図である。
【図１０】本発明の一実施形態における、部分再生成情報生成に関するフローチャートである。
【図１１】本発明の一実施形態における、部分モデルコンパイルテーブルの例を示す図である。
【図１２】本発明の一実施形態における、部分再生成情報の例を示す図である。
【図１３】本発明の一実施形態における、モデルコンパイルに関するフローチャートである。
【符号の説明】
【０１３０】
１：ＣＰＵ
２：バス
３：ＲＯＭ
４：ＲＡＭ
４ａ：設計図面情報
４ｂ：設計図面差分情報
４ｃ：基準設計図面情報
４ｄ：部分再生成情報
４ｅ：生成ルール
４ｆ：部分モデルコンパイルテーブル
４ｇ：生成プログラムコード図面識別情報
４ｈ：プログラムコード
４ｉ：ライブラリ
４ｊ：実行可能形式
５：入力インタフェース
６：キーボード、ボタン、マウス、ダイアル
７：出力インタフェース
８ａ：ＣＲＴ、ＬＣＤ
８ｂ：プリンタ、プロッタ
９：外部記憶装置インタフェース
１０：ＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＤ、ＣＦ、・・・（ファイル）
２００：自動生成装置起動部
２０１：設計図面入力部
２０２：設計図面情報
２０３：設計図面差分情報生成部
２０４：基準設計図面情報
２０５：設計図面差分情報
２０６：プログラムコード生成部
２０７：生成プログラムコード図面識別情報
２０８：生成ルール
２０９：部分モデルコンパイルテーブル
２１０：部分再生成情報
２１１：プログラムコード
２１２：ライブラリ
２１３：コードコンパイラ
２１４：プログラム実行形式
【図１】
2007114892.tif 000003
【図２】
2007114892.tif 000004
【図３】
2007114892.tif 000005
【図４】
2007114892.tif 000006
【図５】
2007114892.tif 000007
【図６】
2007114892.tif 000008
【図７】
2007114892.tif 000009
【図８】
2007114892.tif 000010
【図９】
2007114892.tif 000011
【図１０】
2007114892.tif 000012
【図１１】
2007114892.tif 000013
【図１２】
2007114892.tif 000014
【図１３】
2007114892.tif 000015