JP2008059367A - システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法 - Google Patents

システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法 Download PDF

Info

Publication number
JP2008059367A
JP2008059367A JP2006236719A JP2006236719A JP2008059367A JP 2008059367 A JP2008059367 A JP 2008059367A JP 2006236719 A JP2006236719 A JP 2006236719A JP 2006236719 A JP2006236719 A JP 2006236719A JP 2008059367 A JP2008059367 A JP 2008059367A
Authority
JP
Japan
Prior art keywords
model
attribute
synchronization
synchronization target
column
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006236719A
Other languages
English (en)
Inventor
Junji Shimaoka
順二 島岡
Masahiko Kamo
昌彦 加茂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006236719A priority Critical patent/JP2008059367A/ja
Priority to US11/650,692 priority patent/US20080126407A1/en
Publication of JP2008059367A publication Critical patent/JP2008059367A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • G06F8/355Round-trip engineering

Abstract

【課題】グラフ構造で管理されたモデル情報と帳票形式の設計書との間の相互変換を可能とする。
【解決手段】モデル情報1aから帳票2aへの同期要求が入力されると、帳票同期手段5aにより、同期対象モデル要素に設定された同期対象属性の属性値に応じた値が、同期対象モデル要素が関連付けられた行または列に並べられたセルに設定される。帳票2aからモデル情報1aへの同期要求が入力されると、モデル同期手段5bにより、行または列に設定された識別子に対応するモデル情報1a内の同期対象モデル要素に対して、行または列に並べられたセルに対応する同期対象属性の属性値が設定される。
【選択図】図1

Description

