(57)【要約】  入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定する重複参照クラス判定手段と、判定の結果抽出された類似要素が共通に有する属性を当該類似要素群の共通クラス属性として抽出する共通クラス属性抽出手段と、抽出された類似要素それぞれに対応づけて、共通クラス属性を継承する派生クラスを生成する派生クラス生成手段と、生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とする属性値決定手段と、抽出された類似要素の参照クラスを具体的な属性値が設定された派生クラスに置き換える参照クラス置換手段とを備える。
2012077302.tif 000002
【特許請求の範囲】
【請求項１】
モデリング言語によるモデリングを支援するためのモデル編集支援装置であって、
入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定する重複参照クラス判定手段と、
前記重複参照クラス判定手段による判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出する共通クラス属性抽出手段と、
前記類似要素それぞれに対応づけて、前記共通クラス属性抽出手段によって抽出された共通クラス属性を継承する派生クラスを生成する派生クラス生成手段と、
前記派生クラス生成手段によって生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とする属性値決定手段と、
前記類似要素の参照クラスを、前記属性値決定手段によって具体的な属性値が設定されえた派生クラスに置き換える参照クラス置換手段とを備える
ことを特徴とするモデル編集支援装置。
【請求項２】
共通クラス属性抽出手段は、共通クラス属性として、類似要素が参照するクラスが共通に有する要素の型と、該要素の属性に関する情報を抽出する
請求項１に記載のモデル編集支援装置。
【請求項３】
参照クラス置換手段によって参照クラスが置換された要素を含むモデルの表示方法を、該モデルの構造とは異なる内容を表す表記に変換するモデル表示方法変換手段を備える
請求項１または請求項２に記載のモデル編集支援装置。
【請求項４】
共通クラス属性抽出手段によって抽出された一モデルにおける共通クラス属性を格納する共通クラス属性格納手段を備え、
モデル表示方法変換手段は、該共通クラス属性を基に、参照クラスが置換されたモデルの表示方法を変換する
請求項３に記載のモデル編集支援装置。
【請求項５】
モデリング言語によるモデリングを支援するためのモデル編集支援装置であって、
あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を検索する既定義属性検索手段と、
前記モデル記述において前記要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成するサブクラス生成手段と、
前記記述された要素に対して、前記サブクラス生成手段によって生成されたサブクラスを参照するモデル要素を生成するモデル要素生成手段とを備える
ことを特徴とするモデル編集支援装置。
【請求項６】
サブクラス生成手段は、変更された既定義属性の値を、生成したサブクラスの属性として設定する
請求項５に記載のモデル編集支援装置。
【請求項７】
モデリング言語によるモデリングを支援するためのモデル編集支援方法であって、
入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定し、
判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出し、
抽出された類似要素それぞれに対応づけて、抽出された共通クラス属性を継承する派生クラスを生成し、
生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とし、
抽出された各類似要素の参照クラスを、具体的な属性値が設定された前記派生クラスに置き換える
ことを特徴とするモデル編集支援方法。
【請求項８】
モデリング言語によるモデリングを支援するためのモデル編集支援方法であって、
あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を検索し、
前記モデル記述において前記要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成し、
前記記述された要素に対して、生成されたサブクラスを参照するモデル要素を生成する
ことを特徴とするモデル編集支援方法。
【請求項９】
モデリング言語によるモデリングを支援するためのモデル編集支援プログラムであって、
コンピュータに、
入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定する重複参照クラス判定処理、
判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出する共通クラス属性抽出処理、
前記類似要素それぞれに対応づけて、前記共通クラス属性抽出処理で抽出された共通クラス属性を継承する派生クラスを生成する派生クラス生成処理、
前記派生クラス生成処理で生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とする属性値決定処理、および
前記類似要素の参照クラスを、前記属性値決定処理で具体的な属性値が設定された派生クラスに置き換える参照クラス置換処理
を実行させるためのモデル編集支援プログラム。
【請求項１０】
モデリング言語によるモデリングを支援するためのモデル編集支援プログラムであって、
コンピュータに、
あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を検索する既定義属性検索処理、
前記モデル記述において前記要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成するサブクラス生成処理、および
前記記述された要素に対して、前記サブクラス生成処理で生成されたサブクラスを参照するモデル要素を生成するモデル要素生成処理
を実行させるためのモデル編集支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＭＬ２といったモデリング言語を用いたモデリングにおけるモデルの編集を支援するモデル編集支援装置、モデル編集支援方法およびモデル編集支援プログラムに関する。
【背景技術】
【０００２】
近年、システム設計や開発などを効率的に行うため、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）（登録商標）やＳｙｓＭＬ（Ｓｙｓｔｅｍ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）を簡単に記述するためのモデルエディタ（モデリングツール）が数多く普及している。なお、ＳｙｓＭＬは、ＵＭＬ２．０プロファイルとして定義されたシステム工学用のドメイン固有モデリング言語である。この他にも、ＵＭＬの仕様の上に「プロファイル」という形で、さまざまなドメイン（対象領域）に特有な拡張記法がつくられている。【０００３】
しかし、ＵＭＬ２のメタモデルに則った拡張記法によるモデリングを行う際、その記述範囲を拡張または限定すると、不都合が生じることがある。例えばＳｙｓＭＬでは、入れ子構造を持つプロパティが記述された場合、図の表記という点で、モデルの構造を的確に表しているとは言い難い。そのため、モデルエディタといった各種ツールを用いてモデルを記述する際、意図した通りの操作ができなかったり、本来記述しようとしている構造とは異なる誤ったモデルを記述してしまうことがあった。【０００４】
例えば、ＵＭＬ２では、クラスやコンポーネントなどの細部構造やそこで使用されるコラボレーションを表現するコンポジット構造図が規定されている。コンポジット構造図では、内部構造と外部の境界を「ポート」によって明確に表現したり、内部の構成要素を「パート」によって表現する。また、パートとポート間およびパート間の関係を「コネクタ」によって表現する。ここで、ある内部ブロック図において、あるパートプロパティ（内部要素を示すプロパティ。以下、パーツという。）“ａ”の内部に、別のパーツ“ｂ”やバリュープロパティ（値を示すプロパティ。以下、バリューという。）“ｃ”を記述した場合、図の上では、パーツｂやバリューｃはパーツａの子であるように見える。しかし、そのような記述をした場合、モデルの構造上は、パーツｂやバリューｃは、パーツａが参照している型のクラスＡの子になる。すなわち、別の図にクラスＡを参照する別のパーツａ´を記述した場合、そのパーツの属性であるパーツｂやバリューｃが自動的に付与されるが、内部ブロック図を見ただけではそのようなＳｙｓＭＬのモデルの構造がわかりづらい。【０００５】
そのため、別の図ではクラスＡを参照する別のパーツａ´の内部に、別のパーツｄや異なる値を持つバリューｃ´が含まれるという不正な図が記述されてしまうことがある。【０００６】
モデリングツールによっては上記のような不正な構造を持つような図を書くことができないように制限されていることもあるが、モデル作成者がＳｙｓＭＬのモデル構造に詳しくない場合には混乱を招くことも多い。【０００７】
非特許文献１には、このような共通のクラスを参照する複数のパーツに対して異なる属性を記述する方法の一例が示されている。非特許文献１に記載された方法では、共通のクラスを参照する複数のパーツに対して異なる属性を記述するためには、該パーツのイニシャル値として、具体的な属性の値を記述した、該共通クラスのインスタンスを設定する必要がある。【０００８】
例えば、共通の性質（属性）、すなわち共通の型を持つ複数の部品をパーツとして記述する場合、各パーツの具体的な属性の値は部品ごとに異なる。そのため、型となるクラスには属性の種類のみを記述しておき、該クラスのインスタンスに対して、具体的な属性の値を設定する。そして、該インスタンスをパーツのイニシャル値として設定することによって、各パーツに異なる属性値を設定することが可能になる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Sanford Friedenthal，Alan Moore，Rick Steiner，"A Practical Guide to SysML:The Systems Modeling Language"，TheMK/OMG Press，（米国），２００８年８月７日，ｐ．１３４−１４４
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、同じクラスを参照するパーツを記述するたびに上記のような操作を行うことは手間がかかる上に、ＳｙｓＭＬに詳しくないモデル作成者に上記のような複雑な操作をさせることは難しい。【００１１】
また、ＳｙｓＭＬの図からはモデルの構造がわかりづらく、モデル作成者が意図した図の表記とモデルの実際の構造が一致しないために、不正なモデルが記述されてしまうという問題は解決されてない。【００１２】
そこで、本発明は、モデル作成者の負担を抑えつつ、ＳｙｓＭＬ等のモデリング言語に詳しくないモデル作成者でも、正しい構造を持つモデルを構築することができるモデル編集支援装置、モデル編集支援方法およびモデル編集支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によるモデル編集支援装置は、モデリング言語によるモデリングを支援するためのモデル編集支援装置であって、入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定する重複参照クラス判定手段と、重複参照クラス判定手段による判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出する共通クラス属性抽出手段と、抽出された類似要素それぞれに対応づけて、共通クラス属性抽出手段によって抽出された共通クラス属性を継承する派生クラスを生成する派生クラス生成手段と、派生クラス生成手段によって生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とする属性値決定手段と、抽出された各類似要素の参照クラスを、属性値決定手段によって具体的な属性値が設定された派生クラスに置き換える参照クラス置換手段とを備えることを特徴とする。【００１４】
また、本発明によるモデル編集支援装置は、あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を検索する既定義属性検索手段と、モデル記述においてあるクラスを参照する要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成するサブクラス生成手段と、記述された要素に対して、サブクラス生成手段によって生成されたサブクラスを参照するモデル要素を生成するモデル要素生成手段とを備えることを特徴としてもよい。【００１５】
本発明によるモデル編集支援方法は、モデリング言語によるモデリングを支援するためのモデル編集支援方法であって、入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定し、判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出し、抽出された類似要素それぞれに対応づけて、抽出された共通クラス属性を継承する派生クラスを生成し、生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とし、抽出された各類似要素の参照クラスを、具体的な属性値が設定された派生クラスに置き換えることを特徴とする。【００１６】
また、本発明によるモデル編集支援方法は、あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を検索し、モデル記述においてあるクラスを参照する要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成し、記述された要素に対して、生成されたサブクラスを参照するモデル要素を生成することを特徴としてもよい。【００１７】
本発明によるモデル編集支援プログラムは、モデリング言語によるモデリングを支援するためのモデル編集支援プログラムであって、コンピュータに、入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定する重複参照クラス判定処理、判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出する共通クラス属性抽出処理、抽出された類似要素それぞれに対応づけて、共通クラス属性抽出処理で抽出された共通クラス属性を継承する派生クラスを生成する派生クラス生成処理、派生クラス生成処理で生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とする属性値決定処理、および抽出された各類似要素の参照クラスを属性値決定処理で具体的な属性値が設定された派生クラスに置き換える参照クラス置換処理を実行させることを特徴とする。【００１８】
また、本発明によるモデル編集支援プログラムは、コンピュータに、あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を検索する既定義属性検索処理、モデル記述においてあるクラスを参照する要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成するサブクラス生成処理、および記述された要素に対して、サブクラス生成処理で生成されたサブクラスを参照するモデル要素を生成するモデル要素生成処理を実行させることを特徴としてもよい。
【発明の効果】
【００１９】
本発明によれば、モデル作成者の負担を抑えつつ、ＳｙｓＭＬ等のモデリング言語に詳しくないモデル作成者でも、正しい構造を持つモデルを構築することができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施形態のモデル編集支援装置の構成例を示すブロック図である。
【図２】モデル編集支援装置において記述されるモデルの例を示す説明図である。
【図３】モデルから抽出される共通クラス属性の例を示す説明図である。
【図４】第１の実施形態のモデル編集支援装置の動作の一例を示すフローチャートである。
【図５】参照クラス置換手段１０５による処理後のモデルの一例を示す説明図である。
【図６】生成した派生クラスと親クラスとの対応付けを表示する例としてのクラス階層図である。
【図７】第２の実施形態のモデル編集支援装置の構成例を示すブロック図である。
【図８】モデル表示方法変換手段２０２による処理後のモデル表示の一例を示す説明図である。
【図９】あるインタフェース名について生成した派生クラスと親クラスとの対応付けを表示する例としてのクラス階層図である。
【図１０】第３の実施形態のモデル編集支援装置の構成例を示すブロック図である。
【図１１】ユーザによるモデル編集操作の例および編集後のモデル例を示す説明図である。
【図１２】第３の実施形態の他の例におけるモデル表示方法変換手段による処理後のモデル表示の一例を示す説明図である。
【図１３】あるインタフェース名について生成したサブクラスと親クラスおよび既定義クラスとの対応付けを表示する例としてのクラス階層図である。
【図１４】本発明の概要を示すブロック図である。
【図１５】本発明によるモデル編集支援装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【００２１】
実施形態１．
以下、本発明の実施形態について図面を参照して説明する。図１は、第１の実施形態のモデル編集支援装置の構成例を示すブロック図である。
【００２２】
図１に示すモデル編集装置は、モデル編集画面１２０と、重複参照クラス判定手段１０１と、共通クラス属性抽出手段１０２と、派生クラス生成手段１０３と、属性値決定手段１０４と、参照クラス置換手段１０５とを備える。
【００２３】
モデル編集画面１２０は、モデルを編集するためのインタフェースをユーザに提供するものである。モデル編集画面１２０は、例えば、ディスプレイ等の表示装置に、一般的なモデリングツールによるＳｙｓＭＬ等のモデルエディタを表示させることで実現される。なお、モデル編集支援装置の構成要素としてのモデル編集画面１２０は、表示装置に表示させる画面の情報と当該画面を制御するための制御部とを含む。以下、動作主体として”モデル編集画面１２０”という表現を用いた場合には、表示装置に表示させたモデル編集画面を制御する制御プログラムまたはそれに従って動作するＣＰＵ等の情報処理装置を指すものとする。
【００２４】
ここで、モデルとは、より具体的には、ＳｙｓＭＬ等のモデリング言語によって記述されたシステム等の設計図である。図２は、当該モデル編集支援装置において記述されるモデルの一例を示す説明図である。図２に示す例では、”ｐｃ１”と”ｐｃ２”という２つのモデル要素（クラスやコンポーネント等）をパーツとして含むシステム・モデルが示されている。また、図２に示すモデルでは、”ｐｃ１”と”ｐｃ２”とは、いずれも”ＰＣ”クラスを参照しているが、内部に含まれているパーツ”ｃｐｕ”の多重度が異なっている。
【００２５】
重複参照クラス判定手段１０１は、モデル編集画面１２０によって編集されたモデルから、類似要素の有無を判定し、抽出する処理を行う。具体的には、重複参照クラス判定手段１０１は、同じクラスを参照するパーツの内部に含まれるパーツやバリューについてその種類や属性値が異なる場合に、その両パーツを類似要素と判定し、その両パーツが共通して参照しているクラスを重複参照クラスとして抽出する。なお、同じクラスを参照し、内部に含まれるパーツおよびバリューの種類または属性値が異なるパーツが２以上ある場合には、重複参照クラス判定手段１０１は、それら２以上のパーツを当該重複参照クラスにおける類似要素として抽出すればよい。
【００２６】
すなわち、当該手段により、同じクラスを参照しているにも関わらず、内部に含まれる要素やその属性が異なっている、不正な構造を持つ要素群（類似要素）の有無を判定することができる。例えば、図２に示すモデルに記述されている“ｐｃ１”と“ｐｃ２”は、同じ“ＰＣ”クラスを参照しているが、内部に含まれているパーツ“ｃｐｕ”の多重度が異なっているため、類似要素と判定され、それらの参照クラスである“ＰＣ”クラスが、重複参照クラスとして抽出される。
【００２７】
共通クラス属性抽出手段１０２は、重複参照クラス判定手段１０１によって抽出された重複参照クラスから、該重複参照クラスが共通して有する属性に関する情報（プロパティ等）を、共通クラス属性として抽出する。具体的には、共通クラス属性抽出手段１０２は、類似要素の内部に記述されている要素（パーツまたはバリュー）の中から、共通の型を持つもの（以降、内部要素と表記する）を抽出し、該内部要素の具体的な属性値以外の情報を、当該重複参照クラスの共通クラス属性とする。すなわち、共通クラス属性とは、類似要素が共通に有するパーツやバリューがどのような型と属性を持つかを表す情報である。
【００２８】
例えば、図２に示すモデルでは、類似要素“ｐｃ１”と“ｐｃ２”とに共通して含まれているパーツ“ｃｐｕ”の型は“ＣＰＵ”であり、多重度という属性を持っていることから、該モデルより抽出される共通クラス属性として、“ＰＣ”クラスには、“ＣＰＵ”型で多重度という属性を持つパーツが含まれることが記述される。このようにして抽出された共通クラス属性の例が図３に示されている。
【００２９】
図３に示す例では、「ａｔｔｒｉｂｕｌｔｅ  ｔｙｐｅ＝」で属性の型が規定されている。また、その下位に規定した「ｍｕｌｔｉｐｌｉｃｉｔｙ」は、その属性が多数であること、すなわち多重度という属性を持っていることを示している。
【００３０】
派生クラス生成手段１０３は、共通クラス属性抽出手段１０２によって抽出された共通クラス属性を継承する派生クラスを類似要素の個数分、生成する処理を行う。ここでは、派生クラス生成手段１０３は、共通クラス属性として抽出された類似要素の内部要素の型と属性を表す情報を持つ派生クラスを類似要素の個数分生成する。例えば、派生クラス生成手段１０３は、図２に示すモデルからは、図３に示される共通クラス属性を継承する派生クラス“ＰＣ１”を類似要素“ｐｃ１”に対して生成し、同じく図３に示される共通クラス属性を継承する派生クラス”ＰＣ２”を類似要素“ｐｃ２”に対して生成する。
【００３１】
属性値決定手段１０４は、派生クラス生成手段１０３によって生成された派生クラスの内部要素の具体的な属性値を決定する処理を行う。具体的には、属性値決定手段１０４は、生成された派生クラスの内部要素の具体的な属性値として、該派生クラスに対応づけられた類似要素において設定されている属性値を代入する処理を行う。当該処理を行うことにより、生成された各派生クラスは、共通クラス属性に加えて、個々の類似要素に応じて内部要素の具体的な属性値を表す情報を有することになる。
【００３２】
例えば、属性値決定手段１０４は、類似要素“ｐｃ１”に対して生成された派生クラス”ＰＣ１”の“ＣＰＵ”型の内部要素に対しては、その類似要素“ｐｃ１”の内部に記述されている“ｃｐｕ”パーツの多重度“４”を代入する。同様に、属性値決定手段１０４は、類似要素“ｐｃ２”に対して生成された派生クラス”ＰＣ２”の“ＣＰＵ”型の内部要素に対しては、その類似要素“ｐｃ２”の内部に記述されている“ｃｐｕ”パーツの多重度“２”を代入する。
【００３３】
参照クラス置換手段１０５は、属性値決定手段１０４によって内部要素の具体的な属性値が決定された派生クラスを、各類似要素が参照するクラスとして置き換える処理を行う。具体的には、参照クラス置換手段１０５は、各類似要素が参照するクラスを、それぞれ属性値決定手段１０４によって内部要素の具体的な属性値が決定された派生クラスに置き換える。
【００３４】
本実施形態において、モデル編集画面１２０（画面制御手段を含む）は、表示装置とプログラムに従って動作するＣＰＵ等の情報処理装置によって実現される。また、重複参照クラス判定手段１０１、共通クラス属性抽出手段１０２、派生クラス生成手段１０３、属性値決定手段１０４、参照クラス置換手段１０５は、それぞれプログラムに従って動作するＣＰＵ等の情報処理装置によって実現される。なお、情報処理装置は機能毎に分担する場合などは複数であってもよい。
【００３５】
次に、本実施形態のモデル編集支援装置の動作について、図４のフローチャートを参照して説明する。図４は、本実施形態のモデル編集支援装置の動作の一例を示すフローチャートである。
【００３６】
図４に示す例では、まず、重複クラス判定手段１０１が、モデル編集画面１２０によってモデルが編集されたことを受けて、編集されたモデルから重複参照クラスが存在するかどうかを判定する（ステップＳ１０１）。重複参照クラスが存在すると判定された場合には、共通クラス属性抽出手段１０２が、抽出された重複参照クラスを参照している類似要素において共通に定義されている属性に関する情報を、共通クラス属性として抽出する（ステップＳ１０２）。次に、派生クラス生成手段１０３が、共通クラス属性抽出手段１０２によって抽出された共通クラス属性を継承する派生クラスを、重複参照クラスを参照している類似要素の数分、生成する（ステップＳ１０３）。次いで、属性値決定手段１０４が、派生クラス生成手段１０３によって生成された各派生クラスの具体的な属性値として、派生クラスが有する共通クラス属性の抽出元となった重複参照クラスを参照している各々の要素に対して定義された値を代入する（ステップＳ１０４）。そして、参照クラス置換手段１０５が、該重複参照クラスを参照している各々の要素の参照クラスを、ステップＳ１０４において各要素に定義された値が代入された派生クラスに置き換える（ステップＳ１０５）。
【００３７】
図５は、参照クラス置換手段１０５による処理後のモデルの一例を示す説明図である。なお、図５は、図２に示されるモデルに対して参照クラス置換手段１０５が参照クラスの置換処理を行った場合の例を示している。図５に示すように、図２に示されるモデルでは、“ｐｃ１”の参照クラスを多重度に４が代入された派生クラス”ＰＣ１”に、“ｐｃ２”の参照クラスを多重度に２が代入された派生クラス”ＰＣ２”に、それぞれ置き換えられている。
【００３８】
以上のように、本実施形態では、モデル編集支援装置は、ＳｙｓＭＬを用いたモデリングにおいて、入れ子構造を持つパーツを記述する場合に、図の表記とモデルの構造が乖離していることにより発生すると考えられるモデルの不整合点を抽出し、モデル作成者が意図したような構造を持つようにモデルの構造を自動的に修正する処理を行う。このため、モデル編集支援装置は、モデル作成者に負担をかけることなく、正しい構造を持つモデルを構築することができる。
【００３９】
また、モデル編集支援装置は、派生クラスを生成し、参照クラスをその派生クラスに置き換える操作を装置が自動的に行うことで、継承元となる親クラスを判別できるので、派生クラスがどの親クラスから生成されたのかを対象表などに記したり、図６に示すようなクラスの階層図を表示する等して自動生成した派生クラスと親クラス（すなわち、元になった重複参照クラス）との対応づけを表示することができる。そのため、モデル編集支援装置は、モデル作成者（特に、非熟練モデラ）に混乱を与えることなく、ユーザ自身が記述したものに近い構造（ユーザの意図に沿った構造）を表示することもできる。
【００４０】
実施形態２．
次に、本発明の第２の実施形態について説明する。図７は、第２の実施形態のモデル編集支援装置の構成例を示すブロック図である。図７に示すモデル編集支援装置は、図１に示した第１の実施形態に比べて、さらに共通クラス属性格納手段２０１と、モデル表示方法変換手段２０２とを備える点、およびモデル編集画面１２０に代わり、モデル編集・表示画面２２０を備える点が異なる。なお、本実施形態では、第１の実施形態における重複参照クラス判定手段１０１、共通クラス属性抽出手段１０２、派生クラス生成手段１０３、属性値決定手段１０４、参照クラス置換手段１０５と同様の動作を行う手段をモデル編集手段１００として示している。
【００４１】
モデル編集・表示画面２０１は、モデルを編集し、また編集したモデルを確認するためのインタフェースをユーザに提供するものである。なお、モデル編集支援装置の構成要素としてのモデル編集・表示画面２０１は、表示装置に表示させる画面の情報と当該画面を制御するための制御部とを含む。以下、動作主体として”モデル編集・表示画面２０１”という表現を用いた場合には、表示装置に表示させたモデル編集・表示画面を制御する制御プログラムまたはそれに従って動作するＣＰＵ等の情報処理装置を指すものとする。
【００４２】
共通クラス属性格納手段２０１は、磁気ディスク、光ディスクなどの記録媒体であって、モデル編集手段１００の共通クラス属性抽出手段１０２によって抽出された共通クラス属性をメタデータとして格納する。共通クラス属性格納手段２０１は、例えば、モデル中から抽出された重複参照クラスの名前と対応づけて、該重複参照クラスから抽出した共通クラス属性、すなわち該重複参照クラスを参照しているパーツ（類似要素）に共通して定義されている属性や、各類似要素の情報、それらに対して割り当てた派生クラスの情報を、本発明における共通クラスの情報として格納する。以下、共通クラス属性格納手段２０１に格納された共通クラスとしての重複参照クラスの名前を共通クラス名と呼ぶ。
【００４３】
モデル表示方法変換手段２０２は、モデル編集手段の１００の参照クラス置換手段１０５によって、参照クラスが共通クラス属性の派生クラスに置き換えられた類似要素を、モデル編集・表示画面２２０に表示する際に、該類似要素の参照クラス名として、置換後の派生クラス名ではなく、共通クラス属性格納手段２０１に格納されている、当該派生クラスの継承元となった共通クラス名を表示する処理を行う。すなわち、モデル表示方法変換手段２０２は、複数の類似要素の参照クラスが、ある１つの共通クラスを継承していることを陽に示すように、表示される類似要素の参照クラス名を変換する。なお、共通クラス属性格納手段２０１に共通クラス属性の情報しか格納されていない場合には、モデル表示方法変換手段２０２は、格納されている共通クラス属性を基に、モデルから当該共通クラス属性を有する要素を検出し、その参照クラスが参照クラス置換手段１０５によって置き換えられた派生クラスであるとして、その継承元のクラスを共通クラスとして検出してもよい。
【００４４】
図８は、モデル表示方法変換手段２０２による参照クラス名の変換後のモデル表示の一例を示す説明図である。図８に示すように、モデル表示方法変換手段２０２は、例えば、“ｐｃ１”，“ｐｃ２”の参照クラスとして、実際のモデル上の参照クラス（すなわち、参照クラス置換手段１０５によって置き換えられた派生クラス）ではなく、共通クラス属性格納手段２０１に格納されている、当該派生クラスの継承元である“ＰＣ”という共通クラス名を表示する。
【００４５】
なお、モデル表示方法変換手段２０２による参照クラス名の変更処理についてだけでいえば、モデルの内部の情報（どんなクラスを参照しているか等）がなくても、それがどの共通クラスと紐付いているかがわかればよい。例えば、モデル編集手段１００を他の装置によって実施し、その結果の情報（修正モデルと共通クラスの情報）を入力してモデル表示方法の変換を行うといった実施形態も可能である。そのような場合には、モデル編集手段１００は省略可能である。なお、共通クラス属性格納手段２０１には、参照クラス置換手段１０５によって置き換えられた派生クラスとその元となった共通クラスとを対応づけた情報が格納されていればよい。また、例えば、重複参照クラス判定手段１０１と、共通クラス属性抽出手段１０２とを備え、入力された修正モデルの情報から、本発明における共通クラスとその派生クラスとの対応を検出して、表示方法を変更するといった態様も可能である。
【００４６】
本実施形態では、モデル編集支援装置は、抽出された共通クラス属性をメタデータとして格納しておき、類似要素の参照クラスとしては、構造が修正された後のモデルではなく、インタフェース名を表示する処理を行う。そして、該処理により表示方法が変更されたモデルが、モデル編集画面を通して表示される。これにより、モデル作成者はモデルの構造が変更されたことを意識する必要がなく、更にモデル作成者の直感と一致する図を表示することができるため、非熟練モデラの混乱を防ぐことができる。
【００４７】
なお、モデル編集支援装置は、図８に示したように、実際の参照クラスではなくインタフェース名を表示していることを、変換した共通クラス名に下線を入れたり、色分けをしたり、注釈記号を入れる等の若干の違いをもって表示してもよい。そのような場合には、モデル編集支援装置は、図の表記とモデルの構造とが異なることによって熟練モデラに混乱を与えることを防ぐことができる。また、モデル編集支援装置は、例えば、インタフェース名に置き換えられた参照クラスの表示に対して所定の操作（例えば、オンマウスやマウスクリック）が行われたことを受けて、図９に示すような当該派生クラスを中心とするクラスの階層図を表示してもよい。なお、図９は、”ｐｃ１”パーツの参照クラスとして表示したインタフェース名”ＰＣ”に対して所定の操作が行われた場合に表示するクラスの階層図の例を示している。なお、モデル編集支援装置がクラスの階層図を表示することによって、モデル作成者は、派生クラスと親クラスの対応関係だけでなく、他の類似要素に割り当てられた派生クラスの存在（すなわち、一部異なる属性を有するパーツの存在）も簡単に把握することができる。
【００４８】
実施形態３．
次に、本発明の第２の実施形態について説明する。図１０は、第３の実施形態のモデル編集支援装置の構成例を示すブロック図である。図１０に示すモデル編集支援装置は、モデル編集画面３２０と、モデル格納手段３０１と、既定義属性検索手段３０２と、サブクラス生成手段３０３とを備える。
【００４９】
モデル編集画面３２０は、第１の実施形態のモデル編集画面１２０と同様でよい。なお、第１および第２の実施形態では、エディタ等のモデリングツール上でモデルに関する図を記述し、それをＵＭＬやＳｙｓＭＬなどの形式的な構造に変換する際に、図に記述されているモデルの情報から重複参照クラスを抽出し、それを共通クラスとしてそこから派生クラスを生成する場合を想定いていた。これに対して、本実施形態では、あらかじめモデルが存在している状態で、エディタ等のモデリングツールを用いて図の編集（新規作成や追加）を行う場合を想定している。
【００５０】
モデル格納手段３０１は、磁気ディスク、光ディスクなどの記録媒体であって、モデル編集画面３２０を用いて記述されたモデルを格納する。ここでいうモデルには、図に記述された各々の構成要素であるクラスやブロック等の階層構造や包含関係等も含む。
【００５１】
既定義属性検索手段３０２は、モデル格納手段３０１に格納されているクラスを参照するパーツなどのモデル要素が新たに記述された際、参照先のクラスに定義されている属性を検索し、抽出する処理を行う。以降、新たに記述されたモデル要素を新規モデル要素と呼ぶ。
【００５２】
図１１（ａ）は、ユーザによるモデル編集操作の例を示す説明図である。図１１（ａ）に示す例では、例えば”ｐｃ１”パーツが記述された場合、モデル格納手段３０１には、“ＰＣ”クラスに“ＣＰＵ”型で多重度が４のパーツが含まれる、という情報が格納されている。この状態で、同じ”ＰＣ”クラスを参照する新規モデル要素“ｐｃ２”パーツが記述された場合に、既定義属性検索手段３０２は、“ＰＣ”クラスに定義されている属性（ＣＰＵ型、多重度４）の情報を抽出する。
【００５３】
サブクラス生成手段３０３は、既定義属性検索手段３０２によって抽出された属性と、新規モデル要素の属性を比較し、それらが異なっていた場合には、モデル格納手段３０１に格納されているクラス（新規モデル要素の参照クラス）のサブクラスを生成し、該サブクラスの属性として、新規モデル要素に記述された属性を設定する。例えば、既定義属性検索手段３０２によれば、“ＰＣ”クラスには“ＣＰＵ”型で多重度が４のパーツが含まれるが、図１１（ａ）における新規モデル要素である“ｐｃ２”パーツの内部に記述されている“ＣＰＵ”型のパーツは多重度が２となっている。このため、サブクラス生成手段３０３は、“ＰＣ”クラスのサブクラス（本例では、”ＰＣ２”）を生成し、該サブクラスの属性として、多重度が２のＣＰＵ型のパーツを設定する。
【００５４】
図１１（ｂ）は、本実施形態によるモデル編集後のモデルの一例を示す説明図である。図１１（ｂ）に示すように、サブクラス生成手段３０３は、”ｐｃ２”パーツの記述として、生成したサブクラスを参照クラスとして、参照クラスの置換を行う。
【００５５】
なお、本実施形態では、既にモデル上に存在しているクラスの型が、他のクラスの型として参照された場合に、あらかじめ存在していたクラスから生成するクラスを「サブクラス」と呼んでいる。上記第１および第２の実施形態における「派生クラス」とは生成源となるクラスが異なるため、これらを区別するためである。なお、本実施形態では、サブクラスの基となるクラスはモデルにあらかじめ記述されている。
【００５６】
本実施形態では、モデル編集支援装置は、新規モデル要素に具体的な属性を設定する際に、誤ってモデル格納手段３０１の中で既に属性が定義されているクラスの属性を変更しようとした場合に、該クラスのサブクラスを生成し、該サブクラスに含まれる属性として当該新規モデル要素を設定する。これにより、モデル編集支援装置は、図の表記とモデルの構造が乖離していることによる非熟練モデラの理解不足を補い、意図した通りの操作（モデリング）を行うことが可能となる。
【００５７】
例えば、本実施形態によらなければ、図の上で”ｐｃ２”パーツのＣＰＵの多重度を変更することは、モデルの中で既に別の多重度が設定されているために不正な操作とみなされてできない。しかし、本実施形態では、モデル編集支援装置は、自動的にサブクラスを生成し、図に記述された値をサブクラスの属性として設定することで、ユーザインタフェース上は、ＣＰＵの多重度を変更できたように見せることが可能となる。
【００５８】
これにより、モデル作成者の直感と合う操作（モデリング）を行うことが可能となり、非熟練モデラであっても正しいモデルを構築することが可能となる。
【００５９】
なお、本実施形態においても、第２の実施形態のように、新規モデル要素の参照クラス名を実際のクラス名（システムが自動で作成したサブクラス名）でなくインタフェース名に変更して表示することも可能である。そのような場合には、さらに、モデル表示方法変換手段を備えればよい。また、サブクラス生成手段３０３によって生成されたサブクラスと該サブクラスを生成する元となった既定義クラスとを紐付けた情報を格納するサブクラス情報格納手段を備えていればよい。そのような場合、モデル表示方法変換手段は、例えば、サブクラス情報格納手段に格納されているサブクラスを参照クラスとするパーツについて、その参照クラス名をインタフェース名に変えて表示する。
【００６０】
インタフェース名として、例えば、操作時に設定された元々の参照クラス名を用いてもよい（図１２参照。）。また、新たに定義した名称を用いることも可能である。なお、そのような場合には、インタフェース名であることがわかるように、第２の実施形態と同様、若干の違いをもって表示することがより好ましい。なお、図１３は、”ｐｃ２”パーツの参照クラスとして表示したインタフェース名”ＰＣ”に対して所定の操作が行われた場合に表示するクラスの階層図の例を示している。なお、クラスの階層図を表示することによって、生成したサブクラスと親クラスの対応関係だけでなく、そのサブクラスを生成する元となった既定義クラスの存在（すなわち、一部異なる属性を有するパーツの存在）も簡単に把握することができる。
【００６１】
以上、本発明の実施形態を図面を参照して説明したが、本発明のモデル編集支援装置は、上記実施形態の構成にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも本発明の範囲に含まれる。
【００６２】
次に、本発明の概要について説明する。図１４は、本発明の概要を示すブロック図である。図１２に示すモデル編集装置は、重複参照クラス判定手段１１と、共通クラス属性抽出手段１２と、派生クラス生成手段１３と、属性値決定手段１４と、参照クラス置換手段１５とを備えている。
【００６３】
重複参照クラス判定手段１１（例えば、重複参照クラス判定手段１０１）は、入力されたモデル記述に、同一のクラスを参照し、かつ異なる属性または属性値をもつ要素である類似要素が存在するか否かを判定する。なお、モデル記述とは、モデリングツール上で表示される図等、作成目標とされるモデルに関する情報であって表記された状態の態様のものを指している。
【００６４】
共通クラス属性抽出手段１２（例えば、共通クラス属性抽出手段１０２）は、重複参照クラス判定手段１１による判定の結果抽出された類似要素が共通に有する属性を、当該類似要素群の共通クラス属性として抽出する。
【００６５】
派生クラス生成手段１３（例えば、派生クラス生成手段１０３）は、重複参照クラス判定手段１１による判定の結果抽出された類似要素それぞれに対応づけて、共通クラス属性抽出手段１２によって抽出された共通クラス属性を継承する派生クラスを生成する。
【００６６】
属性値決定手段１４（例えば、属性値決定手段１０４）は、派生クラス生成手段によって生成された各派生クラスの有する具体的な属性の値を、対応する類似要素の属性値として記述された値とする。
【００６７】
参照クラス置換手段１５（例えば、参照クラス置換手段１０５）は、重複参照クラス判定手段１１による判定の結果抽出された各類似要素の参照クラスを、属性値決定手段１４によって具体的な属性値が設定された派生クラスに置き換える。
【００６８】
共通クラス属性抽出手段１２は、例えば、共通クラス属性として、類似要素が参照するクラスが共通に有する要素の型と、該要素の属性に関する情報を抽出してもよい。
【００６９】
また、図示省略しているが、モデル編集支援装置は、参照クラス置換手段１５によって参照クラスが置換された要素を含むモデルの表示方法を、該モデルの構造とは異なる内容を表す表記に変換するモデル表示方法変換手段を備えていてもよい。
【００７０】
また、共通クラス属性抽出手段１２によって抽出された一モデルにおける共通クラス属性を格納する共通クラス属性抽出手段を備えていてもよい。そのような場合に、モデル表示方法変換手段は、該共通クラス属性を基に、参照クラスが置換されたモデルの表示方法を変換してもよい。
【００７１】
また、図１５は、本発明によるモデル編集支援装置の他の構成例を示すブロック図である。図１５に示すモデル編集支援装置は、既定義属性検索手段２１と、サブクラス生成手段２２と、モデル要素生成手段２３とを備えている。
【００７２】
既定義属性検索手段２１（例えば、既定義属性検索手段３０２）は、あるクラスを参照する要素が記述された際に、該参照クラスに対して既に定義されている属性である既定義属性を定義済みのモデル構造から検索して、抽出する。
【００７３】
サブクラス生成手段２２（例えば、サブクラス生成手段３０３）は、モデル記述においてあるクラスを参照する要素が有する属性のうち当該参照クラスの既定義属性の値が変更されると、該参照クラスのサブクラスを生成する。
【００７４】
モデル要素生成手段２３（例えば、サブクラス生成手段３０３）は、記述された要素に対して、サブクラス生成手段２２によって生成されたサブクラスを参照するモデル要素を生成する。
【００７５】
サブクラス生成手段２２は、例えば、変更された既定義属性の値を、生成したサブクラスの属性として設定してもよい。
【００７６】
以上のような構成を備えることによって、モデル編集支援装置は、特定のクラスが複数の要素から参照された場合に、該クラスの有する属性の種類、すなわち共通クラス属性となる情報を抽出し、該共通クラス属性を継承する派生クラスを各々の要素に対して自動的に生成することができる。そして、モデル編集支援装置は、それら派生クラスの属性値として、複数の要素に対して記述された属性の具体的な値を設定し、各々の要素の参照クラスを、該派生クラスに置き換えることができる。このため、モデル編集支援装置は、ＳｙｓＭＬ等のモデル構造として不正な図が記述された場合に、モデルの構造が自動的に変更されるため、モデル作成者に負担をかけることなく、また、非熟練モデラでも、正しいモデルを構築することが可能となる。
【００７７】
また、モデル編集支援装置は、抽出された共通クラス属性をメタデータとして格納し、要素の参照クラスとして、生成された派生クラス名ではなく該インタフェース名を表示することができる。このため、モデル編集支援装置は、モデルの構造が変更されたことをモデル作成者に意識させることなく、モデル作成者の直感と一致する図を表示することができるため、モデル作成者（特に、非熟練モデラ）の混乱を防ぐことができる。
【００７８】
また、モデル編集支援装置は、モデルに新規要素を追加し、具体的な属性を設定する際に、既に具体的な属性が定義済みであるクラスの属性を変更しようとした場合に、該クラスのサブクラスを生成し、当該新規要素を該サブクラスの属性とすることができる。このため、モデル編集支援装置は、モデル作成者の直感と合う操作（モデリング）を行うことが可能となり、また、非熟練モデラでも、正しいモデルを構築することが可能となる。
【００７９】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８０】
この出願は、２０１０年１２月９日に出願された日本特許出願２０１０−２７４６５５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００８１】
本発明は、モデリング言語を用いたモデリングを行う用途において、図からモデルを新規に作成する場合であっても、既に作成されているモデルを図上で編集する場合であってもいずれにも好適に適用可能である。
【符号の説明】
【００８２】
１００  モデル編集手段
１０１  重複参照クラス判定手段
１０２  共通クラス属性抽出手段
１０３  派生クラス生成手段
１０４  属性値決定手段
１０５  参照クラス置換手段
１２０  モデル編集画面
１３０  修正モデル
２２０  モデル編集・表示画面
２０１  共通クラス属性格納手段
２０２  モデル表示方法変換手段
３０１  モデル格納手段
３０２  既定義属性検索手段
３０３  サブクラス生成手段
１１  重複参照クラス判定手段
１２  共通クラス属性抽出手段
１３  派生クラス生成手段
１４  属性値決定手段
１５  参照クラス置換手段
２１  既定義属性検索手段
２２  サブクラス生成手段
２３  モデル要素生成手段
【図１】
2012077302.tif 000003
【図２】
2012077302.tif 000004
【図３】
2012077302.tif 000005
【図４】
2012077302.tif 000006
【図５】
2012077302.tif 000007
【図６】
2012077302.tif 000008
【図７】
2012077302.tif 000009
【図８】
2012077302.tif 000010
【図９】
2012077302.tif 000011
【図１０】
2012077302.tif 000012
【図１１】
2012077302.tif 000013
【図１２】
2012077302.tif 000014
【図１３】
2012077302.tif 000015
【図１４】
2012077302.tif 000016
【図１５】
2012077302.tif 000017
【国際調査報告】
2012077302.tif 000018
2012077302.tif 000019
2012077302.tif 000020