(57)【要約】【課題】複雑なデータマッピングの動作検証に関わるテストデータを確実に作成すること。【解決手段】入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータを作成するデータマッピング方法であって、計算機４５０が、入力データのデータフォーマットと、入力データのデータフォーマットおよび出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、入力データのデータフォーマットを構成するデータ項目ごとに、マッピング情報に記載されたデータ項目の条件により発生する全ての分岐を網羅するように、テストデータのパターンを作成し、テストデータのパターンからテストデータを作成して、出力することを特徴とする。【選択図】図１
2007323371.tif 000002
【特許請求の範囲】
【請求項１】
入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング方法であって、
コンピュータが、
前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、
前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力することを実行し、
前記テストデータのパターンを作成する工程は、前記データ項目の条件が所定最小値から所定最大値までの繰り返しであるときに、所定最小値未満の値、所定最小値、所定最小値と所定最大値との中間値、所定最大値、所定最大値を超える値という前記テストデータのパターンを作成すること
を特徴とするデータマッピング方法。
【請求項２】
入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング方法であって、
コンピュータが、
前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、
前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力することを実行し、
前記テストデータのパターンを作成する工程は、前記データ項目の条件が所定条件を満たすか否かという選択であるときに、所定条件を満たす値、および、所定条件を満たさない値という前記テストデータのパターンを作成すること
を特徴とするデータマッピング方法。
【請求項３】
前記作成されたテストデータのパターンに対してデータマッピングを行い、前記テストデータのパターンに対する前記出力データを作成して、出力することを特徴とする請求項１または請求項２に記載のデータマッピング方法。
【請求項４】
前記テストデータのパターンを作成する工程は、前記データ項目の条件により発生する全ての分岐を網羅するために、必要最低限となる前記テストデータのパターンを作成することを特徴とする請求項１ないし請求項３のいずれか１項に記載のデータマッピング方法。
【請求項５】
入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング装置であって、
前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを格納する記憶部と、
前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力する組み合わせモデルパターンマップテーブル作成部と、
を有し、
前記組み合わせモデルパターンマップテーブル作成部は、前記データ項目の条件が所定最小値から所定最大値までの繰り返しであるときに、所定最小値未満の値、所定最小値、所定最小値と所定最大値との中間値、所定最大値、所定最大値を超える値という前記テストデータのパターンを作成すること
を特徴とするデータマッピング装置。
【請求項６】
入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング装置であって、
前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを格納する記憶部と、
前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力する組み合わせモデルパターンマップテーブル作成部と、
を有し、
前記組み合わせモデルパターンマップテーブル作成部は、前記データ項目の条件が所定条件を満たすか否かという選択であるときに、所定条件を満たす値、および、所定条件を満たさない値という前記テストデータのパターンを作成すること
を特徴とするデータマッピング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データマッピング方法、および、データマッピング装置に関する。具体的には、複数のデータフォーマットをマッピングさせるデータマッピング装置において、データマッピング情報の検証を行う上で必要となるテストデータのパターンを生成することが可能な技術に関する。
【背景技術】
【０００２】
アプリケーションシステム連携のためには、扱うデータのデータ構造、型、およびコード体系といったデータ形式の変換が不可欠となる。近年では、データ変換を行うための製品が数多く出ており、これらの製品においては、データ項目間の変換定義情報を取得し変換プログラムを生成することができる。
【０００３】
一般的に、データ変換においてデータマッピング情報の開発では、データマッピングの変換ルールを検証するためにテストデータを作成し、そのテストデータを変換プログラムに入力してデータ変換処理を実行し、出力結果を検証するという手法がとられる。
【０００４】
テストデータは、入力データフォーマットのデータ項目ごとにテストデータを作成したり、実際の業務アプリケーションで利用するデータを作成したりする。データマッピングには、単純なデータ項目間のマッピングだけではなく、データ項目値の演算、例えば商品価格を求める場合に商品単価と個数の積を求めたり、商品価格が１００，０００円を超えるようなものは１回の発注個数を最大１０００個以内にする制限を定義する、など複雑なマッピングを行うことも可能である。
【０００５】
従来はこのような処理を行うには、ユーザアプリケーションプログラムを開発してきたが、プログラムの保守性が悪く、維持コストもかかるため、高機能を持つデータ変換プログラムを活用する方式に変更する場合も多い。このような複雑なマッピングにおいて、マッピングの定義の妥当性を検証するためには、入力データとして出現する可能性のあるパターンの組み合わせを複数種類準備する必要があった。
【０００６】
マッピング検証に必要な入力データの作成負荷を軽減する方法として、特許文献１にあるように、データ変換定義時に用いたデータの定義情報（データ項目名などの属性値）を利用して、その定義情報からテストデータを自動生成することも考えられている。
【特許文献１】特開２００５−１７４００７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前記の従来技術によるテストデータの生成方式は、入力データフォーマットと出力データフォーマットの対応関係を定義する程度の簡単なデータ変換定義開発においては、非常に有効である。複雑なデータマッピングは、データ項目間の対応関係付けを行うものであり、データ項目間の条件定義やデータ出現回数の条件などが複数出現するようなマッピングを指す。従来技術は、複雑なデータマッピングに対応していない。
【０００８】
複雑なデータマッピングを定義する場合、その定義内容が正しいか否かを確かめるためには，出現可能なデータフォーマットのパターンを全ケース網羅するように設定する必要がある。しかし、全ケースを網羅するようなテストデータのパターンを作成するのは困難である。
【０００９】
例えば、条件が複数あれば、漏れがないように条件の組み合わせパターンを考える必要があるが、パターンが漏れることがある。一例として、書籍名や価格、著者名が定義されている書籍一覧情報より金額が５０００円を超えるもので、出版社が“Ａ出版”のものを抽出するような変換定義があるとする。条件式の内容は
「価格＞５０００円 ａｎｄ出版社＝“Ａ出版”」
になるが、この条件式が正しく評価されるか否かを検証するためには、以下の（１）〜（４）の４種類のデータを準備する必要がある。この４種類のデータの１つでもかけていた場合には、パターンが漏れることとなる。
（１）「価格≦５０００円 ａｎｄ出版社＝“Ａ出版”」
（２）「価格≦５０００円 ａｎｄ出版社≠“Ａ出版”」
（３）「価格＞５０００円 ａｎｄ出版社＝“Ａ出版”」
（４）「価格＞５０００円 ａｎｄ出版社≠“Ａ出版”」
【００１０】
本発明の主な目的は、複雑なデータマッピングの動作検証に関わるテストデータを確実に作成することである。
【課題を解決するための手段】
【００１１】
本発明は、入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータを作成するデータマッピング方法であって、コンピュータが、入力データのデータフォーマットと、入力データのデータフォーマットおよび出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、入力データのデータフォーマットを構成するデータ項目ごとに、マッピング情報に記載されたデータ項目の条件により発生する全ての分岐を網羅するように、テストデータのパターンを作成し、テストデータのパターンからテストデータを作成して、出力することを特徴とする。その他の手段は、後記する。
【発明の効果】
【００１２】
本発明によると、入力データのデータフォーマットおよびマッピング情報のデータ構造を論理的に解析することにより、複雑なデータマッピングの動作検証に関わるテストデータを作成できるため、テストデータの生成を容易にすることができる。そして、テストデータを用いたデータマッピングの動作検証を自動化するとともに、検証状況の確認結果をわかりやすく表示することにより、データマッピングの動作検証に関わる工数を削減することができる。
【００１３】
具体的には、マッピング変換の検証を行うときに、入力フォーマットの各項目の情報とマッピング情報を与えることにより、マッピング情報を検証するためのテストパターンを生成し、そのテストパターンを実行し、マッピング検証の進捗状況を確認することができる。
【００１４】
例えば、課題にあるような書籍名や価格、著者名が定義されている書籍一覧情報より金額が５０００円を超えるもので、出版社が“Ａ出版”のものを抽出するような変換定義がある場合について考えてみる。条件「価格≦５０００円 ａｎｄ出版社＝“Ａ出版”」からテストに必要最低限の組み合わせを考えパターンマップテーブルとして生成し、さらにテストに必要な組み合わせモデルデータ「価格＝３０００ ａｎｄ 出版社＝“Ａ出版”」などを生成することができる。これにより、テストケースの漏れもなくなり、かつテストの自動化も可能となるため、テスト作業の工数が大幅に短縮できる。
【発明を実施するための最良の形態】
【００１５】
本実施形態を説明する前提として、まず、一般的なデータフォーマットとマッピングの構成例を図１、図２を用いて説明する。図２はデータマッピング装置に入力するデータフォーマットのデータイメージとデータマッピング実行後の出力データフォーマット１９０のデータイメージを示す。
【００１６】
図１は、ツリー情報のメモリ構造を示す説明図である。つまり、データフォーマット定義情報をツリー状態に表示し、そのときのメモリの状態を表現したものである。
【００１７】
データフォーマットは、階層構造を持つデータ構造をツリー状に表している。データフォーマットは、入力されたデータを示す入力データフォーマット１８０、または、出力するデータを示す出力データフォーマット１９０に分類される。データフォーマットを構成する最小単位はノード（請求項のデータ項目）であり、１つのデータフォーマットは複数のノードから構成される。
【００１８】
ノードは、項目名、タイプ、長さ、出現回数の属性情報を持つ。例えば、入力データフォーマット１８０は、３つの入力ノード（第０入力ノード、第１入力ノード、および、第２入力ノード）から構成されている。第０入力ノードは、親子関係の最上位に位置するルートノードであり、そのノードＩＤは「Ｉ０」である。第１入力ノードは、第０入力ノードの子ノードであり、第２入力ノードの親ノードであり、そのノードＩＤは「Ｉ１」である。第２入力ノードは、第０入力ノードの孫ノードであり、第１入力ノードの子ノードであり、そのノードＩＤは「Ｉ２」である。
【００１９】
第０入力ノードはデータフォーマットの開始ノードを意味する論理ノードであり、項目名を持たない。第１入力ノードは項目名“ｐｅｒｓｏｎ”、と［１：３］で示される繰り返しを有する。［１：３］は、最小出現個数１個、最大出現個数３個を意味する。第２入力ノードも同様に、項目名、最小出現個数および最大出現個数を持つ。
【００２０】
出力データフォーマット１９０も入力データフォーマット１８０と同様な構造である。入力装置により定義された入力フォーマット情報および出力フォーマット情報は、メモリ上の記憶装置（例えばメモリやハードディスクなどの補助記憶装置など）に格納されるが、処理しやすい形で格納される。
【００２１】
出力データフォーマット１９０は、３つの出力ノード（第０出力ノード、第１出力ノード、および、第２出力ノード）から構成されている。第０出力ノードは、親子関係の最上位に位置するルートノードであり、そのノードＩＤは「Ｏ０」である。第１出力ノードは、第０出力ノードの子ノードであり、第２出力ノードの親ノードであり、そのノードＩＤは「Ｏ１」である。第２出力ノードは、第０出力ノードの孫ノードであり、第１出力ノードの子ノードであり、そのノードＩＤは「Ｏ２」である。
【００２２】
データ構造２１０は、データフォーマットをメモリ上に展開した構造例である。データ構造２１０に示すように、第０入力ノードで始まる入力データフォーマット１８０の情報をツリー状に格納するものとする。ノードにはそれぞれノードＩＤと呼ばれるものでデータ管理されている。各ノードは、そのノードの詳細属性情報が定義されている。詳細属性情報には、項目名、タイプ、長さ、条件などがある。
【００２３】
例えば、第１入力ノードの詳細属性情報２２０は、「項目名：“ｐｅｒｓｏｎ”、タイプ：なし、長さ：なし、条件：最小出現個数１個、最大出現個数３個」である。第０入力ノードと第１入力ノード、第１入力ノードと第２入力ノードはそれぞれ親子関係を意味する接続情報を持っている。
【００２４】
さらに第１入力ノードには後に述べるデータ変換のマッピング情報ある条件属性情報への接続情報も定義されている。出力データフォーマット１９０の情報も同様にメモリ上に格納される。なお、親子関係にあるノードの場合、親の持つ接続情報は、子供に継承することができる。例えば、親である第１入力ノードの属性に関する情報には項目名、タイプ、長さなどがあるが、第２入力ノードも同様な属性情報を持つことができる。
【００２５】
次に、データ変換のマッピング情報２００について説明する。マッピング情報２００とは、１つ以上の入力データフォーマット１８０のノードと、１つ以上の出力データフォーマット１９０のノードとを対応づける条件の集合である。マッピング情報２００には、第１入力ノードと第１出力ノードに、関係条件（Ｃ１：繰り返し）が破線で定義されており、複数回のノードの出現があることを意味する。データ構造２１０は、マッピング情報２００をメモリ上に展開した構造例である。
【００２６】
例えば、第１入力ノードは、データ項目名“ｐｅｒｓｏｎ”が最低１個、最大３個繰り返されて入力され、第１出力ノードに対応している。入力データに３個の“ｐｅｒｓｏｎ”が入力された場合、出力側である“ｈｕｍａｎ”も３個出力されることを意味する。第２入力ノードと第２出力ノードには関係条件（Ｃ２:選択）の関係と選択の条件の補足情報「文字数５文字以下」という条件が定義されている。
【００２７】
第２入力ノードの詳細属性情報２３０において、第２入力ノードはデータ項目名“ｎａｍｅ”が最低１個、最大５個繰り返されて入力され、出力も同様に最低１個、最大５個繰り返されて出力されるが、条件として「文字数５文字以下」を満たす必要がある。
【００２８】
図２は、データマッピング処理の入力データと出力結果の例を示す説明図である。例えば、図２の左側にある入力データが入力された場合、「文字数５文字以下」を満たす条件のみ出力データとして出力される。
【００２９】
なお、図１のデータ構造２１０のデータマッピング構造２４０は、繰り返しの条件２５０を含む。繰り返しの条件２５０について、親子関係にあるノードの場合、親の持つ繰り返しの情報も、子供のノードに継承することができる。例えば、親である第１入力ノードに繰り返しの情報があるが、この情報は第２入力ノードにも継承される。“ｐｅｒｓｏｎ”の出現が３回、“ｎａｍｅ”の出現が３回の場合、１個の“ｐｅｒｓｏｎ”に対して“ｎａｍｅ”が３個存在し、それらの組み合わせが３セットできることになる。
【００３０】
これらの条件のもとでデータ変換を実行した場合、図２の右側の出力データに記述されるような結果を得る。“ｐｅｒｓｏｎ”ノード名は“ｈｕｍａｎ”に変更され、５文字以下の名称を持つ名前を出力する条件である。パターン「１」の場合は５文字以下の名前を持つデータは“会社＿太郎”のみであるので、出力データは“ｈｕｍａｎ”ノードの子に“会社＿太郎”が１行出力される。パターン「２」の場合も同様、“ｐｅｒｓｏｎ”が２回出現するので“ｈｕｍａｎ”も２回出現し、その子に“会社＿太郎”が１行出力される。
【００３１】
図３は、データマッピング装置（請求項のコンピュータに相当）を示す構成図である。
【００３２】
データマッピング装置は、データフォーマット情報１０、データフォーマット展開部２０、マッピング情報定義部３０、マッピング情報展開部４０、ツリー情報記憶部５０、マッピング情報出力部６０、属性情報抽出部７０、条件抽出部８０、マッピング情報９０、組み合わせモデルパターンマップテーブル作成部１００、パターンマップテーブル１１０、組み合わせモデルデータ生成部１２０、組み合わせモデルデータ１３０、データマッピング部１４０、変換結果１５０、パターンマップテーブル１６０（テストデータのパターン）、および、マッピング検証進捗状況確認部１７０を有する。以下、各構成要素の詳細を説明する。パターンマップテーブル１１０とパターンマップテーブル１６０との違いは、図６を参照して、後記に説明する。
【００３３】
データフォーマット情報１０の記憶装置は、入力および出力用のデータフォーマット情報１０を格納する。データフォーマット情報１０は、例えば、ＸＭＬ（Extensible Markup Language）記述言語により記述される。データフォーマット展開部２０は、記憶装置のデータフォーマット情報１０を読み込み、ツリー形式に変換し、メモリ上のツリー情報記憶部５０に格納する。マッピング情報出力部６０は、ツリー情報記憶部５０のツリーから、マッピング情報９０を出力する。
【００３４】
なお、データフォーマット情報１０の記述言語は、ＸＭＬ記述言語に限定されるものではなく、ＸＭＬ記述言語以外で定義したものでも利用可能である。ＸＭＬ記述言語以外のフォーマットしては、従来より利用されているＣＳＶ形式や固定長／可変長形式、またはバイナリ形式などがある。
【００３５】
マッピング情報定義部３０は、ユーザが画面操作を利用して定義したデータ項目間の関係を入力する。マッピング情報展開部４０は、定義されたマッピング情報９０を、データフォーマット情報１０と同様にメモリ上のツリー情報記憶部５０に格納する。
【００３６】
図４は、属性情報および条件抽出する方法を示す説明図である。なお、データフォーマット展開部２０やマッピング情報展開部４０は、メモリ上のツリー情報記憶部５０にＸＭＬの情報をメモリに展開する方法として、例えば、図４に示すようなＸＭＬ技術を利用する。ＸＭＬ形式のデータフォーマット情報１０またはマッピング情報９０をメモリ上に展開するために、ＸＭＬ技術の１つであるＸＭＬプロセッサを利用する。
【００３７】
ＸＭＬプロセッサはＸＭＬ形式のデータ読み込み、「ＤＯＭ（Document Object Model）」と呼ばれるツリー（データ間に親子関係を定義した）形式の情報に変換する機能を持っている。「ＤＯＭ」のツリー情報から各ノードの階層に関する位置関係やそのノードの持つ固有属性情報の操作を行う機能として「ＤＯＭインタフェース」と呼ばれる機能がある。この「ＤＯＭインタフェース」を利用することにより、ユーザ業務のアプリケーションを構築することができる。データ変換もこのインタフェースを利用したアプリケーションの１つであると考えることができる。
【００３８】
さて、前記の手順で入力または定義されたデータフォーマット情報１０およびマッピング情報９０のメモリ上の構造が、前記に述べた図１のツリーに展開された構造である。
【００３９】
図３の組み合わせモデルパターンマップテーブル作成部１００について説明する。組み合わせモデルパターンマップテーブル作成部１００は、入力情報として、ツリー情報記憶部５０からＤＯＭインタフェースを利用した属性情報抽出部７０により抽出されたデータフォーマット情報１０と、ＤＯＭインタフェースを利用した条件抽出部８０により抽出されたマッピング情報９０の２種類を利用する。そして、組み合わせモデルデータ生成部１２０は、組み合わせモデルパターンマップテーブル作成部１００から入力情報を受信して、組み合わせモデルデータ１３０を作成する。
【００４０】
図５は、パターンマップテーブル作成の処理の流れを示すフローチャートである。この動作は、組み合わせモデルパターンマップテーブル作成部１００によって実行される。以下、組み合わせモデルパターンマップテーブルの作成について図１、図５を用いて説明する。
【００４１】
まず、図１のデータ構造２１０（フォーマット情報）から入力データフォーマット１８０に関するノード情報を取得する（Ｓ１０）。
【００４２】
データ構造２１０において、入力データフォーマット１８０の最上位ノード「Ｉ０」はルートノードであるので対象とせず、１番目の子ノードであるＩ１が最初に処理する対象ノードとなる。対象となるノードに関して、条件ノードが存在するか否かを、ノードの情報に条件があるか否かをもとに調べる（Ｓ２０）。
【００４３】
ノードの情報に条件がある場合（Ｓ２０でＹｅｓの場合）は、条件ノードの詳細属性情報を抽出することにより、条件ノードを取得する（Ｓ４０）。ノードの情報に条件がない場合（Ｓ２０でＮｏの場合）は、対象ノードの属性情報をパターンマップテーブル１１０に１レコード分出力（登録）する（Ｓ３０）。
【００４４】
図１の第１入力ノードには条件ノードＣ１が存在する。条件ノードの取得（Ｓ４０）では、Ｃ１に関して詳細属性情報を抽出する。詳細属性情報は、「タイプ：条件、詳細：繰り返し、条件：ノードの出現数」であることがわかる。ここで、詳細属性情報の詳細が繰り返しであるので（Ｓ５０，Ｙｅｓ）、詳細属性情報をもとに最大、中間、最小条件の３つの条件値を決定する（Ｓ６０）。
【００４５】
図１の第１入力ノードに定義されている詳細属性の中の「繰り返し」とは、条件ノードを繰り返すという意味ではなく、対象ノード（ここではＩ１）が繰り返されて出現する場合、出力側も繰り返して出力するという意味である。したがって、繰り返しの詳細な条件とは、Ｉ１の属性情報の中に存在する出現回数属性に相当するものとなる。
【００４６】
第１入力ノード（ノードＩＤ＝「Ｉ１」）の属性情報は、「データ項目名：ｐｅｒｓｏｎ、条件：最小出現個数１個、最大出現個数３個」が定義されている。ここでは最小出現個数１個、最大出現個数３個の情報が抽出される。これらの情報をもとに、３レコード分の条件を出力し（Ｓ７０）、パターンマップテーブル１１０にそれらのレコードが登録される。
【００４７】
図６は、パターンマップテーブルの構造を示す説明図である。図６にあるように、ノードＩＤが「Ｉ１」である３レコードが登録される。なお、「繰り返し」条件の場合、Ｓ７０において３レコード分出力することになっているが、この理由については、後で述べる。
【００４８】
２つ以上の条件を持つノードの場合のパターンマップテーブル１１０の作成方法について説明する。２つ以上の条件を持つ場合でも前記の流れになるが、条件のタイプに「選択」がある場合、処理の流れが異なる。条件ノードに「選択」を持つノードがある場合、Ｓ５０においてＮｏ判定に進み、詳細属性情報が「選択」か否か判定される(Ｓ９０)。「選択」（Ｓ９０でＹｅｓの場合）の場合、判定条件内容から判定値、判定値以外の２つの条件値を決定する（Ｓ１００）。そして、境界値と境界値以外の２レコード分の条件を出力する（Ｓ１１０）。
【００４９】
詳細属性情報が「選択」でないときには（Ｓ９０，Ｎｏ）、エラーを出力する（Ｓ１６０）。Ｓ７０，Ｓ１１０，Ｓ１６０の後、前記ノードの全ての条件について出力したか否かを判定する（Ｓ８０）。Ｓ８０でＹｅｓなら、Ｓ１２０に進み、Ｓ８０でＮｏなら、Ｓ４０に戻る。
【００５０】
そして、全ノード情報をパターンマップテーブル１１０に出力したか否かを判断する（Ｓ１２０）。Ｓ１２０でＹｅｓならば、項目の組み合わせ作成処理（Ｓ１３０）に進み、Ｓ１２０でＮｏならばＳ１０に戻る。
【００５１】
項目の組み合わせ作成処理（Ｓ１３０）が完了すると、モデルパターンの作成処理を実行する（Ｓ１４０）。すべてのモデルパターンをパターンマップテーブル１１０に出力し（Ｓ１５０）、パターンマップテーブル作成の処理は完了となる。
【００５２】
図６のパターンマップテーブル１１０は、５つの項目で構成される。なお、このテーブルに５つの項目以外の項目が存在してもよい。さらに、パターンマップテーブル１１０は行と列による組み合わせで定義されているが、この情報の記憶装置上の構造はどのような形式でもよい。リレーショナル型のデータベース上での管理、オブジェクトデータベース、テーブル構造をメモリ上に固有の形式で定義するなどいかなる管理方法を使ってもよい。パターンマップテーブル１６０は、パターンマップテーブル１１０に、実行フラグ３１０（詳細は後記）を追加するものである。
【００５３】
パターンマップテーブル１１０のうち、ノードＩＤ２６０およびノード名称２７０は、図１の入力データフォーマット１８０の各ノードに対応する。ノードＩＤ２６０には、対象としているデータフォーマット情報１０の対象ノードのノードＩＤが格納される。ノード名称２７０には、対象ノードの属性情報の中のデータ項目名が格納される。
【００５４】
パターンマップテーブル１１０のうち、条件タイプ２８０および条件値２９０は、図１のマッピング情報２００に対応する。条件タイプ２８０には、条件ノードの詳細条件タイプが格納されている。繰り返し条件の場合は「Ｌｏｏｐ」、選択条件の場合は「Ｉｆ」が格納される。条件値２９０には、条件の境界値が格納される。条件の範囲「最小値」と「最大値」を持つ場合（例えば、Ｌｏｏｐ回数の最大値と最小値など）、条件の境界値は「最小値」、「最大値−１」および「最大値」と定義するものとする。条件の組み合わせとしては、「最小値未満」、「最小値」、「最小値と最大値の中間値」、「最大値」、「最大値を超える」５つのパターンを作成する。
【００５５】
通常データ変換を可能とするトランスレータと呼ばれる製品においては、データ変換処理の前に、あらかじめ最小値未満のデータや最大値を超えるデータを実行時に検証（ＸＭＬフォーマットの場合スキーマ検証と呼ばれる）する機能を持ち合わせているため、「最小値未満」および「最大値を超える」パターンはデータとして意味をなさない。このため、これらの条件については、組み合わせの対象としない。
【００５６】
パターンマップテーブル１１０のうち、パターン番号３００は、パターンを一意に識別する番号である。例えば、パターン番号が「１」であるパターンは、ノードＩＤ「Ｉ１」が１ノードの繰り返し、ならびに、ノードＩＤ「Ｉ２」が１ノードの繰り返し、および、「５文字以内」となるパターンを示す。
【００５７】
ここで、図５の処理の中で、Ｓ６０およびＳ１００の処理について説明を追加する。図１の第１入力ノードの属性情報を考えてみる。前記条件の境界に対する考え方を考慮すると、Ｉ１の属性情報「データ項目名：ｐｅｒｓｏｎ、条件：最小出現個数１個、最大出現個数３個」と、条件情報「タイプ：条件、詳細：繰り返し、条件：ノードの出現数」より、図６のノードＩＤ２６０には“Ｉ１”を、ノード名称２７０には“ｐｅｒｓｏｎ”を、条件タイプ２８０には“Ｌｏｏｐ”を、条件値２９０には最小値である“１ノード”と中間値である“２ノード”と最大値である“３ノード”の情報を作成し、３つのレコードをエントリする。
【００５８】
図１の第２入力ノードの属性情報を考えてみる。第２入力ノードは第１入力ノードの子の関係に位置しており、第２入力ノードの属性情報「データ項目名：ｐｅｒｓｏｎ、条件：最小出現個数１個、最大出現個数５個」と、第１入力ノードと第２入力ノードとの親子関係に伴う継承のための条件情報「タイプ：条件、詳細：繰り返し、条件：ノードの出現数」と条件情報「タイプ：条件、詳細：選択、条件：５文字以内」の２つの条件が存在する。
【００５９】
図１のＣ３のノードは関数による代入であり、条件ではないのでここでは省略する。条件情報「タイプ：条件、詳細：繰り返し、条件：ノードの出現数」より、図６のノードＩＤ２６０には“Ｉ２”を、ノード名称２７０には“ｎａｍｅ”を、条件タイプ２８０には“Ｌｏｏｐ”を、条件値２９０には最小値である“１ノード”と中間値である“４ノード”と最大値である“５ノード”の情報を作成し、３つのレコードをエントリする。
【００６０】
さらに、もう１つの条件情報「タイプ：条件、詳細：選択、条件：５文字以内」より、ノードＩＤ２６０には“Ｉ２”を、ノード名称２７０には“ｎａｍｅ”を、条件タイプ２８０には“Ｉｆ”を、条件値２９０には分岐条件である“５文字以内”と“５文字を超えるものが存在”の情報を作成し、２つのレコードをエントリする。このように、条件タイプ２８０が“Ｉｆ”のときには、条件を満たす場合と、満たさない場合という２つのパターンを作成する。
【００６１】
次に項目組み合わせ作成（Ｓ１３０）について詳しく説明する。図６のパターンマップテーブル１１０では３つの異なる条件と９つの条件値で構成されている。通常すべての組み合わせを生成する場合３＊３＊２＝１８通りの組み合わせが考えられる。
【００６２】
しかし、データマッピングを検証する場合、すべてのノード条件を最低１回網羅する組み合わせを確認することが重要であり、すべての組み合わせを検証する必要はない。仮に条件が３０個、条件値がそれぞれ３個持つ場合、組み合わせ総数は、３の３０乗＝２０５８９１１３２０９４６４９通りとなり、データ検証の処理に膨大な時間がかかる。本実施形態では、この組み合わせを減少させ、ノード条件を網羅するために必要最小限の組み合わせとするための方法を説明する。
【００６３】
まず、ノードが１つの場合、例えば、図６の第１入力ノードの条件だけが存在する場合には、最小値，中間値および最大値の３つのパターンを生成すればよい。
【００６４】
ノードが２つの場合、例えば、図６の第１入力ノードおよびＩ２の「Ｌｏｏｐ」の条件の場合、パターン「１」：「Ｉ１の最小値とＩ２の最小値」、パターン「２」：「Ｉ１の中間値とＩ２の最小値」、パターン「３」：「Ｉ１の最大値とＩ２の最小値」、パターン「４」：「Ｉ１の最小値とＩ２の中間値」、パターン「５」：「Ｉ１の最小値とＩ２の最大値」の５つのパターンを検証すれば必要最低限の組み合わせは実行できる。「Ｉ１の中間値とＩ２の中間値」については、パターン「２」でのＩ１の中間値の検証およびパターン「４」でのＩ２の中間値の検証ができるので組み合わせパターンとしては不要である。同様に「Ｉ１の中間値とＩ２の最大値」や「Ｉ１の最大値とＩ２の最大値」について不要である。
【００６５】
「Ｉｆ」条件がこれらに加わった場合、図６の場合、前記と同様に最小値と最小の分岐条件とを組み合わせるパターン（パターン「１」）とそれ以外の最大の分岐条件を組み合わせるパターン（パターン「２」〜パターン「５」）ですべての条件を検証することができる。
【００６６】
この組み合わせ方法を適用するとノードがＮ個がある場合には２＊Ｎ＋１通りのパターンを生成することで必要最低限のパターンを検証することができる計算となる。ノードが３０個の場合には、２＊３０＋１＝６１通りで必要十分である。前記の方法で組み合わせを作成し、図６のパターンマップテーブル１１０にあるように“○”を定義する。ここでは、表現方法として○を使っているが、どのパターンにどの条件があるかを意味するフラグ情報を設定することでも対応可能である。
【００６７】
図５のメインの処理に流れを戻し、組み合わせモデルデータ生成部１２０（図３）について図１、図６〜図８を用いて説明する。組み合わせモデルパターンマップテーブル作成部１００で作成されたパターンマップテーブル１１０と各ノードの属性情報より組み合わせモデルデータを作成する。
【００６８】
まず、図６にあるパターンマップテーブル１１０のそれぞれのパターン番号３００に該当する“○”の条件に該当する行のデータ（ノードＩＤ、ノード名称、条件タイプ、条件値）を検索し、該当するノードの値を生成する。例えば、図６のパターン「１」には、第１入力ノード「Ｉ１」および第２入力ノード「Ｉ２」２つのノードのデータが該当する。第１入力ノード「Ｉ１」の場合、このテーブルより「ノード：“Ｉ１”、ノード名称：“ｐｅｒｓｏｎ”、Ｌｏｏｐ：“１ノード”」を抽出し、データを生成する。
【００６９】
同じく第２入力ノードの場合、「ノード：“Ｉ２”、ノード名称：“ｎａｍｅ”、Ｌｏｏｐ：“１ノード”」「ノード：“Ｉ２”、ノード名称：“ｎａｍｅ”、Ｉｆ：“５文字以内”」の２つの情報を抽出する。ここで、Ｉ２のデータの出現に関するものは条件タイプに“Ｌｏｏｐ”をもつ場合であるので、「ノード：“Ｉ２”、ノード名称：“ｎａｍｅ”、Ｌｏｏｐ：“１ノード”」の条件よりＩ２のデータを生成する。生成するときにもう１つの条件「ノード：“Ｉ２”、ノード名称：“ｎａｍｅ”、Ｉｆ：“５文字以内”」を考慮する必要があり、前記の生成条件として５文字以内のノード名称をもつデータとして作成する。
【００７０】
データ生成するときに、ノードの属性タイプに応じたデータを生成することができる。例えば、Ｉ２の属性タイプは“文字列”型であるので、アルファベット“ａａａａａ”を出力する。、数字型の場合には数字列“１１１１１”を出力する。“ａａａａａ”の次のノードを出力するときには、“ｂｂｂｂｂ”を設定する。
【００７１】
図７は、図６にあるパターンマップテーブル１１０から作成された、組み合わせモデルデータの例を示す説明図である。図８は、図７の組み合わせモデルデータによるデータマッピング処理の出力結果を示す説明図である。図６〜図８は、パターン番号３００によって、各データが対応づけられている。出力される項目値としては、アルファベット順に自動付与しているが、数字や任意の文字列、固定データなど多様な値を出力してもよい。すべてのモデルパターンをすべてテストモデルとして出力する。
【００７２】
データマッピング部１４０は、生成されたモデルパターンを使い、データマッピングを実行する。データマッピングの処理については、トランスレータ製品そのものを実行することで実現できる。ただし、本実施形態においては、変換結果１５０に加えて、各モデルパターンの実行状況を図６のパターンマップテーブル１６０の情報の実行フラグ３１０として出力する機能を持つ。
【００７３】
例えば、図７のパターン「１」のモデルデータの変換が実行される場合、変換完了と同時にパターン「１」に使用された条件のフラグに“済”を設定する。以下パターン「２」からパターン「５」までを実行し、それぞれ実行フラグ３１０が設定される。例では、条件のどれか１つが実行されればフラグが設定されるように定義しているが、パターン毎に実行フラグ３１０を設けてもよい。
【００７４】
次にデータマッピングを実行し、作成されたパターンマップテーブル１１０より、マッピング検証進捗状況確認部１７０の処理について、図６、図９および図１０を用いて説明する。
【００７５】
図９は、マッピング検証進捗状況確認の処理の流れを示すフローチャートである。まず、データマッピング処理完了後のパターンマップテーブル１１０の情報を読み込む（Ｓ２１０）。読み込んだパターンマップテーブル１１０の中のテスト結果情報から実行したテストパターンの実行フラグ３１０の情報を抽出する（Ｓ２２０）。
【００７６】
具体的には、図６の実行フラグ３１０の列の中で実行フラグ３１０に“済”マークが付いている情報を検索する。「ノードＩＤ：Ｉ１、ノード名称：“ｐｅｒｓｏｎ”、条件タイプ：“Ｌｏｏｐ”、条件値：１ノード」「ノードＩＤ：Ｉ１、ノード名称：“ｐｅｒｓｏｎ”、条件タイプ：“Ｌｏｏｐ”、条件値：２ノード」「ノードＩＤ：Ｉ１、ノード名称：“ｐｅｒｓｏｎ”、条件タイプ：“Ｌｏｏｐ”、条件値：３ノード」の３つの情報が抽出される。
【００７７】
次の検索された情報よりノードＩＤを抽出する。前記抽出されたデータからは第１入力ノードが抽出される。さらにこのノードＩＤの情報から図１にあるツリー展開された構造から該当するノード情報を抽出する（Ｓ２３０）。対象となるノードの表示情報を作成して表示する（Ｓ２４０）。表示情報は、例えば、図１のツリー展開された構造の情報の中に格納されているものとする。表示情報は、画面上のどの位置に情報を表示しているのかという位置座標などを格納する。
【００７８】
図１の表示例にあるように、フォーマット情報のツリーの状態での画面表示や関係情報を表示できるものとする。つまり、実行済みのフラグがどのノードに設定されているか否かの情報があれば、実行済みの状態を表示するための情報を作成し、画面上に表示することができる。
【００７９】
図１０は、マッピング検証進捗状況確認の結果画面の例を示す説明図である。つまり、図６のパターンマップテーブル１１０の結果を画面上に表示したものである。実行したテストパターンの情報３２０と、実行済みの表示情報３３０および未実行の表示情報３４０から構成される。テストパターン３２０は選択可能であり、参照したいパターンに関する結果のみを表示することも可能である。また表示情報３３０および表示情報３４０については、実線と破線により識別しているが、そのほかの方法として色による識別や文字による識別を行ってもよい。
【００８０】
そして、全テストパターンを出力したか否かを判定し（Ｓ２５０）、出力していないなら（Ｓ２５０，Ｎｏ）Ｓ２２０に戻る。このようにしてすべてのパターンの画面表示を行う。
【００８１】
図１１は、データマッピング装置を示す構成図である。
【００８２】
データマッピング装置である計算機４５０は、データフォーマットの定義やマッピング情報を画面上で定義するための入力装置３７０と、入力装置３７０に入力されたデータおよびそのデータの計算結果を画面上に表示するための表示装置３５０から構成される。入力装置３７０で入力された情報は入力制御部３８０を通し、主メモリ４００にあるツリー情報記憶部５０に格納される。
【００８３】
ツリー情報記憶部５０に格納された情報を使い、図５の処理の流れの中でデータフォーマット情報、マッピング情報、パターンマップテーブル、組み合わせモデルデータをＨＤＤ４３０に格納する（各データの詳細は、図３参照）。なお、ＨＤＤ４３０は、記憶手段の一例であり、メモリなどの別の記憶手段を用いてもよい。
【００８４】
また、データマッピングのための変換プログラムは、主メモリ４００中の変換プログラム群４２０に格納され、ＣＰＵ３９０を使って変換実行される、変換で生成される変換結果１５０、パターンマップテーブル１１０などは、ＨＤＤやメモリなどにより実現される記憶手段４４０に格納される。表示装置３５０は、記憶手段４４０に格納される各データを表示する。
【００８５】
以上説明した本実施形態を要約する。計算機４５０は、表示装置３５０の画面上に入力された、入力データまたは出力データにおけるデータ項目の論理的なデータ構造を表すデータフォーマットに基づき、入力データまたは出力データのデータフォーマット情報１０を作成する。
【００８６】
そして、計算機４５０は、データフォーマットとデータフォーマット情報１０を主メモリ４００に格納し、主メモリ４００に格納された入力データと出力データのデータフォーマットを読み出し画面上に表示する。
【００８７】
さらに、計算機４５０は、データフォーマット間のデータ項目間に関係条件を定義する画面上において、定義された各データフォーマット情報１０を参照しながら入力側のデータフォーマットと出力側のデータフォーマット間での関係条件となる変換ルール（以下マッピング情報９０と呼ぶ）の定義が入力されると、主メモリ４００にその定義を格納する。
【００８８】
そして、計算機４５０は、主メモリ４００に格納されたマッピング情報の妥当性を検証するために、主メモリ４００中の入力データフォーマット１８０の情報とマッピング情報９０に基づき、マッピング情報検証のために必要最低限の入力データフォーマット１８０のテストパターンを生成しパターンマップテーブル１１０を作成し、記憶手段４４０に格納する。
【００８９】
さらに、計算機４５０は、パターンマップテーブル１１０より、テストに必要な組み合わせモデルデータ１３０を作成し記憶手段４４０に格納する。記憶手段４４０に格納された組み合わせモデルデータを入力データとし、データ変換を実行し、パターンマップテーブル１１０に実行結果情報を追加し、実行結果として記憶手段４４０に格納する。
【００９０】
そして、計算機４５０は、記憶装置に格納された実行結果情報を入力データとし、実行の進捗状況を画面上に表示する。
【図面の簡単な説明】
【００９１】
【図１】本発明の一実施形態に関するツリー情報のメモリ構造を示す説明図である。
【図２】本発明の一実施形態に関するデータマッピング処理の入力データと出力結果の例を示す説明図である。
【図３】本発明の一実施形態に関するデータマッピング装置を示す構成図である。
【図４】本発明の一実施形態に関する属性情報および条件抽出する方法を示す説明図である。
【図５】本発明の一実施形態に関するパターンマップテーブル作成の処理の流れを示すフローチャートである。
【図６】本発明の一実施形態に関するパターンマップテーブルの構造を示す説明図である。
【図７】本発明の一実施形態に関する組み合わせモデルデータの例を示す説明図である。
【図８】本発明の一実施形態に関する生成された組み合わせモデルデータによるデータマッピング処理の出力結果を示す説明図である。
【図９】本発明の一実施形態に関するマッピング検証進捗状況確認の処理の流れを示すフローチャートである。
【図１０】本発明の一実施形態に関するマッピング検証進捗状況確認の結果画面の例を示す説明図である。
【図１１】本発明の一実施形態に関するデータマッピング装置を示す構成図である。
【符号の説明】
【００９２】
５０    ツリー情報記憶部
３５０  表示装置
３６０  表示処理部
３７０  入力装置
３８０  入力制御部
３９０  ＣＰＵ
４００  主メモリ
４２０  変換プログラム群
４３０  ＨＤＤ
４４０  記憶手段
４５０  計算機
【図１】
2007323371.tif 000003
【図２】
2007323371.tif 000004
【図３】
2007323371.tif 000005
【図４】
2007323371.tif 000006
【図５】
2007323371.tif 000007
【図６】
2007323371.tif 000008
【図７】
2007323371.tif 000009
【図８】
2007323371.tif 000010
【図９】
2007323371.tif 000011
【図１０】
2007323371.tif 000012
【図１１】
2007323371.tif 000013