(57)【要約】【課題】エンハンス時に各画面共通の仕様定義情報を自動で修正すること。【解決手段】各画面固有の画面ＵＩ部品定義情報と各画面共通の画面ＵＩ部品定義情報を記憶する画面ＵＩ部品定義情報記憶部１０５と、各画面固有の画面構造断片定義情報と各画面共通の画面構造断片定義情報を記憶する画面構造断片定義情報記憶部１０６と、各画面固有の部分と各画面共通の部分との結合点に関する画面構成定義情報を記憶する画面構成定義情報記憶部１０７と、各記憶部に記憶された仕様定義情報を編集する定義情報編集部１０４を有し、定義情報編集部１０４は、エンハンス時に、各画面共通の画面ＵＩ部品定義情報と画面構造断片定義情報をそれぞれ修正する。【選択図】  図１
2011238151.tif 000002
【特許請求の範囲】
【請求項１】
複数の表示領域と前記いずれかの表示領域内に配置される画面ユーザインタフェース部品を構成要素とする複数の画面を構成するための画面プログラムを生成する画面プログラム生成装置であって、
前記画面ユーザインタフェース部品に関する画面仕様定義情報である画面ユーザインタフェース部品定義情報を、前記各画面固有の画面ユーザインタフェース部品定義情報と前記各画面共通の画面ユーザインタフェース部品定義情報に区別して記憶する画面ユーザインタフェース部品定義情報記憶部と、
前記各画面の構成に関する画面仕様定義情報であって、前記各画面固有の部分と前記各画面共通の部分との結合点に関する情報を含む画面構成定義情報を記憶する画面構成定義情報記憶部と、
前記各画面の部分階層構造を示す構造断片に関する画面仕様定義情報である画面構造断片定義情報を、前記各画面固有の画面構造断片定義情報と前記各画面共通の画面構造断片定義情報に区別して記憶するとともに、前記画面ユーザインタフェース部品定義情報と前記画面構成定義情報に関連付けて記憶する画面構造断片定義情報記憶部と、
前記各記憶部に記憶された画面仕様定義情報を編集する定義情報編集部と、を有することを特徴とする画面プログラム生成装置。
【請求項２】
請求項１に記載の画面プログラム生成装置において、
前記画面ユーザインタフェース部品定義情報記憶部は、前記各画面共通の画面ユーザインタフェース部品定義情報を１つの画面ユーザインタフェース部品定義情報として記憶し、
前記画面構造断片定義情報記憶部は、前記各画面共通の画面構造断片定義情報を１つの画面構造断片定義情報として記憶してなることを特徴とする画面プログラム生成装置。
【請求項３】
請求項２に記載の画面プログラム生成装置において、
前記定義情報編集部は、編集要求元から前記各画面共通の仕様定義情報に関する修正の指示を受けた場合、前記１つの画面ユーザインタフェース部品定義情報と前記１つの画面構造断片定義情報をそれぞれ前記修正の指示に従って修正してなることを特徴とする画面プログラム生成装置。
【請求項４】
請求項１に記載の画面プログラム生成装置において、
前記画面構造断片定義情報記憶部に記憶された画面構造断片定義情報と画面ユーザインタフェース部品定義情報記憶部に記憶された画面ユーザインタフェース部品定義情報をそれぞれコード生成規則に従ってコードに変換して画面プログラムコードを生成する画面プログラムコード生成部を有し、
前記画面プログラムコード生成部は、前記画面プログラムコードを、前記各画面共通の画面プログラムコードと前記各画面固有の画面プログラムコードに分けて生成してなることを特徴とする画面プログラム生成装置。
【請求項５】
請求項１に記載の画面プログラム生成装置において、
新たに追加される画面に関する画面仕様定義情報を再構成する画面仕様定義情報再構成部を有し、
前記画面仕様定義情報再構成部は、前記新たに追加される画面と前記各画面共通の部分との差異を示す情報を基に前記複数の画面のうち何れか１つの画面に属する前記画面構造断片定義情報を、前記新たに追加される画面に流用できる部分に関する画面構造断片定義情報と前記差異に関する画面構造断片定義情報とに分割し、前記新たに追加される画面に流用できる部分に関する画面構造断片定義情報を、前記新たに追加される画面固有の画面構造断片定義情報との結合点として、前記新たに追加される画面に関する画面構成定義情報を前記画面構成定義情報記憶部に記憶してなることを特徴とする画面プログラム生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面プログラムを自動生成するための画面プログラム生成装置に関するものである。
【背景技術】
【０００２】
業務システムなどの画面プログラムの開発において、開発の生産性を向上させる手法として、画面プログラムの自動生成のアプローチがある。
【０００３】
従来、そのような画面プログラムの自動生成装置および方法として、特開２００４−３０２５７１号公報および特開２００２−２１５３９３号公報に記載のように、画面の設計情報に基づき画面プログラムを自動生成することで、プログラミング工数を削減するのに加え、設計情報とプログラムの同期を人手で行う手間を省くことにより、開発生産性を向上させるものがある。
【０００４】
一般に画面プログラムでは、ユーザ操作性の観点から、画面デザインが統一されていることが重要である。そのため、画面を共通的なフレームで構成し、例えば、画面上部に画面タイトルやクラムトレイルのようなグローバルナビゲーションといった要素を含む共通領域を全画面に構成し、画面の共通的なＵＩ（User  Interface）部品を画面によらず同一デザインにする、例えば、ログアウトするためのボタンは画面によらず同じ「ログアウト」にするなど、画面設計を共通化することが望ましい。
【０００５】
ところが、特開２００４−３０２５７１号に記載の装置では、画面プログラムを構成する各画面について画面の設計情報を定義し、個々の画面設計情報を入力として個々の画面プログラムを自動生成するため、画面の共通部分の仕様は、個々の画面の設計情報に分散する。そのため、プログラムのエンハンス（新しい機能の追加）の際に、共通部分の仕様を変更しようとしたとき、各画面設計情報に散在した共通仕様の情報を個々に修正する必要がある。
【０００６】
このような作業は、一貫性を保つように人手で注意深く行う必要があり、人為的な誤りを生じる危険があるため、仕様書のメンテナンスに余分な工数を要する。
【０００７】
即ち、プログラムのエンハンスまで含めた開発ライフサイクル全体で考えた場合、特開２００４−３０２５７１号に記載の装置では、仕様書のメンテナンス工数の点で開発の生産性が阻害されることがある。
【０００８】
一方、特開２００２−２１５３９３号に記載の方法では、画面プログラム全体で１つのテンプレートを用意し、各画面個別の設計情報については、画面個別に定義する仕組みとなっている。この方法によれば、画面が全体で１つの共通的なフレームを持つような画面プログラムについては、共通部分の画面設計情報を１箇所に集約して、仕様書のメンテナンス工数の問題を回避できる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−３０２５７１号公報
【特許文献２】特開２００２−２１５３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、一般に画面プログラムでは、画面グループごとに異なるフレームをもつケースや、フレームが階層的になるケースといったような、テンプレートで表現できない共通性を持つケースもあり、そのようなケースには、特開２００２−２１５３９３号に記載の方法では、対応できない。
【００１１】
さらに、特開２００２−２１５３９３号に記載の方法のようなテンプレートによる手法では、画面プログラムの仕様情報を定義する際、全画面の共通部分を切り出すために、全画面の仕様が明確である必要がある。
【００１２】
しかも、近年、一般的に行われつつある反復型の開発プロセスでは、全画面の仕様を最初の段階で明確にすることは難しく、そのようなプロセスにテンプレート手法を適用した場合、開発が進むにつれてテンプレートに適合しない画面が出た場合、テンプレートと全画面の仕様定義を修正するのに多くの手間が必要になる。
【００１３】
本発明の目的は、複数の画面の仕様定義情報を各画面共通の仕様定義情報と各画面固有の仕様定義情報に区別して管理し、エンハンス時に各画面共通の仕様定義情報を自動で修正することができる画面プログラム生成装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明は、複数の画面に関する画面仕様定義情報を、各画面に共通する部分に関する画面仕様定義情報と各画面固有の部分に関する画面仕様定義情報に区別して記憶するとともに、各画面に共通する部分に関する画面仕様定義情報のうち画面インタフェース部品に関する画面仕様定義情報と構造に関する画面仕様定義情報をそれぞれ１つの画面仕様定義情報として記憶するようにしたものである。この際、プログラムのエンハンス時に、複数画面で共通の画面仕様定義情報を変更する必要が生じたときには、それぞれ１つの画面仕様定義情報を自動で修正可能とするものである。
【発明の効果】
【００１５】
本発明によれば、エンハンス時に各画面共通の仕様定義情報を、人手を確保することなく自動で修正することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る画面プログラム生成装置を適用した画面プログラム生成システムの構成図である。
【図２】グリッドの階層構造の一例を示す分解斜視図である。
【図３】画面に共通部分があるような画面プログラムの自動生成を行う場合の全体動作を説明するためのフローチャートである。
【図４】共通のフレーム部分を有する２つの画面の構成を説明するための構成図である。
【図５】画面ＵＩ部品定義情報記憶部に記憶される画面ＵＩ部品定義情報の構成図である。
【図６】画面構造断片定義情報記憶部に記憶される画面構造断片定義情報の構成図である。
【図７】構造断片定義内容のXMLスキーマの一例を示す図である。
【図８】画面共通の構造断片の定義情報の一例を示す図である。
【図９】画面の固有部分の構造断片の定義情報の一例を示す図である。
【図１０】画面の他の固有部分の構造断片の定義情報の一例を示す図である。
【図１１】画面構成定義記憶部に記憶される画面構成定義情報の構成図である。
【図１２】グリッドに対応するコードの生成処理を説明するためのフローチャートである。
【図１３】画面ＵＩ部品コード生成規則記憶部に記憶される画面ＵＩ部品コード生成規則の構成図である。
【図１４】画面構造断片コード生成規則記憶部に記憶される画面構造断片コード生成規則の構成図である。
【図１５】２つの画面の構造断片の構成を説明するための構成図である。
【図１６】既存の共通フレーム構造を再構成して新たな画面の画面仕様定義を追加する場合の全体動作を説明するためのフローチャートである。
【図１７】図１５の画面を分割したときの構造断片の構成を説明するための構成図である。
【図１８】（ａ）及び（ｂ）は、図１５の画面に対して画面構成定義の更新を行ったときの画面構成定義情報の構成図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態を図面に基づいて説明する。
【実施例１】
【００１８】
本実施例は、複数の表示領域と、いずれかの表示領域内に配置される画面ＵＩ部品を構成要素とする複数の画面の画面プログラムを生成するに際して、各画面共通の画面ＵＩ部品定義情報を一つの画面ＵＩ部品定義情報として記憶し、各画面共通の画面構造断片定義情報を一つの画面構造断片定義情報として記憶し、各画面共通の仕様定義情報を修正するときには、一つの画面ＵＩ部品定義情報と一つの画面構造断片定義情報をそれぞれ修正するものである。
【００１９】
図１は、本発明に係る画面プログラム生成装置を適用した画面プログラム生成システムの一実施例を示す構成図である。図１において、画面プログラム生成システムは、表示装置１０１と、入力装置１０２と、本実施形態の画面プログラム生成装置１０３から構成される。
【００２０】
表示装置１０１は、画面プログラム生成装置１０３と接続されており、画面仕様定義情報の編集操作を行う際に、利用者にグラフィカルに情報を提示する。また、表示装置１０１は、画面プログラムのプログラムコード生成処理の実行状況の通知など、生成処理の実行状況の情報についても利用者に通知する。
【００２１】
入力装置１０２は、画面プログラム生成装置１０３と接続されており、画面仕様定義情報の編集を行う際、利用者の操作に応答して、画面仕様定義情報を対話形式で画面プログラム生成装置１０３に入力する。また、入力装置１０２は、画面プログラムのプログラムコード生成処理の実行や停止、実行状況の把握といった生成処理の制御を対話的に行う。
【００２２】
画面プログラム生成装置１０３は、定義情報編集部１０４と、画面ＵＩ（ユーザインタフェース）部品定義情報記憶部１０５と、画面構造断片定義情報記憶部１０６と、画面構成定義情報記憶部１０７と、画面プログラムコード生成部１０８と、画面ＵＩ部品コード生成規則記憶部１０９と、画面構造断片コード生成規則記憶部１１０と、画面プログラムコード記憶部１１１と、画面仕様定義情報再構成部１１２から構成される。
【００２３】
定義情報編集部１０４と、画面プログラムコード生成部１０８および画面仕様定義情報再構成部１１２は、例えば、CPU（Central  Processing  Unit）またはマイクロプロセッサを有し、CPUまたはマイクロプロセッサが、定義情報編集プログラム、画面プログラムコード生成プログラムまたは画面仕様定義情報再構成プログラムを起動することで、定義情報編集部１０４、画面プログラムコード生成部１０８または画面仕様定義情報再構成部１１２が構成される。
【００２４】
画面ＵＩ部品定義情報記憶部１０５と、画面構造断片定義情報記憶部１０６と、画面構成定義情報記憶部１０７と、画面ＵＩ部品コード生成規則記憶部１０９と、画面構造断片コード生成規則記憶部１１０および画面プログラムコード記憶部１１１は、例えば、RAM（Random  Access  Memory）なでのメモリで構成される。
【００２５】
定義情報編集部１０４は、例えば、画面プログラムを生成するための画面が複数の画面で構成されている場合、各画面の仕様を定義した情報である画面仕様定義情報の編集を行う。画面仕様定義情報は、画面ＵＩ部品定義情報と、画面構造断片定義情報および画面構成定義情報の3種類の情報から構成される。
【００２６】
定義情報編集部１０４は、これら各記憶部１０５、１０６、１０７に記憶された画面仕様定義情報を表示装置１０１および入力装置１０２を介して入出力する。例えば、定義情報編集部１０４は、3種類の画面仕様定義情報を入力装置１０２から入力し、画面ＵＩ部品定義情報を画面ＵＩ部品定義情報記憶部１０５に記憶し、画面構造断片定義情報を画面構造断片定義情報記憶部１０６に記憶し、画面構成定義情報を画面構成定義情報記憶部１０７に記憶する。
【００２７】
画面ＵＩ部品定義情報記憶部１０５は、例えば、各画面が、複数の表示領域といずれかの表示領域内に配置される画面ＵＩ部品を構成要素とする場合、画面ＵＩ部品、例えば、ボタンやラベルなどに関する仕様の定義情報である画面ＵＩ部品定義情報を記憶する。画面ＵＩ部品定義情報記憶部１０５は、画面プログラム生成装置１０３の生成対象とする画面プログラムが、例えば、複数画面を構成するための画面プログラムであった場合、全画面の画面ＵＩ部品定義情報を一元的に管理して記憶する。
【００２８】
この際、複数の画面で共通的に使われる画面ＵＩ部品に関しては、画面ＵＩ部品定義情報は１つの定義情報として記憶する。即ち、画面ＵＩ部品定義情報記憶部１０５は、画面ＵＩ部品定義情報を、各画面固有の画面ＵＩ部品定義情報と各画面共通の画面ＵＩ部品定義情報に区別して記憶し、各画面共通の画面ＵＩ部品定義情報を１つの定義情報として記憶する。
【００２９】
画面構造断片定義情報記憶部１０６は、各画面の構造断片に関する画面仕様定義情報である画面構造断片定義情報を記憶する。各画面は、構成要素、例えば、ＵＩ部品や矩形領域などの互いの包含により構造を作る。構造断片とは、各画面の画面構造の部分構造である。例えば、HTML（HyperText  Markup  Language）で画面を構成する場合を例にとると、画面は、グリッドの階層構造により表現できるため、構造断片は、グリッドの部分階層構造となる。
【００３０】
この際、画面の表示領域を規定する線、例えば、鉛直方向の線、水平方向の線をそれぞれグリッドとし、鉛直方向のグリッドと水平方向のグリッドで囲まれた表示領域（矩形領域）内をセルとすると、このセル内を鉛直方向の複数のグリッドと水平方向の複数のグリッドで複数の表示領域に分割したときには、この分割により得られた各表示領域内には、それぞれ小さいセルが形成されることになる。
【００３１】
図２は、グリッドの階層構造の例である。最も上位のグリッド２０１は、鉛直方向にセル２１１、２１２が２つ並ぶグリッドである。グリッド２０１を親のグリッドとした場合、上側のセル２１１には、子のグリッド２０２が含まれ、下側のセル２１２には、子のグリッド２０３が含まれる。子のグリッド２０２は、水平方向にセル２１３、２１４、２１５が３つ並ぶグリッドであり、各セル２１３、２１４、２１５には、グリッドは含まれていない。子のグリッド２０３は、鉛直方向にセル２１６、２１７が２つ並ぶグリッドであり、下側のセル２１７には、子のグリッド２０４が含まれる。
【００３２】
グリッド２０１と、グリッド２０２と、グリッド２０３およびグリッド２０４を全て含むグリッドで構成される構造も構造断片であり、また、各部分構造、例えば、グリッド２０３とグリッド２０４から構成される構造も構造断片である。なお、各画面のＵＩ要素である画面ＵＩ部品は、いずれかのセル内に配置される。
【００３３】
画面構造断片定義情報記憶部１０６は、画面プログラム生成装置１０３が生成対象とする１セットの画面プログラム、例えば、複数画面を構成する画面プログラムの場合、全画面の部分構造を一元的に管理する。複数の画面で共通的な部分構造は、画面構造断片定義情報記憶部１０６では、１つの定義情報として記憶する。即ち、画面構造断片定義情報記憶部１０６は、各画面の部分階層構造を示す構造断片に関する画面仕様定義情報である画面構造断片定義情報を、各画面固有の画面構造断片定義情報と各画面共通の画面構造断片定義情報に区別して記憶するとともに、各画面共通の画面構造断片定義情報を１つの画面構造断片定義情報として記憶する。
【００３４】
画面構成定義情報記憶部１０７は、画面の構成に関する仕様定義情報である画面構成定義情報を記憶する。画面構成定義情報記憶部１０７は、画面プログラム生成装置１０３が生成対象とする１セットの画面プログラム、例えば、複数画面を構成するための画面プログラムの場合、各画面の構造定義情報を画面ごとに１つずつ記憶する。
【００３５】
この際、画面構成定義情報記憶部１０７は、各画面の構成に関する画面仕様定義情報であって、各画面固有の部分と各画面共通の部分との結合点に関する情報を含む画面構成定義情報を記憶する。
【００３６】
画面プログラムコード生成部１０８は、画面ＵＩ部品定義情報記憶部１０５、画面構造断片記憶部１０６、および、画面構成定義情報記憶部１０７に記憶された画面仕様定義情報を入力し、入力した画面仕様定義情報をコード生成規則に従ってコードに変換して、画面プログラムコードを機械的に生成し、生成した画面プログラムコードを画面プログラムコード記憶部１１１に格納する。
【００３７】
画面ＵＩ部品コード生成規則記憶部１０９は、画面ＵＩ部品定義情報記憶部１０５に記憶された画面ＵＩ部品定義情報について、画面ＵＩ部品のタイプごとに画面ＵＩ部品定義情報からプログラムコードの断片を生成するためのコード生成規則である画面ＵＩ部品コード生成規則を記憶する。
【００３８】
画面構造断片コード生成規則記憶部１１０は、画面構造断片定義情報記憶部１０６に記憶された画面構造断片定義情報からプログラムコードの断片を生成するためのコード生成規則である画面構造断片コード生成規則を記憶する。
【００３９】
画面プログラムコード記憶部１１１は、画面プログラムコード生成部１０８が生成した画面プログラムコードを記憶する。
【００４０】
画面仕様定義情報再構成部１１２は、画面構造断片定義情報記憶部１０６に記憶された画面構造断片定義情報の分割を行い、画面構成定義情報記憶部１０７に記憶されている画面構成定義情報のうち、分割した画面構造断片定義情報を参照していた画面構成定義情報を、分割後の構造断片定義情報を参照するように再構成する。
【００４１】
次に、本実施形態において、複数の画面を構成するための画面プログラムであって、各画面共通の部分と各画面固有の部分を有する複数の画面を構成するための画面プログラムを自動生成する場合の全体動作を、図３に基づいて説明する。
【００４２】
まず、定義情報編集部１０４は、利用者が編集した画面仕様定義情報を表示装置１０１と入力装置１０２から入力し、入力した画面仕様定義情報を識別して、画面ＵＩ部品定義情報記憶部１０５と、画面構造断片定義情報記憶部１０６および、画面構成定義記憶部１０７に記憶する（S３０１）。
【００４３】
次に、画面プログラムコード生成部１０８は、画面ＵＩ部品定義情報記憶部１０５、画面構造断片定義情報記憶部１０６、および、画面構成定義記憶部１０７にそれぞれ記憶された画面仕様定義情報から、画面ＵＩ部品コード生成規則記憶部１０９に記憶された画面ＵＩ部品コード生成規則と画面構造断片コード生成規則記憶部１１０に記憶された画面構造断片コード生成規則に従って画面プログラムコードを生成し、生成した画面プログラムコードを画面プログラムコード記憶部１１１に記憶する（S３０２）。以下、各ステップS３０１、S３０２における具体的内容について説明する。
【００４４】
まず、画面ＵＩ部品定義情報記憶部１０５、画面構造断片定義情報記憶部１０６、および、画面構成定義情報記憶部１０７にそれぞれ記憶する画面仕様定義情報について、図４に示す画面プログラムを例に説明する。
【００４５】
図４は、共通のフレーム部分を有する２つの画面の構成の例を示す。各画面（第１の画面と第２の画面）は、共通のフレーム部分（各画面共通のグリッド）４０３を持ち、画面上部４０４の画面タイトル４０１と終了ボタン４０２は各画面共通である。この場合、画面上部４０４を構成するグリッドで囲まれた２つの表示領域（セル）内に、画面ＵＩ部品の画面タイトル４０１と終了ボタン４０２が配置される。
【００４６】
画面下部４０５は、各画面により異なる。例えば、第１の画面固有の部分４０８は、第１の画面固有の画面ＵＩ部品として、テキストフィールド４０６や検索ボタン４０７などを含む構成である。第２の画面固有の部分４０９は、第２の画面固有の画面ＵＩ部品として、編集ボタン４１０や取消ボタン４１１などを含む構成である。
【００４７】
図５は、画面ＵＩ部品定義情報記憶部１０５に記憶される画面ＵＩ部品定義情報を示す。１つの画面ＵＩ部品に関する画面ＵＩ部品定義情報は、画面仕様定義情報の一要素として、画面ＵＩ部品ＩＤ（IDentifier）５０１、名称５０２、タイプ５０３、表示文字列５０４、０セット以上の属性値を含む属性（属性と属性値がペアとなる）５０５〜５０８で構成される。
【００４８】
画面ＵＩ部品ＩＤ５０１は、画面ＵＩ部品を一意に識別する識別子である。名称５０２は、画面ＵＩ部品の名称であり、利用者の理解を助けるためのものである。タイプ５０３は、ボタンや１行テキスト入力など、画面ＵＩ部品の種別を示す識別子である。表示文字列５０４は、画面ＵＩ部品が画面表示される際の文字列表現である。属性値を含む属性５０５〜５０８は、画面ＵＩ部品の詳細な振る舞いや見た目を決定する情報であり、タイプ５０３によって指定すべき属性は異なる。
【００４９】
レコード５０９は、図４の画面タイトル４０１に対応する画面ＵＩ部品定義情報である。レコード５０９には、画面UI部品ID５０１として、「ELM０００１」が定義され、名称５０２として、「画面タイトル」が定義され、タイプ５０３として、「ラベル」が定義され、表示文字列５０４として、「検索画面」が定義され、これらに対して、属性５０５として、「フォントサイズ」が定義され、属性５０５の属性値として、「１８ｐｔ」が定義され、属性５０６として、「文字スタイル」が定義され、属性５０６の属性値として、「ｂｏｌｄ」が定義されている。
【００５０】
レコード５１０は、図４の終了ボタン４０２に対応する画面ＵＩ部品定義情報である。レコード５１０には、画面UI部品ID５０１として、「ELM０００２」が定義され、名称５０２として、「終了ボタン」が定義され、タイプ５０３として、「ボタン」が定義され、表示文字列５０４として、「終了」が定義され、これらに対して、属性５０５として、「ボタンタイプ」が定義され、属性５０５の属性値として、「ｂｕｔｔｏｎ」が定義され、属性５０６として、「起動スクリプト」が定義され、属性５０６の属性値として、「ｌｏｇｏｕｔ（）」が定義され、属性５０７として、「文字スタイル」が定義され、属性５０７の属性値として、「ｂｏｌｄ」が定義されている。
【００５１】
レコード５１１は、図４の検索フィールド４０６に対応する画面ＵＩ部品定義情報である。レコード５１１には、画面UI部品ID５０１として、「ELM０００３」が定義され、名称５０２として、「検索条件フィールド」が定義され、タイプ５０３として、「１行テキスト入力」が定義され、表示文字列５０４として、「（なし）」が定義され、これらに対して、属性５０５として、「データ長」が定義され、属性５０５の属性値として、「６４」が定義され、属性５０６として、「表示長」が定義され、属性５０６の属性値として、「３２」が定義され、属性５０７として、「項目名」が定義され、属性５０７の属性値として、「SearchCond」が定義され、属性５０８として、「初期値」が定義され、属性５０８の属性値として、「００１１」が定義されている。
【００５２】
画面タイトル４０１と終了ボタン４０２は、複数の画面に存在するが、画面ＵＩ部品定義情報記憶部１０５では、１つの画面ＵＩ部品定義情報として記憶する。この際、定義情報編集部１０４は、例えば、画面プログラムのエンハンス等の際に、複数画面で共通のＵＩ部品の仕様を変更する必要が生じ、編集要求元である入力装置１０２から、各画面共通の仕様定義情報に関する修正の指示を受けた場合、１つの画面ＵＩ部品定義情報を修正の指示に従って自動で修正することができる。このため、エンハンス時に、各画面共通の画面仕様定義情報を、人手を確保することなく自動で修正することができるとともに、修正すべき画面ＵＩ部品定義情報も１つで済む利点がある。
【００５３】
図６は、画面構造断片定義情報記憶部１０６に記憶される画面構造断片定義情報を示す。１つの画面構造断片定義情報は、画面仕様定義情報の一要素として、構造断片ＩＤ６０１と構造断片定義内容６０２で構成される。構造断片ＩＤ６０１は、構造断片を一意に識別するための識別子である。構造断片定義内容６０２は、構造断片の定義内容である。
【００５４】
レコード６０３は、図４における各画面共通のフレーム部分４０３の画面構造断片定義情報であり、その構造断片定義内容の詳細を図８に示す。レコード６０４は、図４における第１の画面固有の部分４０８の画面構造断片定義情報であり、その構造断片定義内容を図９に示す。レコード６０５は、図４における第２の画面固有の部分４０９の画面構造断片定義情報であり、その構造断片定義内容を図１０に示す。
【００５５】
図８〜図１０における構造断片定義内容は、表現方法としてXML（Extensible  Markup  Language）を利用した場合の例を示している。そのXMLスキーマを図７に示す。図７に示されるように、グリッドは、グリッドエレメントに対応し、行エレメントと列エレメントの２階層で１つのセルを表現する。セルは、グリッドエレメント、画面ＵＩ部品ＩＤエレメントまたは、結合点ＩＤエレメントのいずれか1つを持つ。
【００５６】
グリッドエレメントの場合、グリッドの再帰構造を表現する。画面ＵＩ部品ＩＤエレメントの場合、当該セルにその画面ＵＩ部品ＩＤを持つ別の画面ＵＩ部品が配置されることを表現する。結合点ＩＤエレメントの場合、当該のセルに、他の構造断片のルートノードが結合可能であることを示し、結合点ＩＤの値により、１つの構造断片中で結合点を一意にする。
【００５７】
図８の例では、図４における各画面共通のフレーム部分４０３に配置される画面ＵＩ要素ELM0001とELM0002の画面ＵＩ要素がセルに配置されることや、結合点ＩＤ「LNK0001」の結合点が定義されている。即ち、画面ＵＩ要素ELM0001とELM0002の画面ＵＩ要素となるセルにそれぞれ画面タイトル４０１、終了ボタン４０２が配置され、結合点ＩＤ「LNK0001」の結合点に第１の画面固有の部分４０８が結合されることが定義されている。
【００５８】
図９の例では、図４における第１の画面固有の部分４０８に配置される画面ＵＩ要素ELM0003とELM0004の画面ＵＩ要素がセルに配置されることが定義されている。
【００５９】
図１０の例では、図４における第２の画面固有の部分４０９に配置される画面ＵＩ要素ELM0005とELM0006の画面ＵＩ要素がセルに配置されることが定義されている。
【００６０】
図１１は、画面構成定義情報記憶部１０７に記憶される画面構成定義情報を示す。１つの画面構成定義情報は、画面仕様定義情報の一要素として、画面構成ＩＤ１１０１と、１セット以上の構造断片ＩＤ・親構造断片ＩＤ・結合点ＩＤの３つを含む画面構成定義内容１１０２〜１１０４で構成される。
【００６１】
画面ＩＤ１１０１は、画面構成定義情報を一意に識別する識別子である。画面構成定義内容１１０３の構造断片ＩＤは、各画面の構成要素となる構造断片の識別子であり、画面構造断片定義情報記憶部１０６に記憶される構造断片ＩＤ６０１に対応する。画面構成定義内容１１０３の親構造断片ＩＤと結合点ＩＤは、構造断片ＩＤで指定した構造断片のルートノードが連結する別の構造断片の構造断片ＩＤおよびその構造断片中の結合点ＩＤであり、定義情報記憶部１０６に記憶される構造断片ＩＤ６０１およびその構造断片定義内容６０２で定義された結合点ＩＤに対応する。
【００６２】
画面構成定義内容１１０２の親構造断片ＩＤと結合点ＩＤは、各画面を構成する構造断片のうち最上位の構造断片については値なしである。画面構成定義内容１１０２〜１１０３は、１つの画面構成定義に対して、各画面を構成する構造断片の個数と同じ数だけある。
【００６３】
レコード１１０５は、図４における第１の画面固有の部分４０８の画面構成定義情報である。レコード１１０５では、第１の画面は、２つの構造断片STR0001とSTR0002で構成され、構造断片STR0002は、構造断片STR0001の結合点LNK0001に結合することが定義されている。レコード１１０６は、図４における第２の画面固有の部分４０９の画面構成定義情報である。レコード１１０６では、第２の画面は、2つの構造断片STR0001とSTR0003で構成され、構造断片STR0003は、構造断片STR0001の結合点LNK0001に結合することが定義されている。
【００６４】
即ち、第１の画面は、各画面共通のフレーム部分４０３に対応する構造断片STR0001と第１の画面固有の部分４０８に対応する構造断片STR0002で構成され、構造断片STR0002は、構造断片STR0001の結合点LNK0001に結合されている。第２の画面は、各画面共通のフレーム部分４０３に対応する構造断片STR0001と第２の画面固有の部分４０９に対応する構造断片STR0003で構成され、構造断片STR0003は、構造断片STR0001の結合点LNK0001に結合されている。
【００６５】
この際、画面構成定義情報記憶部１０７は、各画面の構成に関する画面仕様定義情報として、各画面固有の部分と各画面共通の部分との結合点に関する情報を含む画面構成定義情報を記憶することになる。また、画面構造断片定義情報記憶部１０６は、画面構造断片定義情報を、各画面固有の画面構造断片定義情報と各画面共通の画面構造断片定義情報に区別して記憶するとともに、画面ＵＩ部品定義情報と画面構成定義情報に関連付けて記憶することになる。
【００６６】
次に、図４における第１の画面固有の部分４０８について、画面プログラムコードを生成する動作の流れを説明する。
【００６７】
画面プログラムコード生成部１０８は、画面構成定義情報記憶部１０７から、当該画面（第１の画面固有の部分４０８）に関する画面構成定義情報１１０５を取得し、取得した画面構成定義情報１１０５から最上位の構造断片のＩＤ「STR0001」を取得する。最も上位の構造断片は、親構造断片ＩＤが値をもたないことから判別できる。取得した構造断片のＩＤ「STR0001」をキーに、画面構造断片定義記憶部１０６から、レコード６０３の構造断片定義情報として、レコード６０３の構造断片定義内容６０２のXMLデータ（図８の構造断片定義内容から得られるデータ）を取得する。
【００６８】
画面プログラムコード生成部１０８は、取得したXMLデータの構造断片エレメント直下のグリッドエレメントに対して、図１２フローチャートに示される、グリッドに対応するコードの生成処理を行う。
【００６９】
まず、グリッド開始コード生成処理（S１２０１）では、画面プログラムコード生成部１０８は、画面構造断片コード生成規則記憶部１１０に記憶された画面構造断片コード生成規則（図１４参照）から、種別１４０２が「グリッド開始」のコード生成規則１４０３を取得し、生成プログラムコード断片１４０２に記憶された内容のコード「〈ｔａｂｌｅ〉」を生成する。
【００７０】
ループ部分では、グリッドエレメント下の各行エレメントについてループ処理（S１２０２〜S１２０４）を行う。
【００７１】
即ち、行開始コード生成処理（S１２０３）では、画面構造断片コード生成規則記憶部１１０から種別１４０１が「行開始」のコード生成規則１４０５を取得し、生成プログラムコード断片１４０２に記憶された内容のコード「〈ｔｒ〉」を生成する。
【００７２】
次のループ部分では、行エレメント下の各列エレメントについてループ処理（S１２０４〜S１２１２）を行う。
【００７３】
即ち、列開始コード生成１２０５では、画面構造断片コード生成規則記憶部１１０から種別１４０１が「列開始」のコード生成規則１４０７を取得し、生成プログラムコード断片１４０２に記憶された内容のコード「〈ｔｄ〉」を生成する。
【００７４】
ステップS１２０６〜S１２１０では、列エレメント下のエレメントの種類によって処理が分岐し、画面プログラムコード生成部１０８は、列エレメント下のエレメントの種類によって以下の処理を実行する。
【００７５】
（１）グリッドエレメントの場合
当該グリッドについて、ステップS１２０１〜S１２０６を再帰呼び出しして、当該グリッドに対応する画面プログラムコードを生成する（S１２０７）。
【００７６】
（２）画面ＵＩ部品ＩＤエレメントの場合
画面ＵＩ部品定義情報記憶部１０５から、画面ＵＩ部品ＩＤ５０１をキーに、当該画面ＵＩ部品の画面ＵＩ部品定義情報を取得し、画面ＵＩ部品コード生成規則記憶部１０９に記憶された画面ＵＩ部品コード生成規則（図１３）から、タイプ１３０１が、当該の画面ＵＩ部品のタイプ５０３に対応する生成プログラムコード断片１３０２を取得し、取得した生成プログラムコード断片１３０２に従って画面プログラムコードを生成する（S１２０９）。
【００７７】
例えば、画面ＵＩ部品ＩＤ５１０が「ELM0001」であれば、画面ＵＩ部品定義情報のレコード５０９において、タイプ５０３が「ラベル」であるため、画面ＵＩ部品コード生成規則のレコード１３０３が対応し、レコード１３０３の生成プログラムコード断片１３０２の内容のうち、属性パラメータ「[フォントサイズ]」の部分と「[文字スタイル]」の部分を、図５の画面ＵＩ部品定義情報のレコード５０９で定義された属性５０５のフォントサイズの属性値「18pt」と属性５０６の文字スタイルの属性値「bold」で置換する。
【００７８】
（３）結合点ＩＤエレメントの場合
当該画面に関する画面構成定義情報１１０５から当該の結合点を結合先とする構造断片の構造断片ＩＤ「STR0002」を取得し、取得した構造断片ＩＤ「STR0002」をキーに、画面構造断片定義情報記憶部１０６から、図６の画面構造断片定義情報のレコード６０４に対応した構造断片定義内容６０２を取得し、その構造断片定義内容６０２のXMLデータ（図９の構造断片定義内容から得られるデータ）を取得する。
【００７９】
取得したXMLデータの構造断片エレメント直下のグリッドエレメントに対して、当該グリッドエレメントに対応する画面プログラムコードを生成する（S１２１０）。
【００８０】
次に、列終了コード生成処理では、画面構造断片コード生成規則記憶部１１０から、種別１４０１が「列終了」のレコード１４０８の内容を取得し、生成プログラムコード断片１４０２に記憶された内容のコード「〈/ｔｄ〉」を生成する（S１２１１）。
【００８１】
この後、ループ部分では、グリッドエレメント下の各行エレメントについてループ処理（S１２１２〜S１２１４）を行う。
【００８２】
行終了コード生成処理では、画面構造断片コード生成規則記憶部１１０から、種別１４０１が「行終了」のレコード１４０６の内容を取得し、生成プログラムコード断片１４０２に記憶された内容のコード「〈/ｔｒ〉」を生成する（S１２１３）。
【００８３】
次に、グリッド終了コード生成処理では、画面構造断片コード生成規則記憶部１１０から、種別１４０１が「グリッド終了」のレコード１４０４の内容を取得し、生成プログラムコード断片１４０２に記憶された内容のコード「〈/ｔａｂｌｅ〉」を生成する（S１２１５）。
【００８４】
ステップS１２０１〜S１２１５までの処理が完了したら、画面プログラムコード生成部１０８は、生成された画面プログラムコードを画面プログラムコード記憶部１１１に記憶する。
【００８５】
上述したように、複数の画面のうち、例えば、第１の画面に関する画面プログラムコードを生成するに際しては、各画面共通のフレーム部分４０３の画面構造断片定義情報を参照し、各画面共通のフレーム部分４０３の構造断片STR0001に関するXMLデータを画面プログラムコードに順次変換し、この過程で、例えば、画面ＵＩ要素ＩＤをXMLデータが存在するときには、図５の画面ＵＩ部品定義情報を参照し、画面ＵＩ部品定義情報に関するXMLデータを画面プログラムコードに順次変換し、結合点IDを示すXMLデータが存在するときには、図１１の画面構成定義情報を参照し、第１の画面固有の部分４０８の構造断片STR0002に関するXMLデータを画面プログラムコードに順次変換し、これらの変換処理が終了した後、各画面共通のフレーム部分４０３の構造断片STR0001に関するXMLデータを画面プログラムコードに順次変換することになる。
【００８６】
本実施例においては、画面仕様定義情報を各記憶部に記憶するに際して、各画面の共通部分に関する画面仕様定義情報のうち、画面ＵＩ部品に関するものであれば、画面ＵＩ部品定義情報記憶部１０５に、構造に関するものであれば、画面構造断片定義情報記憶部１０６に、それぞれ１つの画面仕様定義情報として記憶しているので、定義情報編集部１０４は、例えば、画面プログラムのエンハンス等の際に、複数画面で共通の画面仕様定義情報を変更する必要が生じ、編集要求元である入力装置１０２から各画面共通の画面仕様定義情報に関する修正の指示を受けた場合、それぞれ１つの画面仕様定義情報を修正の指示に従って自動で修正することができる。
【００８７】
このため、本実施例によれば、画面プログラムのエンハンスを行う際などに、各画面共通部分の仕様を変更する場合、１か所のみ修正すれば済み、各画面共通部分の画面仕様定義情報の一貫性を確保するのに人手を必要としないという利点がある。
【００８８】
また、本実施例によれば、２つの画面構造に関する仕様を構造断片の階層的な結合で定義できるため、従来のようなテンプレートで表現できない画面グループごとに異なるフレームを持つケースやフレームが階層的になるケースでも、共通仕様を集約して定義できるという利点がある。
【実施例２】
【００８９】
本実施例は、画面の共通的なフレーム構造が画面構造断片定義としてすでに画面構造断片定義情報記憶部１０５に記憶されているとき、そのフレーム構造に一部適合しない部分構造をもった新たな画面を追加する必要が生じた際に、既存の共通フレーム構造を再構成して、新たな画面の画面仕様定義を追加するものである。
【００９０】
図１５は、本実施例における２つの画面（第１の画面と第２の画面）の構造断片の例を示す。グリッド１５０１を最上位とする画面構造断片は、各画面の共通フレームである。グリッド１５０１に属する２つのセル１５２１、１５２２のうち上側のセル１５２１には、グリッド１５０３が含まれ、下側のセル１５２２には、グリッド１５０２が含まれる。グリッド１５０２に属する２つのセル１５２３、１５２４のうち上側のセル１５２３にはグリッド１５０４が含まれ、下側のセル１５２４には結合点１５０５が含まれる。この結合点１５０５に、各画面固有（個別）の部分グリッド構造（第１の画面固有の部分グリッド構造または第２の画面固有の部分グリッド構造）が結合する。グリッド１５０１を最上位とする画面構造断片定義情報は、すでに画面構造断片定義情報記憶部１０５に記憶されているものとする。
【００９１】
グリッド１５０６は、新たに追加される画面の画面構造断片である。グリッド１５０６、１５０７、１５０８は、それぞれ各画面の共通フレームのグリッド１５０１、１５０２、１５０３と同一であり、グリッド１５０７の上側のセル１５３３に属するグリッド１５０９のみが、各画面の共通フレームのグリッド１５０４と異なっている。
【００９２】
なお、グリッド１５０６に属する２つのセル１５３１、１５３２のうち上側のセル１５３１には、グリッド１５０８が含まれ、下側のセル１５３２には、グリッド１５０７が含まれる。グリッド１５０７に属する２つのセル１５３３、１５３４のうち上側のセル１５３３には、グリッド１５０９が含まれ、下側のセル１５３４には、結合点１５１０が含まれる。
【００９３】
図１６は、既存の共通フレーム構造を再構成して新たな画面の画面仕様定義情報を追加する場合の全体動作の流れを示す。
【００９４】
まず、定義情報編集部１０３は、対象構造断片定義の選択処理を実行し、表示装置１０１と入力装置１０２を介して、再構成する対象の画面フレーム構造に対応する画面構造断片定義の構造断片ＩＤ１１０１に関する情報を利用者から受け付ける（S１６０１）。
【００９５】
次に、定義情報編集部１０３は、差異グリッドの選択処理を実行し、利用者によって選択された画面フレーム構造と新たに追加する画面のフレーム構造とで異なる部分構造の最上位のグリッドである差異グリッドに関する情報として、例えば、グリッド１５０４の情報を利用者から受け付ける（S１６０２）。
【００９６】
次に、画面仕様定義情報再構成部１１２は、画面構造断片の分割処理を実行し、差異グリッドに関する情報として選択された構造断片ＩＤをキーとして、画面構造断片定義情報を画面構造断片定義情報記憶部１０６から取得し、以下の手順で構造断片を分割する。
【００９７】
（１）差異グリッドの親グリッドを最上位とする構造断片定義情報を画面構造断片定義情報記憶部１０６に新たに追加する。
（２）対象となる構造断片定義情報に関して、差異グリッドの親グリッドを結合点に置換する。
【００９８】
図１７は、図１５に示す画面の例に対して、上述の構造断片の分割を実施した場合の例を示す。グリッド１５０２を最上位とする構造断片は、差異グリッドであるグリッド１５０４の親グリッド１５０２を最上位とする構造断片から、新たに追加される構造断片である。グリッド１５０１を最上位とする構造断片は、差異グリッド１５０４の親グリッド１５０２が結合点１５０５に置換される。
【００９９】
次に、画面仕様定義情報再構成部１１２は、画面構成定義の更新処理を実行し、画面構成定義情報記憶部１０７に記憶されている画面構成定義情報のうち対象となる画面構造断片定義情報を、参照していた全ての画面構成定義情報に、分割により追加した画面構造断片定義情報を追加する更新を行う（S１６０４）。
【０１００】
図１８は、図１５に示す画面の例に対して、画面構成定義情報の更新を行った場合の例を示す。図１８の（ａ）に示す画面構成定義情報は、更新前の情報であり、図１８の（ｂ）に示す画面構成定義情報は、更新後の情報である。
【０１０１】
図１８の（ａ）に示す更新前の画面構成定義情報において、画面構成定義内容１１０２の構造断片ＩＤ「STR1001」は、グリッド１５０１を最上位とする構造断片、画面構成定義内容１１０３の構造断片ＩＤ「STR1002」は、画面構成定義内容１１０３の親構造断片ＩＤ「STR1001」に結合点ＩＤ「LNK1001」で結合していた別の構造断片である。
【０１０２】
図１８の（ｂ）に示す更新後の画面構成定義情報において、画面構造断片の分割処理で追加された構造断片ＩＤ「STR1003」が、画面構成定義情報に追加されている。それに伴い、親構造断片ＩＤ「STR1001」の結合点LNK1001に結合する構造断片が、「STR1002」から「STR1003」に更新され、構造断片ＩＤ「STR1002」の結合先が、構造断片ＩＤ「STR1003」の結合点LNK1001に更新される。また、構造断片ＩＤ「STR1002」が、画面構成定義情報に追加されている。それに伴い、親構造断片ＩＤ「STR1002」の結合点LNK1001に結合する構造断片として、「STR1003」が追加される。
【０１０３】
次に、画面仕様定義情報再構成部１１２は、追加画面の画面仕様の定義処理を実行し、追加する画面の画面仕様定義情報を編集する（S１６０５）。例えば、図１５に示す画面の例では、追加する画面の画面固有部分の構造断片であるグリッド１５０７を最上位とする構造断片に関する画面構造断片定義情報を画面構造断片定義情報記憶部１０６に記憶し、グリッド１５０７を最上位とする構造断片が、グリッド１５０１を最上位とする構造断片を分割したときの結合点１５０５に結合するような画面構成定義情報を画面構成定義情報記憶部１０７に記憶する。
【０１０４】
即ち、画面仕様定義情報再構成部１１２は、新たに追加される画面と各画面共通の部分との差異を示す情報（グリッド１５０４に関する情報）を基に、各画面共通の画面に属する画面構造断片定義情報を、新たに追加される画面に流用できる部分に関する画面構造断片定義情報（グリッド１５０１に関する画面構造断片情報）と、新たに追加される画面と各画面共通の部分との差異に関する画面構造断片定義情報（グリッド１５０４に関する画面構造断片情報）とに分割し、新たに追加される画面に流用できる部分に関する画面構造断片定義情報を、新たに追加される画面固有の画面構造断片定義情報との結合点として、新たに追加される画面に関する画面構成定義情報を画面構成定義情報記憶部１０７に記憶し、既存の共通フレーム構造の再構成と関連する画面構成定義情報の変更を自動的に実行する。
【０１０５】
本実施例によれば、各画面で共通なフレーム構造が画面構造断片定義情報として既に画面構造断片定義情報記憶部１０６に記憶されている場合、各画面で共通なフレーム構造に一部適合しない部分構造をもった新たな画面を追加する必要が生じた際に、既存の共通フレーム構造の再構成と関連する画面構成定義情報の変更を自動的に行うことができる。
【０１０６】
このため、本実施例によれば、反復型の開発プロセスのように仕様が当初からすべて明確でなく、後で画面を追加する際に、共通フレームの共通範囲の変更を行うような開発方法でも、全画面の画面仕様定義情報を変更する手戻りが不要であるという利点がある。
【０１０７】
また、本実施例によれば、フレーム部分に対応する画面共通の構造の仕様定義がなされた状態で、フレーム部分の共通範囲の変更が必要になったとき、定義済みのフレーム部分の共通構造を分割するとともに、そのフレーム部分に関係する定義済みの画面仕様情報を一括して更新できるため、本発明を反復型の開発プロセスに適用しても、共通範囲変更が必要になった際の各画面の仕様定義の修正の手戻りが不要になる利点がある。
【０１０８】
なお、本発明において、画面プログラムコード生成部１０８は、画面ごとに１つずつのプログラムモジュールとして画面プログラムコードを生成することもできるとともに、画面共通の部分に対応する画面プログラムコードを１つのモジュールに共通化したものとして生成することもできる。即ち、画面プログラムコード生成部１０８は、画面プログラムコードを、各画面共通の画面プログラムコードと各画面固有の画面プログラムコードに分けて生成することができる。後者の場合、画面プログラムのサイズを、前者に比べて小さくできる為、画面プログラムの実行時のメモリサイズを削減できる利点がある。
【符号の説明】
【０１０９】
１０１  表示装置
１０２  入力装置
１０３  画面プログラム生成装置
１０４  定義情報編集部
１０５  画面ＵＩ部品定義情報記憶部
１０６  画面構成断片定義情報記憶部
１０７  画面構成定義情報記憶部
１０８  画面プログラムコード生成部
１０９  画面ＵＩ部品コード生成規則記憶部
１１０  画面構造断片コード生成規則記憶部
１１１  画面プログラムコード記憶部
１１２  画面仕様定義情報再構成部
【図１】
2011238151.tif 000003
【図２】
2011238151.tif 000004
【図３】
2011238151.tif 000005
【図４】
2011238151.tif 000006
【図５】
2011238151.tif 000007
【図６】
2011238151.tif 000008
【図７】
2011238151.tif 000009
【図８】
2011238151.tif 000010
【図９】
2011238151.tif 000011
【図１０】
2011238151.tif 000012
【図１１】
2011238151.tif 000013
【図１２】
2011238151.tif 000014
【図１３】
2011238151.tif 000015
【図１４】
2011238151.tif 000016
【図１５】
2011238151.tif 000017
【図１６】
2011238151.tif 000018
【図１７】
2011238151.tif 000019
【図１８】
2011238151.tif 000020