ソフトウェア開発支援システム、排他制御方法およびプログラム
【課題】オブジェクト指向言語によるソフトウェアの開発に、ファイル単位やクラス単位およびそれらを構成するモデル要素単位での排他制御ができる。
【解決手段】クライアント機器200は、モデルの編集、排他解除、変更内容の登録、排他の強制解除をサーバ機器100に要求する排他制御要求機能21を備える。
サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータ17と、クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報15で各クライアント機器を管理するクライアント機器管理機能11と、モデルIDとクライアント機器識別情報をペアにした排他制御管理情報16で、モデルの排他状態を管理する排他制御管理機能12を備える。
【解決手段】クライアント機器200は、モデルの編集、排他解除、変更内容の登録、排他の強制解除をサーバ機器100に要求する排他制御要求機能21を備える。
サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータ17と、クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報15で各クライアント機器を管理するクライアント機器管理機能11と、モデルIDとクライアント機器識別情報をペアにした排他制御管理情報16で、モデルの排他状態を管理する排他制御管理機能12を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア開発支援システムに係り、特にオブジェクト指向言語によるソフトウェア共同開発におけるモデル要素単位の排他制御に関する。
【背景技術】
【0002】
ソースプログラムや設計書等のソフトウェアを複数の開発者が共同して開発する場合、ソフトウェアを構成する資源(プログラムなど)が互いに関連しない場合はなんら問題とならないが、同じ資源または資源間に依存関係がある場合には一人の開発者が開発している間は他の開発者による当該資源の変更を禁止する排他制御が行われる。この排他制御には例えば版数管理で行われる(例えば、特許文献1参照)。
【0003】
CやFortranといった構造化言語では関数単位でのファイル化ができるため、ファイル単位で排他制御しても、複数の開発者による共同作業において作業したいファイルが開発者間で重なることが少なく、ソフトウェア開発には支障とならない。
【0004】
一方、Java(登録商標)やC++、C#といったオブジェクト指向言語では、クラス毎にファイル化されることが多く、ファイル毎の排他制御では作業待ち時間が発生する割合が高まる。しかし、実際にはメソッドやフィールドの追加や削除など、排他の必要がない場合も多い。つまり、クラスの構成要素毎の排他は必要であるが、クラス全体を排他する必要は必ずしもない。
【特許文献1】特開平5−265722号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
オブジェクト指向言語による複数人の開発者で共同開発を行う場合、VSS(Visual Source Safe)などのファイル単位のRead/Write属性などによるファイル単位での排他制御管理ツールでは、作業したいファイルが重なることがしばしば起こり、作業効率が悪くなる。同様に、UML(Unified Modeling Language)に基づくビジュアルモデリング環境である、「Rational Rose Developer for Java」では、クラス単位での排他制御管理を行うが、作業したいクラスが重なることがしばしば起こり、作業効率が悪くなる。
【0006】
例えば、図10に同時に編集できないケースを示すように、クラスの同じ要素を開発者A,Bか編集する場合、開発者Aと開発者Bの作業順番によっては結果が異なるため、排他制御が必要になる。一方、図11に同時に編集しても構わないケースを示すように、クラスの要素として異なる要素を編集する場合、開発者Aと開発者Bの作業順番による最終結果に違いは生じない。現状のファイル単位あるいはクラス単位の排他制御では、図11のようなケースに対応できない。
【0007】
本発明の目的は、ファイル単位やクラス単位およびクラスやファイルを構成するモデル要素単位での排他制御ができるソフトウェア開発支援システム、排他制御方法およびこの方法のプログラムを提供することにある。
【課題を解決するための手段】
【0008】
前記の課題を解決するため、本発明は以下のシステム、方法およびプログラムを特徴とする。
【0009】
(システムの発明)
(1)オブジェクト指向言語によるソフトウェアの共同開発に、モデル要素単位での排他制御を行うソフトウェア開発支援システムであって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手段を備え、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手段と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルまたはモデル要素の排他状態を管理する排他制御管理手段とを備えたことを特徴とする。
【0010】
(2)前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造としたことを特徴とする。
【0011】
(3)前記クライアント機器管理手段は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする。
【0012】
(4)前記排他制御要求手段と排他制御管理手段による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手段と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手段と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手段と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手段と、
を備えたことを特徴とする。
【0013】
(5)前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手段を備え、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手段を備えたことを特徴とする。
【0014】
(6)前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手段は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手段、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手段を備えたことを特徴とする。
【0015】
(方法の発明)
(7)オブジェクト指向言語によるソフトウェアの共同開発に、モデル単位での排他制御を行う方法であって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手順を有し、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手順と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルの排他状態を管理する排他制御管理手順とを有することを特徴とする。
【0016】
(8)前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造を有することを特徴とする。
【0017】
(9)前記クライアント機器管理手順は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする。
【0018】
(10)前記排他制御要求手順と排他制御管理手順による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手順と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手順と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手順と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手順と、
を有することを特徴とする。
【0019】
(11)前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手順を有し、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手順を有することを特徴とする。
【0020】
(12)前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手順は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手順、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手順を有することを特徴とする。
【0021】
(プログラムの発明)
(13)上記の(7)〜(12)のいずれか1項に記載の排他制御方法における処理手順をコンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【0022】
以上のとおり、本発明によれば、ファイル単位やクラス単位およびクラスやファイルを構成するモデル要素単位での排他制御ができる。
【0023】
具体的には、
(1)モデル要素単位で排他制御を行うことにより、複数の開発者が同一クラス内の異なるモデル要素を同時に編集することができるようになる。
【0024】
(2)共有データ等価で任意取得方式を行うことにより、あるクライアント機器の登録を自クライアント機器に反映させることができる。
【0025】
(3)共有データ等価で自動等価方式を行うことにより、あるクライアント機器の登録を即時に全クライアント機器に反映させることができる。
【0026】
(4)ユーザ単位でクライアント機器の排他制御管理を行うことにより、異なる開発者や異なる端末で開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【0027】
(5)排他データをID単位でクライアント機器の排他制御管理を行うことにより、同じ開発者が同じ端末で複数のアブリケーションを使用して開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【発明を実施するための最良の形態】
【0028】
図1は、本発明の実施形態を示すソフトウェア開発支援システムの基本構成図であり、クラスの構成要素毎の排他制御を可能にする。
【0029】
図1において、ソフトウェア開発支援システムは、システム全体を管理するサーバ機器100と、このサーバ機器との通信を可能にした開発者毎の複数のクライアント機器200で構成する。サーバ機器100は、コンピュータ資源とこれを利用するソフトウェアとして、クライアント機器管理機能11と排他制御管理機能12と共有データ等価機能13とプログラムファイル作成機能14を設ける。クライアント機器200は、コンピュータ資源とこれを利用するソフトウェアとして、排他制御要求機能21と共有データ等価機能22とプログラムファイル作成機能23を設ける。
【0030】
さらに、サーバ機器100は、上記の各機能による排他制御に使用する情報として、クライアント機器管理情報15と排他制御管理情報16およびモデルデータ17を用意する。
【0031】
システムで取り扱うモデルは、開発対象とするシステムのクラスをモデル要素毎に分けて管理するデータフォーマットとしたモデルデータとしてサーバ機器に登録/管理し、このモデルデータには排他に必要な識別IDを割り当てる。例えば、図2にモデルデータの構造例を示すように、モデルは集合モデルとモデル要素に分類でき、集合モデル毎に所属するモデル要素を集合として識別IDで管理できるようなデータ構造とする。
【0032】
システムで管理するプログラムファイルは、上記モデルデータからプログラムファイル作成機能13または23がもつアルゴリズムによって生成する。このプログラムファイル作成機能は、クライアント機器かサーバ機器のいずれか一方、もしくは個々に設けても良い。
【0033】
サーバ機器100のクライアント機器管理機能11はクライアント機器管理情報としてクライアント機器識別情報などをもつ。サーバ機器100の排他制御管理機能12は、排他制御管理情報としてモデルのIDとクライアント機器識別情報などをもち、排他制御要求機能21からの排他制御要求に対して、モデル単位の排他制御管理を行う。サーバ機器100または各クライアント機器200の共有データ等価機能13または22は、別のクライアント機器がサーバ機器に登録したモデルデータを、起動中でも取り込む機能を持つ。以下、各機能による排他制御を詳細に説明する。
【0034】
(1)排他制御要求
図3に排他制御要求の流れ図を示す。クライアント機器は開発者があるモデルを選択したときに、排他制御要求機能21がサーバ機器100に排他制御要求を行う(S1、S2)。この要求には、排他したいモデル(仮にAとする)のIDと排他制御要求するクライアント機器の識別情報(仮にBとする)で行う。
【0035】
サーバ機器は、クライアント機器の排他制御要求に応じて排他制御管理機能12が排他処理を行い、排他の可否をクライアント機器に通知する。詳細には、クライアント機器から受信したモデルAのIDが、サーバ機器が持つ排他制御管理情報(仮にCとする)に登録されているか確認し(S3)、既に登録済み(既にモデルAは排他中)の場合は、排他不可能をクライアント機器に通知し(S4)、未登録の場合(まだモデルAは排他されていない)は、排他制御管理情報CにモデルAのIDとクライアント機器識別情報Bをペアで登録する(S5)。ここで、モデルAは排他状態になり、排他可能をクライアント機器に通知する(S6)。
【0036】
クライアント機器は、サーバ機器から受信した結果を表示し(S7)、排他できない場合はそれを開発者に通知し(S8)、排他可能の場合はモデルAを編集可能にする(S9)。
【0037】
(2)排他解除要求
図4に排他解除要求の流れ図を示し、クライアント機器はモデル要素を指定して排他の解除要求(キャンセル)を行い、サーバ機器はクライアント機器の要求に応じて当該モデルの排他を解除する。
【0038】
クライアント機器は排他解除しようとするモデルAを選択し、サーバ機器に排他解除要求を行う(S11、S12)。このとき、クライアント機器の排他制御要求機能21は排他解除するモデルAのIDとクライアント機器識別情報Bをサーバ機器に送信する。
【0039】
サーバ機器の排他制御管理機能12は、クライアント機器から受信したモデルAのIDとクライアント機器識別情報Bのペアが、サーバ機器が持つ排他制御管理情報Cに登録されているか確認する(S13)。登録済みの場合(モデルAはクライアント機器Bが排他中)は、排他制御管理情報CからモデルAのIDとクライアント機器識別情報Bのペアを削除する(S14)。ここで、モデルAは排他解除状態になる。この後、排他解除をクライアント機器に通知する(S15)。
【0040】
クライアント機器は、サーバ機器から受信した結果を表示し(S16)、モデルAを編集不可にする(S17)。
【0041】
(3)登録要求
図5に登録要求(登録1)の流れ図を示し、クライアント機器はモデルを指定して、登録要求を行う。サーバ機器はクライアント機器の要求に応じて、クライアント機器の内容を全クライアント機器に共通のモデルデータに反映し、そのモデルの排他解除を行う。
【0042】
クライアント機器は登録するモデルAを選択し、サーバ機器に登録要求を行う(S21、S22)。このとき、クライアント機器は登録するモデルAのIDとクライアント機器識別情報Bと変更内容Cをサーバ機器に送信する。
【0043】
サーバ機器は、クライアント機器から受信したモデルAのIDとクライアント機器識別情報Bのペアが、サーバ機器が持つ排他制御管理情報Dに登録されているか確認する(S23)。登録済みの場合(モデルAはクライアント機器Bが排他中)は、クライアント機器から受信した変更内容Cを、クライアント機器から受信したモデルAのIDにより識別した当該モデルAに反映(登録処理)する(S24)。その後、登録完了をクライアント機器に通知する(S25)。未登録の場合、登録不可能をクライアント機器に通知する(S26)。
【0044】
クライアント機器は、サーバ機器から受信した結果を表示し(S27)、登録失敗の場合はそれを開発者に通知し(S28)、登録された場合はモデルAの登録を通知する(S29)。
【0045】
図6は登録要求(登録2)の流れ図を示し、登録と同時に排他解除を行う場合である。同図が図5と異なる部分は、サーバ機器側で登録処理を行った後、前記の排他解除要求と同様に、サーバ機器が持つ排他制御管理情報(仮にDとする)からモデルAのIDとクライアント機器識別情報Bのペアを削除(排他情報を更新)する(S30)。その後に登録完了をクライアント機器に通知する(S25)。
【0046】
クライアント機器は、サーバ機器から受信した結果を表示し(S27)、登録成功の場合は登録したモデルAを編集不可にする(S31)。
【0047】
なお、登録要求時にクライアント機器からサーバ機器に送信する情報として、「同時に排他解除をするかどうかの情報」を追加して、この情報が「同時に排他解除しない」場合には図5と同様の処理を行い、この情報が「同時に排他解除する」場合には図6と同様の処理を行うようにしても良い。
【0048】
(4)排他強制解除
サーバ機器が排他中の特定のモデルの排他状態を強制的に解除する。この排他強制解除には、図1の共有データ等価機能13,22との協働で行う。
【0049】
図1において、クライアント機器管理情報15は、クライアント機器管理機能11や排他制御管理機能12で利用するための情報であり、各クライアント機器を識別するためのIDをまとめて管理しているデータファイルまたはデータベースである。ここで、クライアント機器とは排他の単位として扱われるものである。
【0050】
また、排他制御管理情報16は、モデルのIDとクライアント機器識別情報をペアにして管理し、モデルが特定のクライアント機器によって排他状態にされていることを把握するために用いるデータファイルまたはデータベースである。
【0051】
モデルデータ17は、モデルをモデルの集合として表現できるデータ構造であり、各モデルは個別のモデルデータを識別するためのIDが割り当てられる。例えば、モデルを集合モデルとモデル要素としてID管理し、集合モデル毎に所属するモデル要素を集合として管理できるようなデータ構造などである(図2参照)。
【0052】
ここで、図2中の集合モデルは、クラス・インタフェース・列挙型・テンプレート等を指し、モデル要素はメソッド・フィールド・列挙子など集合モデルの構成要素を指す。モデルデータ17への保存方式として、全クライアント機器に共通のデータ(ファイルやデータベースなど)と、各クライアント機器に個別の編集データ(ファイルやデータベースなど)として保存する方式をとる。モデルデータの保存方式として、全クライアント機器に共通な保存データのみで行う方式をとっても良い。
【0053】
図2の例1は、集合モデル内にモデル要素をまとめて管理するデータ構造で、モデルIDを固定長配列で管理する。また、集合モデルがモデル要素を種類毎にまとめて管理しても良いし、モデルIDを可変長配列やリストで管理しても良い。IDの範囲により区分けするデータ構造でも良い。
【0054】
以下、排他強制解除における共有データの等価管理を具体例で説明する。
【0055】
(具体例1)任意取得方式
共有データ等価機能として、あるクライアント機器Aがサーバ機器に共有データを登録すると、サーバ機器はクライアント機器A以外の各クライアント機器に「登録された」旨を通知する。A以外の各クライアント機器は直ぐに登録内容を反映しない。このとき登録の記録が残っている。A以外の各クライアント機器はサーバ機器に共有データ差分取得要求を別途行うことで、登録内容を反映する。
【0056】
(具体例2)自動等価方式
共有データ等価機能として、あるクライアント機器Aが共有データをサーバ機器に登録すると、サーバ機器はクライアント機器A以外の各クライアント機器に自動的に登録内容を送信し、A以外の各クライアント機器は直ぐに登録内容を反映する。
【0057】
この場合、前記の(3)登録要求には、図7に排他制御管理(登録3)の流れ図を示すように、サーバ機器で登録処理を行うときに、登録要求したクライアント機器以外のすべてのクライアント機器に、登録モデルAのIDと変更内容を付加して「他クライアント機器による、登録処理実行通知」を送信する(S32)。この通知を受けたクライアント機器は、サーバ機器から受信した登録モデルAのIDに対して、変更内容を反映させる。
【0058】
(具体例3)クライアント機器の排他制御管理をユーザ単位で行う方式
図8にユーザ単位の排他制御管理模式図を示すように、サーバ機器のクライアント機器管理情報15にクライアント機器識別情報として利用ユーザ名(開発者名など)を登録・管理し、登録ユーザP、Q、R毎に排他の管理を行う。必要であれば、パスワードの設定を行う。
【0059】
また、LAN環境などにおいて、サーバ機器にアクセスしている端末名やIPアドレスなどを利用ユーザ名として登録・管理し、登録端末X、Y、Z毎に排他制御の管理を行っても良い。
【0060】
(具体例4)クライアント機器の排他制御管理を排他データID単位で行う方式
図9に排他データIDの排他制御管理模式図を示すように、排他を行いたい単位毎に、クライアント機器200がサーバ機器100からIDの発行を受け、サーバ機器はそのID毎に排他の管理を行う。
【0061】
排他用のIDは、クライアント機器がアプリケーション毎に指定できる。例えば、まず開発者Pがサーバ機器からIDの発行を受け、IDは1となる。次に端末Xがサーバ機器からIDの発行を受け、IDは2となる。
【0062】
このように、前記の(変形例1)任意取得方式と同様の管理を行うことができる。この方式の場合、1つのクライアント機器端末で、一人の開発者が複数の排他アプリケーションを設定することも可能となる。例えば、まず端末YのアプリAがサーバ機器からIDの発行を受け、IDは101となる。次に同じ端末Yの異なるアプリBがサーバ機器からIDの発行を受け、IDは102となる。
【0063】
このように、同じ開発者が同じ端末で複数のアプリケーションを使用して開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【0064】
なお、本発明は、図1等に示した装置の一部又は全部の処理機能を処理手順としてもつ排他制御方法、またはこの方法をプログラムとして構成してコンピュータに実行させることができる。
【図面の簡単な説明】
【0065】
【図1】本発明の実施形態を示すソフトウェア開発支援システムの基本構成図。
【図2】モデルデータの構造例。
【図3】排他制御要求の流れ図。
【図4】排他解除要求の流れ図。
【図5】登録要求(登録1)の流れ図。
【図6】登録要求(登録2)の流れ図。
【図7】排他制御管理(登録3)の流れ図。
【図8】ユーザ単位の排他制御管理模式図。
【図9】排他データIDの排他制御管理模式図。
【図10】同時に編集できないケース。
【図11】同時に編集しても構わないケース。
【符号の説明】
【0066】
100 サーバ機器
200 クライアント機器
11 クライアント機器管理機能
12 排他制御管理機能
13 共有データ等価機能(サーバ機器側)
14、23 プログラムファイル作成機能
15 クライアント機器管理情報
16 排他制御管理情報
17 モデルデータ
21 排他制御要求機能
22 共有データ等価機能(クライアント機器側)
【技術分野】
【0001】
本発明は、ソフトウェア開発支援システムに係り、特にオブジェクト指向言語によるソフトウェア共同開発におけるモデル要素単位の排他制御に関する。
【背景技術】
【0002】
ソースプログラムや設計書等のソフトウェアを複数の開発者が共同して開発する場合、ソフトウェアを構成する資源(プログラムなど)が互いに関連しない場合はなんら問題とならないが、同じ資源または資源間に依存関係がある場合には一人の開発者が開発している間は他の開発者による当該資源の変更を禁止する排他制御が行われる。この排他制御には例えば版数管理で行われる(例えば、特許文献1参照)。
【0003】
CやFortranといった構造化言語では関数単位でのファイル化ができるため、ファイル単位で排他制御しても、複数の開発者による共同作業において作業したいファイルが開発者間で重なることが少なく、ソフトウェア開発には支障とならない。
【0004】
一方、Java(登録商標)やC++、C#といったオブジェクト指向言語では、クラス毎にファイル化されることが多く、ファイル毎の排他制御では作業待ち時間が発生する割合が高まる。しかし、実際にはメソッドやフィールドの追加や削除など、排他の必要がない場合も多い。つまり、クラスの構成要素毎の排他は必要であるが、クラス全体を排他する必要は必ずしもない。
【特許文献1】特開平5−265722号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
オブジェクト指向言語による複数人の開発者で共同開発を行う場合、VSS(Visual Source Safe)などのファイル単位のRead/Write属性などによるファイル単位での排他制御管理ツールでは、作業したいファイルが重なることがしばしば起こり、作業効率が悪くなる。同様に、UML(Unified Modeling Language)に基づくビジュアルモデリング環境である、「Rational Rose Developer for Java」では、クラス単位での排他制御管理を行うが、作業したいクラスが重なることがしばしば起こり、作業効率が悪くなる。
【0006】
例えば、図10に同時に編集できないケースを示すように、クラスの同じ要素を開発者A,Bか編集する場合、開発者Aと開発者Bの作業順番によっては結果が異なるため、排他制御が必要になる。一方、図11に同時に編集しても構わないケースを示すように、クラスの要素として異なる要素を編集する場合、開発者Aと開発者Bの作業順番による最終結果に違いは生じない。現状のファイル単位あるいはクラス単位の排他制御では、図11のようなケースに対応できない。
【0007】
本発明の目的は、ファイル単位やクラス単位およびクラスやファイルを構成するモデル要素単位での排他制御ができるソフトウェア開発支援システム、排他制御方法およびこの方法のプログラムを提供することにある。
【課題を解決するための手段】
【0008】
前記の課題を解決するため、本発明は以下のシステム、方法およびプログラムを特徴とする。
【0009】
(システムの発明)
(1)オブジェクト指向言語によるソフトウェアの共同開発に、モデル要素単位での排他制御を行うソフトウェア開発支援システムであって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手段を備え、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手段と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルまたはモデル要素の排他状態を管理する排他制御管理手段とを備えたことを特徴とする。
【0010】
(2)前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造としたことを特徴とする。
【0011】
(3)前記クライアント機器管理手段は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする。
【0012】
(4)前記排他制御要求手段と排他制御管理手段による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手段と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手段と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手段と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手段と、
を備えたことを特徴とする。
【0013】
(5)前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手段を備え、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手段を備えたことを特徴とする。
【0014】
(6)前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手段は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手段、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手段を備えたことを特徴とする。
【0015】
(方法の発明)
(7)オブジェクト指向言語によるソフトウェアの共同開発に、モデル単位での排他制御を行う方法であって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手順を有し、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手順と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルの排他状態を管理する排他制御管理手順とを有することを特徴とする。
【0016】
(8)前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造を有することを特徴とする。
【0017】
(9)前記クライアント機器管理手順は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする。
【0018】
(10)前記排他制御要求手順と排他制御管理手順による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手順と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手順と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手順と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手順と、
を有することを特徴とする。
【0019】
(11)前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手順を有し、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手順を有することを特徴とする。
【0020】
(12)前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手順は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手順、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手順を有することを特徴とする。
【0021】
(プログラムの発明)
(13)上記の(7)〜(12)のいずれか1項に記載の排他制御方法における処理手順をコンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【0022】
以上のとおり、本発明によれば、ファイル単位やクラス単位およびクラスやファイルを構成するモデル要素単位での排他制御ができる。
【0023】
具体的には、
(1)モデル要素単位で排他制御を行うことにより、複数の開発者が同一クラス内の異なるモデル要素を同時に編集することができるようになる。
【0024】
(2)共有データ等価で任意取得方式を行うことにより、あるクライアント機器の登録を自クライアント機器に反映させることができる。
【0025】
(3)共有データ等価で自動等価方式を行うことにより、あるクライアント機器の登録を即時に全クライアント機器に反映させることができる。
【0026】
(4)ユーザ単位でクライアント機器の排他制御管理を行うことにより、異なる開発者や異なる端末で開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【0027】
(5)排他データをID単位でクライアント機器の排他制御管理を行うことにより、同じ開発者が同じ端末で複数のアブリケーションを使用して開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【発明を実施するための最良の形態】
【0028】
図1は、本発明の実施形態を示すソフトウェア開発支援システムの基本構成図であり、クラスの構成要素毎の排他制御を可能にする。
【0029】
図1において、ソフトウェア開発支援システムは、システム全体を管理するサーバ機器100と、このサーバ機器との通信を可能にした開発者毎の複数のクライアント機器200で構成する。サーバ機器100は、コンピュータ資源とこれを利用するソフトウェアとして、クライアント機器管理機能11と排他制御管理機能12と共有データ等価機能13とプログラムファイル作成機能14を設ける。クライアント機器200は、コンピュータ資源とこれを利用するソフトウェアとして、排他制御要求機能21と共有データ等価機能22とプログラムファイル作成機能23を設ける。
【0030】
さらに、サーバ機器100は、上記の各機能による排他制御に使用する情報として、クライアント機器管理情報15と排他制御管理情報16およびモデルデータ17を用意する。
【0031】
システムで取り扱うモデルは、開発対象とするシステムのクラスをモデル要素毎に分けて管理するデータフォーマットとしたモデルデータとしてサーバ機器に登録/管理し、このモデルデータには排他に必要な識別IDを割り当てる。例えば、図2にモデルデータの構造例を示すように、モデルは集合モデルとモデル要素に分類でき、集合モデル毎に所属するモデル要素を集合として識別IDで管理できるようなデータ構造とする。
【0032】
システムで管理するプログラムファイルは、上記モデルデータからプログラムファイル作成機能13または23がもつアルゴリズムによって生成する。このプログラムファイル作成機能は、クライアント機器かサーバ機器のいずれか一方、もしくは個々に設けても良い。
【0033】
サーバ機器100のクライアント機器管理機能11はクライアント機器管理情報としてクライアント機器識別情報などをもつ。サーバ機器100の排他制御管理機能12は、排他制御管理情報としてモデルのIDとクライアント機器識別情報などをもち、排他制御要求機能21からの排他制御要求に対して、モデル単位の排他制御管理を行う。サーバ機器100または各クライアント機器200の共有データ等価機能13または22は、別のクライアント機器がサーバ機器に登録したモデルデータを、起動中でも取り込む機能を持つ。以下、各機能による排他制御を詳細に説明する。
【0034】
(1)排他制御要求
図3に排他制御要求の流れ図を示す。クライアント機器は開発者があるモデルを選択したときに、排他制御要求機能21がサーバ機器100に排他制御要求を行う(S1、S2)。この要求には、排他したいモデル(仮にAとする)のIDと排他制御要求するクライアント機器の識別情報(仮にBとする)で行う。
【0035】
サーバ機器は、クライアント機器の排他制御要求に応じて排他制御管理機能12が排他処理を行い、排他の可否をクライアント機器に通知する。詳細には、クライアント機器から受信したモデルAのIDが、サーバ機器が持つ排他制御管理情報(仮にCとする)に登録されているか確認し(S3)、既に登録済み(既にモデルAは排他中)の場合は、排他不可能をクライアント機器に通知し(S4)、未登録の場合(まだモデルAは排他されていない)は、排他制御管理情報CにモデルAのIDとクライアント機器識別情報Bをペアで登録する(S5)。ここで、モデルAは排他状態になり、排他可能をクライアント機器に通知する(S6)。
【0036】
クライアント機器は、サーバ機器から受信した結果を表示し(S7)、排他できない場合はそれを開発者に通知し(S8)、排他可能の場合はモデルAを編集可能にする(S9)。
【0037】
(2)排他解除要求
図4に排他解除要求の流れ図を示し、クライアント機器はモデル要素を指定して排他の解除要求(キャンセル)を行い、サーバ機器はクライアント機器の要求に応じて当該モデルの排他を解除する。
【0038】
クライアント機器は排他解除しようとするモデルAを選択し、サーバ機器に排他解除要求を行う(S11、S12)。このとき、クライアント機器の排他制御要求機能21は排他解除するモデルAのIDとクライアント機器識別情報Bをサーバ機器に送信する。
【0039】
サーバ機器の排他制御管理機能12は、クライアント機器から受信したモデルAのIDとクライアント機器識別情報Bのペアが、サーバ機器が持つ排他制御管理情報Cに登録されているか確認する(S13)。登録済みの場合(モデルAはクライアント機器Bが排他中)は、排他制御管理情報CからモデルAのIDとクライアント機器識別情報Bのペアを削除する(S14)。ここで、モデルAは排他解除状態になる。この後、排他解除をクライアント機器に通知する(S15)。
【0040】
クライアント機器は、サーバ機器から受信した結果を表示し(S16)、モデルAを編集不可にする(S17)。
【0041】
(3)登録要求
図5に登録要求(登録1)の流れ図を示し、クライアント機器はモデルを指定して、登録要求を行う。サーバ機器はクライアント機器の要求に応じて、クライアント機器の内容を全クライアント機器に共通のモデルデータに反映し、そのモデルの排他解除を行う。
【0042】
クライアント機器は登録するモデルAを選択し、サーバ機器に登録要求を行う(S21、S22)。このとき、クライアント機器は登録するモデルAのIDとクライアント機器識別情報Bと変更内容Cをサーバ機器に送信する。
【0043】
サーバ機器は、クライアント機器から受信したモデルAのIDとクライアント機器識別情報Bのペアが、サーバ機器が持つ排他制御管理情報Dに登録されているか確認する(S23)。登録済みの場合(モデルAはクライアント機器Bが排他中)は、クライアント機器から受信した変更内容Cを、クライアント機器から受信したモデルAのIDにより識別した当該モデルAに反映(登録処理)する(S24)。その後、登録完了をクライアント機器に通知する(S25)。未登録の場合、登録不可能をクライアント機器に通知する(S26)。
【0044】
クライアント機器は、サーバ機器から受信した結果を表示し(S27)、登録失敗の場合はそれを開発者に通知し(S28)、登録された場合はモデルAの登録を通知する(S29)。
【0045】
図6は登録要求(登録2)の流れ図を示し、登録と同時に排他解除を行う場合である。同図が図5と異なる部分は、サーバ機器側で登録処理を行った後、前記の排他解除要求と同様に、サーバ機器が持つ排他制御管理情報(仮にDとする)からモデルAのIDとクライアント機器識別情報Bのペアを削除(排他情報を更新)する(S30)。その後に登録完了をクライアント機器に通知する(S25)。
【0046】
クライアント機器は、サーバ機器から受信した結果を表示し(S27)、登録成功の場合は登録したモデルAを編集不可にする(S31)。
【0047】
なお、登録要求時にクライアント機器からサーバ機器に送信する情報として、「同時に排他解除をするかどうかの情報」を追加して、この情報が「同時に排他解除しない」場合には図5と同様の処理を行い、この情報が「同時に排他解除する」場合には図6と同様の処理を行うようにしても良い。
【0048】
(4)排他強制解除
サーバ機器が排他中の特定のモデルの排他状態を強制的に解除する。この排他強制解除には、図1の共有データ等価機能13,22との協働で行う。
【0049】
図1において、クライアント機器管理情報15は、クライアント機器管理機能11や排他制御管理機能12で利用するための情報であり、各クライアント機器を識別するためのIDをまとめて管理しているデータファイルまたはデータベースである。ここで、クライアント機器とは排他の単位として扱われるものである。
【0050】
また、排他制御管理情報16は、モデルのIDとクライアント機器識別情報をペアにして管理し、モデルが特定のクライアント機器によって排他状態にされていることを把握するために用いるデータファイルまたはデータベースである。
【0051】
モデルデータ17は、モデルをモデルの集合として表現できるデータ構造であり、各モデルは個別のモデルデータを識別するためのIDが割り当てられる。例えば、モデルを集合モデルとモデル要素としてID管理し、集合モデル毎に所属するモデル要素を集合として管理できるようなデータ構造などである(図2参照)。
【0052】
ここで、図2中の集合モデルは、クラス・インタフェース・列挙型・テンプレート等を指し、モデル要素はメソッド・フィールド・列挙子など集合モデルの構成要素を指す。モデルデータ17への保存方式として、全クライアント機器に共通のデータ(ファイルやデータベースなど)と、各クライアント機器に個別の編集データ(ファイルやデータベースなど)として保存する方式をとる。モデルデータの保存方式として、全クライアント機器に共通な保存データのみで行う方式をとっても良い。
【0053】
図2の例1は、集合モデル内にモデル要素をまとめて管理するデータ構造で、モデルIDを固定長配列で管理する。また、集合モデルがモデル要素を種類毎にまとめて管理しても良いし、モデルIDを可変長配列やリストで管理しても良い。IDの範囲により区分けするデータ構造でも良い。
【0054】
以下、排他強制解除における共有データの等価管理を具体例で説明する。
【0055】
(具体例1)任意取得方式
共有データ等価機能として、あるクライアント機器Aがサーバ機器に共有データを登録すると、サーバ機器はクライアント機器A以外の各クライアント機器に「登録された」旨を通知する。A以外の各クライアント機器は直ぐに登録内容を反映しない。このとき登録の記録が残っている。A以外の各クライアント機器はサーバ機器に共有データ差分取得要求を別途行うことで、登録内容を反映する。
【0056】
(具体例2)自動等価方式
共有データ等価機能として、あるクライアント機器Aが共有データをサーバ機器に登録すると、サーバ機器はクライアント機器A以外の各クライアント機器に自動的に登録内容を送信し、A以外の各クライアント機器は直ぐに登録内容を反映する。
【0057】
この場合、前記の(3)登録要求には、図7に排他制御管理(登録3)の流れ図を示すように、サーバ機器で登録処理を行うときに、登録要求したクライアント機器以外のすべてのクライアント機器に、登録モデルAのIDと変更内容を付加して「他クライアント機器による、登録処理実行通知」を送信する(S32)。この通知を受けたクライアント機器は、サーバ機器から受信した登録モデルAのIDに対して、変更内容を反映させる。
【0058】
(具体例3)クライアント機器の排他制御管理をユーザ単位で行う方式
図8にユーザ単位の排他制御管理模式図を示すように、サーバ機器のクライアント機器管理情報15にクライアント機器識別情報として利用ユーザ名(開発者名など)を登録・管理し、登録ユーザP、Q、R毎に排他の管理を行う。必要であれば、パスワードの設定を行う。
【0059】
また、LAN環境などにおいて、サーバ機器にアクセスしている端末名やIPアドレスなどを利用ユーザ名として登録・管理し、登録端末X、Y、Z毎に排他制御の管理を行っても良い。
【0060】
(具体例4)クライアント機器の排他制御管理を排他データID単位で行う方式
図9に排他データIDの排他制御管理模式図を示すように、排他を行いたい単位毎に、クライアント機器200がサーバ機器100からIDの発行を受け、サーバ機器はそのID毎に排他の管理を行う。
【0061】
排他用のIDは、クライアント機器がアプリケーション毎に指定できる。例えば、まず開発者Pがサーバ機器からIDの発行を受け、IDは1となる。次に端末Xがサーバ機器からIDの発行を受け、IDは2となる。
【0062】
このように、前記の(変形例1)任意取得方式と同様の管理を行うことができる。この方式の場合、1つのクライアント機器端末で、一人の開発者が複数の排他アプリケーションを設定することも可能となる。例えば、まず端末YのアプリAがサーバ機器からIDの発行を受け、IDは101となる。次に同じ端末Yの異なるアプリBがサーバ機器からIDの発行を受け、IDは102となる。
【0063】
このように、同じ開発者が同じ端末で複数のアプリケーションを使用して開発を行っても、異なるクライアント機器として排他制御管理を行うことができる。
【0064】
なお、本発明は、図1等に示した装置の一部又は全部の処理機能を処理手順としてもつ排他制御方法、またはこの方法をプログラムとして構成してコンピュータに実行させることができる。
【図面の簡単な説明】
【0065】
【図1】本発明の実施形態を示すソフトウェア開発支援システムの基本構成図。
【図2】モデルデータの構造例。
【図3】排他制御要求の流れ図。
【図4】排他解除要求の流れ図。
【図5】登録要求(登録1)の流れ図。
【図6】登録要求(登録2)の流れ図。
【図7】排他制御管理(登録3)の流れ図。
【図8】ユーザ単位の排他制御管理模式図。
【図9】排他データIDの排他制御管理模式図。
【図10】同時に編集できないケース。
【図11】同時に編集しても構わないケース。
【符号の説明】
【0066】
100 サーバ機器
200 クライアント機器
11 クライアント機器管理機能
12 排他制御管理機能
13 共有データ等価機能(サーバ機器側)
14、23 プログラムファイル作成機能
15 クライアント機器管理情報
16 排他制御管理情報
17 モデルデータ
21 排他制御要求機能
22 共有データ等価機能(クライアント機器側)
【特許請求の範囲】
【請求項1】
オブジェクト指向言語によるソフトウェアの共同開発に、モデル要素単位での排他制御を行うソフトウェア開発支援システムであって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手段を備え、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手段と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルまたはモデル要素の排他状態を管理する排他制御管理手段とを備えたことを特徴とするソフトウェア開発支援システム。
【請求項2】
前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造としたことを特徴とする請求項1に記載のソフトウェア開発支援システム。
【請求項3】
前記クライアント機器管理手段は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする請求項1に記載のソフトウェア開発支援システム。
【請求項4】
前記排他制御要求手段と排他制御管理手段による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手段と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手段と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手段と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手段と、
を備えたことを特徴とする請求項1〜3のいずれか1項に記載のソフトウェア開発支援システム。
【請求項5】
前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手段を備え、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手段を備えたことを特徴とする請求項1〜4いずれか1項に記載のソフトウェア開発支援システム。
【請求項6】
前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手段は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手段、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手段を備えたことを特徴とする請求項5に記載のソフトウェア開発支援システム。
【請求項7】
オブジェクト指向言語によるソフトウェアの共同開発に、モデル単位での排他制御を行う方法であって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手順を有し、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手順と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルの排他状態を管理する排他制御管理手順とを有することを特徴とする排他制御方法。
【請求項8】
前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造を有することを特徴とする請求項7に記載の排他制御方法。
【請求項9】
前記クライアント機器管理手順は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする請求項7に記載の排他制御方法。
【請求項10】
前記排他制御要求手順と排他制御管理手順による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手順と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手順と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手順と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手順と、
を有することを特徴とする請求項7〜9のいずれか1項に記載の排他制御方法。
【請求項11】
前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手順を有し、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手順を有することを特徴とする請求項7〜10のいずれか1項に記載の排他制御方法。
【請求項12】
前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手順は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手順、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手順を有することを特徴とする請求項11に記載の排他制御方法。
【請求項13】
請求項7〜12のいずれか1項に記載の排他制御方法における処理手順をコンピュータで実行可能に構成したことを特徴とするプログラム。
【請求項1】
オブジェクト指向言語によるソフトウェアの共同開発に、モデル要素単位での排他制御を行うソフトウェア開発支援システムであって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手段を備え、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手段と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルまたはモデル要素の排他状態を管理する排他制御管理手段とを備えたことを特徴とするソフトウェア開発支援システム。
【請求項2】
前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造としたことを特徴とする請求項1に記載のソフトウェア開発支援システム。
【請求項3】
前記クライアント機器管理手段は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする請求項1に記載のソフトウェア開発支援システム。
【請求項4】
前記排他制御要求手段と排他制御管理手段による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手段と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手段と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手段と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手段と、
を備えたことを特徴とする請求項1〜3のいずれか1項に記載のソフトウェア開発支援システム。
【請求項5】
前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手段を備え、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手段を備えたことを特徴とする請求項1〜4いずれか1項に記載のソフトウェア開発支援システム。
【請求項6】
前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手段は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手段、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手段を備えたことを特徴とする請求項5に記載のソフトウェア開発支援システム。
【請求項7】
オブジェクト指向言語によるソフトウェアの共同開発に、モデル単位での排他制御を行う方法であって、
システムの全体を管理するサーバ機器と、このサーバ機器との通信を可能にした開発者毎のクライアント機器を備え、
前記クライアント機器は、モデルの編集、排他解除、変更内容の登録、排他の強制解除を前記サーバ機器に要求する排他制御要求手順を有し、
前記サーバ機器は、個別に識別するためのモデルIDを割り当てたモデルの集合として表現できるデータ構造のモデルデータと、前記クライアント機器からの排他制御要求に対し、クライアント機器識別情報をまとめて管理するクライアント機器管理情報で各クライアント機器を管理するクライアント機器管理手順と、前記モデルIDと前記クライアント機器識別情報をペアにした排他制御管理情報で、モデルの排他状態を管理する排他制御管理手順とを有することを特徴とする排他制御方法。
【請求項8】
前記モデルデータは、集合モデル内にモデル要素をまとめて管理するデータ構造、または集合モデル内にモデル要素を種類毎にまとめて管理するデータ構造、または集合モデル内にモデル要素をまとめて管理しIDの範囲により区分けするデータ構造を有することを特徴とする請求項7に記載の排他制御方法。
【請求項9】
前記クライアント機器管理手順は、ユーザ名または端末名またはIPアドレスをクライアント機器識別情報として登録、またはクライアント機器が前記サーバ機器にクライアント機器情報を登録するときにサーバ機器が排他データIDを発行してそのIDをクライアント機器識別情報として登録することを特徴とする請求項7に記載の排他制御方法。
【請求項10】
前記排他制御要求手順と排他制御管理手順による排他制御は、
クライアント機器が編集したいモデルを排他制御要求によりサーバ機器に送信してこのモデルを排他する手順と、
クライアント機器が排他解除したいモデルを排他解除要求によりサーバ機器に送信してこのモデルを排他解除する手順と、
クライアント機器が変更内容を登録したいモデルを登録要求によりサーバ機器に送信してこのモデルを登録する手順と、
クライアント機器が排他を強制解除したいモデルを排他強制解除要求によりサーバ機器に送信してこのモデルを排他強制解除する手順と、
を有することを特徴とする請求項7〜9のいずれか1項に記載の排他制御方法。
【請求項11】
前記クライアント機器は、モデルになる共有データを前記サーバ機器に登録する共有データ等価手順を有し、
前記サーバ機器は、登録を行ったクライアント機器以外の各クライアント機器に共有データが登録された旨の通知または変更内容の通知を行う共有データ等価手順を有することを特徴とする請求項7〜10のいずれか1項に記載の排他制御方法。
【請求項12】
前記共有データが登録された旨の通知を受けたクライアント機器の共有データ等価手順は、
該登録の通知のみを受信し、サーバ機器に別途に要求する共有データ差分取得要求により共有データへの反映処理を行う任意取得手順、
または、クライアント機器により共有データが登録された時に、サーバ機器からの通知で自動的に共有データを反映させる自動等価手順を有することを特徴とする請求項11に記載の排他制御方法。
【請求項13】
請求項7〜12のいずれか1項に記載の排他制御方法における処理手順をコンピュータで実行可能に構成したことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−140443(P2009−140443A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−319041(P2007−319041)
【出願日】平成19年12月11日(2007.12.11)
【出願人】(000006105)株式会社明電舎 (1,739)
【Fターム(参考)】
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成19年12月11日(2007.12.11)
【出願人】(000006105)株式会社明電舎 (1,739)
【Fターム(参考)】
[ Back to top ]