(57)【要約】【課題】  エディタを使用してモデルを編集する場合に、各々のエディタの設定を変更することなく統一された編集ルールによるモデル編集を実行することができるシステムを提供する。【解決手段】  作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデルの編集が可能なモデル編集システムにおいて、  表現形式の異なる複数の編集装置と、前記編集装置の各々は、前記モデル要素を表示するための表示情報を出力する表示部と、その表示されたモデル要素に関連付けられた情報を変更することで、前記モデルを編集する操作部とを有し、  前記モデルを編集する場合に使用される編集ルールと、前記モデルとを対応付けて格納する記憶部とを備える。そして前記操作部は、前記モデルに対応する前記編集ルールを読み込み、読み込んだ編集ルールに基づいて、表示されたモデルに対する編集動作を実行し、前記表示部は、実行された編集動作に基づいて前記表示情報を出力する。【選択図】        図１
2005251128.tif 000002
【特許請求の範囲】
【請求項１】
作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデルの編集が可能なモデル編集システムにおいて、
前記モデル要素を表示するための表示情報を出力する表示部と、その表示されたモデル要素に関連付けられた情報を変更することで、前記モデルを編集する操作部とを有する編集装置と、
前記モデルを編集する場合に使用される編集ルールと前記モデルとを対応付けて格納する記憶部と
を備え、
前記操作部は、前記モデルに対応する前記編集ルールを読み込み、読み込んだ編集ルールに基づいて、表示されたモデルに対する編集動作を実行し、
前記表示部は、実行された編集動作に基づいて前記表示情報を出力する
モデル編集システム。
【請求項２】
請求項１に記載のモデル編集システムにおいて、
前記操作部は、前記編集ルールを前記モデルの編集時に動的に読み取り、読み取った編集ルールに基づいて編集操作の可否を決定する
モデル編集システム。
【請求項３】
請求項２に記載のモデル編集システムにおいて、
前記操作部は、前記編集操作の可否を、前記モデル編集操作の実行前に決定する
モデル編集システム。
【請求項４】
請求項１から３の何れか1項に記載のモデル編集システムにおいて、
前記編集装置は、前記編集操作の可否に対応して、編集操作可否を表示するための編集操作可否情報を出力する操作進行表示部を備え、
前記操作部は、前記モデル要素の編集状況を前記操作進行表示部に通知し、
前記操作進行表示部は、前記通知と前記編集ルールとに基づいて前記編集操作可否情報を出力する
モデル編集システム。
【請求項５】
請求項４に記載のモデル編集システムにおいて、
前記操作進行表示部は、前記編集操作可否情報を前記モデル編集操作の実行前に表示する
モデル編集システム。
【請求項６】
請求項３から５の何れか1項に記載のモデル編集システムにおいて、さらに、
情報入力装置と、
情報表示装置と、
編集されたモデルの編集状況を示すモデル編集状況を記憶する操作状態記憶部とを備え、
前記操作部は、前記情報入力装置から入力された命令に応答して、前記モデル編集状況を抽出し、抽出した前記モデル編集状況と前記命令とに基づいて前記モデル要素の編集状況を前記操作進行表示部に通知し、
前記操作進行表示部は、前記通知と前記編集ルールとに基づいて前記編集操作可否情報を出力し、
前記表示装置は、入力された前記編集操作可否情報に基づいて、前記モデル要素に対する編集可否を表示する
モデル編集システム。
【請求項７】
作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデルの編集が可能なモデル編集プログラムにおいて、
編集用エディタプログラムのから、前記モデル要素を表示するための表示情報を出力するステップと、
その表示されたモデル要素に関連付けられた情報を変更することで、前記モデルを編集するステップと、
前記モデルに対応し、前記モデルを編集する場合に使用される編集ルールを読み込むステップと、
読み込んだ編集ルールに基づいて、前記モデルに対する編集を実行するステップと、
実行された編集動作に基づいて前記表示情報を出力するステップ
を具備する方法をコンピュータで実行可能なプログラム。
【請求項８】
請求項７に記載のモデル編集プログラムにおいて、
前記編集ルールを前記モデル要素の編集時に動的に読み取るステップと、
読み取った編集ルールに基づいて、前記モデル要素の編集操作の可否を決定するステップ
を具備する方法をコンピュータで実行可能なプログラム。
【請求項９】
請求項８に記載のモデル編集プログラムにおいて、
前記編集操作の可否を、前記モデル編集操作の実行前に決定するステップ
を具備する方法をコンピュータで実行可能なプログラム。
【請求項１０】
請求項７から９の何れか1項に記載のモデル編集プログラムにおいて、
決定した前記編集操作の可否に対応して、編集操作可否を表示するための編集操作可否情報を出力するステップと、
前記モデル要素の編集状況を通知するステップと、
通知された編集状況と前記編集ルールとに基づいて前記編集操作可否情報を出力するステップ
を具備する方法をコンピュータで実行可能なプログラム。
【請求項１１】
請求項１０に記載のモデル編集プログラムにおいて、
前記編集操作可否情報を前記モデル編集操作の実行前に表示するステップ
を具備する方法をコンピュータで実行可能なプログラム。
【請求項１２】
請求項７から１１の何れか１項に記載のモデル編集プログラムにおいて、
情報入力装置から入力された命令に応答して、編集されたモデルの編集状況を示すモデル編集状況を抽出するステップと、
抽出された前記モデル編集状況と前記命令とに基づいて前記モデル要素の編集状況を通知するステップと、
通知された変種状況と前記編集ルールとに基づいて前記編集操作可否情報を出力するステップと、
入力された前記編集操作可否情報に基づいて、前記モデル要素に対する編集可否を表示するステップ
を具備する方法をコンピュータで実行可能なプログラム。
【請求項１３】
作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデルの編集を実行するモデル編集方法において、
編集用エディタから、前記モデル要素を表示するための表示情報を出力するステップと、
その表示されたモデル要素に関連付けられた情報を変更することで、前記モデルを編集するステップと、
前記モデルに対応し、前記モデルを編集する場合に使用される編集ルールを読み込むステップと、
読み込んだ編集ルールに基づいて、前記モデルに対する編集を実行するステップと、
実行された編集動作に基づいて前記表示情報を出力するステップ
を具備するモデル編集方法。
【請求項１４】
請求項１３に記載のモデル編集方法において、
前記編集ルールを前記モデル要素の編集時に動的に読み取るステップと、
読み取った編集ルールに基づいて、前記モデル要素の編集操作の可否を決定するステップ
を具備するモデル編集方法。
【請求項１５】
請求項１４に記載のモデル編集方法において、
前記編集操作の可否を、前記モデル編集操作の実行前に決定するステップ
を具備するモデル編集方法。
【請求項１６】
請求項１４または１５に記載のモデル編集方法において、
決定した前記編集操作の可否に対応して、編集操作可否を表示するための編集操作可否情報を出力するステップと、
前記モデル要素の編集状況を通知するステップと、
通知された編集状況と前記編集ルールとに基づいて前記編集操作可否情報を出力するステップ
を具備するモデル編集方法。
【請求項１７】
請求項１６に記載のモデル編集方法において、
前記編集操作可否情報を前記モデル編集操作の実行前に表示するステップ
を具備するモデル編集方法。
【請求項１８】
請求項１３から１７の何れか１項に記載のモデル編集方法において、
情報入力装置から入力された命令に応答して、編集されたモデルの編集状況を示すモデル編集状況を抽出するステップと、
抽出された前記モデル編集状況と前記命令とに基づいて前記モデル要素の編集状況を通知するステップと、
通知された変種状況と前記編集ルールとに基づいて前記編集操作可否情報を出力するステップと、
入力された前記編集操作可否情報に基づいて、前記モデル要素に対する編集可否を表示するステップ
を具備するモデル編集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデル要素編集システム、編集方法および編集用プログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発や、ビジネスの構造をとらえる手法としてオブジェクト指向を使用したモデリングが行われている。特にソフトウェア開発においては、ＵＭＬに代表されるモデリング言語を使用してソフトウェアの構造の整理するモデリングを実行し、そのモデリングによって生成されたモデルを用いることで、少ない情報量でソフトウェアの構造を表現する技術が知られている。
【０００３】
生成されたモデルは様々な表現形式（ツリー構造形式、一覧表形式、グラフ構造形式など）で表現することが可能であり、生成されたモデルを編集する場合には、各々の表現形式でモデルの表示が可能な複数のエディタが使用される。このようなエディタを使用して、特定の編集ルールが存在するモデルを編集する場合でも、各エディタに編集ルールを実装することで、その特定の編集ルールに基づいてモデルの編集を実行が可能であった（例えば、非特許文献１参照。）。
【０００４】
非特許文献１に記載の技術において、利用者はControllerを通じmodelにApplication Objectを編集するよう指示を与える。Controllerは利用者の操作を表示するためにViewにもメッセージを送る。Viewはmodelの内容を表示するためにアクセスする。modelはApplication Objectの内容と同期する。Viewは、ウィンドウサイズの変更やスクロールといった局面ではControllerにメッセージを送り、選択対象の変更などの操作を実行させる。modelは、Controllerにより変更された場合、Viewにメッセージを送り再表示を促す。
【０００５】
この技術において、編集ルールはControllerとmodelに分散して実装される。複数の表現形式のControllerとViewを１つのmodelに付加した場合、毎回同じルールをControllerに実装する。編集ルールを追加・変更したい場合、全ての異なる種類のControllerとmodelを変更する。
【０００６】
特定の編集ルールの実装が可能なエディタを使用してモデルの編集を行うことで、より柔軟なソフトウェア開発が行われるようになり、編集ルールが追加・変更が頻繁に行われることが増えている。編集ルールが追加・変更された場合でも、その編集ルールを適切にエディタに反映させ、モデルの編集に不具合が発生しないシステムが望まれる。
【０００７】
【非特許文献１】Alexander著「Painless Panes for Smalltalk Windows」ACM OOPSLA'87 Proceedings、１９８７年 １０月４日、ｐｐ．２９０-２９１．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、エディタを使用してモデルを編集する場合に、各々のエディタの設定を変更することなく編集ルールの統一を実行することができるオブジェクト指向のモデル編集システムを提供することにある。
【０００９】
本発明が解決しようとする更なる課題は、モデルの編集ルールの変更を容易に実行することができ、変更された編集ルールを各々のエディタが自動的に読み込むことで、変更された編集ルールに沿ったモデルの編集を適切に実行することが可能なオブジェクト指向のモデル編集システムを提供することにある。
【００１０】
本発明が解決しようとする更なる課題は、エディタが読込んだ編集ルールに基づいた編集可否を、編集実行前にモデルの編集者に通知することが可能なオブジェクト指向のモデル編集システムを提供することにある。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデル（４１）の編集が可能なモデル編集システムにおいて、
表現形式の異なる複数の編集装置（５、６、７、８）と、前記編集装置（５、６、７、８）の各々は、前記モデル要素を表示するための表示情報を出力する表示部（５１）と、その表示されたモデル要素に関連付けられた情報を変更することで、前記モデル（４１）を編集する操作部（５５）とを有し、
前記モデル（４１）を編集する場合に使用される編集ルール（４２）と、前記モデル（４１）とを対応付けて格納する記憶部（４）とを備え、
前記操作部（５５）は、前記モデル（４１）に対応する前記編集ルール（４２）を読み込み、読み込んだ編集ルール（４２）に基づいて、表示されたモデル（４１）に対する編集動作を実行し、前記表示部（５１）は、実行された編集動作に基づいて前記表示情報を出力するモデル編集システムによって、ソフトウェア設計におけるモデリングを実行する。
【００１３】
そのモデル編集システムにおいて、前記操作部（５５）は、前記編集ルール（４２）を前記モデル要素の編集時に動的に読み取り、読み取った編集ルール（４２）に基づいて編集操作の可否を決定するモデル編集システムによって、ソフトウェア設計におけるモデリングを実行する。このとき、前記操作部は、前記編集操作の可否を、前記モデル編集操作の実行前に決定する。
これによって、複数のエディタを使用してソフトウェアを設計する場合に、各々のエディタで異なる編集ルールを設定してしまうことを防止し、さらに、モデル編集時に動的に編集ルールを読込むことが可能なので、スムースなモデリングの実行が可能になる。
【００１４】
そのモデル編集システムにおいて、前記編集装置（５、６、７、８）は、前記編集操作の可否に対応して、編集操作可否を表示するための編集操作可否情報を出力する操作進行表示部（５４）を備え、
前記操作部（５５）は、前記モデル要素の編集状況を前記操作進行表示部（５４）に通知し、前記操作進行表示部（５４）は、前記通知と前記編集ルール（４２）とに基づいて前記編集操作可否情報を出力するモデル編集システムによって、ソフトウェア設計におけるモデリングを実行する。このとき、前記操作進行表示部は、前記編集操作可否情報を前記モデル編集操作の実行前に表示する。
【００１５】
そのモデル編集システムにおいて、さらに、情報入力装置（３）と、情報表示装置（２）と、編集されたモデル（４１）の編集状況を示すモデル編集状況を記憶する操作状態記憶部（４３）とを備え、
前記操作部（５５）は、前記情報入力装置（３）から入力された命令に応答して、前記モデル編集状況を抽出し、抽出した前記モデル編集状況と前記命令とに基づいて前記モデル要素の編集状況を前記操作進行表示部（５４）に通知し、前記操作進行表示部（５４）は、前記通知と前記編集ルール（４２）とに基づいて前記編集操作可否情報を出力し、前記情報表示装置（２）は、入力された前記編集操作可否情報に基づいて、前記モデル要素に対する編集可否を表示するモデル編集システムによって、ソフトウェア設計におけるモデリングを実行する。
【００１６】
上記のようなモデリングシステムをコンピュータソフトウェアによって実現する場合、
作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデル（４１）の編集が可能なモデル編集プログラムにおいて、
表現形式の異なる複数の編集用エディタプログラムの少なくとも一つから、前記モデル要素を表示するための表示情報を出力するステップと、その表示されたモデル要素に関連付けられた情報を変更することで、前記モデル（４１）を編集するステップと、前記モデル（４１）に対応し、前記モデル（４１）を編集する場合に使用される編集ルール（４２）を読み込むステップと、読み込んだ編集ルール（４２）に基づいて、前記モデル（４１）に対する編集を実行するステップと、実行された編集動作に基づいて前記表示情報を出力するステップを具備する方法をコンピュータで実行可能なプログラムを用いてソフトウェア設計におけるモデリングを実行する。
【００１７】
そのモデル編集プログラムにおいて、前記編集ルール（４２）を前記モデル要素の編集時に動的に読み取るステップと、読み取った編集ルール（４２）に基づいて、前記モデル要素の編集操作の可否を決定するステップを具備する方法をコンピュータで実行可能なプログラムを用いてソフトウェア設計におけるモデリングを実行し、さらに、
決定した前記編集操作の可否に対応して、編集操作可否を表示するための編集操作可否情報を出力するステップと、前記モデル要素の編集状況を通知するステップと、通知された編集状況と前記編集ルール（４２）とに基づいて前記編集操作可否情報を出力するステップを具備する方法をコンピュータで実行可能なプログラムを用いてソフトウェア設計におけるモデリングを実行する。この場合において、編集操作可否の決定や、前記編集操作可否情報の出力を、操作実行前に行うことで、エディタが読込んだ編集ルールに基づいた編集可否を、編集実行前にモデルの編集者に通知することが可能になる。
【００１８】
さらに、そのモデル編集プログラムにおいて、情報入力装置（３）から入力された命令に応答して、編集されたモデル（４１）の編集状況を示すモデル編集状況を抽出するステップと、抽出された前記モデル編集状況と前記命令とに基づいて前記モデル要素の編集状況を通知するステップと、通知された変種状況と前記編集ルール（４２）とに基づいて前記編集操作可否情報を出力するステップと、入力された前記編集操作可否情報に基づいて、前記モデル要素に対する編集可否を表示するステップを具備する方法をコンピュータで実行可能なプログラム。
【００１９】
さらに、作成される製品を構成する構成要素である複数のモデル要素と、前記複数のモデル要素の各々の関連性を示す関連性情報とを含むモデル（４１）の編集を実行するモデル編集方法において、
表現形式の異なる複数の編集用エディタの少なくとも一つから、前記モデル要素を表示するための表示情報を出力するステップと、その表示されたモデル要素に関連付けられた情報を変更することで、前記モデル（４１）を編集するステップと、前記モデル（４１）に対応し、前記モデル（４１）を編集する場合に使用される編集ルール（４２）を読み込むステップと、読み込んだ編集ルール（４２）に基づいて、前記モデル（４１）に対する編集を実行するステップと、実行された編集動作に基づいて前記表示情報を出力するステップを具備するモデル編集方法によって、オブジェクト指向を用いて構成されたモデルの編集を実行する。
【００２０】
そのモデル編集方法において、前記編集ルール（４２）を前記モデル要素の編集時に動的に読み取るステップと、読み取った編集ルール（４２）に基づいて、前記モデル要素の編集操作の可否を決定するステップを具備するモデル編集方法によってモデル編集を行い、さらに、決定した前記編集操作の可否に対応して、編集操作可否を表示するための編集操作可否情報を出力するステップと、前記モデル要素の編集状況を通知するステップと、通知された編集状況と前記編集ルール（４２）とに基づいて前記編集操作可否情報を出力するステップを具備するモデル編集方法によって、オブジェクト指向を用いて構成されたモデルの編集を実行する。この場合において、編集操作可否の決定や、前記編集操作可否情報の出力を、操作実行前に行うことで、エディタが読込んだ編集ルールに基づいた編集可否を、編集実行前にモデルの編集者に通知することが可能になる。
【００２１】
そのモデル編集方法において、情報入力装置（３）から入力された命令に応答して、編集されたモデル（４１）の編集状況を示すモデル編集状況を抽出するステップと、抽出された前記モデル編集状況と前記命令とに基づいて前記モデル要素の編集状況を通知するステップと、通知された変種状況と前記編集ルール（４２）とに基づいて前記編集操作可否情報を出力するステップと、入力された前記編集操作可否情報に基づいて、前記モデル要素に対する編集可否を表示するステップを具備するモデル編集方法によって、オブジェクト指向を用いて構成されたモデルの編集を実行する。
【発明の効果】
【００２２】
本発明によれば、編集ルールを統一的に管理するため、表現形式の異なる複数のエディタを使用して特定のモデルを編集する場合に、編集ルールの変更が生じても、エディタ毎の対応が不要になり、各々のエディタ間の編集ルールの欠落や矛盾を防止できる。
【００２３】
さらに、本発明によれば、モデルの編集に新たなエディタを追加する必要が生じた場合にも、エディタ毎に各編集ルールに対応するプログラムを作成する必要が無いため、様々な表現形式のエディタを追加することが可能である。
【００２４】
さらに、本発明によれば、各々のモデルの編集ルールの変更を容易に実行することができ、変更された編集ルールを各々のエディタが自動的に読み込むことで、変更された編集ルールに沿ったモデルの編集を適切に実行することが可能になる。
【００２５】
さらに、本発明によれば、エディタが読込んだ編集ルールに基づいた編集可否を、編集実行前にモデルの編集者に通知することが可能であり、操作の無駄を軽減し、操作時間を短縮するオブジェクト指向のモデル編集が実現できる。
【発明を実施するための最良の形態】
【００２６】
以下に図面を使用して本発明を実施するための最良の形態について述べる。
【００２７】
［実施の構成］
図１は本発明を実施するための最良の形態におけるシステムの構成を示すブロック図である。本発明におけるモデル編集システムは、コンピュータプログラムによるソフトウェア処理によって実現することも、具体的な回路構成によって実現することも可能である。以下に述べる説明では、本発明におけるモデル編集システムがコンピュータソフトウェアによって実現する場合を例に述べる。図１を参照すると、本実施の形態はコンピュータ１と表示装置２と入力装置３とで構成される。コンピュータ１はプログラム制御により動作する演算処理装置である。コンピュータ１はＣＰＵ（Central  Processing  Unit：中央演算処理装置）とメモリとを備え、所定の演算処理を実行する。
【００２８】
表示装置２は、液晶表示装置に代表される情報表示装置である。コンピュータ１と接続され、コンピュータ１から出力される情報表示用データに基づいて所定の情報の表示を実行する。
【００２９】
入力装置３は、マウスやタッチパッドに代表されるポインティング機能を有する情報入力装置である。情報入力者（モデルの編集者）が行った操作に応答して画面上のポインタを移動させるための信号を出力する。以下に述べるポインティングデバイスは、上記のマウスやタッチパッドに限定されるものではなく、例えば仮想現実的入力デバイスを用いることも可能である。
【００３０】
コンピュータ１は更にモデル４１と編集ルール４２とを備えるモデル情報記憶部４と、操作状態記憶部４３と、エディタプログラム５とを含む。モデル情報記憶部４は、データを格納する機能を有する情報記憶装置である。モデル４１は、ソフトウェアの設計情報をモデルとして表示するための情報である。モデル４１は、複数のモデル要素と、そのモデル要素の各々の関連性を示す関連性情報とで構成される。編集ルール４２は、格納されたモデル４１を編集する場合に使用される編集ルールである。操作状態記憶部４３はエディタプログラム５から出力された命令に応答して所定の情報の書き込みと読み出しを実行する記憶装置である。操作状態記憶部４３は、所定のモデル要素の現在の操作状態を記憶し、後に述べる操作プログラム５５の指示により操作状態の更新を実行し、更新された操作状態を現在の操作状態として格納する。操作状態記憶部４３は、現在の操作状態として、操作が開始されているかどうかに関する情報と、現在選択されているモデル要素を特定するための情報と、そのほかに操作プログラム５５が必要とする情報のすべてを格納する。
【００３１】
エディタプログラム５はモデル４１の表示、編集を実行可能な機能を備えるコンピュータプログラムである。エディタプログラム５はモデル表示プログラム５１とモデル変更プログラム５２とモデル要素表示場所計算プログラム５３と操作進行表示プログラム５４と操作プログラム５５と該当モデル要素検索プログラム５６とを備える。モデル表示プログラム５１はモデル４１からエディタプログラム５で表示可能なモデル要素を読み出し、そのモデル要素の表示位置に関する情報をモデル要素表示場所計算プログラム５３に要求する。モデル要素表示場所計算プログラム５３は、その要求に応答してそのモデル要素の表示位置に関する情報を計算し、モデル表示プログラム５１に出力する。モデル表示プログラム５１は出力された情報に基づいて、そのモデル要素を表示装置２で表示可能な形式に変更して表示装置２に出力する。
【００３２】
モデル変更プログラム５２は、操作プログラム５５からの指示に基づいてモデル４１に格納されたモデルを更新する。また、モデル変更プログラム５２が、更新前に再度編集ルール４２を読み込み、更新可能かどうかを判定するような構成にしても良い。このような構成にすることで、例えば、マルチスレッド、マルチプロセスのような状況下で、同時並行的に複数のエディタで一つのモデルを編集する場合に、直前まで編集可能であったが一瞬先にトランザクションとして他者がモデルを変更した結果、編集が不可になってしまう場合にも対応可能である。さらに、このような構成のモデル変更プログラム５２によれば、フィードバックに全ルールの計算を行うと時間がかかり過ぎてしまい、ポインタなどの動きに対する反応が遅くなってしまうような場合に、編集フィードバック用ルールと、実際に編集を実施（更新）する場合のルールを分離し、上記の判定を実行することで、フィードバック時には処理が軽くなるようなルールを使用し、最終段階では全てのルールを使用して計算を実行するということが可能になる。モデル要素表示場所計算プログラム５３は、モデル表示プログラム５１が読み出したモデル要素を表示装置２に表示する表示位置を計算する。操作進行表示プログラム５４は、操作プログラム５５からの操作進行表示命令を受け取り、表示装置２に操作の進行状況を表示する。
【００３３】
以下に、入力装置３がマウスである場合を例に、操作の進行状況について説明する。
マウスポインタの移動時には、マウスカーソルをその場所で可能な動作が類推できるような形状に変更する。例えば、マウスによりドラッグアンドドロップを行う場合、ドラッグ開始時にはその操作の内容が類推できるような形状（マウスボタンを押す動作を示すアイコンなど）にマウスポインタを変更し、ドラッグ中には現在のマウスポインタがある場所がドロップ場所として適切かどうかに応じた形状にマウスポインタを変更し、ドロップ時にはその操作が成功したかどうかを示す形状に変更する。また、マウスによりメニューをプルダウンまたはポップアップさせる場合、現在の操作状態やマウスポインタの位置に応じ、メニューのうち実行不可能なものを、実行可能なものとは別の表示に変更する。さらに、マウスによりモデル要素のサイズをドラッグ操作で変更する場合、ドラッグ中に変更後の表示サイズに相当するアウトラインを表示する。このような動作を行うことで、表示装置２は操作の進行状況を表示する。
【００３４】
操作プログラム５５は入力装置３からの入力を受け取り、操作状態記憶部４３から読み出した操作が開始されているかどうかの情報と、選択されているモデル要素を特定する情報、他の状態情報に基づき、編集ルール４２と該当モデル要素検索プログラム５６からのモデル要素情報を元に、操作進行表示プログラム５４に操作進行表示を指示し、操作を実行する場合はモデル変更プログラム５２にそのモデル要素の変更を指示する。
【００３５】
操作状態が「操作なし」であれば、現在のマウスカーソルの位置に存在するモデル要素に加え、選択されているモデル要素にも可能な操作を編集ルールに基づいて決定し、操作の進行状況を変更する。操作が可能で、入力装置３から操作開始の指示があった場合、操作状態を操作中に変更する。選択が可能で、入力装置３から選択変更（追加、削除、解除、全選択など）の指示があった場合、選択対象を変更する。
【００３６】
また、操作状態が「操作中」であれば、現在のマウスポインタ位置に存在するモデル要素と、編集ルールに基づき、操作の実行が可能かどうかを計算し、操作進行表示に操作の実行の可否を指示する。入力装置３から操作完了の指示があった場合、操作可能であればモデル変更プログラム５２に変更を指示し、操作進行表示プログラム５４には操作完了を表示させる。操作不可能な場合は操作進行表示プログラム５４に操作失敗を表示させる。
【００３７】
該当モデル要素検索プログラム５６は、指定された位置に存在するモデル要素を検索し、検出したモデル要素に関する情報を、モデル表示プログラム５１に通知する。
【００３８】
［実施の動作］
以下に図面を使用して本発明の実施の形態の動作について述べる。図２は本発明の実施の形態の動作を示すフローチャートである。図２を参照すると、本実施の形態の動作は、ソフトウェアを設計するためにモデル編集システム（モデリングツール）を起動すると開始する。以下に述べるモデル編集システムは、入力装置３としてマウス（ポインティングデバイス）を使用され、表示装置２の表示画面には、そのマウスの動作に応答するマウスポインタが表示される場合を例に説明を行う。また、本発明のモデル編集システムは、様々な分野に適応可能であるが、以下の説明では本発明のモデル編集システムをアプリケーションソフトウェアの開発設計に使用した場合を例に述べる。
【００３９】
ステップＳ１０１において、モデル編集システムで使用可能なエディタプログラム５を起動する。エディタプログラム５は、複数の編集可能なモデルが存在した場合、編集を実行する特定のモデルを指定して読込む。モデル表示プログラム５１は、そのモデルを表示装置２の表示画面に表示する（ステップＳ１０２）。ステップＳ１０３において、エディタプログラム５は、指定されたモデルに対応する編集ルールをモデル情報記憶部から読み込み、編集開始まで待機状態を保持する。編集ルールをモデル情報記憶部から読み込むので、各々のモデルの編集ルールの変更を容易に実行することができる。さらに、変更された編集ルールを各々のエディタが自動的に読み込むことで、変更された編集ルールに沿ったモデルの編集を適切に実行することが可能になる。
【００４０】
ステップＳ１０４において、エディタプログラム５は読込んだモデルの操作状態を操作状態記憶部４３から読込む。また、操作プログラム５５は入力装置３から出力された信号に基づいてマウスポインタの位置を監視する。ステップＳ１０５において、該当モデル要素検索プログラム５６は、表示装置２の表示画面に表示しているモデル要素の少なくとも一つにマウスポインタが重なったかどうかの判断を行う。モデル要素にマウスポインタが重なった場合、ステップＳ１０６に進み、操作プログラム５５は操作状態記憶部４３から読込んだ操作状態に基づいて、そのモデル要素の操作状態が「操作中」（編集可能状態）であるかどうかの判断を行う。モデル要素にマウスポインタが重なっていない場合、エディタプログラムはその状態を「操作なし」と判断し、ステップＳ１１３に進む。
【００４１】
ステップＳ１０６において、そのモデル要素が「操作中」であった場合、操作プログラム５５は、予め（ステップ１０３において）読込んだ編集ルールから、そのモデル要素の状態（操作中）に対応する編集ルールを照合し、その編集ルールに適応した操作可能情報を表示するようにモデル表示プログラムに指示をする（ステップＳ１０７）。そのモデル要素が「操作中」でない場合、操作プログラム５５は、そのモデル要素の操作状態を「操作なし」と判断し、処理はステップＳ１１８に進む。
【００４２】
ステップＳ１０８において、操作プログラム５５は、編集ルールに適応した編集実行命令が入力されたかどうかの判断を行う。編集ルールに適応した編集実行命令が入力された場合、操作プログラム５５は入力された命令に対応してモデルの編集作業（操作）を実行する（ステップＳ１０９）。このとき、操作プログラム５５は実行された編集作業の情報をモデル変更プログラム５２に通知する。モデル変更プログラムは、通知された情報に基づいてモデル情報記憶部４に格納されたモデル４１を更新する。このとき、モデル変更プログラム５２が、更新前に再度編集ルール４２を読み込む構成を備えていた場合、更新可能かどうかの判定を実行し、更新可能な場合、モデル情報記憶部４に格納されたモデル４１を更新する。また、操作進行表示プログラムは、実行されている編集作業に応答して、逐次編集ルールを照合し、その編集ルールに適応した操作可能情報を表示するようにモデル表示プログラムに指示をする。これにより、モデル編集作業中に編集ルールに違反する編集が実行されることを防止し、さらに、操作不可能な編集を編集作業実行前に知ることができるので、より信頼性の高いソフトウェア設計が可能になる。
【００４３】
モデル要素に対する編集作業（操作）が終了した操作プログラム５５は、その操作が終了した後、ステップＳ１１１に進み、操作状態記憶部４３に格納されたモデルの操作進行状況を更新する。ステップＳ１１２において、操作進行状況の更新が終了したエディタプログラム５は、そのモデルに対する編集作業を終了するかどうかの判断を行う。編集を継続する場合は、処理はステップＳ１０４に戻り、更新された操作状態を再読み込みし、編集作業（操作）を継続する。
【００４４】
ステップＳ１０８において、編集ルールに適応していない編集実行命令が入力された場合、処理はステップＳ１１０に進み、エディタプログラム５は入力された命令を破棄し、操作進行状況の更新を実行する（ステップ１１１）。その後、処理はステップＳ１１２に進み、そのモデルに対する編集作業を終了するかどうかの判断を行う。
【００４５】
ステップＳ１０５における判断の結果、マウスポインタに重なるモデル要素が存在しない場合には処理はステップＳ１１３に進む。ステップＳ１１３において、操作プログラム５５は、モデル編集のための操作（例えば、モデル要素の追加など。）が開始されたかどうかの判断を行う。操作が開始していない場合、処理は戻り操作プログラム５５はマウスポインタの位置を監視する。
【００４６】
ステップＳ１１３において、モデル編集のための操作が開始され場合、処理はステップＳ１１４に進む。ステップＳ１１４において、操作プログラム５５は入力装置３からの信号に基づいて、予め（ステップ１０３において）読込んだ編集ルールに適応した操作可能情報を表示する。
ここで、新たなモデル要素の追加が行われた場合、モデル要素表示場所計算プログラム５３は、その新たなモデル要素の表示が可能な位置を計算し、モデル表示プログラム５１に出力する。ステップＳ１１５において、操作プログラム５５は、編集ルールに適応した編集実行命令が入力されたかどうかの判断を行う。編集ルールに適応した編集実行命令が入力された場合、エディタプログラム５は入力された命令に対応してモデルの編集動作を実行する（ステップＳ１１６）。
このとき、操作プログラム５５は実行された編集作業の情報をモデル変更プログラム５２に通知する。モデル変更プログラムは、通知された情報に基づいてモデル情報記憶部４に格納されたモデル４１を更新する。このとき、モデル変更プログラム５２が、更新前に再度編集ルール４２を読み込む構成を備えていた場合、更新可能かどうかの判定を実行し、更新可能な場合、モデル情報記憶部４に格納されたモデル４１を更新する。また、操作進行表示プログラムは、実行されている編集作業に応答して、逐次編集ルールを照合し、その編集ルールに適応した操作可能情報を表示するようにモデル表示プログラムに指示をする。
【００４７】
ステップＳ１１５において、編集ルールに適応していない編集実行命令が入力された場合、処理はステップＳ１１７に進み、エディタプログラム５は入力された命令を破棄し、操作進行状況の更新を実行する（ステップ１１１）。その後、処理はステップＳ１１２に進み、そのモデルに対する編集作業を終了するかどうかの判断を行う。
【００４８】
ステップＳ１０６において、そのモデル要素の操作状態が「操作なし」の場合、処理はステップＳ１１８に進む。ステップＳ１１８において、予め（ステップ１０３において）読込んだ編集ルールから、そのモデル要素の状態（未選択状態）に対応する編集ルールを照合し、その編集ルールに適応した操作可能情報を表示する。ステップＳ１１９において、エディタプログラム５は、編集ルールに適応した編集実行命令が入力されたかどうかの判断を行う。編集ルールに適応した編集実行命令が入力された場合、エディタプログラム５は入力された命令に対応してモデルの編集動作を実行する（ステップＳ１２０）。
このとき、操作プログラム５５は実行された編集作業の情報をモデル変更プログラム５２に通知する。モデル変更プログラムは、通知された情報に基づいてモデル情報記憶部４に格納されたモデル４１を更新する。このとき、モデル変更プログラム５２が、更新前に再度編集ルール４２を読み込む構成を備えていた場合、更新可能かどうかの判定を実行し、更新可能な場合、モデル情報記憶部４に格納されたモデル４１を更新する。また、操作進行表示プログラムは、実行されている編集作業に応答して、逐次編集ルールを照合し、その編集ルールに適応した操作可能情報を表示するようにモデル表示プログラムに指示をする。
【００４９】
モデル要素に対する編集作業（操作）が終了したエディタプログラム５は、その操作が終了した後、ステップＳ１１１に進み、操作状態記憶部４３に格納されたモデルの操作進行状況を更新する。ステップＳ１１２において、操作進行状況の更新が終了したエディタプログラム５は、そのモデルに対する編集作業を終了するかどうかの判断を行う。編集を継続する場合は、処理はステップＳ１０４に戻り、更新された操作状態を再読み込みし、編集作業（操作）を継続する。
【００５０】
ステップＳ１１９において、編集ルールに適応していない編集実行命令が入力された場合、処理はステップＳ１２１に進み、エディタプログラム５は入力された命令を破棄し、操作進行状況の更新を実行する（ステップ１１１）。その後、処理はステップＳ１１２に進み、そのモデルに対する編集作業を終了するかどうかの判断を行う。
【００５１】
以下に、図面を使用して本実施の形態の動作を具体的に説明する。図３は本実施の形態に述べるモデルの例を示す図である。以下の説明で述べるモデルは、パッケージとオブジェクトの２種類のモデル要素から構成される。ここでモデル要素とは、各エディタの中で使用されるエディタ中のそれぞれのモデルの意味を表す図要素と定義し、パッケージとは、モデル要素をグループ化したものと定義する。図３を参照すると、以下の説明で述べるモデルは二つのパッケージ（パッケージＡ、パッケージＢ）と、３つのオブジェクト（オブジェクトＸ、オブジェクトＹ、オブジェクトＺ）とを有し、包含関係と継承関係により構成されている。パッケージＡは、パッケージＢとオブジェクトＸとの各々と包含関係を有し、パッケージＢは更にオブジェクトＹとオブジェクトＺとの各々と包含関係を有する。また、オブジェクトＸはオブジェクトＹとオブジェクトＺとの各々と継承関係を有する。
【００５２】
図４は、このモデルと編集ルールとの構成の一例を示すテーブルである。図４に示す構成はテーブルによって対応付けられているが、モデルと編集ルールとの対応は論理式で示すことも可能であるし、論理値を返却するプログラムで示すことも可能である。図４を参照すると、編集ルールは複数のルールから構成される。
【００５３】
図５は、このモデルを図形エディタで表示した場合の例を示す図である。図５を参照すると、この図形エディタはパッケージは矩形として表示し、オブジェクトは楕円として表示する。またこの図形エディタは、包含関係は図形の包含関係として（含む側が親、含まれる側が子）、継承関係は矢印として（矢印の元が親、先が子）表示する。
【００５４】
図６から図８は、モデルを編集ルールに基づいて図形エディタによって編集する場合の動作の例を示す図である。図６から図８に示す例は、モデル情報記憶部４に格納されたモデル４１が図３に示されるモデルであり、同様にモデル情報記憶部４に格納される編集ルール４２が図４に示される編集ルールである場合を例に説明を行う。
【００５５】
図６はオブジェクトＸが選択され、マウス操作によりメニューがポップアップした時の模式図である。図６を参照すると、通常ポップアップメニューでは「複製」、「削除」、「属性変更」の３つの操作を表示するが、ルール１により継承の子を持つオブジェクトＸは削除できないためそのようなフィードバック（削除メニューの禁止）を操作進行表示プログラム５４により行っている。この状態は「操作中」状態であるが、この後「複製」を選択すると操作プログラム５５はモデル変更プログラム５２にオブジェクトＸを複製するよう指示を行い、操作状態を「操作なし」に変更するように操作状態記憶部４３に指示する。また、操作プログラム５５は操作進行表示プログラム５４に選択ノブ（網掛け矩形）を複製された新しいオブジェクトに移動させ、ポップアップメニューを消去するよう指示する。
【００５６】
図７は、オブジェクトＹが選択され、マウス操作によりメニューがポップアップした時の模式図である。図７を参照すると、ルール２によりパッケージＢには包含関係の子を追加できないためそのようなフィードバック（複製メニューの禁止）を操作進行表示プログラム５４により行っている。この状態は「操作中」状態であるが、この後「削除」を選択すると操作プログラム５５はモデル変更プログラム５２にオブジェクトＹを削除するよう指示を行い、操作状態を「操作なし」に変更するように操作状態記憶部４３に指示する。また操作プログラム５５は操作進行表示プログラム５４に選択ノブ（網掛け矩形）の削除とポップアップメニューの消去を指示する。
【００５７】
図８は、オブジェクトＸが選択され、マウス操作によりドラッグアンドドロップでオブジェクトＸを移動しようとした時の模式図である。図８を参照すると、ルール２によりパッケージＢには包含関係の子を追加できないため、ドラッグ中にマウスポインタがパッケージＢ内にある場合はそのようなフィードバック（マウスポインタを×としドロップ不可を表示）を操作進行表示プログラム５４により行っている。また、パッケージＡ内で、パッケージＢ外の場合は、マウスポインタを○としドロップ可を表示するよう操作進行表示プログラム５４に指示する。この状態は「操作中」状態であるが、この後パッケージＢでドロップ（マウスボタンを放す）と操作状態を「操作なし」に変更して操作進行表示プログラム５４にマウスポインタを通常に戻すよう指示する。パッケージＡでドロップすると、モデル変更プログラム５２にオブジェクトＸの位置属性を変更するよう指示を行い、操作状態を「操作なし」に変更して操作進行表示プログラム５４に新しい位置におけるオブジェクトＸに選択ノブ（網掛け矩形）を付け、マウスポインタを通常に戻すよう指示する。
【００５８】
［第２の実施の形態］
図面を使用して、本発明の第２の実施の形態について述べる。図９は本発明の第２の実施の形態の構成を示すブロック図である。図８を参照すると、本発明の第２の実施例の構成は、プログラム制御により動作するコンピュータ１と、表示装置２と、入力装置３とから構成されている。
【００５９】
コンピュータ１は、モデル情報記憶部４と、図形エディタプログラム６と、一覧表示図エディタプログラム７と、階層図エディタプログラム８と、プロパティエディタプログラム９と、操作状態記憶部１０とを含む。図形エディタプログラム６には、モデル要素表示プログラム６１と、モデル要素変更プログラム６２と、モデル要素表示場所計算プログラム６３と、操作進行表示プログラム６４と、操作プログラム６５と、該当モデル要素検索プログラム６６とを含む。一覧表示図エディタプログラム７と、階層図エディタプログラム８と、プロパティエディタプログラム９も、図形エディタプログラム６と同様の構成である。これらの機能ブロックは、第１の実施例の同名のプログラムはそのプログラムと同様に動作する。
操作状態記憶部１０は各々のエディタプログラム（５、６、７、８）からが備える操作プログラムから送信された操作状態（１０ａ〜１０ｄ）を、各エディタプログラム毎に格納する。
【００６０】
本発明の第２の実施の形態における編集ルールは、モデル情報記憶部４内にモデル４１に対応付けられて格納され、管理されている。 図形エディタプログラム６と、一覧表示図エディタプログラム７と、階層図エディタプログラム８と、プロパティエディタプログラム９について、コンピュータ１はモデル情報記憶部４に一貫した編集ルールを維持する。各エディタプログラムは、モデル編集時に動的に編集ルールを参照する。そのため、モデルの編集ルールを変更した場合でもこれらのエディタの変更は不要である。 また、編集ルールごとに機能を追加する必要がないため、これらのエディタとは異なる新しいエディタを容易に追加できる。
【図面の簡単な説明】
【００６１】
【図１】図１は、第１の実施の形態におけるシステムの構成を示すブロック図である。
【図２Ａ】図２Ａは、第１の実施の形態の動作を示すフローチャートの前半部分である。
【図２Ｂ】図２Ｂは、第１の実施の形態の動作を示すフローチャートの後半部分である。
【図３】図３は、モデルの例を示す図である。
【図４】図４は、モデルが持ちうる編集ルールの一例を示すテーブルである。
【図５】図５は、モデルをエディタで表示した場合の例を示す図である。
【図６】図６は、エディタの動作を示す模式図である。
【図７】図７は、エディタの動作を示す模式図である。
【図８】図８は、エディタの動作を示す模式図である。
【図９】図９は、第２の実施の形態におけるシステムの構成を示すブロック図である。
【符号の説明】
【００６２】
１…コンピュータ
２…表示装置
３…入力装置
４…モデル情報記憶部
４１…モデル
４２…編集ルール
４３…操作状態記憶部
５…エディタプログラム
５１…モデル表示プログラム
５２…モデル変更プログラム
５３…モデル要素表示場所計算プログラム
５４…操作進行表示プログラム
５５…操作プログラム
５６…該当モデル要素検索プログラム
６…図形エディタプログラム
６１…モデル表示プログラム
６２…モデル変更プログラム
６３…モデル要素表示場所計算プログラム
６４…操作進行表示プログラム
６５…操作プログラム
６６…該当モデル要素検索プログラム
７…一覧表示図エディタプログラム
８…階層図エディタプログラム
９…プロパティエディタプログラム
１０…操作状態記憶部
１０ａ…図形エディタ操作状態
１０ｂ…階層図エディタ操作状態
１０ｃ…一覧表示操作状態
１０ｄ…プロパティエディタ操作状態
【図１】
2005251128.tif 000003
【図２Ａ】
2005251128.tif 000004
【図２Ｂ】
2005251128.tif 000005
【図３】
2005251128.tif 000006
【図４】
2005251128.tif 000007
【図５】
2005251128.tif 000008
【図６】
2005251128.tif 000009
【図７】
2005251128.tif 000010
【図８】
2005251128.tif 000011
【図９】
2005251128.tif 000012