本発明は、コンピュータシステムで利用するデータを管理するためのシステムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法に関し、特にデータ間の関係を図で表現するためのモデル情報と利用されるデータをテーブルで表す帳票とを管理するためのシステムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法に関する。
最近のコンピュータのシステム開発では、開発の初期段階でシステムのモデル情報が定義される。モデル情報は、プログラム中で利用されるデータ間の関係を表したものである。たとえば、UML(Unified Modeling Language)を用いてモデル情報を作成することができる。UMLによって記述されたモデル情報は、データ間の関係を理解するのに有用である。
また、一般的には、モデル情報とは別に設計書が作成される。設計書には、多数定義されたデータ項目に対してどのようなデータを入力すべきかなどの情報が含まれる。多くの場合、システムを利用するユーザは、設計書を参照して、そのユーザがシステムを用いて遂行する業務に必要なデータが網羅されていることを確認する。
このように開発途中でモデル情報と設計書との双方を作成した場合、モデル情報の内容と設計書の内容との整合性を常に保つ必要がある。たとえば、モデル情報においてデータのクラスを追加した場合には、設計図にもそのクラスに対応するデータの内容が示される必要がある。ただし、モデル情報と設計書との間の整合性を人手によって保つのは非常に手間がかかる。また、人手に頼っていると作業ミスが発生し易く、モデル情報と設計書との整合性が保証できなくなってしまう。
そこで、モデル情報から設計書を作成する技術が考えられている。たとえば、UMLで記述された設計モデルを含む設計情報を解析して、テキストデータなどで記述された仕様書を作成する技術がある(例えば、特許文献1参照)。
特開2005−258561号公報
ところで、製品の設計などに使用されるモデリングツールは一般にモデル情報をグラフ構造として管理するが、モデル情報を閲覧あるいは編集する際は、表形式で扱うことで作業効率が向上する。たとえば、データモデルにおけるデータ項目の一覧や、GUI(Graphical User Interface)画面モデルにおける画面項目の一覧などを表形式で表示することで、設計上の漏れの有無を容易に確認できる。そのため、設計文書では、表形式の帳票を用いることが特に多い。
しかし、ユーザ固有の形式を持つ帳票とモデル情報とを自動的に同期するための機能を提供するモデリングツールは存在しない。そのため、モデル情報を帳票に転記する、あるいは帳票の内容を元にモデル情報を構築するという作業を、いずれもユーザが手作業で行っているのが現状である。このような場合、モデル情報と帳票とは別々に管理されるため、一方の修正をもう一方に反映するという作業も含め、設計書作成にかかる工数は莫大なものとなっている。
なお、上記特許文献1に示した技術では、作成される仕様書はテキストデータである。従って、当該技術を用いても、モデル情報から帳票形式の設計書を作成することはできない。
本発明はこのような点に鑑みてなされたものであり、グラフ構造で管理されたモデル情報と帳票形式の設計書との間の相互変換ができるシステムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなシステムデータ構造管理プログラムが提供される。本発明に係るシステムデータ構造管理プログラムは、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報1aと、利用されるデータをテーブルで表す帳票2aとを管理するために、図1に示す機能をコンピュータに実行させることができる。
モデル情報記憶手段1は、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報1aを記憶する。帳票記憶手段2は、テーブルの行と列との少なくともいずれか一方にモデル要素が関連付けられ、モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられたモデル要素に関する属性に応じた値が設定された帳票2aを記憶する。マッピング定義記憶手段3は、帳票2aと同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、帳票2aと同期させる属性を同期対象属性として定義する同期対象属性定義、および同期対象要素ごとの同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義3aを記憶する。帳票同期手段5aは、モデル情報1aから帳票2aへの同期要求が入力されると、同期対象要素定義に基づいて、モデル情報1aから同期対象モデル要素を抽出し、抽出した同期対象モデル要素をテーブル構造定義に従って帳票2a内の行または列に関連付け、関連付けた同期対象モデル要素の識別子を関連付けられた行または列に設定し、同期対象属性定義に基づいて、抽出した同期対象モデル要素に設定された同期対象属性の属性値を抽出し、抽出した同期対象属性の属性値に応じた値を、同期対象モデル要素が関連付けられた行または列に並べられたセルにテーブル構造定義に従って設定する。モデル同期手段5bは、帳票2aからモデル情報1aへの同期要求が入力されると、テーブル構造定義に基づいて帳票2a内の同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する同期対象属性をテーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する同期対象属性の属性値を判断し、行または列に設定された識別子に対応するモデル情報1a内の同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値を設定する。
このようなシステムデータ構造管理プログラムをコンピュータに実行させると、コンピュータにモデル情報1aから帳票2aへの同期要求が入力されると、帳票同期手段5aにより、モデル情報1aから抽出された同期対象モデル要素が帳票2a内の行または列に関連付けられる。次に、帳票同期手段5aにより、関連付けた同期対象モデル要素の識別子が関連付けられた行または列に設定される。さらに、帳票同期手段5aにより、抽出した同期対象モデル要素に設定された同期対象属性の属性値に応じた値が、同期対象モデル要素が関連付けられた行または列に並べられたセルに設定される。また、コンピュータに帳票2aからモデル情報1aへの同期要求が入力されると、モデル同期手段5bにより、帳票2a内の同期対象モデル要素が関連付けられた行または列が判断される。次に、モデル同期手段5bにより、該当する行または列に並べられたセルに対応する同期対象属性が判断される。さらに、モデル同期手段5bにより、セルに設定された値に基づいて対応する同期対象属性の属性値が判断される。そして、モデル同期手段5bにより、行または列に設定された識別子に対応する同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値が設定される。
また、本発明では上記課題を解決するために、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理装置において、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段と、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段と、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段と、を有することを特徴とするシステムデータ構造管理装置が提供される。
さらに、本発明では上記課題を解決するために、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とをコンピュータで管理するためのシステムデータ構造管理方法において、あらかじめ、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段とを用意し、帳票同期手段が、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定し、モデル同期手段が、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定する、ことを特徴とするシステムデータ構造管理方法が提供される。
本発明では、モデル情報と帳票との間の相互変換を行うためのマッピング定義を設け、マッピング定義に従って、モデル情報から帳票への反映、および帳票からモデル情報への反映を共に自動で行えるようにした。これにより、ユーザは、モデル情報と帳票とのうち、データ構造等の編集操作に都合の良い方を自由に選択して編集するだけで、その編集内容をモデル情報と帳票との双方に反映させることが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、発明の概要を示す図である。本発明は、コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報1aと、利用されるデータをテーブルで表す帳票2aとを管理するためものである。そのために、モデル情報記憶手段1、帳票記憶手段2、マッピング定義記憶手段3、帳票テンプレート記憶手段4、およびデータ変換手段5を有する。
モデル情報記憶手段1は、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報1aを記憶する。各モデル要素には、一意に識別可能な識別子が設定されている。
帳票記憶手段2は、帳票2aを記憶する。帳票2aには、テーブルの行と列との少なくともいずれか一方にモデル要素が関連付けられる。また、帳票2aにおいて、モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられたモデル要素に関する属性に応じた値が設定される。ここで、属性に応じた値とは、その属性の属性値の場合や、その属性の有無を示す記号の場合などがある。
帳票テンプレート記憶手段4は、帳票を作成するための雛形である帳票テンプレート4aを記憶する。
マッピング定義記憶手段3は、マッピング定義3aを記憶する。マッピング定義3aは、同期対象要素定義、同期対象属性定義、テーブル構造定義で構成される。同期対象要素定義は、帳票2aと同期させるモデル要素を同期対象モデル要素として定義するものである。同期対象属性定義は、帳票2aと同期させる属性を同期対象属性として定義するものである。テーブル構造定義は、同期対象属性定義、および同期対象要素ごとの同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたものである。
帳票同期手段5aは、モデル情報1aから帳票2aへの同期要求が入力されると、モデル情報1aの内容を帳票2aに反映させる。具体的には、帳票同期手段5aは、帳票2aの存在を確認する。帳票2aが無ければ、帳票同期手段5aは、帳票テンプレート4aを帳票記憶手段2にコピーし、コピーしたものを帳票2aとする。次に、同期対象要素定義に基づいて、モデル情報1aから同期対象モデル要素を抽出する。帳票同期手段5aは、抽出した同期対象モデル要素をテーブル構造定義に従って帳票2a内の行または列に関連付ける。さらに、帳票同期手段5aは、関連付けた同期対象モデル要素の識別子を関連付けられた行または列に設定する。帳票同期手段5aは、同期対象属性定義に基づいて、抽出した同期対象モデル要素に設定された同期対象属性の属性値を抽出する。そして、帳票同期手段5aは、抽出した同期対象属性の属性値に応じた値を、同期対象モデル要素が関連付けられた行または列に並べられたセルにテーブル構造定義に従って設定する。
モデル同期手段5bは、帳票2aからモデル情報1aへの同期要求が入力されると、テーブル構造定義に基づいて帳票2a内の同期対象モデル要素が関連付けられた行または列を判断する。次に、モデル同期手段5bは、該当する行または列に並べられたセルに対応する同期対象属性をテーブル構造定義に基づいて判断する、さらに、モデル同期手段5bは、セルに設定された値に基づいて対応する同期対象属性の属性値を判断し、行または列に設定された識別子に対応するモデル情報1a内の同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値を設定する。
このような構成によれば、モデル情報1aから帳票2aへの同期要求が入力されると、帳票同期手段5aにより、モデル情報1aから抽出された同期対象モデル要素が帳票2a内の行または列に関連付けられる。次に、帳票同期手段5aにより、関連付けた同期対象モデル要素の識別子が関連付けられた行または列に設定される。さらに、帳票同期手段5aにより、抽出した同期対象モデル要素に設定された同期対象属性の属性値に応じた値が、同期対象モデル要素が関連付けられた行または列に並べられたセルに設定される。
また、帳票2aからモデル情報1aへの同期要求が入力されると、モデル同期手段5bにより、帳票2a内の同期対象モデル要素が関連付けられた行または列が判断される。次に、モデル同期手段5bにより、該当する行または列に並べられたセルに対応する同期対象属性が判断される。さらに、モデル同期手段5bにより、セルに設定された値に基づいて対応する同期対象属性の属性値が判断される。そして、モデル同期手段5bにより、行または列に設定された識別子に対応する同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する同期対象属性の属性値が設定される。
このようにして、モデル情報1aの内容を帳票2aに反映させること、および帳票2aの内容をモデル情報1aに反映させることが可能となる。その結果、ユーザは、モデル情報と帳票とのうち、データ構造等の編集操作に都合の良い方を自由に選択して編集するだけでよくなる。しかも、モデル情報1aと帳票2aとの不整合の発生も抑制できる。
[第1の実施の形態]
次に、本実施の形態の詳細を説明する。なお、以下の説明において、モデル情報に加えられた変更内容を帳票へ反映させること、および帳票に加えられた変更内容をモデル情報へ反映させることを、「同期」と呼ぶこととする。また、各種アプリケーションプログラムをコンピュータが実行することで実現される機能を「アプリケーション」と呼ぶこととする。
図2は、本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図3は、本実施の形態の機能を示すブロック図である。本実施の形態では、コンピュータ100内にモデル情報記憶部110、帳票記憶部120、マッピング定義記憶部130、帳票テンプレート記憶部140、データ変換部150、モデリングツール161、モデリングツールインタフェース162、帳票アプリケーション171、帳票アプリケーションインタフェース172、およびXMLエディタ181が設けられている。
モデル情報記憶部110は、モデル情報111,112,113,・・・を記憶するための記憶装置である。たとえば、HDD103の記憶領域の一部がモデル情報記憶部110として使用される。モデル情報111,112,113,・・・は、開発対象のシステムに使用するデータの構造をUMLによってモデル化したものである。
帳票記憶部120は、帳票121,122,123,・・・を記憶するための記憶装置である。たとえば、HDD103の記憶領域の一部が帳票記憶部120として使用される。帳票121,122,123,・・・は、開発対象のシステムに使用するデータの一覧を帳票形式で示したものである。
マッピング定義記憶部130は、マッピング定義131,132,133,・・・を記憶するための記憶装置である。たとえば、HDD103の記憶領域の一部がマッピング定義記憶部130として使用される。マッピング定義131,132,133,・・・は、モデル情報111,112,113,・・・の各要素あるいはその属性値と、帳票121,122,123,・・・の各構成要素がどのように対応するのか、および帳票テンプレート141,142,143,・・・がどのように使用されるのかをXML(eXtensible Markup Language)文書形式で記述したものである。
帳票テンプレート記憶部140は、帳票テンプレート141,142,143,・・・を記憶するための記憶装置である。たとえば、HDD103の記憶領域の一部が帳票テンプレート記憶部140として使用される。帳票テンプレート141,142,143,・・・は、ユーザがモデル情報111,112,113,・・・と同期させる帳票の形式を定義するものとして作成した帳票形式のファイルである。
データ変換部150は、モデル情報111,112,113,・・・と帳票121,122,123,・・・との同期処理を行う。データ変換部150の処理機能は、帳票同期部151とモデル同期部152とに分けられる。帳票同期部151は、モデル情報111,112,113,・・・に対して帳票121,122,123,・・・を同期させる。モデル同期部152は、帳票121,122,123,・・・に対してモデル情報111,112,113,・・・を同期させる。
モデリングツール161は、ユーザの操作入力に応答してUML形式のモデル情報111,112,113,・・・を作成するためのアプリケーションである。モデリングツール161は、作成したモデル情報111,112,113,・・・をモデル情報記憶部110に格納する。
モデリングツールインタフェース162は、モデリングツール161で作成されたモデル情報111,112,113,・・・からの情報の取り出しやモデル情報111,112,113,・・・の操作を行うためのAPI(Application Program Interface)である。
帳票アプリケーション171は、ユーザの操作入力に応答して帳票121,122,123,・・・を作成するためのアプリケーションである。たとえば、表計算用のアプリケーションが帳票アプリケーション171として使用できる。帳票アプリケーション171は、作成した帳票121,122,123,・・・を帳票記憶部120に格納する。なお、本実施の形態では、帳票アプリケーション171を用いて帳票テンプレート141,142,143,・・・を作成する。すなわち、帳票アプリケーション171は、ユーザからの操作入力に応答して帳票テンプレート141,142,143,・・・を作成する。そして、帳票アプリケーション171は、作成した帳票テンプレート141,142,143,・・・を帳票テンプレート記憶部140に格納する。
なお、帳票アプリケーション171で作成されるファイルは、ブックと呼ばれる。ブックは、複数のワークシートを含むことができる。ワークシートには、行と列とからなる帳票形式でデータが登録される。ブック、ワークシート、行、および列には、それぞれプロパティを設定できる。本実施の形態では、帳票テンプレート141,142,143,・・・と帳票121,122,123,・・・とがブック内に作成される。
帳票アプリケーションインタフェース172は、帳票アプリケーション171で作成された帳票121,122,123,・・・からの情報の取り出しや、帳票121,122,123,・・・の操作を行うためのAPIである。
XMLエディタ181は、ユーザの操作入力に応答してXML形式のマッピング定義131,132,133,・・・を作成するアプリケーションである。XMLエディタ181は、XML文書の作成に便利な機能を有している。なお、XML文書はテキストエディタでも作成できるため、一般的なテキストエディタでマッピング定義131,132,133,・・・を作成することもできる。XMLエディタ181は、作成したマッピング定義131,132,133,・・・をマッピング定義記憶部130に格納する。
ユーザはデータ変換部150に対して、「モデルから帳票への同期」あるいは「帳票からモデルへの同期」のいずれかを指示することで、モデル情報と帳票との同期を行わせることができる。なお、「モデルから帳票への同期」については、モデル情報内の任意のモデル要素(起点)、マッピング定義、帳票テンプレート、および帳票格納ディレクトリを指定する必要がある。ただし、帳票テンプレートの指定は、ワークシートを新規に作成する場合にのみ必要となる。また、「帳票からモデルへの同期」については、モデル情報内の任意のモデル要素(起点)、マッピング定義、および帳票格納ディレクトリを指定する必要がある。
データ変換部150の帳票同期部151またはモデル同期部152は、指定されたモデル要素を含むモデル情報と指定された帳票格納ディレクトリを含む帳票の構造を比較する。帳票の各構成要素とモデル情報に含まれるどのモデル要素とを比較すべきかについてはマッピング定義の記述(帳票の各階層に対応するモデル要素の抽出条件)に従って決定される。
「モデルから帳票への同期」が指示された場合は、帳票同期部151により、帳票の構造のうち余分なものは削除され、不足しているものは作成される。作成の仕方(帳票のファイル名など)はマッピング定義の記述に従って決定され、作成された帳票構造には対応するモデル要素の識別子が埋め込まれる。また、属性値の対応関係については、モデルから帳票への転記が行われる。
「帳票からモデルへの同期」が指示された場合は、モデル同期部152により、帳票の構造に対応するモデル要素のうち余分なものは削除され、不足しているものは作成される。作成の仕方(モデル要素の種別など)はマッピング定義の記述に従って決定され、作成されたモデル要素に対応する帳票構造にはそのモデル要素の識別子が埋め込まれる。また、属性の対応関係については、帳票からモデル要素への転記が行われる。
次に、各記憶部に格納されるデータについて説明する。
図4は、モデル情報の例を示す図である。モデル情報111は、モデリングツール161の作図機能あるいはその他の編集機能によって構築されるものである。
図中の四角形はそれぞれモデル要素111a〜111kを表す。モデル要素111a〜111kの内部の文字列のうち括弧内はモデル要素111a〜111kの種別を表し、括弧外はモデル要素111a〜111kの名前(正確には“name”属性の値)を表す。たとえば、モデル要素111aの内部には、「m1(Model)」と標記されている。これは、“Model”という種別の“m1”という名前を持つ(“name”属性の値が“m1”である)モデル要素であることを示している。
また、図4には示していないが、モデル要素111a〜111kには、それぞれを一意に識別するためのIDが付与されている。このIDは、モデリングツール161によってモデル要素を作成するときに付与される。
2つのモデル要素間を接続する矢印はモデル要素間の参照関係およびその方向を表している。矢印の近傍に記されている文字列は、その名前を持つ属性によって元のモデル要素が先のモデル要素を参照していることを表す。たとえば、名前が“m1”のモデル要素111aは“nestadPackage”という名前の属性を持っており、それによって名前が“p1”のモデル要素111bと名前が“p2”のモデル要素111cとを参照している。図4に示されている以外にも、各モデル要素111a〜111kは各属性を持っている(属性の組み合わせはモデルの種類によって異なる)が、ここでは割愛する。
次に、図4に示したモデル情報111から帳票121,122,123,・・・を作成するための帳票テンプレート141,142,143,・・・について説明する。
図5は、帳票テンプレートの例を示す図である。帳票テンプレート141は、ユーザがモデル情報111と同期を行う帳票121,122,123,・・・の形式を定義するものとして帳票アプリケーション171によって作成されたブック内の1つのワークシートである。なお、帳票テンプレート141のA〜Gで示された列が、それぞれ第1列〜第7列を示している。
図5には、データの属性のリスト(attribute list)を表す帳票121,122,123,・・・を作成するための帳票テンプレート141が示されている。第1行第1列のセルには、作成される帳票121,122,123,・・・の名称が設定されている。第1行第2列のセルには“project”と設定されている。これは、右隣のセルの内容が、プロジェクト名であることを示すものである。第1行第3列には、“MyProject”というプロジェクト名が設定されている。第1行第4列のセルには“Author”と設定されている。これは、右隣のセルの内容が、作者名であることを示している。第1行第5列セルは、作者名を設定するための領域である。第1行第6列のセルには“Date”と設定されている。これは、右隣のセルの内容が、作成日付であることを示すものである。第1行第7列のセルは、作成日付を設定するための領域である。
第3行第1列のセルには“class name”と設定されている。これは、右隣のセルの内容が、クラス名であることを示すものである。第3行第2列のセルは、クラス名を設定するための領域である。
第5行第1列のセルには、“attribute name”と設定されている。これは、第6行以降の全ての行の第1列のセルに、データの属性名が設定されることを示すものである。第5行の第2列〜第7列のセルには、第1列で示される属性名のデータに関する情報の項目名が設定されている。第6行以降の各行の第2列〜第7列には、第5行の同一の列に設定された項目名に該当する各データの値を設定するための領域である。
なお、この帳票テンプレート141は、帳票121,122,123,・・・の形式が変わらない限り変更されない。また、第6と第7行目には、罫線のみが設定されている。第6行の罫線は、作成される帳票121,122,123,・・・の最終行以外の各行(第6行以降に限る)に設定される罫線を示している。第7行の罫線は、作成される帳票121,122,123,・・・の最終行に設定される罫線を示している。帳票121,122,123,・・・の最終行以外に行を挿入する場合、第6行の罫線を含めた複写が行われる。
次に、モデル情報111に定義された情報を、帳票テンプレート141に反映させるためのマッピング定義131について説明する。
図6は、マッピング定義の例を示す図である。マッピング定義131には、モデル情報の各要素あるいはその属性値と、帳票121,122,123,・・・の各構成要素がどのように対応するのか、および帳票テンプレート141がどのように使用されるのかが記述されている。本実施の形態では、XML文書としてマッピング定義131が作成されている。
このマッピング定義131はモデル情報と帳票との対応の仕方が変更されず、かつ帳票テンプレートが変更されない限り変更されない。本実施の形態におけるマッピング定義131について以下に説明する。
Book要素(第3行)は、モデル情報111のうち同期処理の起点として指定されたモデル要素から、帳票に対応するモデル要素をどのように抽出するかを指定している。なお、帳票121,122,123,・・・を格納するディレクトリ(帳票格納ディレクトリ)は、起点のモデル要素に対応付けられる。なお、起点のモデル要素と帳票格納ディレクトリとは、同期処理開始前にユーザによって指定される。
第3行では、起点のモデル要素111aの属性“nestedPackage”によって参照される0個以上のモデル要素がそれぞれ帳票に対応することが指定されている(property=”nestedPackage”の部分)。また、帳票の追加(帳票格納ディレクトリへの新たな帳票の格納)によってモデル情報111側に追加されるモデル要素の種類はPackageであることが指定されている(propertyKind=”Package”の部分)。
FileName要素(第18行)は、同期処理の際に作成される帳票のファイル名を指定している。第18行では、帳票に対応するモデル要素の“name”属性の値をファイル名としてファイルを作成することが指定されている。この際、拡張子は所定の文字列である(たとえば、帳票アプリケーション171が米マイクロソフト社のMicrosoft Excel(登録商標)であれば、拡張子は“.xls”)。
Sheet要素(第4行)は、上記Book要素によって抽出された(帳票に対応する)モデル要素から、ワークシートに対応するモデル要素をどのように抽出するかを指定している。第4行では、帳票に対応するモデル要素の属性“ownedMember”によって参照される0個以上のモデル要素がそれぞれワークシートに対応することが指定されている(property=”ownedMember”の部分)。また、ワークシートの追加によってモデル情報側に追加されるモデル要素の種類はClassであり(propertyKind="Class"の部分)、帳票テンプレートとして使用するのは、帳票テンプレートとして与えられるブックから“attr_list”というシート名を持つものであることが指定されている(templateSheetName="attr_list"の部分)。
SheetName要素(第16行)は、同期処理の際に作成されるワークシートの名前を指定している。第16行では、ワークシートに対応するモデル要素の“name”属性の値からシート名を作成することが指定されている。
Cell要素(第5行)は、上記Sheet要素によって抽出されたワークシートに対応するモデル要素のどの属性値がワークシートのどの場所に対応するかを指定している。第5行では、ワークシートに対応するモデル要素の“name”属性の値が、Excelワークシートの第3行第2列の場所に対応することが指定されている(property="name" templateCol="2" templateRow="3"の部分)。
Table要素(第6〜7行)は、上記Sheet要素によって抽出された(ワークシートに対応する)モデル要素から、ワークシート内の一覧表の各行に対応するモデル要素をどのように抽出するかを指定している。第6〜7行では、ワークシートに対応するモデル要素の属性“ownedAttribute”によって参照される0個以上のモデル要素がそれぞれ一覧表の行に対応することが指定されている(property="ownedAttribute"の部分)。また、行の追加によってモデル情報111側に追加されるモデル要素の種類はPropertyであり(propertyKind=”Property”の部分)、テーブルはワークシート内の第6行第1列から開始することが指定されている(templateCol="1" templateRow="6"の部分)。
Column要素(第8〜14行)は、Table要素によって抽出された(一覧表の行に対応する)モデル要素のどの属性値がどの列に対応するかを指定している。第8行は、Table要素の第1の子要素であるため一覧表の開始列(Table要素のtemplateCol属性に指定された列)に相当する。そのため、第8行では、一覧表の第1列が“name”属性に対応することが指定されている。以下、第9行から第14行も第8行と同様に、それぞれ一覧表の第2列から第7列に対応する属性が示されている。
以上のような構成によって、モデル情報111,112,113,・・・と帳票121,122,123,・・・との間のデータ変換が行われる。データ変換は、モデル情報111,112,113,・・・に帳票121,122,123,・・・を同期させる場合と、帳票121,122,123,・・・にモデル情報111,112,113を同期させる場合とがある。以下、それぞれの場合について、データ変換部150で行われる処理を説明する。
なお、第1の実施の形態では、モデル情報111,112,113,・・・において、指定された起点のモデル要素から所定の属性で参照されるモデル要素に対応付けてブックを作成する。そこで、ブックに対応するモデル要素を「ブック対応要素」と呼ぶこととする。
また、ブック対応要素から所定の属性で参照されるモデル要素に対応付けて、ブック内のワークシートを作成する。そこで、ワークシートに対応するモデル要素を「シート要素」と呼ぶこととする。
さらに、ワークシートから所定の属性で参照されるモデル要素をテーブル内の行に関連付ける。そこで、行に関連付けるモデル要素を「行対応要素」と呼ぶこととする。
<モデル情報から帳票への同期処理>
まず、モデル情報111から帳票121,122,123,・・・への同期処理の概略を説明する。同期させるときの態様としては、モデル情報111に基づいて帳票121を新たに作成する場合と、モデル情報111に対して行われた変更を既存の帳票121に反映する場合とがある。そこで、まず、図4〜図6に示したモデル情報111、帳票テンプレート141、およびマッピング定義131に基づいて、帳票121を新規に作成する場合の具体的な処理の流れを説明する。
ユーザは、データ変換部150に、モデル情報111内の“m1”のモデル要素111a(図4参照)、帳票テンプレート141、マッピング定義131、および帳票の出力先として空のディレクトリを指定する操作入力を行う。さらにユーザは、データ変換部150に対して、モデルから帳票への同期を指示する。
すると、データ変換部150内の帳票同期部151は、マッピング定義131のBook要素の記述に従い、指定された“m1”のモデル要素111aから“nestedPackage”属性で参照される“p1“および“p2”のモデル要素111b,111cをブックに対応する要素として抽出する。次に、帳票同期部151は、それぞれFileName要素の記述に従い、ブック“p1.xls”と“p2.xls”を作成する。以下、ブック“p1.xls”に対する処理を例に採り、同期処理の詳細を説明する。
さらに帳票同期部151は、上記マッピング定義のSheet要素の記述に従い、ブックに対応する“p1”のモデル要素111bから“ownedMember”属性で参照される“c1”および“c2”のモデル要素111d,111eをワークシートに対応する要素として抽出する。次に、帳票同期部151は、SheetName要素の記述に従い、ブック“p1.xls”にシート名が“c1”および“c2”の2つのワークシートを作成する。なお、これらのワークシートは帳票テンプレート141に含まれるシート名が“attr_list”のワークシートをコピーすることで作成される。
さらに帳票同期部151は、上記マッピング定義のTable要素の記述に従い、ワークシートに対応する“c1”のモデル要素111dから“ownedAttribute”属性で参照される“a11”および“a12”のモデル要素111g,111hを一覧表の各行に対応する要素として抽出する。そして、帳票同期部151は、第6行第1列を開始点とし、Column要素の記述に従って、第6行第1列に“a11”の“name”属性の値を、以下最後のColumn要素まで同様にそれぞれの列にそれぞれの属性の値を設定する。“a12”のモデル要素については第7行に対して同様の処理が行われる。
以上により、“p1”のモデル要素111bに対応する帳票121が作成される。同様にして、“p2”のモデル要素111cに対応する帳票も作成される。
図7は、表示された帳票を示す図である。この帳票121は、“p1”のモデル要素111bをブック対応要素として作成されたものである。帳票121には、ワークシートごとのタブ121a,121bが設けられている。タブ121aは、“c1”のモデル要素111dをシート対応要素として作成されたワークシートに対応する。タブ121bは、“c2”のモデル要素111eをシート対応要素として作成されたワークシートに対応する。操作入力によって選択されたタブに対応するワークシートが画面に表示される。図7の例では、タブ121aが選択されている。
表示されているワークシートには、モデル要素111dから“ownedMember”要素で参照されるモデル要素111g,111hに設定されている内容が、それぞれ第6行と第7行とに設定されている。
なお、画面表示はされていないが、帳票121を格納するブック、各ワークシート、ワークシート内のテーブルの各行(第6行以降)には、それぞれプロパティが設けられている。そのプロパティには、対応するモデル要素のIDが設定されている。このIDによって、モデル情報側のモデル要素を一意に特定することができる。
このようにして作成された帳票121は、モデル情報111に同期させることで、モデル情報111に加えられた変更を反映させることができる。
モデル情報111側の変更を既存の帳票121に反映する場合、ユーザは、データ変換部150に、モデル情報111内の“m1”のモデル要素111a(図4参照)、帳票テンプレート141、マッピング定義131、および帳票の出力先として帳票121が含まれるディレクトリを指定する操作入力を行う。さらにユーザは、データ変換部150に対して、モデルから帳票への同期を指示する。
すると、データ変換部150内の帳票同期部151は、マッピング定義131に従って帳票121の各構成要素(ブック、ワークシート、一覧表の行)に対応するモデル要素を抽出し、ディレクトリに含まれる現在の帳票の構造と比較し、差分を帳票に対して反映する。すなわち、帳票同期部151は、ブックに対応するとして抽出されたモデル要素(群)と出力先として指定されたディレクトリに存在するブック(群)との対応関係を比較し、不足しているブックは新規に作成し、余分なブックは削除する。その下位の構造についても同様に、帳票同期部151は、ワークシートに対応するとして抽出されたモデル要素(群)とその親に対応するブックに含まれるワークシートとの対応関係の比較および帳票側の過不足の修正、一覧表の行に対応するとして抽出されたモデル要素(群)とその親に対応するワークシートに含まれる一覧表の行との対応関係の比較および帳票側の過不足の修正が行われる。同時に、帳票同期部151は、対応関係にあるモデル要素と帳票の構成要素間で前者から後者への(マッピング定義にしたがった)属性値の転記も行われる。
以上により、モデル情報の変更は既存の帳票に反映される。
なお、モデル情報111から帳票への同期において、新たに帳票を作成する処理と、モデル情報111の変更内容を帳票に反映させる処理とは、共通の処理手順で実現できる。
次に、図4〜図6に示した情報を利用し、図3に示した機能における各同期処理の詳細な手順について説明する。
図8は、モデル情報から帳票に反映する処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS11]帳票同期部151は、起点とするモデル要素、帳票テンプレート、マッピング定義、および帳票格納ディレクトリを指定するユーザからの操作入力を受け付ける。ここで、図3に示すモデル情報111中のモデル要素111a(図4参照)、帳票テンプレート141、マッピング定義131、および帳票121,122,123,・・・が格納されている帳票格納ディレクトリが指定されたものとする。
[ステップS12]帳票同期部151は、モデル要素から帳票格納ディレクトリへの同期処理を実行する。この処理の詳細は、図9を参照して説明する。
図9は、モデル要素から帳票格納ディレクトリへの同期処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS21]帳票同期部151は、指定されたモデル要素111aから、マッピング定義131のBook要素のproperty属性に指定される属性(モデル要素の集合)で参照されるモデル要素111b,111cを取得する。ここで、取得されたそれぞれのモデル要素111b,111cがブック対応要素となる。
[ステップS22]帳票同期部151は、ステップS21で抽出されたブック対応要素ごとに、ステップS23〜ステップS25の処理を実行する。
[ステップS23]帳票同期部151は、ブック対応要素に対応するブックが存在する否かを判断する。具体的には、帳票同期部151は、ブック対応要素のIDをプロパティとして設定されたブックが帳票格納ディレクトリ内にあるか否かを判断する。ブック対応要素に対応するブックが存在すれば、処理がステップS25に進められる。ブック対応要素に対応するブックが存在しなければ、処理がステップS24に進められる。
[ステップS24]帳票同期部151は、ブック対応要素に対応するブックを、帳票格納ディレクトリ内に作成する。具体的には、マッピング定義のFileName要素のproperty属性に指定された属性の文字列(属性が“name”であれば、ブック対応要素の名前)をブック対応要素から取得し、その値をファイル名としたブックが作成される。この際、帳票同期部151は、作成したブックのプロパティに、ブック対応要素のIDを設定する。
[ステップS25]帳票同期部151は、ブック対応要素からブックへの同期処理を行う。この処理の詳細は後述する(図10参照)。
[ステップS26]帳票同期部151は、ステップS21で取得された全てのブック対応要素に対してステップS23〜ステップS25の処理が終わると、処理をステップS27に進める。
[ステップS27]帳票同期部151は、不要なブックを削除する。具体的には、帳票同期部151は、帳票格納ディレクトリ内に存在するブックのうち、プロパティにブック対応要素のIDを持ち、かつステップS21で抽出されたブック対応要素に対応しないものを削除する。
このようにして、ブック対応要素に対応するブックを作成すると共に、不要なブックを削除できる。
次に、ブック対応要素からブックへの同期処理について説明する。
図10は、ブック対応要素からブックへの同期処理を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS31]帳票同期部151は、ブック対応要素から参照されるシート対応要素を取得する。具体的には、帳票同期部151は、マッピング定義131のsheet要素のproperty属性に指定される属性によって、ブック対応要素から参照されるモデル要素の集合をモデル情報111から取得する。ここで、取得されたモデル要素がシート対応要素となる。
[ステップS32]帳票同期部151は、抽出されたシート対応要素ごとにステップS33〜ステップS35の処理を行う。
[ステップS33]帳票同期部151は、シート対応要素に対応するワークシートが存在するか否かを判断する。具体的には、帳票同期部151は、シート対応要素のIDをプロパティとして持つワークシートがブック内に存在するか否かを判断する。シート対応要素の対応するワークシートが存在する場合、処理がステップS35に進められる。シート対応要素に対応するワークシートが存在しない場合、処理がステップS34に進められる。
[ステップS34]帳票同期部151は、シート対応要素に対応するワークシートをブック内に作成する。具体的には、帳票同期部151は、帳票テンプレート141内のワークシートのうち、マッピング定義のSheet要素のtemplateSheetName属性に指定されたシート名を有するものを帳票121のブックにコピーする。
[ステップS35]帳票同期部151は、シート対応要素からワークシートへの同期処理を行う。この処理の詳細は後述する(図11参照)。
[ステップS36]帳票同期部151は、ステップS31で取得された全てのシート対応要素に対してステップS33〜ステップS35の処理が終了すると、処理をステップS37に進める。
[ステップS37]帳票同期部151は、ブック内の不要なワークシートを削除する。具体的には、帳票同期部151は、ブックに含まれるワークシートのうち、プロパティにシート対応要素のIDを持ち、かつ抽出されたシート対応要素に対応しないものを削除する。さらに、帳票同期部151は、抽出されてシート対応要素の順に合わせてワークシートをソートする。これにより、シート対応要素の抽出順に従う位置に、ステップS34で作成されたワークシートの位置が変更される。
このようにして、ブック対応要素からブックへの同期処理が行われる。
次に、シート対応要素からワークシートへの同期処理について説明する。
図11は、シート対応要素からワークシートへの同期処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS41]帳票同期部151は、マッピング定義のCell要素ごとに、ステップS42の処理を実行する。
[ステップS42]帳票同期部151は、ワークシート内のセルに値を設定する。具体的には、帳票同期部151は、Cell要素のtemplateCol属性およびtemplateRow属性に設定されている列および行で特定されるセルに対し、当該Cell要素のproperty属性に指定されている文字列を設定する。
[ステップS43]帳票同期部151は、全てのCell要素に対してステップS42の処理が終了したら処理をステップS44に進める。
[ステップS44]帳票同期部151は、テーブルの開始位置を特定し、行対応要素を抽出する。具体的には、帳票同期部151は、マッピング定義のTable要素のtemplateCol属性およびtemplateRow属性に指定される列および行で特定されるセルをテーブルの開始位置とする。また、帳票同期部151は、モデル情報111内のシート対応要素から、Table要素のproperty属性に指定されている属性で参照されているモデル要素の集合を、モデル情報111から取得する。ここで、取得されたそれぞれのモデル要素が行対応要素となる。
[ステップS45]帳票同期部151は、ステップS44で抽出された行対応要素ごとに、ステップS46〜ステップS51の処理を実行する。
[ステップS46]帳票同期部151は、行対応要素に対応する行があるか否かを判断する。具体的には、帳票同期部151は、行対応要素のIDをプロパティとして持つ行が現在のワークシートのテーブル内に存在するか否かを判断する。行対応要素に対応する行があれば、処理がステップS48に進められる。行対応要素に対応する行がなければ、処理がステップS47に進められる。
[ステップS47]帳票同期部151は、行対応要素に対応する行を作成する。具体的には、帳票同期部151は、テーブルに行を追加し(たとえば、テーブルの最終行に行を追加する)、行対応要素のIDをその行のプロパティとして設定する。
[ステップS48]帳票同期部151は、マッピング定義のColumn要素ごとに、ステップS49の処理を行う。
[ステップS49]帳票同期部151は、テーブル内のセル値を設定する。具体的には、帳票同期部151は、行対応要素に対応する行、および処理対象のColumn要素に対応する列でセルを特定する。ここで、処理対象のColumn要素に対応する列は、「テーブルの開始列+処理対象のColumn要素以前(マッピング定義131の記載が上位)の他のColumn要素の個数」で示される列番の列である。帳票同期部151は、特定したセルに対して、処理対象のColumn要素のproperty属性に指定されている文字列を設定する。
[ステップS50]帳票同期部151は、全てのColumn要素に対するステップS49の処理が終了すると、処理をステップS51に進める。
[ステップS51]帳票同期部151は、全ての行対応要素に対するステップS46〜ステップS50の処理が終了すると、処理をステップS52に進める。
[ステップS52]帳票同期部151は、不要な行を削除する。具体的には、ワークシートに含まれる行のうち、プロパティに行対応要素のIDを持ち、かつ抽出されたいずれの行対応要素にも対応しない行を削除する。その後、帳票同期部151は、抽出された行対応要素の順に合わせて行をソートする。
以上のようにして、モデル情報111,112,113,・・・に対して帳票121,122,123,・・・を同期させることができる。この際、必要な帳票が存在していなければ新規に作成され、必要な帳票が存在すれば、その内容がモデル情報111,112,113,・・・の内容に合わせて更新される。
<帳票からモデル情報への同期処理>
次に、帳票からモデル情報への同期処理について説明する。同期させるときの態様としては、帳票121,122,123,・・・に基づいてモデル要素を新たに作成する場合と、帳票121,122,123,・・・に対して行われた変更を既存のモデル情報111に反映する場合とがある。
そこで、まず、図6に示したマッピング定義131、およびモデル要素111b,111cそれぞれに対応する帳票121,122(それぞれのファイル名が“p1.xls”、“p2.xls”であるものとする)に基づいて、モデル情報111を新規に作成する場合の具体的な処理の流れを説明する。ここで、帳票121の内容は図7に示す通りである。なお、モデル情報111にはモデル要素111aのみが存在するものとし、その状況から図4に示した通りのモデル情報111が生成される過程を説明する。
ユーザは、データ変換部150に、帳票121(ブック)が含まれた帳票格納ディレクトリ、マッピング定義131、およびモデル要素の出力先としてモデル情報111内の空のモデル要素(参照先のモデル要素を持たないもの、この例ではモデル要素111a)を指定する操作入力を行う。さらに、ユーザは、データ変換部150に対して、帳票からモデルへの同期を指示する。
すると、データ変換部150内のモデル同期部152は、マッピング定義131のBook要素の記述に従い、指定されたディレクトリに含まれるブックに対応するモデル要素111b,111c(種別は“Package”)を作成する。そして、モデル同期部152は、作成したモデル要素111b,111cを、指定されたモデル要素111aの“nestedPackage”属性である参照の集合に追加する。また、モデル同期部152は、ブックのファイル名(拡張子を除く)をPackage要素(モデル要素111b,111c)の“name”属性に設定する。
さらに、モデル同期部152は、マッピング定義131のSheet要素の記述に従い、ブックに含まれるワークシートに対応するモデル要素111d〜111f(種別は“Class”)を作成する。次に、モデル同期部152は、作成したモデル要素111d〜111fを、ブックに対応するモデル要素111b,111c(上記で作成されたPackage)の“ownedMember”属性である参照の集合に追加する。また、モデル同期部152は、マッピング定義131のCell要素の記述に従い、作成したClass要素に対してワークシートの第3行第2列の値を、モデル要素111d〜111fの“name”属性に設定する。
さらに、モデル同期部152は、マッピング定義131のTable要素の記述に従い、ワークシートに含まれる一覧表の各行に対応するモデル要素111g〜111k(種別はProperty)を作成する。そして、モデル同期部152は、作成したモデル要素111g〜111kを、ワークシートに対応するモデル要素111d〜111f(上記で作成されたClass)の“ownedAttribute”属性である参照の集合に追加する。また、モデル同期部152は、マッピング定義131のColumn要素の記述に従い、作成したownedAttribute要素(モデル要素111g〜111k)に対して対応する行の第1列の値を当要素の“name”属性に設定する。以降、モデル同期部152は、その他のすべてのColumn要素についても同様の処理を行う。
以上により、帳票に対応するモデル情報が作成される。なお、上記の処理によって入力される帳票121,122の各構成要素(ブック、ワークシート、一覧表の行)はいずれも、モデル情報111側の要素との比較のために、対応するモデル要素を一意に特定するための識別子(ID)が新たに設定あるいは維持される。
次に、帳票121,122の変更を既存のモデルに反映する場合について説明する。この場合、ユーザは、データ変換部150に、帳票(ブック)が含まれたディレクトリ、マッピング定義131、およびモデル要素の出力先として帳票格納ディレクトリに対応するモデル要素111aを指定する操作入力を行う。さらに、ユーザは、データ変換部150に対し、帳票からモデル情報への同期を指示する。
すると、データ変換部150のモデル同期部152は、マッピング定義131に従って帳票121,122の各構成要素(ブック、ワークシート、一覧表の行)に対応するモデル要素を抽出し、ディレクトリに含まれる現在の帳票の構造との比較、およびそれによって抽出された差分のモデルに対する反映を行う。すなわち、モデル情報から帳票への同期処理と同様に帳票121,122とモデル情報111との比較が行われる。比較によって抽出された差分は、モデル情報111側に反映される。反映される情報のうち、モデル要素の新規作成は、モデル情報111の新規作成の処理と同様である。
以上より、帳票の変更が既存のモデルに反映される。なお、帳票からモデル情報の同期処理において、新たにモデル情報111を作成する処理と、帳票への変更内容をモデル情報111に反映させる処理とは、共通の処理手順で実現できる。
次に、帳票からモデル情報の同期処理の詳細について説明する。
図12は、帳票からモデル情報に反映する処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS61]モデル同期部152は、起点とするモデル要素、マッピング定義、および帳票格納ディレクトリを指定するユーザからの操作入力を受け付ける。ここで、図3に示すモデル情報111中のモデル要素111a(図4参照)、マッピング定義131、および帳票121,122,123,・・・が格納されている帳票格納ディレクトリが指定されたものとする。
[ステップS62]モデル同期部152は、帳票格納ディレクトリからモデル要素への同期処理を実行する。この処理の詳細は、図13を参照して説明する。
図13は、帳票格納ディレクトリからモデル要素への同期処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS71]モデル同期部152は、帳票格納ディレクトリに含まれるブックごとに、ステップS72〜ステップS75の処理を実行する。
[ステップS72]モデル同期部152は、ブックに対応するブック対応要素が存在する否かを判断する。具体的には、モデル同期部152は、ブックのプロパティにブック対応要素のIDが設定されており、かつそのIDをもつモデル要素がモデル情報111に含まれていることを確認する。さらに、モデル同期部152は、マッピング定義131のBook要素のproperty属性で指定されている属性によって、起点として指定されたモデル要素から、IDに対応するモデル要素が参照されていることを確認する。これらの条件が満たされていれば、モデル同期部152は、ブックのIDに対応するモデル要素を、ブック対応要素と判断する。ブックに対応するブック対応要素が存在すれば、処理がステップS74に進められる。ブックに対応するブック対応要素が存在しなければ、処理がステップS73に進められる。
[ステップS73]モデル同期部152は、ブックに対応するブック対応要素を、モデル情報111内に作成する。具体的には、モデル同期部152は、起点のモデル要素から、マッピング定義131のBook要素のproperty属性で指定されている属性によって参照されるモデル要素を生成し、モデル情報111に追加する。このモデル要素は、現在処理対象となっているブックに対応するブック対応要素となる。追加されたブック対応要素の種別は、マッピング定義131のBook要素のpropertyKind属性に指定される型である。ブック対応要素をモデル情報111に追加すると、モデリングツールインタフェース162によって、そのブック対応要素を一意に識別するためのIDがブック対応要素に付与される。モデル同期部152は、そのブック対応要素のIDをモデリングツールインタフェース162から受け取り、処理対象のブックのプロパティに設定する。
[ステップS74]モデル同期部152は、ブックのファイル名をブック対応要素に設定する。具体的には、モデル同期部152は、マッピング定義131のFileName要素のproperty属性で指定されている文字列(図6の例では“name”と指定されており、ファイル名(拡張子を除く)を指す)をブックのファイル名から抽出し、ブック対応要素の名前に設定する。
[ステップS75]モデル同期部152は、ブックからブック対応要素への同期処理を行う。この処理の詳細は後述する(図14参照)。
[ステップS76]モデル同期部152は、帳票格納ディレクトリに含まれる全てのブックに対してステップS72〜ステップS74の処理が終わると、処理をステップS77に進める。
[ステップS77]モデル同期部152は、不要なブック対応要素を削除する。具体的には、モデル同期部152は、マッピング定義131のBook要素のproperty属性で指定された属性によって、起点のモデル要素から参照されるモデル要素(モデル要素の集合)のうち、帳票格納ディレクトリに含まれるブックのいずれにも対応しない(IDが一致しない)モデル要素を削除する。
このようにして、ブックに対応するブック対応要素を作成すると共に、不要なブック対応要素を削除できる。
次に、ブックからブック対応要素への同期処理について説明する。
図14は、ブックからブック対応要素への同期処理を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS81]モデル同期部152は、ブックに含まれるワークシートごとにステップS82〜ステップS84の処理を行う。
[ステップS82]モデル同期部152は、ワークシートに対応するシート対応要素が存在するか否かを判断する。具体的には、モデル同期部152は、ワークシートのプロパティにシート対応要素のIDが設定されており、かつそのIDをもつモデル要素がモデル情報111に含まれていることを確認する。さらに、モデル同期部152は、マッピング定義131のSheet要素のproperty属性で指定されている属性によって、ブック対応要素から、IDに対応するモデル要素が参照されていることを確認する。これらの条件が満たされていれば、モデル同期部152は、ワークシートのIDに対応するモデル要素を、シート対応要素と判断する。ワークシートに対応するシート対応要素が存在すれば、処理がステップS84に進められる。ワークシートに対応するシート対応要素が存在しなければ、処理がステップS83に進められる。
[ステップS83]モデル同期部152は、ワークシートに対応するシート対応要素を、モデル情報111内に作成する。具体的には、モデル同期部152は、ブック対応要素から、マッピング定義131のSheet要素のproperty属性で指定されている属性によって参照されるモデル要素を生成し、モデル情報111に追加する。このモデル要素は、現在処理対象となっているワークシートに対応するシート対応要素となる。追加されたシート対応要素の種別は、マッピング定義131のSheet要素のpropertyKind属性に指定される型である。シート対応要素をモデル情報111に追加すると、モデリングツールインタフェース162によって、そのシート対応要素を一意に識別するためのIDがシート対応要素に付与される。モデル同期部152は、そのシート対応要素のIDをモデリングツールインタフェース162から受け取り、処理対象のワークシートのプロパティに設定する。
[ステップS84]モデル同期部152は、ワークシートからシート対応要素への同期処理を行う。この処理の詳細は後述する(図15参照)。
[ステップS85]モデル同期部152は、ブックに含まれる全てのワークシートに対して、ステップS82〜ステップS84の処理が終了すると、処理をステップS86に進める。
[ステップS86]モデル同期部152は、ブック内の不要なワークシートを削除する。具体的には、モデル同期部152は、マッピング定義131のSheet要素のproperty属性で指定された属性によって、ブック対応要素から参照されるモデル要素(モデル要素の集合)のうち、ブックに含まれるワークシートのいずれにも対応しない(IDが一致しない)モデル要素を削除する。
このようにして、ブック対応要素からブックへの同期処理が行われる。
次に、ワークシートからシート対応要素への同期処理について説明する。
図15は、ワークシートからシート対応要素への同期処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS91]モデル同期部152は、マッピング定義131のCell要素ごとにステップS92の処理を行う。
[ステップS92]モデル同期部152は、セル値をシート対応要素の属性に設定する。具体的には、モデル同期部152は、Cell要素のtemplateCol属性およびtemplateRow属性に指定された列および行からワークシート内のセルを特定する。そして、モデル同期部152は、特定したセルに設定されている値を、処理対象となっているシート対応要素のproperty属性に指定されているもの(図6の例では“name”と指定されており、シート対応要素の名前を示す)も設定する。
[ステップS93]モデル同期部152は、全てのCell要素に対してステップS92の処理が終了すると、処理をステップS94に進める。
[ステップS94]モデル同期部152は、テーブルの開始位置を特定する。具体的には、モデル同期部152は、マッピング定義131のTable要素のtemplateCol属性およびtemplateRow属性に指定する列および行の位置を、ワークシート内におけるテーブルの開始位置と判断する。
[ステップS95]モデル同期部152は、テーブル内の行ごとに、ステップS96〜ステップS100の処理を行う。
[ステップS96]モデル同期部152は、行に対応する行対応要素があるか否かを判断する。具体的には、モデル同期部152は、行のプロパティに行対応要素のIDが設定されており、かつそのIDをもつモデル要素がモデル情報111に含まれていることを確認する。さらに、モデル同期部152は、マッピング定義131のTable要素のproperty属性で指定されている属性によって、シート対応要素から、IDに対応するモデル要素が参照されていることを確認する。これらの条件が満たされていれば、モデル同期部152は、行のIDに対応するモデル要素を、行対応要素と判断する。行に対応する行対応要素が存在すれば、処理がステップS98に進められる。行に対応する行対応要素が存在しなければ、処理がステップS97に進められる。
[ステップS97]モデル同期部152は、行に対応する行対応要素を、モデル情報111内に作成する。具体的には、モデル同期部152は、シート対応要素から、マッピング定義131のTable要素のproperty属性で指定されている属性によって参照されるモデル要素を生成し、モデル情報111に追加する。このモデル要素は、現在処理対象となっている行に対応する行対応要素となる。追加された行対応要素の種別は、マッピング定義131のTable要素のpropertyKind属性に指定される型である。行対応要素をモデル情報111に追加すると、モデリングツールインタフェース162によって、その行対応要素を一意に識別するためのIDが行対応要素に付与される。モデル同期部152は、その行対応要素のIDをモデリングツールインタフェース162から受け取り、処理対象の行のプロパティに設定する。
[ステップS98]モデル同期部152は、マッピング定義131内のColumn要素ごとにステップS99の処理を行う。
[ステップS99]モデル同期部152は、テーブル内のセル値を行対応要素の属性に設定する。具体的には、モデル同期部152は、現在の行および処理対象のColumn要素に対応する列でセルを特定する。ここで、処理対象のColumn要素に対応する列は、「テーブルの開始列+処理対象のColumn要素以前(マッピング定義131の記載が上位)の他のColumn要素の個数」で示される列番の列である。モデル同期部152は、特定したセルの値を、対応する行対応要素に対し、処理対象のColumn要素のproperty属性に指定されている属性として設定する。
[ステップS100]モデル同期部152は、全てのColumn要素に対してステップS99の処理が終了すると、処理をステップS101に進める。
[ステップS101]モデル同期部152は、全ての行に対してステップS99の処理が終了すると、処理をステップS102に進める。
[ステップS102]モデル同期部152は、不要な行対応要素を削除する。具体的には、モデル同期部152は、マッピング定義131のTable要素のproperty属性で指定された属性によって、シート対応要素から参照されるモデル要素の集合のうち、テーブル内に含まれる行のいずれにも対応しない(IDが一致しない)モデル要素を削除する。その後、帳票同期部151は、行の順に合わせて行対応要素をソートする。
このようにして、ワークシートからシート対応要素への同期処理が行われる。
以上のように、モデル情報と帳票とを互いに同期させることで、コンピュータシステムで利用するデータの管理が容易となる。すなわち、モデル情報を操作する方が便利な場合、ユーザはモデリングツール161を用いてモデル情報を操作編集する。そして、モデル情報の内容を帳票に反映させることで、モデル情報と帳票との間の整合性を保つことができる。また、帳票内のデータの一覧を操作した方が便利な場合、ユーザは帳票アプリケーション171を用いて帳票の編集操作を行う。そして、帳票の内容をモデル情報に反映させることで、モデル情報と帳票との間の整合性を保つことができる。
しかも、第1の実施の形態では、帳票内の行に対応する行要素がモデル情報内に存在すれば、その行要素に対して該当行に設定された属性値を追加的に設定する。これにより、同期対象外の属性が行要素に設定されていた場合、同期対象外の属性がそのまま保持される。
なお、第1の実施の形態では、行にモデル要素を関連付け、列にモデル要素の属性を関連付けているが、行と列との定義を逆にすることもできる。すなわち、列にモデル要素を関連付け、行にモデル要素の属性値を関連付けることもできる。
[第2の実施の形態]
第2の実施の形態は、マトリクス形式のテーブル表現の帳票を作成するものである。
第1の実施の形態では、モデルと表形式との変換を行う際、各行には個別のモデル要素を対応付け、各列には(各行に対応する)モデル要素の個別の属性値を対応付けるというものである(ここでは「一覧形式」と呼ぶ)。
図16は、一覧形式の帳票を示す図である。図16に示すように、一覧形式の帳票では、モデル要素が行に定義され、モデル要素に設定される値の属性が列に定義される。そして、各モデル要素に設定された属性の値がセルに設定される。
一方、第2の実施の形態は、同じく表形式ではあるものの、各行と各列にそれぞれ個別のモデル要素を対応付け、表の内部には行に対応するモデル要素と列に対応するモデル要素との両方に関連するモデル要素の情報を表す形式(ここでは「マトリクス形式」と呼ぶ)とするものである。
図17は、マトリクス形式の帳票を示す図である。図17に示すように、マトリクス形式の帳票の各行と各列とに、個別のモデル要素が対応付けられる。そして、行と列とが交差する位置のセルに、両方に関連するモデル要素の情報が設定される。
以下、マトリクス形式で帳票を作成する場合の処理を説明する。なお、第2の実施の形態の実施に必要な機能は、図3に示した第1の実施の形態と同様である。異なるのは、帳票同期部151とモデル同期部152との処理内容のみである。そこで、図3に示した符号を用いて第2の実施の形態について説明する。
まず、マトリクス形式の帳票が有用な場合の例として、クラス間に複雑な依存関係が存在する場合がある。
図18は、クラス間の依存関係を示すダイアグラムである。このダイアグラムは、あるパッケージに含まれるクラス間の依存関係を表したものである。依存関係は破線の矢印によって表され、矢印側のクラスはその反対側のクラスによって依存されることを意味する。より具体的には、依存する側のクラスは依存される側のクラスの変更による影響を受けることを意味する。そのため、このダイアグラムでは、例えば「クラス2」と「クラス3」とは、「クラス1」に依存することを表している。
図19は、図18に示すダイアグラムに対応するモデル情報を示す図である。図19では、長方形がモデル要素112a〜112hを表し、その内側の文字列のうちカッコの前のものはモデル要素112a〜112fの名前を、カッコの中のものはモデル要素112a〜112hの種別を表している(カッコの前が空白の場合は名前を持たないことを表す)。
実線の矢印はモデル要素間の所有関係を表し、矢印の方向のモデル要素をその反対側の要素が所有するという意味である。この関係において、モデル要素は他のモデル要素を属性の値として所有し、その属性名が矢印の近くに示されている。
また、破線の矢印はモデル要素間の参照関係を表し、矢印の方向のモデル要素をその反対側の要素が参照するという意味である。この関係において、モデル要素は他のモデル要素を属性値として参照し、その属性名が矢印に示されている。
図18で示したダイアグラムの背景にあるモデルの構造を図19を参照して説明すると次のようになる。
Model要素「モデル1」はPackage要素「パッケージ1」をnestedPackage属性の値として所有し、「パッケージ1」は「クラス1」から「クラス6」までの6つのClass要素と、これらのクラス間の依存関係を表す5つのDependency要素を所有する(ただし構造を示す図19ではいくつかのClass要素とDependency要素が省略されている)。
あるDependency要素は「クラス1」をsupplier属性の値として、「クラス2」をclient属性の値として持つことでそれぞれを参照する。
なお、「所有する」と「参照する」とを比べると、前者の方がより強い結合度を持つ。
この依存関係の場合、第1の実施の形態で示した一覧形式で帳票を作成すると次のようになる。
図20は、依存関係を一覧形式で表した帳票を示す図である。図20の例では、依存関係を行に定義し、その行の属性として依存するクラスと依存先のクラス(依存されるクラス)とを定義している。この形式でもクラス間の依存関係を理解することはできるが、マトリクス形式の方がより使いやすい場合がある。
図21は、依存関係をマトリクス形式で表した帳票を示す図である。図21の例では、各クラスに対応するモデル要素が、行と列との両方に対応付けられている。そして、行と列との交わる位置のセルに、行に対応するクラスと列に対応するクラスとの依存関係の有無が示されている。依存関係が有る場合、その旨を示すフラグがセルに設定される(図21では丸印で表されている)。
このマトリクス形式を実現する場合、次の帳票テンプレートとマッピング定義とを使用する。
図22は、マトリクス形式を実現するための帳票テンプレートを示す図である。帳票テンプレート142は一覧形式の場合と比較して、テーブルの部分だけが異なる。一覧形式では列ヘッダの列数やヘッダ文字列が固定であり、帳票テンプレートにあらかじめ埋め込まれているが、マトリクス形式では(行ヘッダ同様)列ヘッダは入力となるモデルやマッピング定義の内容に応じて(同期処理中に)動的に構成される。そのため、テーブルの罫線や網掛けといった、書式情報の雛形のみがあらかじめ埋め込まれている。
テンプレートのテーブルは3行×3列となっているが、これは同期処理において行または列を構成する際に次のことが行われるからである。
・最終行以外の行の書式情報には、テンプレートのテーブルの2行目のものが使用される。
・最終行の書式情報には、テンプレートのテーブルの3行目のものが使用される。
・最終列以外の列の書式情報には、テンプレートのテーブルの2列目のものが使用される。
・最終列の書式情報には、テンプレートのテーブルの3列目のものが使用される。
したがって、たとえば新たに最終行以外の行を追加する場合は、行ヘッダとなるセルの書式情報として2行1列のセルのものが使用され、行ヘッダおよび最終列以外のセルの書式情報として2行2列のセルのものが使用され、最終列のセルの書式情報として2行3列のセルのものが使用されるといった具合である。
図23は、マトリクス形式を実現するためのマッピング定義を示す図である。マッピング定義132は一覧形式の場合とほぼ同様の形式であるが、一覧形式のマッピング定義131(図6参照)におけるTable要素の代わりにMatrix要素が使用されている。ここではMatrix要素とその配下の要素(<Matrix>タグから</Matrix>タグまで)とについてのみ説明する。それ以外の要素が示す意味は、第1の実施の形態で示した一覧形式の場合と同様である。
Matrix要素には、各行に対応するモデル要素(「行対応要素」と呼ぶ)の抽出方法と行ヘッダ文字列の取得方法とが指定されている。さらに、Matrix要素には、各列に対応するモデル要素(「列対応要素」と呼ぶ)の抽出方法と列ヘッダ文字列の取得方法とが指定されている。より詳細には、次の通りである。
シート対応要素の属性のうちMatrix要素のrowProperty属性に指定するものの値(モデル要素の集合)からrowPropertyKind属性に指定する型に一致するものが行対応要素として抽出される。また、これらの行対応要素の属性のうちrowHeader属性に指定するものの値が行ヘッダ文字列として使用される。したがって、図23のマッピング定義132の場合は、シート対応要素(Package)のownedMember属性で所有するモデル要素のうち、Class型に一致するものが行対応要素として抽出され、そのname属性の値が行ヘッダ文字列として使用されることになる。
一方、シート対応要素の属性のうちMatrix要素のcolProperty属性に指定するものの値(モデル要素の集合)からcolPropertyKind属性に指定する型に一致するものが列対応要素として抽出される。また、これらの列対応要素の属性のうちcolHeader属性に指定するものの値が列ヘッダ文字列として使用される。したがって、図23のマッピング定義132の場合は、シート対応要素(Package)のownedMember属性で所有するモデル要素のうち、Class型に一致するものが列対応要素として抽出され、そのname属性の値が列ヘッダ文字列として使用されることになる(このマッピング定義では行対応要素と列対応要素の仕様が同じ)。templateCol属性およびtemplateRow属性は一覧の場合のTable要素同様、マトリクステーブルの開始位置としての列および行を指定する。
FromSheet要素は、マトリクステーブル内のセルに対応するモデル要素(「セル対応要素」と呼ぶ)の抽出方法とそのセル対応要素から関連する行対応要素および列対応要素を特定する方法とを指定する。より詳細には、以下の通りである。
シート対応要素の属性のうちFromSheet要素のcellProperty属性に指定するものの値(モデル要素の集合)からcellPropertyKind属性に指定する型に一致するものがセル対応要素として抽出される。また、これらのセル対応要素の属性のうちrowProperty属性に指定するものの値を行対応要素として、colProperty属性に指定するものの値を列対応要素として特定する。したがって、図23のマッピング定義132の場合は、シート対応要素(Package)のownedMember属性で所有するモデル要素のうち、Dependency型に一致するものがセル対応要素として抽出され、そのclient属性を行対応要素、supplier属性を列対応要素として特定する。
Value要素はセル対応要素に対応するセルの値を指定する。より詳細には、次の通りである。FromSheet要素により抽出されたセル対応要素が特定した行対応要素および列対応要素にそれぞれ対応する行および列のセルに、Value要素のfix属性に指定する値(図23のマッピング定義132の場合は「○」記号)が出力される。
以上の帳票テンプレート142およびマッピング定義132を使用し、モデル情報112から帳票への同期を実行することにより新規に帳票が作成される場合、大まかな流れは次のようになる。
ユーザは、同期処理の起点となるモデル要素として「モデル1」のモデル要素112aを指定する。マッピング定義132では、Book要素のproperty属性に「self」の指定(属性取得元自身をブック対応要素とする特別なキーワード)がある。そのため、帳票同期部151は、起点として指定された「モデル1」のモデル要素112aをブック対応要素として確定する。また、帳票格納ディレクトリにこのブック対応要素に対応する帳票(ブック)が作成され、ブック対応要素のIDがブックのプロパティに設定される。このときに作成されるブックのファイル名はマッピング定義のFileName要素のproperty属性により、ブック対応要素のname属性の値から「モデル1.xls」となる。
マッピング定義132のSheet要素のproperty属性およびpropertyKind属性により、ブック対応要素である「モデル1」からnestedPackage属性に含まれるPackage型のモデル要素である「パッケージ1」が抽出されシート対応要素として確定する。また、同Sheet要素のtemplateSheetName属性により、テンプレートから同名のワークシートが作成されたブックにコピーされ、シート対応要素のIDがコピーされたワークシートのプロパティに設定される。コピーされるワークシートの名前はマッピング定義のSheetName要素のproperty属性により、シート対応要素のname属性の値「パッケージ1」となる。
マッピング定義132のCell要素のproperty属性により、シート対応要素である「パッケージ1」のname属性の値(すなわち「パッケージ1」)が取得され、同Cell要素のtemplateCol属性およびtemplateRow属性に指定される第3行第2列のセルに設定される。
マッピング定義132のMatrix要素のrowProperty属性およびrowPropertyKind属性により、シート対応要素である「パッケージ1」のownedMember属性に含まれるClass型のモデル要素である「クラス1」から「クラス6」までのClass要素が抽出され、これらが行対応要素として確定する。また、Matrix要素のrowHeader属性により、これらの行対応要素のname属性の値が、templateCol属性に指定される列(図23の例では第1列)に、templateRow属性に指定される行+1の位置(図23の例では第6行)から順に(下の行に向かって)設定されていく。同時に、各行対応要素のIDが各行のプロパティとして設定される。
列についても同様であり、マッピング定義のMatrix要素のcolProperty属性およびcolPropertyKind属性により「パッケージ1」のownedMember属性のClass型のモデル要素「クラス1」から「クラス6」までが抽出され、これらが列対応要素として確定する。また、Mtrix要素のcolHeader属性により、これらの列対応要素のname属性の値が、templateRow属性に指定される行(図23の例では第5行)に、templateCol属性に指定される列+1の位置(図23の例では第2列)から順に(右の列に向かって)設定されていく。同時に各列対応要素のIDが各列のプロパティとして設定される。
マッピング定義132のFromSheet要素のcellProperty属性およびcellPropertyKind属性により、シート対応要素である「パッケージ1」のownedMember属性に含まれるDependency型のモデル要素(5つ)が抽出され、これらがセル対応要素として確定する。同FromSheet要素のrowProperty属性およびcolProperty属性により、それぞれのセル対応要素のclient属性から参照する要素がそのセル対応要素から見た行対応要素、supplier属性から参照する要素がそのセル対応要素から見た列対応要素として確定する。帳票同期部151は、抽出された各セル対応要素について、そのセル対応要素から見た行対応要素に対応する行および列対応要素に対応する列の交差するセルに、マッピング定義のValue要素のfix属性の値「○」を出力する。
この結果、出力される帳票は次のようになる。
図24は、マトリクス形式の帳票の例を示す図である。図24に示すように、帳票123には、行と列とにクラス名が設定されたマトリクスが形成されている。そして、クラス間に依存関係が有る場合、行と列とに設定されたクラスの交差するセルに丸印「○」が設定されている。
また、ユーザによって帳票123が先に作成されモデル情報112が未作成の場合、マッピング定義132を使用することで、帳票123からモデル情報112への同期処理を実行することにより、新規にモデル情報112が作成される。このような場合の大まかな流れは次のようになる。
ユーザは、データ変換部150に対して、同期処理の起点となる帳票として、図24の帳票123を指定する操作入力を行う。さらにユーザは、データ変換部150に対して、帳票からモデル情報への同期処理を指示する操作入力を行う。
すると、データ変換部150のモデル同期部152は、帳票123に対応するモデル要素が存在しないため(モデル情報112が未作成の状況を想定している)、マッピング定義132のBook要素のpropertyKind属性に従ってModel型のモデル要素を作成する。また、マッピング定義132のproperty属性に「self」の指定があるため、モデル同期部152は、このモデル要素自身をブック対応要素とする。さらに、モデル同期部152は、マッピング定義132のFileName要素のproperty属性に従い、帳票123のファイル名から「モデル1」をブック対応要素のname属性を設定する。
モデル同期部152は、ワークシートに対応するモデル要素が存在しないため、マッピング定義のSheet要素のproperty属性およびpropertyKind属性に従い、ブック対応要素のnestedPackage属性の値(モデル要素の集合)にPackage型のモデル要素を作成して追加する。
モデル同期部152は、マッピング定義のCell要素のtemplateCol属性およびtemplateRow属性に従い、3行2列のセルの値「パッケージ1」を取得し、同Cell要素のproperty属性に従い、シート対応要素のname属性に設定する。
モデル同期部152は、マッピング定義132のMatrix要素のtemplateCol属性およびtemplateRow属性に従い、第「5+1」行第1列のセルから(下の行に向かって)行ヘッダを取得していく。次に、モデル同期部152は、Matrix要素のrowProperty属性、rowPropertyKind属性、およびrowPropertyHeader属性に従い、シート対応要素のownedMember属性で所有されるモデル要素の集合にClass型のモデル要素を作成する。そして、モデル同期部152は、取得した行ヘッダの値(「クラス1」から「クラス6」を、作成してモデル要素それぞれのname属性に設定する。
また、モデル同期部152は、templateCol属性およびtemplateRow属性に従い、第5行第「1+1」列のセルから(右の列に向かって)列ヘッダを取得していく。次に。モデル同期部152は、その値を同Matrix要素のcolProperty属性、colPropertyKind属性、およびcolPropertyHeader属性に従い、シート対応要素のownedMember属性で所有されるモデル要素の集合として、Class型のモデル要素を作成する。さらに、モデル同期部152は、作成したモデル要素のname属性に、取得した列ヘッダの値「クラス1」から「クラス6」を設定していく。ただし、すでに行ヘッダによりそれぞれ同じ名前(厳密にはヘッダ文字列を設定する属性値)を持つ同じ型のモデル要素が同じ属性で設定されている場合には、モデル要素の作成は行われない。
モデル要素が追加された場合、モデリングツールインタフェース162によって、追加されたモデル要素に対して、そのモデル要素を一意に識別するためのIDが付与される。モデル同期部152は、追加したモデル要素のIDをモデリングツールインタフェース162から取得し、ものモデル要素に対応する行および列のプロパティに、取得したIDを設定する。
モデル同期部152は、マトリクステーブル(帳票123内の行ヘッダと列ヘッダとが設定された領域)から、マッピング定義132のValue要素のfix属性の値(図23の例では、丸印「○」)が設定されているセルを見つける。モデル同期部152は、見つかったセルごとにマッピング定義132のFromSheet要素のcellProperty属性およびcellPropertyKind属性に従い、シート対応要素のownedMember属性で所有されるモデル要素の集合を作成する。この作成されるモデル要素は、Dependency型が設置される。
また、モデル同期部152は、マッピング定義132のValue要素のfix属性の値(この例では丸印)が設定されたセルの行および列にそれぞれプロパティとして設定されているIDに基づいて行対応要素および列対応要素を特定する。そして、モデル同期部152は、マッピング定義132内のFromSheet要素のrowProperty属性およびcolProperty属性に従い、作成したDependency型のモデル要素のclient属性に特定された行対応要素を、supplier属性に特定された列対応要素を設定する。
次に、マトリクス形式の帳票を用いたモデル情報112と帳票123間の同期処理の詳細を説明する。
<モデル情報から帳票への同期処理>
まず、モデル情報112から帳票123への同期処理について説明する。なお、モデル情報112から帳票123への同期処理については、シート対応要素からワークシートへの同期処理を除き、第1の実施の形態と同じである。すなわち、図8〜図10に示した処理は、第2の実施の形態でも同様である。そこで、以下、シート対応要素からワークシートへの同期処理について詳細に説明する。
図25は、シート対応要素からワークシートへの同期処理の手順を示すフローチャートの前半である。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS111]帳票同期部151は、マッピング定義132のCell要素ごとに、ステップS112の処理を繰り返し行う。
[ステップS112]帳票同期部151は、セル値の設定を行う。具体的には、帳票同期部151は、Cell要素のtemplateCol属性およびtemptaleRow属性に指定される列および行に位置するセルに対し、Cell要素のproperty属性で指定されているシート対応要素の属性値(文字列)を設定する。
[ステップS113]帳票同期部151は、マッピング定義132の全てのCell要素に対してステップS112の処理が終了すると、処理をステップS114に進める。
[ステップS114]帳票同期部151は、マトリクステーブルの開始位置を特定する。具体的には、帳票同期部151は、マッピング定義132のMatrix要素のtemplateCol属性およびtemptaleRow属性に指定されている列および行で示される位置のセルをマトリクステーブルの開始位置とする。
[ステップS115]帳票同期部151は、行対応要素の抽出を行う。具体的には、帳票同期部151は、モデル情報112において、マッピング定義132のMatrix要素のrowProperty属性でシート対応要素から所有されているモデル要素の集合を取得する。そして、帳票同期部151は、取得したモデル情報の集合から、rowPropertyKind属性に指定されている型のモデル要素を抽出する。抽出したモデル要素を「行対応要素」と呼ぶ。
[ステップS116]帳票同期部151は、行対応要素ごとにステップS117からステップS118の処理を行う。
[ステップS117]帳票同期部151は、行対応要素に対応する行が存在するか否かを判断する。具体的には、帳票同期部151は、行対応要素のIDをプロパティとして有する行が現在のマトリクステーブル内に存在するか否かを判断する。行対応要素に対応する行が存在すれば、処理がステップS119に進められる。行対応要素に対応する行が存在しなければ、処理がステップS118に進められる。
[ステップS118]帳票同期部151は、行を作成する。具体的には、帳票同期部151は、マトリクステーブルの最後の行(まだ1行も存在しない場合は開始位置)の次に1行追加する(マトリックステーブル用の罫線を設定する)。次に、帳票同期部151は、追加した行のプロパティに対して、行対応要素のIDを設定する。さらに、帳票同期部151は、行対応要素からマッピング定義132のMatrix要素のrowHeader属性で指定される属性の値(文字列)を取得し、行の先頭のセル(テーブル開始位置の列)も行ヘッダとして設定する。
[ステップS119]帳票同期部151は、すべての行対応要素に対してステップS117〜ステップS118の処理が終了すると、処理をステップS120に進める。
[ステップS120]帳票同期部151は、不要な行を削除する。具体的には、帳票同期部151は、ワークシートに含まれる行のうち、プロパティに行対応要素のIDを持ち、かつステップS115で抽出された行対応要素のなかに同じIDを有するものが存在しない行を削除する。そして、帳票同期部151は、行対応要素の順に合わせてマトリクステーブルを構成する行をソートする。その後、処理がステップS121(図26に示す)に進められる。
図26は、シート対応要素からワークシートへの同期処理の手順を示すフローチャートの後半である。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS121]帳票同期部151は、列対応要素の抽出を行う。具体的には、帳票同期部151は、モデル情報112において、マッピング定義132のMatrix要素のcolProperty属性でシート対応要素から所有されているモデル要素の集合を取得する。そして、帳票同期部151は、取得したモデル情報の集合から、colPropertyKind属性に指定されている型のモデル要素を抽出する。抽出したモデル要素を「列対応要素」と呼ぶ。
[ステップS122]帳票同期部151は、列対応要素ごとにステップS123からステップS124の処理を行う。
[ステップS123]帳票同期部151は、列対応要素に対応する列が存在するか否かを判断する。具体的には、帳票同期部151は、列対応要素のIDをプロパティとして有する列が現在のマトリクステーブル内に存在するか否かを判断する。列対応要素に対応する列が存在すれば、処理がステップS125に進められる。列対応要素に対応する列が存在しなければ、処理がステップS124に進められる。
[ステップS124]帳票同期部151は、列を作成する。具体的には、帳票同期部151は、マトリクステーブルの最後の列(まだ1列も存在しない場合は開始位置)の次に1列追加する(マトリックステーブル用の罫線を設定する)。次に、帳票同期部151は、追加した列のプロパティに対して、列対応要素のIDを設定する。さらに、帳票同期部151は、列対応要素からマッピング定義132のMatrix要素のcolHeader属性で指定される属性の値(文字列)を取得し、列の先頭のセル(テーブル開始位置の列)も列ヘッダとして設定する。
[ステップS125]帳票同期部151は、すべての列対応要素に対してステップS123〜ステップS124の処理が終了すると、処理をステップS126に進める。
[ステップS126]帳票同期部151は、不要な列を削除する。具体的には、帳票同期部151は、ワークシートに含まれる列のうち、プロパティに列対応要素のIDを持ち、かつステップS121で抽出された列対応要素のなかに同じIDを有するものが存在しない列を、削除する。そして、帳票同期部151は、列対応要素の順に合わせてマトリクステーブルを構成する列をソートする。その後、処理がステップS127に進められる。
[ステップS127]帳票同期部151は、セル対応要素を抽出する。具体的には、帳票同期部151は、シート対応要素からマッピング定義132のFormSheet要素のcellProperty属性で指定されている属性のモデル要素の集合を取得する。次に、帳票同期部151は、取得したモデル要素の集合から、cellPropertyKind属性で指定された型のモデル要素を抽出する。抽出したモデル要素を「セル対応要素」と呼ぶ。
[ステップS128]帳票同期部151は、セル対応要素ごとにステップS129〜ステップS131の処理を行う。
[ステップS129]帳票同期部151は、セル対応要素が参照する行対応要素を特定する。具体的には、帳票同期部151は、セル対応要素からマッピング定義132のFromSheet要素のrowProperty属性で指定されているモデル要素の集合を取得する。そして、帳票同期部151が、取得したモデル要素を、セル対応要素が参照する行対応要素として特定する。
[ステップS130]帳票同期部151は、セル対応要素が参照する列対応要素を特定する。具体的には、帳票同期部151は、セル対応要素からマッピング定義132のFromSheet要素のcolProperty属性に指定されている属性のモデル要素の集合を取得する。そして、帳票同期部151は、取得したモデル要素をセル対応要素が参照する列対応要素として特定する。
[ステップS131]帳票同期部151は、セル値を設定する。具体的には、帳票同期部151は、セル対応要素が参照する行対応要素と列対応要素とのそれぞれに対応する行と列との交差するセルに、マッピング定義132のValue要素に示された値を設定する。また、帳票同期部151は、セルのプロパティに対してセル対応要素のIDを設定する。
[ステップS132]帳票同期部151は、全てのセル対応要素に対してステップS129〜ステップS131の処理が終了すると、処理をステップS133に進める。
[ステップS133]帳票同期部151は、不要なセル値を削除する。具体的には、帳票同期部151は、セルうち、セル対応要素のIDがプロパティに設定されており、かつ抽出されたセル対応要素のなかにそのIDに対応するものが存在しないセルを検出する。そして、帳票同期部151は、検出されたセルに設定されているセル値を削除する。
このようにして、シート対応要素からワークシートへの同期処理が行われる。
<帳票からモデル情報への同期処理>
次に、帳票123からモデル情報112への同期処理について説明する。なお、帳票123からモデル情報112への同期処理については、ワークシートからシート対応要素への同期処理を除き、第1の実施の形態と同じである。すなわち、図12〜図14に示した処理は、第2の実施の形態でも同様である。そこで、以下、ワークシートからシート対応要素への同期処理について詳細に説明する。
図27は、ワークシートからシート対応要素への同期処理の手順を示すフローチャートの前半である。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS141]モデル同期部152は、マッピング定義132のCell要素ごとに、ステップS142の処理を行う。
[ステップS142]モデル同期部152は、セル値をシート対応要素の属性に設定する。具体的には、モデル同期部152は、Cell要素のtemplateCol属性およびtemplateRow属性に指定された列および行からワークシート内のセルを特定する。次に、モデル同期部152は、特定したセルの値を、現在のシート対応要素の属性のうち、Cell要素のproperty属性に指定されているものに設定する。
[ステップS143]モデル同期部152は、マッピング定義132の全てのCell要素に対してステップS142の処理が終了すると、処理をステップS144に進める。
[ステップS144]モデル同期部152は、マトリクステーブルの開始位置を特定する。具体的には、モデル同期部152は、マッピング定義132のMatrix要素のtemplateCol属性およびtemptaleRow属性に指定されている列および行で示される位置のセルをマトリクステーブルの開始位置とする。
[ステップS145]モデル同期部152は、マトリクステーブル内の行ごとに、ステップS146〜ステップS148の処理を行う。
[ステップS146]モデル同期部152は、行に対応する行対応要素が存在するか否かを判断する。具体的には、モデル同期部152は、行のプロパティに行対応要素のIDが設定されており、かつそのIDを持つモデル要素が、シート対応要素から、マッピング定義132のMatrix要素のrowProperty属性によって所有されているもモデル要素の集合に含まれているか否かを判断する。行に対応する行対応要素が存在する場合、処理がステップS149に進められる。行に対応する行対応要素が存在しない場合、処理がステップS147に進められる。
[ステップS147]モデル同期部152は、行対応要素を作成する。具体的には、モデル同期部152は、シート対応要素から、マッピング定義132のMatrix要素のrowProperty属性で指定されている属性で所有されるモデル要素の集合に、モデル要素(行対応要素)追加する。追加されるモデル要素の型は、Matrix要素のrowPropertyKind属性に指定されている型である。また、行対応要素をモデル情報112に追加すると、モデリングツールインタフェース162によって、その行対応要素を一意に識別するためのIDが行対応要素に付与される。モデル同期部152は、その行対応要素のIDをモデリングツールインタフェース162から受け取り、処理対象の行のプロパティに設定する。
[ステップS148]モデル同期部152は、行対応要素に行ヘッダを設定する。具体的には、モデル同期部152は、行の先頭(マトリクステーブル開始位置の列)のセルに設定されている文字列(行ヘッダ)を、追加した行対応要素に対して、マッピング定義132のMatrix要素のrowHeader属性に指定されている属性の値として設定する。
[ステップS149]モデル同期部152は、マトリクステーブル内の全ての行に対してステップS146〜ステップS148の処理が終了すると、処理をステップS150に進める。
[ステップS150]モデル同期部152は、不要な行対応要素を削除する。具体的には、モデル同期部152は、シート対応要素の属性のうち、マッピング定義132のMatrix要素のrowProperty属性で指定されている属性で所有されるモデル要素の集合から、対応する行(IDが一致する行)がマトリクステーブル内に存在しないモデル要素を削除する。そして、モデル同期部152は、行の並び順に合わせて行対応要素をソートする。その後、処理がステップS151(図28に示す)に進められる。
図28は、ワークシートからシート対応要素への同期処理の手順を示すフローチャートの後半である。以下、図28に示す処理をステップ番号に沿って説明する。
[ステップS151]モデル同期部152は、マトリクステーブル内の列ごとに、ステップS152〜ステップS154の処理を行う。
[ステップS152]モデル同期部152は、列に対応する列対応要素が存在するか否かを判断する。具体的には、モデル同期部152は、列のプロパティに列対応要素のIDが設定されており、かつそのIDを持つモデル要素が、シート対応要素から、マッピング定義132のMatrix要素のcolproperty属性によって所有されているもモデル要素の集合に含まれているか否かを判断する。列に対応する列対応要素が存在する場合、処理がステップS155に進められる。列に対応する列対応要素が存在しない場合、処理がステップS153に進められる。
[ステップS153]モデル同期部152は、列対応要素を作成する。具体的には、モデル同期部152は、シート対応要素から、マッピング定義132のMatrix要素のcolProperty属性で指定されている属性で所有されるモデル要素の集合に、モデル要素(列対応要素)追加する。追加されるモデル要素の型は、Matrix要素のcolPropertyKind属性に指定されている型である。また、列対応要素をモデル情報112に追加すると、モデリングツールインタフェース162によって、その列対応要素を一意に識別するためのIDが列対応要素に付与される。モデル同期部152は、その列対応要素のIDをモデリングツールインタフェース162から受け取り、処理対象の列のプロパティに設定する。
[ステップS154]モデル同期部152は、列対応要素に列ヘッダを設定する。具体的には、モデル同期部152は、列の先頭(マトリクステーブル開始位置の列)のセルに設定されている文字列(列ヘッダ)を、追加した列対応要素に対して、マッピング定義132のMatrix要素のcolHeader属性に指定されいている属性の値として設定する。
[ステップS155]モデル同期部152は、マトリクステーブル内の全ての列に対してステップS152〜ステップS154の処理が終了すると、処理をステップS156に進める。
[ステップS156]モデル同期部152は、不要な列対応要素を削除する。具体的には、モデル同期部152は、シート対応要素の属性のうち、マッピング定義132のMatrix要素のcolProperty属性で指定されている属性で所有されるモデル要素の集合から、対応する列(IDが一致する列)がマトリクステーブル内に存在しないモデル要素を削除する。そして、モデル同期部152は、列の並び順に合わせて列対応要素をソートする。
[ステップS157]モデル同期部152は、マトリクステーブル内のセル値を抽出する。具体的には、モデル同期部152は、マッピング定義132のValue要素で示される値(セル値)が設定されたセルを、マトリクステーブル内の(行ヘッダと列ヘッダとを除く)のセルから抽出する。
[ステップS158]モデル同期部152は、セル値が設定されたセルごとに、ステップS159〜ステップS161の処理を行う。
[ステップS159]モデル同期部152は、シート対応要素から、マッピング定義132のFromSheet要素のcellProperty属性で指定されている属性で所有されるモデル要素として、FromSheet要素のcellPropertyKind属性で指定される型のモデル要素(セル対応要素)を追加する。追加されるモデル要素の型は、FromSheet要素のcellPropertyKind属性に指定されている型である。また、セル対応要素をモデル情報112に追加すると、モデリングツールインタフェース162によって、その列対応要素を一意に識別するためのIDが列対応要素に付与される。モデル同期部152は、その列対応要素のIDをモデリングツールインタフェース162から受け取り、処理対象のセルのプロパティに設定する。
[ステップS160]モデル同期部152は、セル対応要素が参照する行対応要素を設定する。具体的には、モデル同期部152は、セル対応要素から、マッピング定義132のFromSheet要素のrowProperty属性に指定されて属性による参照先として、セル対応要素に対応するセルを含む行の行対応要素を設定する。該当する行対応要素への参照の属性が既に設定されている場合、設定は行われない。
[ステップS161]モデル同期部152は、セル対応要素が参照する列対応要素を設定する。具体的には、モデル同期部152は、セル対応要素から、マッピング定義132のFromSheet要素のcolProperty属性に指定されて属性による参照先として、セル対応要素に対応するセルを含む列の列対応要素を設定する。該当する列対応要素への参照の属性が既に設定されている場合、設定は行われない。
[ステップS162]モデル同期部152は、セル値が設定された全てのセルに対してステップS159〜ステップS161の処理が終了したら、処理をステップS163に進める。
[ステップS163]モデル同期部152は、不要なセル対応要素を削除する。具体的には、モデル同期部152は、まず、シート対応要素から、マッピング定義132のFromSheet要素のcellProperty属性で指定されている属性で所有されるモデル要素の集合を取得する。次に、モデル同期部152は、取得したモデル要素のうち、FromSheet要素のcellPropertyKind属性で指定された型のモデル要素(セル対応要素)を特定する。そして、モデル同期部152は、特定したセル対応要素に対応するセルに対して、セル値が設定されていない場合(該当するセルに丸印が付いていない場合)、特定したセル対応要素を削除する。
このようにして、ワークシートからシート対応要素への同期処理が行われる。
以上説明したように、第2の実施の形態によれば、モデル情報112とマトリクス形式の帳票123との間で互いに同期させることができる。
[その他の変形例]
以下、上記の実施の形態の変形例について説明する。
<第1の変形例>
第1の変形例は、一覧形式とマトリクス形式を統合するものである。第1の実施の形態のマッピング定義131と第2の実施の形態のマッピング定義132のそれぞれには、Table要素とMatrix要素とのどちらかが含まれている。そこで、マッピング定義にTable要素とMatrix要素とのどちらが含まれているかを判断する処理を追加することによって、一覧形式とマトリクス形式のフローチャートは1つに統合することができる。
具体的には、モデル情報から帳票への反映では、図11に示す「シート対応要素からワークシートへの同期」処理の「マッピング定義のCell要素ごとの繰返し」処理終了の直後(ステップS43の後、ステップS44の前)に、マッピング定義にTable要素が含まれているか、またはMatrix要素が含まれているかの判定処理が挿入される。Table要素が含まれている場合、ステップS44以降の処理を実行することで、一覧形式の処理が行われる。Matrix要素が含まれている場合、図25に示す「シート対応要素からワークシートへの同期」処理のステップS114以降の処理を実行することで、マトリクス形式の処理が行われる。
また、帳票からモデルへの反映では、図15に示す「ワークシートからシート対応要素への同期」処理の「マッピング定義のCell要素ごとの繰返し」処理終了の直後(ステップS93の後、ステップS94の前)に、マッピング定義にTable要素が含まれているか、またはMatrix要素が含まれているかの判定処理が挿入される。Table要素が含まれている場合、ステップS94以降の処理を実行することで、一覧形式の処理が行われる。Matrix要素が含まれている場合、図27に示す「シート対応要素からワークシートへの同期」処理のステップS144以降の処理を実行することで、マトリクス形式の処理が行われる。
<第2の変形例>
第2の変形例は、モデル要素間を接続するモデル要素として汎化関係が有る場合にも適用可能とするものである。
第2の実施の形態では、UMLの「依存関係」のように、2つのモデル要素(例えば「クラス1」と「クラス2」)を属性値として参照するモデル要素(例えば依存関係)を設けることで、2つのモデル要素間の接続を表現するモデル構造を扱う場合について説明した。
図29は、依存関係を有するモデル構造を示す図である。図式表現のダイアグラム21では2つのノードとこれらを結ぶエッジとを表している。これらのノードとエッジとには、それぞれ対応するモデル要素が、抽象的なモデル構造を表すモデル情報22に存在する。具体的には、「ノードA」に対応するのが「モデル要素a」、「ノードB」に対応するのが「モデル要素b」、「エッジC」に対応するのが「モデル要素c」である。
ここで、「エッジC」がUML依存関係の場合、UML仕様により「モデル要素c」が「モデル要素a」および「モデル要素b」を属性値として参照する構造をとる。一方、「エッジC」がUML汎化関係を表す場合は、上記とは異なるモデル構造となる。
図30は、汎化関係での接続例を示す図である。汎化関係を示すUMLクラス図31では、「クラスA」と「クラスB」とが汎化関係で接続されている。この関係をモデル構造の抽象表現であるモデル情報32で表すと、UML仕様により、汎化関係は「クラスB」(汎化関係の矢印の反対側)のgeneralization属性の値として「所有」され、汎化関係が「クラスA」をgenaral属性の値として「参照」することとなる。
図30に示すモデル情報32は、図18に示したダイアグラムに似ている。そのため、図30に示すモデル情報32に対しても汎化関係に着目してマトリクス形式のテーブルに変換したいということは十分に有り得る。ただし、モデル構造の違いにより、図23に示したマッピング定義132をそのまま適用することはできない。
適用するためには、図23に示すマッピング定義132のFromSheet要素の代わりに、次のいずれかを使用する(以下は上記の汎化関係に対応する場合の例)。
1)行対応要素が所有する汎化関係をテーブル内のセルに対応付ける場合
<FromRow cellProperty="generalization" cellPropertyKind="Generalization"
colProperty="general">
<Value .../>
</FromRow>
2)列対応要素が所有する汎化関係をテーブル内のセルに対応付ける場合
<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属性はセル対応要素が参照する行対応要素の取得先となるセル対応要素の属性を指定する。
<第3の変形例>
第3の変形例は、Value要素として固定値以外の値を設定するものである。第2の実施の形態では、マトリクステーブル内のセルの値を指定するValue要素は固定値(fix属性)である。ここで、Value要素でfix属性の代わりにproperty属性を指定することによりセル対応要素の属性値を設定したり(モデル情報から帳票への反映時)、セル値をセル対応要素の属性に設定したり(帳票からモデル情報への反映時)することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、データ変換部150が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理プログラムにおいて、
コンピュータを、
一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段、
テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段、
前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段、
前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段、
前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段、
として機能させることを特徴とするシステムデータ構造管理プログラム。
(付記2) コンピュータを、さらに、
帳票を作成するための雛形である帳票テンプレートを記憶する帳票テンプレート記憶手段として機能させ、
前記同期手段は、前記帳票記憶手段に前記帳票が記憶されていない場合、前記帳票テンプレートを前記帳票記憶手段内にコピーすることで、前記帳票を作成することを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記3) 前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記4) 前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段は、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段は、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から2つの前記同期対象モデル要素を検出し、検出された2つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記5) モデル同期手段は、行または列に識別子が設定されていない場合、前記モデル情報内に前記同期対象モデル要素を追加し、追加した前記同期対象モデル要素に設定された識別子を、識別子が設定されていなかった行または列に設定することを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記6) 前記帳票同期手段は、前記帳票内の前記同期対象モデル要素が関連付けられている行または列のうち、前記モデル情報内に存在する前記同期対象モデル要素の識別子が設定されている行または列以外の行または列を、前記帳票から削除することを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記7) 前記モデル同期手段は、前記モデル情報内の前記同期対象モデル要素のうち、前記帳票内の前記同期対象モデル要素が関連付けられている行または列に設定された識別子に対応する前記同期対象モデル要素以外を、前記モデル情報から削除することを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記8) 前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段の前記同期対象要素定義では、前記起点のモデル要素から1以上の所定の属性で関連付けられたモデル要素を辿ることで得られるモデル要素を前記同期対象モデル要素とすることが定義されており、
前記帳票同期手段は、前記モデル情報から前記帳票への同期要求と共に、前記起点のモデル情報を指定する入力を受け付け、前記モデル情報において、指定された前記起点のモデル要素から前記所定の属性で関連付けられたモデル要素を辿り、前記同期対象モデル要素を抽出することを特徴とする付記1記載のシステムデータ構造管理プログラム。
(付記9) コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理装置において、
一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、
テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、
前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段と、
前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段と、
前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段と、
を有することを特徴とするシステムデータ構造管理装置。
(付記10) 帳票を作成するための雛形である帳票テンプレートを記憶する帳票テンプレート記憶手段をさらに有し、
前記同期手段は、前記帳票記憶手段に前記帳票が記憶されていない場合、前記帳票テンプレートを前記帳票記憶手段内にコピーすることで、前記帳票を作成することを特徴とする付記9記載のシステムデータ構造管理装置。
(付記11) 前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする付記9記載のシステムデータ構造管理装置。
(付記12) 前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段は、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段は、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から2つの前記同期対象モデル要素を検出し、検出された2つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする付記9記載のシステムデータ構造管理装置。
(付記13) モデル同期手段は、行または列に識別子が設定されていない場合、前記モデル情報内に前記同期対象モデル要素を追加し、追加した前記同期対象モデル要素に設定された識別子を、識別子が設定されていなかった行または列に設定することを特徴とする付記9記載のシステムデータ構造管理装置。
(付記14) 前記帳票同期手段は、前記帳票内の前記同期対象モデル要素が関連付けられている行または列のうち、前記モデル情報内に存在する前記同期対象モデル要素の識別子が設定されている行または列以外の行または列を、前記帳票から削除することを特徴とする付記9記載のシステムデータ構造管理装置。
(付記15) 前記モデル同期手段は、前記モデル情報内の前記同期対象モデル要素のうち、前記帳票内の前記同期対象モデル要素が関連付けられている行または列に設定された識別子に対応する前記同期対象モデル要素以外を、前記モデル情報から削除することを特徴とする付記9記載のシステムデータ構造管理装置。
(付記16) 前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段の前記同期対象要素定義では、前記起点のモデル要素から1以上の所定の属性で関連付けられたモデル要素を辿ることで得られるモデル要素を前記同期対象モデル要素とすることが定義されており、
前記帳票同期手段は、前記モデル情報から前記帳票への同期要求と共に、前記起点のモデル情報を指定する入力を受け付け、前記モデル情報において、指定された前記起点のモデル要素から前記所定の属性で関連付けられたモデル要素を辿り、前記同期対象モデル要素を抽出することを特徴とする付記9記載のシステムデータ構造管理装置。
(付記17) コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とをコンピュータで管理するためのシステムデータ構造管理方法において、
あらかじめ、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段とを用意し、
帳票同期手段が、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定し、
モデル同期手段が、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定する、
ことを特徴とするシステムデータ構造管理方法。
(付記18) あらかじめ、帳票を作成するための雛形である帳票テンプレートを記憶する帳票テンプレート記憶手段をさらに用意し、
前記同期手段は、前記帳票記憶手段に前記帳票が記憶されていない場合、前記帳票テンプレートを前記帳票記憶手段内にコピーすることで、前記帳票を作成することを特徴とする付記17記載のシステムデータ構造管理方法。
(付記19) 前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
ことを特徴とする付記17記載のシステムデータ構造管理方法。
(付記20) 前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
前記帳票同期手段が、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
前記モデル同期手段が、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から2つの前記同期対象モデル要素を検出し、検出された2つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
ことを特徴とする付記17記載のシステムデータ構造管理方法。
発明の概要を示す図である。 本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。 本実施の形態の機能を示すブロック図である。 モデル情報の例を示す図である。 帳票テンプレートの例を示す図である。 マッピング定義の例を示す図である。 表示された帳票を示す図である。 モデル情報から帳票に反映する処理の手順を示すフローチャートである。 モデル要素から帳票格納ディレクトリへの同期処理の手順を示すフローチャートである。 ブック対応要素からブックへの同期処理を示すフローチャートである。 シート対応要素からワークシートへの同期処理の手順を示すフローチャートである。 帳票からモデル情報に反映する処理の手順を示すフローチャートである。 帳票格納ディレクトリからモデル要素への同期処理の手順を示すフローチャートである。 ブックからブック対応要素への同期処理を示すフローチャートである。 ワークシートからシート対応要素への同期処理の手順を示すフローチャートである。 一覧形式の帳票を示す図である。 マトリクス形式の帳票を示す図である。 クラス間の依存関係を示すダイアグラムである。 図18に示すダイアグラムに対応するモデル情報を示す図である。 依存関係を一覧形式で表した帳票を示す図である。 依存関係をマトリクス形式で表した帳票を示す図である。 マトリクス形式を実現するための帳票テンプレートを示す図である。 マトリクス形式を実現するためのマッピング定義を示す図である。 マトリクス形式の帳票の例を示す図である。 シート対応要素からワークシートへの同期処理の手順を示すフローチャートの前半である。 シート対応要素からワークシートへの同期処理の手順を示すフローチャートの後半である。 ワークシートからシート対応要素への同期処理の手順を示すフローチャートの前半である。 ワークシートからシート対応要素への同期処理の手順を示すフローチャートの後半である。 依存関係を有するモデル構造を示す図である。 汎化関係での接続例を示す図である。
符号の説明
1 モデル情報記憶手段
1a モデル情報
2 帳票記憶手段
2a 帳票
3 マッピング定義記憶手段
3a マッピング定義
4 帳票テンプレート記憶手段
4a 帳票テンプレート
5 データ変換手段
5a 帳票同期手段
5b モデル同期手段

