JP2007323371A - データマッピング方法、および、データマッピング装置 - Google Patents

データマッピング方法、および、データマッピング装置 Download PDF

Info

Publication number
JP2007323371A
JP2007323371A JP2006152948A JP2006152948A JP2007323371A JP 2007323371 A JP2007323371 A JP 2007323371A JP 2006152948 A JP2006152948 A JP 2006152948A JP 2006152948 A JP2006152948 A JP 2006152948A JP 2007323371 A JP2007323371 A JP 2007323371A
Authority
JP
Japan
Prior art keywords
data
pattern
mapping
format
node
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.)
Pending
Application number
JP2006152948A
Other languages
English (en)
Inventor
Shigeki Kirihara
重喜 桐原
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006152948A priority Critical patent/JP2007323371A/ja
Publication of JP2007323371A publication Critical patent/JP2007323371A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】複雑なデータマッピングの動作検証に関わるテストデータを確実に作成すること。
【解決手段】入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータを作成するデータマッピング方法であって、計算機450が、入力データのデータフォーマットと、入力データのデータフォーマットおよび出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、入力データのデータフォーマットを構成するデータ項目ごとに、マッピング情報に記載されたデータ項目の条件により発生する全ての分岐を網羅するように、テストデータのパターンを作成し、テストデータのパターンからテストデータを作成して、出力することを特徴とする。
【選択図】図1

Description

