(57)【要約】【課題】グラフ構造で管理されたモデル情報と帳票形式の設計書との間の相互変換を可能とする。【解決手段】モデル情報１ａから帳票２ａへの同期要求が入力されると、帳票同期手段５ａにより、同期対象モデル要素に設定された同期対象属性の属性値に応じた値が、同期対象モデル要素が関連付けられた行または列に並べられたセルに設定される。帳票２ａからモデル情報１ａへの同期要求が入力されると、モデル同期手段５ｂにより、行または列に設定された識別子に対応するモデル情報１ａ内の同期対象モデル要素に対して、行または列に並べられたセルに対応する同期対象属性の属性値が設定される。【選択図】図１
2008059367.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理プログラムにおいて、
コンピュータを、
一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段、
テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段、
前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段、
前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段、
前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段、
として機能させることを特徴とするシステムデータ構造管理プログラム。
【請求項２】
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする請求項１記載のシステムデータ構造管理プログラム。
【請求項３】
前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段は、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段は、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から２つの前記同期対象モデル要素を検出し、検出された２つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする請求項１記載のシステムデータ構造管理プログラム。
【請求項４】
コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理装置において、
一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、
テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、
前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段と、
前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段と、
前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段と、
を有することを特徴とするシステムデータ構造管理装置。
【請求項５】
コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とをコンピュータで管理するためのシステムデータ構造管理方法において、
あらかじめ、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段とを用意し、
帳票同期手段が、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定し、
モデル同期手段が、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定する、
ことを特徴とするシステムデータ構造管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムで利用するデータを管理するためのシステムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法に関し、特にデータ間の関係を図で表現するためのモデル情報と利用されるデータをテーブルで表す帳票とを管理するためのシステムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法に関する。
【背景技術】
【０００２】
最近のコンピュータのシステム開発では、開発の初期段階でシステムのモデル情報が定義される。モデル情報は、プログラム中で利用されるデータ間の関係を表したものである。たとえば、ＵＭＬ（Unified Modeling Language）を用いてモデル情報を作成することができる。ＵＭＬによって記述されたモデル情報は、データ間の関係を理解するのに有用である。
【０００３】
また、一般的には、モデル情報とは別に設計書が作成される。設計書には、多数定義されたデータ項目に対してどのようなデータを入力すべきかなどの情報が含まれる。多くの場合、システムを利用するユーザは、設計書を参照して、そのユーザがシステムを用いて遂行する業務に必要なデータが網羅されていることを確認する。
【０００４】
このように開発途中でモデル情報と設計書との双方を作成した場合、モデル情報の内容と設計書の内容との整合性を常に保つ必要がある。たとえば、モデル情報においてデータのクラスを追加した場合には、設計図にもそのクラスに対応するデータの内容が示される必要がある。ただし、モデル情報と設計書との間の整合性を人手によって保つのは非常に手間がかかる。また、人手に頼っていると作業ミスが発生し易く、モデル情報と設計書との整合性が保証できなくなってしまう。
【０００５】
そこで、モデル情報から設計書を作成する技術が考えられている。たとえば、ＵＭＬで記述された設計モデルを含む設計情報を解析して、テキストデータなどで記述された仕様書を作成する技術がある（例えば、特許文献１参照）。
【特許文献１】特開２００５−２５８５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、製品の設計などに使用されるモデリングツールは一般にモデル情報をグラフ構造として管理するが、モデル情報を閲覧あるいは編集する際は、表形式で扱うことで作業効率が向上する。たとえば、データモデルにおけるデータ項目の一覧や、ＧＵＩ（Graphical User Interface）画面モデルにおける画面項目の一覧などを表形式で表示することで、設計上の漏れの有無を容易に確認できる。そのため、設計文書では、表形式の帳票を用いることが特に多い。
【０００７】
しかし、ユーザ固有の形式を持つ帳票とモデル情報とを自動的に同期するための機能を提供するモデリングツールは存在しない。そのため、モデル情報を帳票に転記する、あるいは帳票の内容を元にモデル情報を構築するという作業を、いずれもユーザが手作業で行っているのが現状である。このような場合、モデル情報と帳票とは別々に管理されるため、一方の修正をもう一方に反映するという作業も含め、設計書作成にかかる工数は莫大なものとなっている。
【０００８】
なお、上記特許文献１に示した技術では、作成される仕様書はテキストデータである。従って、当該技術を用いても、モデル情報から帳票形式の設計書を作成することはできない。
【０００９】
本発明はこのような点に鑑みてなされたものであり、グラフ構造で管理されたモデル情報と帳票形式の設計書との間の相互変換ができるシステムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記課題を解決するために、図１に示すようなシステムデータ構造管理プログラムが提供される。本発明に係るシステムデータ構造管理プログラムは、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報１ａと、利用されるデータをテーブルで表す帳票２ａとを管理するために、図１に示す機能をコンピュータに実行させることができる。
【００１１】
モデル情報記憶手段１は、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報１ａを記憶する。帳票記憶手段２は、テーブルの行と列との少なくともいずれか一方にモデル要素が関連付けられ、モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられたモデル要素に関する属性に応じた値が設定された帳票２ａを記憶する。マッピング定義記憶手段３は、帳票２ａと同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、帳票２ａと同期させる属性を同期対象属性として定義する同期対象属性定義、および同期対象要素ごとの同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義３ａを記憶する。帳票同期手段５ａは、モデル情報１ａから帳票２ａへの同期要求が入力されると、同期対象要素定義に基づいて、モデル情報１ａから同期対象モデル要素を抽出し、抽出した同期対象モデル要素をテーブル構造定義に従って帳票２ａ内の行または列に関連付け、関連付けた同期対象モデル要素の識別子を関連付けられた行または列に設定し、同期対象属性定義に基づいて、抽出した同期対象モデル要素に設定された同期対象属性の属性値を抽出し、抽出した同期対象属性の属性値に応じた値を、同期対象モデル要素が関連付けられた行または列に並べられたセルにテーブル構造定義に従って設定する。モデル同期手段５ｂは、帳票２ａからモデル情報１ａへの同期要求が入力されると、テーブル構造定義に基づいて帳票２ａ内の同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する同期対象属性をテーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する同期対象属性の属性値を判断し、行または列に設定された識別子に対応するモデル情報１ａ内の同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値を設定する。
【００１２】
このようなシステムデータ構造管理プログラムをコンピュータに実行させると、コンピュータにモデル情報１ａから帳票２ａへの同期要求が入力されると、帳票同期手段５ａにより、モデル情報１ａから抽出された同期対象モデル要素が帳票２ａ内の行または列に関連付けられる。次に、帳票同期手段５ａにより、関連付けた同期対象モデル要素の識別子が関連付けられた行または列に設定される。さらに、帳票同期手段５ａにより、抽出した同期対象モデル要素に設定された同期対象属性の属性値に応じた値が、同期対象モデル要素が関連付けられた行または列に並べられたセルに設定される。また、コンピュータに帳票２ａからモデル情報１ａへの同期要求が入力されると、モデル同期手段５ｂにより、帳票２ａ内の同期対象モデル要素が関連付けられた行または列が判断される。次に、モデル同期手段５ｂにより、該当する行または列に並べられたセルに対応する同期対象属性が判断される。さらに、モデル同期手段５ｂにより、セルに設定された値に基づいて対応する同期対象属性の属性値が判断される。そして、モデル同期手段５ｂにより、行または列に設定された識別子に対応する同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値が設定される。
【００１３】
また、本発明では上記課題を解決するために、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理装置において、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段と、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段と、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段と、を有することを特徴とするシステムデータ構造管理装置が提供される。
【００１４】
さらに、本発明では上記課題を解決するために、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とをコンピュータで管理するためのシステムデータ構造管理方法において、あらかじめ、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段とを用意し、帳票同期手段が、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定し、モデル同期手段が、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定する、ことを特徴とするシステムデータ構造管理方法が提供される。
【発明の効果】
【００１５】
本発明では、モデル情報と帳票との間の相互変換を行うためのマッピング定義を設け、マッピング定義に従って、モデル情報から帳票への反映、および帳票からモデル情報への反映を共に自動で行えるようにした。これにより、ユーザは、モデル情報と帳票とのうち、データ構造等の編集操作に都合の良い方を自由に選択して編集するだけで、その編集内容をモデル情報と帳票との双方に反映させることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、発明の概要を示す図である。本発明は、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報１ａと、利用されるデータをテーブルで表す帳票２ａとを管理するためものである。そのために、モデル情報記憶手段１、帳票記憶手段２、マッピング定義記憶手段３、帳票テンプレート記憶手段４、およびデータ変換手段５を有する。
【００１７】
モデル情報記憶手段１は、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報１ａを記憶する。各モデル要素には、一意に識別可能な識別子が設定されている。
【００１８】
帳票記憶手段２は、帳票２ａを記憶する。帳票２ａには、テーブルの行と列との少なくともいずれか一方にモデル要素が関連付けられる。また、帳票２ａにおいて、モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられたモデル要素に関する属性に応じた値が設定される。ここで、属性に応じた値とは、その属性の属性値の場合や、その属性の有無を示す記号の場合などがある。
【００１９】
帳票テンプレート記憶手段４は、帳票を作成するための雛形である帳票テンプレート４ａを記憶する。
マッピング定義記憶手段３は、マッピング定義３ａを記憶する。マッピング定義３ａは、同期対象要素定義、同期対象属性定義、テーブル構造定義で構成される。同期対象要素定義は、帳票２ａと同期させるモデル要素を同期対象モデル要素として定義するものである。同期対象属性定義は、帳票２ａと同期させる属性を同期対象属性として定義するものである。テーブル構造定義は、同期対象属性定義、および同期対象要素ごとの同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたものである。
【００２０】
帳票同期手段５ａは、モデル情報１ａから帳票２ａへの同期要求が入力されると、モデル情報１ａの内容を帳票２ａに反映させる。具体的には、帳票同期手段５ａは、帳票２ａの存在を確認する。帳票２ａが無ければ、帳票同期手段５ａは、帳票テンプレート４ａを帳票記憶手段２にコピーし、コピーしたものを帳票２ａとする。次に、同期対象要素定義に基づいて、モデル情報１ａから同期対象モデル要素を抽出する。帳票同期手段５ａは、抽出した同期対象モデル要素をテーブル構造定義に従って帳票２ａ内の行または列に関連付ける。さらに、帳票同期手段５ａは、関連付けた同期対象モデル要素の識別子を関連付けられた行または列に設定する。帳票同期手段５ａは、同期対象属性定義に基づいて、抽出した同期対象モデル要素に設定された同期対象属性の属性値を抽出する。そして、帳票同期手段５ａは、抽出した同期対象属性の属性値に応じた値を、同期対象モデル要素が関連付けられた行または列に並べられたセルにテーブル構造定義に従って設定する。
【００２１】
モデル同期手段５ｂは、帳票２ａからモデル情報１ａへの同期要求が入力されると、テーブル構造定義に基づいて帳票２ａ内の同期対象モデル要素が関連付けられた行または列を判断する。次に、モデル同期手段５ｂは、該当する行または列に並べられたセルに対応する同期対象属性をテーブル構造定義に基づいて判断する、さらに、モデル同期手段５ｂは、セルに設定された値に基づいて対応する同期対象属性の属性値を判断し、行または列に設定された識別子に対応するモデル情報１ａ内の同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値を設定する。
【００２２】
このような構成によれば、モデル情報１ａから帳票２ａへの同期要求が入力されると、帳票同期手段５ａにより、モデル情報１ａから抽出された同期対象モデル要素が帳票２ａ内の行または列に関連付けられる。次に、帳票同期手段５ａにより、関連付けた同期対象モデル要素の識別子が関連付けられた行または列に設定される。さらに、帳票同期手段５ａにより、抽出した同期対象モデル要素に設定された同期対象属性の属性値に応じた値が、同期対象モデル要素が関連付けられた行または列に並べられたセルに設定される。
【００２３】
また、帳票２ａからモデル情報１ａへの同期要求が入力されると、モデル同期手段５ｂにより、帳票２ａ内の同期対象モデル要素が関連付けられた行または列が判断される。次に、モデル同期手段５ｂにより、該当する行または列に並べられたセルに対応する同期対象属性が判断される。さらに、モデル同期手段５ｂにより、セルに設定された値に基づいて対応する同期対象属性の属性値が判断される。そして、モデル同期手段５ｂにより、行または列に設定された識別子に対応する同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値が設定される。
【００２４】
このようにして、モデル情報１ａの内容を帳票２ａに反映させること、および帳票２ａの内容をモデル情報１ａに反映させることが可能となる。その結果、ユーザは、モデル情報と帳票とのうち、データ構造等の編集操作に都合の良い方を自由に選択して編集するだけでよくなる。しかも、モデル情報１ａと帳票２ａとの不整合の発生も抑制できる。
【００２５】
［第１の実施の形態］
次に、本実施の形態の詳細を説明する。なお、以下の説明において、モデル情報に加えられた変更内容を帳票へ反映させること、および帳票に加えられた変更内容をモデル情報へ反映させることを、「同期」と呼ぶこととする。また、各種アプリケーションプログラムをコンピュータが実行することで実現される機能を「アプリケーション」と呼ぶこととする。
【００２６】
図２は、本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００２７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００２８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００２９】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３０】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図３は、本実施の形態の機能を示すブロック図である。本実施の形態では、コンピュータ１００内にモデル情報記憶部１１０、帳票記憶部１２０、マッピング定義記憶部１３０、帳票テンプレート記憶部１４０、データ変換部１５０、モデリングツール１６１、モデリングツールインタフェース１６２、帳票アプリケーション１７１、帳票アプリケーションインタフェース１７２、およびＸＭＬエディタ１８１が設けられている。
【００３１】
モデル情報記憶部１１０は、モデル情報１１１，１１２，１１３，・・・を記憶するための記憶装置である。たとえば、ＨＤＤ１０３の記憶領域の一部がモデル情報記憶部１１０として使用される。モデル情報１１１，１１２，１１３，・・・は、開発対象のシステムに使用するデータの構造をＵＭＬによってモデル化したものである。
【００３２】
帳票記憶部１２０は、帳票１２１，１２２，１２３，・・・を記憶するための記憶装置である。たとえば、ＨＤＤ１０３の記憶領域の一部が帳票記憶部１２０として使用される。帳票１２１，１２２，１２３，・・・は、開発対象のシステムに使用するデータの一覧を帳票形式で示したものである。
【００３３】
マッピング定義記憶部１３０は、マッピング定義１３１，１３２，１３３，・・・を記憶するための記憶装置である。たとえば、ＨＤＤ１０３の記憶領域の一部がマッピング定義記憶部１３０として使用される。マッピング定義１３１，１３２，１３３，・・・は、モデル情報１１１，１１２，１１３，・・・の各要素あるいはその属性値と、帳票１２１，１２２，１２３，・・・の各構成要素がどのように対応するのか、および帳票テンプレート１４１，１４２，１４３，・・・がどのように使用されるのかをＸＭＬ（eXtensible Markup Language）文書形式で記述したものである。
【００３４】
帳票テンプレート記憶部１４０は、帳票テンプレート１４１，１４２，１４３，・・・を記憶するための記憶装置である。たとえば、ＨＤＤ１０３の記憶領域の一部が帳票テンプレート記憶部１４０として使用される。帳票テンプレート１４１，１４２，１４３，・・・は、ユーザがモデル情報１１１，１１２，１１３，・・・と同期させる帳票の形式を定義するものとして作成した帳票形式のファイルである。
【００３５】
データ変換部１５０は、モデル情報１１１，１１２，１１３，・・・と帳票１２１，１２２，１２３，・・・との同期処理を行う。データ変換部１５０の処理機能は、帳票同期部１５１とモデル同期部１５２とに分けられる。帳票同期部１５１は、モデル情報１１１，１１２，１１３，・・・に対して帳票１２１，１２２，１２３，・・・を同期させる。モデル同期部１５２は、帳票１２１，１２２，１２３，・・・に対してモデル情報１１１，１１２，１１３，・・・を同期させる。
【００３６】
モデリングツール１６１は、ユーザの操作入力に応答してＵＭＬ形式のモデル情報１１１，１１２，１１３，・・・を作成するためのアプリケーションである。モデリングツール１６１は、作成したモデル情報１１１，１１２，１１３，・・・をモデル情報記憶部１１０に格納する。
【００３７】
モデリングツールインタフェース１６２は、モデリングツール１６１で作成されたモデル情報１１１，１１２，１１３，・・・からの情報の取り出しやモデル情報１１１，１１２，１１３，・・・の操作を行うためのＡＰＩ（Application Program Interface）である。
【００３８】
帳票アプリケーション１７１は、ユーザの操作入力に応答して帳票１２１，１２２，１２３，・・・を作成するためのアプリケーションである。たとえば、表計算用のアプリケーションが帳票アプリケーション１７１として使用できる。帳票アプリケーション１７１は、作成した帳票１２１，１２２，１２３，・・・を帳票記憶部１２０に格納する。なお、本実施の形態では、帳票アプリケーション１７１を用いて帳票テンプレート１４１，１４２，１４３，・・・を作成する。すなわち、帳票アプリケーション１７１は、ユーザからの操作入力に応答して帳票テンプレート１４１，１４２，１４３，・・・を作成する。そして、帳票アプリケーション１７１は、作成した帳票テンプレート１４１，１４２，１４３，・・・を帳票テンプレート記憶部１４０に格納する。
【００３９】
なお、帳票アプリケーション１７１で作成されるファイルは、ブックと呼ばれる。ブックは、複数のワークシートを含むことができる。ワークシートには、行と列とからなる帳票形式でデータが登録される。ブック、ワークシート、行、および列には、それぞれプロパティを設定できる。本実施の形態では、帳票テンプレート１４１，１４２，１４３，・・・と帳票１２１，１２２，１２３，・・・とがブック内に作成される。
【００４０】
帳票アプリケーションインタフェース１７２は、帳票アプリケーション１７１で作成された帳票１２１，１２２，１２３，・・・からの情報の取り出しや、帳票１２１，１２２，１２３，・・・の操作を行うためのＡＰＩである。
【００４１】
ＸＭＬエディタ１８１は、ユーザの操作入力に応答してＸＭＬ形式のマッピング定義１３１，１３２，１３３，・・・を作成するアプリケーションである。ＸＭＬエディタ１８１は、ＸＭＬ文書の作成に便利な機能を有している。なお、ＸＭＬ文書はテキストエディタでも作成できるため、一般的なテキストエディタでマッピング定義１３１，１３２，１３３，・・・を作成することもできる。ＸＭＬエディタ１８１は、作成したマッピング定義１３１，１３２，１３３，・・・をマッピング定義記憶部１３０に格納する。
【００４２】
ユーザはデータ変換部１５０に対して、「モデルから帳票への同期」あるいは「帳票からモデルへの同期」のいずれかを指示することで、モデル情報と帳票との同期を行わせることができる。なお、「モデルから帳票への同期」については、モデル情報内の任意のモデル要素（起点）、マッピング定義、帳票テンプレート、および帳票格納ディレクトリを指定する必要がある。ただし、帳票テンプレートの指定は、ワークシートを新規に作成する場合にのみ必要となる。また、「帳票からモデルへの同期」については、モデル情報内の任意のモデル要素（起点）、マッピング定義、および帳票格納ディレクトリを指定する必要がある。
【００４３】
データ変換部１５０の帳票同期部１５１またはモデル同期部１５２は、指定されたモデル要素を含むモデル情報と指定された帳票格納ディレクトリを含む帳票の構造を比較する。帳票の各構成要素とモデル情報に含まれるどのモデル要素とを比較すべきかについてはマッピング定義の記述（帳票の各階層に対応するモデル要素の抽出条件）に従って決定される。
【００４４】
「モデルから帳票への同期」が指示された場合は、帳票同期部１５１により、帳票の構造のうち余分なものは削除され、不足しているものは作成される。作成の仕方（帳票のファイル名など）はマッピング定義の記述に従って決定され、作成された帳票構造には対応するモデル要素の識別子が埋め込まれる。また、属性値の対応関係については、モデルから帳票への転記が行われる。
【００４５】
「帳票からモデルへの同期」が指示された場合は、モデル同期部１５２により、帳票の構造に対応するモデル要素のうち余分なものは削除され、不足しているものは作成される。作成の仕方（モデル要素の種別など）はマッピング定義の記述に従って決定され、作成されたモデル要素に対応する帳票構造にはそのモデル要素の識別子が埋め込まれる。また、属性の対応関係については、帳票からモデル要素への転記が行われる。
【００４６】
次に、各記憶部に格納されるデータについて説明する。
図４は、モデル情報の例を示す図である。モデル情報１１１は、モデリングツール１６１の作図機能あるいはその他の編集機能によって構築されるものである。
【００４７】
図中の四角形はそれぞれモデル要素１１１ａ〜１１１ｋを表す。モデル要素１１１ａ〜１１１ｋの内部の文字列のうち括弧内はモデル要素１１１ａ〜１１１ｋの種別を表し、括弧外はモデル要素１１１ａ〜１１１ｋの名前（正確には“name”属性の値）を表す。たとえば、モデル要素１１１ａの内部には、「m1(Model)」と標記されている。これは、“Model”という種別の“m1”という名前を持つ（“name”属性の値が“m1”である）モデル要素であることを示している。
【００４８】
また、図４には示していないが、モデル要素１１１ａ〜１１１ｋには、それぞれを一意に識別するためのＩＤが付与されている。このＩＤは、モデリングツール１６１によってモデル要素を作成するときに付与される。
【００４９】
２つのモデル要素間を接続する矢印はモデル要素間の参照関係およびその方向を表している。矢印の近傍に記されている文字列は、その名前を持つ属性によって元のモデル要素が先のモデル要素を参照していることを表す。たとえば、名前が“m1”のモデル要素１１１ａは“nestadPackage”という名前の属性を持っており、それによって名前が“p1”のモデル要素１１１ｂと名前が“p2”のモデル要素１１１ｃとを参照している。図４に示されている以外にも、各モデル要素１１１ａ〜１１１ｋは各属性を持っている（属性の組み合わせはモデルの種類によって異なる）が、ここでは割愛する。
【００５０】
次に、図４に示したモデル情報１１１から帳票１２１，１２２，１２３，・・・を作成するための帳票テンプレート１４１，１４２，１４３，・・・について説明する。
図５は、帳票テンプレートの例を示す図である。帳票テンプレート１４１は、ユーザがモデル情報１１１と同期を行う帳票１２１，１２２，１２３，・・・の形式を定義するものとして帳票アプリケーション１７１によって作成されたブック内の１つのワークシートである。なお、帳票テンプレート１４１のＡ〜Ｇで示された列が、それぞれ第１列〜第７列を示している。
【００５１】
図５には、データの属性のリスト（attribute list）を表す帳票１２１，１２２，１２３，・・・を作成するための帳票テンプレート１４１が示されている。第１行第１列のセルには、作成される帳票１２１，１２２，１２３，・・・の名称が設定されている。第１行第２列のセルには“project”と設定されている。これは、右隣のセルの内容が、プロジェクト名であることを示すものである。第１行第３列には、“MyProject”というプロジェクト名が設定されている。第１行第４列のセルには“Author”と設定されている。これは、右隣のセルの内容が、作者名であることを示している。第１行第５列セルは、作者名を設定するための領域である。第１行第６列のセルには“Date”と設定されている。これは、右隣のセルの内容が、作成日付であることを示すものである。第１行第７列のセルは、作成日付を設定するための領域である。
【００５２】
第３行第１列のセルには“class name”と設定されている。これは、右隣のセルの内容が、クラス名であることを示すものである。第３行第２列のセルは、クラス名を設定するための領域である。
【００５３】
第５行第１列のセルには、“attribute name”と設定されている。これは、第６行以降の全ての行の第１列のセルに、データの属性名が設定されることを示すものである。第５行の第２列〜第７列のセルには、第１列で示される属性名のデータに関する情報の項目名が設定されている。第６行以降の各行の第２列〜第７列には、第５行の同一の列に設定された項目名に該当する各データの値を設定するための領域である。
【００５４】
なお、この帳票テンプレート１４１は、帳票１２１，１２２，１２３，・・・の形式が変わらない限り変更されない。また、第６と第７行目には、罫線のみが設定されている。第６行の罫線は、作成される帳票１２１，１２２，１２３，・・・の最終行以外の各行（第６行以降に限る）に設定される罫線を示している。第７行の罫線は、作成される帳票１２１，１２２，１２３，・・・の最終行に設定される罫線を示している。帳票１２１，１２２，１２３，・・・の最終行以外に行を挿入する場合、第６行の罫線を含めた複写が行われる。
【００５５】
次に、モデル情報１１１に定義された情報を、帳票テンプレート１４１に反映させるためのマッピング定義１３１について説明する。
図６は、マッピング定義の例を示す図である。マッピング定義１３１には、モデル情報の各要素あるいはその属性値と、帳票１２１，１２２，１２３，・・・の各構成要素がどのように対応するのか、および帳票テンプレート１４１がどのように使用されるのかが記述されている。本実施の形態では、ＸＭＬ文書としてマッピング定義１３１が作成されている。
【００５６】
このマッピング定義１３１はモデル情報と帳票との対応の仕方が変更されず、かつ帳票テンプレートが変更されない限り変更されない。本実施の形態におけるマッピング定義１３１について以下に説明する。
【００５７】
Book要素（第３行）は、モデル情報１１１のうち同期処理の起点として指定されたモデル要素から、帳票に対応するモデル要素をどのように抽出するかを指定している。なお、帳票１２１，１２２，１２３，・・・を格納するディレクトリ（帳票格納ディレクトリ）は、起点のモデル要素に対応付けられる。なお、起点のモデル要素と帳票格納ディレクトリとは、同期処理開始前にユーザによって指定される。
【００５８】
第３行では、起点のモデル要素１１１ａの属性“nestedPackage”によって参照される０個以上のモデル要素がそれぞれ帳票に対応することが指定されている（property=”nestedPackage”の部分）。また、帳票の追加（帳票格納ディレクトリへの新たな帳票の格納）によってモデル情報１１１側に追加されるモデル要素の種類はPackageであることが指定されている（propertyKind=”Package”の部分）。
【００５９】
FileName要素（第１８行）は、同期処理の際に作成される帳票のファイル名を指定している。第１８行では、帳票に対応するモデル要素の“name”属性の値をファイル名としてファイルを作成することが指定されている。この際、拡張子は所定の文字列である（たとえば、帳票アプリケーション１７１が米マイクロソフト社のMicrosoft Excel（登録商標）であれば、拡張子は“.xls”）。
【００６０】
Sheet要素（第４行）は、上記Book要素によって抽出された（帳票に対応する）モデル要素から、ワークシートに対応するモデル要素をどのように抽出するかを指定している。第４行では、帳票に対応するモデル要素の属性“ownedMember”によって参照される０個以上のモデル要素がそれぞれワークシートに対応することが指定されている（property=”ownedMember”の部分）。また、ワークシートの追加によってモデル情報側に追加されるモデル要素の種類はClassであり（propertyKind="Class"の部分）、帳票テンプレートとして使用するのは、帳票テンプレートとして与えられるブックから“attr＿list”というシート名を持つものであることが指定されている（templateSheetName="attr＿list"の部分）。
【００６１】
SheetName要素（第１６行）は、同期処理の際に作成されるワークシートの名前を指定している。第１６行では、ワークシートに対応するモデル要素の“name”属性の値からシート名を作成することが指定されている。
【００６２】
Cell要素（第５行）は、上記Sheet要素によって抽出されたワークシートに対応するモデル要素のどの属性値がワークシートのどの場所に対応するかを指定している。第５行では、ワークシートに対応するモデル要素の“name”属性の値が、Excelワークシートの第３行第２列の場所に対応することが指定されている（property="name" templateCol="2" templateRow="3"の部分）。
【００６３】
Table要素（第６〜７行）は、上記Sheet要素によって抽出された（ワークシートに対応する）モデル要素から、ワークシート内の一覧表の各行に対応するモデル要素をどのように抽出するかを指定している。第６〜７行では、ワークシートに対応するモデル要素の属性“ownedAttribute”によって参照される０個以上のモデル要素がそれぞれ一覧表の行に対応することが指定されている（property="ownedAttribute"の部分）。また、行の追加によってモデル情報１１１側に追加されるモデル要素の種類はPropertyであり（propertyKind=”Property”の部分）、テーブルはワークシート内の第６行第１列から開始することが指定されている（templateCol="1" templateRow="6"の部分）。
【００６４】
Column要素（第８〜１４行）は、Table要素によって抽出された（一覧表の行に対応する）モデル要素のどの属性値がどの列に対応するかを指定している。第８行は、Table要素の第１の子要素であるため一覧表の開始列（Table要素のtemplateCol属性に指定された列）に相当する。そのため、第８行では、一覧表の第１列が“name”属性に対応することが指定されている。以下、第９行から第１４行も第８行と同様に、それぞれ一覧表の第２列から第７列に対応する属性が示されている。
【００６５】
以上のような構成によって、モデル情報１１１，１１２，１１３，・・・と帳票１２１，１２２，１２３，・・・との間のデータ変換が行われる。データ変換は、モデル情報１１１，１１２，１１３，・・・に帳票１２１，１２２，１２３，・・・を同期させる場合と、帳票１２１，１２２，１２３，・・・にモデル情報１１１，１１２，１１３を同期させる場合とがある。以下、それぞれの場合について、データ変換部１５０で行われる処理を説明する。
【００６６】
なお、第１の実施の形態では、モデル情報１１１，１１２，１１３，・・・において、指定された起点のモデル要素から所定の属性で参照されるモデル要素に対応付けてブックを作成する。そこで、ブックに対応するモデル要素を「ブック対応要素」と呼ぶこととする。
【００６７】
また、ブック対応要素から所定の属性で参照されるモデル要素に対応付けて、ブック内のワークシートを作成する。そこで、ワークシートに対応するモデル要素を「シート要素」と呼ぶこととする。
【００６８】
さらに、ワークシートから所定の属性で参照されるモデル要素をテーブル内の行に関連付ける。そこで、行に関連付けるモデル要素を「行対応要素」と呼ぶこととする。
＜モデル情報から帳票への同期処理＞
まず、モデル情報１１１から帳票１２１，１２２，１２３，・・・への同期処理の概略を説明する。同期させるときの態様としては、モデル情報１１１に基づいて帳票１２１を新たに作成する場合と、モデル情報１１１に対して行われた変更を既存の帳票１２１に反映する場合とがある。そこで、まず、図４〜図６に示したモデル情報１１１、帳票テンプレート１４１、およびマッピング定義１３１に基づいて、帳票１２１を新規に作成する場合の具体的な処理の流れを説明する。
【００６９】
ユーザは、データ変換部１５０に、モデル情報１１１内の“m1”のモデル要素１１１ａ（図４参照）、帳票テンプレート１４１、マッピング定義１３１、および帳票の出力先として空のディレクトリを指定する操作入力を行う。さらにユーザは、データ変換部１５０に対して、モデルから帳票への同期を指示する。
【００７０】
すると、データ変換部１５０内の帳票同期部１５１は、マッピング定義１３１のBook要素の記述に従い、指定された“m1”のモデル要素１１１ａから“nestedPackage”属性で参照される“p1“および“p2”のモデル要素１１１ｂ，１１１ｃをブックに対応する要素として抽出する。次に、帳票同期部１５１は、それぞれFileName要素の記述に従い、ブック“p1.xls”と“p2.xls”を作成する。以下、ブック“p1.xls”に対する処理を例に採り、同期処理の詳細を説明する。
【００７１】
さらに帳票同期部１５１は、上記マッピング定義のSheet要素の記述に従い、ブックに対応する“p1”のモデル要素１１１ｂから“ownedMember”属性で参照される“c1”および“ｃ2”のモデル要素１１１ｄ，１１１ｅをワークシートに対応する要素として抽出する。次に、帳票同期部１５１は、SheetName要素の記述に従い、ブック“p1.xls”にシート名が“c1”および“c2”の２つのワークシートを作成する。なお、これらのワークシートは帳票テンプレート１４１に含まれるシート名が“attr＿list”のワークシートをコピーすることで作成される。
【００７２】
さらに帳票同期部１５１は、上記マッピング定義のTable要素の記述に従い、ワークシートに対応する“c1”のモデル要素１１１ｄから“ownedAttribute”属性で参照される“a11”および“a12”のモデル要素１１１ｇ，１１１ｈを一覧表の各行に対応する要素として抽出する。そして、帳票同期部１５１は、第６行第１列を開始点とし、Column要素の記述に従って、第６行第１列に“a11”の“name”属性の値を、以下最後のColumn要素まで同様にそれぞれの列にそれぞれの属性の値を設定する。“a12”のモデル要素については第７行に対して同様の処理が行われる。
【００７３】
以上により、“p1”のモデル要素１１１ｂに対応する帳票１２１が作成される。同様にして、“p2”のモデル要素１１１ｃに対応する帳票も作成される。
図７は、表示された帳票を示す図である。この帳票１２１は、“p1”のモデル要素１１１ｂをブック対応要素として作成されたものである。帳票１２１には、ワークシートごとのタブ１２１ａ，１２１ｂが設けられている。タブ１２１ａは、“c1”のモデル要素１１１ｄをシート対応要素として作成されたワークシートに対応する。タブ１２１ｂは、“c2”のモデル要素１１１ｅをシート対応要素として作成されたワークシートに対応する。操作入力によって選択されたタブに対応するワークシートが画面に表示される。図７の例では、タブ１２１ａが選択されている。
【００７４】
表示されているワークシートには、モデル要素１１１ｄから“ownedMember”要素で参照されるモデル要素１１１ｇ，１１１ｈに設定されている内容が、それぞれ第６行と第７行とに設定されている。
【００７５】
なお、画面表示はされていないが、帳票１２１を格納するブック、各ワークシート、ワークシート内のテーブルの各行（第６行以降）には、それぞれプロパティが設けられている。そのプロパティには、対応するモデル要素のＩＤが設定されている。このＩＤによって、モデル情報側のモデル要素を一意に特定することができる。
【００７６】
このようにして作成された帳票１２１は、モデル情報１１１に同期させることで、モデル情報１１１に加えられた変更を反映させることができる。
モデル情報１１１側の変更を既存の帳票１２１に反映する場合、ユーザは、データ変換部１５０に、モデル情報１１１内の“m1”のモデル要素１１１ａ（図４参照）、帳票テンプレート１４１、マッピング定義１３１、および帳票の出力先として帳票１２１が含まれるディレクトリを指定する操作入力を行う。さらにユーザは、データ変換部１５０に対して、モデルから帳票への同期を指示する。
【００７７】
すると、データ変換部１５０内の帳票同期部１５１は、マッピング定義１３１に従って帳票１２１の各構成要素（ブック、ワークシート、一覧表の行）に対応するモデル要素を抽出し、ディレクトリに含まれる現在の帳票の構造と比較し、差分を帳票に対して反映する。すなわち、帳票同期部１５１は、ブックに対応するとして抽出されたモデル要素（群）と出力先として指定されたディレクトリに存在するブック（群）との対応関係を比較し、不足しているブックは新規に作成し、余分なブックは削除する。その下位の構造についても同様に、帳票同期部１５１は、ワークシートに対応するとして抽出されたモデル要素（群）とその親に対応するブックに含まれるワークシートとの対応関係の比較および帳票側の過不足の修正、一覧表の行に対応するとして抽出されたモデル要素（群）とその親に対応するワークシートに含まれる一覧表の行との対応関係の比較および帳票側の過不足の修正が行われる。同時に、帳票同期部１５１は、対応関係にあるモデル要素と帳票の構成要素間で前者から後者への（マッピング定義にしたがった）属性値の転記も行われる。
【００７８】
以上により、モデル情報の変更は既存の帳票に反映される。
なお、モデル情報１１１から帳票への同期において、新たに帳票を作成する処理と、モデル情報１１１の変更内容を帳票に反映させる処理とは、共通の処理手順で実現できる。
【００７９】
次に、図４〜図６に示した情報を利用し、図３に示した機能における各同期処理の詳細な手順について説明する。
図８は、モデル情報から帳票に反映する処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００８０】
［ステップＳ１１］帳票同期部１５１は、起点とするモデル要素、帳票テンプレート、マッピング定義、および帳票格納ディレクトリを指定するユーザからの操作入力を受け付ける。ここで、図３に示すモデル情報１１１中のモデル要素１１１ａ（図４参照）、帳票テンプレート１４１、マッピング定義１３１、および帳票１２１，１２２，１２３，・・・が格納されている帳票格納ディレクトリが指定されたものとする。
【００８１】
［ステップＳ１２］帳票同期部１５１は、モデル要素から帳票格納ディレクトリへの同期処理を実行する。この処理の詳細は、図９を参照して説明する。
図９は、モデル要素から帳票格納ディレクトリへの同期処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
【００８２】
［ステップＳ２１］帳票同期部１５１は、指定されたモデル要素１１１ａから、マッピング定義１３１のBook要素のproperty属性に指定される属性（モデル要素の集合）で参照されるモデル要素１１１ｂ，１１１ｃを取得する。ここで、取得されたそれぞれのモデル要素１１１ｂ，１１１ｃがブック対応要素となる。
【００８３】
［ステップＳ２２］帳票同期部１５１は、ステップＳ２１で抽出されたブック対応要素ごとに、ステップＳ２３〜ステップＳ２５の処理を実行する。
［ステップＳ２３］帳票同期部１５１は、ブック対応要素に対応するブックが存在する否かを判断する。具体的には、帳票同期部１５１は、ブック対応要素のＩＤをプロパティとして設定されたブックが帳票格納ディレクトリ内にあるか否かを判断する。ブック対応要素に対応するブックが存在すれば、処理がステップＳ２５に進められる。ブック対応要素に対応するブックが存在しなければ、処理がステップＳ２４に進められる。
【００８４】
［ステップＳ２４］帳票同期部１５１は、ブック対応要素に対応するブックを、帳票格納ディレクトリ内に作成する。具体的には、マッピング定義のFileName要素のproperty属性に指定された属性の文字列（属性が“name”であれば、ブック対応要素の名前）をブック対応要素から取得し、その値をファイル名としたブックが作成される。この際、帳票同期部１５１は、作成したブックのプロパティに、ブック対応要素のＩＤを設定する。
【００８５】
［ステップＳ２５］帳票同期部１５１は、ブック対応要素からブックへの同期処理を行う。この処理の詳細は後述する（図１０参照）。
［ステップＳ２６］帳票同期部１５１は、ステップＳ２１で取得された全てのブック対応要素に対してステップＳ２３〜ステップＳ２５の処理が終わると、処理をステップＳ２７に進める。
【００８６】
［ステップＳ２７］帳票同期部１５１は、不要なブックを削除する。具体的には、帳票同期部１５１は、帳票格納ディレクトリ内に存在するブックのうち、プロパティにブック対応要素のＩＤを持ち、かつステップＳ２１で抽出されたブック対応要素に対応しないものを削除する。
【００８７】
このようにして、ブック対応要素に対応するブックを作成すると共に、不要なブックを削除できる。
次に、ブック対応要素からブックへの同期処理について説明する。
【００８８】
図１０は、ブック対応要素からブックへの同期処理を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］帳票同期部１５１は、ブック対応要素から参照されるシート対応要素を取得する。具体的には、帳票同期部１５１は、マッピング定義１３１のsheet要素のproperty属性に指定される属性によって、ブック対応要素から参照されるモデル要素の集合をモデル情報１１１から取得する。ここで、取得されたモデル要素がシート対応要素となる。
【００８９】
［ステップＳ３２］帳票同期部１５１は、抽出されたシート対応要素ごとにステップＳ３３〜ステップＳ３５の処理を行う。
［ステップＳ３３］帳票同期部１５１は、シート対応要素に対応するワークシートが存在するか否かを判断する。具体的には、帳票同期部１５１は、シート対応要素のＩＤをプロパティとして持つワークシートがブック内に存在するか否かを判断する。シート対応要素の対応するワークシートが存在する場合、処理がステップＳ３５に進められる。シート対応要素に対応するワークシートが存在しない場合、処理がステップＳ３４に進められる。
【００９０】
［ステップＳ３４］帳票同期部１５１は、シート対応要素に対応するワークシートをブック内に作成する。具体的には、帳票同期部１５１は、帳票テンプレート１４１内のワークシートのうち、マッピング定義のSheet要素のtemplateSheetName属性に指定されたシート名を有するものを帳票１２１のブックにコピーする。
【００９１】
［ステップＳ３５］帳票同期部１５１は、シート対応要素からワークシートへの同期処理を行う。この処理の詳細は後述する（図１１参照）。
［ステップＳ３６］帳票同期部１５１は、ステップＳ３１で取得された全てのシート対応要素に対してステップＳ３３〜ステップＳ３５の処理が終了すると、処理をステップＳ３７に進める。
【００９２】
［ステップＳ３７］帳票同期部１５１は、ブック内の不要なワークシートを削除する。具体的には、帳票同期部１５１は、ブックに含まれるワークシートのうち、プロパティにシート対応要素のＩＤを持ち、かつ抽出されたシート対応要素に対応しないものを削除する。さらに、帳票同期部１５１は、抽出されてシート対応要素の順に合わせてワークシートをソートする。これにより、シート対応要素の抽出順に従う位置に、ステップＳ３４で作成されたワークシートの位置が変更される。
【００９３】
このようにして、ブック対応要素からブックへの同期処理が行われる。
次に、シート対応要素からワークシートへの同期処理について説明する。
図１１は、シート対応要素からワークシートへの同期処理の手順を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
【００９４】
［ステップＳ４１］帳票同期部１５１は、マッピング定義のCell要素ごとに、ステップＳ４２の処理を実行する。
［ステップＳ４２］帳票同期部１５１は、ワークシート内のセルに値を設定する。具体的には、帳票同期部１５１は、Cell要素のtemplateCol属性およびtemplateRow属性に設定されている列および行で特定されるセルに対し、当該Cell要素のproperty属性に指定されている文字列を設定する。
【００９５】
［ステップＳ４３］帳票同期部１５１は、全てのCell要素に対してステップＳ４２の処理が終了したら処理をステップＳ４４に進める。
［ステップＳ４４］帳票同期部１５１は、テーブルの開始位置を特定し、行対応要素を抽出する。具体的には、帳票同期部１５１は、マッピング定義のTable要素のtemplateCol属性およびtemplateRow属性に指定される列および行で特定されるセルをテーブルの開始位置とする。また、帳票同期部１５１は、モデル情報１１１内のシート対応要素から、Table要素のproperty属性に指定されている属性で参照されているモデル要素の集合を、モデル情報１１１から取得する。ここで、取得されたそれぞれのモデル要素が行対応要素となる。
【００９６】
［ステップＳ４５］帳票同期部１５１は、ステップＳ４４で抽出された行対応要素ごとに、ステップＳ４６〜ステップＳ５１の処理を実行する。
［ステップＳ４６］帳票同期部１５１は、行対応要素に対応する行があるか否かを判断する。具体的には、帳票同期部１５１は、行対応要素のＩＤをプロパティとして持つ行が現在のワークシートのテーブル内に存在するか否かを判断する。行対応要素に対応する行があれば、処理がステップＳ４８に進められる。行対応要素に対応する行がなければ、処理がステップＳ４７に進められる。
【００９７】
［ステップＳ４７］帳票同期部１５１は、行対応要素に対応する行を作成する。具体的には、帳票同期部１５１は、テーブルに行を追加し（たとえば、テーブルの最終行に行を追加する）、行対応要素のＩＤをその行のプロパティとして設定する。
【００９８】
［ステップＳ４８］帳票同期部１５１は、マッピング定義のColumn要素ごとに、ステップＳ４９の処理を行う。
［ステップＳ４９］帳票同期部１５１は、テーブル内のセル値を設定する。具体的には、帳票同期部１５１は、行対応要素に対応する行、および処理対象のColumn要素に対応する列でセルを特定する。ここで、処理対象のColumn要素に対応する列は、「テーブルの開始列＋処理対象のColumn要素以前（マッピング定義１３１の記載が上位）の他のColumn要素の個数」で示される列番の列である。帳票同期部１５１は、特定したセルに対して、処理対象のColumn要素のproperty属性に指定されている文字列を設定する。
【００９９】
［ステップＳ５０］帳票同期部１５１は、全てのColumn要素に対するステップＳ４９の処理が終了すると、処理をステップＳ５１に進める。
［ステップＳ５１］帳票同期部１５１は、全ての行対応要素に対するステップＳ４６〜ステップＳ５０の処理が終了すると、処理をステップＳ５２に進める。
【０１００】
［ステップＳ５２］帳票同期部１５１は、不要な行を削除する。具体的には、ワークシートに含まれる行のうち、プロパティに行対応要素のＩＤを持ち、かつ抽出されたいずれの行対応要素にも対応しない行を削除する。その後、帳票同期部１５１は、抽出された行対応要素の順に合わせて行をソートする。
【０１０１】
以上のようにして、モデル情報１１１，１１２，１１３，・・・に対して帳票１２１，１２２，１２３，・・・を同期させることができる。この際、必要な帳票が存在していなければ新規に作成され、必要な帳票が存在すれば、その内容がモデル情報１１１，１１２，１１３，・・・の内容に合わせて更新される。
【０１０２】
＜帳票からモデル情報への同期処理＞
次に、帳票からモデル情報への同期処理について説明する。同期させるときの態様としては、帳票１２１，１２２，１２３，・・・に基づいてモデル要素を新たに作成する場合と、帳票１２１，１２２，１２３，・・・に対して行われた変更を既存のモデル情報１１１に反映する場合とがある。
【０１０３】
そこで、まず、図６に示したマッピング定義１３１、およびモデル要素１１１ｂ，１１１ｃそれぞれに対応する帳票１２１，１２２（それぞれのファイル名が“p1.xls”、“p2.xls”であるものとする）に基づいて、モデル情報１１１を新規に作成する場合の具体的な処理の流れを説明する。ここで、帳票１２１の内容は図７に示す通りである。なお、モデル情報１１１にはモデル要素１１１ａのみが存在するものとし、その状況から図４に示した通りのモデル情報１１１が生成される過程を説明する。
【０１０４】
ユーザは、データ変換部１５０に、帳票１２１（ブック）が含まれた帳票格納ディレクトリ、マッピング定義１３１、およびモデル要素の出力先としてモデル情報１１１内の空のモデル要素（参照先のモデル要素を持たないもの、この例ではモデル要素１１１ａ）を指定する操作入力を行う。さらに、ユーザは、データ変換部１５０に対して、帳票からモデルへの同期を指示する。
【０１０５】
すると、データ変換部１５０内のモデル同期部１５２は、マッピング定義１３１のBook要素の記述に従い、指定されたディレクトリに含まれるブックに対応するモデル要素１１１ｂ，１１１ｃ（種別は“Package”）を作成する。そして、モデル同期部１５２は、作成したモデル要素１１１ｂ，１１１ｃを、指定されたモデル要素１１１ａの“nestedPackage”属性である参照の集合に追加する。また、モデル同期部１５２は、ブックのファイル名（拡張子を除く）をPackage要素（モデル要素１１１ｂ，１１１ｃ）の“name”属性に設定する。
【０１０６】
さらに、モデル同期部１５２は、マッピング定義１３１のSheet要素の記述に従い、ブックに含まれるワークシートに対応するモデル要素１１１ｄ〜１１１ｆ（種別は“Class”）を作成する。次に、モデル同期部１５２は、作成したモデル要素１１１ｄ〜１１１ｆを、ブックに対応するモデル要素１１１ｂ，１１１ｃ（上記で作成されたPackage）の“ownedMember”属性である参照の集合に追加する。また、モデル同期部１５２は、マッピング定義１３１のCell要素の記述に従い、作成したClass要素に対してワークシートの第３行第２列の値を、モデル要素１１１ｄ〜１１１ｆの“name”属性に設定する。
【０１０７】
さらに、モデル同期部１５２は、マッピング定義１３１のTable要素の記述に従い、ワークシートに含まれる一覧表の各行に対応するモデル要素１１１ｇ〜１１１ｋ（種別はProperty）を作成する。そして、モデル同期部１５２は、作成したモデル要素１１１ｇ〜１１１ｋを、ワークシートに対応するモデル要素１１１ｄ〜１１１ｆ（上記で作成されたClass）の“ownedAttribute”属性である参照の集合に追加する。また、モデル同期部１５２は、マッピング定義１３１のColumn要素の記述に従い、作成したownedAttribute要素（モデル要素１１１ｇ〜１１１ｋ）に対して対応する行の第１列の値を当要素の“name”属性に設定する。以降、モデル同期部１５２は、その他のすべてのColumn要素についても同様の処理を行う。
【０１０８】
以上により、帳票に対応するモデル情報が作成される。なお、上記の処理によって入力される帳票１２１，１２２の各構成要素（ブック、ワークシート、一覧表の行）はいずれも、モデル情報１１１側の要素との比較のために、対応するモデル要素を一意に特定するための識別子（ＩＤ）が新たに設定あるいは維持される。
【０１０９】
次に、帳票１２１，１２２の変更を既存のモデルに反映する場合について説明する。この場合、ユーザは、データ変換部１５０に、帳票（ブック）が含まれたディレクトリ、マッピング定義１３１、およびモデル要素の出力先として帳票格納ディレクトリに対応するモデル要素１１１ａを指定する操作入力を行う。さらに、ユーザは、データ変換部１５０に対し、帳票からモデル情報への同期を指示する。
【０１１０】
すると、データ変換部１５０のモデル同期部１５２は、マッピング定義１３１に従って帳票１２１，１２２の各構成要素（ブック、ワークシート、一覧表の行）に対応するモデル要素を抽出し、ディレクトリに含まれる現在の帳票の構造との比較、およびそれによって抽出された差分のモデルに対する反映を行う。すなわち、モデル情報から帳票への同期処理と同様に帳票１２１，１２２とモデル情報１１１との比較が行われる。比較によって抽出された差分は、モデル情報１１１側に反映される。反映される情報のうち、モデル要素の新規作成は、モデル情報１１１の新規作成の処理と同様である。
【０１１１】
以上より、帳票の変更が既存のモデルに反映される。なお、帳票からモデル情報の同期処理において、新たにモデル情報１１１を作成する処理と、帳票への変更内容をモデル情報１１１に反映させる処理とは、共通の処理手順で実現できる。
【０１１２】
次に、帳票からモデル情報の同期処理の詳細について説明する。
図１２は、帳票からモデル情報に反映する処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【０１１３】
［ステップＳ６１］モデル同期部１５２は、起点とするモデル要素、マッピング定義、および帳票格納ディレクトリを指定するユーザからの操作入力を受け付ける。ここで、図３に示すモデル情報１１１中のモデル要素１１１ａ（図４参照）、マッピング定義１３１、および帳票１２１，１２２，１２３，・・・が格納されている帳票格納ディレクトリが指定されたものとする。
【０１１４】
［ステップＳ６２］モデル同期部１５２は、帳票格納ディレクトリからモデル要素への同期処理を実行する。この処理の詳細は、図１３を参照して説明する。
図１３は、帳票格納ディレクトリからモデル要素への同期処理の手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１１５】
［ステップＳ７１］モデル同期部１５２は、帳票格納ディレクトリに含まれるブックごとに、ステップＳ７２〜ステップＳ７５の処理を実行する。
［ステップＳ７２］モデル同期部１５２は、ブックに対応するブック対応要素が存在する否かを判断する。具体的には、モデル同期部１５２は、ブックのプロパティにブック対応要素のＩＤが設定されており、かつそのＩＤをもつモデル要素がモデル情報１１１に含まれていることを確認する。さらに、モデル同期部１５２は、マッピング定義１３１のBook要素のproperty属性で指定されている属性によって、起点として指定されたモデル要素から、ＩＤに対応するモデル要素が参照されていることを確認する。これらの条件が満たされていれば、モデル同期部１５２は、ブックのＩＤに対応するモデル要素を、ブック対応要素と判断する。ブックに対応するブック対応要素が存在すれば、処理がステップＳ７４に進められる。ブックに対応するブック対応要素が存在しなければ、処理がステップＳ７３に進められる。
【０１１６】
［ステップＳ７３］モデル同期部１５２は、ブックに対応するブック対応要素を、モデル情報１１１内に作成する。具体的には、モデル同期部１５２は、起点のモデル要素から、マッピング定義１３１のBook要素のproperty属性で指定されている属性によって参照されるモデル要素を生成し、モデル情報１１１に追加する。このモデル要素は、現在処理対象となっているブックに対応するブック対応要素となる。追加されたブック対応要素の種別は、マッピング定義１３１のBook要素のpropertyKind属性に指定される型である。ブック対応要素をモデル情報１１１に追加すると、モデリングツールインタフェース１６２によって、そのブック対応要素を一意に識別するためのＩＤがブック対応要素に付与される。モデル同期部１５２は、そのブック対応要素のＩＤをモデリングツールインタフェース１６２から受け取り、処理対象のブックのプロパティに設定する。
【０１１７】
［ステップＳ７４］モデル同期部１５２は、ブックのファイル名をブック対応要素に設定する。具体的には、モデル同期部１５２は、マッピング定義１３１のFileName要素のproperty属性で指定されている文字列（図６の例では“name”と指定されており、ファイル名（拡張子を除く）を指す）をブックのファイル名から抽出し、ブック対応要素の名前に設定する。
【０１１８】
［ステップＳ７５］モデル同期部１５２は、ブックからブック対応要素への同期処理を行う。この処理の詳細は後述する（図１４参照）。
［ステップＳ７６］モデル同期部１５２は、帳票格納ディレクトリに含まれる全てのブックに対してステップＳ７２〜ステップＳ７４の処理が終わると、処理をステップＳ７７に進める。
【０１１９】
［ステップＳ７７］モデル同期部１５２は、不要なブック対応要素を削除する。具体的には、モデル同期部１５２は、マッピング定義１３１のBook要素のproperty属性で指定された属性によって、起点のモデル要素から参照されるモデル要素（モデル要素の集合）のうち、帳票格納ディレクトリに含まれるブックのいずれにも対応しない（ＩＤが一致しない）モデル要素を削除する。
【０１２０】
このようにして、ブックに対応するブック対応要素を作成すると共に、不要なブック対応要素を削除できる。
次に、ブックからブック対応要素への同期処理について説明する。
【０１２１】
図１４は、ブックからブック対応要素への同期処理を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ８１］モデル同期部１５２は、ブックに含まれるワークシートごとにステップＳ８２〜ステップＳ８４の処理を行う。
【０１２２】
［ステップＳ８２］モデル同期部１５２は、ワークシートに対応するシート対応要素が存在するか否かを判断する。具体的には、モデル同期部１５２は、ワークシートのプロパティにシート対応要素のＩＤが設定されており、かつそのＩＤをもつモデル要素がモデル情報１１１に含まれていることを確認する。さらに、モデル同期部１５２は、マッピング定義１３１のSheet要素のproperty属性で指定されている属性によって、ブック対応要素から、ＩＤに対応するモデル要素が参照されていることを確認する。これらの条件が満たされていれば、モデル同期部１５２は、ワークシートのＩＤに対応するモデル要素を、シート対応要素と判断する。ワークシートに対応するシート対応要素が存在すれば、処理がステップＳ８４に進められる。ワークシートに対応するシート対応要素が存在しなければ、処理がステップＳ８３に進められる。
【０１２３】
［ステップＳ８３］モデル同期部１５２は、ワークシートに対応するシート対応要素を、モデル情報１１１内に作成する。具体的には、モデル同期部１５２は、ブック対応要素から、マッピング定義１３１のSheet要素のproperty属性で指定されている属性によって参照されるモデル要素を生成し、モデル情報１１１に追加する。このモデル要素は、現在処理対象となっているワークシートに対応するシート対応要素となる。追加されたシート対応要素の種別は、マッピング定義１３１のSheet要素のpropertyKind属性に指定される型である。シート対応要素をモデル情報１１１に追加すると、モデリングツールインタフェース１６２によって、そのシート対応要素を一意に識別するためのＩＤがシート対応要素に付与される。モデル同期部１５２は、そのシート対応要素のＩＤをモデリングツールインタフェース１６２から受け取り、処理対象のワークシートのプロパティに設定する。
【０１２４】
［ステップＳ８４］モデル同期部１５２は、ワークシートからシート対応要素への同期処理を行う。この処理の詳細は後述する（図１５参照）。
［ステップＳ８５］モデル同期部１５２は、ブックに含まれる全てのワークシートに対して、ステップＳ８２〜ステップＳ８４の処理が終了すると、処理をステップＳ８６に進める。
【０１２５】
［ステップＳ８６］モデル同期部１５２は、ブック内の不要なワークシートを削除する。具体的には、モデル同期部１５２は、マッピング定義１３１のSheet要素のproperty属性で指定された属性によって、ブック対応要素から参照されるモデル要素（モデル要素の集合）のうち、ブックに含まれるワークシートのいずれにも対応しない（ＩＤが一致しない）モデル要素を削除する。
【０１２６】
このようにして、ブック対応要素からブックへの同期処理が行われる。
次に、ワークシートからシート対応要素への同期処理について説明する。
図１５は、ワークシートからシート対応要素への同期処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１２７】
［ステップＳ９１］モデル同期部１５２は、マッピング定義１３１のCell要素ごとにステップＳ９２の処理を行う。
［ステップＳ９２］モデル同期部１５２は、セル値をシート対応要素の属性に設定する。具体的には、モデル同期部１５２は、Cell要素のtemplateCol属性およびtemplateRow属性に指定された列および行からワークシート内のセルを特定する。そして、モデル同期部１５２は、特定したセルに設定されている値を、処理対象となっているシート対応要素のproperty属性に指定されているもの（図６の例では“name”と指定されており、シート対応要素の名前を示す）も設定する。
【０１２８】
［ステップＳ９３］モデル同期部１５２は、全てのCell要素に対してステップＳ９２の処理が終了すると、処理をステップＳ９４に進める。
［ステップＳ９４］モデル同期部１５２は、テーブルの開始位置を特定する。具体的には、モデル同期部１５２は、マッピング定義１３１のTable要素のtemplateCol属性およびtemplateRow属性に指定する列および行の位置を、ワークシート内におけるテーブルの開始位置と判断する。
【０１２９】
［ステップＳ９５］モデル同期部１５２は、テーブル内の行ごとに、ステップＳ９６〜ステップＳ１００の処理を行う。
［ステップＳ９６］モデル同期部１５２は、行に対応する行対応要素があるか否かを判断する。具体的には、モデル同期部１５２は、行のプロパティに行対応要素のＩＤが設定されており、かつそのＩＤをもつモデル要素がモデル情報１１１に含まれていることを確認する。さらに、モデル同期部１５２は、マッピング定義１３１のTable要素のproperty属性で指定されている属性によって、シート対応要素から、ＩＤに対応するモデル要素が参照されていることを確認する。これらの条件が満たされていれば、モデル同期部１５２は、行のＩＤに対応するモデル要素を、行対応要素と判断する。行に対応する行対応要素が存在すれば、処理がステップＳ９８に進められる。行に対応する行対応要素が存在しなければ、処理がステップＳ９７に進められる。
【０１３０】
［ステップＳ９７］モデル同期部１５２は、行に対応する行対応要素を、モデル情報１１１内に作成する。具体的には、モデル同期部１５２は、シート対応要素から、マッピング定義１３１のTable要素のproperty属性で指定されている属性によって参照されるモデル要素を生成し、モデル情報１１１に追加する。このモデル要素は、現在処理対象となっている行に対応する行対応要素となる。追加された行対応要素の種別は、マッピング定義１３１のTable要素のpropertyKind属性に指定される型である。行対応要素をモデル情報１１１に追加すると、モデリングツールインタフェース１６２によって、その行対応要素を一意に識別するためのＩＤが行対応要素に付与される。モデル同期部１５２は、その行対応要素のＩＤをモデリングツールインタフェース１６２から受け取り、処理対象の行のプロパティに設定する。
【０１３１】
［ステップＳ９８］モデル同期部１５２は、マッピング定義１３１内のColumn要素ごとにステップＳ９９の処理を行う。
［ステップＳ９９］モデル同期部１５２は、テーブル内のセル値を行対応要素の属性に設定する。具体的には、モデル同期部１５２は、現在の行および処理対象のColumn要素に対応する列でセルを特定する。ここで、処理対象のColumn要素に対応する列は、「テーブルの開始列＋処理対象のColumn要素以前（マッピング定義１３１の記載が上位）の他のColumn要素の個数」で示される列番の列である。モデル同期部１５２は、特定したセルの値を、対応する行対応要素に対し、処理対象のColumn要素のproperty属性に指定されている属性として設定する。
【０１３２】
［ステップＳ１００］モデル同期部１５２は、全てのColumn要素に対してステップＳ９９の処理が終了すると、処理をステップＳ１０１に進める。
［ステップＳ１０１］モデル同期部１５２は、全ての行に対してステップＳ９９の処理が終了すると、処理をステップＳ１０２に進める。
【０１３３】
［ステップＳ１０２］モデル同期部１５２は、不要な行対応要素を削除する。具体的には、モデル同期部１５２は、マッピング定義１３１のTable要素のproperty属性で指定された属性によって、シート対応要素から参照されるモデル要素の集合のうち、テーブル内に含まれる行のいずれにも対応しない（ＩＤが一致しない）モデル要素を削除する。その後、帳票同期部１５１は、行の順に合わせて行対応要素をソートする。
【０１３４】
このようにして、ワークシートからシート対応要素への同期処理が行われる。
以上のように、モデル情報と帳票とを互いに同期させることで、コンピュータシステムで利用するデータの管理が容易となる。すなわち、モデル情報を操作する方が便利な場合、ユーザはモデリングツール１６１を用いてモデル情報を操作編集する。そして、モデル情報の内容を帳票に反映させることで、モデル情報と帳票との間の整合性を保つことができる。また、帳票内のデータの一覧を操作した方が便利な場合、ユーザは帳票アプリケーション１７１を用いて帳票の編集操作を行う。そして、帳票の内容をモデル情報に反映させることで、モデル情報と帳票との間の整合性を保つことができる。
【０１３５】
しかも、第１の実施の形態では、帳票内の行に対応する行要素がモデル情報内に存在すれば、その行要素に対して該当行に設定された属性値を追加的に設定する。これにより、同期対象外の属性が行要素に設定されていた場合、同期対象外の属性がそのまま保持される。
【０１３６】
なお、第１の実施の形態では、行にモデル要素を関連付け、列にモデル要素の属性を関連付けているが、行と列との定義を逆にすることもできる。すなわち、列にモデル要素を関連付け、行にモデル要素の属性値を関連付けることもできる。
【０１３７】
［第２の実施の形態］
第２の実施の形態は、マトリクス形式のテーブル表現の帳票を作成するものである。
第１の実施の形態では、モデルと表形式との変換を行う際、各行には個別のモデル要素を対応付け、各列には（各行に対応する）モデル要素の個別の属性値を対応付けるというものである（ここでは「一覧形式」と呼ぶ）。
【０１３８】
図１６は、一覧形式の帳票を示す図である。図１６に示すように、一覧形式の帳票では、モデル要素が行に定義され、モデル要素に設定される値の属性が列に定義される。そして、各モデル要素に設定された属性の値がセルに設定される。
【０１３９】
一方、第２の実施の形態は、同じく表形式ではあるものの、各行と各列にそれぞれ個別のモデル要素を対応付け、表の内部には行に対応するモデル要素と列に対応するモデル要素との両方に関連するモデル要素の情報を表す形式（ここでは「マトリクス形式」と呼ぶ）とするものである。
【０１４０】
図１７は、マトリクス形式の帳票を示す図である。図１７に示すように、マトリクス形式の帳票の各行と各列とに、個別のモデル要素が対応付けられる。そして、行と列とが交差する位置のセルに、両方に関連するモデル要素の情報が設定される。
【０１４１】
以下、マトリクス形式で帳票を作成する場合の処理を説明する。なお、第２の実施の形態の実施に必要な機能は、図３に示した第１の実施の形態と同様である。異なるのは、帳票同期部１５１とモデル同期部１５２との処理内容のみである。そこで、図３に示した符号を用いて第２の実施の形態について説明する。
【０１４２】
まず、マトリクス形式の帳票が有用な場合の例として、クラス間に複雑な依存関係が存在する場合がある。
図１８は、クラス間の依存関係を示すダイアグラムである。このダイアグラムは、あるパッケージに含まれるクラス間の依存関係を表したものである。依存関係は破線の矢印によって表され、矢印側のクラスはその反対側のクラスによって依存されることを意味する。より具体的には、依存する側のクラスは依存される側のクラスの変更による影響を受けることを意味する。そのため、このダイアグラムでは、例えば「クラス２」と「クラス３」とは、「クラス１」に依存することを表している。
【０１４３】
図１９は、図１８に示すダイアグラムに対応するモデル情報を示す図である。図１９では、長方形がモデル要素１１２ａ〜１１２ｈを表し、その内側の文字列のうちカッコの前のものはモデル要素１１２ａ〜１１２ｆの名前を、カッコの中のものはモデル要素１１２ａ〜１１２ｈの種別を表している（カッコの前が空白の場合は名前を持たないことを表す）。
【０１４４】
実線の矢印はモデル要素間の所有関係を表し、矢印の方向のモデル要素をその反対側の要素が所有するという意味である。この関係において、モデル要素は他のモデル要素を属性の値として所有し、その属性名が矢印の近くに示されている。
【０１４５】
また、破線の矢印はモデル要素間の参照関係を表し、矢印の方向のモデル要素をその反対側の要素が参照するという意味である。この関係において、モデル要素は他のモデル要素を属性値として参照し、その属性名が矢印に示されている。
【０１４６】
図１８で示したダイアグラムの背景にあるモデルの構造を図１９を参照して説明すると次のようになる。
Model要素「モデル１」はPackage要素「パッケージ１」をnestedPackage属性の値として所有し、「パッケージ１」は「クラス１」から「クラス６」までの６つのClass要素と、これらのクラス間の依存関係を表す５つのDependency要素を所有する（ただし構造を示す図１９ではいくつかのClass要素とDependency要素が省略されている）。
【０１４７】
あるDependency要素は「クラス１」をsupplier属性の値として、「クラス２」をclient属性の値として持つことでそれぞれを参照する。
なお、「所有する」と「参照する」とを比べると、前者の方がより強い結合度を持つ。
【０１４８】
この依存関係の場合、第１の実施の形態で示した一覧形式で帳票を作成すると次のようになる。
図２０は、依存関係を一覧形式で表した帳票を示す図である。図２０の例では、依存関係を行に定義し、その行の属性として依存するクラスと依存先のクラス（依存されるクラス）とを定義している。この形式でもクラス間の依存関係を理解することはできるが、マトリクス形式の方がより使いやすい場合がある。
【０１４９】
図２１は、依存関係をマトリクス形式で表した帳票を示す図である。図２１の例では、各クラスに対応するモデル要素が、行と列との両方に対応付けられている。そして、行と列との交わる位置のセルに、行に対応するクラスと列に対応するクラスとの依存関係の有無が示されている。依存関係が有る場合、その旨を示すフラグがセルに設定される（図２１では丸印で表されている）。
【０１５０】
このマトリクス形式を実現する場合、次の帳票テンプレートとマッピング定義とを使用する。
図２２は、マトリクス形式を実現するための帳票テンプレートを示す図である。帳票テンプレート１４２は一覧形式の場合と比較して、テーブルの部分だけが異なる。一覧形式では列ヘッダの列数やヘッダ文字列が固定であり、帳票テンプレートにあらかじめ埋め込まれているが、マトリクス形式では（行ヘッダ同様）列ヘッダは入力となるモデルやマッピング定義の内容に応じて（同期処理中に）動的に構成される。そのため、テーブルの罫線や網掛けといった、書式情報の雛形のみがあらかじめ埋め込まれている。
【０１５１】
テンプレートのテーブルは３行×３列となっているが、これは同期処理において行または列を構成する際に次のことが行われるからである。
・最終行以外の行の書式情報には、テンプレートのテーブルの２行目のものが使用される。
・最終行の書式情報には、テンプレートのテーブルの３行目のものが使用される。
・最終列以外の列の書式情報には、テンプレートのテーブルの２列目のものが使用される。
・最終列の書式情報には、テンプレートのテーブルの３列目のものが使用される。
【０１５２】
したがって、たとえば新たに最終行以外の行を追加する場合は、行ヘッダとなるセルの書式情報として２行１列のセルのものが使用され、行ヘッダおよび最終列以外のセルの書式情報として２行２列のセルのものが使用され、最終列のセルの書式情報として２行３列のセルのものが使用されるといった具合である。
【０１５３】
図２３は、マトリクス形式を実現するためのマッピング定義を示す図である。マッピング定義１３２は一覧形式の場合とほぼ同様の形式であるが、一覧形式のマッピング定義１３１（図６参照）におけるTable要素の代わりにMatrix要素が使用されている。ここではMatrix要素とその配下の要素（<Matrix>タグから</Matrix>タグまで）とについてのみ説明する。それ以外の要素が示す意味は、第１の実施の形態で示した一覧形式の場合と同様である。
【０１５４】
Matrix要素には、各行に対応するモデル要素（「行対応要素」と呼ぶ）の抽出方法と行ヘッダ文字列の取得方法とが指定されている。さらに、Matrix要素には、各列に対応するモデル要素（「列対応要素」と呼ぶ）の抽出方法と列ヘッダ文字列の取得方法とが指定されている。より詳細には、次の通りである。
【０１５５】
シート対応要素の属性のうちMatrix要素のrowProperty属性に指定するものの値（モデル要素の集合）からrowPropertyKind属性に指定する型に一致するものが行対応要素として抽出される。また、これらの行対応要素の属性のうちrowHeader属性に指定するものの値が行ヘッダ文字列として使用される。したがって、図２３のマッピング定義１３２の場合は、シート対応要素（Package）のownedMember属性で所有するモデル要素のうち、Class型に一致するものが行対応要素として抽出され、そのname属性の値が行ヘッダ文字列として使用されることになる。
【０１５６】
一方、シート対応要素の属性のうちMatrix要素のcolProperty属性に指定するものの値（モデル要素の集合）からcolPropertyKind属性に指定する型に一致するものが列対応要素として抽出される。また、これらの列対応要素の属性のうちcolHeader属性に指定するものの値が列ヘッダ文字列として使用される。したがって、図２３のマッピング定義１３２の場合は、シート対応要素（Package）のownedMember属性で所有するモデル要素のうち、Class型に一致するものが列対応要素として抽出され、そのname属性の値が列ヘッダ文字列として使用されることになる（このマッピング定義では行対応要素と列対応要素の仕様が同じ）。templateCol属性およびtemplateRow属性は一覧の場合のTable要素同様、マトリクステーブルの開始位置としての列および行を指定する。
【０１５７】
FromSheet要素は、マトリクステーブル内のセルに対応するモデル要素（「セル対応要素」と呼ぶ）の抽出方法とそのセル対応要素から関連する行対応要素および列対応要素を特定する方法とを指定する。より詳細には、以下の通りである。
【０１５８】
シート対応要素の属性のうちFromSheet要素のcellProperty属性に指定するものの値（モデル要素の集合）からcellPropertyKind属性に指定する型に一致するものがセル対応要素として抽出される。また、これらのセル対応要素の属性のうちrowProperty属性に指定するものの値を行対応要素として、colProperty属性に指定するものの値を列対応要素として特定する。したがって、図２３のマッピング定義１３２の場合は、シート対応要素（Package）のownedMember属性で所有するモデル要素のうち、Dependency型に一致するものがセル対応要素として抽出され、そのclient属性を行対応要素、supplier属性を列対応要素として特定する。
【０１５９】
Value要素はセル対応要素に対応するセルの値を指定する。より詳細には、次の通りである。FromSheet要素により抽出されたセル対応要素が特定した行対応要素および列対応要素にそれぞれ対応する行および列のセルに、Value要素のfix属性に指定する値（図２３のマッピング定義１３２の場合は「○」記号）が出力される。
【０１６０】
以上の帳票テンプレート１４２およびマッピング定義１３２を使用し、モデル情報１１２から帳票への同期を実行することにより新規に帳票が作成される場合、大まかな流れは次のようになる。
【０１６１】
ユーザは、同期処理の起点となるモデル要素として「モデル１」のモデル要素１１２ａを指定する。マッピング定義１３２では、Book要素のproperty属性に「self」の指定（属性取得元自身をブック対応要素とする特別なキーワード）がある。そのため、帳票同期部１５１は、起点として指定された「モデル１」のモデル要素１１２ａをブック対応要素として確定する。また、帳票格納ディレクトリにこのブック対応要素に対応する帳票（ブック）が作成され、ブック対応要素のＩＤがブックのプロパティに設定される。このときに作成されるブックのファイル名はマッピング定義のFileName要素のproperty属性により、ブック対応要素のname属性の値から「モデル1.xls」となる。
【０１６２】
マッピング定義１３２のSheet要素のproperty属性およびpropertyKind属性により、ブック対応要素である「モデル１」からnestedPackage属性に含まれるPackage型のモデル要素である「パッケージ１」が抽出されシート対応要素として確定する。また、同Sheet要素のtemplateSheetName属性により、テンプレートから同名のワークシートが作成されたブックにコピーされ、シート対応要素のＩＤがコピーされたワークシートのプロパティに設定される。コピーされるワークシートの名前はマッピング定義のSheetName要素のproperty属性により、シート対応要素のname属性の値「パッケージ１」となる。
【０１６３】
マッピング定義１３２のCell要素のproperty属性により、シート対応要素である「パッケージ１」のname属性の値（すなわち「パッケージ１」）が取得され、同Cell要素のtemplateCol属性およびtemplateRow属性に指定される第３行第２列のセルに設定される。
【０１６４】
マッピング定義１３２のMatrix要素のrowProperty属性およびrowPropertyKind属性により、シート対応要素である「パッケージ１」のownedMember属性に含まれるClass型のモデル要素である「クラス１」から「クラス６」までのClass要素が抽出され、これらが行対応要素として確定する。また、Matrix要素のrowHeader属性により、これらの行対応要素のname属性の値が、templateCol属性に指定される列（図２３の例では第１列）に、templateRow属性に指定される行＋１の位置（図２３の例では第６行）から順に（下の行に向かって）設定されていく。同時に、各行対応要素のＩＤが各行のプロパティとして設定される。
【０１６５】
列についても同様であり、マッピング定義のMatrix要素のcolProperty属性およびcolPropertyKind属性により「パッケージ１」のownedMember属性のClass型のモデル要素「クラス１」から「クラス6」までが抽出され、これらが列対応要素として確定する。また、Mtrix要素のcolHeader属性により、これらの列対応要素のname属性の値が、templateRow属性に指定される行（図２３の例では第５行）に、templateCol属性に指定される列＋１の位置（図２３の例では第２列）から順に（右の列に向かって）設定されていく。同時に各列対応要素のＩＤが各列のプロパティとして設定される。
【０１６６】
マッピング定義１３２のFromSheet要素のcellProperty属性およびcellPropertyKind属性により、シート対応要素である「パッケージ１」のownedMember属性に含まれるDependency型のモデル要素（５つ）が抽出され、これらがセル対応要素として確定する。同FromSheet要素のrowProperty属性およびcolProperty属性により、それぞれのセル対応要素のclient属性から参照する要素がそのセル対応要素から見た行対応要素、supplier属性から参照する要素がそのセル対応要素から見た列対応要素として確定する。帳票同期部１５１は、抽出された各セル対応要素について、そのセル対応要素から見た行対応要素に対応する行および列対応要素に対応する列の交差するセルに、マッピング定義のValue要素のfix属性の値「○」を出力する。
【０１６７】
この結果、出力される帳票は次のようになる。
図２４は、マトリクス形式の帳票の例を示す図である。図２４に示すように、帳票１２３には、行と列とにクラス名が設定されたマトリクスが形成されている。そして、クラス間に依存関係が有る場合、行と列とに設定されたクラスの交差するセルに丸印「○」が設定されている。
【０１６８】
また、ユーザによって帳票１２３が先に作成されモデル情報１１２が未作成の場合、マッピング定義１３２を使用することで、帳票１２３からモデル情報１１２への同期処理を実行することにより、新規にモデル情報１１２が作成される。このような場合の大まかな流れは次のようになる。
【０１６９】
ユーザは、データ変換部１５０に対して、同期処理の起点となる帳票として、図２４の帳票１２３を指定する操作入力を行う。さらにユーザは、データ変換部１５０に対して、帳票からモデル情報への同期処理を指示する操作入力を行う。
【０１７０】
すると、データ変換部１５０のモデル同期部１５２は、帳票１２３に対応するモデル要素が存在しないため（モデル情報１１２が未作成の状況を想定している）、マッピング定義１３２のBook要素のpropertyKind属性に従ってModel型のモデル要素を作成する。また、マッピング定義１３２のproperty属性に「self」の指定があるため、モデル同期部１５２は、このモデル要素自身をブック対応要素とする。さらに、モデル同期部１５２は、マッピング定義１３２のFileName要素のproperty属性に従い、帳票１２３のファイル名から「モデル１」をブック対応要素のname属性を設定する。
【０１７１】
モデル同期部１５２は、ワークシートに対応するモデル要素が存在しないため、マッピング定義のSheet要素のproperty属性およびpropertyKind属性に従い、ブック対応要素のnestedPackage属性の値（モデル要素の集合）にPackage型のモデル要素を作成して追加する。
【０１７２】
モデル同期部１５２は、マッピング定義のCell要素のtemplateCol属性およびtemplateRow属性に従い、３行２列のセルの値「パッケージ１」を取得し、同Cell要素のproperty属性に従い、シート対応要素のname属性に設定する。
【０１７３】
モデル同期部１５２は、マッピング定義１３２のMatrix要素のtemplateCol属性およびtemplateRow属性に従い、第「５＋１」行第１列のセルから（下の行に向かって）行ヘッダを取得していく。次に、モデル同期部１５２は、Matrix要素のrowProperty属性、rowPropertyKind属性、およびrowPropertyHeader属性に従い、シート対応要素のownedMember属性で所有されるモデル要素の集合にClass型のモデル要素を作成する。そして、モデル同期部１５２は、取得した行ヘッダの値（「クラス１」から「クラス６」を、作成してモデル要素それぞれのname属性に設定する。
【０１７４】
また、モデル同期部１５２は、templateCol属性およびtemplateRow属性に従い、第５行第「１＋１」列のセルから（右の列に向かって）列ヘッダを取得していく。次に。モデル同期部１５２は、その値を同Matrix要素のcolProperty属性、colPropertyKind属性、およびcolPropertyHeader属性に従い、シート対応要素のownedMember属性で所有されるモデル要素の集合として、Class型のモデル要素を作成する。さらに、モデル同期部１５２は、作成したモデル要素のname属性に、取得した列ヘッダの値「クラス１」から「クラス６」を設定していく。ただし、すでに行ヘッダによりそれぞれ同じ名前（厳密にはヘッダ文字列を設定する属性値）を持つ同じ型のモデル要素が同じ属性で設定されている場合には、モデル要素の作成は行われない。
【０１７５】
モデル要素が追加された場合、モデリングツールインタフェース１６２によって、追加されたモデル要素に対して、そのモデル要素を一意に識別するためのＩＤが付与される。モデル同期部１５２は、追加したモデル要素のＩＤをモデリングツールインタフェース１６２から取得し、ものモデル要素に対応する行および列のプロパティに、取得したＩＤを設定する。
【０１７６】
モデル同期部１５２は、マトリクステーブル（帳票１２３内の行ヘッダと列ヘッダとが設定された領域）から、マッピング定義１３２のValue要素のfix属性の値（図２３の例では、丸印「○」）が設定されているセルを見つける。モデル同期部１５２は、見つかったセルごとにマッピング定義１３２のFromSheet要素のcellProperty属性およびcellPropertyKind属性に従い、シート対応要素のownedMember属性で所有されるモデル要素の集合を作成する。この作成されるモデル要素は、Dependency型が設置される。
【０１７７】
また、モデル同期部１５２は、マッピング定義１３２のValue要素のfix属性の値（この例では丸印）が設定されたセルの行および列にそれぞれプロパティとして設定されているＩＤに基づいて行対応要素および列対応要素を特定する。そして、モデル同期部１５２は、マッピング定義１３２内のFromSheet要素のrowProperty属性およびcolProperty属性に従い、作成したDependency型のモデル要素のclient属性に特定された行対応要素を、supplier属性に特定された列対応要素を設定する。
【０１７８】
次に、マトリクス形式の帳票を用いたモデル情報１１２と帳票１２３間の同期処理の詳細を説明する。
＜モデル情報から帳票への同期処理＞
まず、モデル情報１１２から帳票１２３への同期処理について説明する。なお、モデル情報１１２から帳票１２３への同期処理については、シート対応要素からワークシートへの同期処理を除き、第１の実施の形態と同じである。すなわち、図８〜図１０に示した処理は、第２の実施の形態でも同様である。そこで、以下、シート対応要素からワークシートへの同期処理について詳細に説明する。
【０１７９】
図２５は、シート対応要素からワークシートへの同期処理の手順を示すフローチャートの前半である。以下、図２５に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］帳票同期部１５１は、マッピング定義１３２のCell要素ごとに、ステップＳ１１２の処理を繰り返し行う。
【０１８０】
［ステップＳ１１２］帳票同期部１５１は、セル値の設定を行う。具体的には、帳票同期部１５１は、Cell要素のtemplateCol属性およびtemptaleRow属性に指定される列および行に位置するセルに対し、Cell要素のproperty属性で指定されているシート対応要素の属性値（文字列）を設定する。
【０１８１】
［ステップＳ１１３］帳票同期部１５１は、マッピング定義１３２の全てのCell要素に対してステップＳ１１２の処理が終了すると、処理をステップＳ１１４に進める。
［ステップＳ１１４］帳票同期部１５１は、マトリクステーブルの開始位置を特定する。具体的には、帳票同期部１５１は、マッピング定義１３２のMatrix要素のtemplateCol属性およびtemptaleRow属性に指定されている列および行で示される位置のセルをマトリクステーブルの開始位置とする。
【０１８２】
［ステップＳ１１５］帳票同期部１５１は、行対応要素の抽出を行う。具体的には、帳票同期部１５１は、モデル情報１１２において、マッピング定義１３２のMatrix要素のrowProperty属性でシート対応要素から所有されているモデル要素の集合を取得する。そして、帳票同期部１５１は、取得したモデル情報の集合から、rowPropertyKind属性に指定されている型のモデル要素を抽出する。抽出したモデル要素を「行対応要素」と呼ぶ。
【０１８３】
［ステップＳ１１６］帳票同期部１５１は、行対応要素ごとにステップＳ１１７からステップＳ１１８の処理を行う。
［ステップＳ１１７］帳票同期部１５１は、行対応要素に対応する行が存在するか否かを判断する。具体的には、帳票同期部１５１は、行対応要素のＩＤをプロパティとして有する行が現在のマトリクステーブル内に存在するか否かを判断する。行対応要素に対応する行が存在すれば、処理がステップＳ１１９に進められる。行対応要素に対応する行が存在しなければ、処理がステップＳ１１８に進められる。
【０１８４】
［ステップＳ１１８］帳票同期部１５１は、行を作成する。具体的には、帳票同期部１５１は、マトリクステーブルの最後の行（まだ１行も存在しない場合は開始位置）の次に１行追加する（マトリックステーブル用の罫線を設定する）。次に、帳票同期部１５１は、追加した行のプロパティに対して、行対応要素のＩＤを設定する。さらに、帳票同期部１５１は、行対応要素からマッピング定義１３２のMatrix要素のrowHeader属性で指定される属性の値（文字列）を取得し、行の先頭のセル（テーブル開始位置の列）も行ヘッダとして設定する。
【０１８５】
［ステップＳ１１９］帳票同期部１５１は、すべての行対応要素に対してステップＳ１１７〜ステップＳ１１８の処理が終了すると、処理をステップＳ１２０に進める。
［ステップＳ１２０］帳票同期部１５１は、不要な行を削除する。具体的には、帳票同期部１５１は、ワークシートに含まれる行のうち、プロパティに行対応要素のＩＤを持ち、かつステップＳ１１５で抽出された行対応要素のなかに同じＩＤを有するものが存在しない行を削除する。そして、帳票同期部１５１は、行対応要素の順に合わせてマトリクステーブルを構成する行をソートする。その後、処理がステップＳ１２１（図２６に示す）に進められる。
【０１８６】
図２６は、シート対応要素からワークシートへの同期処理の手順を示すフローチャートの後半である。以下、図２６に示す処理をステップ番号に沿って説明する。
［ステップＳ１２１］帳票同期部１５１は、列対応要素の抽出を行う。具体的には、帳票同期部１５１は、モデル情報１１２において、マッピング定義１３２のMatrix要素のcolProperty属性でシート対応要素から所有されているモデル要素の集合を取得する。そして、帳票同期部１５１は、取得したモデル情報の集合から、colPropertyKind属性に指定されている型のモデル要素を抽出する。抽出したモデル要素を「列対応要素」と呼ぶ。
【０１８７】
［ステップＳ１２２］帳票同期部１５１は、列対応要素ごとにステップＳ１２３からステップＳ１２４の処理を行う。
［ステップＳ１２３］帳票同期部１５１は、列対応要素に対応する列が存在するか否かを判断する。具体的には、帳票同期部１５１は、列対応要素のＩＤをプロパティとして有する列が現在のマトリクステーブル内に存在するか否かを判断する。列対応要素に対応する列が存在すれば、処理がステップＳ１２５に進められる。列対応要素に対応する列が存在しなければ、処理がステップＳ１２４に進められる。
【０１８８】
［ステップＳ１２４］帳票同期部１５１は、列を作成する。具体的には、帳票同期部１５１は、マトリクステーブルの最後の列（まだ１列も存在しない場合は開始位置）の次に１列追加する（マトリックステーブル用の罫線を設定する）。次に、帳票同期部１５１は、追加した列のプロパティに対して、列対応要素のＩＤを設定する。さらに、帳票同期部１５１は、列対応要素からマッピング定義１３２のMatrix要素のcolHeader属性で指定される属性の値（文字列）を取得し、列の先頭のセル（テーブル開始位置の列）も列ヘッダとして設定する。
【０１８９】
［ステップＳ１２５］帳票同期部１５１は、すべての列対応要素に対してステップＳ１２３〜ステップＳ１２４の処理が終了すると、処理をステップＳ１２６に進める。
［ステップＳ１２６］帳票同期部１５１は、不要な列を削除する。具体的には、帳票同期部１５１は、ワークシートに含まれる列のうち、プロパティに列対応要素のＩＤを持ち、かつステップＳ１２１で抽出された列対応要素のなかに同じＩＤを有するものが存在しない列を、削除する。そして、帳票同期部１５１は、列対応要素の順に合わせてマトリクステーブルを構成する列をソートする。その後、処理がステップＳ１２７に進められる。
【０１９０】
［ステップＳ１２７］帳票同期部１５１は、セル対応要素を抽出する。具体的には、帳票同期部１５１は、シート対応要素からマッピング定義１３２のFormSheet要素のcellProperty属性で指定されている属性のモデル要素の集合を取得する。次に、帳票同期部１５１は、取得したモデル要素の集合から、cellPropertyKind属性で指定された型のモデル要素を抽出する。抽出したモデル要素を「セル対応要素」と呼ぶ。
【０１９１】
［ステップＳ１２８］帳票同期部１５１は、セル対応要素ごとにステップＳ１２９〜ステップＳ１３１の処理を行う。
［ステップＳ１２９］帳票同期部１５１は、セル対応要素が参照する行対応要素を特定する。具体的には、帳票同期部１５１は、セル対応要素からマッピング定義１３２のFromSheet要素のrowProperty属性で指定されているモデル要素の集合を取得する。そして、帳票同期部１５１が、取得したモデル要素を、セル対応要素が参照する行対応要素として特定する。
【０１９２】
［ステップＳ１３０］帳票同期部１５１は、セル対応要素が参照する列対応要素を特定する。具体的には、帳票同期部１５１は、セル対応要素からマッピング定義１３２のFromSheet要素のcolProperty属性に指定されている属性のモデル要素の集合を取得する。そして、帳票同期部１５１は、取得したモデル要素をセル対応要素が参照する列対応要素として特定する。
【０１９３】
［ステップＳ１３１］帳票同期部１５１は、セル値を設定する。具体的には、帳票同期部１５１は、セル対応要素が参照する行対応要素と列対応要素とのそれぞれに対応する行と列との交差するセルに、マッピング定義１３２のValue要素に示された値を設定する。また、帳票同期部１５１は、セルのプロパティに対してセル対応要素のＩＤを設定する。
【０１９４】
［ステップＳ１３２］帳票同期部１５１は、全てのセル対応要素に対してステップＳ１２９〜ステップＳ１３１の処理が終了すると、処理をステップＳ１３３に進める。
［ステップＳ１３３］帳票同期部１５１は、不要なセル値を削除する。具体的には、帳票同期部１５１は、セルうち、セル対応要素のＩＤがプロパティに設定されており、かつ抽出されたセル対応要素のなかにそのＩＤに対応するものが存在しないセルを検出する。そして、帳票同期部１５１は、検出されたセルに設定されているセル値を削除する。
【０１９５】
このようにして、シート対応要素からワークシートへの同期処理が行われる。
＜帳票からモデル情報への同期処理＞
次に、帳票１２３からモデル情報１１２への同期処理について説明する。なお、帳票１２３からモデル情報１１２への同期処理については、ワークシートからシート対応要素への同期処理を除き、第１の実施の形態と同じである。すなわち、図１２〜図１４に示した処理は、第２の実施の形態でも同様である。そこで、以下、ワークシートからシート対応要素への同期処理について詳細に説明する。
【０１９６】
図２７は、ワークシートからシート対応要素への同期処理の手順を示すフローチャートの前半である。以下、図２７に示す処理をステップ番号に沿って説明する。
［ステップＳ１４１］モデル同期部１５２は、マッピング定義１３２のCell要素ごとに、ステップＳ１４２の処理を行う。
【０１９７】
［ステップＳ１４２］モデル同期部１５２は、セル値をシート対応要素の属性に設定する。具体的には、モデル同期部１５２は、Cell要素のtemplateCol属性およびtemplateRow属性に指定された列および行からワークシート内のセルを特定する。次に、モデル同期部１５２は、特定したセルの値を、現在のシート対応要素の属性のうち、Cell要素のproperty属性に指定されているものに設定する。
【０１９８】
［ステップＳ１４３］モデル同期部１５２は、マッピング定義１３２の全てのCell要素に対してステップＳ１４２の処理が終了すると、処理をステップＳ１４４に進める。
［ステップＳ１４４］モデル同期部１５２は、マトリクステーブルの開始位置を特定する。具体的には、モデル同期部１５２は、マッピング定義１３２のMatrix要素のtemplateCol属性およびtemptaleRow属性に指定されている列および行で示される位置のセルをマトリクステーブルの開始位置とする。
【０１９９】
［ステップＳ１４５］モデル同期部１５２は、マトリクステーブル内の行ごとに、ステップＳ１４６〜ステップＳ１４８の処理を行う。
［ステップＳ１４６］モデル同期部１５２は、行に対応する行対応要素が存在するか否かを判断する。具体的には、モデル同期部１５２は、行のプロパティに行対応要素のＩＤが設定されており、かつそのＩＤを持つモデル要素が、シート対応要素から、マッピング定義１３２のMatrix要素のrowProperty属性によって所有されているもモデル要素の集合に含まれているか否かを判断する。行に対応する行対応要素が存在する場合、処理がステップＳ１４９に進められる。行に対応する行対応要素が存在しない場合、処理がステップＳ１４７に進められる。
【０２００】
［ステップＳ１４７］モデル同期部１５２は、行対応要素を作成する。具体的には、モデル同期部１５２は、シート対応要素から、マッピング定義１３２のMatrix要素のrowProperty属性で指定されている属性で所有されるモデル要素の集合に、モデル要素（行対応要素）追加する。追加されるモデル要素の型は、Matrix要素のrowPropertyKind属性に指定されている型である。また、行対応要素をモデル情報１１２に追加すると、モデリングツールインタフェース１６２によって、その行対応要素を一意に識別するためのＩＤが行対応要素に付与される。モデル同期部１５２は、その行対応要素のＩＤをモデリングツールインタフェース１６２から受け取り、処理対象の行のプロパティに設定する。
【０２０１】
［ステップＳ１４８］モデル同期部１５２は、行対応要素に行ヘッダを設定する。具体的には、モデル同期部１５２は、行の先頭（マトリクステーブル開始位置の列）のセルに設定されている文字列（行ヘッダ）を、追加した行対応要素に対して、マッピング定義１３２のMatrix要素のrowHeader属性に指定されている属性の値として設定する。
【０２０２】
［ステップＳ１４９］モデル同期部１５２は、マトリクステーブル内の全ての行に対してステップＳ１４６〜ステップＳ１４８の処理が終了すると、処理をステップＳ１５０に進める。
【０２０３】
［ステップＳ１５０］モデル同期部１５２は、不要な行対応要素を削除する。具体的には、モデル同期部１５２は、シート対応要素の属性のうち、マッピング定義１３２のMatrix要素のrowProperty属性で指定されている属性で所有されるモデル要素の集合から、対応する行（ＩＤが一致する行）がマトリクステーブル内に存在しないモデル要素を削除する。そして、モデル同期部１５２は、行の並び順に合わせて行対応要素をソートする。その後、処理がステップＳ１５１（図２８に示す）に進められる。
【０２０４】
図２８は、ワークシートからシート対応要素への同期処理の手順を示すフローチャートの後半である。以下、図２８に示す処理をステップ番号に沿って説明する。
［ステップＳ１５１］モデル同期部１５２は、マトリクステーブル内の列ごとに、ステップＳ１５２〜ステップＳ１５４の処理を行う。
【０２０５】
［ステップＳ１５２］モデル同期部１５２は、列に対応する列対応要素が存在するか否かを判断する。具体的には、モデル同期部１５２は、列のプロパティに列対応要素のＩＤが設定されており、かつそのＩＤを持つモデル要素が、シート対応要素から、マッピング定義１３２のMatrix要素のcolproperty属性によって所有されているもモデル要素の集合に含まれているか否かを判断する。列に対応する列対応要素が存在する場合、処理がステップＳ１５５に進められる。列に対応する列対応要素が存在しない場合、処理がステップＳ１５３に進められる。
【０２０６】
［ステップＳ１５３］モデル同期部１５２は、列対応要素を作成する。具体的には、モデル同期部１５２は、シート対応要素から、マッピング定義１３２のMatrix要素のcolProperty属性で指定されている属性で所有されるモデル要素の集合に、モデル要素（列対応要素）追加する。追加されるモデル要素の型は、Matrix要素のcolPropertyKind属性に指定されている型である。また、列対応要素をモデル情報１１２に追加すると、モデリングツールインタフェース１６２によって、その列対応要素を一意に識別するためのＩＤが列対応要素に付与される。モデル同期部１５２は、その列対応要素のＩＤをモデリングツールインタフェース１６２から受け取り、処理対象の列のプロパティに設定する。
【０２０７】
［ステップＳ１５４］モデル同期部１５２は、列対応要素に列ヘッダを設定する。具体的には、モデル同期部１５２は、列の先頭（マトリクステーブル開始位置の列）のセルに設定されている文字列（列ヘッダ）を、追加した列対応要素に対して、マッピング定義１３２のMatrix要素のcolHeader属性に指定されいている属性の値として設定する。
【０２０８】
［ステップＳ１５５］モデル同期部１５２は、マトリクステーブル内の全ての列に対してステップＳ１５２〜ステップＳ１５４の処理が終了すると、処理をステップＳ１５６に進める。
【０２０９】
［ステップＳ１５６］モデル同期部１５２は、不要な列対応要素を削除する。具体的には、モデル同期部１５２は、シート対応要素の属性のうち、マッピング定義１３２のMatrix要素のcolProperty属性で指定されている属性で所有されるモデル要素の集合から、対応する列（ＩＤが一致する列）がマトリクステーブル内に存在しないモデル要素を削除する。そして、モデル同期部１５２は、列の並び順に合わせて列対応要素をソートする。
【０２１０】
［ステップＳ１５７］モデル同期部１５２は、マトリクステーブル内のセル値を抽出する。具体的には、モデル同期部１５２は、マッピング定義１３２のValue要素で示される値（セル値）が設定されたセルを、マトリクステーブル内の（行ヘッダと列ヘッダとを除く）のセルから抽出する。
【０２１１】
［ステップＳ１５８］モデル同期部１５２は、セル値が設定されたセルごとに、ステップＳ１５９〜ステップＳ１６１の処理を行う。
［ステップＳ１５９］モデル同期部１５２は、シート対応要素から、マッピング定義１３２のFromSheet要素のcellProperty属性で指定されている属性で所有されるモデル要素として、FromSheet要素のcellPropertyKind属性で指定される型のモデル要素（セル対応要素）を追加する。追加されるモデル要素の型は、FromSheet要素のcellPropertyKind属性に指定されている型である。また、セル対応要素をモデル情報１１２に追加すると、モデリングツールインタフェース１６２によって、その列対応要素を一意に識別するためのＩＤが列対応要素に付与される。モデル同期部１５２は、その列対応要素のＩＤをモデリングツールインタフェース１６２から受け取り、処理対象のセルのプロパティに設定する。
【０２１２】
［ステップＳ１６０］モデル同期部１５２は、セル対応要素が参照する行対応要素を設定する。具体的には、モデル同期部１５２は、セル対応要素から、マッピング定義１３２のFromSheet要素のrowProperty属性に指定されて属性による参照先として、セル対応要素に対応するセルを含む行の行対応要素を設定する。該当する行対応要素への参照の属性が既に設定されている場合、設定は行われない。
【０２１３】
［ステップＳ１６１］モデル同期部１５２は、セル対応要素が参照する列対応要素を設定する。具体的には、モデル同期部１５２は、セル対応要素から、マッピング定義１３２のFromSheet要素のcolProperty属性に指定されて属性による参照先として、セル対応要素に対応するセルを含む列の列対応要素を設定する。該当する列対応要素への参照の属性が既に設定されている場合、設定は行われない。
【０２１４】
［ステップＳ１６２］モデル同期部１５２は、セル値が設定された全てのセルに対してステップＳ１５９〜ステップＳ１６１の処理が終了したら、処理をステップＳ１６３に進める。
【０２１５】
［ステップＳ１６３］モデル同期部１５２は、不要なセル対応要素を削除する。具体的には、モデル同期部１５２は、まず、シート対応要素から、マッピング定義１３２のFromSheet要素のcellProperty属性で指定されている属性で所有されるモデル要素の集合を取得する。次に、モデル同期部１５２は、取得したモデル要素のうち、FromSheet要素のcellPropertyKind属性で指定された型のモデル要素（セル対応要素）を特定する。そして、モデル同期部１５２は、特定したセル対応要素に対応するセルに対して、セル値が設定されていない場合（該当するセルに丸印が付いていない場合）、特定したセル対応要素を削除する。
【０２１６】
このようにして、ワークシートからシート対応要素への同期処理が行われる。
以上説明したように、第２の実施の形態によれば、モデル情報１１２とマトリクス形式の帳票１２３との間で互いに同期させることができる。
【０２１７】
［その他の変形例］
以下、上記の実施の形態の変形例について説明する。
＜第１の変形例＞
第１の変形例は、一覧形式とマトリクス形式を統合するものである。第１の実施の形態のマッピング定義１３１と第２の実施の形態のマッピング定義１３２のそれぞれには、Table要素とMatrix要素とのどちらかが含まれている。そこで、マッピング定義にTable要素とMatrix要素とのどちらが含まれているかを判断する処理を追加することによって、一覧形式とマトリクス形式のフローチャートは１つに統合することができる。
【０２１８】
具体的には、モデル情報から帳票への反映では、図１１に示す「シート対応要素からワークシートへの同期」処理の「マッピング定義のCell要素ごとの繰返し」処理終了の直後（ステップＳ４３の後、ステップＳ４４の前）に、マッピング定義にTable要素が含まれているか、またはMatrix要素が含まれているかの判定処理が挿入される。Table要素が含まれている場合、ステップＳ４４以降の処理を実行することで、一覧形式の処理が行われる。Matrix要素が含まれている場合、図２５に示す「シート対応要素からワークシートへの同期」処理のステップＳ１１４以降の処理を実行することで、マトリクス形式の処理が行われる。
【０２１９】
また、帳票からモデルへの反映では、図１５に示す「ワークシートからシート対応要素への同期」処理の「マッピング定義のCell要素ごとの繰返し」処理終了の直後（ステップＳ９３の後、ステップＳ９４の前）に、マッピング定義にTable要素が含まれているか、またはMatrix要素が含まれているかの判定処理が挿入される。Table要素が含まれている場合、ステップＳ９４以降の処理を実行することで、一覧形式の処理が行われる。Matrix要素が含まれている場合、図２７に示す「シート対応要素からワークシートへの同期」処理のステップＳ１４４以降の処理を実行することで、マトリクス形式の処理が行われる。
【０２２０】
＜第２の変形例＞
第２の変形例は、モデル要素間を接続するモデル要素として汎化関係が有る場合にも適用可能とするものである。
【０２２１】
第２の実施の形態では、ＵＭＬの「依存関係」のように、２つのモデル要素（例えば「クラス１」と「クラス２」）を属性値として参照するモデル要素（例えば依存関係）を設けることで、２つのモデル要素間の接続を表現するモデル構造を扱う場合について説明した。
【０２２２】
図２９は、依存関係を有するモデル構造を示す図である。図式表現のダイアグラム２１では２つのノードとこれらを結ぶエッジとを表している。これらのノードとエッジとには、それぞれ対応するモデル要素が、抽象的なモデル構造を表すモデル情報２２に存在する。具体的には、「ノードＡ」に対応するのが「モデル要素ａ」、「ノードＢ」に対応するのが「モデル要素ｂ」、「エッジＣ」に対応するのが「モデル要素ｃ」である。
【０２２３】
ここで、「エッジＣ」がＵＭＬ依存関係の場合、ＵＭＬ仕様により「モデル要素ｃ」が「モデル要素ａ」および「モデル要素ｂ」を属性値として参照する構造をとる。一方、「エッジＣ」がＵＭＬ汎化関係を表す場合は、上記とは異なるモデル構造となる。
【０２２４】
図３０は、汎化関係での接続例を示す図である。汎化関係を示すＵＭＬクラス図３１では、「クラスＡ」と「クラスＢ」とが汎化関係で接続されている。この関係をモデル構造の抽象表現であるモデル情報３２で表すと、ＵＭＬ仕様により、汎化関係は「クラスＢ」（汎化関係の矢印の反対側）のgeneralization属性の値として「所有」され、汎化関係が「クラスＡ」をgenaral属性の値として「参照」することとなる。
【０２２５】
図３０に示すモデル情報３２は、図１８に示したダイアグラムに似ている。そのため、図３０に示すモデル情報３２に対しても汎化関係に着目してマトリクス形式のテーブルに変換したいということは十分に有り得る。ただし、モデル構造の違いにより、図２３に示したマッピング定義１３２をそのまま適用することはできない。
【０２２６】
適用するためには、図２３に示すマッピング定義１３２のFromSheet要素の代わりに、次のいずれかを使用する（以下は上記の汎化関係に対応する場合の例）。
１）行対応要素が所有する汎化関係をテーブル内のセルに対応付ける場合
<FromRow cellProperty="generalization" cellPropertyKind="Generalization"
colProperty="general">
<Value .../>
</FromRow>
２）列対応要素が所有する汎化関係をテーブル内のセルに対応付ける場合
<FromCol cellProperty="generalization" cellPropertyKind="Generalization"
rowProperty="general">
<Value .../>
</FromCol>
これらをFromSheet要素との対比で説明すると次のようになる。
【０２２７】
FromSheet要素の場合、cellProperty属性はシート対応要素の属性を指定していたが、FromRow要素では（cellProperty属性は）行対応要素の属性を指定し、FromCol要素では列対応要素の属性を指定する。
【０２２８】
cellPropertyKind属性はいずれもFromSheet要素の場合と意味は同様でありcellProperty属性に対するモデル要素の型を指定する。
FromRow要素の場合、セル対応要素（cellProperty属性の値）が参照する行対応要素がすでに決定されているためrowProperty属性は不要であり、colProperty属性はセル対応要素が参照する列対応要素の取得先となるセル対応要素の属性を指定する。
【０２２９】
FromCol要素の場合、セル対応要素（cellProperty属性の値）が参照する列対応要素がすでに決定されているためcolProperty属性は不要であり、rowProperty属性はセル対応要素が参照する行対応要素の取得先となるセル対応要素の属性を指定する。
【０２３０】
＜第３の変形例＞
第３の変形例は、Value要素として固定値以外の値を設定するものである。第２の実施の形態では、マトリクステーブル内のセルの値を指定するValue要素は固定値（fix属性）である。ここで、Value要素でfix属性の代わりにproperty属性を指定することによりセル対応要素の属性値を設定したり（モデル情報から帳票への反映時）、セル値をセル対応要素の属性に設定したり（帳票からモデル情報への反映時）することができる。
【０２３１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、データ変換部１５０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０２３２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２３３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２３４】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０２３５】
（付記１）  コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理プログラムにおいて、
コンピュータを、
一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段、
テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段、
前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段、
前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段、
前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段、
として機能させることを特徴とするシステムデータ構造管理プログラム。
【０２３６】
（付記２）  コンピュータを、さらに、
帳票を作成するための雛形である帳票テンプレートを記憶する帳票テンプレート記憶手段として機能させ、
前記同期手段は、前記帳票記憶手段に前記帳票が記憶されていない場合、前記帳票テンプレートを前記帳票記憶手段内にコピーすることで、前記帳票を作成することを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２３７】
（付記３）  前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２３８】
（付記４）  前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段は、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段は、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から２つの前記同期対象モデル要素を検出し、検出された２つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２３９】
（付記５）  モデル同期手段は、行または列に識別子が設定されていない場合、前記モデル情報内に前記同期対象モデル要素を追加し、追加した前記同期対象モデル要素に設定された識別子を、識別子が設定されていなかった行または列に設定することを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２４０】
（付記６）  前記帳票同期手段は、前記帳票内の前記同期対象モデル要素が関連付けられている行または列のうち、前記モデル情報内に存在する前記同期対象モデル要素の識別子が設定されている行または列以外の行または列を、前記帳票から削除することを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２４１】
（付記７）  前記モデル同期手段は、前記モデル情報内の前記同期対象モデル要素のうち、前記帳票内の前記同期対象モデル要素が関連付けられている行または列に設定された識別子に対応する前記同期対象モデル要素以外を、前記モデル情報から削除することを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２４２】
（付記８）  前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段の前記同期対象要素定義では、前記起点のモデル要素から１以上の所定の属性で関連付けられたモデル要素を辿ることで得られるモデル要素を前記同期対象モデル要素とすることが定義されており、
前記帳票同期手段は、前記モデル情報から前記帳票への同期要求と共に、前記起点のモデル情報を指定する入力を受け付け、前記モデル情報において、指定された前記起点のモデル要素から前記所定の属性で関連付けられたモデル要素を辿り、前記同期対象モデル要素を抽出することを特徴とする付記１記載のシステムデータ構造管理プログラム。
【０２４３】
（付記９）  コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理装置において、
一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、
テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、
前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段と、
前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段と、
前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段と、
を有することを特徴とするシステムデータ構造管理装置。
【０２４４】
（付記１０）  帳票を作成するための雛形である帳票テンプレートを記憶する帳票テンプレート記憶手段をさらに有し、
前記同期手段は、前記帳票記憶手段に前記帳票が記憶されていない場合、前記帳票テンプレートを前記帳票記憶手段内にコピーすることで、前記帳票を作成することを特徴とする付記９記載のシステムデータ構造管理装置。
【０２４５】
（付記１１）  前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする付記９記載のシステムデータ構造管理装置。
【０２４６】
（付記１２）  前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段は、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段は、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から２つの前記同期対象モデル要素を検出し、検出された２つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする付記９記載のシステムデータ構造管理装置。
【０２４７】
（付記１３）  モデル同期手段は、行または列に識別子が設定されていない場合、前記モデル情報内に前記同期対象モデル要素を追加し、追加した前記同期対象モデル要素に設定された識別子を、識別子が設定されていなかった行または列に設定することを特徴とする付記９記載のシステムデータ構造管理装置。
【０２４８】
（付記１４）  前記帳票同期手段は、前記帳票内の前記同期対象モデル要素が関連付けられている行または列のうち、前記モデル情報内に存在する前記同期対象モデル要素の識別子が設定されている行または列以外の行または列を、前記帳票から削除することを特徴とする付記９記載のシステムデータ構造管理装置。
【０２４９】
（付記１５）  前記モデル同期手段は、前記モデル情報内の前記同期対象モデル要素のうち、前記帳票内の前記同期対象モデル要素が関連付けられている行または列に設定された識別子に対応する前記同期対象モデル要素以外を、前記モデル情報から削除することを特徴とする付記９記載のシステムデータ構造管理装置。
【０２５０】
（付記１６）  前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段の前記同期対象要素定義では、前記起点のモデル要素から１以上の所定の属性で関連付けられたモデル要素を辿ることで得られるモデル要素を前記同期対象モデル要素とすることが定義されており、
前記帳票同期手段は、前記モデル情報から前記帳票への同期要求と共に、前記起点のモデル情報を指定する入力を受け付け、前記モデル情報において、指定された前記起点のモデル要素から前記所定の属性で関連付けられたモデル要素を辿り、前記同期対象モデル要素を抽出することを特徴とする付記９記載のシステムデータ構造管理装置。
【０２５１】
（付記１７）  コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とをコンピュータで管理するためのシステムデータ構造管理方法において、
あらかじめ、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段とを用意し、
帳票同期手段が、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定し、
モデル同期手段が、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定する、
ことを特徴とするシステムデータ構造管理方法。
【０２５２】
（付記１８）  あらかじめ、帳票を作成するための雛形である帳票テンプレートを記憶する帳票テンプレート記憶手段をさらに用意し、
前記同期手段は、前記帳票記憶手段に前記帳票が記憶されていない場合、前記帳票テンプレートを前記帳票記憶手段内にコピーすることで、前記帳票を作成することを特徴とする付記１７記載のシステムデータ構造管理方法。
【０２５３】
（付記１９）  前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする付記１７記載のシステムデータ構造管理方法。
【０２５４】
（付記２０）  前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段が、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段が、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から２つの前記同期対象モデル要素を検出し、検出された２つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする付記１７記載のシステムデータ構造管理方法。
【図面の簡単な説明】
【０２５５】
【図１】発明の概要を示す図である。
【図２】本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図３】本実施の形態の機能を示すブロック図である。
【図４】モデル情報の例を示す図である。
【図５】帳票テンプレートの例を示す図である。
【図６】マッピング定義の例を示す図である。
【図７】表示された帳票を示す図である。
【図８】モデル情報から帳票に反映する処理の手順を示すフローチャートである。
【図９】モデル要素から帳票格納ディレクトリへの同期処理の手順を示すフローチャートである。
【図１０】ブック対応要素からブックへの同期処理を示すフローチャートである。
【図１１】シート対応要素からワークシートへの同期処理の手順を示すフローチャートである。
【図１２】帳票からモデル情報に反映する処理の手順を示すフローチャートである。
【図１３】帳票格納ディレクトリからモデル要素への同期処理の手順を示すフローチャートである。
【図１４】ブックからブック対応要素への同期処理を示すフローチャートである。
【図１５】ワークシートからシート対応要素への同期処理の手順を示すフローチャートである。
【図１６】一覧形式の帳票を示す図である。
【図１７】マトリクス形式の帳票を示す図である。
【図１８】クラス間の依存関係を示すダイアグラムである。
【図１９】図１８に示すダイアグラムに対応するモデル情報を示す図である。
【図２０】依存関係を一覧形式で表した帳票を示す図である。
【図２１】依存関係をマトリクス形式で表した帳票を示す図である。
【図２２】マトリクス形式を実現するための帳票テンプレートを示す図である。
【図２３】マトリクス形式を実現するためのマッピング定義を示す図である。
【図２４】マトリクス形式の帳票の例を示す図である。
【図２５】シート対応要素からワークシートへの同期処理の手順を示すフローチャートの前半である。
【図２６】シート対応要素からワークシートへの同期処理の手順を示すフローチャートの後半である。
【図２７】ワークシートからシート対応要素への同期処理の手順を示すフローチャートの前半である。
【図２８】ワークシートからシート対応要素への同期処理の手順を示すフローチャートの後半である。
【図２９】依存関係を有するモデル構造を示す図である。
【図３０】汎化関係での接続例を示す図である。
【符号の説明】
【０２５６】
１  モデル情報記憶手段
１ａ  モデル情報
２  帳票記憶手段
２ａ  帳票
３  マッピング定義記憶手段
３ａ  マッピング定義
４  帳票テンプレート記憶手段
４ａ  帳票テンプレート
５  データ変換手段
５ａ  帳票同期手段
５ｂ  モデル同期手段
【図１】
2008059367.tif 000003
【図２】
2008059367.tif 000004
【図３】
2008059367.tif 000005
【図４】
2008059367.tif 000006
【図５】
2008059367.tif 000007
【図６】
2008059367.tif 000008
【図７】
2008059367.tif 000009
【図８】
2008059367.tif 000010
【図９】
2008059367.tif 000011
【図１０】
2008059367.tif 000012
【図１１】
2008059367.tif 000013
【図１２】
2008059367.tif 000014
【図１３】
2008059367.tif 000015
【図１４】
2008059367.tif 000016
【図１５】
2008059367.tif 000017
【図１６】
2008059367.tif 000018
【図１７】
2008059367.tif 000019
【図１８】
2008059367.tif 000020
【図１９】
2008059367.tif 000021
【図２０】
2008059367.tif 000022
【図２１】
2008059367.tif 000023
【図２２】
2008059367.tif 000024
【図２３】
2008059367.tif 000025
【図２４】
2008059367.tif 000026
【図２５】
2008059367.tif 000027
【図２６】
2008059367.tif 000028
【図２７】
2008059367.tif 000029
【図２８】
2008059367.tif 000030
【図２９】
2008059367.tif 000031
【図３０】
2008059367.tif 000032