(57)【要約】【課題】上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する。【解決手段】  ＰＩＭデータ５１と、変換ルールデータに基づいてＰＩＭデータ５１から生成されたＰＳＭデータ６１とを記憶するリポジトリデータ２１と、ＰＳＭデー６１タから修正されたＰＳＭデータ６２を記憶し、ＰＳＭデータ６１とＰＳＭデータ６２とを比較して差分を差分適用データ３３として出力する差分抽出手段１２と、ＰＩＭデータ５１が修正されＰＩＭデータ５２が生成されると、変換ルールデータ及び差分適用データ３３とに基づいてＰＩＭデータ５２からＰＳＭデータ６３を生成する差分適用手段１５とを備える。【選択図】図１
2008225898.tif 000002
【特許請求の範囲】
【請求項１】
上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換装置であって、
第１の上流工程成果物データと、前記変換ルールデータに基づいて前記第１の上流工程成果物データから生成された前記第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、
前記第１の下流工程成果物データから修正された第２の下流工程成果物データを、前記記憶装置に記憶する修正データ記憶手段と、
前記第１の下流工程成果物データと前記第２の下流工程成果物データとを比較して、前記第１の下流工程成果物データと前記第２の下流工程成果物データとの差分を差分適用データとして出力し、前記差分適用データを前記記憶装置に記憶する差分抽出手段と、
前記第１の上流工程成果物データが修正され第２の上流工程成果物データが生成されると、前記変換ルールデータ及び前記差分適用データとに基づいて前記第２の上流工程成果物データから前記第３の下流工程成果物データを生成する差分適用手段
とを備えることを特徴とする変換装置。
【請求項２】
前記差分抽出手段は、
前記第１の下流工程成果物データから第１の差分抽出データを生成するとともに、前記第２の下流工程成果物データから第２の差分抽出データを生成して、前記第１の差分抽出データ及び前記第２の差分抽出データを前記記憶装置に記憶する差分抽出データ生成手段と、
前記記憶装置から前記第１の差分抽出データ及び前記第２の差分抽出データを読み出して、前記第１の差分抽出データを前記第２の差分抽出データを比較する差分抽出データ比較手段と、
前記差分抽出データ比較手段による比較結果に基づいて前記差分適用データを出力して、前記差分適用データを前記記憶装置に記憶する差分適用データ生成手段
とを備えることを特徴とする請求項１に記載の変換装置。
【請求項３】
前記第１及び第２の上流工程成果物データ及び前記第１及び第２の下流工程成果物データは、木構造で表現可能で、複数の要素で表現される文書データであって、
前記差分抽出データ生成手段は、前記第１の下流工程成果物データの各要素について、前記要素の要素名、前記要素に関連づけられた属性名及び属性値のリスト、前記要素の識別子を関連づけた前記第１の差分抽出データを生成するとともに、前記第２の下流工程成果物データの各要素について、前記要素の要素名、前記ノードに関連づけられた属性名及び属性値のリスト、前記要素の識別子を関連づけた前記第２の差分抽出データを生成し、
前記差分抽出データ比較手段は、前記第１の差分抽出データと前記第２の差分抽出データのそれぞれについて部分木データを作成し、前記第１の差分抽出データの部分木データと前記第２の差分抽出データの部分木データが等しい部分木データを抽出して前記第１の差分抽出データと前記第２の差分抽出データのそれぞれから削除し、前記第１の差分抽出データの部分木データと前記第２の差分抽出データの部分木データが異なる部分木データに含まれる各要素について、前記要素名、前記属性名リスト及び前記属性値リストが等しい前記要素を抽出して前記第１の差分抽出データと前記第２の差分抽出データのそれぞれから削除し、
前記差分適用データ生成手段は、前記第１の差分抽出データと前記第２の差分抽出データのそれぞれに共通する前記要素の識別子に関連づけられた要素の区分を変更に設定し、前記第１の差分抽出データに含まれ前記第２の差分抽出データに含まれない前記要素の識別子に関連づけられた要素の区分を削除に設定し、前記第２の差分抽出データに含まれ前記第１の差分抽出データに含まれない前記要素の識別子に関連づけられた要素の区分を削除に設定し、前記要素の識別子及び前記区分を関連づけた差分適用データを出力して、前記差分適用データを前記記憶装置に記憶する
ことを特徴とする請求項２に記載の変換装置。
【請求項４】
上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換装置であって、
上流工程成果物データと、第１の変換ルールデータに基づいて前記上流工程成果物データから生成された前記第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、
前記第１の下流工程成果物データから修正された第２の下流工程成果物データを、前記記憶装置に記憶する修正データ記憶手段と、
前記第１の下流工程成果物データと前記第２の下流工程成果物データとを比較して、前記第１の下流工程成果物データと前記第２の下流工程成果物データとの差分を差分適用データとして出力し、前記差分適用データを前記記憶装置に記憶する差分抽出手段と、
前記第１の変換ルールデータが修正され第２の変換ルールデータが生成されると、前記第２の変換ルールデータ及び前記差分適用データとに基づいて前記上流工程成果物データから前記第３の下流工程成果物データを生成する差分適用手段
とを備えることを特徴とする変換装置。
【請求項５】
上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換プログラムであって、
第１の上流工程成果物データと、前記変換ルールデータに基づいて前記第１の上流工程成果物データから生成された前記第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、
前記第１の下流工程成果物データから修正された第２の下流工程成果物データを、前記記憶装置に記憶する修正データ記憶手段と、
前記第１の下流工程成果物データと前記第２の下流工程成果物データとを比較して、前記第１の下流工程成果物データと前記第２の下流工程成果物データとの差分を差分適用データとして出力し、前記差分適用データを前記記憶装置に記憶する差分抽出手段と、
前記第１の上流工程成果物データが修正され第２の上流工程成果物データが生成されると、前記変換ルールデータ及び前記差分適用データとに基づいて前記第２の上流工程成果物データから前記第３の下流工程成果物データを生成する差分適用手段
とをコンピュータに実現させることを特徴とする変換プログラム。
【請求項６】
上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換プログラムであって、
上流工程成果物データと、第１の変換ルールデータに基づいて前記上流工程成果物データから生成された前記第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、
前記第１の下流工程成果物データから修正された第２の下流工程成果物データを、前記記憶装置に記憶する修正データ記憶手段と、
前記第１の下流工程成果物データと前記第２の下流工程成果物データとを比較して、前記第１の下流工程成果物データと前記第２の下流工程成果物データとの差分を差分適用データとして出力し、前記差分適用データを前記記憶装置に記憶する差分抽出手段と、
前記第１の変換ルールデータが修正され第２の変換ルールデータが生成されると、前記第２の変換ルールデータ及び前記差分適用データとに基づいて前記上流工程成果物データから前記第３の下流工程成果物データを生成する差分適用手段
とをコンピュータに実現させることを特徴とする変換プログラム。
【請求項７】
上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換方法であって、
第１の上流工程成果物データと、前記変換ルールデータに基づいて前記第１の上流工程成果物データから生成された前記第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶ステップと、
前記第１の下流工程成果物データから修正された第２の下流工程成果物データを、前記記憶装置に記憶する修正データ記憶ステップと、
前記第１の下流工程成果物データと前記第２の下流工程成果物データとを比較して、前記第１の下流工程成果物データと前記第２の下流工程成果物データとの差分を差分適用データとして出力し、前記差分適用データを前記記憶装置に記憶する差分抽出ステップと、
前記第１の上流工程成果物データが修正され第２の上流工程成果物データが生成されると、前記変換ルールデータ及び前記差分適用データとに基づいて前記第２の上流工程成果物データから前記第３の下流工程成果物データを生成する差分適用ステップ
とを備えることを特徴とする変換方法。
【請求項８】
上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換方法であって、
上流工程成果物データと、第１の変換ルールデータに基づいて前記上流工程成果物データから生成された前記第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶ステップと、
前記第１の下流工程成果物データから修正された第２の下流工程成果物データを、前記記憶装置に記憶する修正データ記憶ステップと、
前記第１の下流工程成果物データと前記第２の下流工程成果物データとを比較して、前記第１の下流工程成果物データと前記第２の下流工程成果物データとの差分を差分適用データとして出力し、前記差分適用データを前記記憶装置に記憶する差分抽出ステップと、
前記第１の変換ルールデータが修正され第２の変換ルールデータが生成されると、前記第２の変換ルールデータ及び前記差分適用データとに基づいて前記上流工程成果物データから前記第３の下流工程成果物データを生成する差分適用ステップ
とを備えることを特徴とする変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換装置、変換プログラム及び変換方法に関する。
【背景技術】
【０００２】
近年、システム開発において、システム開発対象となるビジネスなどに重点を置いたオブジェクト指向が広く採用されている。オブジェクト指向によるシステム開発においては、関連するデータの集合と、それに対する手続き(メソッド)を「オブジェクト」と呼ばれる一つのまとまりとして管理し、その組み合わせによってソフトウェアを構築する。既に存在するオブジェクトについては、利用に際してその内部構造や動作原理の詳細を知る必要はなく、外部からメッセージを送れば機能するため、特に大規模なソフトウェア開発において有効な考え方であるとされている。
【０００３】
このオブジェクト指向において、ＭＤＡ（Model Driven Architecture：モデル駆動型アーキテクチャ）と呼ばれるシステム開発手法が広く普及している。このＭＤＡでは、概念モデルの作成、ＰＩＭ（Platform Independent Model）の作成、ＰＳＭ（Platform Specific Model）の作成を経て、システムの実行コードを得る。ここで、「概念モデル」とは、システムの全体の構造を表すモデルである。「ＰＩＭ」とは、ＣＰＵ、ＯＳ、ミドルウェア、開発言語などのシステム実装環境であるプラットフォームに依存しないモデルで表された設計データある。「ＰＳＭ」とは、実際に開発対象となるプラットフォームに対応した（プラットフォームの開発言語と１対１に対応した）モデルで表された設計データである。ＰＩＭ及びＰＳＭは、システム開発者によって開発又は保守される。
【０００４】
ＰＩＭからＰＳＭへの変換において、図２２に示すように、市販のツールや自作した変換ツール（モデルコンパイラ）が利用される。この変換ルールセットには、ＰＩＭメタモデルからＰＳＭメタモデルを変換するための複数の変換ルールが含まれており、この変換ルールによって、ＰＩＭからＰＳＭを作成することができる。ＰＩＭとプラットフォームに対応して設けらた変換ルールによって、プラットフォームに依存しないＰＩＭから、開発環境であるプラットフォームに特化及び最適化されたＰＳＭが得られる。この変換ルールは、プラットフォーム専門家（ベンダー）によって提供される。
【０００５】
しかし、ＰＩＭからＰＳＭへモデル変換された後に、ＰＳＭ上でモデルの修正を行った場合、再度ＰＩＭからＰＳＭへモデル変換されると、修正されたＰＳＭがモデル変換後のＰＭによって上書きされてしまう問題がある。
【０００６】
具体的には、図２３に示すように、まずステップＳ９０１において、ＰＩＭデータ９５１から変換ルールに従ってモデル変換され、ＰＳＭデータ９６１が生成される。次に、ステップＳ９０２において、開発者等によってＰＳＭデータ９６１が修正され、ＰＳＭデータ９６２が生成される。
【０００７】
一方、ステップＳ９０３において、ＰＩＭデータ９５１に仕様変更等が発生することによって、ＰＩＭデータ９５１’が生成される。ここで、ステップＳ９０１で用いられた変換ルールを用いてＰＩＭデータ９５１’をモデル変換して、ＰＳＭデータ９６３を生成する。この場合、ＰＳＭデータ９６２とＰＳＭデータ９６３のモデル間で競合が発生してしまう。具体的には、ステップＳ９０２で修正されたＰＳＭデータ９６２に、ステップＳ９０４でモデル変換されたＰＳＭデータ９６３が上書きされる。これにより、ステップＳ９０２で修正された修正内容が、ＰＳＭデータ９６３に適用されない問題がある。
【０００８】
この様な状況の背景として、下流のモデルデータ（ここではＰＳＭデータ）を修正している過程で、上流のモデルデータ（ここではＰＩＭデータ）が仕様変更された場合が考えられる。具体的には、下記の様な状況が考えられる。  
（１）複数人で開発している場合：ＰＩＭデータの開発者とＰＳＭデータの開発者が平行して開発を行っている
（２）要求変更が頻繁に発生している場合：ＰＩＭデータからＰＳＭデータへのモデル変換後に、要求変更によりＰＩＭのモデルが変更されると、後戻り工程が発生
（３）変換ルールの修正：変換ルールが修正された場合、同じＰＩＭデータから変換しても異なるＰＳＭデータが出力される
この様に、システム開発の工程において、上流の成果物と下流の成果物との間で、整合性の取れたシステム開発できる環境の開発が期待されている。
【０００９】
この様な状況で、プログラムの改訂のため変更後設計ドキュメントから再度プログラムを自動生成する場合に，元の自動生成部分と追加部分とを区別できるようにし，プログラム編集時の安全性を高めるプログラム作成支援装置がある（例えば、特許文献１）。この特許文献１に記載の装置は、設計ドキュメントから変更後設計ドキュメントへの変更を，論理情報抽出部で抽出した論理情報の差分情報として捉え，元の設計ドキュメントから自動生成したプログラムに対して追加編集した編集後プログラムからプログラム論理情報抽出部によってプログラム論理情報を抽出する。更に、論理情報更新部により，差分情報をもとにプログラム論理情報を更新し，更新結果のプログラム論理情報をもとにプログラム生成部によって変更後のプログラムを自動生成する。
【００１０】
又、プログラムの修正箇所を継承したプログラムを自動生成できる修正プログラムを継承したプログラムの自動生成方法がある（例えば、特許文献２）。この特許文献２に記載の方法では、プログラム自動生成部は、設計情報に基づいてプログラムを自動生成する。修正箇所継承部は、設計情報の変更によりコードが追加された場合には、追加された箇所を最新の設計情報に基づいて自動生成された新規のプログラムから検索し、設計情報の変更によりコードが削除された場合には、削除された箇所を、自動生成された前回のプログラムに対し修正が加えられた修正済プログラムから検索する。そして、検索により得られた追加箇所を修正済プログラムに追加し、削除箇所を修正済プログラムから削除する。
【００１１】
更に、ソフトウェア生産支援システムのプログラム作成工程において、自動生成したプログラムに対して削除・修正・追加など新たに加えたコーディング部分を保持し、既存の財産をより有効に使用して生成効率を向上させるプログラム自動生成方法がある（例えば、特許文献３）。この特許文献３に記載の方法は、仕様変更前の旧バージョン生成プログラムと仕様変更後の新バージョン生成プログラムとを比較しその差分を抽出するステップと、旧バージョン生成プログラムに対して追加・修正・削除コーディングを行ったプログラムと旧バージョン生成プログラムとを比較しその差分を抽出するステップと、それぞれの抽出した差分情報から新バージョン仕様情報を用いて生成したプログラムに対し、追加・修正・削除を行うステップとを備える。
【特許文献１】特開平１１−１９１０６３号公報
【特許文献２】特開２０００−２２２１９５号公報
【特許文献３】特開平１０−２１０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、上記の様な技術では、適切に修正及び差分を反映したプログラムを出力できない問題がある。
【００１３】
例えば、特許文献１及び特許文献２に記載の方法では、上流工程の成果物について変更の差分を取って、下流工程の成果物に反映している。これは、既に完成している下流工程に対して上流工程の変更を行うことになり、本来の開発手順からすれば、処理の順序が逆行している。このため、特許文献１に記載の方法では、部分変換、修正後のプログラムに上書きするように部分変換結果のマージなど、煩雑な処理が必要となってしまう。
【００１４】
又、これらの特許文献１及び特許文献２に記載の方法では、上述したような変換ルールを用いてモデル変換するシステム開発には適切ではない。具体的には、変換ルール自体に変更があった場合、上述した特許文献１及び特許文献２の技術では対応することができない。
【００１５】
一方、特許文献３に記載の技術では、新バージョン生成プログラムと、旧バージョン生成プログラムの第１の差分と、旧バージョン生成プログラムと旧バージョン修正済プログラムの第２の差分とを抽出し、更に第１の差分と第２の差分とに基づいて新バージョン修正済プログラムを出力する。即ち、特許文献３に記載の技術では、差分の抽出処理が２回発生し、処理が煩雑になってしまう問題がある。
【００１６】
以上のような状況をふまえ、上流の成果物と下流の成果物との間で、容易に整合性の取れたシステム開発できる環境の開発が期待されている。
【００１７】
従って本発明の目的は、上流の成果物と下流の成果物との間で、容易に整合性の取れる変換装置、変換プログラム及び変換方法を提供することである。
【課題を解決するための手段】
【００１８】
上記課題を解決するために、本発明の第１の特徴は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換装置に関する。即ち本発明の第１の特徴に係る変換装置は、第１の上流工程成果物データと、変換ルールデータに基づいて第１の上流工程成果物データから生成された第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、第１の下流工程成果物データから修正された第２の下流工程成果物データを、記憶装置に記憶する修正データ記憶手段と、第１の下流工程成果物データと第２の下流工程成果物データとを比較して、第１の下流工程成果物データと第２の下流工程成果物データとの差分を差分適用データとして出力し、差分適用データを記憶装置に記憶する差分抽出手段と、第１の上流工程成果物データが修正され第２の上流工程成果物データが生成されると、変換ルールデータ及び差分適用データとに基づいて第２の上流工程成果物データから第３の下流工程成果物データを生成する差分適用手段とを備える。
【００１９】
より具体的には、差分抽出手段は、第１の下流工程成果物データから第１の差分抽出データを生成するとともに、第２の下流工程成果物データから第２の差分抽出データを生成して、第１の差分抽出データ及び第２の差分抽出データを記憶装置に記憶する差分抽出データ生成手段と、記憶装置から第１の差分抽出データ及び第２の差分抽出データを読み出して、第１の差分抽出データを第２の差分抽出データを比較する差分抽出データ比較手段と、差分抽出データ比較手段による比較結果に基づいて差分適用データを出力して、差分適用データを記憶装置に記憶する差分適用データ生成手段とを備えても良い。
【００２０】
この様な本発明によれば、下流工程成果物データの変更点を考慮して、変更後の上流工程成果物データから新たな下流工程成果物データが生成されるので、開発による手戻りや競合が発生することなく、容易に整合性の取れたシステムを開発できある。
【００２１】
又、第１及び第２の上流工程成果物データ及び第１及び第２の下流工程成果物データは、木構造で表現可能で、複数の要素で表現される文書データであっても良い。この場合、差分抽出データ生成手段は、第１の下流工程成果物データの各要素について、要素の要素名、要素に関連づけられた属性名及び属性値のリスト、要素の識別子を関連づけた第１の差分抽出データを生成するとともに、第２の下流工程成果物データの各要素について、要素の要素名、ノードに関連づけられた属性名及び属性値のリスト、要素の識別子を関連づけた第２の差分抽出データを生成し、差分抽出データ比較手段は、第１の差分抽出データと第２の差分抽出データのそれぞれについて部分木データを作成し、第１の差分抽出データの部分木データと第２の差分抽出データの部分木データが等しい部分木データを抽出して第１の差分抽出データと第２の差分抽出データのそれぞれから削除し、第１の差分抽出データの部分木データと第２の差分抽出データの部分木データが異なる部分木データに含まれる各要素について、要素名、属性名リスト及び属性値リストが等しい要素を抽出して第１の差分抽出データと第２の差分抽出データのそれぞれから削除し、差分適用データ生成手段は、第１の差分抽出データと第２の差分抽出データのそれぞれに共通する要素の識別子に関連づけられた要素の区分を変更に設定し、第１の差分抽出データに含まれ第２の差分抽出データに含まれない要素の識別子に関連づけられた要素の区分を削除に設定し、第２の差分抽出データに含まれ第１の差分抽出データに含まれない要素の識別子に関連づけられた要素の区分を削除に設定し、要素の識別子及び区分を関連づけた差分適用データを出力して、差分適用データを記憶装置に記憶する。
【００２２】
予め部分木データを作成して差分を抽出し、部分木データが同じ部分木について各要素毎に比較することにより、効率よく差分適用データを生成することができる。
【００２３】
本発明の第２の特徴は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換装置に関する。即ち本発明の第２の特徴に係る変換装置は、上流工程成果物データと、第１の変換ルールデータに基づいて上流工程成果物データから生成された第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、第１の下流工程成果物データから修正された第２の下流工程成果物データを、記憶装置に記憶する修正データ記憶手段と、第１の下流工程成果物データと第２の下流工程成果物データとを比較して、第１の下流工程成果物データと第２の下流工程成果物データとの差分を差分適用データとして出力し、差分適用データを記憶装置に記憶する差分抽出手段と、第１の変換ルールデータが修正され第２の変換ルールデータが生成されると、第２の変換ルールデータ及び差分適用データとに基づいて上流工程成果物データから第３の下流工程成果物データを生成する差分適用手段とを備える。
【００２４】
本発明の第３の特徴は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換プログラムに関する。即ち本発明の第３の特徴に係る変換プログラムは、第１の上流工程成果物データと、変換ルールデータに基づいて第１の上流工程成果物データから生成された第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、第１の下流工程成果物データから修正された第２の下流工程成果物データを、記憶装置に記憶する修正データ記憶手段と、第１の下流工程成果物データと第２の下流工程成果物データとを比較して、第１の下流工程成果物データと第２の下流工程成果物データとの差分を差分適用データとして出力し、差分適用データを記憶装置に記憶する差分抽出手段と、第１の上流工程成果物データが修正され第２の上流工程成果物データが生成されると、変換ルールデータ及び差分適用データとに基づいて第２の上流工程成果物データから第３の下流工程成果物データを生成する差分適用手段とをコンピュータに実現させる
本発明の第４の特徴は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換プログラムに関する。即ち本発明の第４の特徴に係る変換プログラムは、上流工程成果物データと、第１の変換ルールデータに基づいて上流工程成果物データから生成された第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶手段と、第１の下流工程成果物データから修正された第２の下流工程成果物データを、記憶装置に記憶する修正データ記憶手段と、第１の下流工程成果物データと第２の下流工程成果物データとを比較して、第１の下流工程成果物データと第２の下流工程成果物データとの差分を差分適用データとして出力し、差分適用データを記憶装置に記憶する差分抽出手段と、第１の変換ルールデータが修正され第２の変換ルールデータが生成されると、第２の変換ルールデータ及び差分適用データとに基づいて上流工程成果物データから第３の下流工程成果物データを生成する差分適用手段とをコンピュータに実現させる。
【００２５】
本発明の第５の特徴は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換方法に関する。即ち本発明の第５の特徴に係る変換プログラムは、第１の上流工程成果物データと、変換ルールデータに基づいて第１の上流工程成果物データから生成された第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶ステップと、第１の下流工程成果物データから修正された第２の下流工程成果物データを、記憶装置に記憶する修正データ記憶ステップと、第１の下流工程成果物データと第２の下流工程成果物データとを比較して、第１の下流工程成果物データと第２の下流工程成果物データとの差分を差分適用データとして出力し、差分適用データを記憶装置に記憶する差分抽出ステップと、第１の上流工程成果物データが修正され第２の上流工程成果物データが生成されると、変換ルールデータ及び差分適用データとに基づいて第２の上流工程成果物データから第３の下流工程成果物データを生成する差分適用ステップとを備える。
【００２６】
本発明の第６の特徴は、上流工程成果物データから下流工程成果物データを変換ルールデータに基づいて生成する変換方法に関する。即ち本発明の第６の特徴に係る変換方法は、上流工程成果物データと、第１の変換ルールデータに基づいて上流工程成果物データから生成された第１の下流工程成果物データとを記憶装置に記憶するリポジトリ記憶ステップと、第１の下流工程成果物データから修正された第２の下流工程成果物データを、記憶装置に記憶する修正データ記憶ステップと、第１の下流工程成果物データと第２の下流工程成果物データとを比較して、第１の下流工程成果物データと第２の下流工程成果物データとの差分を差分適用データとして出力し、差分適用データを記憶装置に記憶する差分抽出ステップと、第１の変換ルールデータが修正され第２の変換ルールデータが生成されると、第２の変換ルールデータ及び差分適用データとに基づいて上流工程成果物データから第３の下流工程成果物データを生成する差分適用ステップとを備える。
【発明の効果】
【００２７】
本発明によれば、上流の成果物と下流の成果物との間で、容易に整合性の取れる変換装置、変換プログラム及び変換方法を提供することができる。
【発明を実施するための最良の形態】
【００２８】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００２９】
「ＰＩＭ」とは、Platform Independent Modelの略で、ＣＰＵ、ＯＳ、ミドルウェア、開発言語などのシステム実装環境であるプラットフォームに依存しないモデルで表された設計データある。ＰＩＭは、システム開発者によって開発又は保守される。本発明の最良の実施の形態においては、複数の要素が木構造で記述される文書データであって、上流工程成果物データの一例として、ＰＩＭを用いて説明している。
【００３０】
「ＰＳＭ」とは、Platform Specific Modelの略で、実際に開発対象となるプラットフォームに対応した（プラットフォームの開発言語と１対１に対応した）モデルで表された設計データである。ＰＳＭは、システム開発者によって開発又は保守される。本発明の最良の実施の形態においては、複数の要素が木構造で記述される文書データであって、上流工程成果物データから変換ルールで変換される下流工程成果物データの一例として、ＰＩＭを用いて説明している。
【００３１】
「ＸＭＩ」とは、XML Metadata Interchangeの略で、分析・設計フェーズで作成したUMLモデルを含むメタデータを交換するストリームフォーマットである。ＵＭＬとＸＭＬ間の双方向の変換に利用する。
【００３２】
「ＵＭＬ」とは、Unified Modeling Languageの略で、オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法である。本発明の最良の実施の形態において、ＰＳＭデータ及びＰＩＭデータは、ＵＭＬのクラス図の形式で記述されている。このＵＭＬのクラス図においては、要素であるクラスを表す四角形、それらの関係を示す結線などで構成される。このクラスを表す四角形には、ステレオタイプ、クラス名、属性、メソッドが表示される。クラスの関係を示す結線は、その関係に応じて複数種の形状を備える。
【００３３】
「変換ルール」とは、上流工程成果物データから下流工程成果物データに変換するためのルールデータである。
【００３４】
「リポジトリ」とは、複数の開発者が参加するシステム開発環境においてソースコードや仕様に関する情報がまとめて保管されているデータである。本発明の最良の実施の形態では、具体的には、図７のことである。
【００３５】
（最良の実施の形態の概要）
本発明の最良の実施の形態では、モデルデータの差分を抽出し、不整合なくマージする機能（部分的ラウンドトリップエンジニアリング）を採用している。ラウンドトリップエンジニアリングとは、システム・アーキテクチャや設計を記述する抽象モデルとコード間で双方向変換が可能な機能である。ラウンドトリップエンジニアリングでは、フォワードエンジニアリングとリバースエンジニアリングを反復して行う。ここでフォワードエンジニアリングとは、モデルデータからソースコードを生成することで、リバースエンジニアリングは、ソースコードからモデルを生成することである。
【００３６】
ここで本発明の最良の実施の形態において採用している部分的（パーシャル）ラウンドトリップエンジニアリングとは、反復型リバースエンジニアリングなしのラウンドトリップエンジニアリングである。部分的ラウンドトリップエンジニアリングに対し、完全ラウンドトリップエンジニアリングがある。完全ラウンドトリップエンジニアリングとは、ラウンドトリップエンジニアリングに更に反復型リバースエンジニアリングを適用した技術である。
【００３７】
ここで、部分的ラウンドトリップエンジニアリングを、図１を参照して説明する。まずステップＳ１において、ＰＩＭデータ５１から変換ルールに従ってモデル変換され、ＰＳＭデータ６１が生成される。次に、ステップＳ２において、開発者等によってＰＳＭデータ６１が修正され、ＰＳＭデータ６２が生成される。このとき、ＰＳＭデータ６１とＰＳＭデータ６２との差分データであるＰＳＭ差分データ７０が自動生成される。
【００３８】
一方、ステップＳ３において、ＰＩＭデータ５１に仕様変更等が発生することによって、新たなＰＩＭデータ５１’が生成される。ステップＳ４において、ＰＩＭデータ５１’とＰＳＭ差分データ７０とステップＳ１で用いられた変換ルールを用いてから、ＰＳＭデータ６３を再生成する。
【００３９】
これにより、ステップＳ２における修正が反映され、ＰＩＭデータ５１における仕様変更も反映されたＰＳＭデータ６３が出力される。
【００４０】
この様に、本願発明の最良の実施の形態では、時間で変換した三世代のモデルデータ、具体的にはＰＳＭデータ６１、ＰＳＭデータ６２、ＰＳＭデータ６３の差分を抽出する。具体的には、ＰＩＭ同士の差分とＰＳＭ同士の差分がＰＳＭデータ６３に反映される。又、本願発明の最良の実施の形態では、ＸＭＬのタグを組み合わせた意味的な情報を差分抽出する。更に、本願発明の最良の実施の形態では、差分対象としないものは、差分対象として扱わないことも可能である。
【００４１】
図２乃至図６を参照して、図１に示した各データのクラス構成を説明する。図２乃至図６は、各モデルデータについて、ＵＭＬで記述されたクラス図である。  
ＰＩＭデータ５１は、図２に示すようにprocess::Class1クラスＣ１０１、process::Class2クラスＣ１０２、service::Class3クラスＣ１０３及びentity::Class4クラスＣ１０４を有する。  
ＰＩＭデータ５１が修正されたＰＩＭデータ５１’は、図３に示すようにprocess::Class1クラスＣ１０１’、process::Class2クラスＣ１０２、service::Class3クラスＣ１０３、entity::Class4クラスＣ１０４及びprocess::NewPIMClass3Ｃ１０５を有する。図２に記載したＰＩＭデータ５１と比べると、ＰＩＭデータ５１’process::NewPIMClass3クラスＣ１０５が追加され、process::NewPIMClass3クラスＣ１０５←service::Class3クラスＣ１０３への関連が追加され、process::Class1クラスＣ１０１’において、newPIMMethod()メソッドが追加されている点が異なる。
【００４２】
ＰＩＭデータ５１から変換されたＰＳＭデータ６１は、図４に示すように、process::AbsClassクラスＣ２０２、process::Class1クラスＣ２０２、process::Class2クラスＣ２０３，service::Interface1クラスＣ２０４、service::Class3クラスＣ２０５及びentity::Class4クラスＣ２０６を有する。
【００４３】
ＰＳＭデータ６１から開発者によって修正されたＰＳＭデータ６２は、図５に示すように、process::AbsClassクラスＣ２０１、process::Class1クラスＣ２０２’、service::Interface1クラスＣ２０４、service::Class3クラスＣ２０５及びentity::Class4クラスＣ２０６及びaddNewClassＣ２０７を有する。図４に記載したＰＳＭデータ６１と比べると、ＰＳＭデータ６２は、process::Class1クラスＣ２０３が削除されてaddNewClassクラスＣ２０７が追加され、process::AbsClassクラスＣ２０１←AddNewClassクラスＣ２０７の汎化が追加され、process::Class1クラスＣ２０２’にnewMethodB(string)メソッドが追加されている点が異なる。
【００４４】
ＰＩＭデータ５１’から変換されたＰＳＭデータ６３は、図６に示すように、process::AbsClassクラスＣ２０１、process::Class1クラスＣ２０２’’、service::Interface1クラスＣ２０４、service::Class3クラスＣ２０５、entity::Class4クラスＣ２０６、addNewClassＣ２０７及びprocess::NewPIMClass3Ｃ２０８を有する。図４に記載したＰＳＭデータ６１と比べると、ＰＳＭデータ６３は、ＰＩＭデータ５１からＰＩＭデータ５１’に修正された変更点と、ＰＳＭデータ６１からＰＳＭデータ６２に修正された変更点とを備える。ＰＩＭデータ５１からＰＩＭデータ５１’に修正された変更点は、process::Class1クラスＣ２０２’’にnewPIMMethod()メソッドが追加され、process::NewPIMClass3クラスＣ２０８が追加され、process::AbsClassＣ２０１←process::NewPIMClass3クラスＣ２０８の汎化が追加されている点である。ＰＳＭデータ６１からＰＳＭデータ６２に修正された変更点は、process::Class1クラスＣ２０３が削除されてaddNewClassクラスＣ２０７が追加され、process::AbsClassクラスＣ２０１←AddNewClassクラスＣ２０７の汎化が追加され、process::Class1クラスＣ２０２’’にnewMethodB(string)メソッドが追加されている点である。
【００４５】
ここで、ＰＩＭデータ、ＰＳＭデータ及び変換ルールデータの関係を説明する。例えばオブジェクト指向のシステム開発において、リポジトリデータには、図７に示すような情報が記憶されている。図７に示すリポジトリデータにおいては、ＰＩＭメタモデルデータから変換ルールデータＲ１を用いて、ＰＳＭメタモデルデータが生成される。図７に示すように、変換ルールデータＲ１は、ＰＩＭメタモデルデータ及びＰＳＭメタモデルデータに依存する。ＰＩＭデータ１及びＰＩＭデータ２は、ＰＩＭメタモデルのインスタンスであり、ＰＳＭデータ１は、ＰＳＭメタモデルのインスタンスである。「メタモデル」とは、例えばＰＩＭ又はＰＳＭを記述するためのＵＭＬのモデル要素(クラス、属性、操作、関係など)を定義するモデルである。ここで、sourceであるＰＩＭデータ１から、変換ルールデータＲ１を用いてtargetであるＰＳＭデータ１を作成する場合、変換インスタンス１が生成されて、リポジトリデータ２１に記憶される。この様に変換記録に関するリポジトリデータ２１には、変換インスタンス１として、sourceとなるＰＩＭデータの識別子（ＰＩＭデータ１）、targetとなるＰＳＭデータの識別子（ＰＳＭデータ１）、ＰＳＭデータ１の生成時に使用された変換ルールの識別子（変換ルールデータＲ１）に関する情報が含まれる。
【００４６】
（変換装置）
図８に示すように、本発明の最良の実施の形態に係る変換装置１は、中央処理制御装置１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３及び入出力インタフェース１０９が、バス１１０を介して接続されている。入出力インタフェース１０９には、入力装置１０４、表示装置１０５、通信制御装置１０６、記憶装置１０７及びリムーバブルディスク１０８が接続されている。
【００４７】
中央処理制御装置１０１は、入力装置１０４からの入力信号に基づいてＲＯＭ１０２から変換装置１を起動するためのブートプログラムを読み出して実行し、更に記憶装置１０７に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置１０１は、入力装置１０４や通信制御装置１０６などの入力信号に基づいて、各種装置の制御を行ったり、ＲＡＭ１０３や記憶装置１０７などに記憶されたプログラム及びデータを読み出してＲＡＭ１０３にロードするとともに、ＲＡＭ１０３から読み出されたプログラムのコマンドに基づいて、データの計算又は加工など、後述する一連の処理を実現する処理装置である。
【００４８】
入力装置１０４は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送信される。表示装置１０５は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどであり、中央処理制御装置１０１からバス１１０及び入出力インタフェース１０９を介して表示装置１０５において表示させる出力信号を受信し、例えば中央処理制御装置１０１の処理結果などを表示する装置である。通信制御装置１０６は、ＬＡＮカードやモデムなどの装置であり、変換装置１をインターネットやＬＡＮなどの通信ネットワークに接続する装置である。通信制御装置１０６を介して通信ネットワークと送受信したデータは入力信号又は出力信号として、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００４９】
記憶装置１０７は半導体記憶装置や磁気ディスク装置などであって、中央処理制御装置１０１で実行されるプログラムやデータが記憶されている。リムーバブルディスク１０８は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００５０】
本発明の最良の実施の形態に係る変換装置１の記憶装置１０７には、図９に示すように、変換プログラムが記憶されるとともに、リポジトリデータ２１、差分適用ＰＳＭデータ２２、修正ＰＳＭデータ６２、差分抽出データ３２ａ、３２ｂ、差分適用データ３３、差分適用データテーブル３４、タグ組み合わせデータテーブル３５、画面表示データ３６が記憶される。修正ＰＳＭデータ６２は、ＰＳＭデータ６２から開発者等によって修正されたＰＳＭデータである。又、変換プログラムが中央処理制御装置１０１によって実行されることにより、中央処理制御装置１０１に、フィルタリング手段１１、差分抽出手段１２、タグ組み合わせデータ生成手段１３、画面表示データ生成手段１４及び差分適用手段１５が中央処理制御装置１０１に実装される。差分抽出手段１２は、差分抽出データ生成手段１２ａ、差分抽出データ比較手段１２ｂ、差分適用データ生成手段１２ｃを備える。
【００５１】
図９に示す図では、記憶装置１０７ａ及び１０７ｂの二つの記憶装置に各データが記憶されているが、一つの記憶装置に記憶されても良いし、３つ以上の記憶装置に記憶されても良い。
【００５２】
リポジトリデータ２１には、ＰＩＭデータ（第１の上流工程成果物データ）５１、修正後のＰＩＭデータ（第２の上流工程成果物データ）５１’、ＰＳＭデータ（第１の下流工程成果物データ）６１、修正後のＰＳＭデータ６２（第２の下流工程成果物データ）及びＰＳＭデータ６３が記憶されている。
【００５３】
本願発明の最良の実施の形態に係る変換装置１は、ＰＳＭデータ６１とＰＳＭデータ６２との差分と、修正後のＰＩＭデータ５１’から差分適用ＰＳＭデータ６３’を生成する。本発明の最良の実施の形態に係る変換装置１が扱うＰＩＭデータ及びＰＳＭデータは、木構造で表現可能で、複数の要素で表現される文書データの一例である。
【００５４】
ここで図９の中央処理制御装置１０１に実装される各手段について詳述する。
【００５５】
フィルタリング手段１１は、ＰＳＭデータ６１及びＰＳＭデータ６２の各データの要素について、比較対象として扱わないデータに対してフィルタリングする手段である。これにより、本発明の最良の実施の形態に係る変換装置１は、ＰＳＭデータ６１及びＰＳＭデータ６２の各要素のうち比較対象として扱う要素のみについて、後述する処理を行うことができる。このフィルタリング手段１１は、例えばＰＳＭデータの各要素のうち、所定日付以前に修正された要素など所定条件を満たす要素だけ抽出しても良い。又、フィルタリング手段１１は、ユーザの操作によって選択された要素だけ抽出しても良い。
【００５６】
差分抽出手段１２は、ＰＳＭデータ６１とＰＳＭデータ６２とを比較して、ＰＳＭデータ６１とＰＳＭデータ６２との差分を差分適用データ３３として出力し、差分適用データ３３を記憶装置１０７ｂに記憶する。差分抽出手段１２は、差分抽出データ生成手段１２ａ、差分抽出データ比較手段１２ｂ、差分適用データ生成手段１２ｃを備える。
【００５７】
差分抽出データ生成手段１２ａは、ＰＳＭデータ６１から第１の差分抽出データ３３ａを生成するとともに、ＰＳＭデータ６２から第２の差分抽出データ３３ｂを生成する。差分抽出データ生成手段１２ａは、第１の差分抽出データ３３ａ及び第２の差分抽出データ３３ｂを記憶装置１０７ｂに記憶する。詳述すると、差分抽出データ生成手段１２ａは、ＰＳＭデータ６１の各要素について、要素の要素名、要素に関連づけられた属性名及び属性値のリスト、要素の識別子を関連づけた第１の差分抽出データ３３ａを生成して記憶装置１０７ｂに記憶する。更に差分抽出データ生成手段１２ａは、ＰＳＭデータ６２の各要素について、要素の要素名、要素に関連づけられた属性名及び属性値のリスト、要素の識別子を関連づけた第２の差分抽出データ３３ｂを生成して記憶装置１０７ｂに記憶する。ここで要素の識別子は、ｘｍｉ．ｉｄである。
【００５８】
図１０（ａ）及び図１０（ｂ）を参照して、差分抽出データ３２ａ及び差分抽出データ３２ｂについて詳述する。差分抽出データ３２ａ及び差分抽出データ３２ｂは、各要素について、当該要素がｘｍｉ．ｉｄを有する場合は図１０（ａ）のデータ構造を有し、当該要素がｍｉ．ｉｄを有さない場合は図１０（ｂ）に示すデータ構造を有する。
【００５９】
図１０（ａ）に示す差分抽出データ３２は、当該要素がｍｉ．ｉｄを有する場合のデータ構造の一例である。差分抽出データ３２では、各要素について、要素名、要素に関連づけられた属性の属性名リスト、属性値リスト、当該要素のｘｍｉ．ｉｄ、当該要素の祖先（親要素）のｘｍｉ．ｉｄ及び祖先と当該要素の距離が関連づけられている。属性名リストの属性は、属性値リストの属性値と対応する。具体的には、図１１に示す要素Ｅ１０１の場合、差分抽出データ３２には、要素名「UML:Class」に、属性名リスト「atrA」、「atrB」、「atrC」及び「xmi.id」、属性値リスト「xx」、「yy」、「zz」及び「0011」、ｘｍｉ．ｉｄ「0011」が関連づけられて記憶されている。更に、差分抽出データには、祖先ｘｍｉ．ｉｄとしてデフォルト値の「００００」が設定され、距離としてデフォルト値の「０」が設定される。
【００６０】
図１０（ｂ）に示す差分抽出データ３２は、当該要素がｍｉ．ｉｄを有さない場合のデータ構造の一例である。差分抽出データ３２では、各要素について、要素名、要素に関連づけられた属性の属性名リスト、属性値リスト、当該要素の祖先のｘｍｉ．ｉｄ及び祖先のｘｍｉ．ｉｄ以下から葉までのパス名、祖先と当該要素の距離が関連づけられている。ここで祖先は、当該要素の親要素、親要素の親要素と、祖先を辿り、ｘｍｉ．ｉｄが付与されている最初の要素のことである。又、パス名は、例えば、祖先のｘｍｉ．ｉｄ以下から葉まで部分木の各要素について、その要素名を連結したものである。このパス名は、この部分木を一意に識別できればどのような形式でも良い。属性名リストの属性は、属性値リストの属性値と対応する。具体的には、図１２に示す要素Ｅ１１１の場合、差分抽出データ３２には、要素名「UML:XXX」に、属性名リスト「atrA」、「atrB」及び「atrC」、ている。更に、要素名「UML:XXX」の祖先でｘｍｉ．ｉｄが付与された要素Ｅ１１２のｘｍｉ．ｉｄ及びこの祖先の要素Ｅ１１２と要素Ｅ１１１との距離「２」が関連づけられている。又、差分抽出データ３２には、要素Ｅ１１２から葉までの部分木を識別するパス名「abcdefzzxxvv」が関連づけられている。
【００６１】
次に、図１３を参照して、差分抽出データ生成手段１２ａによる差分抽出データ生成処理を説明する。  
まず、ステップＳ１０１において、ＰＳＭデータ６１又はＰＳＭデータ６２をＤＯＭの木構造データから、ノード（要素）を一つ取得する。ステップＳ１０２において、ノードがない場合は、全てのノードについて処理されたことになるので、処理を終了する。ノードがある場合、ステップＳ１０３において、取得したノードにｘｍｉ．ｉｄがあるか否かを判定する。ｘｍｉ．ｉｄがある場合、ステップＳ１０４においてノードからｘｍｉ．ｉｄを取得して差分抽出データにセットする。一方、ｘｍｉ．ｉｄがない場合、ステップＳ１０５においてもっとも近い上位のｘｍｉ．ｉｄを取得して祖先のｘｍｉ．ｉｄとしてセットする。  
次に、ステップＳ１０６において、当該要素の要素タグ名を要素名としてセットする。ステップＳ１０７において、当該要素に関連づけられた属性の属性名を取得して属性名リストをセットするとともに、属性の属性値を取得して属性値リストをセットする。ステップＳ１０８において、当該要素がｘｍｉ．ｉｄを持つ場合は距離「０」をセットする。当該要素にｘｍｉ．ｉｄがない場合は、ｘｍｉ．ｉｄを有する上位要素と当該要素との距離をセットする。ステップＳ１０８において、当該要素がｘｍｉ．ｉｄを持つ場合は距離「０」をセットする。当該要素にｘｍｉ．ｉｄがない場合は、ｘｍｉ．ｉｄを有する上位要素と当該要素との距離をセットする。ステップＳ１０９において、当該要素がｘｍｉ．ｉｄを持つ場合は祖先ｘｍｉ．ｉｄ「００００」をセットする。  
ステップＳ１１０において、当該要素がｘｍｉ．ｉｄを持つと判断される場合、ステップＳ１０１に戻り、次のノードについて処理する。ステップＳ１１０において、当該要素がｘｍｉ．ｉｄを持たないと判断される場合、ステップＳ１１１においてノードパスを生成し、ステップＳ１１２において、ステップＳ１１１で生成されたノードパスを設定する。
【００６２】
図１３に示した処理を、ＰＳＭデータ６１とＰＳＭデータ６２のそれぞれについて実行する。以上の処理により、差分抽出データ生成手段１２ａは、ＰＳＭデータ６１とＰＳＭデータ６２の差分を抽出するために、各要素について、各要素を特徴付けるデータを作成することができる。
【００６３】
ＰＳＭデータ６１から差分抽出データ３２ａが生成され、ＰＳＭデータ６２から生成された差分抽出データ３２ｂが生成されると、差分抽出データ比較手段１２ｂによって、差分抽出データ３２ａ及び差分抽出データ３２ｂが比較される。
【００６４】
差分抽出データ比較手段１２ｂは、記憶装置１０７ｂから第１の差分抽出データ３３ａ及び第２の差分抽出データ３３ｂを読み出して、第１の差分抽出データ３３ａを第２の差分抽出データ３３ｂを比較する。
【００６５】
より具体的には、差分抽出データ比較手段１２ｂは、第１の差分抽出データ３２ａと第２の差分抽出データ３２ｂのそれぞれについて部分木データを作成する。差分抽出データ比較手段１２ｂは、第１の差分抽出データ３２ａの部分木データと第２の差分抽出データ３２ｂの部分木データが等しい部分木データを抽出して第１の差分抽出データ３２ａと第２の差分抽出データ３２ｂのそれぞれから削除する。差分抽出データ比較手段１２ｂは、第１の差分抽出データ３２ａの部分木データと第２の差分抽出データ３２ｂの部分木データが異なる部分木データに含まれる各要素について、要素名、属性名リスト及び属性値リストが等しい要素を抽出して第１の差分抽出データ３２ａと第２の差分抽出データ３２ｂのそれぞれから削除する。
【００６６】
例えば、図１４に示す様に、ＰＳＭデータ６１に関する第１の差分抽出データ３２ａに含まれた差分抽出データＡは、ＰＳＭデータ６２に関する第２の差分抽出データ３２ｂに含まれた差分抽出データＡ乃至差分抽出データＥのそれぞれと比較される。同様の処理をＰＳＭデータ６１の第１の抽出データ３２ａに含まれた差分抽出データＢ乃至差分抽出データＥについて繰り返す。図１５に示すように、ＰＳＭデータ６１に関する差分抽出データＣと、ＰＳＭデータ６２に関する差分抽出データＢが等価の場合、ＰＳＭデータ６１に関する差分抽出データ３２ａに含まれる差分抽出データＣを、差分抽出データ３２ａから削除するとともに、ＰＳＭデータ６２に関する差分抽出データ３２ｂに含まれる差分抽出データＢを、差分抽出データ３２ｂから削除する。
【００６７】
ここで図１６を参照して、差分抽出データ比較手段１２ｂによる差分抽出データ比較処理を説明する。  
まず、ステップＳ２０１において、差分抽出データ３２ａ及び差分抽出データ３２ｂについて、一定の固まりとみなして、ＰＳＭデータ６１とＰＳＭデータ６２について、それぞれ部分木データを作成する。ここで部分木データとは、複数の要素が含まれている状態で、例えばあるノードからから葉までの要素群のデータである。次に、全てのＰＳＭデータ６１の差分抽出データとＰＳＭデータ６２の差分抽出データについて、ステップＳ２０２乃至ステップＳ２０７の処理を繰り返す。  
ステップＳ２０２において、ステップＳ２０１で生成されたＰＳＭデータ６１の部分木データとＰＳＭ６２の部分木データを抽出する。ステップＳ２０３において、ＰＳＭデータ６１の差分抽出データ３２ａの部分木データと、ＰＳＭデータ６２の差分抽出データ３２ｂの部分木データとが等しいか否かを検討する。ここで、部分木データが等しいとは、部分木に含まれる全ての要素について、要素名、属性名リスト、属性値リスト、ｘｍｉ．ｉｄ、祖先ｘｍｉ．ｉｄ等の差分抽出データが同一である状態である。等しい場合、ステップＳ２０４において、ＰＳＭデータ６１に関する差分抽出データ３２ａから当該部分木データに関する差分抽出データを削除するとともに、ＰＳＭデータ６２に関する差分抽出データ３２ｂから当該部分木データに関する差分抽出データを削除する。  
次に、ステップＳ２０５において、ＰＳＭデータ６１に関する差分抽出データ３２ａの部分木データと、ＰＳＭデータ６２に関する差分抽出データ３２ｂの部分木データのそれぞれについて、要素に分解する。更に、全てのＰＳＭデータ６１に関する各要素と、ＰＳＭデータ６２に関する各要素について、ステップＳ２０６及びステップＳ２０７の処理を繰り返す。  
ステップＳ２０６において、ＰＳＭデータ６１に関する要素とＰＳＭデータ６２に関する要素とを抽出し、ＰＳＭデータ６１に関する要素とＰＳＭデータ６２に関する要素が等しいかを検討する。ここで、要素が等しいとは、要素名、属性名リスト、属性値リスト、ｘｍｉ．ｉｄ、祖先ｘｍｉ．ｉｄ等の差分抽出データが同一である状態である。等しい場合、ステップＳ２０７においてＰＳＭデータ６１に関する要素のデータを、差分抽出データ３２ａから削除するとともに、とＰＳＭデータ６２に関する要素のデータを、差分抽出データ３２ｂから削除する。ＰＳＭデータ６１に関する要素とＰＳＭデータ６２の要素が異なる場合は、次のＰＳＭデータ６１に関する要素とＰＳＭデータ６２の要素について比較する。
【００６８】
以上の処理により、差分抽出データ比較手段１２ｂは、差分抽出データ３２ａと差分抽出データ３２ｂを比較して差分を抽出する。又、部分木データの単位で比較することにより、より早く差分を抽出することができる。
【００６９】
差分適用データ生成手段１２ｃは、差分抽出データ比較手段１２ｂによる比較結果に基づいて差分適用データ３３を出力する。差分適用データ生成手段１２ｃは、差分適用データ３３を記憶装置１０７ｂに記憶する。
【００７０】
差分適用データ生成手段１２ｃは、第１の差分抽出データ３２ａと第２の差分抽出データ３２ｂのそれぞれに共通する要素の識別子に関連づけられた要素の区分を変更に設定する。差分適用データ生成手段１２ｃは、第１の差分抽出データ３２ａに含まれ第２の差分抽出データ３２ｂに含まれない要素の識別子に関連づけられた要素の区分を削除に設定する。差分適用データ生成手段１２ｃは、第２の差分抽出データ３２ｂに含まれ第１の差分抽出データ３２ａに含まれない要素の識別子に関連づけられた要素の区分を削除に設定する。差分適用データ生成手段１２ｃは、上記の処理により要素の識別子及び区分を関連づけた差分適用データ３３を出力して、差分適用データ３３を記憶装置１０７ｂに記憶する。
【００７１】
差分適用データ３３は、図１７に示す様なデータ構造を備える。差分適用データ３３は、ｘｍｉ．ｉｄ（当該要素がｘｍｉ．ｉｄを持たない場合は、パス名）、更新リスト、区分、距離、祖先ｘｍｉ．ｉｄを備える。更新リストとは、更新前の属性リストと、更新後の属性リストが含まれる。区分は、当該要素について、ＰＳＭデータ６１とＰＳＭデータ６２との間でどのように変化したかを示す区分であって、変更、削除、追加が記載される。距離及び祖先ｘｍｉ．ｉｄは、差分抽出データ３２ａ及び３２ｂに設定されているデータと同様である。差分適用データは、図１８に示すようなデータを備える。区分が削除の場合、更新リストにおいては、更新前属性リストのみ記載される。区分が追加の場合、更新リストにおいては更新後属性リストのみ記載される。区分が更新の場合、属性値が変更になったものだけではなく、変更されていない属性についても属性名と属性値が全て書き出される。
【００７２】
タグ組み合わせデータ生成手段１３は、差分適用データ３３をＰＳＭデータ６３に適用する際の組み合わせのセットを生成する手段である。タグ組み合わせデータ生成手段１３は、差分適用データテーブル３４及びタグ組み合わせデータテーブル３５を出力する。
【００７３】
差分適用データテーブル３４は、図１９に示すように、差分適用データ３３に記載された各要素と、当該要素を識別するアドレスを関連づけたテーブルである。タグ組み合わせデータテーブル３５は、図２０に示すように、同時に適用しなければならない差分適用データの組み合わせについて、差分適用データテーブル３４のアドレスで表現したテーブルである。例えば、タグ組み合わせデータテーブル３５のアドレス２においては、差分適用データテーブル３４のアドレス４の「EEEEEEEEE」とアドレス５の「FFFFFFFFF」の各差分適用データを適用しなければならないことを示している。この様に、同時に適用しなければならない差分適用データの組み合わせを保持することにより、ＰＳＭデータ６３における整合性を保つことができる。
【００７４】
画面表示データ生成手段１４は、タグ組み合わせデータテーブル３５に記憶された各組み合わせについて、どのデータをＰＳＭデータ６３に適用するかをユーザに選択させるための表示画面Ｐ１０１を表示するためのデータを生成する手段である。表示画面Ｐ１０１は、図２１に示すような画面である。図２１には、タグ組み合わせデータテーブル３５に含まれる各組み合わせについて、適用するか否かをユーザに選択させるチェックボックスが設けられている。
【００７５】
差分適用手段１５は、ＰＩＭデータ５１が修正されＰＩＭデータ５１’が生成されると、変換ルールデータ及び差分適用データ３３とに基づいてＰＩＭデータ５１’から差分適用ＰＳＭデータ６３’を生成する。具体的には差分適用手段１５は、まず、ＰＩＭデータ５１’からＰＳＭデータ６３を生成して、リポジトリデータ２１に記憶する。更に差分適用手段１５は、リポジトリデータ２１からＰＳＭデータ６３を取得して、ＰＳＭデータ６３に差分適用データを適用して、差分適用ＰＳＭデータ６３’を生成する。
【００７６】
このとき差分適用手段１５は、図２１に示した表示画面Ｐ１０１において、ユーザによってチェックボックスがチェックされた組み合わせについて、タグ組み合わせデータテーブル３５からアドレスを取得し、取得したアドレスをキーとして、差分適用データテーブル３４から差分適用データを取得する。差分適用手段１５は、取得された差分適用データに基づいて、要素を追加又は削除したり、要素の属性値を変更したりする。
【００７７】
以上、本発明の最良の実施の形態に係る変換装置は、上流工程での改良や変更を下流工程で吸収可能なパーシャルラウンドトリップが実現できる。これにより、上流工程での開発作業と下流工程での開発作業とを平行して進めることができる。更に、開発に係る工数を低減し効率的なシステム開発を実現することができる。
【００７８】
又、本発明の最良の実施の形態に係る変換装置によれば、上流工程で変更が生じた際の戻り工程の排除と下流工程の変更を吸収することができるので、生産性が向上する。又、最良の実施の形態では、上流工程成果物であるＰＩＭデータに変更が生じた場合について説明したが、上流工程成果物データから下流工程成果物データに変換する際の変換ルールデータに変更が生じた場合についても同様の処理により吸収することができる。
【００７９】
更に本発明の最良の実施の形態に係る変換装置によれば、パーシャルラウンドトリップの実現によって、反復工程を実現することができる。従って、システム開発における品質を向上させることができる。
【００８０】
（その他の実施の形態）
上記のように、本発明の最良の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
【００８１】
例えば、本発明の最良の実施の形態に記載した承認支援装置は、図９に示すように一つのハードウェア上に構成されても良いし、その機能や処理数に応じて複数のハードウェア上に構成されても良い。又、既存の変換装置上に実現されても良い。
【００８２】
又、本発明の最良の実施の形態では、上流工程成果物データがＰＩＭデータ、下流工程成果物データがＰＳＭデータである場合について説明したが、他のデータについても適用可能である。
【００８３】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００８４】
【図１】本発明の最良の実施の形態における処理の概要を説明する図である。
【図２】本発明の最良の実施の形態において、ＰＩＭデータの一例を説明するクラス図である。
【図３】本発明の最良の実施の形態において、ＰＩＭデータから修正された新たなＰＩＭデータの一例を説明するクラス図である。
【図４】本発明の最良の実施の形態において、ＰＩＭデータから変換されたＰＳＭデータの一例を説明するクラス図である。
【図５】本発明の最良の実施の形態において、ＰＳＭデータから修正された新たなＰＳＭデータの一例を説明するクラス図である。
【図６】本発明の最良の実施の形態において、新たなＰＩＭデータから変換された新たなＰＳＭデータの一例を説明するクラス図である。
【図７】本発明の最良の実施の形態において、変換ツールによるモデルデータの変換を詳細に説明する図である。
【図８】本発明の最良の実施の形態に係る変換装置のハードウェア構成図である。
【図９】本発明の最良の実施の形態に係る変換装置の機能ブロック図である。
【図１０】本発明の最良の実施の形態に係る変換装置の差分抽出データのデータ構造を説明する図であって、図１０（ａ）は、ｘｍｉ．ｉｄを持つ要素についての差分抽出データであって、図１０（ｂ）は、ｘｍｉ．ｉｄを持たない要素についての差分抽出データである。
【図１１】本発明の最良の実施の形態に係る変換装置において、ｘｍｉ．ｉｄを持つ要素の差分抽出データを説明する図である。
【図１２】本発明の最良の実施の形態に係る変換装置において、ｘｍｉ．ｉｄを持たない要素の差分抽出データを説明する図である。
【図１３】本発明の最良の実施の形態に係る変換装置の差分抽出データ生成処理を説明するフローチャートである。
【図１４】本発明の最良の実施の形態に係る変換装置の差分抽出データ比較処理において、各差分抽出データの比較を説明する図である。
【図１５】本発明の最良の実施の形態に係る変換装置の差分抽出データ比較処理において、差分抽出データの削除を説明する図である。
【図１６】本発明の最良の実施の形態に係る変換装置の差分抽出データ比較処理を説明するフローチャートである。
【図１７】本発明の最良の実施の形態に係る変換装置の差分適用データのデータ構造を説明する図である。
【図１８】本発明の最良の実施の形態に係る変換装置の差分適用データのデータの一例を説明する図である。
【図１９】本発明の最良の実施の形態に係る変換装置の差分適用データテーブルのデータ構造及びデータの一例を説明する図である。
【図２０】本発明の最良の実施の形態に係る変換装置のタグ組み合わせデータテーブルのデータ構造及びデータの一例を説明する図である。
【図２１】本発明の最良の実施の形態に係る変換装置の画面表示データ生成手段によって生成された画面表示データに基づいて表示される表示画面の一例である。
【図２２】変換ツールによって、ＰＩＭデータからＰＳＭデータが作成されることを説明する図である。
【図２３】従来の開発工程の問題点を説明する図である。
【符号の説明】
【００８５】
１…変換装置
１１…フィルタリング手段
１２…差分抽出手段
１２ａ…差分抽出データ生成手段
１２ｂ…差分抽出データ比較手段
１２ｃ…差分適用データ生成手段
１３…タグ組み合わせデータ生成手段
１４…画面表示データ生成手段
１５…差分適用手段
２１…リポジトリデータ
２２…差分適用ＰＳＭデータ
３２ａ、３２ｂ…差分抽出データ
３３…差分適用データ
３４…差分適用データテーブル
３５…タグ組み合わせデータテーブル
３６…画面表示データ
５１、５１’…ＰＩＭデータ
６１、６２、６３…ＰＳＭデータ
１０１…中央処理制御装置
１０２…ＲＯＭ
１０３…ＲＡＭ
１０４…入力装置
１０５…表示装置
１０６…通信制御装置
１０７、１０７ａ、１０７ｂ…記憶装置
１０８…リムーバブルディスク
１０９…入出力インタフェース
１１０…バス
【図１】
2008225898.tif 000003
【図２】
2008225898.tif 000004
【図３】
2008225898.tif 000005
【図４】
2008225898.tif 000006
【図５】
2008225898.tif 000007
【図６】
2008225898.tif 000008
【図７】
2008225898.tif 000009
【図８】
2008225898.tif 000010
【図９】
2008225898.tif 000011
【図１０】
2008225898.tif 000012
【図１１】
2008225898.tif 000013
【図１２】
2008225898.tif 000014
【図１３】
2008225898.tif 000015
【図１４】
2008225898.tif 000016
【図１５】
2008225898.tif 000017
【図１６】
2008225898.tif 000018
【図１７】
2008225898.tif 000019
【図１８】
2008225898.tif 000020
【図１９】
2008225898.tif 000021
【図２０】
2008225898.tif 000022
【図２１】
2008225898.tif 000023
【図２２】
2008225898.tif 000024
【図２３】
2008225898.tif 000025