(57)【要約】【課題】  モデルの構造が変化した場合に効率的にビューモデルとモデル間の同期を取ることが可能となるモデル編集システム、モデル編集装置、モデル編集方法及びモデル編集プログラムを提供する。【解決手段】  編集対象となるモデル及びモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムであって、モデル及びビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、識別子を元にモデル要素とビューモデル要素との対応を判断する。【選択図】  図１
2006268764.tif 000002
【特許請求の範囲】
【請求項１】
編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムであって、
前記モデル及び前記ビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、該識別子を元にモデル要素とビューモデル要素との対応を判断することを特徴とするモデル編集システム。
【請求項２】
編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムであって、
前記モデル及び前記ビューモデルの表示・編集を行う第１のモデル編集装置と、
前記モデル及び前記ビューモデルの表示・編集を行う第２のモデル編集装置と、
前記モデル及び前記ビューモデルを構成する各要素に対して付加された識別子を抽出するモデル要素識別子抽出手段と、
前記モデルのどの要素がどのように更新されたかを表すモデル更新情報を格納するモデル更新情報格納手段と、を有し、
前記第１のモデル編集装置は、所定のモデルを更新後、該更新モデルのモデル更新情報を前記モデル更新情報格納手段に収納し、
前記第２のモデル編集装置は、前記モデル更新情報格納手段に格納された前記モデル更新情報を元に、更新されたモデル要素を特定し、
前記モデル識別子抽出手段は、前記更新されたモデル要素の識別子を抽出し、
前記第２のモデル編集装置は、前記識別子に該当するビューモデル要素を検索し、前記更新されたモデル要素と、該検索されたビューモデル要素とを元に両要素の相違を検出し、該相違を元にビューモデルを更新することを特徴とするモデル編集システム。
【請求項３】
前記第２のモデル編集装置は、前記識別子に該当するビューモデル要素が見つからなかった場合、前記更新された要素に対応するビューモデル要素を作成し、該作成したビューモデル要素を元にビューモデルを更新することを特徴とする請求項２記載のモデル編集システム。
【請求項４】
前記識別子が付加されていないモデル要素及びビューモデル要素に対して、新たに識別子を生成して付与する識別子付与手段をさらに有することを特徴とする請求項１から３のいずれか１項に記載のモデル編集システム。
【請求項５】
前記第１のモデル編集装置及び前記第２のモデル編集装置において更新されたモデルを格納するモデル格納手段をさらに有することを特徴とする請求項１から４のいずれか１項に記載のモデル編集システム。
【請求項６】
表示状態のビューから選択されたビュー要素の情報を取得し、該情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定手段と、
前記ビュー切り替え先判定手段の判定結果に基づいて、ビュー切り替えのためのメニューを、現在表示状態のビューに表示するためのビュー切り替えメニュー表示手段と、
前記ビュー切り替えメニュー表示手段における選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うためのビュー切り替え実施手段と、
をさらに有することを特徴とする請求項１から５のいずれか１項に記載のモデル編集システム。
【請求項７】
前記ビュー切り替え先判定手段は、現在表示状態のビューから選択されたビューモデル要素を特定し、該特定したビューモデル要素の識別子を抽出し、各ビューのビューモデルに対して、前記識別子に対応する要素を保持しているかを検索し、検索したビューに関して該ビューの種別を記録することを特徴とする請求項６記載のモデル編集システム。
【請求項８】
前記ビュー切り替え実施手段は、選択されたメニューを特定し、該メニューからビュー種別とモデル要素識別子とを特定し、前記モデル要素識別子に対応するビューモデル要素を特定し、該当するビューモデル要素を選択状態にし、ビュー種別に対応するビューに切り替えることを特徴とする請求項６又は７記載のモデル編集システム。
【請求項９】
請求項２から８のいずれか１項に記載のモデル編集システムで用いられるモデル編集装置。
【請求項１０】
編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集方法であって、
前記モデル及び前記ビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、該識別子を元にモデル要素とビューモデル要素との対応を判断することを特徴とするモデル編集方法。
【請求項１１】
編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集方法であって、
第１のモデル編集装置にて、所定のモデルを更新後、該更新モデルのどの要素がどのように更新されたかを表すモデル更新情報をモデル更新情報格納手段に収納し、
第２のモデル編集装置にて、前記モデル更新情報格納手段に格納された前記モデル更新情報を元に、更新されたモデル要素を特定し、
モデル要素識別子抽出手段にて、前記更新されたモデル要素の識別子を抽出し、
前記第２のモデル編集装置にて、前記識別子に該当するビューモデル要素を検索し、前記更新されたモデル要素と、該検索されたビューモデル要素とを元に両要素の相違を検出し、該相違を元にビューモデルを更新することを特徴とするモデル編集方法。
【請求項１２】
前記第２のモデル編集装置にて、前記識別子に該当するビューモデル要素が見つからなかった場合、前記更新された要素に対応するビューモデル要素を作成し、該作成したビューモデル要素を元にビューモデルを更新することを特徴とする請求項１１記載のモデル編集方法。
【請求項１３】
前記識別子が付加されていないモデル要素及びビューモデル要素に対して、新たに識別子を生成して付与することを特徴とする請求項１０から１２のいずれか１項に記載のモデル編集方法。
【請求項１４】
前記第１のモデル編集装置及び前記第２のモデル編集装置において更新されたモデルをモデル格納手段に格納することを特徴とする請求項１０から１３のいずれか１項に記載のモデル編集方法。
【請求項１５】
表示状態のビューから選択されたビュー要素の情報を取得し、該情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定工程と、
前記ビュー切り替え先判定工程の判定結果に基づいて、ビュー切り替えのためのメニューを、現在表示状態のビューに表示するためのビュー切り替えメニュー表示工程と、
前記ビュー切り替えメニュー表示工程における選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うためのビュー切り替え実施工程と、
をさらに有することを特徴とする請求項１０から１４のいずれか１項に記載のモデル編集方法。
【請求項１６】
前記ビュー切り替え先判定工程にて、現在表示状態のビューから選択されたビューモデル要素を特定し、該特定したビューモデル要素の識別子を抽出し、各ビューのビューモデルに対して、前記識別子に対応する要素を保持しているかを検索し、検索したビューに関して該ビューの種別を記録することを特徴とする請求項１５記載のモデル編集方法。
【請求項１７】
前記ビュー切り替え実施工程にて、選択されたメニューを特定し、該メニューからビュー種別とモデル要素識別子とを特定し、前記モデル要素識別子に対応するビューモデル要素を特定し、該当するビューモデル要素を選択状態にし、ビュー種別に対応するビューに切り替えることを特徴とする請求項１５又は１６記載のモデル編集方法。
【請求項１８】
編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集プログラムであって、
前記モデル及び前記ビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、該識別子を元にモデル要素とビューモデル要素との対応を判断する処理をモデル編集装置に実行させるモデル編集プログラム。
【請求項１９】
編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集プログラムであって、
モデルのどの要素がどのように更新されたかを表すモデル更新情報を元に、更新されたモデル要素を特定する処理と、
モデル識別子抽出手段により抽出された、前記更新されたモデル要素の識別子に該当するビューモデル要素を検索する処理と、
前記更新されたモデル要素と、該検索されたビューモデル要素とを元に両要素の相違を検出する処理と、
該相違を元にビューモデルを更新する処理と、
をモデル編集装置に実行させるモデル編集プログラム。
【請求項２０】
前記識別子に該当するビューモデル要素が見つからなかった場合、前記更新された要素に対応するビューモデル要素を作成する処理と、
該作成したビューモデル要素を元にビューモデルを更新する処理と、
をモデル編集装置に実行させる請求項１９記載のモデル編集プログラム。
【請求項２１】
前記識別子が付加されていないモデル要素及びビューモデル要素に対して、新たに識別子を生成して付与する処理をモデル編集装置に実行させる請求項１８から２０のいずれか１項に記載のモデル編集プログラム。
【請求項２２】
前記更新したモデルをモデル格納手段に格納する処理をモデル編集装置に実行させる請求項１８から２１のいずれか１項に記載のモデル編集プログラム。
【請求項２３】
表示状態のビューから選択されたビュー要素の情報を取得し、該情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定処理と、
前記ビュー切り替え先判定処理の判定結果に基づいて、ビュー切り替えのためのメニューを、現在表示状態のビューに表示するためのビュー切り替えメニュー表示処理と、
前記ビュー切り替えメニュー表示処理における選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うためのビュー切り替え実施処理と、
をモデル編集装置に実行させる請求項１８から２２のいずれか１項に記載のモデル編集プログラム。
【請求項２４】
前記ビュー切り替え先判定処理にて、現在表示状態のビューから選択されたビューモデル要素を特定し、該特定したビューモデル要素の識別子を抽出し、各ビューのビューモデルに対して、前記識別子に対応する要素を保持しているかを検索し、検索したビューに関して該ビューの種別を記録する処理をモデル編集装置に実行させる請求項２３記載のモデル編集プログラム。
【請求項２５】
前記ビュー切り替え実施処理にて、選択されたメニューを特定し、該メニューからビュー種別とモデル要素識別子とを特定し、前記モデル要素識別子に対応するビューモデル要素を特定し、該当するビューモデル要素を選択状態にし、ビュー種別に対応するビューに切り替える処理をモデル編集装置に実行させる請求項２３又は２４記載のモデル編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のビュー表示に対応した、モデル編集システム、モデル編集装置、モデル編集方法及びモデル編集プログラムに関する。
【背景技術】
【０００２】
近年、UML（Unified Modeling Language：統一モデリング言語）等、ビジュアルな表現を用いてシステムの仕様を記述し、そこからシステムを自動生成したり、より詳細な仕様を作成したりすることによりシステム開発を支援するシステムが使われるようになっている。例として、IBM社のRational Rose（登録商標）やBorland社のTogether（登録商標）等がある。
【０００３】
このようなビジュアルな表現では、通常、システム仕様を記述する際に、単一の表記方法のみを使うのではなく、複数の表記方法を併用し、複数視点を利用することが多い。例えば、システムの静的（構造的）側面と動的側面とは、それぞれ記述に適した表記方法が異なるため、通常はそれぞれを別個に記述する。ただし、これら別個の表記内容は、独立なものではなく関連がある。例えば、静的記述において記述したシステムの構成要素を利用して、動的側面において動作を記述することがある。
【０００４】
したがって、これらを記述するエディタ等のツールでは、各記法における内容の整合を保つように、ある記法の内容が変更された場合に別の記法の内容が随時変更される必要がある。また、単に単一の記法の記述内容を提示するだけでなく、関連する部分をキーとして各記述内容を切り替えることで利用者に関連をわかりやすく示す必要がある。
【０００５】
こうした、複数の記法（ビュー）間の整合を取るための従来技術例として、特許文献１に示す「アプリケーション編集装置、データ処理方法及びプログラム」がある。この従来技術では、図１０に示すように、モデルＡ及びビューＡを取り扱うアプリケーションＡを実行するアプリケーションＡ実行部１０と、モデルＡをモデルＢに変換するモデル変換器２０と、モデルＢ及びビューＢを取り扱うアプリケーションＢを実行するアプリケーションＢ実行部３０と、から構成されている。アプリケーションＢ実行部はさらに、モデル変換器の変換結果に基づき、モデルＢの差分を抽出する差分抽出部３１と、抽出された差分に基づいてビューＢを更新するためのイベントを生成するイベント生成部３２から構成されている。
【０００６】
そして、この特許文献１のアプリケーション編集装置は次のように動作する。
すなわち、アプリケーションＡ実行部１０がアプリケーションＡを実行することでモデルＡに変更が生じた場合、モデル変換器２０が変更後のモデルＡを入力として、対応するモデルＢを生成する。続いて、差分抽出部３１において、従来のモデルＢと、モデル変換器２０によって生成されたモデルＢとの間の差分を抽出し、イベント生成部３２が差分を使ってビューＢを更新するためのイベントを生成する。ビューＢはこのイベントを受け取ることでビューＢにおける表示を更新する。
【０００７】
このようにして、特許文献１では、モデルとビューが想定するモデルとが同一ではない場合、あるビューに対して起こった変更を他のビューに随時反映させるために、変換後のモデルの差分を抽出し、それを元にビュー更新のためのイベントを生成する。
【特許文献１】特開２００３−０６７１８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１記載の発明は、主にモデルの構造上の差異に基づいて差分抽出を行っているため、構造が大きく変更になる場合や、構成要素の名前等、キーになりうる属性の変更があった場合など、本来同一である要素が異なるものとして判定される可能性があり、モデルの整合性が崩れる危険性があるとともに、モデル変換やビューの同期において非効率になる問題があった。
【０００９】
また、上記特許文献１記載の発明では、異なるビューの間において、意味的に対応づく要素を対応づける手段がないため、あるビューにおける要素に対し、他のビューの対応する要素を示し、その第２のビューに切り替える操作を実現するためには、第１のビューと第２のビューの組み合わせに応じて切り替え処理を容易する必要があり、ビューの個数が多くなる場合に必要な開発のコストが大きくなる問題があった。
【００１０】
本発明は、上記事情に鑑みてなされたものであり、ビューにおける変更のモデルへの反映、複数ビュー間の内容の同期、あるビューから他のビューへの切り替え等を効率的に実現できる、モデル編集システム、モデル編集装置、モデル編集方法及びモデル編集プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
かかる目的を達成するために、請求項１記載の発明は、編集対象となるモデル及びモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムであって、モデル及びビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、識別子を元にモデル要素とビューモデル要素との対応を判断することを特徴とする。
【００１２】
請求項２記載の発明は、編集対象となるモデル及びモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムであって、モデル及びビューモデルの表示・編集を行う第１のモデル編集装置と、モデル及びビューモデルの表示・編集を行う第２のモデル編集装置と、モデル及びビューモデルを構成する各要素に対して付加された識別子を抽出するモデル要素識別子抽出手段と、モデルのどの要素がどのように更新されたかを表すモデル更新情報を格納するモデル更新情報格納手段と、を有し、第１のモデル編集装置は、所定のモデルを更新後、更新モデルのモデル更新情報をモデル更新情報格納手段に収納し、第２のモデル編集装置は、モデル更新情報格納手段に格納されたモデル更新情報を元に、更新されたモデル要素を特定し、モデル識別子抽出手段は、更新されたモデル要素の識別子を抽出し、第２のモデル編集装置は、識別子に該当するビューモデル要素を検索し、更新されたモデル要素と、検索されたビューモデル要素とを元に両要素の相違を検出し、相違を元にビューモデルを更新することを特徴とする。
【００１３】
請求項３記載の発明は、請求項２記載の発明において、第２のモデル編集装置は、識別子に該当するビューモデル要素が見つからなかった場合、更新された要素に対応するビューモデル要素を作成し、該作成したビューモデル要素を元にビューモデルを更新することを特徴とする。
【００１４】
請求項４記載の発明は、請求項１から３のいずれか１項に記載の発明において、識別子が付加されていないモデル要素及びビューモデル要素に対して、新たに識別子を生成して付与する識別子付与手段をさらに有することを特徴とする。
【００１５】
請求項５記載の発明は、請求項１から４のいずれか１項に記載の発明において、第１のモデル編集装置及び第２のモデル編集装置において更新されたモデルを格納するモデル格納手段をさらに有することを特徴とする。
【００１６】
請求項６記載の発明は、請求項１から５のいずれか１項に記載の発明において、表示状態のビューから選択されたビュー要素の情報を取得し、情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定手段と、ビュー切り替え先判定手段の判定結果に基づいて、ビュー切り替えのためのメニューを、現在表示状態のビューに表示するためのビュー切り替えメニュー表示手段と、ビュー切り替えメニュー表示手段における選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うためのビュー切り替え実施手段と、をさらに有することを特徴とする。
【００１７】
請求項７記載の発明は、請求項６記載の発明において、ビュー切り替え先判定手段は、現在表示状態のビューから選択されたビューモデル要素を特定し、特定したビューモデル要素の識別子を抽出し、各ビューのビューモデルに対して、識別子に対応する要素を保持しているかを検索し、検索したビューに関してビューの種別を記録することを特徴とする。
【００１８】
請求項８記載の発明は、請求項６又は７記載の発明において、ビュー切り替え実施手段は、選択されたメニューを特定し、メニューからビュー種別とモデル要素識別子とを特定し、モデル要素識別子に対応するビューモデル要素を特定し、該当するビューモデル要素を選択状態にし、ビュー種別に対応するビューに切り替えることを特徴とする。
【００１９】
請求項９記載の発明は、請求項２から８のいずれか１項に記載のモデル編集システムで用いられることを特徴とする。
【００２０】
請求項１０記載の発明は、編集対象となるモデル及びモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集方法であって、モデル及びビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、識別子を元にモデル要素とビューモデル要素との対応を判断することを特徴とする。
【００２１】
請求項１１記載の発明は、編集対象となるモデル及び該モデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集方法であって、第１のモデル編集装置にて、所定のモデルを更新後、更新モデルのどの要素がどのように更新されたかを表すモデル更新情報をモデル更新情報格納手段に収納し、第２のモデル編集装置にて、モデル更新情報格納手段に格納されたモデル更新情報を元に、更新されたモデル要素を特定し、モデル要素識別子抽出手段にて、更新されたモデル要素の識別子を抽出し、第２のモデル編集装置にて、識別子に該当するビューモデル要素を検索し、更新されたモデル要素と、検索されたビューモデル要素とを元に両要素の相違を検出し、相違を元にビューモデルを更新することを特徴とする。
【００２２】
請求項１２記載の発明は、請求項１１記載の発明において、第２のモデル編集装置にて、識別子に該当するビューモデル要素が見つからなかった場合、更新された要素に対応するビューモデル要素を作成し、作成したビューモデル要素を元にビューモデルを更新することを特徴とする。
【００２３】
請求項１３記載の発明は、請求項１０から１２のいずれか１項に記載の発明において、識別子が付加されていないモデル要素及びビューモデル要素に対して、新たに識別子を生成して付与することを特徴とする。
【００２４】
請求項１４記載の発明は、請求項１０から１３のいずれか１項に記載の発明において、第１のモデル編集装置及び第２のモデル編集装置において更新されたモデルをモデル格納手段に格納することを特徴とする。
【００２５】
請求項１５記載の発明は、請求項１０から１４のいずれか１項に記載の発明において、表示状態のビューから選択されたビュー要素の情報を取得し、情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定工程と、ビュー切り替え先判定工程の判定結果に基づいて、ビュー切り替えのためのメニューを、現在表示状態のビューに表示するためのビュー切り替えメニュー表示工程と、ビュー切り替えメニュー表示工程における選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うためのビュー切り替え実施工程と、をさらに有することを特徴とする。
【００２６】
請求項１６記載の発明は、請求項１５記載の発明において、ビュー切り替え先判定工程にて、現在表示状態のビューから選択されたビューモデル要素を特定し、特定したビューモデル要素の識別子を抽出し、各ビューのビューモデルに対して、識別子に対応する要素を保持しているかを検索し、検索したビューに関してビューの種別を記録することを特徴とする。
【００２７】
請求項１７記載の発明は、請求項１５又は１６記載の発明において、ビュー切り替え実施工程にて、選択されたメニューを特定し、メニューからビュー種別とモデル要素識別子とを特定し、モデル要素識別子に対応するビューモデル要素を特定し、該当するビューモデル要素を選択状態にし、ビュー種別に対応するビューに切り替えることを特徴とする。
【００２８】
請求項１８記載の発明は、編集対象となるモデル及びモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集プログラムであって、モデル及びビューモデルを構成する各要素に対して付加された識別子をそれぞれ抽出し、識別子を元にモデル要素とビューモデル要素との対応を判断する処理をモデル編集装置に実行させる。
【００２９】
請求項１９記載の発明は、編集対象となるモデル及びモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集プログラムであって、モデルのどの要素がどのように更新されたかを表すモデル更新情報を元に、更新されたモデル要素を特定する処理と、モデル識別子抽出手段により抽出された、更新されたモデル要素の識別子に該当するビューモデル要素を検索する処理と、更新されたモデル要素と、検索されたビューモデル要素とを元に両要素の相違を検出する処理と、相違を元にビューモデルを更新する処理と、をモデル編集装置に実行させる。
【００３０】
請求項２０記載の発明は、請求項１９記載の発明において、識別子に該当するビューモデル要素が見つからなかった場合、更新された要素に対応するビューモデル要素を作成する処理と、作成したビューモデル要素を元にビューモデルを更新する処理と、をモデル編集装置に実行させる。
【００３１】
請求項２１記載の発明は、請求項１８から２０のいずれか１項に記載の発明において、識別子が付加されていないモデル要素及びビューモデル要素に対して、新たに識別子を生成して付与する処理をモデル編集装置に実行させる。
【００３２】
請求項２２記載の発明は、請求項１８から２１のいずれか１項に記載の発明において、更新したモデルをモデル格納手段に格納する処理をモデル編集装置に実行させる。
【００３３】
請求項２３記載の発明は、請求項１８から２２のいずれか１項に記載の発明において、表示状態のビューから選択されたビュー要素の情報を取得し、情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定処理と、ビュー切り替え先判定処理の判定結果に基づいて、ビュー切り替えのためのメニューを、現在表示状態のビューに表示するためのビュー切り替えメニュー表示処理と、ビュー切り替えメニュー表示処理における選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うためのビュー切り替え実施処理と、をモデル編集装置に実行させる。
【００３４】
請求項２４記載の発明は、請求項２３記載の発明において、ビュー切り替え先判定処理にて、現在表示状態のビューから選択されたビューモデル要素を特定し、特定したビューモデル要素の識別子を抽出し、各ビューのビューモデルに対して、識別子に対応する要素を保持しているかを検索し、検索したビューに関してビューの種別を記録する処理をモデル編集装置に実行させる。
【００３５】
請求項２５記載の発明は、請求項２３又は２４記載の発明において、ビュー切り替え実施処理にて、選択されたメニューを特定し、メニューからビュー種別とモデル要素識別子とを特定し、モデル要素識別子に対応するビューモデル要素を特定し、該当するビューモデル要素を選択状態にし、ビュー種別に対応するビューに切り替える処理をモデル編集装置に実行させる。
【発明の効果】
【００３６】
本発明によれば、モデルの構造が変化した場合に効率的にビューモデルとモデル間の同期を取ることが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明を実施するための最良の形態について添付図面を参照して詳細に説明する。
【００３８】
本発明は、モデルを構成する各要素からユニークな識別子を抽出する手段を備えることにより、各ビューに付属したモデルを構成する要素との対応付けを行うことで、ビューにおける変更のモデルへの反映、複数ビュー間の内容の同期、あるビューから他のビューへの切り替え等について効率的に実現できるようにする。
【実施例１】
【００３９】
次に、本発明の実施例の構成について図面を参照して詳細に説明する。
図１を参照すると、本発明の実施例１であるモデル編集システムは、編集対象となるモデル及びモデルをある形式で表現するために利用するビューモデルを構成する各要素に対して唯一性が保証された識別子を抽出するモデル要素識別子抽出手段１と、新規作成されたモデル要素等、対応する識別子が付与されていない場合に新たに識別子を生成して付与するモデル要素識別子付与手段７と、編集対象となるモデルを格納するモデル格納手段２と、モデルのどの要素がどのように更新されているかを表すモデル更新情報を格納するモデル更新情報格納手段３と、モデルに対して第１の表現形式に基づいて表示・編集を行うためのエディタ（モデル編集装置）１ １００と、モデルに対して第２の表現形式に基づいて表示・編集を行うためのエディタ（モデル編集装置）２ ２００とから構成されている。
【００４０】
エディタ１はさらに、第１の表現形式で情報を表示するビュー１ １０１と、第１の表現形式に伴うビューの情報であるビューモデル１を格納するビューモデル格納手段１ １０２と、ビューモデル１のどの要素がどのように更新されているかを表すビューモデル更新情報を格納するビューモデル更新情報格納手段１ １０３と、ビューモデル更新情報に基づいてビューモデルを参照し、変更部分に応じてモデル要素識別子抽出手段により識別子の抽出を行いつつモデルの更新を行うモデル更新手段１ １０４と、モデル更新情報に基づいてモデルを参照し、変更部分に応じてモデル要素識別子抽出手段より識別子の抽出を行いつつモデルの更新を行うビューモデル更新手段１ １０５とから構成されている。また、図１に示すように、エディタ２もエディタ１と同様の構成となっている。エディタ１及びエディタ２は、プログラム制御により、以下に説明する動作を実行する。
【００４１】
図１及び図２のフローチャートを参照して本発明の実施例１の動作（モデル編集方法・モデル編集プログラム）について詳細に説明する。ここでは、エディタ１のビュー１における更新に基づいてエディタ２のビュー２で更新が行われる場合の動作について述べるが、他のビュー更新の場合や、ビューが複数ある場合も同様である。
【００４２】
まず、エディタ１において、モデル更新手段１により編集対象となるモデルを更新する（図２のステップＡ１）。次に、エディタ２において、ビューモデル更新手段２によりビューモデル２を更新する（ステップＡ２）。最後に、ビュー２において更新処理を行う（ステップＡ３）。
【００４３】
続いて、図３のフローチャートを参照して、ステップＡ１の動作についてさらに詳細に説明する。
まず、エディタ１において、ビューモデル更新情報格納手段１からビューモデル更新情報を取り出す（ステップＢ１）。次に、ビューモデル格納手段１からビューモデル１を取り出す（ステップＢ２）。次に、モデル格納手段２からモデルを取り出す（ステップＢ３）。次に、個々のビューモデル更新情報に対してモデル更新処理を実施する（ステップＢ４）。最後に、更新されたモデルをモデル格納手段２に格納するとともに、更新されたモデルについてどの要素がどのように更新されているかを表すモデル更新情報をモデル更新情報格納手段３に格納する（ステップＢ５）。
【００４４】
ここで、ビュー更新情報格納手段に格納されるビューモデル更新情報とは、ビューモデルに対する変更（更新）が行われる際、具体的にどの構成要素にどのような変更（更新）が加えられたかを示すための情報であり、例えば、図５に示す形式で表され、ビューに対して実行されるメニュー等において生成され、生成後、ビュー更新情報格納手段に格納されるものである。図５では、例として、ビューモデル要素に対して、特定の親要素の元に新たに追加する（ADD）する操作、あるビューモデル要素をビューモデルから削除（DELETE）する操作、あるビューモデル要素の名前を変更する（RENAME）操作がそれぞれ記述されている。図５に示す付加情報とは、例えば、追加の場合の位置指定等、操作に伴うパラメータを表す。なお、実際にどのような操作・付加情報が有効であるかは、ビューモデルの種類によって異なる。
【００４５】
一方、モデル更新情報格納手段に格納されるモデル更新情報とは、モデルに対する変更（更新）が行われる際、具体的にどの構成要素にどのような変更（更新）が加えられたかを示すための情報である。このモデル更新情報は、ビューモデル更新情報と同様の形式（図５参照）であるが、記述の対象がモデルとなる。対象モデル要素は、例えば「関数１」，「関数２」，「クラス１」となる。操作名、付加情報については、図５と同様である。
【００４６】
続いて、図４のフローチャートを参照して、ステップＡ２の動作について詳細に説明する。エディタ１により図３に示す処理が行われた後、エディタ２のビューモデル更新手段２は、以下の処理を実行する。なお、本実施例では、モデルを構成するモデル要素及びビューモデルを構成するビューモデル要素のそれぞれに識別子が予め付加されているものとする。
【００４７】
まず、モデル更新情報格納手段３に格納されたモデル更新情報を元に、更新されたモデル要素を特定する（ステップＣ１）。次に、モデル要素識別子抽出手段１により、特定されたモデル要素の識別子が抽出され（ステップＣ２）、抽出された識別子に該当するビューモデル要素をビューモデル２において検索する（ステップＣ３）。ここで、該当するビューモデル要素が見つかったかどうかの判定を行い（ステップＣ４）、見つかった場合は（ステップＣ４／Ｙｅｓ）、まず、特定されたモデル要素と、該当するビューモデル要素とを比較し、所有属性や配置の相違を検出する（ステップＣ５）。次に、相違があれば、その相違をビューモデル２に反映し、更新する（ステップＣ６）。最後に、更新内容をビューモデル更新情報としてビューモデル更新情報格納手段２に格納する（ステップＣ７）。
【００４８】
一方、ステップＣ４において、該当するビューモデル要素が見つからなかった場合は（ステップＣ４／Ｎｏ）、まず、ステップＣ１で特定されたモデル要素に対応するビューモデル要素を作成する（ステップＣ８）。次に、作成したビューモデル要素の所有属性や配置をビューモデル２に反映し、更新する（ステップＣ９）。最後に、更新内容をビューモデル更新情報としてビューモデル更新情報格納手段２に格納する（ステップＣ１０）。
【００４９】
ここで、モデル識別子抽出手段１により抽出される識別子とは、モデル要素やビューモデル要素をユニークに識別するための識別子である。この識別子は、モデル要素識別子付与手段７により、例えば、作成時刻・作成者・作成コンピュータのＩＤ等の情報を元に作成することができる。モデル要素識別子付与手段７は、モデル要素やビューモデル要素を新規に作成する場合や、外部ツールで作成されたモデル等、まだ識別子が付与されていない場合等において、モデル要素やビューモデル要素に対して、新たに生成した識別子を付与する。
【００５０】
本実施例では、上記識別子を、モデルやビューモデルの構成要素に対して直接属性として付加しておき、モデル識別子抽出手段７によってその属性を取得して返すことにより、所要の動作を実現することが可能である。また、モデルやビューモデルの形式がなんらかの標準化に基づいているため、直接識別子の情報を付加できない場合には、ビュー等でモデルを直接操作するのではなく、識別子とモデル要素への参照を持ち、モデルへの操作要求を受けて代理でモデル要素への操作を行うようなWrapperもしくはAdapterといわれる機構を導入し、モデル要素の格納と別にこれらの情報を格納するような構成にすることが可能である。
【００５１】
続いて、ステップＡ３の動作について詳細に説明する。
図４のステップＣ７及びステップＣ１０の処理が行われた後、ビュー２は、ビューモデル更新情報に基づいて、表示用の図形イメージに変換する。例えば、ビューモデルが線や図形の位置情報から構成されている場合は、指定された座標に線を引くなどの画面への描画処理を行い、ユーザが認識できる図形イメージにする。
【００５２】
以上のことから、本実施例によれば、モデル要素の順番、モデルにおける配置、モデル要素の名前等の属性などの変更によりモデルの構造が大きく変化した場合でも、効率的にビューモデルとモデル間の同期を取ることができることにある。その理由は、モデル要素とビューモデル要素との対応を、ツリー構造上の枝分かれ位置や要素の名前等、変更が発生するものではなく、別途用意する識別子により判断するためである。
【実施例２】
【００５３】
本発明の実施例２の構成について図６を参照して詳細に説明する。
図６を参照すると、本発明の実施例２であるモデル編集システムは、実施例１の構成（図１参照）に加えて、現在表示されているビューから選択されているビューモデル要素の情報を取得し、その情報を元に切り替え先のビュー候補を判定するビュー切り替え先判定手段４と、ビュー切り替え先判定手段４による判定結果に基づいて、ビュー切り替えのためのメニューを生成し、生成したメニューを、現在表示されているビューに表示するビュー切り替えメニュー表示手段５と、ビュー切り替えメニュー表示手段５で表示したメニューにおける選択結果に応じて、所定のビュー種別・選択されたモデル要素に対応した、ビュー切り替えを行うビュー切り替え実施手段６と、から構成される。なお、図６に示すエディタ１及びエディタ２は、上記実施例１の動作に加え、プログラム制御により、以下に説明する動作を実行する。
【００５４】
図７のフローチャートを参照して、本発明の実施例２の動作（モデル編集方法・モデル編集プログラム）について詳細に説明する。
まず、ビュー切り替え先判定手段４がビュー切り替え先候補を決定する（ステップＤ１）。次に、ビュー切り替えメニュー表示手段５が該当するメニューを生成・表示する（ステップＤ２）。最後に、ビュー切り替え実施手段６が、選択されたメニューに応じてビュー切り替えを実施する（ステップＤ３）。
【００５５】
続いて、図８のフローチャートを参照して、ステップＤ１の動作について詳細に説明する。
まず、現在のビューから選択されたビューモデル要素を特定する（ステップＥ１）。次に、モデル要素識別子抽出手段１により、特定したビューモデル要素の識別子を抽出する（ステップＥ２）。次に、各ビューのビューモデルに対して、抽出した識別子に対応する要素を保持しているかを調べる（ステップＥ３）。最後に、見つかったビューに関してそのビューの種別を記録する（ステップＥ４）。
【００５６】
続いて、図９のフローチャートを参照して、ステップＤ３の動作について詳細に説明する。
まず、選択されたメニューを特定する（ステップＦ１）。次に、メニューからビュー種別とモデル要素識別子とを特定する（ステップＦ２）。次に、モデル要素識別子に対応するビューモデル要素を特定する（ステップＦ３）。次に、該当ビューモデル要素を選択状態にする（ステップＦ４）。最後に、ビュー種別に対応するビューに切り替える（ステップＦ５）。
【００５７】
以上のことから、本発明の実施例２によれば、実施例１と同様に、モデルやビューモデルの構成要素に対して、モデル要素識別子抽出手段によりモデル要素識別子が抽出可能なように構成されているため、この抽出情報を元に、現在表示されているビューにおいて選択されたビューモデル要素に対応づくビューモデル要素が他のビューに存在するかを容易に判定でき、自動的にビューの切り替え先候補を判定し、メニューとして表示させることができ、ビュー切り替えのロジックをエディタ個別に記述する必要がなく、システム開発コストを低減することができる。
【００５８】
以上、本発明の実施例１及び２について説明したが、上記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。
【産業上の利用可能性】
【００５９】
本発明は、UML等のダイアグラムを利用してシステムを開発するソフト開発支援ツールといった用途に適用できる。また、既存のシステムを解析してUML等のダイアグラムで可視化するシステム解析支援ツールといった用途にも適用可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施例１に係る構成を示すブロック図である。
【図２】本発明の実施例１に係る動作を示すフローチャートである。
【図３】本発明の実施例１に係る動作を示すフローチャートである。
【図４】本発明の実施例１に係る動作を示すフローチャートである。
【図５】本発明の実施例１に係るビューモデル更新情報の例を示す図である。
【図６】本発明の実施例２に係る構成を示すブロック図である。
【図７】本発明の実施例２に係る動作を示すフローチャートである。
【図８】本発明の実施例２に係る動作を示すフローチャートである。
【図９】本発明の実施例２に係る動作を示すフローチャートである。
【図１０】従来技術の構成を示すブロック図である。
【符号の説明】
【００６１】
１    モデル要素識別子抽出手段
２    モデル格納手段
３    モデル更新情報格納手段
４    ビュー切り替え先判定手段
５    ビュー切り替えメニュー表示手段
６    ビュー切り替え実施手段
７    モデル要素識別子付与手段
１０    アプリケーションＡ実行部
２０    モデル変換器
３０    アプリケーションＢ実行部
３１    差分抽出部
３２    イベント生成部
１００    エディタ１
１０１    ビュー１
１０２    ビューモデル格納手段１
１０３    ビューモデル更新情報格納手段１
１０４    モデル更新手段１
１０５    ビューモデル更新手段１
２００    エディタ２
２０１    ビュー２
２０２    ビューモデル格納手段２
２０３    ビューモデル更新情報格納手段２
２０４    モデル更新手段２
２０５    ビューモデル更新手段２
【図１】
2006268764.tif 000003
【図２】
2006268764.tif 000004
【図３】
2006268764.tif 000005
【図４】
2006268764.tif 000006
【図５】
2006268764.tif 000007
【図６】
2006268764.tif 000008
【図７】
2006268764.tif 000009
【図８】
2006268764.tif 000010
【図９】
2006268764.tif 000011
【図１０】
2006268764.tif 000012