本発明は、データマッピング方法、および、データマッピング装置に関する。具体的には、複数のデータフォーマットをマッピングさせるデータマッピング装置において、データマッピング情報の検証を行う上で必要となるテストデータのパターンを生成することが可能な技術に関する。
アプリケーションシステム連携のためには、扱うデータのデータ構造、型、およびコード体系といったデータ形式の変換が不可欠となる。近年では、データ変換を行うための製品が数多く出ており、これらの製品においては、データ項目間の変換定義情報を取得し変換プログラムを生成することができる。
一般的に、データ変換においてデータマッピング情報の開発では、データマッピングの変換ルールを検証するためにテストデータを作成し、そのテストデータを変換プログラムに入力してデータ変換処理を実行し、出力結果を検証するという手法がとられる。
テストデータは、入力データフォーマットのデータ項目ごとにテストデータを作成したり、実際の業務アプリケーションで利用するデータを作成したりする。データマッピングには、単純なデータ項目間のマッピングだけではなく、データ項目値の演算、例えば商品価格を求める場合に商品単価と個数の積を求めたり、商品価格が100,000円を超えるようなものは1回の発注個数を最大1000個以内にする制限を定義する、など複雑なマッピングを行うことも可能である。
従来はこのような処理を行うには、ユーザアプリケーションプログラムを開発してきたが、プログラムの保守性が悪く、維持コストもかかるため、高機能を持つデータ変換プログラムを活用する方式に変更する場合も多い。このような複雑なマッピングにおいて、マッピングの定義の妥当性を検証するためには、入力データとして出現する可能性のあるパターンの組み合わせを複数種類準備する必要があった。
マッピング検証に必要な入力データの作成負荷を軽減する方法として、特許文献1にあるように、データ変換定義時に用いたデータの定義情報(データ項目名などの属性値)を利用して、その定義情報からテストデータを自動生成することも考えられている。
特開2005−174007号公報
前記の従来技術によるテストデータの生成方式は、入力データフォーマットと出力データフォーマットの対応関係を定義する程度の簡単なデータ変換定義開発においては、非常に有効である。複雑なデータマッピングは、データ項目間の対応関係付けを行うものであり、データ項目間の条件定義やデータ出現回数の条件などが複数出現するようなマッピングを指す。従来技術は、複雑なデータマッピングに対応していない。
複雑なデータマッピングを定義する場合、その定義内容が正しいか否かを確かめるためには,出現可能なデータフォーマットのパターンを全ケース網羅するように設定する必要がある。しかし、全ケースを網羅するようなテストデータのパターンを作成するのは困難である。
例えば、条件が複数あれば、漏れがないように条件の組み合わせパターンを考える必要があるが、パターンが漏れることがある。一例として、書籍名や価格、著者名が定義されている書籍一覧情報より金額が5000円を超えるもので、出版社が“A出版”のものを抽出するような変換定義があるとする。条件式の内容は
「価格>5000円 and出版社=“A出版”」
になるが、この条件式が正しく評価されるか否かを検証するためには、以下の(1)〜(4)の4種類のデータを準備する必要がある。この4種類のデータの1つでもかけていた場合には、パターンが漏れることとなる。
(1)「価格≦5000円 and出版社=“A出版”」
(2)「価格≦5000円 and出版社≠“A出版”」
(3)「価格>5000円 and出版社=“A出版”」
(4)「価格>5000円 and出版社≠“A出版”」
本発明の主な目的は、複雑なデータマッピングの動作検証に関わるテストデータを確実に作成することである。
本発明は、入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータを作成するデータマッピング方法であって、コンピュータが、入力データのデータフォーマットと、入力データのデータフォーマットおよび出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、入力データのデータフォーマットを構成するデータ項目ごとに、マッピング情報に記載されたデータ項目の条件により発生する全ての分岐を網羅するように、テストデータのパターンを作成し、テストデータのパターンからテストデータを作成して、出力することを特徴とする。その他の手段は、後記する。
本発明によると、入力データのデータフォーマットおよびマッピング情報のデータ構造を論理的に解析することにより、複雑なデータマッピングの動作検証に関わるテストデータを作成できるため、テストデータの生成を容易にすることができる。そして、テストデータを用いたデータマッピングの動作検証を自動化するとともに、検証状況の確認結果をわかりやすく表示することにより、データマッピングの動作検証に関わる工数を削減することができる。
具体的には、マッピング変換の検証を行うときに、入力フォーマットの各項目の情報とマッピング情報を与えることにより、マッピング情報を検証するためのテストパターンを生成し、そのテストパターンを実行し、マッピング検証の進捗状況を確認することができる。
例えば、課題にあるような書籍名や価格、著者名が定義されている書籍一覧情報より金額が5000円を超えるもので、出版社が“A出版”のものを抽出するような変換定義がある場合について考えてみる。条件「価格≦5000円 and出版社=“A出版”」からテストに必要最低限の組み合わせを考えパターンマップテーブルとして生成し、さらにテストに必要な組み合わせモデルデータ「価格=3000 and 出版社=“A出版”」などを生成することができる。これにより、テストケースの漏れもなくなり、かつテストの自動化も可能となるため、テスト作業の工数が大幅に短縮できる。
本実施形態を説明する前提として、まず、一般的なデータフォーマットとマッピングの構成例を図1、図2を用いて説明する。図2はデータマッピング装置に入力するデータフォーマットのデータイメージとデータマッピング実行後の出力データフォーマット190のデータイメージを示す。
図1は、ツリー情報のメモリ構造を示す説明図である。つまり、データフォーマット定義情報をツリー状態に表示し、そのときのメモリの状態を表現したものである。
データフォーマットは、階層構造を持つデータ構造をツリー状に表している。データフォーマットは、入力されたデータを示す入力データフォーマット180、または、出力するデータを示す出力データフォーマット190に分類される。データフォーマットを構成する最小単位はノード(請求項のデータ項目)であり、1つのデータフォーマットは複数のノードから構成される。
ノードは、項目名、タイプ、長さ、出現回数の属性情報を持つ。例えば、入力データフォーマット180は、3つの入力ノード(第0入力ノード、第1入力ノード、および、第2入力ノード)から構成されている。第0入力ノードは、親子関係の最上位に位置するルートノードであり、そのノードIDは「I0」である。第1入力ノードは、第0入力ノードの子ノードであり、第2入力ノードの親ノードであり、そのノードIDは「I1」である。第2入力ノードは、第0入力ノードの孫ノードであり、第1入力ノードの子ノードであり、そのノードIDは「I2」である。
第0入力ノードはデータフォーマットの開始ノードを意味する論理ノードであり、項目名を持たない。第1入力ノードは項目名“person”、と[1:3]で示される繰り返しを有する。[1:3]は、最小出現個数1個、最大出現個数3個を意味する。第2入力ノードも同様に、項目名、最小出現個数および最大出現個数を持つ。
出力データフォーマット190も入力データフォーマット180と同様な構造である。入力装置により定義された入力フォーマット情報および出力フォーマット情報は、メモリ上の記憶装置(例えばメモリやハードディスクなどの補助記憶装置など)に格納されるが、処理しやすい形で格納される。
出力データフォーマット190は、3つの出力ノード(第0出力ノード、第1出力ノード、および、第2出力ノード)から構成されている。第0出力ノードは、親子関係の最上位に位置するルートノードであり、そのノードIDは「O0」である。第1出力ノードは、第0出力ノードの子ノードであり、第2出力ノードの親ノードであり、そのノードIDは「O1」である。第2出力ノードは、第0出力ノードの孫ノードであり、第1出力ノードの子ノードであり、そのノードIDは「O2」である。
データ構造210は、データフォーマットをメモリ上に展開した構造例である。データ構造210に示すように、第0入力ノードで始まる入力データフォーマット180の情報をツリー状に格納するものとする。ノードにはそれぞれノードIDと呼ばれるものでデータ管理されている。各ノードは、そのノードの詳細属性情報が定義されている。詳細属性情報には、項目名、タイプ、長さ、条件などがある。
例えば、第1入力ノードの詳細属性情報220は、「項目名:“person”、タイプ:なし、長さ:なし、条件:最小出現個数1個、最大出現個数3個」である。第0入力ノードと第1入力ノード、第1入力ノードと第2入力ノードはそれぞれ親子関係を意味する接続情報を持っている。
さらに第1入力ノードには後に述べるデータ変換のマッピング情報ある条件属性情報への接続情報も定義されている。出力データフォーマット190の情報も同様にメモリ上に格納される。なお、親子関係にあるノードの場合、親の持つ接続情報は、子供に継承することができる。例えば、親である第1入力ノードの属性に関する情報には項目名、タイプ、長さなどがあるが、第2入力ノードも同様な属性情報を持つことができる。
次に、データ変換のマッピング情報200について説明する。マッピング情報200とは、1つ以上の入力データフォーマット180のノードと、1つ以上の出力データフォーマット190のノードとを対応づける条件の集合である。マッピング情報200には、第1入力ノードと第1出力ノードに、関係条件(C1:繰り返し)が破線で定義されており、複数回のノードの出現があることを意味する。データ構造210は、マッピング情報200をメモリ上に展開した構造例である。
例えば、第1入力ノードは、データ項目名“person”が最低1個、最大3個繰り返されて入力され、第1出力ノードに対応している。入力データに3個の“person”が入力された場合、出力側である“human”も3個出力されることを意味する。第2入力ノードと第2出力ノードには関係条件(C2:選択)の関係と選択の条件の補足情報「文字数5文字以下」という条件が定義されている。
第2入力ノードの詳細属性情報230において、第2入力ノードはデータ項目名“name”が最低1個、最大5個繰り返されて入力され、出力も同様に最低1個、最大5個繰り返されて出力されるが、条件として「文字数5文字以下」を満たす必要がある。
図2は、データマッピング処理の入力データと出力結果の例を示す説明図である。例えば、図2の左側にある入力データが入力された場合、「文字数5文字以下」を満たす条件のみ出力データとして出力される。
なお、図1のデータ構造210のデータマッピング構造240は、繰り返しの条件250を含む。繰り返しの条件250について、親子関係にあるノードの場合、親の持つ繰り返しの情報も、子供のノードに継承することができる。例えば、親である第1入力ノードに繰り返しの情報があるが、この情報は第2入力ノードにも継承される。“person”の出現が3回、“name”の出現が3回の場合、1個の“person”に対して“name”が3個存在し、それらの組み合わせが3セットできることになる。
これらの条件のもとでデータ変換を実行した場合、図2の右側の出力データに記述されるような結果を得る。“person”ノード名は“human”に変更され、5文字以下の名称を持つ名前を出力する条件である。パターン「1」の場合は5文字以下の名前を持つデータは“会社_太郎”のみであるので、出力データは“human”ノードの子に“会社_太郎”が1行出力される。パターン「2」の場合も同様、“person”が2回出現するので“human”も2回出現し、その子に“会社_太郎”が1行出力される。
図3は、データマッピング装置(請求項のコンピュータに相当)を示す構成図である。
データマッピング装置は、データフォーマット情報10、データフォーマット展開部20、マッピング情報定義部30、マッピング情報展開部40、ツリー情報記憶部50、マッピング情報出力部60、属性情報抽出部70、条件抽出部80、マッピング情報90、組み合わせモデルパターンマップテーブル作成部100、パターンマップテーブル110、組み合わせモデルデータ生成部120、組み合わせモデルデータ130、データマッピング部140、変換結果150、パターンマップテーブル160(テストデータのパターン)、および、マッピング検証進捗状況確認部170を有する。以下、各構成要素の詳細を説明する。パターンマップテーブル110とパターンマップテーブル160との違いは、図6を参照して、後記に説明する。
データフォーマット情報10の記憶装置は、入力および出力用のデータフォーマット情報10を格納する。データフォーマット情報10は、例えば、XML(Extensible Markup Language)記述言語により記述される。データフォーマット展開部20は、記憶装置のデータフォーマット情報10を読み込み、ツリー形式に変換し、メモリ上のツリー情報記憶部50に格納する。マッピング情報出力部60は、ツリー情報記憶部50のツリーから、マッピング情報90を出力する。
なお、データフォーマット情報10の記述言語は、XML記述言語に限定されるものではなく、XML記述言語以外で定義したものでも利用可能である。XML記述言語以外のフォーマットしては、従来より利用されているCSV形式や固定長/可変長形式、またはバイナリ形式などがある。
マッピング情報定義部30は、ユーザが画面操作を利用して定義したデータ項目間の関係を入力する。マッピング情報展開部40は、定義されたマッピング情報90を、データフォーマット情報10と同様にメモリ上のツリー情報記憶部50に格納する。
図4は、属性情報および条件抽出する方法を示す説明図である。なお、データフォーマット展開部20やマッピング情報展開部40は、メモリ上のツリー情報記憶部50にXMLの情報をメモリに展開する方法として、例えば、図4に示すようなXML技術を利用する。XML形式のデータフォーマット情報10またはマッピング情報90をメモリ上に展開するために、XML技術の1つであるXMLプロセッサを利用する。
XMLプロセッサはXML形式のデータ読み込み、「DOM(Document Object Model)」と呼ばれるツリー(データ間に親子関係を定義した)形式の情報に変換する機能を持っている。「DOM」のツリー情報から各ノードの階層に関する位置関係やそのノードの持つ固有属性情報の操作を行う機能として「DOMインタフェース」と呼ばれる機能がある。この「DOMインタフェース」を利用することにより、ユーザ業務のアプリケーションを構築することができる。データ変換もこのインタフェースを利用したアプリケーションの1つであると考えることができる。
さて、前記の手順で入力または定義されたデータフォーマット情報10およびマッピング情報90のメモリ上の構造が、前記に述べた図1のツリーに展開された構造である。
図3の組み合わせモデルパターンマップテーブル作成部100について説明する。組み合わせモデルパターンマップテーブル作成部100は、入力情報として、ツリー情報記憶部50からDOMインタフェースを利用した属性情報抽出部70により抽出されたデータフォーマット情報10と、DOMインタフェースを利用した条件抽出部80により抽出されたマッピング情報90の2種類を利用する。そして、組み合わせモデルデータ生成部120は、組み合わせモデルパターンマップテーブル作成部100から入力情報を受信して、組み合わせモデルデータ130を作成する。
図5は、パターンマップテーブル作成の処理の流れを示すフローチャートである。この動作は、組み合わせモデルパターンマップテーブル作成部100によって実行される。以下、組み合わせモデルパターンマップテーブルの作成について図1、図5を用いて説明する。
まず、図1のデータ構造210(フォーマット情報)から入力データフォーマット180に関するノード情報を取得する(S10)。
データ構造210において、入力データフォーマット180の最上位ノード「I0」はルートノードであるので対象とせず、1番目の子ノードであるI1が最初に処理する対象ノードとなる。対象となるノードに関して、条件ノードが存在するか否かを、ノードの情報に条件があるか否かをもとに調べる(S20)。
ノードの情報に条件がある場合(S20でYesの場合)は、条件ノードの詳細属性情報を抽出することにより、条件ノードを取得する(S40)。ノードの情報に条件がない場合(S20でNoの場合)は、対象ノードの属性情報をパターンマップテーブル110に1レコード分出力(登録)する(S30)。
図1の第1入力ノードには条件ノードC1が存在する。条件ノードの取得(S40)では、C1に関して詳細属性情報を抽出する。詳細属性情報は、「タイプ:条件、詳細:繰り返し、条件:ノードの出現数」であることがわかる。ここで、詳細属性情報の詳細が繰り返しであるので(S50,Yes)、詳細属性情報をもとに最大、中間、最小条件の3つの条件値を決定する(S60)。
図1の第1入力ノードに定義されている詳細属性の中の「繰り返し」とは、条件ノードを繰り返すという意味ではなく、対象ノード(ここではI1)が繰り返されて出現する場合、出力側も繰り返して出力するという意味である。したがって、繰り返しの詳細な条件とは、I1の属性情報の中に存在する出現回数属性に相当するものとなる。
第1入力ノード(ノードID=「I1」)の属性情報は、「データ項目名:person、条件:最小出現個数1個、最大出現個数3個」が定義されている。ここでは最小出現個数1個、最大出現個数3個の情報が抽出される。これらの情報をもとに、3レコード分の条件を出力し(S70)、パターンマップテーブル110にそれらのレコードが登録される。
図6は、パターンマップテーブルの構造を示す説明図である。図6にあるように、ノードIDが「I1」である3レコードが登録される。なお、「繰り返し」条件の場合、S70において3レコード分出力することになっているが、この理由については、後で述べる。
2つ以上の条件を持つノードの場合のパターンマップテーブル110の作成方法について説明する。2つ以上の条件を持つ場合でも前記の流れになるが、条件のタイプに「選択」がある場合、処理の流れが異なる。条件ノードに「選択」を持つノードがある場合、S50においてNo判定に進み、詳細属性情報が「選択」か否か判定される(S90)。「選択」(S90でYesの場合)の場合、判定条件内容から判定値、判定値以外の2つの条件値を決定する(S100)。そして、境界値と境界値以外の2レコード分の条件を出力する(S110)。
詳細属性情報が「選択」でないときには(S90,No)、エラーを出力する(S160)。S70,S110,S160の後、前記ノードの全ての条件について出力したか否かを判定する(S80)。S80でYesなら、S120に進み、S80でNoなら、S40に戻る。
そして、全ノード情報をパターンマップテーブル110に出力したか否かを判断する(S120)。S120でYesならば、項目の組み合わせ作成処理(S130)に進み、S120でNoならばS10に戻る。
項目の組み合わせ作成処理(S130)が完了すると、モデルパターンの作成処理を実行する(S140)。すべてのモデルパターンをパターンマップテーブル110に出力し(S150)、パターンマップテーブル作成の処理は完了となる。
図6のパターンマップテーブル110は、5つの項目で構成される。なお、このテーブルに5つの項目以外の項目が存在してもよい。さらに、パターンマップテーブル110は行と列による組み合わせで定義されているが、この情報の記憶装置上の構造はどのような形式でもよい。リレーショナル型のデータベース上での管理、オブジェクトデータベース、テーブル構造をメモリ上に固有の形式で定義するなどいかなる管理方法を使ってもよい。パターンマップテーブル160は、パターンマップテーブル110に、実行フラグ310(詳細は後記)を追加するものである。
パターンマップテーブル110のうち、ノードID260およびノード名称270は、図1の入力データフォーマット180の各ノードに対応する。ノードID260には、対象としているデータフォーマット情報10の対象ノードのノードIDが格納される。ノード名称270には、対象ノードの属性情報の中のデータ項目名が格納される。
パターンマップテーブル110のうち、条件タイプ280および条件値290は、図1のマッピング情報200に対応する。条件タイプ280には、条件ノードの詳細条件タイプが格納されている。繰り返し条件の場合は「Loop」、選択条件の場合は「If」が格納される。条件値290には、条件の境界値が格納される。条件の範囲「最小値」と「最大値」を持つ場合(例えば、Loop回数の最大値と最小値など)、条件の境界値は「最小値」、「最大値−1」および「最大値」と定義するものとする。条件の組み合わせとしては、「最小値未満」、「最小値」、「最小値と最大値の中間値」、「最大値」、「最大値を超える」5つのパターンを作成する。
通常データ変換を可能とするトランスレータと呼ばれる製品においては、データ変換処理の前に、あらかじめ最小値未満のデータや最大値を超えるデータを実行時に検証(XMLフォーマットの場合スキーマ検証と呼ばれる)する機能を持ち合わせているため、「最小値未満」および「最大値を超える」パターンはデータとして意味をなさない。このため、これらの条件については、組み合わせの対象としない。
パターンマップテーブル110のうち、パターン番号300は、パターンを一意に識別する番号である。例えば、パターン番号が「1」であるパターンは、ノードID「I1」が1ノードの繰り返し、ならびに、ノードID「I2」が1ノードの繰り返し、および、「5文字以内」となるパターンを示す。
ここで、図5の処理の中で、S60およびS100の処理について説明を追加する。図1の第1入力ノードの属性情報を考えてみる。前記条件の境界に対する考え方を考慮すると、I1の属性情報「データ項目名:person、条件:最小出現個数1個、最大出現個数3個」と、条件情報「タイプ:条件、詳細:繰り返し、条件:ノードの出現数」より、図6のノードID260には“I1”を、ノード名称270には“person”を、条件タイプ280には“Loop”を、条件値290には最小値である“1ノード”と中間値である“2ノード”と最大値である“3ノード”の情報を作成し、3つのレコードをエントリする。
図1の第2入力ノードの属性情報を考えてみる。第2入力ノードは第1入力ノードの子の関係に位置しており、第2入力ノードの属性情報「データ項目名:person、条件:最小出現個数1個、最大出現個数5個」と、第1入力ノードと第2入力ノードとの親子関係に伴う継承のための条件情報「タイプ:条件、詳細:繰り返し、条件:ノードの出現数」と条件情報「タイプ:条件、詳細:選択、条件:5文字以内」の2つの条件が存在する。
図1のC3のノードは関数による代入であり、条件ではないのでここでは省略する。条件情報「タイプ:条件、詳細:繰り返し、条件:ノードの出現数」より、図6のノードID260には“I2”を、ノード名称270には“name”を、条件タイプ280には“Loop”を、条件値290には最小値である“1ノード”と中間値である“4ノード”と最大値である“5ノード”の情報を作成し、3つのレコードをエントリする。
さらに、もう1つの条件情報「タイプ:条件、詳細:選択、条件:5文字以内」より、ノードID260には“I2”を、ノード名称270には“name”を、条件タイプ280には“If”を、条件値290には分岐条件である“5文字以内”と“5文字を超えるものが存在”の情報を作成し、2つのレコードをエントリする。このように、条件タイプ280が“If”のときには、条件を満たす場合と、満たさない場合という2つのパターンを作成する。
次に項目組み合わせ作成(S130)について詳しく説明する。図6のパターンマップテーブル110では3つの異なる条件と9つの条件値で構成されている。通常すべての組み合わせを生成する場合3*3*2=18通りの組み合わせが考えられる。
しかし、データマッピングを検証する場合、すべてのノード条件を最低1回網羅する組み合わせを確認することが重要であり、すべての組み合わせを検証する必要はない。仮に条件が30個、条件値がそれぞれ3個持つ場合、組み合わせ総数は、3の30乗=205891132094649通りとなり、データ検証の処理に膨大な時間がかかる。本実施形態では、この組み合わせを減少させ、ノード条件を網羅するために必要最小限の組み合わせとするための方法を説明する。
まず、ノードが1つの場合、例えば、図6の第1入力ノードの条件だけが存在する場合には、最小値,中間値および最大値の3つのパターンを生成すればよい。
ノードが2つの場合、例えば、図6の第1入力ノードおよびI2の「Loop」の条件の場合、パターン「1」:「I1の最小値とI2の最小値」、パターン「2」:「I1の中間値とI2の最小値」、パターン「3」:「I1の最大値とI2の最小値」、パターン「4」:「I1の最小値とI2の中間値」、パターン「5」:「I1の最小値とI2の最大値」の5つのパターンを検証すれば必要最低限の組み合わせは実行できる。「I1の中間値とI2の中間値」については、パターン「2」でのI1の中間値の検証およびパターン「4」でのI2の中間値の検証ができるので組み合わせパターンとしては不要である。同様に「I1の中間値とI2の最大値」や「I1の最大値とI2の最大値」について不要である。
「If」条件がこれらに加わった場合、図6の場合、前記と同様に最小値と最小の分岐条件とを組み合わせるパターン(パターン「1」)とそれ以外の最大の分岐条件を組み合わせるパターン(パターン「2」〜パターン「5」)ですべての条件を検証することができる。
この組み合わせ方法を適用するとノードがN個がある場合には2*N+1通りのパターンを生成することで必要最低限のパターンを検証することができる計算となる。ノードが30個の場合には、2*30+1=61通りで必要十分である。前記の方法で組み合わせを作成し、図6のパターンマップテーブル110にあるように“○”を定義する。ここでは、表現方法として○を使っているが、どのパターンにどの条件があるかを意味するフラグ情報を設定することでも対応可能である。
図5のメインの処理に流れを戻し、組み合わせモデルデータ生成部120(図3)について図1、図6〜図8を用いて説明する。組み合わせモデルパターンマップテーブル作成部100で作成されたパターンマップテーブル110と各ノードの属性情報より組み合わせモデルデータを作成する。
まず、図6にあるパターンマップテーブル110のそれぞれのパターン番号300に該当する“○”の条件に該当する行のデータ(ノードID、ノード名称、条件タイプ、条件値)を検索し、該当するノードの値を生成する。例えば、図6のパターン「1」には、第1入力ノード「I1」および第2入力ノード「I2」2つのノードのデータが該当する。第1入力ノード「I1」の場合、このテーブルより「ノード:“I1”、ノード名称:“person”、Loop:“1ノード”」を抽出し、データを生成する。
同じく第2入力ノードの場合、「ノード:“I2”、ノード名称:“name”、Loop:“1ノード”」「ノード:“I2”、ノード名称:“name”、If:“5文字以内”」の2つの情報を抽出する。ここで、I2のデータの出現に関するものは条件タイプに“Loop”をもつ場合であるので、「ノード:“I2”、ノード名称:“name”、Loop:“1ノード”」の条件よりI2のデータを生成する。生成するときにもう1つの条件「ノード:“I2”、ノード名称:“name”、If:“5文字以内”」を考慮する必要があり、前記の生成条件として5文字以内のノード名称をもつデータとして作成する。
データ生成するときに、ノードの属性タイプに応じたデータを生成することができる。例えば、I2の属性タイプは“文字列”型であるので、アルファベット“aaaaa”を出力する。、数字型の場合には数字列“11111”を出力する。“aaaaa”の次のノードを出力するときには、“bbbbb”を設定する。
図7は、図6にあるパターンマップテーブル110から作成された、組み合わせモデルデータの例を示す説明図である。図8は、図7の組み合わせモデルデータによるデータマッピング処理の出力結果を示す説明図である。図6〜図8は、パターン番号300によって、各データが対応づけられている。出力される項目値としては、アルファベット順に自動付与しているが、数字や任意の文字列、固定データなど多様な値を出力してもよい。すべてのモデルパターンをすべてテストモデルとして出力する。
データマッピング部140は、生成されたモデルパターンを使い、データマッピングを実行する。データマッピングの処理については、トランスレータ製品そのものを実行することで実現できる。ただし、本実施形態においては、変換結果150に加えて、各モデルパターンの実行状況を図6のパターンマップテーブル160の情報の実行フラグ310として出力する機能を持つ。
例えば、図7のパターン「1」のモデルデータの変換が実行される場合、変換完了と同時にパターン「1」に使用された条件のフラグに“済”を設定する。以下パターン「2」からパターン「5」までを実行し、それぞれ実行フラグ310が設定される。例では、条件のどれか1つが実行されればフラグが設定されるように定義しているが、パターン毎に実行フラグ310を設けてもよい。
次にデータマッピングを実行し、作成されたパターンマップテーブル110より、マッピング検証進捗状況確認部170の処理について、図6、図9および図10を用いて説明する。
図9は、マッピング検証進捗状況確認の処理の流れを示すフローチャートである。まず、データマッピング処理完了後のパターンマップテーブル110の情報を読み込む(S210)。読み込んだパターンマップテーブル110の中のテスト結果情報から実行したテストパターンの実行フラグ310の情報を抽出する(S220)。
具体的には、図6の実行フラグ310の列の中で実行フラグ310に“済”マークが付いている情報を検索する。「ノードID:I1、ノード名称:“person”、条件タイプ:“Loop”、条件値:1ノード」「ノードID:I1、ノード名称:“person”、条件タイプ:“Loop”、条件値:2ノード」「ノードID:I1、ノード名称:“person”、条件タイプ:“Loop”、条件値:3ノード」の3つの情報が抽出される。
次の検索された情報よりノードIDを抽出する。前記抽出されたデータからは第1入力ノードが抽出される。さらにこのノードIDの情報から図1にあるツリー展開された構造から該当するノード情報を抽出する(S230)。対象となるノードの表示情報を作成して表示する(S240)。表示情報は、例えば、図1のツリー展開された構造の情報の中に格納されているものとする。表示情報は、画面上のどの位置に情報を表示しているのかという位置座標などを格納する。
図1の表示例にあるように、フォーマット情報のツリーの状態での画面表示や関係情報を表示できるものとする。つまり、実行済みのフラグがどのノードに設定されているか否かの情報があれば、実行済みの状態を表示するための情報を作成し、画面上に表示することができる。
図10は、マッピング検証進捗状況確認の結果画面の例を示す説明図である。つまり、図6のパターンマップテーブル110の結果を画面上に表示したものである。実行したテストパターンの情報320と、実行済みの表示情報330および未実行の表示情報340から構成される。テストパターン320は選択可能であり、参照したいパターンに関する結果のみを表示することも可能である。また表示情報330および表示情報340については、実線と破線により識別しているが、そのほかの方法として色による識別や文字による識別を行ってもよい。
そして、全テストパターンを出力したか否かを判定し(S250)、出力していないなら(S250,No)S220に戻る。このようにしてすべてのパターンの画面表示を行う。
図11は、データマッピング装置を示す構成図である。
データマッピング装置である計算機450は、データフォーマットの定義やマッピング情報を画面上で定義するための入力装置370と、入力装置370に入力されたデータおよびそのデータの計算結果を画面上に表示するための表示装置350から構成される。入力装置370で入力された情報は入力制御部380を通し、主メモリ400にあるツリー情報記憶部50に格納される。
ツリー情報記憶部50に格納された情報を使い、図5の処理の流れの中でデータフォーマット情報、マッピング情報、パターンマップテーブル、組み合わせモデルデータをHDD430に格納する(各データの詳細は、図3参照)。なお、HDD430は、記憶手段の一例であり、メモリなどの別の記憶手段を用いてもよい。
また、データマッピングのための変換プログラムは、主メモリ400中の変換プログラム群420に格納され、CPU390を使って変換実行される、変換で生成される変換結果150、パターンマップテーブル110などは、HDDやメモリなどにより実現される記憶手段440に格納される。表示装置350は、記憶手段440に格納される各データを表示する。
以上説明した本実施形態を要約する。計算機450は、表示装置350の画面上に入力された、入力データまたは出力データにおけるデータ項目の論理的なデータ構造を表すデータフォーマットに基づき、入力データまたは出力データのデータフォーマット情報10を作成する。
そして、計算機450は、データフォーマットとデータフォーマット情報10を主メモリ400に格納し、主メモリ400に格納された入力データと出力データのデータフォーマットを読み出し画面上に表示する。
さらに、計算機450は、データフォーマット間のデータ項目間に関係条件を定義する画面上において、定義された各データフォーマット情報10を参照しながら入力側のデータフォーマットと出力側のデータフォーマット間での関係条件となる変換ルール(以下マッピング情報90と呼ぶ)の定義が入力されると、主メモリ400にその定義を格納する。
そして、計算機450は、主メモリ400に格納されたマッピング情報の妥当性を検証するために、主メモリ400中の入力データフォーマット180の情報とマッピング情報90に基づき、マッピング情報検証のために必要最低限の入力データフォーマット180のテストパターンを生成しパターンマップテーブル110を作成し、記憶手段440に格納する。
さらに、計算機450は、パターンマップテーブル110より、テストに必要な組み合わせモデルデータ130を作成し記憶手段440に格納する。記憶手段440に格納された組み合わせモデルデータを入力データとし、データ変換を実行し、パターンマップテーブル110に実行結果情報を追加し、実行結果として記憶手段440に格納する。
そして、計算機450は、記憶装置に格納された実行結果情報を入力データとし、実行の進捗状況を画面上に表示する。
本発明の一実施形態に関するツリー情報のメモリ構造を示す説明図である。 本発明の一実施形態に関するデータマッピング処理の入力データと出力結果の例を示す説明図である。 本発明の一実施形態に関するデータマッピング装置を示す構成図である。 本発明の一実施形態に関する属性情報および条件抽出する方法を示す説明図である。 本発明の一実施形態に関するパターンマップテーブル作成の処理の流れを示すフローチャートである。 本発明の一実施形態に関するパターンマップテーブルの構造を示す説明図である。 本発明の一実施形態に関する組み合わせモデルデータの例を示す説明図である。 本発明の一実施形態に関する生成された組み合わせモデルデータによるデータマッピング処理の出力結果を示す説明図である。 本発明の一実施形態に関するマッピング検証進捗状況確認の処理の流れを示すフローチャートである。 本発明の一実施形態に関するマッピング検証進捗状況確認の結果画面の例を示す説明図である。 本発明の一実施形態に関するデータマッピング装置を示す構成図である。
符号の説明
50 ツリー情報記憶部
350 表示装置
360 表示処理部
370 入力装置
380 入力制御部
390 CPU
400 主メモリ
420 変換プログラム群
430 HDD
440 記憶手段
450 計算機

