(57)【要約】【課題】オブジェクト指向言語によるソフトウェアの開発に、ファイル単位やクラス単位およびそれらを構成するモデル要素単位での排他制御ができる。【解決手段】クライアント機器２００は、モデルの編集、排他解除、変更内容の登録、排他の強制解除をサーバ機器１００に要求する排他制御要求機能２１を備える。  サーバ機器は、個別に識別するためのモデルＩＤを割り当てたモデルの集合として表現できるデータ構造のモデルデータ１７と、クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報１５で各クライアント機器を管理するクライアント機器管理機能１１と、モデルＩＤとクライアント機器識別情報をペアにした排他制御管理情報１６で、モデルの排他状態を管理する排他制御管理機能１２を備える。【選択図】図１
2009140443.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向言語によるソフトウェアの共同開発に、モデル要素単位での排他制御を行うソフトウェア開発支援システムであって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手段を備え、
前記サーバ機器は、個別に識別するためのモデルＩＤを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手段と、前記モデルＩＤと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルまたはモデル要素の排他状態を管理する排他制御管理手段とを備えたことを特徴とするソフトウェア開発支援システム。
【請求項２】
前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しＩＤの範囲により区分けするデータ構造としたことを特徴とする請求項１に記載のソフトウェア開発支援システム。
【請求項３】
前記クライアント機器管理手段は、ユーザ名または端末名またはＩＰアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データＩＤを発行してそのＩＤをクライアント機器識別情報として登録することを特徴とする請求項１に記載のソフトウェア開発支援システム。
【請求項４】
前記排他制御要求手段と排他制御管理手段による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手段と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手段と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手段と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手段と、
を備えたことを特徴とする請求項１〜３のいずれか１項に記載のソフトウェア開発支援システム。
【請求項５】
前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手段を備え、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手段を備えたことを特徴とする請求項１〜４いずれか１項に記載のソフトウェア開発支援システム。
【請求項６】
前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手段は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手段、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手段を備えたことを特徴とする請求項５に記載のソフトウェア開発支援システム。
【請求項７】
オブジェクト指向言語によるソフトウェアの共同開発に、モデル単位での排他制御を行う方法であって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手順を有し、
前記サーバ機器は、個別に識別するためのモデルＩＤを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手順と、前記モデルＩＤと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルの排他状態を管理する排他制御管理手順とを有することを特徴とする排他制御方法。
【請求項８】
前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しＩＤの範囲により区分けするデータ構造を有することを特徴とする請求項７に記載の排他制御方法。
【請求項９】
前記クライアント機器管理手順は、ユーザ名または端末名またはＩＰアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データＩＤを発行してそのＩＤをクライアント機器識別情報として登録することを特徴とする請求項７に記載の排他制御方法。
【請求項１０】
前記排他制御要求手順と排他制御管理手順による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手順と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手順と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手順と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手順と、
を有することを特徴とする請求項７〜９のいずれか１項に記載の排他制御方法。
【請求項１１】
前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手順を有し、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手順を有することを特徴とする請求項７〜１０のいずれか１項に記載の排他制御方法。
【請求項１２】
前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手順は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手順、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手順を有することを特徴とする請求項１１に記載の排他制御方法。
【請求項１３】
請求項７〜１２のいずれか１項に記載の排他制御方法における処理手順をコンピュータで実行可能に構成したことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発支援システムに係り、特にオブジェクト指向言語によるソフトウェア共同開発におけるモデル要素単位の排他制御に関する。
【背景技術】
【０００２】
ソースプログラムや設計書等のソフトウェアを複数の開発者が共同して開発する場合、ソフトウェアを構成する資源（プログラムなど）が互いに関連しない場合はなんら問題とならないが、同じ資源または資源間に依存関係がある場合には一人の開発者が開発している間は他の開発者による当該資源の変更を禁止する排他制御が行われる。この排他制御には例えば版数管理で行われる（例えば、特許文献１参照）。
【０００３】
ＣやＦｏｒｔｒａｎといった構造化言語では関数単位でのファイル化ができるため、ファイル単位で排他制御しても、複数の開発者による共同作業において作業したいファイルが開発者間で重なることが少なく、ソフトウェア開発には支障とならない。
【０００４】
一方、Ｊａｖａ（登録商標）やＣ＋＋、Ｃ＃といったオブジェクト指向言語では、クラス毎にファイル化されることが多く、ファイル毎の排他制御では作業待ち時間が発生する割合が高まる。しかし、実際にはメソッドやフィールドの追加や削除など、排他の必要がない場合も多い。つまり、クラスの構成要素毎の排他は必要であるが、クラス全体を排他する必要は必ずしもない。
【特許文献１】特開平５−２６５７２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
オブジェクト指向言語による複数人の開発者で共同開発を行う場合、ＶＳＳ（Ｖｉｓｕａｌ  Ｓｏｕｒｃｅ  Ｓａｆｅ）などのファイル単位のＲｅａｄ／Ｗｒｉｔｅ属性などによるファイル単位での排他制御管理ツールでは、作業したいファイルが重なることがしばしば起こり、作業効率が悪くなる。同様に、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）に基づくビジュアルモデリング環境である、「Ｒａｔｉｏｎａｌ  Ｒｏｓｅ  Ｄｅｖｅｌｏｐｅｒ  ｆｏｒ  Ｊａｖａ」では、クラス単位での排他制御管理を行うが、作業したいクラスが重なることがしばしば起こり、作業効率が悪くなる。
【０００６】
例えば、図１０に同時に編集できないケースを示すように、クラスの同じ要素を開発者Ａ，Ｂか編集する場合、開発者Ａと開発者Ｂの作業順番によっては結果が異なるため、排他制御が必要になる。一方、図１１に同時に編集しても構わないケースを示すように、クラスの要素として異なる要素を編集する場合、開発者Ａと開発者Ｂの作業順番による最終結果に違いは生じない。現状のファイル単位あるいはクラス単位の排他制御では、図１１のようなケースに対応できない。
【０００７】
本発明の目的は、ファイル単位やクラス単位およびクラスやファイルを構成するモデル要素単位での排他制御ができるソフトウェア開発支援システム、排他制御方法およびこの方法のプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
前記の課題を解決するため、本発明は以下のシステム、方法およびプログラムを特徴とする。
【０００９】
（システムの発明）
（１）オブジェクト指向言語によるソフトウェアの共同開発に、モデル要素単位での排他制御を行うソフトウェア開発支援システムであって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手段を備え、
前記サーバ機器は、個別に識別するためのモデルＩＤを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手段と、前記モデルＩＤと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルまたはモデル要素の排他状態を管理する排他制御管理手段とを備えたことを特徴とする。
【００１０】
（２）前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しＩＤの範囲により区分けするデータ構造としたことを特徴とする。
【００１１】
（３）前記クライアント機器管理手段は、ユーザ名または端末名またはＩＰアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データＩＤを発行してそのＩＤをクライアント機器識別情報として登録することを特徴とする。
【００１２】
（４）前記排他制御要求手段と排他制御管理手段による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手段と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手段と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手段と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手段と、
を備えたことを特徴とする。
【００１３】
（５）前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手段を備え、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手段を備えたことを特徴とする。
【００１４】
（６）前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手段は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手段、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手段を備えたことを特徴とする。
【００１５】
（方法の発明）
（７）オブジェクト指向言語によるソフトウェアの共同開発に、モデル単位での排他制御を行う方法であって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手順を有し、
前記サーバ機器は、個別に識別するためのモデルＩＤを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手順と、前記モデルＩＤと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルの排他状態を管理する排他制御管理手順とを有することを特徴とする。
【００１６】
（８）前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しＩＤの範囲により区分けするデータ構造を有することを特徴とする。
【００１７】
（９）前記クライアント機器管理手順は、ユーザ名または端末名またはＩＰアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データＩＤを発行してそのＩＤをクライアント機器識別情報として登録することを特徴とする。
【００１８】
（１０）前記排他制御要求手順と排他制御管理手順による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手順と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手順と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手順と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手順と、
を有することを特徴とする。
【００１９】
（１１）前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手順を有し、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手順を有することを特徴とする。
【００２０】
（１２）前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手順は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手順、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手順を有することを特徴とする。
【００２１】
（プログラムの発明）
（１３）上記の（７）〜（１２）のいずれか１項に記載の排他制御方法における処理手順をコンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【００２２】
以上のとおり、本発明によれば、ファイル単位やクラス単位およびクラスやファイルを構成するモデル要素単位での排他制御ができる。
【００２３】
具体的には、
（１）モデル要素単位で排他制御を行うことにより、複数の開発者が同一クラス内の異なるモデル要素を同時に編集することができるようになる。
【００２４】
（２）共有データ等価で任意取得方式を行うことにより、あるクライアント機器の登録を自クライアント機器に反映させることができる。
【００２５】
（３）共有データ等価で自動等価方式を行うことにより、あるクライアント機器の登録を即時に全クライアント機器に反映させることができる。
【００２６】
（４）ユーザ単位でクライアント機器の排他制御管理を行うことにより、異なる開発者や異なる端末で開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【００２７】
（５）排他データをＩＤ単位でクライアント機器の排他制御管理を行うことにより、同じ開発者が同じ端末で複数のアブリケーションを使用して開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【発明を実施するための最良の形態】
【００２８】
図１は、本発明の実施形態を示すソフトウェア開発支援システムの基本構成図であり、クラスの構成要素毎の排他制御を可能にする。
【００２９】
図１において、ソフトウェア開発支援システムは、システム全体を管理するサーバ機器１００と、このサーバ機器との通信を可能にした開発者毎の複数のクライアント機器２００で構成する。サーバ機器１００は、コンピュータ資源とこれを利用するソフトウェアとして、クライアント機器管理機能１１と排他制御管理機能１２と共有データ等価機能１３とプログラムファイル作成機能１４を設ける。クライアント機器２００は、コンピュータ資源とこれを利用するソフトウェアとして、排他制御要求機能２１と共有データ等価機能２２とプログラムファイル作成機能２３を設ける。
【００３０】
さらに、サーバ機器１００は、上記の各機能による排他制御に使用する情報として、クライアント機器管理情報１５と排他制御管理情報１６およびモデルデータ１７を用意する。
【００３１】
システムで取り扱うモデルは、開発対象とするシステムのクラスをモデル要素毎に分けて管理するデータフォーマットとしたモデルデータとしてサーバ機器に登録／管理し、このモデルデータには排他に必要な識別ＩＤを割り当てる。例えば、図２にモデルデータの構造例を示すように、モデルは集合モデルとモデル要素に分類でき、集合モデル毎に所属するモデル要素を集合として識別ＩＤで管理できるようなデータ構造とする。
【００３２】
システムで管理するプログラムファイルは、上記モデルデータからプログラムファイル作成機能１３または２３がもつアルゴリズムによって生成する。このプログラムファイル作成機能は、クライアント機器かサーバ機器のいずれか一方、もしくは個々に設けても良い。
【００３３】
サーバ機器１００のクライアント機器管理機能１１はクライアント機器管理情報としてクライアント機器識別情報などをもつ。サーバ機器１００の排他制御管理機能１２は、排他制御管理情報としてモデルのＩＤとクライアント機器識別情報などをもち、排他制御要求機能２１からの排他制御要求に対して、モデル単位の排他制御管理を行う。サーバ機器１００または各クライアント機器２００の共有データ等価機能１３または２２は、別のクライアント機器がサーバ機器に登録したモデルデータを、起動中でも取り込む機能を持つ。以下、各機能による排他制御を詳細に説明する。
【００３４】
（１）排他制御要求
図３に排他制御要求の流れ図を示す。クライアント機器は開発者があるモデルを選択したときに、排他制御要求機能２１がサーバ機器１００に排他制御要求を行う（Ｓ１、Ｓ２）。この要求には、排他したいモデル（仮にＡとする）のＩＤと排他制御要求するクライアント機器の識別情報（仮にＢとする）で行う。
【００３５】
サーバ機器は、クライアント機器の排他制御要求に応じて排他制御管理機能１２が排他処理を行い、排他の可否をクライアント機器に通知する。詳細には、クライアント機器から受信したモデルＡのＩＤが、サーバ機器が持つ排他制御管理情報（仮にＣとする）に登録されているか確認し（Ｓ３）、既に登録済み（既にモデルＡは排他中）の場合は、排他不可能をクライアント機器に通知し（Ｓ４）、未登録の場合（まだモデルＡは排他されていない）は、排他制御管理情報ＣにモデルＡのＩＤとクライアント機器識別情報Ｂをペアで登録する（Ｓ５）。ここで、モデルＡは排他状態になり、排他可能をクライアント機器に通知する（Ｓ６）。
【００３６】
クライアント機器は、サーバ機器から受信した結果を表示し（Ｓ７）、排他できない場合はそれを開発者に通知し（Ｓ８）、排他可能の場合はモデルＡを編集可能にする（Ｓ９）。
【００３７】
（２）排他解除要求
図４に排他解除要求の流れ図を示し、クライアント機器はモデル要素を指定して排他の解除要求（キャンセル）を行い、サーバ機器はクライアント機器の要求に応じて当該モデルの排他を解除する。
【００３８】
クライアント機器は排他解除しようとするモデルＡを選択し、サーバ機器に排他解除要求を行う（Ｓ１１、Ｓ１２）。このとき、クライアント機器の排他制御要求機能２１は排他解除するモデルＡのＩＤとクライアント機器識別情報Ｂをサーバ機器に送信する。
【００３９】
サーバ機器の排他制御管理機能１２は、クライアント機器から受信したモデルＡのＩＤとクライアント機器識別情報Ｂのペアが、サーバ機器が持つ排他制御管理情報Ｃに登録されているか確認する（Ｓ１３）。登録済みの場合（モデルＡはクライアント機器Ｂが排他中）は、排他制御管理情報ＣからモデルＡのＩＤとクライアント機器識別情報Ｂのペアを削除する（Ｓ１４）。ここで、モデルＡは排他解除状態になる。この後、排他解除をクライアント機器に通知する（Ｓ１５）。
【００４０】
クライアント機器は、サーバ機器から受信した結果を表示し（Ｓ１６）、モデルＡを編集不可にする（Ｓ１７）。
【００４１】
（３）登録要求
図５に登録要求（登録１）の流れ図を示し、クライアント機器はモデルを指定して、登録要求を行う。サーバ機器はクライアント機器の要求に応じて、クライアント機器の内容を全クライアント機器に共通のモデルデータに反映し、そのモデルの排他解除を行う。
【００４２】
クライアント機器は登録するモデルＡを選択し、サーバ機器に登録要求を行う（Ｓ２１、Ｓ２２）。このとき、クライアント機器は登録するモデルＡのＩＤとクライアント機器識別情報Ｂと変更内容Ｃをサーバ機器に送信する。
【００４３】
サーバ機器は、クライアント機器から受信したモデルＡのＩＤとクライアント機器識別情報Ｂのペアが、サーバ機器が持つ排他制御管理情報Ｄに登録されているか確認する（Ｓ２３）。登録済みの場合（モデルＡはクライアント機器Ｂが排他中）は、クライアント機器から受信した変更内容Ｃを、クライアント機器から受信したモデルＡのＩＤにより識別した当該モデルＡに反映（登録処理）する（Ｓ２４）。その後、登録完了をクライアント機器に通知する（Ｓ２５）。未登録の場合、登録不可能をクライアント機器に通知する（Ｓ２６）。
【００４４】
クライアント機器は、サーバ機器から受信した結果を表示し（Ｓ２７）、登録失敗の場合はそれを開発者に通知し（Ｓ２８）、登録された場合はモデルＡの登録を通知する（Ｓ２９）。
【００４５】
図６は登録要求（登録２）の流れ図を示し、登録と同時に排他解除を行う場合である。同図が図５と異なる部分は、サーバ機器側で登録処理を行った後、前記の排他解除要求と同様に、サーバ機器が持つ排他制御管理情報（仮にＤとする）からモデルＡのＩＤとクライアント機器識別情報Ｂのペアを削除（排他情報を更新）する（Ｓ３０）。その後に登録完了をクライアント機器に通知する（Ｓ２５）。
【００４６】
クライアント機器は、サーバ機器から受信した結果を表示し（Ｓ２７）、登録成功の場合は登録したモデルＡを編集不可にする（Ｓ３１）。
【００４７】
なお、登録要求時にクライアント機器からサーバ機器に送信する情報として、「同時に排他解除をするかどうかの情報」を追加して、この情報が「同時に排他解除しない」場合には図５と同様の処理を行い、この情報が「同時に排他解除する」場合には図６と同様の処理を行うようにしても良い。
【００４８】
（４）排他強制解除
サーバ機器が排他中の特定のモデルの排他状態を強制的に解除する。この排他強制解除には、図１の共有データ等価機能１３，２２との協働で行う。
【００４９】
図１において、クライアント機器管理情報１５は、クライアント機器管理機能１１や排他制御管理機能１２で利用するための情報であり、各クライアント機器を識別するためのＩＤをまとめて管理しているデータファイルまたはデータベースである。ここで、クライアント機器とは排他の単位として扱われるものである。
【００５０】
また、排他制御管理情報１６は、モデルのＩＤとクライアント機器識別情報をペアにして管理し、モデルが特定のクライアント機器によって排他状態にされていることを把握するために用いるデータファイルまたはデータベースである。
【００５１】
モデルデータ１７は、モデルをモデルの集合として表現できるデータ構造であり、各モデルは個別のモデルデータを識別するためのＩＤが割り当てられる。例えば、モデルを集合モデルとモデル要素としてＩＤ管理し、集合モデル毎に所属するモデル要素を集合として管理できるようなデータ構造などである（図２参照）。
【００５２】
ここで、図２中の集合モデルは、クラス・インタフェース・列挙型・テンプレート等を指し、モデル要素はメソッド・フィールド・列挙子など集合モデルの構成要素を指す。モデルデータ１７への保存方式として、全クライアント機器に共通のデータ（ファイルやデータベースなど）と、各クライアント機器に個別の編集データ（ファイルやデータベースなど）として保存する方式をとる。モデルデータの保存方式として、全クライアント機器に共通な保存データのみで行う方式をとっても良い。
【００５３】
図２の例１は、集合モデル内にモデル要素をまとめて管理するデータ構造で、モデルＩＤを固定長配列で管理する。また、集合モデルがモデル要素を種類毎にまとめて管理しても良いし、モデルＩＤを可変長配列やリストで管理しても良い。ＩＤの範囲により区分けするデータ構造でも良い。
【００５４】
以下、排他強制解除における共有データの等価管理を具体例で説明する。
【００５５】
（具体例１）任意取得方式
共有データ等価機能として、あるクライアント機器Ａがサーバ機器に共有データを登録すると、サーバ機器はクライアント機器Ａ以外の各クライアント機器に「登録された」旨を通知する。Ａ以外の各クライアント機器は直ぐに登録内容を反映しない。このとき登録の記録が残っている。Ａ以外の各クライアント機器はサーバ機器に共有データ差分取得要求を別途行うことで、登録内容を反映する。
【００５６】
（具体例２）自動等価方式
共有データ等価機能として、あるクライアント機器Ａが共有データをサーバ機器に登録すると、サーバ機器はクライアント機器Ａ以外の各クライアント機器に自動的に登録内容を送信し、Ａ以外の各クライアント機器は直ぐに登録内容を反映する。
【００５７】
この場合、前記の（３）登録要求には、図７に排他制御管理（登録３）の流れ図を示すように、サーバ機器で登録処理を行うときに、登録要求したクライアント機器以外のすべてのクライアント機器に、登録モデルＡのＩＤと変更内容を付加して「他クライアント機器による、登録処理実行通知」を送信する（Ｓ３２）。この通知を受けたクライアント機器は、サーバ機器から受信した登録モデルＡのＩＤに対して、変更内容を反映させる。
【００５８】
（具体例３）クライアント機器の排他制御管理をユーザ単位で行う方式
図８にユーザ単位の排他制御管理模式図を示すように、サーバ機器のクライアント機器管理情報１５にクライアント機器識別情報として利用ユーザ名（開発者名など）を登録・管理し、登録ユーザＰ、Ｑ、Ｒ毎に排他の管理を行う。必要であれば、パスワードの設定を行う。
【００５９】
また、ＬＡＮ環境などにおいて、サーバ機器にアクセスしている端末名やＩＰアドレスなどを利用ユーザ名として登録・管理し、登録端末Ｘ、Ｙ、Ｚ毎に排他制御の管理を行っても良い。
【００６０】
（具体例４）クライアント機器の排他制御管理を排他データＩＤ単位で行う方式
図９に排他データＩＤの排他制御管理模式図を示すように、排他を行いたい単位毎に、クライアント機器２００がサーバ機器１００からＩＤの発行を受け、サーバ機器はそのＩＤ毎に排他の管理を行う。
【００６１】
排他用のＩＤは、クライアント機器がアプリケーション毎に指定できる。例えば、まず開発者Ｐがサーバ機器からＩＤの発行を受け、ＩＤは１となる。次に端末Ｘがサーバ機器からＩＤの発行を受け、ＩＤは２となる。
【００６２】
このように、前記の（変形例１）任意取得方式と同様の管理を行うことができる。この方式の場合、１つのクライアント機器端末で、一人の開発者が複数の排他アプリケーションを設定することも可能となる。例えば、まず端末ＹのアプリＡがサーバ機器からＩＤの発行を受け、ＩＤは１０１となる。次に同じ端末Ｙの異なるアプリＢがサーバ機器からＩＤの発行を受け、ＩＤは１０２となる。
【００６３】
このように、同じ開発者が同じ端末で複数のアプリケーションを使用して開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【００６４】
なお、本発明は、図１等に示した装置の一部又は全部の処理機能を処理手順としてもつ排他制御方法、またはこの方法をプログラムとして構成してコンピュータに実行させることができる。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施形態を示すソフトウェア開発支援システムの基本構成図。
【図２】モデルデータの構造例。
【図３】排他制御要求の流れ図。
【図４】排他解除要求の流れ図。
【図５】登録要求（登録１）の流れ図。
【図６】登録要求（登録２）の流れ図。
【図７】排他制御管理（登録３）の流れ図。
【図８】ユーザ単位の排他制御管理模式図。
【図９】排他データＩＤの排他制御管理模式図。
【図１０】同時に編集できないケース。
【図１１】同時に編集しても構わないケース。
【符号の説明】
【００６６】
１００  サーバ機器
２００  クライアント機器
１１  クライアント機器管理機能
１２  排他制御管理機能
１３  共有データ等価機能（サーバ機器側）
１４、２３  プログラムファイル作成機能
１５  クライアント機器管理情報
１６  排他制御管理情報
１７  モデルデータ
２１  排他制御要求機能
２２  共有データ等価機能（クライアント機器側）
【図１】
2009140443.tif 000003
【図２】
2009140443.tif 000004
【図３】
2009140443.tif 000005
【図４】
2009140443.tif 000006
【図５】
2009140443.tif 000007
【図６】
2009140443.tif 000008
【図７】
2009140443.tif 000009
【図８】
2009140443.tif 000010
【図９】
2009140443.tif 000011
【図１０】
2009140443.tif 000012
【図１１】
2009140443.tif 000013