Claims (5)

  1. コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理プログラムにおいて、
    コンピュータを、
    一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段、
    テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段、
    前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段、
    前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段、
    前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段、
    として機能させることを特徴とするシステムデータ構造管理プログラム。
  2. 前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、前記同期対象モデル要素が関連付けられた行または列のセルに対応付ける前記同期対象属性の配列が定義されており、
    前記帳票同期手段は、前記同期対象モデル要素に設定された前記同期対象属性の属性値を前記モデル情報から抽出し、前記テーブル構造定義に示された配列で前記同期対象属性をセルに対応付け、セルに対して、対応する前記同期対象属性の属性値を設定し、
    前記モデル同期手段は、前記テーブル構造定義に基づいてセルに対応付けられた前記同期対象属性を判断し、セルに設定された値を、対応する前記同期対象属性の属性値として、セルが属する行または列に設定されている識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して設定する、
    ことを特徴とする請求項1記載のシステムデータ構造管理プログラム。
  3. 前記モデル情報記憶手段に記憶された前記モデル情報には、前記モデル要素の属性として、関連する他の前記モデル要素を指定する属性が含まれており、
    前記マッピング定義記憶手段に記憶された前記マッピング定義には、前記テーブル構造定義として、複数の前記同期対象モデル要素を行および列の両方に関連付け、前記同期対象モデルが関連付けられた行と列との交差する位置のセルに、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素の有無を示す値を設定することが定義されており、
    前記帳票同期手段は、前記同期対象モデル要素を前記テーブル構造定義に従って行と列とに関連付け、行に関連付けられた前記同期対象モデル要素と列に関連付けられた前記同期対象モデル要素との両方に関連する同期対象モデル要素がある場合、前記同期対象モデル要素が関連付けられた行と列との交差する位置のセルに所定の値を設定し、
    前記モデル同期手段は、前記帳票内の前記所定の値が設定されているセルを検出し、検出されたセルの行と列とのそれぞれに設定された識別子に基づいて、前記モデル情報から2つの前記同期対象モデル要素を検出し、検出された2つの前記同期対象モデル要素の両方に関係する所定の前記同期対象モデル要素を前記モデル情報に追加する、
    ことを特徴とする請求項1記載のシステムデータ構造管理プログラム。
  4. コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とを管理するシステムデータ構造管理装置において、
    一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、
    テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、
    前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段と、
    前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定する帳票同期手段と、
    前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定するモデル同期手段と、
    を有することを特徴とするシステムデータ構造管理装置。
  5. コンピュータシステムで利用されるデータ間の関係を図で表現するためのモデル情報と、利用されるデータをテーブルで表す帳票とをコンピュータで管理するためのシステムデータ構造管理方法において、
    あらかじめ、一意に識別可能な識別子が設定されており、属性ごとに属性値を設定できる複数のモデル要素によってデータ構造が定義されたモデル情報を記憶するモデル情報記憶手段と、テーブルの行と列との少なくともいずれか一方に前記モデル要素が関連付けられ、前記モデル要素が関連付けられた行または列に並べられたセルに対して、関連付けられた前記モデル要素に関する属性に応じた値が設定された帳票を記憶する帳票記憶手段と、前記帳票と同期させるモデル要素を同期対象モデル要素として定義する同期対象要素定義、前記帳票と同期させる属性を同期対象属性として定義する同期対象属性定義、および前記同期対象要素ごとの前記同期対象属性に応じた値をテーブルに並べる際のテーブル構造が定義されたテーブル構造定義を含むマッピング定義を記憶するマッピング定義記憶手段とを用意し、
    帳票同期手段が、前記モデル情報から前記帳票への同期要求が入力されると、前記同期対象要素定義に基づいて、前記モデル情報から前記同期対象モデル要素を抽出し、抽出した前記同期対象モデル要素を前記テーブル構造定義に従って前記帳票内の行または列に関連付け、関連付けた前記同期対象モデル要素の識別子を関連付けられた行または列に設定し、前記同期対象属性定義に基づいて、抽出した前記同期対象モデル要素に設定された前記同期対象属性の属性値を抽出し、抽出した前記同期対象属性の属性値に応じた値を、前記同期対象モデル要素が関連付けられた行または列に並べられたセルに前記テーブル構造定義に従って設定し、
    モデル同期手段が、前記帳票から前記モデル情報への同期要求が入力されると、前記テーブル構造定義に基づいて前記帳票内の前記同期対象モデル要素が関連付けられた行または列を判断し、該当する行または列に並べられたセルに対応する前記同期対象属性を前記テーブル構造定義に基づいて判断し、セルに設定された値に基づいて対応する前記同期対象属性の属性値を判断し、行または列に設定された識別子に対応する前記モデル情報内の前記同期対象モデル要素に対して、識別子が設定された行または列に並べられたセルに対応する前記同期対象属性の属性値を設定する、
    ことを特徴とするシステムデータ構造管理方法。