Claims (6)

  1. 入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング方法であって、
    コンピュータが、
    前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、
    前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力することを実行し、
    前記テストデータのパターンを作成する工程は、前記データ項目の条件が所定最小値から所定最大値までの繰り返しであるときに、所定最小値未満の値、所定最小値、所定最小値と所定最大値との中間値、所定最大値、所定最大値を超える値という前記テストデータのパターンを作成すること
    を特徴とするデータマッピング方法。
  2. 入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング方法であって、
    コンピュータが、
    前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを記憶部に格納し、
    前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力することを実行し、
    前記テストデータのパターンを作成する工程は、前記データ項目の条件が所定条件を満たすか否かという選択であるときに、所定条件を満たす値、および、所定条件を満たさない値という前記テストデータのパターンを作成すること
    を特徴とするデータマッピング方法。
  3. 前記作成されたテストデータのパターンに対してデータマッピングを行い、前記テストデータのパターンに対する前記出力データを作成して、出力することを特徴とする請求項1または請求項2に記載のデータマッピング方法。
  4. 前記テストデータのパターンを作成する工程は、前記データ項目の条件により発生する全ての分岐を網羅するために、必要最低限となる前記テストデータのパターンを作成することを特徴とする請求項1ないし請求項3のいずれか1項に記載のデータマッピング方法。
  5. 入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング装置であって、
    前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを格納する記憶部と、
    前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力する組み合わせモデルパターンマップテーブル作成部と、
    を有し、
    前記組み合わせモデルパターンマップテーブル作成部は、前記データ項目の条件が所定最小値から所定最大値までの繰り返しであるときに、所定最小値未満の値、所定最小値、所定最小値と所定最大値との中間値、所定最大値、所定最大値を超える値という前記テストデータのパターンを作成すること
    を特徴とするデータマッピング装置。
  6. 入力データのデータフォーマットから出力データのデータフォーマットへのデータマッピングを検証するためのテストデータのパターンを作成するデータマッピング装置であって、
    前記入力データのデータフォーマットと、前記入力データのデータフォーマットおよび前記出力データのデータフォーマットの対応情報を示すマッピング情報とを格納する記憶部と、
    前記入力データのデータフォーマットを構成するデータ項目ごとに、前記マッピング情報に記載された前記データ項目の条件により発生する全ての分岐を網羅するように、前記テストデータのパターンを作成して、出力する組み合わせモデルパターンマップテーブル作成部と、
    を有し、
    前記組み合わせモデルパターンマップテーブル作成部は、前記データ項目の条件が所定条件を満たすか否かという選択であるときに、所定条件を満たす値、および、所定条件を満たさない値という前記テストデータのパターンを作成すること
    を特徴とするデータマッピング装置。
