(57)【特許請求の範囲】
【請求項１】
ユーザからの操作を受け付ける入力部と、
開発対象となるソフトウェアに対応したソースコードを記憶するソースコード記憶部と、
ユーザによる所定操作に応じて、前記ソースコード記憶部に記憶されているソースコードを読み出し、所定の条件に基づいて、関数間の関連性を解析するソースコード解析部と、
前記ソースコード解析部による解析結果を記憶する解析結果記憶部と、
ユーザによる所定操作に応じて、前記解析結果記憶部に記憶されている前記ソースコード解析部による解析結果を読み出し、読み出した解析結果に基づく解析結果表示画面を所定の表示装置に表示させる解析結果表示部と、
ユーザによる所定操作に応じて、ユーザが指定した関数のソースコードを編集可能な態様で前記表示装置に表示させるコーディング受付部と、を備え、
前記解析結果表示部は、ユーザによる所定操作に応じて、前記解析結果表示画面の表示内容を変更し、その変更した内容に応じて、関係する関数のソースコードの内容を更新する、ソフトウェア開発支援装置。
【請求項２】
前記解析結果表示画面では、関数を示すアイコンが表示され、前記コーディング受付部は、ユーザにより、前記アイコンを選択した所定操作が行われると、当該アイコンに対応した関数のソースコードを編集可能な態様で前記表示装置に表示させる、請求項１に記載のソフトウェア開発支援装置。
【請求項３】
コンピュータを、
ユーザによる所定操作に応じて、ソースコード記憶部に記憶されている、開発対象となるソフトウェアに対応したソースコードを読み出し、所定の条件に基づいて、関数間の関連性を解析し、解析結果を解析結果記憶部に格納するソースコード解析部、
ユーザによる所定操作に応じて、前記解析結果記憶部に記憶されている前記ソースコード解析部による解析結果を読み出し、読み出した解析結果に基づく解析結果表示画面を所定の表示装置に表示させる解析結果表示部、
ユーザによる所定操作に応じて、ユーザが指定した関数のソースコードを編集可能な態様で前記表示装置に表示させるコーディング受付部、として機能させ、
前記解析結果表示部は、ユーザによる所定操作に応じて、前記解析結果表示画面の表示内容を変更し、その変更した内容に応じて、関係する関数のソースコードの内容を更新する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発を支援する技術に関する。
【背景技術】
【０００２】
例えば、ＬＳＩ（large scale integration）等の設計において、仕様書作成、ソースコード作成、試験仕様書作成の各ツールを統合し、相互にデータ交換できるようにした設計支援技術は、従来より知られている（例えば、特許文献１等）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−６２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、機能追加型の手法で、ソースコードの作成（コーディング）等のソフトウェア開発を行う場合、開発者（ユーザ）は、他の処理（関数等）との関係を意識しながら、適切な位置に新たに追加する処理を組み込み、適切なコーディング等を行う必要がある。しかしながら、過去（即ち、既存）の処理間の関連性等を、いわゆる見える化で作業者に提示して、ソフトウェア開発を支援する技術について、未だ有効な提案がなされていないのが実情である。
【０００５】
本発明は、上記実情に鑑みてになされたものであり、ソフトウェア開発において、各処理間の関係をユーザに対して容易に理解できる態様で提示して、ユーザによるソースコードの作成を支援するソフトウェア開発支援装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るソフトウェア開発支援装置は、
ユーザからの操作を受け付ける入力部と、
開発対象となるソフトウェアに対応したソースコードを記憶するソースコード記憶部と、
ユーザによる所定操作に応じて、前記ソースコード記憶部に記憶されているソースコードを読み出し、所定の条件に基づいて、関数間の関連性を解析するソースコード解析部と、
前記ソースコード解析部による解析結果を記憶する解析結果記憶部と、
ユーザによる所定操作に応じて、前記解析結果記憶部に記憶されている前記ソースコード解析部による解析結果を読み出し、読み出した解析結果に基づく解析結果表示画面を所定の表示装置に表示させる解析結果表示部と、
ユーザによる所定操作に応じて、ユーザが指定した関数のソースコードを編集可能な態様で前記表示装置に表示させるコーディング受付部と、を備え、
前記解析結果表示部は、ユーザによる所定操作に応じて、前記解析結果表示画面の表示内容を変更し、その変更した内容に応じて、関係する関数のソースコードの内容を更新する。
【発明の効果】
【０００７】
本発明によれば、ユーザは、各処理間の関係を認識しつつ、ソースコードの作成を行うことが可能になるため、ソフトウェアの開発における作業の効率化や品質の向上が図れる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るソフトウェア開発支援装置の構成を示すブロック図である。
【図２】本実施形態のソフトウェア開発支援装置が備える制御部の構成を示すブロック図である。
【図３】メイン画面の一例を示す図である。
【図４】呼出関数表示画面の一例を示す図である。
【図５】親子画面の例を示す図である。
【図６】データアクセス画面の一例を示す図である。
【図７】呼出関数表示画面にて、関数を追加する場合を説明するための図である。
【図８】ソースコード編集画面の一例を示す図である。
【図９】ソースコード作成支援処理の手順を示すフローチャートである。
【図１０】解析結果表示処理の手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態について図面を参照して詳細に説明する。
【００１０】
図１は、本発明の実施形態に係るソフトウェア開発支援装置１の構成を示すブロック図である。このソフトウェア開発支援装置１は、特に、機能追加型の手法でソフトウェア開発する場合において、ユーザによるソースコード（プログラムコード）の作成を支援する装置である。
【００１１】
このソフトウェア開発支援装置１のハードウェア構成は、一般的なパーソナルコンピュータと同等である。即ち、ソフトウェア開発支援装置１は、何れも図示しないが、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等から構成される制御装置、読み書き可能な不揮発性の半導体メモリやハードディスクドライブ等から構成される外部記憶装置、キーボード、マウス、キーパッド、タッチパッドやタッチパネル等から構成される入力装置、ＣＲＴや液晶モニタ等から構成される表示装置等を備える。
【００１２】
ソフトウェア開発支援装置１は、機能的には、図１に示すように、入力部１０と、表示部１１と、ソースコード記憶部１２と、解析結果記憶部１３と、制御部１４と、を備える。
【００１３】
入力部１０は、ユーザからの入力操作を受け付け、受け付けた入力操作に係る信号を制御部１４に送出する。
【００１４】
表示部１１は、制御部１４の制御の下、ユーザ操作用の画面の表示を行う。
【００１５】
ソースコード記憶部１２は、開発対象となるソフトウェア（例えば、空調制御用のソフトウェア）に対応したソースコードを記憶する。ソースコードは、所定のプログラミング言語に従って記述されたプログラムコードであり、本実施形態では、Ｃ言語の仕様に従って記述されている。ソースコード記憶部１２において、ソースコードは、例えば、タスク単位で記憶されている。
【００１６】
解析結果記憶部１３は、詳細は後述するが、制御部１４によって実行された、ソースコード記憶部１２に記憶されているソースコードの解析の結果を記憶する。
【００１７】
制御部１４は、入力部１０、表示部１１、ソースコード記憶部１２及び解析結果記憶部１３を制御し、それに付随して、これらとの間でデータの授受を行う。制御部１４は、機能的には、図２に示すように、ユーザＩ／Ｆ部１４０と、ソースコード解析部１４１と、解析結果表示部１４２と、コーディング受付部１４３と、を備える。これらの各機能部は、ＣＰＵ等が、ＲＯＭ又は外部記憶装置に記憶されている、所定のプログラムを実行することで実現する。このプログラムは、ソフトウェア開発支援装置１にて、ユーザに対してソースコードの作成を支援するための一連の処理を行うためのアプリケーションソフトウェアである。
【００１８】
ユーザＩ／Ｆ部１４０は、ユーザにより、入力部１０を介して、上記のプログラム（ソースコード作成支援プログラム）を起動させるための所定操作が行われると、図３に示すような、ソースコードの作成を支援するためのユーザ操作用のメイン画面３０１を表示部１１を介して表示する。メイン画面３０１は、ＧＵＩ（Graphical User Interface）の態様で表示され、図３に示すように、ソースコードの解析ボタン３０２、解析結果の表示ボタン３０３、終了ボタン３０４等から構成される。ユーザＩ／Ｆ部１４０は、メイン画面３０１上におけるユーザの操作を受け付け、その内容に応じて、後述する各機能部を起動させる。メイン画面３０１は、終了ボタン３０４が、ユーザにより押下されると閉じられ、これにより、ＣＰＵ等による上記のソースコード作成支援プログラムの実行が終了する。
【００１９】
ソースコード解析部１４１は、メイン画面３０１にて、ユーザにより、ソースコードの解析ボタン３０２が押下操作されることで起動する。先ず、ソースコード解析部１４１は、ユーザに対して、どのタスクのソースコードを解析対象とすべきかを問い合わせるための画面（図示せず）をメイン画面３０１上にポップアップ表示させる。かかる画面にて、ユーザにより所望のタスクが選択されると、ソースコード解析部１４１は、ソースコード記憶部１２に記憶されている当該タスクのソースコードを所定条件の下で解析する。
【００２０】
例えば、ソースコード解析部１４１は、当該タスクのトップレベルの関数において、呼び出している関数を順番にピックアップする。さらに、ピックアップした各関数毎に、呼び出している関数を順番にピックアップし、これを、最下層の関数（呼び出している関数がない関数）まで順次繰り返す。なお、呼び出している関数が、全て、ＯＳ等により提供される汎用関数である場合には、当該呼び出し元の関数を最下層の関数とする。
【００２１】
また、例えば、ソースコード解析部１４１は、同一の外部変数にアクセスする関数をピックアップする。
【００２２】
また、例えば、ソースコード解析部１４１は、関数や引数のデータ型が一致する関数をピックアップする。また、例えば、ソースコード解析部１４１は、機能が類似している可能性が高い関数をピックアップする。ここで、機能の類似は、例えば、関数名の一部が一致していたり、ソースコード中に記述されたコメントの中の所定のキーワードが一致する等で判定する。
【００２３】
ソースコード解析部１４１は、以上のようにして解析した結果を解析結果記憶部１３に格納する。
【００２４】
解析結果表示部１４２は、メイン画面３０１にて、ユーザにより、解析結果の表示ボタン３０３が押下操作されることで起動する。解析結果表示部１４２は、起動すると、解析結果記憶部１３に格納されているソースコード解析部１４１の解析結果に基づく画面をメイン画面３０１上にポップアップ表示する。その際、複数の条件に対応した複数の解析結果が格納されている場合には、解析結果表示部１４２は、先ず、ユーザに対して、どの条件における解析結果を表示すべきかを問い合わせるための画面（図示せず）をメイン画面３０１上にポップアップ表示させる。かかる画面にて、ユーザにより所望の条件の解析結果が選択されると、解析結果表示部１４２は、ユーザが選択した条件の解析結果に基づく画面をメイン画面３０１上にポップアップ表示する。
【００２５】
図４は、ソースコード解析部１４１により、当該タスクのトップレベルの関数において、呼び出している関数を順番にピックアップした結果を表示した画面（呼出関数表示画面４０１）の一例を示している。ここでは、１回のループにおける呼び出し順が判るように、各関数の関数名を示すアイコンが順番に並べられている。なお、各アイコン上に、関数名の代わりに、あるいは、関数名と併せて、当該関数の通称（例えば、設定温度変更処理等）を表示してよい。この通称は、ソースコードにおける所定位置のコメントから抽出してもよい。
【００２６】
また、上記の呼出関数表示画面４０１において、ユーザが所望の関数名を示すアイコンを選択操作すると、当該関数において、呼び出している関数を順番にピックアップした結果を表示した、同様の呼出関数表示画面４０１が表示される。以降、上記した最下層の関数以外の関数に対応したアイコンでは、選択されると、同様の呼出関数表示画面４０１が表示される。呼出関数表示画面４０１は、終了ボタン４０２が押下操作されると閉じられる（非表示となる）。
【００２７】
また、解析結果表示部１４２は、呼び出し元と呼び出し先の関数の関係を図５のように表した画面（親子画面５０１Ａ、５０１Ｂ）を表示してもよい。図５の（ａ）で示す親子画面５０１Ａでは、関数“ＸＸＸｆｕｎｃＡ（）”が、関数“ＸＸＸｆｕｎｃＡ２（）”と、関数“ＸＸＸｆｕｎｃＣ１（）”とを呼び出していることが示されている。
【００２８】
また、図５の（ｂ）で示す親子画面５０１Ｂでは、関数“ＸＸＸｆｕｎｃＡ（）”が、関数“ＸＸＸｆｕｎｃＡ２（）”と、関数“ＸＸＸｆｕｎｃＣ１（）”と、関数“ＸＸＸｆｕｎｃＥ５（）”とを呼び出していることが示されている。さらに、関数“ＸＸＸｆｕｎｃＡ２（）”が、関数“ＸＸＸｆｕｎｃＤ３（）”を呼び出していて、関数“ＸＸＸｆｕｎｃＥ５（）”が、関数“ＸＸＸｆｕｎｃＣ２（）”を呼び出していることが示されている。
【００２９】
親子画面５０１Ａ、５０１Ｂ共に、それぞれの終了ボタン５０２Ａ、５０２Ｂが押下操作されることで閉じられる。
【００３０】
また、解析結果表示部１４２は、ソースコード解析部１４１により、同一の外部変数にアクセスする関数をピックアップした結果を、図６に示すような画面（データアクセス画面６０１）を表示することでユーザに示すこともできる。図６に示すデータアクセス画面６０１の例では、ｉｎｔ型の外部変数“ＸＸＸ＿ＤＡＴＡ”に対して、関数“ＸＸＸｆｕｎｃＡ（）”、関数“ＸＸＸｆｕｎｃＢ（）”及び関数“ＸＸＸｆｕｎｃＤ（）”がアクセスしていることを示している。
【００３１】
また、データアクセス画面６０１において、矢印の向きにより、当該アクセスが、参照又は更新の何れかあるかが示されている。この例では、関数“ＸＸＸｆｕｎｃＡ（）”は、外部変数“ＸＸＸ＿ＤＡＴＡ”に対して、参照及び更新を行い、関数“ＸＸＸｆｕｎｃＢ（）”は、外部変数“ＸＸＸ＿ＤＡＴＡ”に対して、参照のみを行い、関数“ＸＸＸｆｕｎｃＤ（）”は、外部変数“ＸＸＸ＿ＤＡＴＡ”に対して、更新のみを行うことが示されている。データアクセス画面６０１は、終了ボタン６０２が押下操作されることで閉じられる。
【００３２】
また、ユーザは、例えば、呼出関数表示画面４０１を介して、当該関数に新たな関数を追加したり、あるいは、呼び出し先の関数を削除することができる。ユーザは、例えば、メイン画面にて表示される図示しない操作ボタンや、マウス等による所定操作により、関数の追加や、削除等を行うことができる。例えば、呼出関数表示画面４０１にて、図７に示すように、所望の位置に、指定した関数名を示すアイコンを追加することで、新規あるいは既存の関数を、当該呼び出し元の関数のソースコードに自動的に追加することができる。図７の例では、関数“ＸＸＸｆｕｎｃＡ（）”と関数“ＸＸＸｆｕｎｃＢ（）”との間に、関数“ＸＸＸｆｕｎｃＡＡ（）”を追加させる場合を示している。
【００３３】
追加する関数が新規の場合、当該関数名の関数（のソースコード）が、自動的に生成される。なお、この時点においては、当該ソースコードには、予め規定されたコメント等が記述されているのみであり、実際の処理内容（コード）は記述されていない。実質的なコーディング作業は、後述するソースコード編集画面にて行う。
【００３４】
また、呼出関数表示画面４０１にて、削除した場合も同様に、その結果が、当該呼び出し元の関数のソースコードに反映される。なお、呼び出し元の関数のソースコードへの反映は、終了ボタン４０２が押下操作されたタイミングで確定する（即ち、反映後のソースコードが、ソースコード記憶部１２に格納される。）。
【００３５】
また、ユーザは、解析結果表示部１４２によって表示される上記の各画面において、所望の関数名を示すアイコンに対して、ダブルクリック等の操作を行うことで、対応する関数のソースコードを編集可能な態様で表示させることができる。コーディング受付部１４３は、関数名を示すアイコンに対して、ユーザにより上記のような操作が行われると、当該アイコンに対応するソースコードをソースコード記憶部１２から読み出し、図８に示すように、読み出したソースコードを編集可能なソースコード編集画面８０１をメイン画面３０１上にポップアップ表示する。
【００３６】
なお、本実施形態では、新規に追加した関数のソースコードであって、ソースコード編集画面８０１にて編集が完了していないソースコードは、ソースコード記憶部１２に記憶されない。したがって、そのようなソースコードは、ＲＡＭ等に一時的に保存され、コーディング受付部１４３は、ソースコード記憶部１２ではなくＲＡＭ等から、ユーザが選択したアイコンに対応するソースコードを読み出す。
【００３７】
ユーザは、ソースコード編集画面８０１にて、キーボードやマウス等を用いて、所定のプログラム言語（本実施形態では、Ｃ言語）に則ったプログラムコードを入力する（コーディングする）ことができる。ユーザによりソースコードの編集作業が行われ、終了ボタン８０２が押下操作されると、コーディング受付部１４３は、当該編集されたソースコードをソースコード記憶部１２に格納する。なお、終了ボタン８０２が押下操作された際、コーディング受付部１４３は、当該ソースコードが所定の条件を満たしているか否かをチェックする。例えば、当該関数の通称（処理名称）が、コメントとして、記述されていない場合、エラーメッセージを表示し、ユーザに対して、処理名称の記述を促す。
【００３８】
また、ユーザは、図５の親子画面５０１Ａ、５０１Ｂや、図６のデータアクセス画面６０１を介して、関数の追加や削除、矢印の向きの変更等による関連性の変更操作を行うことで、その操作結果を対応するソースコードに反映させることができる。この場合、各画面における終了ボタン５０２Ａ、５０２Ｂ、６０２が、ユーザにより押下操作されたタイミングで、反映が確定する（反映後のソースコードがソースコード記憶部１２に格納される。）。
【００３９】
図９は、以上の構成のソフトウェア開発支援装置１による、ソースコードの作成を支援するための処理（ソースコード作成支援処理）の手順を示すフローチャートである。このソースコード作成支援処理は、上述したソースコード作成支援プログラムが、ユーザ操作により起動されることで開始される。
【００４０】
先ず、ユーザＩ／Ｆ部１４０は、図３に示すようなメイン画面３０１を表示する（ステップＳ１０１）。ユーザにより、メイン画面３０１のソースコードの解析ボタン３０２が押下操作されると（ステップＳ１０２；ＹＥＳ）、ソースコード解析部１４１は、ソースコード記憶部１２に記憶されている、ユーザが指定したタスクのソースコードを所定条件の下で解析し、解析した結果を解析結果記憶部１３に格納する（ステップＳ１０３）。
【００４１】
ユーザにより、メイン画面３０１の解析結果の表示ボタン３０３が押下操作されると（ステップＳ１０４；ＹＥＳ）、解析結果表示部１４２は、解析結果表示処理を実行する（ステップＳ１０５）。
【００４２】
ユーザにより、メイン画面３０１の終了ボタン３０４が押下操作されると（ステップＳ１０６；ＹＥＳ）、ユーザＩ／Ｆ部１４０は、メイン画面３０１を閉じる。これにより、ソースコード作成支援処理、即ち、ソースコード作成支援プログラムの実行が終了する。
【００４３】
図１０は、解析結果表示処理の手順を示すフローチャートである。先ず、解析結果表示部１４２は、図示しないメニュー画面を表示する等して、ユーザに対して、どの条件における解析結果を表示すべきかの問い合わせを行う（ステップＳ２０１）。かかるメニュー画面にて、ユーザにより所望の条件の解析結果が選択されると、解析結果表示部１４２は、ユーザが選択した条件の解析結果に基づく画面（解析結果表示画面）を表示する（ステップＳ２０２）。
【００４４】
例えば、解析結果表示部１４２は、ユーザが選択した条件に応じて、呼出関数表示画面４０１（図４参照）、親子画面５０１Ａ，５０１Ｂ（図５参照）、データアクセス画面６０１（図６参照）等を表示する。
【００４５】
かかる画面上で、ユーザにより、関数の追加、削除、矢印の向きの変更等、関連性の変更操作が行われた場合（ステップＳ２０３；ＹＥＳ）、解析結果表示部１４２は、その操作内容に応じて、表示画面の内容を更新する（ステップＳ２０４）。
【００４６】
ユーザにより、関数名を示すアイコンに対して、ダブルクリック操作等のソースコードの編集要求操作が行われると（ステップＳ２０５；ＹＥＳ）、コーディング受付部１４３は、当該関数名に対応したソースコード編集画面８０１を表示する（ステップＳ２０６）。かかるソースコード編集画面８０１にて、ユーザによりソースコードの編集作業が行われ、終了ボタン８０２が押下操作されると（ステップＳ２０７）、コーディング受付部１４３は、当該編集されたソースコードをソースコード記憶部１２に格納する（ステップＳ２０８）。
【００４７】
ユーザにより、解析結果表示画面における終了ボタン（例えば、４０２、５０２Ａ、５０２Ｂ、６０２）が押下操作されると（ステップＳ２０９；ＹＥＳ）、解析結果表示部１４２は、解析結果表示画面上で更新された内容を反映したソースコードをソースコード記憶部１２に格納し（ステップＳ２１０）、解析結果表示画面を閉じる。これにより、解析結果表示処理が終了する。
【００４８】
以上のように、本実施形態のソフトウェア開発支援装置１によれば、ソフトウェア開発におけるソースコードの作成において、ユーザに対して、既存（作成済み）の関数間の関係を容易に理解できる環境を提供する。したがって、ソースコードの作成効率の向上が図れる。また、関連する関数の把握が容易となるため、編集したソースコードに関連して修正が必要なソースコードの把握も容易となり、作業効率が向上する。これにより、開発期間の短縮が図れ、さらに、品質の向上も期待できる。
【００４９】
また、再利用の促進も図れる。即ち、例えば、共通する処理（関数）、共通して扱う物理量を表す変数（例えば、空調の運転状態、運転モード、室温、湿度、照明の運転状態、照度等）や全体を通じて機器の状態（動作モード等）を管理している変数等の把握が困難であることに起因して、関数を新規作成してしまう等の無駄な作業を防止できる。
【００５０】
また、ユーザに、解析結果表示画面を介して直感的な操作環境を提供し、例えば、その操作内容を関連する関数のソースコードに自動的に反映したり、ユーザが所望する関数のソースコードを編集可能な態様で表示することができる。したがって、利便性の向上が図れ、作業効率の一層の向上が図れる。
【００５１】
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【００５２】
例えば、上記実施形態のソフトウェア開発支援装置１が実行したプログラムを、既存のパーソナルコンピュータ（ＰＣ）等に適用することで、当該ＰＣを本発明に係るソフトウェア開発支援装置として機能させることも可能である。
【００５３】
このようなプログラムの配布方法は任意であり、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical Disk）、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。  
【００５４】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００５５】
１      ソフトウェア開発支援装置
１０    入力部
１１    表示部
１２    ソースコード記憶部
１３    解析結果記憶部
１４    制御部
１４０  ユーザＩ／Ｆ部
１４１  ソースコード解析部
１４２  解析結果表示部
１４３  コーディング受付部
【図１】
0005804898.tif 000002
【図２】
0005804898.tif 000003
【図３】
0005804898.tif 000004
【図４】
0005804898.tif 000005
【図５】
0005804898.tif 000006
【図６】
0005804898.tif 000007
【図７】
0005804898.tif 000008
【図８】
0005804898.tif 000009
【図９】
0005804898.tif 000010
【図１０】
0005804898.tif 000011