JP2006236719A 2006-08-31 2006-08-31 システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法 Withdrawn JP2008059367A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006236719A JP2008059367A (ja) 2006-08-31 2006-08-31 システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法
US11/650,692 US20080126407A1 (en) 2006-08-31 2007-01-05 System-data-architecture management system, system-data-architecture management process, and computer-readable medium storing system-data-architecture management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006236719A JP2008059367A (ja) 2006-08-31 2006-08-31 システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法

Publications (1)

Publication Number Publication Date
JP2008059367A true JP2008059367A (ja) 2008-03-13

Family

ID=39242006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006236719A Withdrawn JP2008059367A (ja) 2006-08-31 2006-08-31 システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法

Country Status (2)

Country Link
US (1) US20080126407A1 (ja)
JP (1) JP2008059367A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182184A (ja) * 2009-02-06 2010-08-19 Toshiba Corp 仕様管理装置及び仕様管理プログラム
JP2019028958A (ja) * 2017-08-04 2019-02-21 株式会社日立製作所 設計書学習装置および設計書学習方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392008B2 (en) * 2006-10-20 2013-03-05 Rockwell Automation Technologies, Inc. Module arbitration and ownership enhancements
US7684877B2 (en) * 2006-10-20 2010-03-23 Rockwell Automation Technologies, Inc. State propagation for modules
US20080095196A1 (en) * 2006-10-20 2008-04-24 Rockwell Automation Technologies, Inc. Unit to unit transfer synchronization
US7894917B2 (en) * 2006-10-20 2011-02-22 Rockwell Automation Technologies, Inc. Automatic fault tuning
US8601435B2 (en) 2006-10-20 2013-12-03 Rockwell Automation Technologies, Inc. Module class subsets for industrial control
US7676292B2 (en) * 2006-10-20 2010-03-09 Rockwell Automation Technologies, Inc. Patterns employed for module design
US7680550B2 (en) * 2006-10-20 2010-03-16 Rockwell Automation Technologies, Inc. Unit module state processing enhancements
US7725200B2 (en) * 2006-10-20 2010-05-25 Rockwell Automation Technologies, Inc. Validation of configuration settings in an industrial process
US7844349B2 (en) * 2006-10-20 2010-11-30 Rockwell Automation Technologies, Inc. Standard MES interface for discrete manufacturing
EP1965300A1 (en) * 2007-03-02 2008-09-03 Siemens Aktiengesellschaft A method for validating a graphical workflow translation
US8677310B2 (en) * 2008-06-30 2014-03-18 Rockwell Automation Technologies, Inc. Industry template abstracting and creation for use in industrial automation and information solutions
CN101419616A (zh) * 2008-12-10 2009-04-29 阿里巴巴集团控股有限公司 一种数据同步方法及装置
US8719229B1 (en) * 2012-10-12 2014-05-06 Autodesk, Inc. Cloud platform for managing design data
CN102930112B (zh) * 2012-11-12 2015-10-14 北京数码大方科技股份有限公司 对象属性的设置方法及装置
JP2015191258A (ja) * 2014-03-27 2015-11-02 富士通株式会社 プログラム、処理方法及び情報処理装置
CN106446090A (zh) * 2016-09-12 2017-02-22 浪潮软件股份有限公司 一种跨库传输海量数据的方法
US10972359B2 (en) * 2018-05-11 2021-04-06 Ciena Corporation Data structures representing models of networking equipment and methods of network management employing thereof
WO2021067447A1 (en) * 2019-09-30 2021-04-08 Stats Llc Augmented natural language generation platform

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275787B1 (en) * 1998-10-14 2001-08-14 Unisys Corp. Method for merging repository updates with incomplete work in progress
US6502239B2 (en) * 1998-11-12 2002-12-31 Computer Associates Think, Inc Method and apparatus for round-trip software engineering
US7480893B2 (en) * 2002-10-04 2009-01-20 Siemens Corporate Research, Inc. Rule-based system and method for checking compliance of architectural analysis and design models
TWI220713B (en) * 2002-10-04 2004-09-01 Hon Hai Prec Ind Co Ltd System and method for synchronizing documents between multi-nodes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182184A (ja) * 2009-02-06 2010-08-19 Toshiba Corp 仕様管理装置及び仕様管理プログラム
JP4625868B2 (ja) * 2009-02-06 2011-02-02 株式会社東芝 仕様管理装置及び仕様管理プログラム
JP2019028958A (ja) * 2017-08-04 2019-02-21 株式会社日立製作所 設計書学習装置および設計書学習方法