JP2006152948A 2006-06-01 2006-06-01 データマッピング方法、および、データマッピング装置 Pending JP2007323371A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006152948A JP2007323371A (ja) 2006-06-01 2006-06-01 データマッピング方法、および、データマッピング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006152948A JP2007323371A (ja) 2006-06-01 2006-06-01 データマッピング方法、および、データマッピング装置

Publications (1)

Publication Number Publication Date
JP2007323371A true JP2007323371A (ja) 2007-12-13

Family

ID=38856117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006152948A Pending JP2007323371A (ja) 2006-06-01 2006-06-01 データマッピング方法、および、データマッピング装置

Country Status (1)

Country Link
JP (1) JP2007323371A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011204069A (ja) * 2010-03-26 2011-10-13 Nec Corp テスト方法およびテスト仕様書テストデータ自動生成装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011204069A (ja) * 2010-03-26 2011-10-13 Nec Corp テスト方法およびテスト仕様書テストデータ自動生成装置

Similar Documents

Publication Publication Date Title
US7644370B2 (en) Method of componentisation of a graphically defined formula
JP5005510B2 (ja) ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
US7840891B1 (en) Method and system for content extraction from forms
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
US6698010B1 (en) System, method and computer program product for automatic generation of data processing program
JP2012243123A (ja) グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム
JP5460629B2 (ja) 表形式ソフトウェア仕様作成支援方法、及び装置
JP2008140095A (ja) 意思決定支援システム
US6931414B1 (en) Creating visual data models combining multiple inter-related model segments
JP5747698B2 (ja) 要件管理支援装置
JP2013084023A (ja) 仕様作成支援装置、及び、プログラム
JP5835084B2 (ja) クエリ統合方法、クエリ統合プログラム、および統合コンポーネント生成装置
JP2000003379A (ja) プロダクトモデルにおける図面作成装置
JP2007323371A (ja) データマッピング方法、および、データマッピング装置
JP2010039751A (ja) ソフトウェア開発システム
CN114296726A (zh) 一种代码生成方法、装置、计算机设备和存储介质
JP4906424B2 (ja) Webサービス設計方法及び装置
JP5504212B2 (ja) テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム
JP2011204069A (ja) テスト方法およびテスト仕様書テストデータ自動生成装置
JP6562850B2 (ja) 差分解析装置、差分解析方法及び差分解析プログラム
JP2001060240A (ja) フォーマット修正方法およびデータ変換方法
JP6062735B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム
US20090319983A1 (en) Intellectual property model creating apparatus, intellectual property model creating method, and computer product
JP2015011685A (ja) ビジネスルール管理システム及びビジネスルール管理方法
JP5600826B1 (ja) 非構造化データ処理システム、非構造化データ処理方法およびプログラム