(57)【要約】【課題】メタモデルが編集された際のソースコードの生成を支援できるようにすることを目的とする。【解決手段】差分抽出部１１０は、第１のメタモデルと第２のメタモデルとのメタモデル差分を抽出する。影響分析部１２０は、第１の規則ファイルから、メタモデル差分に対応する影響規則を特定する。規則編集部１３０は、影響規則を編集することによって、第２の規則ファイルを生成する。表示部１９２は、第２の規則ファイルを表示する。【選択図】図１
2018005315.tif 000002
【特許請求の範囲】
【請求項１】
第１のソースコードモデルに基づいて第１のソースコードを生成するためのソースコード規則を含んだ第１の規則ファイルと、前記第１のソースコードモデルを生成するための第１のメタモデルと、前記第１のメタモデルを編集して得られる第２のメタモデルとを記憶する記憶部と、
前記第１のメタモデルと前記第２のメタモデルとの差分をメタモデル差分として抽出する差分抽出部と、
前記第１の規則ファイルから前記メタモデル差分に対応するソースコード規則を影響規則として特定する影響分析部と
を備える規則変換支援装置。
【請求項２】
前記差分抽出部は、前記第２のメタモデルに追加された追加要素と、前記第１のメタモデルと前記第２のメタモデルとに共通する要素であって一部異なる要素である変更要素と、第１のメタモデルから削除された削除要素とを前記メタモデル差分として抽出する
請求項１に記載の規則変換支援装置。
【請求項３】
前記影響分析部は、前記第１の規則ファイルの中で前記追加要素に対応する影響規則に追加タグを付記し、前記第１の規則ファイルの中で前記変更要素に対応する影響規則に変更タグを付記し、前記第１の規則ファイルの中で前記削除要素に対応する影響規則に削除タグを付記する
請求項２に記載の規則変換支援装置。
【請求項４】
前記追加タグと前記変更タグと前記削除タグとのうちの前記影響規則に付記されたタグに基づいて前記影響規則を編集することによって、第２の規則ファイルを生成する規則編集部を備える
請求項３に記載の規則変換支援装置。
【請求項５】
前記規則編集部は、前記影響規則が編集条件を満たす場合に前記影響規則を編集する
請求項４に記載の規則変換支援装置。
【請求項６】
前記規則編集部は、前記第２の規則ファイルの中で前記影響規則に対応する箇所に前記影響規則に付記されたタグを記す
請求項５に記載の規則変換支援装置。
【請求項７】
前記第２の規則ファイルを表示する表示部を備える
請求項６に記載の規則変換支援装置。
【請求項８】
前記追加要素と前記変更要素と前記削除要素とのうちの前記メタモデル差分の種類に基づいて前記影響規則を編集することによって、第２の規則ファイルを生成する規則編集部を備える
請求項２に記載の規則変換支援装置。
【請求項９】
前記規則編集部は、前記影響規則が編集条件を満たす場合に前記影響規則を編集する
請求項８に記載の規則変換支援装置。
【請求項１０】
前記規則編集部は、前記第２の規則ファイルの中で前記影響規則に対応する箇所に前記メタモデル差分の種類を記す
請求項９に記載の規則変換支援装置。
【請求項１１】
前記第２の規則ファイルを表示する表示部を備える
請求項１０に記載の規則変換支援装置。
【請求項１２】
第１の規則ファイルと第１のメタモデルと第２のメタモデルとを用いる規則変換支援プログラムであり、
前記第１の規則ファイルは、第１のソースコードモデルに基づいて第１のソースコードを生成するためのソースコード規則を含んだファイルであり、
前記第１のメタモデルは、前記第１のソースコードモデルを生成するためのメタモデルであり、
前記第２のメタモデルは、前記第１のメタモデルを編集して得られるメタモデルであり、
前記第１のメタモデルと前記第２のメタモデルとの差分をメタモデル差分として抽出する差分抽出部と、
前記第１の規則ファイルから前記メタモデル差分に対応するソースコード規則を影響規則として特定する影響分析部として
コンピュータを機能させるための規則変換支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メタモデルが編集された際のソースコードの生成に関するものである。
【背景技術】
【０００２】
ソフトウェアの開発を効率化するために、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）を用いて記述されたモデルからソースコードを自動で生成する技術が広く普及している。
【０００３】
モデルからソースコードを生成するためのソフトウェアまたはハードウェアをソースコード生成器と呼ぶ。
モデルの規則を定義するものをメタモデルと呼ぶ。モデルはメタモデルに従って作成されている必要がある。
ソースコード生成器は、入力となるモデルに対応するメタモデルに従って作成されている必要がある。
【０００４】
モデルで表現したい内容の要求に応じて、メタモデルに変更が生じることがある。
メタモデルに変更が生じると、変更前のメタモデルに従って作成されているモデルを、変更後のメタモデルに対応するモデルに変換する必要が生じる場合がある。
その場合、変更前のメタモデルに従って作成されたソースコード生成器を、変更後のメタモデルに対応するソースコード生成器に変換する必要が生じる。
【０００５】
特許文献１には、変更前のメタモデルに従って作成されたモデルを変更後のメタモデルに対応するモデルに変換するための技術が開示されている。
特許文献１に開示された技術は、メタモデルの変更に応じてモデルを変換するためのソースコード等を自動で生成する技術である。
つまり、特許文献１に開示された技術は、メタモデルの変更に応じてソースコード生成器を変換する技術ではない。
そのため、特許文献１に開示された技術では、メタモデルの変更の影響が及ぶ箇所をソースコード生成器から抽出することはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２６２５５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、メタモデルが編集された際のソースコードの生成を支援できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の規則変換支援装置は、
第１のソースコードモデルに基づいて第１のソースコードを生成するためのソースコード規則を含んだ第１の規則ファイルと、前記第１のソースコードモデルを生成するための第１のメタモデルと、前記第１のメタモデルを編集して得られる第２のメタモデルとを記憶する記憶部と、
前記第１のメタモデルと前記第２のメタモデルとの差分をメタモデル差分として抽出する差分抽出部と、
前記第１の規則ファイルから前記メタモデル差分に対応するソースコード規則を影響規則として特定する影響分析部とを備える。
【発明の効果】
【０００９】
本発明によれば、第１のメタモデルが第２のメタモデルに編集された際にメタモデル差分に対応する影響規則を特定することができる。特定された影響規則が編集されることにより、第２の規則ファイルを得ることが可能となる。そして、第２の規則ファイルに基づいて、第２のソースコードを生成することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１における規則変換支援装置１００の構成図。
【図２】実施の形態１における記憶部１９１の構成図。
【図３】実施の形態１におけるソースコード生成器２０４の関係図。
【図４】実施の形態１における第１のメタモデル２１０を示す図。
【図５】実施の形態１における第１のソースコードモデル２１１を示す図。
【図６】実施の形態１における第１の規則ファイル２１２を示す図。
【図７】実施の形態１における第１のソースコード２１３を示す図。
【図８】実施の形態１における第２のメタモデル２２０を示す図。
【図９】実施の形態１における規則変換支援方法のフローチャート。
【図１０】実施の形態１における合成メタモデル２３０を示す図。
【図１１】実施の形態１における第１の規則ファイル２１２［タグ付き］を示す図。
【図１２】実施の形態１における第２の規則ファイル２２２を示す図。
【図１３】実施の形態における規則変換支援装置１００のハードウェア構成図。
【発明を実施するための形態】
【００１１】
実施の形態および図面において、同じ要素または互いに相当する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略する。
【００１２】
実施の形態１．
規則変換支援装置１００について、図１から図１２に基づいて説明する。
【００１３】
＊＊＊構成の説明＊＊＊
図１に基づいて、規則変換支援装置１００の構成を説明する。
規則変換支援装置１００は、プロセッサ９０１とメモリ９０２と補助記憶装置９０３とディスプレイ９０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１４】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。具体的には、プロセッサ９０１は、ＣＰＵ、ＤＳＰまたはＧＰＵである。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称であり、ＤＳＰはＤｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略称であり、ＧＰＵはＧｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。
メモリ９０２は揮発性の記憶装置である。メモリ９０２は、主記憶装置またはメインメモリとも呼ばれる。具体的には、メモリ９０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
補助記憶装置９０３は不揮発性の記憶装置である。具体的には、補助記憶装置９０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称であり、ＨＤＤはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。
プロセッサ９０１とメモリ９０２と補助記憶装置９０３とをまとめたハードウェアを「プロセッシングサーキットリ」という。
【００１５】
ディスプレイ９０４は、画像等を表示する表示装置である。具体的には、ディスプレイ９０４は液晶ディスプレイである。ディスプレイ９０４はモニタともいう。
【００１６】
規則変換支援装置１００は、差分抽出部１１０と影響分析部１２０と規則編集部１３０といった「部」を機能構成の要素として備える。「部」の機能はソフトウェアで実現される。「部」の機能については後述する。
【００１７】
補助記憶装置９０３には、「部」の機能を実現するプログラムが記憶されている。「部」の機能を実現するプログラムは、メモリ９０２にロードされて、プロセッサ９０１によって実行される。
さらに、補助記憶装置９０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ９０２にロードされて、プロセッサ９０１によって実行される。
つまり、プロセッサ９０１は、ＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
「部」の機能を実現するプログラムを実行して得られるデータは、メモリ９０２、補助記憶装置９０３、プロセッサ９０１内のレジスタまたはプロセッサ９０１内のキャッシュメモリといった記憶装置に記憶される。
【００１８】
メモリ９０２は、規則変換支援装置１００で使用、生成、入力、出力、送信または受信されるデータが記憶される記憶部１９１として機能する。但し、他の記憶装置が記憶部１９１として機能してもよい。
ディスプレイ９０４は画像等を表示する表示部１９２として機能する。
【００１９】
規則変換支援装置１００は、プロセッサ９０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、「部」の機能を実現するプログラムの実行を分担する。
「部」の機能を実現するプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
「部」は「処理」または「工程」に読み替えてもよい。「部」の機能はファームウェアで実現してもよい。
【００２０】
図２に基づいて、記憶部１９１の構成を説明する。
記憶部１９１には、第１のメタモデル２１０、第１の規則ファイル２１２、第２のメタモデル２２０および第２の規則ファイル２２２などが記憶される。
【００２１】
第１の規則ファイル２１２は、第１のソースコードモデルに基づいて第１のソースコードを生成するためのソースコード規則を含んだファイルである。
第１のメタモデル２１０は、第１のソースコードモデルを生成するためのメタモデルである。
第２のメタモデル２２０は、第１のメタモデル２１０を編集して得られるメタモデルである。
第２の規則ファイル２２２は、第１の規則ファイル２１２を編集して得られるファイルである。
【００２２】
第１の規則ファイル２１２、第１のメタモデル２１０、第２のメタモデル２２０および第２の規則ファイル２２２の詳細については後述する。
【００２３】
＊＊＊動作の説明＊＊＊
規則変換支援装置１００の動作は規則変換支援方法に相当する。また、規則変換支援方法の手順は規則変換支援プログラムの手順に相当する。
【００２４】
図３に基づいて、メタモデル２００とソースコードモデル２０１と規則ファイル２０２とソースコード２０３とソースコード生成器２０４との関係を説明する。
ソースコード２０３が実行されることによって、複数の要素を有するデータが処理される。
ソースコードモデル２０１は、処理されるデータに含まれる要素同士の関係を表すモデルである。具体的には、ソースコードモデル２０１はＵＭＬモデルである。
メタモデル２００は、ソースコードモデル２０１の上位のモデルであり、ソースコードモデル２０１の規則となる情報を有する。
規則ファイル２０２には、ソースコードモデル２０１に基づいてソースコード２０３を生成するためのソースコード規則が含まれる。
ソースコード生成器２０４は、ソースコード２０３を生成するソフトウェアまたはハードウェアである。
【００２５】
ソースコードモデル２０１は、メタモデル２００に基づいて生成される。
ソースコード生成器２０４は、ソースコードモデル２０１と規則ファイル２０２とに基づいて、ソースコード２０３を生成する。
【００２６】
第１のメタモデル２１０および第２のメタモデル２２０は、メタモデル２００である。
第１の規則ファイル２１２および第２の規則ファイル２２２は、規則ファイル２０２である。
【００２７】
図４に基づいて、第１のメタモデル２１０の具体例を説明する。
第１のメタモデル２１０は、テーブルを構成する要素が定義されたメタモデル２００である。
第１のメタモデル２１０は、＜＜Ｅｎｕｍ＞＞、［Ｔａｂｌｅ］、［Ｃｏｌｕｍｎ］、［ＰｒｉｍａｒｙＫａｙ］および［ＦｏｒｅｉｇｎＫｅｙ］といった要素を含んでいる。
［Ｔａｂｌｅ］は、［ｎａｍｅ］という要素を有する。［ｎａｍｅ］は文字列である。
［Ｔａｂｌｅ］は、０個以上の［Ｃｏｌｕｍｎ］を持つことができる。［Ｔａｂｌｅ］は、１個の［ＰｒｉｍａｒｙＫｅｙ］を持つ。［Ｔａｂｌｅ］は、０個以上の［ＦｏｒｅｉｇｎＫｅｙ］を持つことができる。
【００２８】
図５に基づいて、図４の第１のメタモデル２１０に基づいて生成される第１のソースコードモデル２１１を説明する。
第１のソースコードモデル２１１は、「Ｃｕｓｔｏｍｅｒ」と「ＩｔｅｍＯｒｄｅｒ」といった要素を含んでいる。
「Ｃｕｓｔｏｍｅｒ」および「ＩｔｅｍＯｒｄｅｒ」は、図４の［Ｔａｂｌｅ］に対応する要素である。
【００２９】
「Ｃｕｓｔｏｍｅｒ」において、Ｃｕｓｔｏｍｅｒという文字列は、図４の［Ｔａｂｌｅ］の［ｎａｍｅ］に対応する要素である。
「Ｃｕｓｔｏｍｅｒ」は、「ＣｕｓｔｏｍｅｒＩＤ」、「ＣｕｓｔｏｍｅｒＮａｍｅ」および「ＣｕｓｔｏｍｅｒＡｄｄｒｅｓｓ」といった要素を持っている。これらの要素は、図４の［Ｃｏｌｕｍｎ］に対応する要素である。
さらに、「Ｃｕｓｔｏｍｅｒ」は、図４の［ＰｒｉｍａｒｙＫｅｙ］に対応する要素として、「ＣｕｓｔｏｍｅｒＩＤ」を参照する要素を持っている。
「Ｃｕｓｔｏｍｅｒ」は、図４の［ＦｏｒｅｉｇｎＫｅｙ］に対応する要素を持っていない。
【００３０】
「ＩｔｅｍＯｒｄｅｒ」において、ＩｔｅｍＯｒｄｅｒという文字列は、図４の［Ｔａｂｌｅ］の［ｎａｍｅ］に対応する要素である。
「ＩｔｅｍＯｒｄｅｒ」は、「ＯｒｄｅｒＩＤ」、「ＯｒｄｅｒＤａｔａ」、「ＯｒｄｅｒＮｕｍ」および「ＣｕｓｔｏｍｅｒＩＤ」といった要素を持っている。これらの要素は、図４の［Ｃｏｌｕｍｎ］に対応する要素である。
さらに、「ＩｔｅｍＯｒｄｅｒ」は、図４の［ＰｒｉｍａｒｙＫｅｙ］に対応する要素として、「ＯｒｄｅｒＩＤ」を参照する要素を持っている。
さらに、「ＩｔｅｍＯｒｄｅｒ」は、図４の［ＦｏｒｅｉｇｎＫｅｙ］に対応する要素として、「ＣｕｓｔｏｍｅｒＩＤ」を参照する要素を持っている。
【００３１】
図６に基づいて、図４の第１のメタモデル２１０に対応する第１の規則ファイル２１２を説明する。
第１の規則ファイル２１２は、（Ａ）、（Ｂ）および（Ｃ）の規則データを含んでいる。
（Ａ）の規則データは、図４の［Ｔａｂｌｅ］に対応する規則データであり、第１から第９のソースコード規則を含んでいる。
（Ｂ）の規則データは、図４の［ＰｒｉｍａｒｙＫｅｙ］から参照される［Ｃｏｌｕｍｎ］に対応する規則データであり、第１から第７のソースコード規則を含んでいる。
（Ｃ）の規則データは、図４の［ＦｏｒｅｉｇｎＫｅｙ］から参照される［Ｃｏｌｕｍｎ］に対応する規則データであり、第１から第１２のソースコード規則を含んでいる。
【００３２】
図７に、図５の第１のソースコードモデル２１１と図６の第１の規則ファイル２１２とに基づいて生成される第１のソースコード２１３を示す。
第１のソースコード２１３は、ＣｕｓｔｏｍｅｒテーブルとＩｔｅｍＯｒｄｅｒテーブルとを生成するためのソースコード２０３である。
【００３３】
図８に基づいて、図４の第１のメタモデル２１０を編集して得られる第２のメタモデル２２０を説明する。
第２のメタモデル２２０は、図４の第１のメタモデル２１０が以下の（１）から（３）のように編集されることによって得られたメタモデル２００である。
（１）図４の［Ｃｏｌｕｍｎ］に［Ｎｕｌｌａｂｌｅ］という要素が追加された。
（２）図４の［ＰｒｉｍａｒｙＫｅｙ］が［ＰＫ］という要素に変更された。
（３）図４の［ＦｏｒｅｉｇｎＫｅｙ］が削除された。
【００３４】
図９に基づいて、規則変換支援方法を説明する。
ステップＳ１１０は差分抽出処理である。
ステップＳ１１０において、差分抽出部１１０は、第１のメタモデル２１０と第２のメタモデル２２０との差分を抽出する。
抽出される差分をメタモデル差分という。
【００３５】
具体的には、差分抽出部１１０は、第１のメタモデル２１０に含まれる要素と第２のメタモデル２２０に含まれる要素とを互いに比較し、比較結果に基づいて追加要素と変更要素と削除要素とを抽出する。
抽出される追加要素、変更要素および削除要素がメタモデル差分である。
【００３６】
追加要素は、第２のメタモデル２２０に追加された要素である。
図４の第１のメタモデル２１０と図８の第２のメタモデル２２０とを互いに比較すると、第２のメタモデル２２０の［Ｃｏｌｕｍｎ］に［Ｎｕｌｌａｂｌｅ］が追加されている。この［Ｎｕｌｌａｂｌｅ］は第１のメタモデル２１０には存在しない。
したがって、［Ｎｕｌｌａｂｌｅ］は追加要素である。
【００３７】
変更要素は、第１のメタモデル２１０と第２のメタモデル２２０とに共通する要素であって一部異なる要素である。言い換えると、変更要素は、第１のメタモデル２１０と第２のメタモデル２２０とで互いに対応する要素のうち、一部異なる要素である。
図４の第１のメタモデル２１０と図８の第２のメタモデル２２０とを互いに比較すると、ｐｒｉｍａｒｙＫｅｙｓという属性を有する要素が共通している。第１のメタモデル２１０における要素の名称は［ＰｒｉｍａｒｙＫｅｙ］であり、第２のメタモデル２２０における要素の名称は［ＰＫ］であり、互いの要素の名称が異なる。
したがって、第１のメタモデル２１０における［ＰｒｉｍａｒｙＫｅｙ］および第２のメタモデル２２０における［ＰＫ］は変更要素である。
【００３８】
削除要素は、第１のメタモデル２１０から削除された要素である。
図４の第１のメタモデル２１０と図８の第２のメタモデル２２０とを互いに比較すると、第１のメタモデル２１０から［ＦｏｒｅｉｇｎＫｅｙ］が削除されている。この［ＦｏｒｅｉｇｎＫｅｙ］は第２のメタモデル２２０に存在しない。
したがって、［ＦｏｒｅｉｇｎＫｅｙ］は削除要素である。
【００３９】
さらに、差分抽出部１１０は、以下のようにメタモデル差分にタグを付記する。
まず、差分抽出部１１０は、第１のメタモデル２１０と第２のメタモデル２２０とを用いて、合成メタモデル２３０を生成する。合成メタモデル２３０は、第１のメタモデル２１０と第２のメタモデル２２０とを合成して得られるメタモデル２００である。つまり、合成メタモデル２３０は、第１のメタモデル２１０が有する要素と第２のメタモデル２２０が有する要素とを有する。
そして、差分抽出部１１０は、合成メタモデル２３０の中で追加要素に追加タグを付記する。
また、影響分析部１２０は、合成メタモデル２３０の中で変更要素に変更タグを付記する。
また、影響分析部１２０は、合成メタモデル２３０の中で削除要素に削除タグを付記する。
【００４０】
図１０に基づいて、図４の第１のメタモデル２１０と図８の第２のメタモデル２２０とに対応する合成メタモデル２３０においてメタモデル差分にタグが付記された後の合成メタモデル２３０を説明する。
＜＜Ａｄｄｅｄ＞＞は追加タグである。＜＜Ｃｈａｎｇｅ＞＞は変更タグである。＜＜Ｄｅｌｅｔｅｄ＞＞は削除タグである。
合成メタモデル２３０は、図４の第１のメタモデル２１０が有する要素と図８の第２のメタモデル２２０が有する要素とを有している。
追加要素である［Ｎｕｌｌａｂｌｅ］には追加タグが付記されている。
変更前の変更要素である［ＰｒｉｍａｒｙＫｅｙ］には変更タグが付記されている。また、変更後の追加要素である［ＰＫ］には＜＜ｕｐｄａｔｅｄ＞＞という参照が付記されている。
削除要素である［ＦｏｒｅｉｇｎＫｅｙ］、［ＦｏｒｅｉｇｎＫｅｙ］の参照元および［ＦｏｒｅｉｇｎＫｅｙ］の参照先には削除タグが付記されている。
【００４１】
図９に戻り、ステップＳ１２０から説明を続ける。
ステップＳ１２０は影響分析処理である。
ステップＳ１２０において、影響分析部１２０は、第１の規則ファイル２１２から、ステップＳ１１０で抽出されたメタモデル差分に対応するソースコード規則を特定する。特定されるソースコード規則を影響規則という。
メタモデル差分に対応するソースコード規則とは、メタモデル差分の影響を受けるソースコード規則である。
【００４２】
具体的には、影響分析部１２０は、以下のように影響規則を特定する。
まず、影響分析部１２０は、ステップＳ１１０で生成された合成メタモデル２３０から、タグが付記された要素を抽出する。抽出される要素がメタモデル差分である。
そして、影響分析部１２０は、第１の規則ファイル２１２に含まれる規則データに対して構文解析および字句解析を行い、メタモデル差分の影響を受けるソースコード規則を特定する。特定されるソースコード規則が影響規則である。
【００４３】
さらに、影響分析部１２０は、以下のように影響規則にタグを付記する。
影響分析部１２０は、第１の規則ファイル２１２の中で追加要素に対応する影響規則に追加タグを付記する。
影響分析部１２０は、第１の規則ファイル２１２の中で変更要素に対応する影響規則に変更タグを付記する。
影響分析部１２０は、第１の規則ファイル２１２の規則ファイルの中で削除要素に対応する影響規則に削除タグを付記する。
【００４４】
図６の第１の規則ファイル２１２の規則データ（Ａ）において、第３行から第５行までのソースコード規則は、追加要素［Ｎｕｌｌａｂｌｅ］の影響を受けるソースコード規則である。
したがって、規則データ（Ａ）において第３行から第５行までのソースコード規則は、追加要素［Ｎｕｌｌａｂｌｅ］に対応する影響規則である。
そこで、影響分析部１２０は、規則データ（Ａ）において第３行から第５行までのソースコード規則に追加タグを付記する。
【００４５】
図６の第１の規則ファイル２１２の規則データ（Ｂ）において、第３行から第５行までのソースコード規則は、追加要素［Ｎｕｌｌａｂｌｅ］の影響を受けるソースコード規則である。
したがって、規則データ（Ｂ）において第３行から第５行までのソースコード規則は、追加要素［Ｎｕｌｌａｂｌｅ］に対応する影響規則である。
そこで、影響分析部１２０は、規則データ（Ｂ）において第３行から第５行までのソースコード規則に追加タグを付記する。
【００４６】
図６の第１の規則ファイル２１２の規則データ（Ｂ）において、第１行のソースコード規則は、変更要素［ＰｒａｉｍａｒｙＫｅｙ］および変更要素［ＰＫ］の影響を受けるソースコード規則である。
したがって、規則データ（Ｂ）において第１行のソースコード規則は、変更要素［ＰｒａｉｍａｒｙＫｅｙ］および変更要素［ＰＫ］に対応する影響規則である。
そこで、影響分析部１２０は、規則データ（Ｂ）において第１行のソースコード規則に変更タグを付記する。
【００４７】
図６の第１の規則ファイル２１２の規則データ（Ａ）において、第８行のソースコード規則は、削除要素［ＦｏｒｅｉｇｎＫｅｙ］の影響を受けるソースコード規則である。
したがって、規則データ（Ａ）において第８行のソースコード規則は、削除要素［ＦｏｒｅｉｇｎＫｅｙ］に対応する影響規則である。
そこで、影響分析部１２０は、規則データ（Ａ）において第１行のソースコード規則に削除タグを付記する。
【００４８】
図６の第１の規則ファイル２１２の規則データ（Ｃ）において、第１行から第１２行までのソースコード規則は、削除要素［ＦｏｒｅｉｇｎＫｅｙ］の影響を受けるソースコード規則である。
したがって、規則データ（Ｃ）において第１行から第１２行までのソースコード規則は、削除要素［ＦｏｒｅｉｇｎＫｅｙ］に対応する影響規則である。
そこで、影響分析部１２０は、規則データ（Ｃ）において第１行から第１２行までのソースコード規則に削除タグを付記する。
【００４９】
図１１に基づいて、図６の第１の規則ファイル２１２において影響規則にタグが付記された後の第１の規則ファイル２１２を説明する。
規則データ（Ａ）において第３行から第５行までの影響規則には追加タグが付記されている。
規則データ（Ａ）において第８行の影響規則には削除タグが付記されている。
規則データ（Ｂ）において第１行の影響規則には変更タグが付記されている。
規則データ（Ｂ）において第３行から第５行までの影響規則には追加タグが付記されている。
規則データ（Ｃ）において第１行から第１２行までの影響規則には削除タグが付記されている。
【００５０】
図９に戻り、ステップＳ１３０から説明を続ける。
ステップＳ１３０は規則編集処理である。
ステップＳ１３０において、規則編集部１３０は、追加要素と変更要素と削除要素とのうちのメタモデル差分の種類に基づいて影響規則を編集することによって、第２の規則ファイル２２２を生成する。
【００５１】
具体的には、規則編集部１３０は、追加タグと変更タグと削除タグとのうちの影響規則に付記されたタグに基づいて影響規則を編集することによって、第２の規則ファイル２２２を生成する。
【００５２】
但し、規則編集部１３０は、影響規則が編集条件を満たす場合に影響規則を編集する。
編集条件は、編集可能規則と編集不可規則とのそれぞれの条件である。
編集可能規則は、自動で編集することができる影響規則である。
編集不可規則は、自動で編集することができない影響規則である。
具体的には、追加要素に対応する影響規則は、追加すべき内容が不明であるため、編集不可規則である。
また、変更要素に対応する影響規則は、変更の前後の内容が判明しているため、編集可能規則である。
また、削除要素に対応する影響規則は、削除すればよいため、編集可能規則である。
【００５３】
さらに、規則編集部１３０は、第２の規則ファイル２２２の中で影響規則に対応する箇所にメタモデル差分の種類を記す。
具体的には、規則編集部１３０は、第２の規則ファイル２２２の中で影響規則に対応する箇所に影響規則に付記されたタグを記す。
【００５４】
図１２に基づいて、図１１の第１の規則ファイル２１２を編集することによって生成される第２の規則ファイル２２２を説明する。
第２の規則ファイル２２２は、図１１の第１の規則ファイル２１２と同じく、規則データ（Ａ）と規則データ（Ｂ）と規則データ（Ｃ）とを含んでいる。
規則データ（Ａ）において第３行から第５行までの影響規則には追加タグが付記されている。追加要素に対応する影響規則は編集不可規則であるため、規則データ（Ａ）において第３行から第５行までの影響規則は編集されていない。
規則データ（Ａ）において第８行には削除タグが付記されている。削除要素に対応する影響規則は編集可能規則であるため、規則データ（Ａ）において第８行の影響規則は削除されている。
規則データ（Ｂ）において第１行の影響規則には変更タグが付記されている。変更要素に対応する影響規則は編集可能規則であるため、規則データ（Ｂ）において第１行の影響規則は編集されている。具体的には、ＰｒｉｍａｒｙＫｅｙという文字列がＰＫという文字列に変更されている。
規則データ（Ｂ）において第３行から第５行までの影響規則には追加タグが付記されている。追加要素に対応する影響規則は編集不可規則であるため、規則データ（Ｂ）において第３行から第５行までの影響規則は編集されていない。
規則データ（Ｃ）において第１行から第１２行まで削除タグが付記されている。削除要素に対応する影響規則は編集可能規則であるため、規則データ（Ｃ）において第１行から第１２行までの影響規則は削除されている。
【００５５】
図９に戻り、ステップＳ１４０を説明する。
ステップＳ１４０において、表示部１９２は、ステップＳ１３０で生成された第２の規則ファイル２２２を表示する。
【００５６】
＊＊＊実施の形態１の効果＊＊＊
メタモデル２００の変更に伴う規則ファイル２０２の影響箇所を漏れなく抽出し、自動変換が可能な影響箇所を自動で変換することが可能となる。これにより、規則ファイル２０２の編集漏れおよび規則ファイル２０２の編集の省力化を図ることができる。その結果、ソフトウェア開発を効率化することが可能となる。
【００５７】
＊＊＊実施の形態の補足＊＊＊
実施の形態において、規則変換支援装置１００の機能はハードウェアで実現してもよい。
図１３に、規則変換支援装置１００の機能がハードウェアで実現される場合の構成を示す。
規則変換支援装置１００は処理回路９９０を備える。処理回路９９０はプロセッシングサーキットリともいう。
処理回路９９０は、差分抽出部１１０と影響分析部１２０と規則編集部１３０と記憶部１９１といった「部」の機能を実現する専用の電子回路である。
具体的には、処理回路９９０は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。ＧＡはＧａｔｅ  Ａｒｒａｙの略称であり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【００５８】
規則変換支援装置１００は、処理回路９９０を代替する複数の処理回路を備えてもよい。複数の処理回路は、「部」の機能を分担する。
【００５９】
規則変換支援装置１００の機能は、ソフトウェアとハードウェアとの組み合わせで実現してもよい。つまり、「部」の機能の一部をソフトウェアで実現し、「部」の機能の残りをハードウェアで実現してもよい。
【００６０】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【００６１】
１００  規則変換支援装置、１１０  差分抽出部、１２０  影響分析部、１３０  規則編集部、１９１  記憶部、１９２  表示部、２００  メタモデル、２０１  ソースコードモデル、２０２  規則ファイル、２０３  ソースコード、２０４  ソースコード生成器、２１０  第１のメタモデル、２１１  第１のソースコードモデル、２１２  第１の規則ファイル、２１３  第１のソースコード、２２０  第２のメタモデル、２２２  第２の規則ファイル、２３０  合成メタモデル、９０１  プロセッサ、９０２  メモリ、９０３  補助記憶装置、９０４  ディスプレイ、９９０  処理回路。
【図１】
2018005315.tif 000003
【図２】
2018005315.tif 000004
【図３】
2018005315.tif 000005
【図４】
2018005315.tif 000006
【図５】
2018005315.tif 000007
【図６】
2018005315.tif 000008
【図７】
2018005315.tif 000009
【図８】
2018005315.tif 000010
【図９】
2018005315.tif 000011
【図１０】
2018005315.tif 000012
【図１１】
2018005315.tif 000013
【図１２】
2018005315.tif 000014
【図１３】
2018005315.tif 000015