(57)【要約】【課題】  パラメータ等の転送データの転送処理を効率的に実行し、高速なコード生成処理を実現すること。【解決手段】    図形情報を入力して図形式データとして記憶装置に保存する入力処理部と、図形式データおよび図形の属性データを用いてテキスト形式のプログラムに変換するコード生成処理部とを備え、コード生成処理部は、テキスト形式のプログラムへの変換の際に、入力処理部から変換に必要な図形式データおよび図形の属性データを一括して取得する。【選択図】  図１
2011128845.tif 000002
【特許請求の範囲】
【請求項１】
機能を表す図形および該図形間の接続関係によって表される図形情報に基づいてテキスト形式のプログラムを生成するプログラム自動生成装置であって、
前記図形情報を入力して、図形式データとして記憶装置に保存する入力処理部と、
前記図形式データおよび前記図形の属性データを用いてテキスト形式のプログラムに変換するコード生成処理部と、を備え、
前記コード生成処理部は、テキスト形式のプログラムへの変換の際に、前記入力処理部から変換に必要な前記図形式データおよび前記図形の属性データを一括して取得することを特徴とするプログラム自動生成装置。
【請求項２】
前記入力処理部は、前記コード生成処理部からデータ取得要求を受けたときに、前記属性データを一括して取得する形式に変換されてから前記コード生成処理部に渡すことを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項３】
前記入力処理部は、前記属性データを予め一括して取得する形式に変換して前記記憶装置に保存しておき、前記コード生成処理部からのデータ取得要求を受けたときに、前記記憶装置に保存されている前記属性データを前記コード生成処理部に渡すことを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項４】
前記入力処理部から前記コード生成処理部へ一括して渡すデータは圧縮されていることを特徴とする請求項１乃至３のいずれか一項に記載のプログラムの自動生成装置
【請求項５】
請求項１乃至４のいずれか一項に記載のプログラム自動生成装置において、さらに、
前記入力処理部への図形情報の入力を監視して、図形の入力があったときに該図形の属性の一覧を記録した属性管理テーブルを生成し、図形の属性データの入力があったときに前記属性管理テーブルの前記入力された属性データに対応する属性のフラグをセットし、前記属性管理テーブルの全ての属性のフラグがセットされたことを検知して、前記コード生成処理部を起動する入力状況監視部を備えたことを特徴とするプログラム自動生成装置。
【請求項６】
機能を表す図形および該図形間の接続関係によって表される図形情報と前記図形の属性情報を入力する入力処理部と、前記図形式データおよび前記図形の属性データを用いてテキスト形式のプログラムに変換するコード生成処理部とが機能分割された構成で前記プログラムを生成するプログラム自動生成方法において、
前記入力処理部への図形情報の入力を監視して、図形の入力があったときに該図形の属性の一覧を記録した属性管理テーブルを生成し、図形の属性データの入力があったときに前記属性管理テーブルの前記入力された属性データに対応する属性のフラグをセットし、前記属性管理テーブルの全ての属性のフラグがセットされたことを検知して、前記コード生成処理部を起動し、
前記コード生成処理部は起動されると、前記入力処理部から変換に必要な前記図形式データおよび前記図形の属性データを一括して取得することを特徴とするプログラム自動生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能を表す図形を用いてプログラムを記述し、この図形式プログラムからコンピュータが実行もしくは翻訳可能なテキスト形式のプログラムを自動生成する技術に係り、特に図形式データおよび図形の属性情報を入力して保存する入力処理部と、図形式データおよび図形の属性データを用いてテキスト形式のプログラムに変換するコード生成処理部とが機能分割された構成でプログラムを生成するプログラム自動生成装置およびプログラム自動生成方法に関するものである。
【背景技術】
【０００２】
従来、プログラムの製作に際しては、Ｃ言語などの高級言語を利用して原始プログラムが記述され、コンパイラを用いてコンピュータが実行可能な形式に変換するという方法が用いられてきた。このような方法では、一般的に原始プログラムはテキスト形式で記述される。
【０００３】
また、プログラムの品質や生産性を向上するために、図形を用いて原始プログラムを記述し、これをコンピュータが直接実行可能な形式、あるいは、Ｃ言語などの従来のプログラム開発環境を用いればコンピュータが実行可能な形式に変換できるような形式に変換する技術が提案されている。この技術を用いれば、設計者が記述するプログラムを図形式で表現できるため、視認性が良く、プログラムの不具合が容易に発見できるようになる。また、プログラムの見通しが良くなることにより、プログラムの生産効率が向上する。さらに、コンピュータが実行するプログラムが図形式で表現されているので、プログラムの管理工数も低減でき、保守性を良くすることができる。（例えば特許文献１〜３を参照）。
【０００４】
特に、特許文献１では、自動的にコンピュータで実行可能な形式に変換する技術も開示されている。また、特許文献３では、接続情報をもとに図形式プログラムからコード生成するための具体的な技術が開示されている。
【０００５】
このような図形を用いて記述するプログラムからコードを生成するシステムにおいては、図形を扱い、図形式プログラムを入力する機能と、入力したデータを別の形式（主に、テキスト形式）のプログラムに変換する機能に分けられる。これは、特許文献１の図１のように一体で構成されることもあるが、異なる性質の機能であるため、別々に構成した方が、効率的に製作でき、生成するコードを変更せずに入力機能のみ更新できるなどのメリットがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−８８８６９号公報
【特許文献２】特開２００７−１２８３４５号公報
【特許文献３】特開２００６―２８５４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、図形式プログラムの各要素（個々の図形）は、パラメータ（属性）を持っていることがある。たとえば、その要素が上下限の値内に制限する上下限リミッタであったとすると、上限値、下限値といったパラメータをもっている。前回の値と今回の値の和の１／２を出力するといった平均処理であれば、前回の値を記憶するための記憶領域をパラメータとして持っておく必要がある。
【０００８】
このようなパラメータはコード生成時に必要となるため、入力機能とコード生成機能を別々に持つシステムにおいては、入力機能からコード生成機能にパラメータを転送する必要がある。これ以外にも、入力機能からコード生成機能へコード生成に必要な情報を転送する必要がある。しかしながら、上記のように機能を分割して実装されているシステムにおいては、プログラム境界を越えてデータ転送を行う必要があり、データの齟齬の回避や異常アクセスの防止など、手順を伴うものとなり、一般的にプログラム内部でのデータの授受に比べて処理時間がかかる。
【０００９】
また、図形式プログラムのパラメータが複数個あった場合に、これらを順次転送する方法においては、転送手順がオーバヘッドとなり、コード生成に要する時間が長くなり、効率的に作業ができないという問題もある。
【００１０】
本発明は上述のかかる事情に鑑みてなされたものであり、入力機能からコード生成機能へのパラメータ等の転送データの転送処理を効率的に実行し、高速なコード生成処理を実現するプログラム自動生成装置およびプログラム自動生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明に係るプログラム自動生成装置は、機能を表す図形および該図形間の接続関係によって表される図形情報に基づいてテキスト形式のプログラムを生成するプログラム自動生成装置であって、図形情報を入力して、図形式データとして記憶装置に保存する入力処理部と、図形式データおよび図形の属性データを用いてテキスト形式のプログラムに変換するコード生成処理部とを備え、コード生成処理部は、テキスト形式のプログラムへの変換の際に、入力処理部から変換に必要な図形式データおよび図形の属性データを一括して取得することを特徴とする。
【００１２】
本発明では、入力処理部において機能を表す単位（要素）に付属する属性をコード生成単位に１つの転送データに纏め、コード生成処理部へ転送する。これにより、コード生成処理の速度を上げることができ、効率的な作業が可能となる。
【００１３】
入力処理部は、コード生成処理部からデータ取得要求を受けたときに、属性データを一括して取得する形式に変換されてからコード生成処理部に渡すようにする。
【００１４】
好ましくは、入力処理部において、属性データを予め一括して取得する形式に変換して記憶装置に保存しておき、コード生成処理部からのデータ取得要求を受けたときに、記憶装置に保存されている属性データをコード生成処理部に渡すようにすると良い。これにより、データ取得要求を受けたときにより迅速にコード生成処理部に転送データを渡すことができる。
【００１５】
より好ましくは、転送データを生成・更新する際には、データ圧縮アルゴリズムを用いてデータ容量を低減し、データ転送にかかる時間をさらに低減させるようにすると良い。
【００１６】
また、本発明に係るプログラム自動生成装置は、さらに、入力処理部への図形情報の入力を監視して、図形データの入力があったときに該図形の属性の一覧を記録した属性管理テーブルを生成し、図形の属性データの入力があったときに属性管理テーブルの前記入力された属性データに対応する属性のフラグをセットし、属性管理テーブルの全ての属性のフラグがセットされたことを検知して、コード生成処理部を起動する入力状況監視部を備えたことを特徴とする。
【００１７】
本発明では、属性管理テーブルを用いることによって、コード生成単位の一連のデータ入力の完了を検知して、コード生成処理部を自動実行させることができる。これにより、より効率的なプログラム生成処理を実現することができる。
【００１８】
なお、各要素の属性管理テーブルを生成した後、図形の接続情報の入力があったときに互いに接続されている図形（すなわち要素）のそれぞれの属性管理テーブルをマージするようにしても良い。これにより接続関係にある要素の属性が全て設定されたときに、設定された属性を一括してコード生成処理部に渡すことができる。
【００１９】
本発明に係るプログラム自動生成方法は、機能を表す図形および該図形間の接続関係によって表される図形情報と図形の属性情報を入力する入力処理部と、図形式データおよび図形の属性データを用いてテキスト形式のプログラムに変換するコード生成処理部とが機能分割された構成でプログラムを生成するプログラム自動生成方法において、入力処理部への図形情報の入力を監視して、図形の入力があったときに該図形の属性の一覧を記録した属性管理テーブルを生成し、図形の属性データの入力があったときに属性管理テーブルの前記入力された属性データに対応する属性のフラグをセットし、属性管理テーブルの全ての属性のフラグがセットされたことを検知して、コード生成処理部を起動し、コード生成処理部は起動されると、入力処理部から変換に必要な図形式データおよび図形の属性データを一括して取得することを特徴とする。
【００２０】
好ましくは、マルチタスク構成にして、コード生成処理部をバックグラウンドで実行させるようにすると良い。これによりユーザが図形式データの入力処理を行いながら、コード生成単位に自動的にテキスト形式のプログラムを生成することができ、大幅な処理効率の改善を図ることができる。
【発明の効果】
【００２１】
本発明によれば、入力処理部とコード生成処理部に機能分割して構成したプログラム自動生成装置において、変換に必要な情報を一括して転送するようにしたので、コード生成処理を高速化して、プログラム製作作業をより短時間で終わらせることができる。これにより、図式プログラムの開発がより効率的に行えるようになり、またプログラムの品質や生産性を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施の形態によるプログラム自動生成装置の機能構成図である。
【図２】本発明の実施の形態によるプログラム自動生成装置の装置構成図である。
【図３】本発明の実施の形態による図形式プログラム（図３（Ａ））と、生成されるコードの例（図３（Ｂ））である。
【図４】従来のコード生成処理部の処理手順を示すフローチャートである。
【図５】本発明の実施の形態による一括して転送されるデータの例である。
【図６】従来例による個別に転送されるデータの例である。
【図７】本発明の実施の形態によるコード生成処理部の処理手順を示すフローチャートである。
【図８】本発明の実施の形態の一実施例による入力処理部の処理概要を表したフローチャートである。
【図９】本発明の実施の形態の他の実施例による入力処理部の動作説明図であり、図９（Ａ）は入力処理部の処理概要を表したフローチャート、図９（Ｂ）はデータ構築時の入力画面の説明図、図９（Ｃ）は転送データ構築タイミングを説明するためのフローチャートである。
【図１０】本発明の実施の形態によるデータ圧縮を行った場合の入力処理部の動作を説明するためのフローチャートである。
【図１１】本発明の第２の実施の形態によるプログラム自動生成装置の機能構成図である。
【図１２】図１１の入力状況監視部の処理手順を示すフローチャートである。
【図１３】図１１の属性管理テーブルのデータ構成図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態を説明する。図１は、第１の実施の形態によるプログラム自動生成装置１の機能構成図である。プログラム自動生成装置１は、入力処理部４とコード生成処理部５を有し、入力処理部４では図形式によりプログラムを記述し、コード生成処理部５ではこの図形式プログラムからテキスト形式のプログラム（コード）を生成する。このプログラム自動生成装置１は、図２に示したような汎用のコンピュータシステムによって実現することができる。入力処理部４とコード生成処理部５は演算装置１０にロードされて実行される。
【００２４】
具体的には、入力処理部４は、ユーザの操作により入力装置１３から入力された図形式プログラム６を入力処理し、また入力過程ではディスプレイ装置１４に図形式プログラム６を表示する。図形式プログラム６の入力処理の結果は図形式データ２として主記憶装置１１または補助記憶装置１２（両者を併せて記憶装置）に保存される。
コード生成時は、コード生成処理部５は入力処理部４より図形式データの情報を受け取り、コード（生成プログラム）３を生成する。このとき、コード生成処理部５は、プログラム境界を越えて、入力処理部４からデータを受け取ることになる。
【００２５】
図３（Ａ）は、図形式プログラム６の例である。このプログラムでは、IN_1と表示されたブロック（要素）からデータが入力され、LIMと表示されたブロックでデータが処理され、その結果が、OUT_1 と表示されたブロックと、OUT_2 と表示されたブロックに出力されている。LIM と表示されたブロックには、出力側に16と表示された矩形が表示されているが、これは、出力が16ビットの変数であることを示している。また、LIMと表示されたブロックには、 U_LIMとL_LIMというパラメータ（属性）が付随していて、これらにも 16ビットの変数であることを示す矩形が表示されている。図３（Ａ）のブロック図に記載されている図形式プログラムは、入力処理の結果、図形式データ２として保存される。
【００２６】
コード生成処理部５は、この図形式データ２を用いてコードを生成する。図３（Ａ）のブロック図の図形式データから生成されたコードの例を図３（Ｂ）に示す。この図は、Ｃ言語で出力された場合の例であり、関数の内部のコードのみを抜粋して示している。  
【００２７】
図３（Ｂ）において、s16_t は、たとえば、typedef short int s16_t; のように、16ビットの変数型として定義されているものとする。
【００２８】
以上の如く、入力処理部４により図３（Ａ）に例示する図形式プログラム６が入力され、コード生成処理部５は、この図形式プログラム６の入力処理の結果である図形式データ２に基づいて図３（Ｂ）に例示するテキスト形式のプログラムを生成する。
【００２９】
次に、コード生成処理部５の従来の処理手順と本実施の形態による処理手順とを比較して説明する。
【００３０】
まず、図４を用いてコード生成処理部５の従来の処理手順を説明する。
コード生成処理部５は起動されると、まず、図形式データ２を取得して（Ｓ１０１）、要素についてソート処理を実行する（Ｓ１０２）。ステップＳ１０２のソート処理では、特許文献３にあるようなアルゴリズムを用いて、接続情報より要素をソートして、コード生成順に並べ替える。その後、コード生成処理部５は、a1, a2 のように出力を伝達するために必要となる変数をステップＳ１０２でソートした要素よりリストアップして取得する（Ｓ１０３）。なお、ステップＳ１０３では、変数の型を知る必要があるので、図３の例では、IN_1の出力型のデータと、LIMの出力型のデータの２つのデータをコード生成処理部５が取得する必要がある。次に、ステップＳ１０４において、関数開始の記号である { を生成プログラム３に出力し、続いてリストアップした変数の定義行を生成プログラム３に出力する。その後、要素ごとにコードを生成するが、たとえば、LIMにおいては、属性データであるU_LIM, L_LIMのパラメータ値を図形式データ２から入力処理部４を介して取得する。このとき、コード生成処理部５は、入力処理部４に別々にアクセスすると、２データの取得、すなわち属性データごとに取得処理が必要になる（Ｓ１０７）。これらの属性データは、図形式データ２に保存されるが、入力処理部４の制限により、入力処理部４を介してのみアクセスできる場合もある。また、図形式データ２は、入力処理部４により構築されるデータであり、直接コード生成処理部５のような外部からアクセスすることは、データ隠蔽の観点から、好ましくない場合も多い。このような場合、図形式データ２には、入力処理部４を介してアクセスすることになる。入力処理部４を介してアクセスする場合には、プログラム境界を超えてデータを転送する必要があるため、オーバヘッドにより処理時間が多くかかる場合がある。
【００３１】
このため、入力処理部４は、これらのデータを図５に示すような形式のデータとしてコード生成処理部５へ転送する。図５において、ELEは要素（エレメント）の開始を示す識別記号、＃は区切り記号（デリミタ）、＃＃は終了を示す識別記号である。また、転送データの意味は、要素（LIM）の出力サイズ（OUTSIZE）は１６ビット、パラメータ１（PARAM1）として、属性である上限値（U_LIM）のサイズ（SIZE）は１６ビット、パラメータ２（PARAM2）として、属性である下限値（L_LIM）のサイズ（SIZE）は１６ビットであることを表している。
【００３２】
このように転送データを一纏めにすることにより、従来のように別々にデータを転送していた図６のような転送データの渡し方に比べて、転送のためのオーバヘッドが少なくなる。これにより、入力処理部とコード生成処理部とを分離したシステムでデータ転送のオーバヘッドが問題となるような場合には、高速に処理できるようになる。
【００３３】
また、転送データを一纏めにして受け渡すときのコード生成処理部５の処理手順を図７に示す。図４との違いは、ステップＳ２０１で図形式データ２と共に属性を一括して取得するようにしている。そして、一括取得した情報をもとにステップＳ２０６で属性データを参照してステップＳ２０７で要素を生成する。このため、ループ処理（Ｓ２０５ａ，Ｓ２０５ｂ）は要素について実行するのみで良い。このため、図４の処理に比べて処理速度を上げることができる。
【００３４】
転送データの構築のタイミングとしては、図８に示すように、データの転送要求があってから転送データの構築を開始して、構築完了しだいデータを転送するというやり方と、図９（Ａ）に示すように、予め転送データを構築しておいて、データの転送要求があったときには構築済みのデータを転送するというやり方がある。図９（Ａ）の方法は、転送要求時のデータ構築処理が不要となるため、図８の方法に比べて高速に処理できるようになる。
【００３５】
予め転送データを構築しておく場合、転送データの構築のタイミングは、パラメータ値を設定するタイミングになる。パラメータ値は、たとえば、図９（Ｂ）に示すようなウィンドウで対話的に入力する。入力時の処理の流れは、図９（Ｃ）に示すような手順になる。すなわち、パラメータ画面表示中に（Ｓ５０１）、適用ボタンが押下されたタイミングで（Ｓ５０２）、転送データの構築を実行する（Ｓ５０３）。
【００３６】
さらに、図１０においては、図５に示す一括取得のための転送データを圧縮してデータ容量を減らす処理（Ｓ５０４）を図９（Ｃ）に追加実行して、転送データ量を削減することにより、さらに転送処理を高速化することができる。なお、データ圧縮には、ハフマン符号などの一般的なデータ圧縮アルゴリズムを適用する。また、データ圧縮を行った場合には、図７のステップＳ２０１の処理でデータの復号化を行うことにより、属性を一括して取得することができる。
【００３７】
以上、本実施の形態によれば、コード生成処理時に入力処理部からコード生成処理部へコード生成に必要な情報を一括して転送するので、生成処理が速くなり、プログラム製作作業の効率が向上する。
【００３８】
なお、本実施の形態によるプログラム自動生成装置は、特に既存の図形を扱うシステム（ＣＡＤ）を利用して、それにコード生成処理の機能を追加するような場合に有効である。このとき、入力処理部は自由に設計できない場合が生じるが、そのような場合においても、本実施の形態による転送データの受け渡しを行うことにより、コード生成処理を高速化して、効率的な開発を可能にする。
【００３９】
次に、本発明の第２の実施の形態を説明する。本実施の形態は、コード生成処理対象の全ての要素について、各要素の属性データ（パラメータ値）が設定されたことを検出して自動的にコード生成処理を開始するというものである。
【００４０】
図１１は、本実施の形態によるプログラム自動生成装置１の機能構成図である。
図１の構成に対して、要素の属性データの設定状況を記録する属性管理テーブル９と、属性データが設定されたか否かを常時監視して、コード生成単位に全ての属性データが設定されたことを検知してコード生成処理部５を起動する入力状況監視部８を追加している。入力状況監視部８は、入力処理部４のユーザインタフェースとしての機能を有し入力データを入力処理部４へ渡す一方で入力データ中の要素の属性および属性のパラメータ値（属性データ）の設定状況を監視する機能を有する。
以下、図１２を参照しながら、入力状況監視部８の処理手順を中心に本実施の形態によるプログラム自動生成装置１の動作を説明する。
【００４１】
入力状況監視部８は、入力処理部４の起動と共に起動し、データの入力があった場合は（Ｓ６０１で「Ｙｅｓ」）、そのデータを入力処理部４へ渡す（Ｓ６０２）。一方、その入力データが要素か否かを判定し（Ｓ６０３）、要素の場合は、その要素に対応した属性管理テーブル９を生成する（Ｓ６０４）。そして要素間の接続の有無、すなわち要素ブロックが線で接続されているか否かを判定し（Ｓ６０５）、接続がある場合は、各要素の属性管理テーブル９をマージして一つのテーブルにする（Ｓ６０６）。このとき、属性管理テーブル９には作成時刻を付しておき、作成時刻の古い方へマージするようにすると良い。
【００４２】
次に、入力データは属性のパラメータ値か否かを判定し（Ｓ６０７）、属性のパラメータ値であった場合は、当該属性が属する属性管理テーブル９にアクセスして、当該属性に対応するフラグをセットする（Ｓ６０８）。このフラグはパラメータ値が設定済みであることを表すものである。図１３は、属性管理テーブル９のデータ構成例である。要素ごとに該要素の有する属性およびパラメータ値がセットされていることを示すフラグが関連付けられて保存されている。他の要素が接続されている場合は、さらに当該他の要素の属性およびフラグ情報を有することになる。
【００４３】
ステップＳ６０８の処理に続いて、その属性管理テーブル９の全ての属性のフラグがセット済みか否かを判定し（Ｓ６０９）、コード生成処理部５を起動する（Ｓ６１０）。
【００４４】
コード生成処理部５は起動されると、入力処理部４によって保存されている図形式データ２および転送単位で纏められた属性およびそのパラメータ値を一括して読み込んで図７の手順に従ってコード生成処理を開始する。入力処理部４およびコード生成処理部５の動作は、第１の実施の形態で説明したとおりである。
【００４５】
なお、プログラム自動生成装置１はマルチタスク構成にして、コード生成処理部５はバックグラウンドで実行するようにしておくと良い。このようにすれば、ユーザは、入力処理を続けながら、プログラム生成単位で自動的にコード生成され、生成プログラム３を取得することができる。
【００４６】
本実施の形態によれば、入力処理中に各要素の接続状態を監視しながら、接続されている要素の属性を順に一覧として記録して、属性管理テーブル９を作成し、次に各要素のパラメータ値が設定されたときに、その属性管理テーブル９のパラメータが設定された要素についてフラグを設定していく。そして、属性管理テーブル９に記録されている全属性のフラグが設定されたときに、接続関係のある全要素の属性を一括でコード生成処理部５に渡してコード生成処理を開始する。これにより、コード生成処理部５をバックグランドで自動実行させることができるので、第１の実施の形態に比べて、さらに効率的なプログラム生成処理を実現することができる。
【００４７】
なお、上記図１２の処理手順において、ステップＳ６０５，ステップＳ６０６の処理を省いても良い。この場合は、要素ごとにその要素のパラメータ設定フラグが全てセットされていることを検知することにより、その要素の属性をコード生成処理部５へ渡してコード生成処理を開始する。
【符号の説明】
【００４８】
１……プログラム自動生成装置
２……図形式データ
３……生成プログラム
４……入力処理部
５……コード生成処理部
６……図形式プログラム
８……入力状況監視部
９……属性管理テーブル
１０……演算装置
１１……主記憶装置
１２……補助記憶装置
１３……入力装置
１４……ディスプレイ装置
【図１】
2011128845.tif 000003
【図２】
2011128845.tif 000004
【図３】
2011128845.tif 000005
【図４】
2011128845.tif 000006
【図５】
2011128845.tif 000007
【図６】
2011128845.tif 000008
【図７】
2011128845.tif 000009
【図８】
2011128845.tif 000010
【図１０】
2011128845.tif 000011
【図１１】
2011128845.tif 000012
【図１２】
2011128845.tif 000013
【図１３】
2011128845.tif 000014
【図９】
2011128845.tif 000015