(57)【要約】【課題】既存のアプリケーションプログラムを個別の状況に応じて変更する作業を簡単に行えるようにする。【解決手段】アプリケーションプログラムの設計モデル上で個別の状況に応じた値を格納できるようにしたい変数と個別の状況を識別する変数とを指定するアノテーションを検出するアノテーション検出部１１と、アノテーションに基づいて設計モデルを変換する変換部１２と、設計モデルを記憶する設計モデル記憶部１３とを備える。そして、変換部１２は、元の入力インターフェイスを新たな入力インターフェイスに変換する入力インターフェイス変換部１４と、元の出力インターフェイスを新たな出力インターフェイスに変換する出力インターフェイス変換部１５と、元の入力インターフェイスからの入力に個別情報を付加して新たな入力インターフェイスを呼び出す設計モデルを生成する新規モデル生成部１６とを備える。【選択図】図６
2008117067.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを変換するための装置であって、
前記アプリケーションプログラムを構成する要素を表示する表示部と、
第１の要素を個別の状況に対応できるようにする旨、及び、第２の要素により当該個別の状況を識別する旨の前記表示部上での指示を検出する検出部と、
前記第１の要素を前記第２の要素により識別される前記個別の状況に対応できるようにする前記アプリケーションプログラムの部分を生成する生成部と
を備えた、装置。
【請求項２】
前記表示部は、前記アプリケーションプログラムの設計モデルを構成するモデル要素を、前記要素として表示し、
前記検出部は、前記第１の要素を前記個別の状況に対応できるようにする旨の指示を、当該第１の要素に対応するモデル要素に対するユーザ操作に応じて検出する、請求項１の装置。
【請求項３】
前記検出部は、前記表示部上での前記指示を、当該指示の内容に応じたアノテーションオブジェクトの当該表示部上での配置を認識することにより検出する、請求項１の装置。
【請求項４】
アプリケーションプログラムを変換するための装置であって、
前記アプリケーションプログラムで用いられる変数を表示する表示部と、
第１の変数が個別の状況に応じた値を格納できるようにする旨、及び、第２の変数により当該個別の状況を識別する旨の前記表示部上での指示を検出する検出部と、
前記第１の変数が前記第２の変数により識別される前記個別の状況に応じた値を格納できるようにする前記アプリケーションプログラムの部分を生成する生成部と
を備えた、装置。
【請求項５】
前記生成部は、前記第１の変数及び前記第２の変数との間で値を受け渡すことができるインターフェイスを、前記部分として生成する、請求項４の装置。
【請求項６】
前記生成部は、前記第１の変数に格納されるべき値を外部から受け取る元の入力インターフェイスに代えて、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取る新たな入力インターフェイスを生成する、請求項４の装置。
【請求項７】
前記生成部は、前記元の入力インターフェイスが外部から受け取った前記第１の変数に格納されるべき値をインターセプトし、かつ、別の入力インターフェイスが外部から受け取った前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて前記新たな入力インターフェイスに受け渡す処理部分を生成する、請求項６の装置。
【請求項８】
前記生成部は、前記第１の変数に格納されている値を外部に受け渡す元の出力インターフェイスに代えて、前記第１の変数に格納されている値と前記第２の変数に格納されている値とを組み合わせて外部に受け渡す新たな出力インターフェイスを生成する、請求項４の装置。
【請求項９】
アプリケーションプログラムを変換するための方法であって、
前記アプリケーションプログラムで用いられる変数を表示部に表示するステップと、
第１の変数が個別の状況に応じた値を格納できるようにする旨、及び、第２の変数により当該個別の状況を識別する旨の前記表示部上での指示を検出するステップと、
前記第１の変数に格納されるべき値を保持するための前記アプリケーションプログラムの要素を管理するデータを記憶する記憶部から、当該データを読み出すステップと、
前記アプリケーションプログラムの前記要素が、前記第１の変数に格納されるべき値として、前記第２の変数により識別される前記個別の状況に応じた値を保持できるように、前記データを変更して前記記憶部に記憶するステップと
を含む、方法。
【請求項１０】
前記読み出すステップでは、前記第１の変数に格納されるべき値を保持するための入力項目を当該入力項目を含む入力インターフェイスに関連付けた前記データを記憶する記憶部から、当該データを読み出し、
前記記憶するステップでは、前記第２の変数に格納されるべき値を保持するための入力項目を前記入力インターフェイスに更に関連付けることにより前記データを変更して前記記憶部に記憶する、請求項９の方法。
【請求項１１】
前記読み出すステップでは、前記第１の変数を更に管理する前記データを記憶する前記記憶部から、当該データを読み出し、
前記記憶するステップでは、前記第２の変数を管理できるように前記データを変更して前記記憶部に記憶する、請求項９の方法。
【請求項１２】
アプリケーションプログラムを変換するためのコンピュータプログラムであって、コンピュータに、
前記アプリケーションプログラムを構成する要素を表示部に表示するステップと、
第１の要素を個別の状況に対応できるようにする旨、及び、第２の要素により当該個別の状況を識別する旨の前記表示部上での指示を検出するステップと、
前記第１の要素を前記第２の要素により識別される前記個別の状況に対応できるようにする前記アプリケーションプログラムの部分を生成するステップと
を実行させる、コンピュータプログラム。
【請求項１３】
前記表示するステップでは、前記アプリケーションプログラムの設計モデルを構成するモデル要素を、前記要素として表示し、
前記検出するステップでは、前記第１の要素を個別の状況に対応できるようにする旨の指示を、当該第１の要素に対応するモデル要素に対するユーザ操作に応じて検出する、請求項１２のコンピュータプログラム。
【請求項１４】
前記検出するステップでは、前記表示部上での前記指示を、当該指示の内容に応じたアノテーションオブジェクトの当該表示部上での配置を認識することにより検出する、請求項１２のコンピュータプログラム。
【請求項１５】
アプリケーションプログラムを変換するためのコンピュータプログラムであって、コンピュータに、
前記アプリケーションプログラムで用いられる変数を表示部に表示するステップと、
第１の変数が個別の状況に応じた値を格納できるようにする旨、及び、第２の変数により当該個別の状況を識別する旨の前記表示部上での指示を検出するステップと、
前記第１の変数が前記第２の変数により識別される前記個別の状況に応じた値を格納できるようにする前記アプリケーションプログラムの部分を生成するステップと
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを変換するための装置、方法、及びプログラムに関し、より詳しくは、個別に変更する箇所を指定してアプリケーションプログラムを変換する装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
一般に、アプリケーションプログラムのような実行実体においては、利用する状況等によって個別に対応しなければならないことがその作成後に判明する場合がある。例えば、外界からの入力に基づいて状況を保持し、判別された状況に応じて情報を出力するプログラムを作成したとする。このようなプログラムでは、状況を判別するための閾値や、出力先であるメールアドレス等を、後で個別に変更したり追加したりする必要が生じることがあるのである。
【０００３】
こうした場合、作成済のアプリケーションプログラムを変更しなければならない。ここで、アプリケーションプログラムの変更を支援する従来の技術として、ソースプログラムの関数呼出記述中の複数の引数のうちの１つを変更する場合に着目したものは存在した(例えば、特許文献１参照)。特許文献１の技術では、１つの引数の位置指定を受け付けると、まず、どの関数のどの引数であるかを特定する。次に、特定した引数の条件を求め、その条件を満たす変数すべてをソースプログラム中から検索し、検索した変数の選択肢を表示する。そして、１つの変数の選択を受け付けると、位置指定された１つの引数を、選択を受け付けた変数に変更している。
【０００４】
【特許文献１】特開２０００−２０２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように、作成済のアプリケーションプログラムに対して利用状況等に応じて後から変更を加える必要が生じることは、一般にあり得ることである。ここでは、アプリケーションモデルを設計し、これに基づいてアプリケーションプログラムを作成する場合について考える。
従来、このような場合に、後から変更を加える必要が生じると、アプリケーションモデルを再設計する作業が必要となっていた。
また、個別の利用状況等を想定した上でアプリケーションモデルを設計し、後で変更を加える必要ができるだけ生じないようにすることも考えられる。しかしながら、アプリケーションモデルを設計するユーザは、システムには詳しいが、必ずしも業務に詳しいとは限らない。従って、個別の利用状況等が事前に十分に想定できない可能性があった。つまり、個別の状況に対応した柔軟なアプリケーションプログラムを作成するためには、アプリケーションプログラムの開発者に高いスキルが求められていた。
【０００６】
また、特許文献１には、アプリケーションプログラムの変更を支援することは開示されているが、個別の状況に応じてアプリケーションプログラムを変更する場合に着目したものではない。例えば、アプリケーションモデルに基づいてアプリケーションプログラムを作成する場合について言えば、従来、元のアプリケーションモデルをテンプレートとして用い個別利用可能な新たなアプリケーションモデルに変換し、かつ、個別のインスタンスを生成する別のアプリケーションモデルを生成するような技術は、存在しなかった。
【０００７】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、既存のアプリケーションプログラムを個別の状況に応じて変更する作業を簡単に行えるようにすることにある。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明では、個別の状況に対応できるようにしたい要素と、その個別の状況を識別する要素とを指定するだけで、元のアプリケーションプログラムを、個別の状況に対応したアプリケーションプログラムに簡単に変換できるようにした。
即ち、本発明の第１の装置は、アプリケーションプログラムを構成する要素を表示する表示部と、第１の要素を個別の状況に対応できるようにする旨、及び、第２の要素により個別の状況を識別する旨の表示部上での指示を検出する検出部と、第１の要素を第２の要素により識別される個別の状況に対応できるようにするアプリケーションプログラムの部分を生成する生成部とを備えている。
また、本発明の第２の装置は、アプリケーションプログラムで用いられる変数を表示する表示部と、第１の変数が個別の状況に応じた値を格納できるようにする旨、及び、第２の変数により個別の状況を識別する旨の表示部上での指示を検出する検出部と、第１の変数が第２の変数により識別される個別の状況に応じた値を格納できるようにするアプリケーションプログラムの部分を生成する生成部とを備えている。
【０００９】
ここで、「アプリケーションプログラムの部分」としては、例えば、他のアプリケーションプログラムとの間でデータの受け渡しを行うためのインターフェイスを想定することができる。その場合、第１の装置の生成部は、第１の要素及び第２の要素との間で値を受け渡すことができるインターフェイスを「アプリケーションプログラムの部分」として生成する。また、第２の装置の生成部は、第１の変数及び第２の変数との間で値を受け渡すことができるインターフェイスを「アプリケーションプログラムの部分」として生成する。
【００１０】
また、本発明は、アプリケーションプログラムを変換するための方法として捉えることもできる。その場合、本発明の方法は、アプリケーションプログラムで用いられる変数を表示部に表示するステップと、第１の変数が個別の状況に応じた値を格納できるようにする旨、及び、第２の変数により個別の状況を識別する旨の表示部上での指示を検出するステップと、第１の変数に格納されるべき値を保持するためのアプリケーションプログラムの要素を管理するデータを記憶する記憶部から、そのデータを読み出すステップと、アプリケーションプログラムの要素が、第１の変数に格納されるべき値として、第２の変数により識別される個別の状況に応じた値を保持できるように、データを変更して記憶部に記憶するステップとを含んでいる。
【００１１】
更に、本発明は、所定の機能をコンピュータに実現させるプログラムとして捉えることもできる。
その場合、本発明の第１のプログラムは、コンピュータに、アプリケーションプログラムを構成する要素を表示部に表示するステップと、第１の要素を個別の状況に対応できるようにする旨、及び、第２の要素により個別の状況を識別する旨の表示部上での指示を検出するステップと、第１の要素を第２の要素により識別される個別の状況に対応できるようにするアプリケーションプログラムの部分を生成するステップとを実行させる。
また、本発明の第２のプログラムは、コンピュータに、アプリケーションプログラムで用いられる変数を表示部に表示するステップと、第１の変数が個別の状況に応じた値を格納できるようにする旨、及び、第２の変数により個別の状況を識別する旨の表示部上での指示を検出するステップと、第１の変数が第２の変数により識別される個別の状況に応じた値を格納できるようにするアプリケーションプログラムの部分を生成するステップとを実行させる。
【００１２】
ここで、「アプリケーションプログラムの部分」としては、例えば、他のアプリケーションプログラムとの間でデータの受け渡しを行うためのインターフェイスを想定することができる。その場合、第１のプログラムにおける生成するステップでは、第１の要素及び第２の要素との間で値を受け渡すことができるインターフェイスを「アプリケーションプログラムの部分」として生成する。また、第２のプログラムにおける生成するステップでは、第１の変数及び第２の変数との間で値を受け渡すことができるインターフェイスを「アプリケーションプログラムの部分」として生成する。
【発明の効果】
【００１３】
本発明によれば、既存のアプリケーションプログラムを個別の状況に応じて変更する作業を簡単に行えるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
まず、本実施の形態においてアプリケーションプログラム(以下、単に「アプリケーション」という)を変換するアプリケーション変換装置として用いるのに好適なコンピュータのハードウェア構成について説明する。
図１は、このようなコンピュータのハードウェア構成の一例を示した図である。
図示するように、コンピュータは、演算手段であるＣＰＵ(Central Processing Unit)１０ａと、Ｍ/Ｂ(マザーボード)チップセット１０ｂを介してＣＰＵ１０ａに接続されたメインメモリ１０ｃと、同じくＭ/Ｂチップセット１０ｂを介してＣＰＵ１０ａに接続された表示機構１０ｄとを備える。また、Ｍ/Ｂチップセット１０ｂには、ブリッジ回路１０ｅを介して、ネットワークインターフェイス１０ｆと、磁気ディスク装置(ＨＤＤ)１０ｇと、音声機構１０ｈと、キーボード/マウス１０ｉと、フレキシブルディスクドライブ１０ｊとが接続されている。
【００１５】
尚、図１において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ１０ａとＭ/Ｂチップセット１０ｂの間や、Ｍ/Ｂチップセット１０ｂとメインメモリ１０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ/Ｂチップセット１０ｂと表示機構１０ｄとの間は、ＡＧＰ(Accelerated Graphics Port)を介して接続されてもよいが、表示機構１０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ/Ｂチップセット１０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ(ＰＣＩｅ)バスを介して接続される。また、ブリッジ回路１０ｅと接続する場合、ネットワークインターフェイス１０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置１０ｇについては、例えば、シリアルＡＴＡ(AT Attachment)、パラレル転送のＡＴＡ、ＰＣＩ(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス１０ｉ、及び、フレキシブルディスクドライブ１０ｊについては、ＵＳＢ(Universal Serial Bus)を用いることができる。
【００１６】
次に、本実施の形態におけるアプリケーション変換装置によるアプリケーションの変換を、具体例を用いて説明する。尚、以下では、アプリケーションの設計工程においてその処理内容を表現するために作成されるモデル(以下、「設計モデル」という)を用いて、アプリケーションの変換を説明する。つまり、設計モデルの変換をもってアプリケーションの変換を説明する。そこで、これを実際の設計モデルの変換と捉え、変換後の設計モデルに基づいてアプリケーションを自動生成することにより、アプリケーションの変換を実現するものと考えてもよい。或いは、この設計モデルをアプリケーションの処理内容を模式的に示したに過ぎないものと捉え、設計モデルの変換と同様の変換をアプリケーションに対して自動的に施すことで、アプリケーションの変換を実現するものと考えてもよい。
【００１７】
図２に、ある量販チェーン店向けに開発されたアプリケーションの処理内容を表す設計モデルを示す。このアプリケーションは、戦略上重要な商品の競合他社の価格を全国の支店でモニターし、自社の価格と他社の価格が閾値を超えると本社管理部にアラートを出す、という処理を行うものである。尚、ここで例示するアプリケーションとしては、ＳＯＡ(Service Oriented Architecture)における１つの意味のある単位の機能を実現するものを想定する。即ち、他のアプリケーションからデータを受け取るための入力インターフェイスと、他のアプリケーションにデータを受け渡すための出力インターフェイスを有するが、これらのインターフェイスに対応している限り、他のアプリケーションが如何なるものかは問わないものとする。
【００１８】
具体的には、まず、入力インターフェイス１０１(価格差設定)が外部から「商品名」、「価格」、「許容価格差」の値を受け取る。そして、これらの値が、矢印１０３，１０４，１０５で示されるように、キー変数１０７(商品名)、変数１０８(価格)、変数１０９(許容価格差)に代入される。つまり、商品ごとに、その価格と、アラートを出すかどうかを判定するための閾値である「許容価格差」が設定される。
【００１９】
次に、入力インターフェイス１１４(他社価格)が外部から「社名」、「商品名」、「価格」の値を受け取る。すると、太矢印１１５で示されるように、条件式１１６「(価格−他社価格．価格)＞許容価格差」が満たされているかどうかが判定される。ここで、条件式１１６は、変数１０８(価格)の値と、入力インターフェイス１１４(他社価格)が受け取った「価格」の値との差が、変数１０９(許容価格差)の値を超えている、という条件を表現したものである。その結果、条件式１１６が満たされていると判定されれば、太矢印１１７で示されるように、出力インターフェイス１１３(要注意商品)に値を受け渡す処理へと制御が移る。即ち、キー変数１０７(商品名)、変数１０８(価格)の値が、矢印１１１，１１２で示されるように、出力インターフェイス１１３(要注意商品)に受け渡される。また、入力インターフェイス１１４(他社価格)が受け取った「社名」、「価格」の値が、矢印１１８，１１９で示されるように、出力インターフェイス１１３(要注意商品)に受け渡される。これにより、出力インターフェイス１１３(要注意商品)の後に、例えば、本社管理部に電子メールを送信するアプリケーションを接続すれば、自社の価格と他社の価格が閾値を超えた商品を他社の社名と共に本社管理部に通知することが可能となる。
【００２０】
ところで、暫くして、支店から、営業環境が異なるのだから戦略商品については独自の許容価格差を用いてモニターさせてほしい、という要求が出たとする。
この場合、変数１０９(許容価格差)を支店ごとに区別できるようにアプリケーションを変更しなければならない。但し、本実施の形態では、アプリケーションを直接変更することはしない。即ち、設計モデル上にアノテーションオブジェクト(以下、単に「アノテーション」という)を配置するだけで、設計モデルを変更する。そして、変更後の設計モデルに基づいてアプリケーションを自動生成することで、アプリケーションを簡単に変更できるようにする。
【００２１】
図３に、アプリケーションの変更を指示するときの設計モデルの状態を示す。
まず、個別の状況に応じて対応できるようにする対象(以下、「個別指定対象」という)は、アノテーション１２１によって指定される。この例の場合、変数１０９(許容価格差)について個別のインスタンスを生成するので、この変数を個別指定対象とする。
また、個別の状況を識別するためのキー(以下、「識別キー」という)は、アノテーション１２２によって指定される。この例の場合、支店ごとにインスタンスを区別する必要があるので、支店名をキーとして追加する。
【００２２】
この状態で、設計モデルの変換を指示すると、この設計モデルは、個別利用可能な新たな設計モデルに変換される。
図４に、変換後の設計モデルを示す。
この変換後の設計モデルにおいては、まず、キー変数１０６(支店名)が追加されている。
また、入力インターフェイス１０１(価格差設定)は、入力インターフェイス１３１(支店価格差設定)に置き換えられている。そして、この入力インターフェイス１３１(支店価格差設定)が外部から「支店名」の値を受け取り、この値が、矢印１０２で示されるように、キー変数１０６(支店名)に代入されるようになっている。
更に、出力インターフェイス１１３(要注意商品)は、出力インターフェイス１３３(支店要注意商品)に置き換えられている。そして、キー変数１０６(支店名)の値が、矢印１１０で示されるように、出力インターフェイス１３３(支店要注意商品)に受け渡されるようになっている。
その他は、変換前の設計モデルと同じである。
【００２３】
また、この時、新規モデルも生成される。
図５に、このとき生成される新規モデルを示す。
この新規モデルにおいては、まず、入力インターフェイス１４１(価格差設定)が外部から「商品名」、「価格」、「許容価格差」の値を受け取る。尚、この入力インターフェイス１４１(価格差設定)は、図１に示した変換前のモデルにおける入力インターフェイス１０１(価格差設定)と同じである。
【００２４】
一方で、入力インターフェイス１４４(支店価格差登録)が外部から「支店名」、「商品名」、「許容価格差」の値を受け取る。そして、これらの値が、矢印１４５，１４６，１４７で示されるように、キー変数１４８(支店名)、キー変数１４９(商品名)、変数１５０(許容価格差)に代入される。その後、キー変数１４８(支店名)、キー変数１４９(商品名)、変数１５０(許容価格差)の値が、矢印１５１，１５２，１５３で示されるように、出力インターフェイス１４３(支店価格差設定)に受け渡される。また、入力インターフェイス１４１(価格差設定)が外部から受け取った「価格」の値が、矢印１４２で示されるように、出力インターフェイス１４３(支店価格差設定)に受け渡される。つまり、商品ごとに、その価格と、アラートを出すかどうかを判定するための閾値である「許容価格差」が設定されるが、これを「支店価格差登録」という新しい入力インターフェイスから受け渡された「支店名」、「商品名」、「許容価格差」によって個別化しているのである。
【００２５】
そして、図４及び図５に示した設計モデルからアプリケーションを生成することにより、個別の状況に応じたアプリケーションの生成が可能となる。
まとめると、この例では、次の２つの処理を行うことにより、設計モデルをテンプレートとして用い個別の状況に応じた利用を可能にしている。
１．入力側について
個別指定対象の変数に値を運んでくる元の入力インターフェイスの名前を変更して新たな入力インターフェイスとする。そして、個別の状況を識別する識別キーを新たな入力インターフェイスに追加する。また、元の入力インターフェイスから入力された情報をインターセプトして個別情報を付加した上で、新たな入力インターフェイスを呼び出す個別制御用のモデル(新規モデル)を作成する。
２．出力側について
元の出力インターフェイスの名前を変更して新たな出力インターフェイスとする。そして、個別の状況を識別する識別キーを新たな出力インターフェイスに追加する。
【００２６】
尚、以下では、設計モデル上に表現されるアプリケーションを構成する要素を表す図形を「モデル要素」と呼ぶことにする。ここで、「要素」とは、アプリケーションの意味ある構成単位である。例えば、入力インターフェイス、出力インターフェイス、変数、代入式、条件式、制御式がある。従って、設計モデル上で、入力インターフェイスを表す図形、出力インターフェイスを表す図形、変数を表す図形(キー変数を表す特別な図形も含む)、代入式に対応する矢印、条件式を表す図形、制御式を表す太矢印が、モデル要素である。
【００２７】
次に、本実施の形態におけるアプリケーション変換装置について詳細に説明する。
図６は、図２〜図５のようなアプリケーション変換を行うアプリケーション変換装置の機能構成を示したブロック図である。
図示するように、このアプリケーション変換装置は、アノテーション検出部１１と、変換部１２と、設計モデル記憶部１３とを備える。そして、変換部１２は、更に、入力インターフェイス変換部１４と、出力インターフェイス変換部１５と、新規モデル生成部１６とを備えている。
【００２８】
アノテーション検出部１１は、表示機構１０ｄ(図１参照)の一部である表示部上のアノテーションの配置を検出する。
変換部１２は、検出したアノテーションの配置に基づいて設計モデルを変換する。
設計モデル記憶部１３は、変換前及び変換後の設計モデルを記憶する。
また、変換部１２が有する構成のうち、入力インターフェイス変換部１４は、設計モデル内の入力インターフェイスを変換し、出力インターフェイス変換部１５は、設計モデル内の出力インターフェイスを変換し、新規モデル生成部１６は、新たに付加する新規モデルを生成する。
【００２９】
次いで、このアプリケーション変換装置の動作について説明する。
本実施の形態では、以下に示す手順により、設計モデルを変換する。
１．個別指定対象の変数に値を運んでくる入力インターフェイスに対し、次の操作を行う。
１−１．既に存在する入力インターフェイスが対象の場合は、その入力インターフェイス(元の入力インターフェイス)の名前を変更し、別の入力インターフェイス(新たな入力インターフェイス)とする。新規の入力インターフェイスが対象の場合は、入力インターフェイスのモデル要素を追加する。
１−２．元の入力インターフェイスを参照している全てのモデル要素を、新たな入力インターフェイスを参照するようにする。
１−３．新たな入力インターフェイスに対し、識別キーの変数の値の入力元となる入力項目を追加する。
１−４．その入力項目の値を識別キーの変数に代入するモデル要素(矢印)を追加する。
【００３０】
２．出力インターフェイスに対し、次の操作を行う。
２−１．既に存在する出力インターフェイスが対象の場合は、その出力インターフェイス(元の出力インターフェイス)の名前を変更し、別の出力インターフェイス(新たな出力インターフェイス)とする。新規の出力インターフェイスが対象の場合は、出力インターフェイスのモデル要素を追加する。
２−２．元の出力インターフェイスを参照している全てのモデル要素を、新たな出力インターフェイスを参照するようにする。
２−３．新たな出力インターフェイスに対し、識別キーの変数の値の出力先となる出力項目を追加する。
２−４．識別キーの変数の値をその出力項目に代入するモデル要素(矢印)を追加する。
【００３１】
３．変更された入力インターフェイスの情報に基づいて、次のように個別制御用の設計モデル(新規モデル)を生成する。
３−１．元の入力インターフェイスに対応するモデル要素と、新たな入力インターフェイスを呼び出す出力インターフェイスに対応するモデル要素とを生成する。
３−２．入力インターフェイスの入力項目の値を、出力インターフェイスの出力項目に代入するモデル要素(矢印)を生成する。
３−３．指定された個別情報を出力インターフェイスの出力項目に代入するモデル要素(矢印)を生成する。
【００３２】
以下、このような動作について、フローチャートを参照しながら具体的に説明する。
図３に示したように、表示部上にアノテーションを配置するユーザ操作があると、アノテーション検出部１１は、アノテーションの指示内容及び指示対象を認識する。
まず、アノテーションの指示内容の認識について説明する。
本実施の形態において、アノテーションには、個別指定対象の変数を指定するものと、識別キーとなる変数を指定するものとがある。そこで、アノテーションの形状を指示内容に応じて異ならせることが考えられる。この場合、アノテーションの形状と指示内容との対応情報を記憶部に記憶しておき、アノテーションが配置されると、この対応情報を参照してアノテーションの指示内容を認識する。或いは、アノテーションの他の属性、例えば、色等を、指示内容に応じて異ならせるようにしてもよい。
【００３３】
次に、アノテーションの指示対象の認識について説明する。
アノテーション検出部１１は、アノテーションの配置位置を認識することにより、アノテーションの指示対象となる変数を認識する。例えば、アノテーションの配置位置と、変数を表すモデル要素の位置との間に一定の関係があれば、その変数がアノテーションの指示対象であると判断する。図３では、個別指定対象の変数を指定するアノテーションが吹き出し型をしており、吹き出し口が指している変数が対象となっている。一方、アノテーションの配置位置と、変数を表すモデル要素の位置との間に一定の関係がなければ、新たに追加される変数が対象となると判断する。この場合、新たに追加する変数の名前は、図３のようにアノテーションにテキストデータとして含めておけば、アプリケーション変換装置が自動的に変数名を決定することができる。
【００３４】
このようにアノテーションによる指示の内容及び対象が認識されると、変換部１２の動作が開始する。
ここで、変換部１２の動作には、入力インターフェイス変換部１４による入力インターフェイス変換の動作と、出力インターフェイス変換部１５による出力インターフェイス変換の動作と、新規モデル生成部１６による新規モデル生成の動作とがある。従って、以下では、これらの動作を分けて説明する。
【００３５】
［入力インターフェイス変換］
図７は、入力インターフェイス変換部１４が入力インターフェイスを変換する際の動作を示したフローチャートである。尚、図７では、図面作成上の都合により、インターフェイスを「Ｉ/Ｆ」と簡略化して示す。また、繰り返し内で現在参照している変数、キー変数、入力インターフェイスを、それぞれ、「参照変数」、「参照キー変数」、「参照入力Ｉ/Ｆ」と簡略化して示す。
【００３６】
動作を開始すると、入力インターフェイス変換部１４は、個別指定対象の全ての変数を順番に参照し、ステップ４０２〜４１７を繰り返す(ステップ４０１〜４１８：繰り返し１)。
この繰り返し１において、入力インターフェイス変換部１４は、現在参照している変数について次の処理を行う。図３の例では、変数１０９(許容価格差)が個別指定対象となっているので、この変数について次の処理を行う。
即ち、現在参照している変数が新規に追加された変数であるかどうかを判定する(ステップ４０２)。図３の例において、変数１０９(許容価格差)は、設計モデルに既に存在している変数なので、新規に追加された変数ではないと判定される。一方、図示しないが、例えば、「価格差設定日」等の新たな変数の追加を指示するアノテーションが付与されている場合は、新規に追加された変数であると判定される。
【００３７】
まず、ステップ４０２で新規に追加された変数ではないと判定された場合について説明する。図３の例では、変数１０９(許容価格差)について、以下の処理が実行される。
この場合、入力インターフェイス変換部１４は、現在参照している変数に結び付けられた全ての入力インターフェイスを順番に参照し、ステップ４０４〜４１０を繰り返す(ステップ４０３〜４１１：繰り返し２)。
この繰り返し２において、入力インターフェイス変換部１４は、現在参照している入力インターフェイスについて次の処理を行う。図３の例では、変数１０９(許容価格差)は入力インターフェイス１０１(価格差設定)に結び付けられているので、この入力インターフェイスについて次の処理を行う。
【００３８】
即ち、現在参照している入力インターフェイスの名前が変更済かどうかを判定する(ステップ４０４)。
その結果、入力インターフェイスの名前が変更済でないと判定されれば、その入力インターフェイス(元の入力インターフェイス)の名前を変更して別の入力インターフェイス(新たな入力インターフェイス)とする(ステップ４０５)。図３、４の例では、入力インターフェイス１０１(価格差設定)を入力インターフェイス１３１(支店価格差設定)に変更している。
そして、元の入力インターフェイス名を参照しているモデル要素を、新たな入力インターフェイス名を参照するように変更する(ステップ４０６)。図３、４の例では、キー変数１０７(商品名)への矢印と、変数１０８(価格)への矢印と、変数１０９(許容価格差)への矢印とが入力インターフェイス１０１(価格差設定)を参照しているので、これらの矢印が入力インターフェイス１３１(支店価格差設定)を参照するように変更する。
一方、入力インターフェイスの名前が変更済であると判定されれば、その名前を変更せずに次の処理へ移る。
【００３９】
その後、入力インターフェイス変換部１４は、新規に追加されたキー変数を順番に参照し、ステップ４０８、４０９を繰り返す(ステップ４０７〜４１０：繰り返し３)。
この繰り返し３において、入力インターフェイス変換部１４は、現在参照しているキー変数について次の処理を行う。図３の例では、「支店名で識別」といったアノテーションが付与されているので、キー変数１０６「支店名」を新たに追加し、このキー変数について次の処理を行う。
即ち、現在参照している入力インターフェイス、つまり、インターフェイス名が変更された新たな入力インターフェイスに対して、現在参照しているキー変数に対応する入力項目を追加する(ステップ４０８)。図４の例では、入力インターフェイス１３１(支店価格差設定)に対し、入力項目「支店名」を追加している。
そして、現在参照しているキー変数に対して入力項目が保持する値を代入するモデル要素を追加する(ステップ４０９)。図４の例では、入力項目「支店名」からキー変数１０６(支店名)への矢印を追加している。
【００４０】
次に、ステップ４０２で新規に追加された変数であると判定された場合について説明する。
この場合、入力インターフェイス変換部１４は、新たな入力インターフェイスを作成する(ステップ４１２)。例えば、「価格差設定日」を新規に追加する旨が指示されたとすれば、「価格差設定日」を入力するための入力インターフェイスを作成する。
また、入力インターフェイス変換部１４は、全てのキー変数を順番に参照し、ステップ４１４を繰り返す(ステップ４１３〜４１５：繰り返し４)。
この繰り返し４において、入力インターフェイス変換部１４は、現在参照しているキー変数について次の処理を行う。
【００４１】
即ち、ステップ４１２で新たに作成した入力インターフェイスに対して、現在参照しているキー変数に対応する入力項目を追加する(ステップ４１４)。例えば、図３において、既存の変数である「許容価格差」ではなく、新規の変数である「価格差設定日」が個別指定対象になったとすると、キー変数１０６(支店名)、キー変数１０７(商品名)に対応する入力項目「支店名」、「商品名」を新たな入力インターフェイスに追加する。
その後、入力インターフェイス変換部１４は、ステップ４１２で新たに作成した入力インターフェイスに対して、現在参照している変数に対応する入力項目を追加する(ステップ４１６)。そして、現在参照している変数に対して入力項目が保持する値を代入するモデル要素を追加する(ステップ４１７)。例えば、図３において、既存の変数である「許容価格差」ではなく、新規の変数である「価格差設定日」が個別指定対象になったとすると、変数「価格差設定日」に対応する入力項目「価格差設定日」を新たな入力インターフェイスに追加し、入力項目「価格差設定日」から変数「価格差設定日」への矢印を追加する。
以上により、入力インターフェイス変換部１４による入力インターフェイスの変換処理は終了する。
【００４２】
［出力インターフェイス変換］
図８は、出力インターフェイス変換部１５が出力インターフェイスを変換する際の動作を示したフローチャートである。尚、図８でも、図面作成上の都合により、インターフェイスを「Ｉ/Ｆ」と簡略化して示す。また、繰り返し内で現在参照している変数、キー変数、出力インターフェイスを、それぞれ、「参照変数」、「参照キー変数」、「参照出力Ｉ/Ｆ」と簡略化して示す。
【００４３】
動作を開始すると、出力インターフェイス変換部１５は、全ての出力インターフェイスを順番に参照し、ステップ５０２〜５０８を繰り返す(ステップ５０１〜５０９：繰り返し１)。
この繰り返し１において、出力インターフェイス変換部１５は、現在参照している出力インターフェイスについて次の処理を行う。図３の例では、出力インターフェイス１１３(要注意商品)があるので、この出力インターフェイスについて次の処理を行う。
【００４４】
即ち、現在参照している出力インターフェイスの名前が変更済かどうかを判定する(ステップ５０２)。
その結果、出力インターフェイスの名前が変更済でないと判定されれば、その出力インターフェイス(元の出力インターフェイス)の名前を変更して別の出力インターフェイス(新たな出力インターフェイス)とする(ステップ５０３)。図３、４の例では、出力インターフェイス１１３(要注意商品)を出力インターフェイス１３３(支店要注意商品)に変更している。
そして、元の出力インターフェイス名を参照しているモデル要素を、新たな出力インターフェイス名を参照するように変更する(ステップ５０４)。図３、４の例では、キー変数１０７(商品名)及び変数１０８(価格)からの矢印と、入力インターフェイス１１４(他社価格)内の入力項目「社名」及び「価格」からの矢印とが出力インターフェイス１１３(要注意商品)を参照しているので、これらの矢印が出力インターフェイス１３３(支店要注意商品)を参照するように変更する。
一方、出力インターフェイスの名前が変更済であると判定されれば、その名前を変更せずに次の処理へ移る。
【００４５】
その後、出力インターフェイス変換部１５は、新規に追加されたキー変数を順番に参照し、ステップ５０６、５０７を繰り返す(ステップ５０５〜５０８：繰り返し２)。
この繰り返し２において、出力インターフェイス変換部１５は、現在参照しているキー変数について次の処理を行う。図３の例では、「支店名で識別」といったアノテーションが付与されているので、キー変数１０６「支店名」について次の処理を行う。
即ち、現在参照している出力インターフェイス、つまり、インターフェイス名が変更された新たな出力インターフェイスに対して、現在参照しているキー変数に対応する出力項目を追加する(ステップ５０６)。図４の例では、出力インターフェイス１３３(支店要注意商品)に対し、出力項目「支店名」を追加している。
そして、現在参照しているキー変数が保持する値を出力項目に代入するモデル要素を追加する(ステップ５０７)。図４の例では、キー変数１０６(支店名)から出力項目「支店名」への矢印を追加している。
【００４６】
次に、出力インターフェイス変換部１５は、個別指定対象の全ての変数を順番に参照し、ステップ５１１〜５１９を繰り返す(ステップ５１０〜５２０：繰り返し３)。
この繰り返し３において、出力インターフェイス変換部１５は、現在参照している変数について次の処理を行う。図３の例では、変数１０９(許容価格差)が個別指定対象となっているので、この変数について次の処理を行う。
即ち、まず、現在参照している変数に対し、出力インターフェイスが指定されているかどうかを判定する(ステップ５１１)。尚、上記では、アノテーションの指示内容として、個別指定対象の変数の指定と、識別キーとなる変数の指定とを挙げたが、この場合の出力インターフェイスの指定もアノテーションを用いて行うことができる。
その結果、出力インターフェイスが指定されていなければ、処理は終了する。図３の例では、変数１０９(許容価格差)を個別指定対象としただけで、この変数に対し出力インターフェイスは指定されていないので、そのまま処理は終了する。
【００４７】
一方、出力インターフェイスが指定されていれば、その出力インターフェイスが既存のものであるかどうかを判定する(ステップ５１２)。例えば、入力インターフェイス変換において例示した変数「価格差設定日」に対し、出力インターフェイス１１３(要注意商品)が指定されていれば、ここでの判定結果は「Ｙｅｓ」となる。一方、変数「価格差設定日」に対し、設計モデル上に存在しない出力インターフェイスが指定されていれば、ここでの判定は「Ｎｏ」となる。尚、このような新たな出力インターフェイスの指定は、複数の変数が追加された場合に特に有意義である。例えば、変数「価格差設定日」に加え、別の変数が追加されたような場合に、これらの変数が保持する値の組み合わせを同じ出力インターフェイスを使って他のアプリケーションに受け渡すことが可能となるからである。
【００４８】
ここで、出力インターフェイスが既存のものであれば、現在参照している変数に対応する出力項目をその出力インターフェイスに追加する(ステップ５１３)。そして、現在参照している変数が保持する値をその出力項目に代入するモデル要素を追加する(ステップ５１４)。
【００４９】
また、出力インターフェイスが既存のものでなければ、新たな出力インターフェイスを作成する(ステップ５１５)。そして、全てのキー変数を順番に参照し、ステップ５１７、５１８を繰り返す(ステップ５１６〜５１９：繰り返し４)。
この繰り返し４において、出力インターフェイス変換部１５は、現在参照しているキー変数について次の処理を行う。
即ち、ステップ５１５で新たに作成した出力インターフェイスに対して、現在参照しているキー変数に対応する出力項目を追加する(ステップ５１７)。そして、現在参照しているキー変数が保持する値を出力項目に代入するモデル要素を追加する(ステップ５１８)。例えば、図３において、個別指定対象の変数に対し、設計モデル上に存在しない出力インターフェイスが指定されたとすると、キー変数１０６(支店名)、キー変数１０７(商品名)に対応する出力項目「支店名」、「商品名」を新たな出力インターフェイスに追加する。
その後は、出力インターフェイスが既存のものである場合と同様の処理を行う(ステップ５１３、５１４)。
以上により、出力インターフェイス変換部１５による出力インターフェイスの変換処理は終了する。
【００５０】
［新規モデルの作成］
図９は、新規モデル生成部１６が新規モデル(インターフェイス変換モデル)を生成する際の動作を示したフローチャートである。尚、図９でも、図面作成上の都合により、インターフェイスを「Ｉ/Ｆ」と簡略化して示す。また、繰り返し内で現在参照している変数、キー変数、入力インターフェイス、出力項目を、それぞれ、「参照変数」、「参照キー変数」、「参照入力Ｉ/Ｆ」、「参照出力項目」と簡略化して示す。
【００５１】
動作を開始すると、新規モデル生成部１６は、図７の入力インターフェイス変換で変換された入力インターフェイスを順番に参照し、ステップ６０２〜６１５を繰り返す(ステップ６０１〜６１６：繰り返し１)。
この繰り返し１において、新規モデル生成部１６は、現在参照している入力インターフェイスについて次の処理を行う。図４の例では、入力インターフェイス変換により入力インターフェイス１３１(支店価格差設定)が生成されたので、この入力インターフェイスについて次の処理を行う。
【００５２】
即ち、現在参照している入力インターフェイスの元となった入力インターフェイスを作成する(ステップ６０２)。図３、４の例において、入力インターフェイス１３１(支店価格差設定)の元となったのは、入力インターフェイス１０１(価格差設定)なので、図５に示すように、入力インターフェイス１４１(価格差設定)を作成する。
また、新規モデル生成部１６は、現在参照している入力インターフェイスに対応する出力インターフェイスを作成する(ステップ６０３)。このとき、現在参照している入力インターフェイスに含まれる入力項目を、ここで作成された出力インターフェイスにそのまま含める。図５の例では、図４に示す入力インターフェイス１３１(支店価格差設定)に対応する出力インターフェイス１４３(支店価格差設定)を作成している。
【００５３】
次に、新規モデル生成部１６は、ステップ６０３で作成された出力インターフェイスに含まれる出力項目を順番に参照し、ステップ６０５〜６１４を繰り返す(ステップ６０４〜６１５：繰り返し２)。
この繰り返し２において、新規モデル生成部１６は、現在参照している出力項目について次の処理を行う。図４の例において、出力インターフェイス１４３(支店価格差設定)には、出力項目「支店名」、「商品名」、「価格」、「許容価格差」が含まれるので、これらの出力項目について次の処理を行う。
【００５４】
即ち、現在参照している出力項目に対応する入力項目が、元の入力インターフェイスに存在するかどうかを判定する(ステップ６０５)。
ここで、元の入力インターフェイスにその入力項目が存在しなければ、現在参照している出力項目に対応する変数を作成する(ステップ６０６)。そして、現在参照している出力項目に対して、ここで作成した変数が保持する値を代入するモデル要素を追加する(ステップ６０７)。図５の例では、出力項目「支店名」、「商品名」、「価格」、「許容価格差」のうち、出力項目「支店名」のみが、入力インターフェイス１４１(価格差設定)に存在しない。従って、キー変数１４８(支店名)が作成され、キー変数１４８(支店名)から出力項目「支店名」への矢印１５１が作成される。
【００５５】
一方、元の入力インターフェイスにその入力項目が存在すれば、現在参照している出力項目がキー変数に対応するかどうかを判定する(ステップ６０８)。
ここで、その出力項目がキー変数に対応すると判定されれば、そのキー変数を作成する(ステップ６０９)。そして、現在参照している出力項目に対して、キー変数が保持する値を代入するモデル要素を追加する(ステップ６１０)。図５の例では、出力項目「支店名」が除かれた後の出力項目「商品名」、「価格」、「許容価格差」のうち、出力項目「商品名」のみが、キー変数に対応する出力項目である。従って、キー変数１４９(商品名)が作成され、キー変数１４９(商品名)から出力項目「商品名」への矢印１５２が作成される。
【００５６】
また、その出力項目がキー変数に対応しないと判定されれば、個別指定対象の変数に対応するかどうかを判定する(ステップ６１１)。
ここで、その出力項目が個別指定対象の変数に対応しないと判定されれば、ステップ６０２で作成された入力インターフェイスに含まれる入力項目が保持する値を、ステップ６０３で作成された出力インターフェイスに含まれる出力項目に代入するモデル要素を追加する(ステップ６１２)。図５の例では、出力項目「支店名」、「商品名」が除かれた後の出力項目「価格」、「許容価格差」のうち、出力項目「価格」のみが、個別指定対象の変数に対応しない。従って、入力インターフェイス１４１(価格差設定)内の入力項目「価格」から出力インターフェイス１４３(支店価格差設定)内の出力項目「価格」への矢印１４２が作成される。
【００５７】
また、その出力項目が個別指定対象の変数に対応すると判定されれば、その出力項目に対応する変数を作成する(ステップ６１３)。そして、その変数が保持する値を出力項目に代入するモデル要素を追加する(ステップ６１４)。図５の例では、出力項目「支店名」、「商品名」が除外された後の出力項目「価格」、「許容価格差」のうち、出力項目「許容価格差」のみが、個別指定対象の変数に対応する。従って、変数１５０(許容価格差)が作成され、変数１５０(許容価格差)から出力項目「許容価格差」への矢印１５３が作成される。
【００５８】
その後、新規モデル生成部１６は、個別情報を受け取るための入力インターフェイス(個別入力インターフェイス)を作成する(ステップ６１７)。図５の例では、入力インターフェイス１４４(支店価格差登録)を作成している。
そして、新規モデル生成部１６は、作成したキー変数を含む全ての変数を順番に参照し、ステップ６１９、６２０を繰り返す(ステップ６１８〜６２１：繰り返し３)。
この繰り返し３において、新規モデル生成部１６は、現在参照している変数について次の処理を行う。図５の例では、変数「支店名」、「商品名」、「許容価格差」があるので、これらの変数について次の処理を行う。
【００５９】
即ち、ステップ６１７で作成された個別入力インターフェイスに対して、現在参照している変数に対応する入力項目を追加する(ステップ６１９)。そして、現在参照している変数に対して入力項目が保持する値を代入するモデル要素を追加する(ステップ６２０)。図５の例では、入力インターフェイス１４４(支店価格差登録)に対し、入力項目「支店名」、「商品名」、「許容価格差」を追加し、入力項目「支店名」からキー変数１４８(支店名)への矢印１４５、入力項目「商品名」からキー変数１４９(商品名)への矢印１４６、入力項目「許容価格差」から変数１５０(許容価格差)への矢印１４７を作成している。
以上により、新規モデル生成部１６による新規モデルの生成処理は終了する。
【００６０】
次に、変換部１２による入力インターフェイス変換、出力インターフェイス変換、新規モデル生成を実現するためのデータ処理について詳細に述べる。本実施の形態では、設計モデル記憶部１３(図６参照)が、設計モデルを管理するデータ(以下、「管理データ」という)を記憶しており、変換部１２が、この管理データを更新することにより、設計モデルを変換する。
【００６１】
［初期状態における管理データの内容］
図１０に、図７〜９に示したアプリケーション変換を行う前の状態における管理データを示す。
図１０(ａ)は、モデル要素のうちインターフェイスを管理するためのテーブル(以下、「インターフェイス管理テーブル」という)を示したものである。本実施の形態において、インターフェイス管理テーブルは、「インターフェイス名」、「型」、「項目１」、「項目２」、…、「項目５」の各欄を有する。
「インターフェイス名」欄は、インターフェイスの名前を記憶する。
「型」欄は、そのインターフェイスが入力インターフェイスか出力インターフェイスかを示す情報を記憶する。図では、入力インターフェイスの場合、「Ｉ」を記憶し、出力インターフェイスの場合、「Ｏ」を記憶している。
「項目１」、「項目２」、…、「項目５」は、そのインターフェイスが有する入力項目又は出力項目を記憶する。尚、ここでは、図面作成の都合上、項目数は５つとしたが、その数はこれに限るものではない。
【００６２】
ここで、具体的な内容を説明する。尚、図１０(ａ)は、アプリケーション変換前の情報を示すものであるから、図２におけるインターフェイスの状態を反映したものとなっている。
図１０(ａ)において、Ｎｏ.１の行は、入力インターフェイス１０１(価格差設定)を管理しており、この入力インターフェイスが、入力項目「商品名」、「価格」、「許容価格差」を有することを示している。
また、Ｎｏ.２の行は、入力インターフェイス１１４(他社価格)を管理しており、この入力インターフェイスが、入力項目「社名」、「商品名」、「価格」を有することを示している。
更に、Ｎｏ.３の行は、出力インターフェイス１１３(要注意商品)を管理しており、この出力インターフェイスが、出力項目「商品名」、「価格」、「社名」、「他社価格」を有することを示している。
【００６３】
図１０(ｂ)は、モデル要素のうち変数を管理するためのテーブル(以下、「変数管理テーブル」という)を示したものである。本実施の形態において、変数管理テーブルは、「変数名」、「ＫＥＹ」の各欄を有する。
「変数名」欄は、変数の名前を記憶する。
「ＫＥＹ」欄は、その変数がキー変数かどうかを示す情報を記憶する。図では、キー変数の場合、「○」を記憶し、キー変数でない場合、空欄にしている。
【００６４】
ここで、具体的な内容を説明する。尚、図１０(ｂ)は、アプリケーション変換前の情報を示すものであるから、図２における変数の状態を反映したものとなっている。
図１０(ｂ)において、Ｎｏ.１の行は、変数１０７(商品名)を管理しており、この変数がキー変数であることを示している。
また、Ｎｏ.２の行は、変数１０８(価格)を管理しており、この変数がキー変数ではないことを示している。
更に、Ｎｏ.３の行は、変数１０９(許容価格差)を管理しており、この変数がキー変数ではないことを示している。
【００６５】
図１０(ｃ)は、モデル要素のうち矢印による接続関係を管理するためテーブル(以下、「接続管理テーブル」という)を示したものである。本実施の形態において、接続管理テーブルは、「接続元タイプ」、「接続元名」、「接続先タイプ」、「接続先名」の各欄を有する。
「接続元タイプ」、「接続元名」は、その矢印の接続元となっているモデル要素のタイプ、名前を、それぞれ記憶する。ここで、「接続元タイプ」欄に「インターフェイス」が記憶されている場合、「接続元名」欄には、接続元の入力項目が「(入力インターフェイス名)．(入力項目名)」という形式で記憶されている。
「接続先タイプ」、「接続先名」は、その矢印の接続先となっているモデル要素のタイプ、名前をそれぞれ記憶する。ここで、「接続先タイプ」欄に「インターフェイス」が記憶されている場合、「接続先名」欄には、接続先の出力項目が「(出力インターフェイス名)．(出力項目名)」という形式で記憶されている。
【００６６】
ここで、具体的な内容を説明する。尚、図１０(ｃ)は、アプリケーション変換前の情報を示すものであるから、図２における矢印の状態を反映したものとなっている。
図１０(ｃ)において、Ｎｏ.１の行は、入力インターフェイス１０１(価格差設定)内の入力項目「商品名」から変数１０７(商品名)への矢印１０３を管理している。
Ｎｏ.２の行は、入力インターフェイス１０１(価格差設定)内の入力項目「価格」から変数１０８(価格)への矢印１０４を管理している。
Ｎｏ.３の行は、入力インターフェイス１０１(価格差設定)内の入力項目「許容価格差」から変数１０９(許容価格差)への矢印１０５を管理している。
また、Ｎｏ.４の行は、変数１０７(商品名)から出力インターフェイス１１３(要注意商品)内の出力項目「商品名」への矢印１１１を管理している。
Ｎｏ.５の行は、変数１０８(価格)から出力インターフェイス１１３(要注意商品)内の出力項目「価格」への矢印１１２を管理している。
更に、Ｎｏ.６の行は、入力インターフェイス１１４(他社価格)内の入力項目「社名」から出力インターフェイス１１３(要注意商品)内の出力項目「社名」への矢印１１８を管理している。
Ｎｏ.７の行は、入力インターフェイス１１４(他社価格)内の入力項目「価格」から出力インターフェイス１１３(要注意商品)内の出力項目「他社価格」への矢印１１９を管理している。
【００６７】
［入力インターフェイス変換及び出力インターフェイス変換による管理データの更新］
図１１に、図７の入力インターフェイス変換、及び、図８の出力インターフェイス変換の後における管理データを示す。尚、これらの変換処理に先立ち、図１０の管理データは一時メモリにコピーされており、管理データは、この一時メモリ上で更新される。つまり、管理データは、図１０の状態を保持したまま、そのコピーが図１１のように変換されるものとする。
【００６８】
まず、図１０と図１１を参照して、図７の入力インターフェイス変換による管理データの更新について述べる。
最初に、入力インターフェイス変換部１４は、ステップ４０１で、変数「許容価格差」を個別指定対象の変数として特定し、ステップ４０２で、変数「許容価格差」を新規に追加された変数ではないと判定する。そして、ステップ４０３において、現在参照している変数に結び付けられた入力インターフェイスを次の手順で参照する。即ち、まず、一時メモリに記憶された接続管理テーブルの行の中から、「接続元タイプ」欄に「インターフェイス」が記憶され、「接続先タイプ」欄に「変数」が記憶され、「接続先名」欄に「許容価格差」が記憶されている行を特定する。そして、この行の「接続元名」欄からインターフェイス名を取り出す。この例では、図１０(ｃ)のＮｏ．３の行が特定され、インターフェイス名として「価格差設定」が取り出される。
【００６９】
次に、入力インターフェイス変換部１４は、ステップ４０４において、入力インターフェイス名が変更済かどうかを次の手順で判定する。即ち、一時メモリに記憶されたインターフェイス管理テーブルにおいて、「インターフェイス名」欄に現在参照しているインターフェイスの名前が記憶され、「型」欄に「Ｉ」が記憶された行があるかどうかを判定する。その結果、そのような行があれば、入力インターフェイスの名前は変更済ではないと判定し、そのような行がなければ、入力インターフェイスの名前は変更済であると判定する。この例では、「インターフェイス名」欄に「価格差設定」が記憶され、「型」欄に「Ｉ」が記憶された行があるかが判定される。
【００７０】
その結果、入力インターフェイスの名前が変更済でないと判定されれば、入力インターフェイス変換部１４は、ステップ４０５において、入力インターフェイスの名前を次の手順で変更する。即ち、一時メモリに記憶されたインターフェイス管理テーブルにおいて、「インターフェイス名」欄に新たな入力インターフェイス名を書き込む。この例では、「価格差設定」を「支店価格差設定」に書き換えるので、図１１(ａ)のＮｏ．１のようになる。
【００７１】
また、入力インターフェイス変換部１４は、ステップ４０６において、元の入力インターフェイスを参照している全てのモデル要素が新たな入力インターフェイスを参照するように次の手順で変更する。即ち、一時メモリに記憶された接続管理テーブルにおいて、元の入力インターフェイスの名前が「接続元名」欄に記憶されていれば、その名前を、新たな入力インターフェイスの名前に書き換える。この例では、「価格差設定」を「支店価格差設定」に書き換えるので、図１１(ｃ)のＮｏ．２〜４のようになる。
【００７２】
更に、入力インターフェイス変換部１４は、ステップ４０７で、キー変数「支店名」を参照する。そして、ステップ４０８において、現在参照している入力インターフェイスに対し、現在参照しているキー変数に対応する入力項目を、次の手順で追加する。即ち、一時メモリに記憶された変数管理テーブルに行を追加し、その行において、「変数」欄に「支店名」を記憶し、「ＫＥＹ」欄に「○」を記憶する。これにより、変数管理テーブルは、図１１(ｂ)のようになる。また、一時メモリに記憶されたインターフェイス管理テーブルの現在参照している入力インターフェイスを管理する行において、「項目１」〜「項目５」欄のいずれかに「支店名」を記憶する。この例では、「項目１」欄に「支店名」を記憶しており、図１１(ａ)のＮｏ．１のようになる。
【００７３】
更にまた、入力インターフェイス変換部１４は、ステップ４０９において、入力項目が保持する値をキー変数に代入するモデル要素を、次の手順で追加する。即ち、一時メモリに記憶された接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「インターフェイス」を記憶し、「接続元名」欄にステップ４０８で追加した入力項目名を記憶し、「接続先タイプ」欄に「変数」を記憶し、「接続先名」欄に現在参照しているキー変数名を記憶する。この例では、「接続元名」欄に「支店価格差設定．支店名」を記憶し、「接続先名」欄に「支店名」を記憶するので、図１１(ｃ)のＮｏ．１のようになる。
【００７４】
次に、図１０と図１１を参照して、図８の出力インターフェイス変換による管理データの更新について述べる。
まず、出力インターフェイス変換部１５は、ステップ５０１で、出力インターフェイス「要注意商品」を参照する。
次に、出力インターフェイス変換部１５は、ステップ５０２において、出力インターフェイス名が変更済かどうかを次の手順で判定する。即ち、一時メモリに記憶されたインターフェイス管理テーブルにおいて、「インターフェイス名」欄に現在参照しているインターフェイスの名前が記憶され、「型」欄に「Ｏ」が記憶された行があるかどうかを判定する。その結果、そのような行があれば、出力インターフェイスの名前は変更済ではないと判定し、そのような行がなければ、出力インターフェイスの名前は変更済であると判定する。この例では、「インターフェイス名」欄に「要注意商品」が記憶され、「型」欄に「Ｏ」が記憶された行があるかが判定される。
【００７５】
その結果、出力インターフェイスの名前が変更済でないと判定されれば、出力インターフェイス変換部１５は、ステップ５０３において、出力インターフェイスの名前を次の手順で変更する。即ち、一時メモリに記憶されたインターフェイス管理テーブルにおいて、「インターフェイス名」欄に新たな出力インターフェイス名を書き込む。この例では、「要注意商品」を「支店要注意商品」に書き換えるので、図１１(ａ)のＮｏ．３のようになる。
【００７６】
また、出力インターフェイス変換部１５は、ステップ５０４において、元の出力インターフェイスを参照している全てのモデル要素が新たな出力インターフェイスを参照するように次の手順で変更する。即ち、一時メモリに記憶された接続管理テーブルにおいて、元の出力インターフェイスの名前が「接続先名」欄に記憶されていれば、その名前を、新たな出力インターフェイスの名前に書き換える。この例では、「要注意商品」を「支店要注意商品」に書き換えるので、図１１(ｃ)のＮｏ．６〜９のようになる。
【００７７】
更に、出力インターフェイス変換部１５は、ステップ５０５で、キー変数「支店名」を参照する。そして、ステップ５０６において、現在参照している出力インターフェイスに対し、現在参照しているキー変数に対応する出力項目を、次の手順で追加する。即ち、一時メモリに記憶されたインターフェイス管理テーブルの現在参照している出力インターフェイスを管理する行において、「項目１」〜「項目５」欄のいずれかに「支店名」を記憶する。この例では、「項目１」欄に「支店名」を記憶しており、図１１(ａ)のＮｏ．３のようになる。
【００７８】
更にまた、出力インターフェイス変換部１５は、ステップ５０７において、キー変数が保持する値を出力項目に代入するモデル要素を、次の手順で追加する。即ち、一時メモリに記憶された接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「変数」を記憶し、「接続元名」欄に現在参照しているキー変数名を記憶し、「接続先タイプ」欄に「インターフェイス」を記憶し、「接続先名」欄にステップ５０６で追加した出力項目名を記憶する。この例では、「接続元名」欄に「支店名」を記憶し、「接続先名」欄に「支店要注意商品．支店名」を記憶するので、図１１(ｃ)のＮｏ．５のようになる。
【００７９】
［新規モデル生成による管理データの生成］
図１２に、図９に示した新規モデル生成の後における管理データを示す。
まず、新規モデル生成部１６は、ステップ６０１において、変更された入力インターフェイスを次の手順で参照する。即ち、図１１(ａ)の行のうち、「型」欄に「Ｉ」が記憶され、「インターフェイス名」欄に図１０(ａ)の対応する行と異なる名前が記憶された行を特定する。この例では、図１１(ａ)のＮｏ．１の「支店価格差設定」が特定される。
【００８０】
次に、新規モデル生成部１６は、ステップ６０２において、現在参照している入力インターフェイスの元となった入力インターフェイスを次の手順で作成する。即ち、まず、図１０(ａ)の行のうち、ステップ６０１で特定した図１１(ａ)の行に対応する行を特定する。そして、新規モデルのインターフェイス管理テーブルにこの特定した行と同じ内容の行を追加する。この例では、図１０(ａ)のＮｏ．１の行が特定され、図１２(ａ)のＮｏ．２の行が追加される。
また、新規モデル生成部１６は、ステップ６０３において、現在参照している入力インターフェイスに対応する出力インターフェイスを次の手順で作成する。即ち、ステップ６０１で参照した図１１(ａ)の行において、「型」欄の「Ｉ」を「Ｏ」に書き換え、新規モデルのインターフェイス管理テーブルにこの行を追加する。この例では、図１１(ａ)のＮｏ．１の行を書き換え、図１２(ａ)のＮｏ．３の行が追加される。
【００８１】
更に、新規モデル生成部１６は、ステップ６０４において、その出力インターフェイスに含まれる出力項目を次の手順で参照する。即ち、ステップ６０３でインターフェイス管理テーブルに追加した行における各項目を参照する。この例では、図１２(ａ)のＮｏ．３の行の「項目１」欄から「項目４」欄に記憶された出力項目「支店名」、「商品名」、「価格」、「許容価格差」が参照される。
【００８２】
次に、新規モデル生成部１６は、ステップ６０５において、現在参照している出力項目に対応する入力項目が元の入力インターフェイスに存在するかを次の手順で判定する。即ち、ステップ６０３でインターフェイス管理テーブルに追加した行における項目のうち、ステップ６０２でインターフェイス管理テーブルに追加した行に存在しない項目を特定する。この例では、図１２(ａ)のＮｏ．３の行における出力項目「支店名」、「商品名」、「価格」、「許容価格差」のうち、図１２(ａ)のＮｏ．２の行に存在しない出力項目「支店名」が特定される。
【００８３】
また、ステップ６０６において、その出力項目に対応する変数を次の手順で作成する。即ち、まず、図１１(ｃ)を参照してその出力項目に対応する入力項目から値が代入される変数を特定する。次に、図１１(ｂ)で管理されるその変数の情報に基づいて、図１２(ｂ)に行を追加する。この例では、図１１(ｃ)のＮｏ．１の行から変数「支店名」が特定され、図１１(ｂ)のＮｏ．１と同じ行が図１２(ｂ)にＮｏ．１の行として追加される。
更に、ステップ６０７において、その変数が保持する値をその出力項目に代入するモデル要素を次の手順で作成する。即ち、新規モデルの接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「変数」を記憶し、「接続元名」欄にステップ６０６で追加した変数名を記憶し、「接続先タイプ」欄に「インターフェイス」を記憶し、「接続先名」欄に現在参照している出力項目名を記憶する。この例では、「接続元名」欄に「支店名」を記憶し、「接続先名」欄に「支店価格差設定．支店名」を記憶するので、図１２(ｃ)のＮｏ．４のようになる。
【００８４】
次に、新規モデル生成部１６は、ステップ６０８において、現在参照している出力項目がキー変数に対応するかどうかを次の手順で判定する。即ち、まず、ステップ６０３でインターフェイス管理テーブルに追加した行における項目から、ステップ６０５で特定された出力項目以外の項目を特定する。次に、図１１(ｃ)を参照してそれらの出力項目に対応する入力項目から値が代入される変数を特定する。そして、図１１(ｂ)を参照してそれらの変数のうち、「ＫＥＹ」欄に「○」が記憶されているものを特定する。この例では、図１２(ａ)のＮｏ．３の行における出力項目「支店名」、「商品名」、「価格」、「許容価格差」から、ステップ６０５で特定された「支店名」が除外され、出力項目「商品名」、「価格」、「許容価格差」が特定される。そして、図１１(ｃ)のＮｏ．２〜４の行から変数「商品名」、「価格」、「許容価格差」が特定され、図１１(ｂ)のＮｏ．２の行から変数「商品名」がキー変数であることが分かる。
【００８５】
また、ステップ６０９において、このキー変数を次の手順で作成する。即ち、図１１(ｂ)で管理されるその変数の情報に基づいて、図１２(ｂ)に行を追加する。この例では、図１１(ｂ)のＮｏ．２と同じ行が図１２(ｂ)にＮｏ．２の行として追加される。
更に、ステップ６１０において、そのキー変数が保持する値をその出力項目に代入するモデル要素を次の手順で作成する。即ち、新規モデルの接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「変数」を記憶し、「接続元名」欄にステップ６０９で追加した変数名を記憶し、「接続先タイプ」欄に「インターフェイス」を記憶し、「接続先名」欄に現在参照している出力項目名を記憶する。この例では、「接続元名」欄に「商品名」を記憶し、「接続先名」欄に「支店価格差設定．商品名」を記憶するので、図１２(ｃ)のＮｏ．５のようになる。
【００８６】
次いで、新規モデル生成部１６は、ステップ６１１において、現在参照している出力項目が個別指定対象の変数に対応するかどうかを次の手順で判定する。即ち、まず、ステップ６０３でインターフェイス管理テーブルに追加した行における項目から、ステップ６０５、６０８で特定された出力項目以外の項目を特定する。次に、図１１(ｃ)を参照してそれらの入力項目から値が代入される変数を特定する。そして、この変数に対し、アノテーション検出部１１(図６参照)から個別指定対象である旨の情報が渡されているかどうかを判定する。この例では、図１２(ａ)のＮｏ．３の行における出力項目「支店名」、「商品名」、「価格」、「許容価格差」から、ステップ６０５、６０８で特定された「支店名」、「商品名」が除外され、出力項目「価格」、「許容価格差」が特定される。そして、図１１(ｃ)のＮｏ．３、４の行から変数「価格」、「許容価格差」が特定され、アノテーション検出部１１から渡された情報に基づいて、変数「価格」は個別指定対象でなく、変数「許容価格差」は個別指定対象であることが分かる。
【００８７】
また、ステップ６１２において、元の入力インターフェイスにおける入力項目が保持する値をその出力項目に代入するモデル要素を次の手順で作成する。即ち、新規モデルの接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「インターフェイス」を記憶し、「接続元名」欄に現在参照している入力項目名を記憶し、「接続先タイプ」欄に「インターフェイス」を記憶し、「接続先名」欄に現在参照している出力項目名を記憶する。この例では、「接続元名」欄に「価格差設定．価格」を記憶し、「接続先名」欄に「支店価格差設定．価格」を記憶するので、図１２(ｃ)のＮｏ．７のようになる。
【００８８】
また、ステップ６１３において、個別指定対象の変数を次の手順で作成する。即ち、図１１(ｂ)で管理されるその変数の情報に基づいて、図１２(ｂ)に行を追加する。この例では、図１１(ｂ)のＮｏ．４と同じ行が図１２(ｂ)にＮｏ．３の行として追加される。
更に、ステップ６１４において、その変数が保持する値をその出力項目に代入するモデル要素を次の手順で作成する。即ち、新規モデルの接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「変数」を記憶し、「接続元名」欄にステップ６１３で追加した変数名を記憶し、「接続先タイプ」欄に「インターフェイス」を記憶し、「接続先名」欄に現在参照している出力項目名を記憶する。この例では、「接続元名」欄に「許容価格差」を記憶し、「接続先名」欄に「支店価格差設定．許容価格差」を記憶するので、図１２(ｃ)のＮｏ．６のようになる。
【００８９】
その後、新規モデル生成部１６は、ステップ６１７において、個別入力インターフェイスを次の手順で作成する。即ち、新規モデルのインターフェイス管理テーブルに新たな行を追加する。この例では、図１２(ａ)にＮｏ．１の行が追加され、「インターフェイス名」欄に「支店価格差登録」が記憶され、「型」欄に「Ｉ」が記憶されている。
また、新規モデル生成部１６は、ステップ６１８において、作成した全ての変数を次の手順で参照する。即ち、図１２(ｂ)で管理される変数を参照する。この例では、変数「支店名」、「商品名」、「許容価格差」が参照される。
【００９０】
更に、ステップ６１９において、個別入力インターフェイスに対し、現在参照している変数に対応する入力項目を追加する。即ち、ステップ６１７でインターフェイス管理テーブルに追加した行に項目を登録する。この例では、図１２(ａ)のＮｏ．１の行において、「項目１」欄、「項目２」欄、「項目３」欄に、それぞれ、「支店名」、「商品名」、「許容価格差」が記憶される。
更にまた、ステップ６２０において、これらの入力項目が保持する値をそれぞれ対応する変数に代入するモデル要素を次の手順で作成する。即ち、新規モデルの接続管理テーブルに行を追加し、その行において、「接続元タイプ」欄に「変数」を記憶し、「接続元名」欄にステップ６１９で登録した入力項目名を記憶し、「接続先タイプ」欄に「インターフェイス」を記憶し、「接続先名」欄に現在参照している変数名を記憶する。この例では、「接続元名」欄に「支店価格差登録．支店名」、「支店価格差登録．商品名」、「支店価格差登録．許容価格差」を記憶し、それぞれに対応して、「接続先名」欄に「支店名」、「商品名」、「許容価格差」を記憶するので、図１２(ｃ)のＮｏ．１〜３のようになる。
【００９１】
尚、本実施の形態では、元の設計モデルを個別利用可能な設計モデルに変換し、その入力側に個別制御用の設計モデルを作成するようにした。しかしながら、出力側に個別制御用の設計モデルを作成するようにしてもよい。この場合、次の処理を行うことにより、設計モデルをテンプレートとして用い個別の状況に応じた利用を可能にすることができる。即ち、個別指定対象の変数から値が受け渡される元の出力インターフェイス名を変更して新たな出力インターフェイスとする。そして、新たな出力インターフェイスから値を受け取って個別情報を付加した上で、元の出力インターフェイスを呼び出す個別制御用のモデル(新規モデル)を作成する。
【００９２】
また、本実施の形態では、アプリケーションを構成する要素のうち変数を、個別指定対象及び識別キーとして指定するようにしたが、これには限らない。即ち、アプリケーションを構成する他の要素に対して同様の指定を行うことも可能である。例えば、条件式１１６を支店ごとに区別して設定することが考えられる。
更に、本実施の形態では、個別指定対象及び識別キーを設計モデル上で指定するようにしたが、これには限らない。例えば、アプリケーションのソースコードを表示し、その上でこれらの指定を行う構成としてもよい。
【００９３】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。
また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(ＲＡＭ)、リードオンリーメモリ(ＲＯＭ)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(ＣＤ−ＲＯＭ)、コンパクトディスク−リード/ライト(ＣＤ−Ｒ/Ｗ)及びＤＶＤが含まれる。
【００９４】
以上述べたように、本実施の形態によれば、個別指定対象の要素及び識別キーの要素をアノテーションで指定するだけで、元のアプリケーションを、個別の状況に対応したアプリケーションに変換できるようにした。これにより、次のようなアプリケーションの開発が可能となった。即ち、まず、システムに詳しいユーザが個別の状況を想定せずに固定的なアプリケーションを作成する。その後、個別の状況に詳しいユーザが、例えば、閾値、出力先、保持すべき変数の追加タイミング等の個別情報を指定し、アプリケーションを変換する。このように、本実施の形態では、既存のアプリケーションプログラムを個別の状況に応じて変更する作業を簡単に行えるようになった。
【００９５】
また、本実施の形態によれば、次のような効果ももたらされる。
まず、既存のアプリケーションに直接修正を加えるわけではないので、システムとして並存が可能である点である。
次に、アプリケーションの改変を指示するにあたりメディエータパターンを用いるので、シンプルな改変ロジックにより実現可能である点である。
そして、アノテーションを付与するユーザにとって、上記の点を一切考慮する必要なく実現できる点である。
但し、本実施の形態は、アノテーションの付与をトリガーとしなくても実現可能である。つまり、何らかの方法で個別指定対象の要素と識別キーとなる要素を指定できればよいのである。
【００９６】
尚、従来、単体のアプリケーションに対してなら、アスペクト指向やClassのMixin等の手法を一部に適用できる可能性もあった。しかしながら、ＳＯＡのように各アプリケーションが独立して存在し、複数のアプリケーションを結合することでシステムが構築された環境では、アプリケーション自体を再設計するしか方法がなかった。これに対し、本実施の形態は、アプリケーションを再設計することなく、アプリケーションを改変できるという効果をもたらすものである。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【図２】本発明の実施の形態において変換するアプリケーションの設計モデルの例を示した図である。
【図３】本発明の実施の形態においてアプリケーションの変換を指示する際の設計モデルの例を示した図である。
【図４】本発明の実施の形態におけるアプリケーションの変換後における設計モデルの例を示した図である。
【図５】本発明の実施の形態におけるアプリケーションの変換後における設計モデルの例を示した図である。
【図６】本発明の実施の形態におけるアプリケーション変換装置の機能構成を示したブロック図である。
【図７】本発明の実施の形態における入力インターフェイス変換部の動作を示したフローチャートである。
【図８】本発明の実施の形態における出力インターフェイス変換部の動作を示したフローチャートである。
【図９】本発明の実施の形態における新規モデル生成部の動作を示したフローチャートである。
【図１０】本発明の実施の形態において設計モデルを管理する管理データの例を示した図である。
【図１１】本発明の実施の形態において入力インターフェイス及び出力インターフェイスが変換された後の設計モデルを管理する管理データの例を示した図である。
【図１２】本発明の実施の形態において新規に生成される設計モデルを管理する管理データの例を示した図である。
【符号の説明】
【００９８】
１１…アノテーション検出部、１２…変換部、１３…設計モデル記憶部、１４…入力インターフェイス変換部、１５…出力インターフェイス変換部、１６…新規モデル生成部
【図１】
2008117067.tif 000003
【図２】
2008117067.tif 000004
【図３】
2008117067.tif 000005
【図４】
2008117067.tif 000006
【図５】
2008117067.tif 000007
【図６】
2008117067.tif 000008
【図７】
2008117067.tif 000009
【図８】
2008117067.tif 000010
【図９】
2008117067.tif 000011
【図１０】
2008117067.tif 000012
【図１１】
2008117067.tif 000013
【図１２】
2008117067.tif 000014
【手続補正書】
【提出日】平成20年3月6日(2008.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを生成するための装置であって、
前記アプリケーションプログラムで用いられる変数に格納されるべき値を外部から受け取るインターフェイスを表すモデル要素と、前記アプリケーションプログラムで用いられる変数に格納されている値を外部に受け渡すインターフェイスを表すモデル要素とを含む設計モデルを表示する表示部と、
第１の変数に格納される値を所定の変数に格納される値に応じて個別に設定できるようにする旨、及び、第２の変数を当該所定の変数として用いる旨の前記表示部上での指示を検出する検出部と、
前記検出部による前記指示の検出に応じて、前記第１の変数に格納されるべき値を外部から受け取る第１のインターフェイスを表すモデル要素を、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取る第２のインターフェイスを表すモデル要素に置き換えることにより、前記設計モデルを変換するモデル変換部と、
前記検出部による前記指示の検出に応じて、前記第１のインターフェイスを表すモデル要素と、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取り、当該第１の変数に格納されるべき値を前記第１のインターフェイスが受け取った前記第１の変数に格納されるべき値に代えて前記第１の変数に格納する第３のインターフェイスを表すモデル要素と、前記第２のインターフェイスが受け取った値を格納する変数に対応する変数に格納されている値を外部に受け渡す第４のインターフェイスを表すモデル要素とを含む新規モデルを生成するモデル生成部と、
前記モデル変換部による変換後の設計モデルと、前記モデル生成部により生成された新規モデルとに基づいて、アプリケーションプログラムを生成するアプリケーション生成部と
を備えた、装置。
【請求項２】
前記検出部は、前記表示部上での前記指示を、当該指示の内容に応じたアノテーションオブジェクトの当該表示部上での配置を認識することにより検出する、請求項１の装置。
【請求項３】
前記モデル変換部は、更に、前記第１の変数に格納されている値に応じて所定の値を外部に受け渡す第５のインターフェイスを表すモデル要素を、当該所定の値と前記第２の変数に格納されている値とを組み合わせて外部に受け渡す第６のインターフェイスを表すモデル要素に置き換えることにより、前記設計モデルを変換する、請求項１の装置。
【請求項４】
アプリケーションプログラムを生成するための方法であって、
前記アプリケーションプログラムで用いられる変数に格納されるべき値を外部から受け取るインターフェイスを表すモデル要素と、前記アプリケーションプログラムで用いられる変数に格納されている値を外部に受け渡すインターフェイスを表すモデル要素とを含む設計モデルを表示部に表示するステップと、
第１の変数に格納される値を所定の変数に格納される値に応じて個別に設定できるようにする旨、及び、第２の変数を当該所定の変数として用いる旨の前記表示部上での指示を検出するステップと、
前記指示の検出に応じて、前記第１の変数に格納されるべき値を外部から受け取る第１のインターフェイスを表すモデル要素を、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取る第２のインターフェイスを表すモデル要素に置き換えることにより、前記設計モデルを変換するステップと、
前記指示の検出に応じて、前記第１のインターフェイスを表すモデル要素と、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取り、当該第１の変数に格納されるべき値を前記第１のインターフェイスが受け取った前記第１の変数に格納されるべき値に代えて前記第１の変数に格納する第３のインターフェイスを表すモデル要素と、前記第２のインターフェイスが受け取った値を格納する変数に対応する変数に格納されている値を外部に受け渡す第４のインターフェイスを表すモデル要素とを含む新規モデルを生成するステップと、
変換後の設計モデルと、生成された新規モデルとに基づいて、アプリケーションプログラムを生成するステップと
を含む、方法。
【請求項５】
前記検出するステップでは、前記表示部上での前記指示を、当該指示の内容に応じたアノテーションオブジェクトの当該表示部上での配置を認識することにより検出する、請求項４の方法。
【請求項６】
前記変換するステップでは、更に、前記第１の変数に格納されている値に応じて所定の値を外部に受け渡す第５のインターフェイスを表すモデル要素を、当該所定の値と前記第２の変数に格納されている値とを組み合わせて外部に受け渡す第６のインターフェイスを表すモデル要素に置き換えることにより、前記設計モデルを変換する、請求項４の方法。
【請求項７】
アプリケーションプログラムを生成するためのコンピュータプログラムであって、コンピュータに、
前記アプリケーションプログラムで用いられる変数に格納されるべき値を外部から受け取るインターフェイスを表すモデル要素と、前記アプリケーションプログラムで用いられる変数に格納されている値を外部に受け渡すインターフェイスを表すモデル要素とを含む設計モデルを表示部に表示する手順と、
第１の変数に格納される値を所定の変数に格納される値に応じて個別に設定できるようにする旨、及び、第２の変数を当該所定の変数として用いる旨の前記表示部上での指示を検出する手順と、
前記指示の検出に応じて、前記第１の変数に格納されるべき値を外部から受け取る第１のインターフェイスを表すモデル要素を、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取る第２のインターフェイスを表すモデル要素に置き換えることにより、前記設計モデルを変換する手順と、
前記指示の検出に応じて、前記第１のインターフェイスを表すモデル要素と、前記第１の変数に格納されるべき値と前記第２の変数に格納されるべき値とを組み合わせて外部から受け取り、当該第１の変数に格納されるべき値を前記第１のインターフェイスが受け取った前記第１の変数に格納されるべき値に代えて前記第１の変数に格納する第３のインターフェイスを表すモデル要素と、前記第２のインターフェイスが受け取った値を格納する変数に対応する変数に格納されている値を外部に受け渡す第４のインターフェイスを表すモデル要素とを含む新規モデルを生成する手順と、
変換後の設計モデルと、生成された新規モデルとに基づいて、アプリケーションプログラムを生成する手順と
を実行させる、コンピュータプログラム。
【請求項８】
前記検出する手順では、前記表示部上での前記指示を、当該指示の内容に応じたアノテーションオブジェクトの当該表示部上での配置を認識することにより検出する、請求項７のコンピュータプログラム。
【請求項９】
前記変換する手順では、更に、前記第１の変数に格納されている値に応じて所定の値を外部に受け渡す第５のインターフェイスを表すモデル要素を、当該所定の値と前記第２の変数に格納されている値とを組み合わせて外部に受け渡す第６のインターフェイスを表すモデル要素に置き換えることにより、前記設計モデルを変換する、請求項７のコンピュータプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
また、この時、新規モデルも生成される。
図５に、このとき生成される新規モデルを示す。
この新規モデルにおいては、まず、入力インターフェイス１４１(価格差設定)が外部から「商品名」、「価格」、「許容価格差」の値を受け取る。尚、この入力インターフェイス１４１(価格差設定)は、図２に示した変換前のモデルにおける入力インターフェイス１０１(価格差設定)と同じである。