Also Published As

Publication number Publication date
US20080126407A1 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
JP2008059367A (ja) システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法
US11042691B2 (en) Editing electronic documents
EP2691873B1 (en) Techniques to create structured document templates using enhanced content controls
JP5193042B2 (ja) データベースアプリケーションで選択可能な機能制御を表示するためのコマンドユーザインターフェース
TWI393051B (zh) 用於管理及使用電腦生成文件中之資料的方法及電腦可讀媒體
JP3956553B2 (ja) アイコン表示処理装置
JP4141556B2 (ja) 構造化文書管理方法及びその実施装置並びにその処理プログラムを記録した媒体
US7127472B1 (en) Data processing method and data processing device
US9032002B2 (en) Single file serialization for physical and logical meta-model information
JP2009508227A (ja) ブラウズモードデザイナ
JP2009129017A (ja) 文書移行支援システム、監視装置、文書移行支援装置、方法、およびプログラム
JP2007509417A (ja) 静的リストを使用してデータを管理するシステムおよび方法
US9646013B2 (en) System and method for file management
US20230244854A1 (en) Document Transformation Between Program Formats and Templates System and Method
US9189469B2 (en) Apparatus and method for supporting creation of an electronic document
JP2008015558A (ja) コンテンツを作成するためのオーサリング・システム、ソフトウェア、および方法
JP2002091813A (ja) 統合文書管理システム、方法、及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005339549A (ja) データをラップするための方法およびシステム
US8170270B2 (en) Universal reader
JP2009265902A (ja) 文書管理装置、文書管理方法、情報処理プログラム及び記録媒体
JP2006072560A (ja) データ管理装置およびデータ管理方法
JP5413990B2 (ja) マニュアル作成情報管理装置、方法及びプログラム
JP2006344067A (ja) 情報処理装置、情報処理方法ならびにプログラム、記憶媒体
JP2001236345A5 (ja)
JP2007012093A (ja) ハブ文書作成方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20091110