(57)【特許請求の範囲】
【請求項１】
表示装置と、
条件の入力を促すための対話画面をこの表示装置に表示させるとともに、この対話画面に入力された条件データを読み込む条件入力部と、
それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶するシステム関数一覧記憶部と、
ソースプログラムを記憶するソースプログラム記憶部と、
前記条件データに基づき前記複数のプラットフォームのうちの解析対象の対象プラットフォームが提供するシステム関数の一覧を取得して、この一覧を用いてこのソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、前記ソースプログラムの前記対象プラットフォームに対する依存度として出力する解析部と、
を備えたことを特徴とするソースプログラム解析装置。
【請求項２】
条件の入力を促すための対話画面を表示装置に表示させるステップと、
この対話画面に入力された条件データを読み込むステップと、
それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶するシステム関数一覧記憶部から、前記条件データに基づき前記複数のプラットフォームのうちの解析対象の対象プラットフォームが提供するシステム関数の一覧を第１の記憶部に取り込むステップと、
ソースプログラムを第２の記憶部に取り込むステップと、
取り込みした前記一覧を用いて取り込みした前記ソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、前記ソースプログラムの前記対象プラットフォームに対する依存度として出力するステップと、
を備えたことを特徴とするソースプログラム解析方法。
【請求項３】
条件の入力を促すための対話画面を表示装置に表示させる手順と、
この対話画面に入力された条件データを読み込む手順と、
それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶するシステム関数一覧記憶部から、前記条件データに基づき前記複数のプラットフォームのうちの解析対象の対象プラットフォームが提供するシステム関数の一覧を第１の記憶部に取り込む手順と、
ソースプログラムを第２の記憶部に取り込む手順と、
取り込みした前記一覧を用いて取り込みした前記ソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、前記ソースプログラムの前記対象プラットフォームに対する依存度として出力する手順と、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばソースプログラムのプラットフォームへの依存度をチェックする技術に用いて好適なソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
コンピュータには、キーボード、マウス、ディスプレイ、ハードディスクあるいはネットワークインターフェースといった入出力機器が、Ｉ／Ｏコントローラを介して接続されている。これらの入出力機器はＯＳ（オペレーティングシステム）のカーネルの機能を呼び出すためのシステム関数によって制御される。ＯＳは、システム関数として、Ｃｌｏｓｅ、Ｏｐｅｎ、Ｒｅａｄ、Ｗｒｉｔｅ等を提供する。このカーネルの上位のプログラム中でライブラリ関数が実行される。上位層のソフトウェアと、外部の入出力機器との間におけるデータの入出力は、システム関数を介してのみ行われる。
【０００３】
パソコンのＯＳの上に構築されるソフトウェアと、ワークステーションのＯＳの上に構築されるソフトウェアとが上位のアプリケーションとして同じ機能を実現するものであっても、システム関数はこれらのＯＳによって異なる。ソフトウェアは、ＯＳ、Ｉ／Ｏコントローラ及び入出力装置といったプラットフォームに依存する。例えばパソコン上で開発されたソフトウェアを、客先のワークステーション上で動作させる場合、ソフトウェア全体のうち、外部の入出力機器にアクセスするためのソフトウェア部品のソースプログラムだけを修正することによって、異なるプラットフォームの上でも同じ機能を持つソフトウェアを動作させることができる。従って、上位層のソフトウェアがシステム関数を呼び出しているかどうかを、開発者がチェックできるようにする必要がある。
【０００４】
一般的にソースプログラムの解析には、構造解析ツールや静的解析ツールが用いられている。構造解析ツールは、ソフトウェア部品の呼び出しや、ソフトウェア部品の間の参照情報などを、これらのソフトウェア部品のツリー構造で表すことによって、ソースプログラムの構造を解析する。静的解析ツールは、ＭＩＳＲＡ−Ｃ（Guidelines for the Use of the C Language in Vehicle Based Software）などのコーディング規約において使用を禁止されているｇｏｔｏ文などの構文がソースプログラム中に使われていないことをチェックする。
【０００５】
従来、ソースプログラムがどのような関数を使って記述されているか、及びどの程度の頻度でその関数を呼び出しているか等の観点で、ソースプログラムを解析するツールは多数知られている。Ｃ、Ｃ＋＋ソースプログラムからコンパイラでは摘出されない目的とする処理とならない危険性のある文法を持ったコーディング箇所を摘出するコーディングチェック方式が提案されている（特許文献１参照）。プログラムを作成する際の各種のルールを記憶したデータベースから受信したソースコードの内容に該当するルールをリストアップし、リストアップしたルールからなる結果ファイルを作成するプログラムルールチェック装置も提案されている（特許文献２参照）。また、コードをコーディング規則に基づいて自動的に診断する装置（特許文献３参照）や、コーディング規約違反及びワーニングとなるキーワードをサーチして規約違反の有無を確認するコーディング規約チェックシステムも提案されている（特許文献４参照）。
【特許文献１】特開２００２−３４２１２９号公報
【特許文献２】特開２００６−２６０１６５号公報
【特許文献３】特開平６−２８１６５号公報
【特許文献４】特開平１１−７３３２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ソフトウェアを異なるプラットフォームの上で動作させるためには、開発環境に応じてソースプログラムを修正しなければならない。例えば客先の要望に応じてソフトウェアを修正する場合、ソースプログラムの修正箇所や修正に要する作業量を知る必要があり、修正量が大きい場合、開発費用がかさむ。
【０００７】
構造解析ツールや静的開発ツールは、プログラムの構造や、ＭＩＳＲＡ−Ｃ等のルールに基づくチェックを行うものであり、チェックの対象であるソースプログラムが特定のプラットフォームにどの程度依存しているかといったことを得るものではない。上述した従来技術は、コーディング上の誤りやルール違反を検出することを目的とするものであり、この技術では上位層のソフトウェアがシステム関数を呼び出しているかどうかを調べることはできない。
【０００８】
そこで、本発明は、上記の課題に鑑み、ソースプログラムが特定のプラットフォームに対してどの程度依存しているかについて開発者が把握することができるソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
このような課題を解決するため、本発明の一態様によれば、表示装置と、条件の入力を促すための対話画面をこの表示装置に表示させるとともに、この対話画面に入力された条件データを読み込む条件入力部と、それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶するシステム関数一覧記憶部と、ソースプログラムを記憶するソースプログラム記憶部と、前記条件データに基づき前記複数のプラットフォームのうちの解析対象の対象プラットフォームが提供するシステム関数の一覧を取得して、この一覧を用いてこのソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、前記ソースプログラムの前記対象プラットフォームに対する依存度として出力する解析部と、を備えたことを特徴とするソースプログラム解析装置が提供される。
【００１０】
また、本発明の別の一態様によれば、条件の入力を促すための対話画面を表示装置に表示させるステップと、この対話画面に入力された条件データを読み込むステップと、それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶するシステム関数一覧記憶部から、前記条件データに基づき前記複数のプラットフォームのうちの解析対象の対象プラットフォームが提供するシステム関数の一覧を第１の記憶部に取り込むステップと、ソースプログラムを第２の記憶部に取り込むステップと、取り込みした前記一覧を用いて取り込みした前記ソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、前記ソースプログラムの前記対象プラットフォームに対する依存度として出力するステップと、を備えたことを特徴とするソースプログラム解析方法が提供される。
【００１１】
また、本発明の別の一態様によれば、条件の入力を促すための対話画面を表示装置に表示させる手順と、この対話画面に入力された条件データを読み込む手順と、それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶するシステム関数一覧記憶部から、前記条件データに基づき前記複数のプラットフォームのうちの解析対象の対象プラットフォームが提供するシステム関数の一覧を第１の記憶部に取り込む手順と、ソースプログラムを第２の記憶部に取り込む手順と、取り込みした前記一覧を用いて取り込みした前記ソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、前記ソースプログラムの前記対象プラットフォームに対する依存度として出力する手順と、をコンピュータに実行させるためのコンピュータプログラムが提供される。
【発明の効果】
【００１２】
本発明によれば、ソースプログラムのプラットフォームに対する依存度を開発者が把握することが可能になる。プラットフォームが変更された状況でプログラムが開発される場合、ソースプログラムの変更作業時にソースプログラムの修正箇所や修正量を容易に求められるようになる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態に係るソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラムについて、図１〜図６を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１４】
本実施形態に係るソースプログラム解析装置は、アプリケーションプログラムを開発するためのプログラム開発支援システムに用いられる。このプログラム開発支援システムは、ソースプログラムを記憶した記憶媒体からこのソースプログラムを読み出すことを可能にされたパソコンと、このパソコンからソースプログラムを読み出して、キーボード等の入力機器によって指定されたプラットフォームについて、読み出したソースプログラムがプラットフォームに固有なシステム関数を何回呼び出しているかをチェックするプラットフォーム依存度チェックツールとを備えている。
【００１５】
図１はプログラム開発支援システムの構成図である。プラットフォーム依存度チェック支援ツール１はソースプログラム解析装置であり、パソコン２にインターフェースケーブル等により外付けされている。このパソコン２は表示装置であるディスプレイと内蔵ディスク３とを有する。この内蔵ディスク３はソースプログラムを記憶する。パソコン２は、ネットワーク４を介して別のソースプログラムを記憶した外部ディスク５とも接続されている。パソコン２は内蔵ディスク３に記憶されたソースプログラムと、外部ディスク５に記憶されたソースプログラムとのいずれかを選択して読み出し可能になっている。
【００１６】
図２はプラットフォーム依存度チェック支援ツール１のブロック図である。この図２に示す要素のうち、上述した要素と同じ符号を有する要素はそれらと同じものを表す。このプラットフォーム依存度チェック支援ツール１は、プラットフォーム毎に、Ｃｌｏｓｅ、Ｏｐｅｎ、Ｒｅａｄ、Ｗｒｉｔｅといったシステム関数の一覧データ等を記憶するシステム関数一覧記憶部６と、条件の入力を促すための対話画面をパソコン２のディスプレイに表示させるとともに、ユーザによって対話画面に入力された条件データを読み込む条件入力部７と、このシステム関数一覧記憶部６に記憶されたプラットフォーム毎のシステム関数の一覧データ等を記憶する関数等一覧入力メモリ８と、内蔵ディスク３又は外部ディスク５から、ソースプログラムを取り込んでこのソースプログラムを記憶するソースプログラムメモリ９とを備えている。
【００１７】
システム関数一覧記憶部６は、それぞれ提供するシステム関数が異なる複数のプラットフォーム、及びこれらのプラットフォーム毎に提供されるシステム関数の一覧を記憶する。システム関数一覧記憶部６にはハードディスクが用いられる。システム関数一覧記憶部６は、具体的には、ＷＩＮＤＯＷＳ（登録商標）、ＳＯＬＡＲＩＳ（登録商標）、あるいはＬＩＮＵＸといったＯＳの区分と、これらのＯＳが提供可能なシステム関数の一覧データを記憶する。
【００１８】
また、システム関数一覧記憶部６には、ＯＳの３２ビット及び６４ビットの種別を表すパラメータも記憶されている。３２ビットのＯＳを実装している場合と、６４ビットのＯＳを実装している場合とがある。３２ビットのＯＳが実行可能なシステム関数と、６４ビットのＯＳが実行可能なシステム関数とは異なる。条件入力部７にパラメータが入力されると、３２ビットのＯＳが実行可能なシステム関数、又は６４ビットのＯＳが実行可能なシステム関数の一覧データが関数等一覧メモリ８に取り込まれる。
【００１９】
条件入力部７の機能はプログラムにより実現される。プラットフォーム依存度チェック支援ツール１が起動されると、この条件入力部７はディスプレイに、複数のプラットフォームやＯＳのパラメータの選択肢を表示させる。これらのプラットフォームの中から所望のプラットフォームが、キーボードやマウスにより選択されて、条件入力部７は選択されたプラットフォームの種類やＯＳのパラメータを取得する。また、ソースプログラムの所在が内蔵ディスク３であるか又は外部ディスク５であるかについての情報も、キーボード等によって指定可能にされており、条件入力部７は指定されたソースプログラムの所在の情報を取得する。すなわち、条件入力部７によって、チェックに必要な条件がプラットフォーム依存度チェック支援ツール１に取り込まれる。
【００２０】
関数等一覧入力メモリ８は、チェック対象となるシステム関数の一覧データを一時記憶する第１の記憶部である。システム関数一覧記憶部６に記憶されたシステム関数の一覧データは、図示しない関数等一覧入力部によって関数等一覧入力メモリ８に展開される。
【００２１】
ソースプログラムメモリ９は、条件入力部７において指定された条件に基づいて取得されたチェック対象のソースプログラムのデータを一時記憶する第２の記憶部である。内蔵ディスク３又は外部ディスク５に記憶されたソースプログラムは、図示しないソースプログラム入力部によってソースプログラムメモリ９に展開される。ソースプログラムのデータ量が大きい場合、ソースプログラムメモリ９を介さず、直接ソースプログラムのファイルが読み込まれるか、分析して読み込まれる。
【００２２】
更に、プラットフォーム依存度チェック支援ツール１は、ソースプログラムについて解析を行って解析結果を出力する解析部１０と、この解析部１０にて得られた解析結果をディスプレイに表示し、あるいは解析結果を媒体へ印刷する処理を行う解析結果出力処理部１１とを備えている。解析部１０は、条件データに基づき解析対象の対象プラットフォームが提供するシステム関数の一覧を取得して、この一覧を用いてこのソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、ソースプログラムの対象プラットフォームに対する依存度として出力する。解析部１０及び解析結果出力処理部１１の機能はともにプログラムによって実現される。
【００２３】
図３は解析部１０のブロック図である。解析部１０は、関数等一覧メモリ８に取り込まれたシステム関数等の一覧データとソースプログラムメモリ９に取り込まれたソースプログラムとを比較して、ソースプログラムの中において合致するシステム関数を検出する比較検出部１２と、比較検出部１２により検出されたシステム関数の個数を解析結果として記録するとともに、この解析結果を出力する解析結果記録部１３とからなる。図４にこの解析結果記録部１３にて求められる解析結果の一例を示す。例えばシステム関数Ｃｌｏｓｅは、ソースプログラム中に１回登場したという解析結果が解析結果記録部１３から出力される。
【００２４】
このような構成の本実施形態に係るプラットフォーム依存度チェック支援ツール１において行われるソースプログラムのプラットフォームへの依存度のチェック処理の動作について述べる。
【００２５】
図５は本実施形態に係るプラットフォーム解析方法を説明するためのフローチャートである。
【００２６】
ステップＳ１において、条件入力部７は、チェック条件を入力するための画面をパソコン２に表示させる。キーボードやマウスを介してチェック条件がプラットフォーム依存度チェック支援ツール１へ入力される。具体的には、チェック条件として、ＯＳの種別といったチェック対象のプラットフォームと、内蔵ディスク３又は外部ディスク５といったソースプログラムの格納先の情報と、表形式又はグラフ形式といった解析結果の表示形式と、画面表示又はプリンタ印刷といった解析結果の出力方式とが入力される。
【００２７】
ステップＳ２において、解析部１０が関数等一覧入力部にデータ取り込みの指令を行うと、関数等一覧入力部は、条件入力部７へ入力された内容に基づいて、関数等一覧メモリ８に、対象となるプラットフォームについてのシステム関数の一覧データを取り込む。
【００２８】
ステップＳ３において、解析部１０がソースプログラム入力部にデータ取り込みの指令を行うと、ソースプログラム入力部は、ソースプログラムメモリ９に、チェック対象のソースプログラムを読み込む。
【００２９】
ステップＳ４において、解析部１０は、ソースプログラム中でシステム関数を呼び出している部分等を検索し、出現したシステム関数の種類と、これらのシステム関数のカウント結果と、システム関数が出現したソースプログラムの行番号とを共にカウントする。解析部１０の検索は、ソースプログラムの先頭行から一行ずつプログラムコードを取り出して、この取り出したプログラムコードの中に指定したプラットフォームが提供するシステム関数が含まれているかどうかをチェックすることによって行われる。
【００３０】
ステップＳ５において、解析部１０は、選択したプログラムコードがソースプログラムの最終行におけるものであるかどうかを判定し、これにより、対象のソースプログラムについてのチェックが完了したか否かを判断する。このステップＳ５において、解析部１０はチェックが終了していないと判断した場合、Ｎｏルートを通り、ステップＳ３に戻りステップＳ３の処理を行う。
【００３１】
ステップＳ５において、解析部１０はチェックが終了したと判断した場合、Ｙｅｓルートを通り、ステップＳ６において、解析結果出力処理部１１は、解析部１０の解析結果をディスプレイ表示または印字のための処理を行う。図６は解析結果出力処理部１１が解析結果をグラフ形式で出力処理した場合のその結果の一例を示す図である。解析結果出力処理部１１は解析結果として、表形式とグラフ形式とのいずれかを選択して出力することができる。
【００３２】
本実施形態に係るプラットフォーム依存度チェック支援ツール１がパソコン２に、条件を入力するための対話画面を表示させることによって、ソースプログラムの所在がユーザにより選択されるため、ソースプログラムがいずれの記憶媒体に記憶されていても、このプラットフォーム依存度チェック支援ツール１はチェック対象のソースプログラムを取り込むことができる。
【００３３】
また、このプラットフォーム依存度チェック支援ツール１によれば、対話画面をパソコン２に表示させることによって、所望のプラットフォームがユーザによって選択され、かつ選択されたプラットフォームから呼び出されるシステム関数の一覧がプラットフォーム依存度チェック支援ツール１に取り込まれるため、ソースプログラムの中にチェック対象であるシステム関数が何個含まれているかということが容易にカウントされるようになる。
【００３４】
従って、ＯＳ、Ｉ／Ｏコントローラ及び入出力装置といったプラットフォームが異なる開発装置の環境下で、同じ上位層の機能を実現するソフトウェアを開発する場合、入出力機器にアクセスしているソフトウェアだけを部品化することによって、異なるプラットフォームの上でもアプリケーションを動作させることができるようになる。
【００３５】
このように、本実施形態に係るプラットフォーム依存度チェック支援ツール１によれば、開発者はソースプログラム中において上位層のソフトウェアがシステム関数をどの程度使用しているのかをチェックすることができる。すなわち、開発者はこのソースプログラムのプラットフォームへの依存度を把握することができる。また、プラットフォームが変更された状況でプログラムが開発される場合、変更に要するソースプログラムの修正箇所や修正量を容易に求められるようになる。これにより、ソフトウェアを部品化し、又は再利用する場合のプラットフォームへの依存箇所を局所化するのに役立つ。
【００３６】
このようにして、このプラットフォーム依存度チェック支援ツール１によれば、ソフトウェアをプラットフォームに応じて変更するといった開発の手間が省かれるため、システムが変更される度にプログラムを作り直しあるいは修正するといった無駄な作業が不要となる。プログラムの作り直しあるいはプログラムの修正が不要となるため、ソフトウェアの開発費用の高騰を抑制することもできる。
【００３７】
また、このプラットフォーム依存度チェック支援ツール１によれば、プラットフォームが提供可能なシステム関数の種類が多い場合であっても、開発者にソースプログラムの修正の負担をさほど強いずにプログラム開発を行える。
【００３８】
上記実施形態では、プラットフォーム依存度チェック支援ツール１がパソコン２に外付けされた状態で使用される例について説明したが、本実施形態に係るソースプログラム解析装置はパソコン２単体上に構築されてもよい。この場合、パソコン２にコンピュータプログラムをインストールすることによって、パソコン２のＣＰＵ（中央演算装置）、ＲＯＭ及びＲＡＭが、上記の条件入力部７、解析部１０及び解析結果出力処理部１１の各機能を実現し、パソコン２のＲＡＭが上記の関数等一覧メモリ８及びソースプログラムメモリ９の各機能を実現する。
【００３９】
本実施形態に係るコンピュータプログラムは、対話画面をパソコン２のディスプレイに表示させ、この対話画面に入力された条件データを読み込み、システム関数一覧記憶部６から、条件データに基づき解析対象のプラットフォームが提供するシステム関数の一覧を関数等一覧メモリ８に取り込み、内蔵ディスク３又は外部ディスク５から、ソースプログラムをソースプログラムメモリ９に読み込み、そして、取り込みした一覧を用いて取り込みしたソースプログラムの中で呼び出されるシステム関数の種類とこのシステム関数の呼び出された回数とを解析し、解析した結果を、ソースプログラムの対象プラットフォームに対する依存度として出力する各手順をパソコン２に実行させる。
【００４０】
このコンピュータプログラムをＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、フラッシュメモリ又はフロッピー（登録商標）ディスクなどの記録媒体に記録しておき、これらの記録媒体に記録されたコンピュータプログラムをパソコン２にインストールしてパソコン２に実行させることによっても、上記の実施形態で得られた効果と同様の効果を得ることができる。また、記録媒体は、パソコン２と独立した媒体に限らず、ＬＡＮやインターネット等を介してプログラムをパソコン２にダウンロードして記憶する記録媒体も含む。
【００４１】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００４２】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係るソースプログラム解析装置が用いられるプログラム開発支援システムの構成図である。
【図２】本発明の一実施形態に係るソースプログラム解析装置のブロック図である。
【図３】本発明の一実施形態に係るソースプログラム解析装置の解析部のブロック図である。
【図４】本発明の一実施形態に係る解析結果記録部にて求められる解析結果の一例を示す図である。
【図５】本発明の一実施形態に係るソースプログラム解析方法を説明するためのフローチャートである。
【図６】本発明の一実施形態に係る解析結果出力処理部が解析結果をグラフ形式で出力処理した場合の結果の一例を示す図である。
【符号の説明】
【００４４】
１…プラットフォーム依存度チェック支援ツール（ソースプログラム解析装置）、２…パソコン、３…内蔵ディスク、４…ネットワーク、５…外部ディスク、６…システム関数一覧記憶部、７…条件入力部、８…関数等一覧メモリ、９…ソースプログラムメモリ、１０…解析部、１１…解析結果出力処理部、１２…比較検出部、１３…解析結果記録部。
【図１】
0004929121.tif 000002
【図２】
0004929121.tif 000003
【図３】
0004929121.tif 000004
【図４】
0004929121.tif 000005
【図５】
0004929121.tif 000006
【図６】
0004929121.tif 000007