(57)【要約】【課題】同一のソースファイルを同時に異なる作業者によって編集する際に、他の作業者が編集しているソースコードへの影響範囲を低減させることが可能な仕組みを提供すること。【解決手段】ソースファイルのチェックイン要求を受付けると当該ソースファイルがチェックアウト状態であるかを判定し、チェックアウト状態であった場合に、前記ソースファイルをチェックアウトしたユーザに対して当該ソースファイルのチェックイン内容を通知し、前記チェックイン通知手段により通知されたユーザのソースファイルの編集状態を不可にするとともに、前記チェックイン通知手段を通知したユーザから前記チェックインされる内容を承認した通知を受領すると、前記ソースファイルの編集状態を編集可能とする。【選択図】図３
2017120480.tif 000002
【特許請求の範囲】
【請求項１】
ソースファイルをローカル環境で編集可能な状態で保存するチェックアウト手段と、
前記チェックアウトしたソースファイルを新しいバージョンのソースファイルとして保存するチェックイン手段と、
前記ソースファイルのチェックインおよびチェックアウトの状態を管理する状態管理手段と、
前記ソースファイルのチェックイン要求を受付けた際、前記状態管理手段より当該ソースファイルがチェックアウト状態であるかを判定し、チェックアウト状態であった場合に、前記ソースファイルをチェックアウトしたユーザに対して当該ソースファイルのチェックイン内容を通知するチェックイン通知を行うチェックイン通知手段と、
前記チェックイン通知手段により通知されたユーザのソースファイルの編集状態を不可にする編集状態制御手段と、
前記チェックイン通知手段を通知したユーザから前記チェックインされる内容を承認した通知である承認通知受領手段と、
前記編集制御手段は、前記承認通知受領手段によりチェックインされる内容の承認通知を受領した場合に、前記ソースファイルの編集状態を編集可能とすることを特徴とする情報処理装置。
【請求項２】
前記チェックイン通知手段により通知を受けたユーザの開発画面に、前記ユーザが開発中のソースファイルと前記チェックインするソースファイルを並べて一画面で表示可能とする並行表示制御手段を有することを特徴とする請求項２記載のファイル管理装置。
【請求項３】
前記チェックイン手段は、前記ソースファイルをチェックアウトしたユーザから前記承認通知を受領した場合にチェックインを行うことを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
ソースファイルをローカル環境で編集可能な状態で保存するチェックアウト手段と、
前記チェックアウトしたソースファイルを新しいバージョンのソースファイルとして保存するチェックイン手段と、
前記ソースファイルのチェックインおよびチェックアウトの状態を管理する状態管理手段と、
ソースファイルのチェックインおよびチェックアウトの状態を管理する状態管理手段と、
前記ソースファイルのチェックアウト要求を受付けた際に、前記ソースファイルが既にチェックアウトされているかどうかを前記状態管理手段により管理された状態から判定し、チェックアウトされた状態であると判定された場合、既にチェックアウトされている旨を通知する既チェックアウト通知手段と、
前記状態判定手段により既にチェックアウトしたと判定されたソースファイルをチェックアウトしたユーザに対して、別のユーザがチェックアウトを行う旨のチェックアウト予告を行うチェックアウト予告手段と、
を有することを特徴とするファイル管理装置。
【請求項５】
情報処理装置の制御方法であって、
ソースファイルをローカル環境で編集可能な状態で保存するチェックアウトステップと、
前記チェックアウトしたソースファイルを新しいバージョンのソースファイルとして保存するチェックインステップと、
前記ソースファイルのチェックインおよびチェックアウトの状態を管理する状態管理ステップと、
前記ソースファイルのチェックイン要求を受付けた際、前記状態管理ステップより当該ソースファイルがチェックアウト状態であるかを判定し、チェックアウト状態であった場合に、前記ソースファイルをチェックアウトしたユーザに対して当該ソースファイルのチェックイン内容を通知するチェックイン通知を行うチェックイン通知ステップと、
前記チェックイン通知ステップにより通知されたユーザのソースファイルの編集状態を不可にする編集状態制御ステップと、
前記チェックイン通知ステップを通知したユーザから前記チェックインされる内容を承認した通知である承認通知受領ステップと、
前記編集制御ステップは、前記承認通知受領ステップによりチェックインされる内容の承認通知を受領した場合に、前記ソースファイルの編集状態を編集可能とすることを特徴とする情報処理装置の制御方法。
【請求項６】
情報処理装置で読み取り可能なプログラムであって、
前記情報処理装置を、
ソースファイルをローカル環境で編集可能な状態で保存するチェックアウト手段と、
前記チェックアウトしたソースファイルを新しいバージョンのソースファイルとして保存するチェックイン手段と、
前記ソースファイルのチェックインおよびチェックアウトの状態を管理する状態管理手段と、
前記ソースファイルのチェックイン要求を受付けた際、前記状態管理手段より当該ソースファイルがチェックアウト状態であるかを判定し、チェックアウト状態であった場合に、前記ソースファイルをチェックアウトしたユーザに対して当該ソースファイルのチェックイン内容を通知するチェックイン通知を行うチェックイン通知手段と、
前記チェックイン通知手段により通知されたユーザのソースファイルの編集状態を不可にする編集状態制御手段と、
前記チェックイン通知手段を通知したユーザから前記チェックインされる内容を承認した通知である承認通知受領手段と、
前記編集制御手段は、前記承認通知受領手段によりチェックインされる内容の承認通知を受領した場合に、前記ソースファイルの編集状態を編集可能とすることを特徴とする情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、プログラムに関し、特にファイルを管理する技術に関する。
【背景技術】
【０００２】
電子計算機に用いられるソースファイルは、不具合修正、機能改善、機能追加など様々な理由により編集される。編集理由や、その理由の発生タイミングによっては、同一のソースファイルを、複数人が同時並行で編集しなければならないケースが発生する。
【０００３】
同一のソースファイルを、複数人が同時に編集すると、各ソースファイル間で、不整合が生じる可能性がある。このような不整合を防ぐために、排他制御を行うシステムが特許文献１、２に記載されている。
【０００４】
また、複数人が同時にソースコードを編集している場合に、リアルタイムで、複数人がどのような編集を行っているか、検索するようにしたシステムが特許文献３に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１１７３４０号公報
【特許文献２】特開２００６−２７７４３５号公報
【特許文献３】特開平１０−００３４１７明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１、２で提案されたような同一ソースファイルに対して排他制御を行うシステムでは、同一のソースファイルを、複数人が同時並行で編集することができない。ソースファイルの不具合対応を行うのは保守作業者、機能改善・機能追加を行うのは開発プロジェクトの開発作業者は、作業組織、作業者も別のケースが多い。
【０００７】
同一ソースファイルが不具合対応中は、開発プロジェクトが遅延する、または開発プロジェクトが完了するまでは不具合対応が行えない事態が発生する。
【０００８】
特許文献３に記載されているように、ソースファイルの１行ずつのリアルタイムな同時編集をチェックするシステムでは、一度、作業者に警告が出されているにも関わらず、さらに１行編集する毎にリアルタイムにチェックするということは、効率の悪い処理を行う必要がある。
【０００９】
そこで、本発明では、同一のソースファイルを同時に異なる作業者によって編集する際に、他の作業者が編集しているソースコードへの影響範囲を低減させることが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
ソースファイルをローカル環境で編集可能な状態で保存するチェックアウト手段と、前記チェックアウトしたソースファイルを新しいバージョンのソースファイルとして保存するチェックイン手段と、前記ソースファイルのチェックインおよびチェックアウトの状態を管理する状態管理手段と、前記ソースファイルのチェックイン要求を受付けた際、前記状態管理手段より当該ソースファイルがチェックアウト状態であるかを判定し、チェックアウト状態であった場合に、前記ソースファイルをチェックアウトしたユーザに対して当該ソースファイルのチェックイン内容を通知するチェックイン通知を行うチェックイン通知手段と、前記チェックイン通知手段により通知されたユーザのソースファイルの編集状態を不可にする編集状態制御手段と、前記チェックイン通知手段を通知したユーザから前記チェックインされる内容を承認した通知である承認通知受領手段と、前記編集制御手段は、前記承認通知受領手段によりチェックインされる内容の承認通知を受領した場合に、前記ソースファイルの編集状態を編集可能とする。
【発明の効果】
【００１１】
本発明によれば、同一のソースファイルを同時に異なる作業者によって編集する際に、他の作業者が編集しているソースコードへの影響範囲を低減させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る情報処理装置を含むシステムの構成の一例を示すシステム構成図である。
【図２】本発明に係る情報処理装置のハードウェアの構成の一例を示すブロック図である。
【図３】本発明に係る情報処理装置の機能構成の一例を示した機能構成図である。
【図４】本発明に係るチェックアウト画面の一例を示す図である。
【図５】本発明に係るチェックアウト処理の一例を示すフローチャートである。
【図６】本発明に係るエディタの編集制御処理の一例を示すフローチャートである。
【図７】本発明に係る並行開発処理の一例を示すフローチャートである。
【図８】本発明に係る編集内容確認処理の一例を示すフローチャートである。
【図９】本発明に係るチェックイン処理の一例を示すフローチャートである。
【図１０】本発明に係るチェックイン前整合性チェック処理の一例を示すフローチャートである。
【図１１】本発明に係るチェックアウト時の警告画面の一例を示す図である。
【図１２】本発明に係るエディタ画面の一例を示す図である。
【図１３】本発明に係る他人によるチェックインを通知する通知画面の一例を示す図である。
【図１４】本発明に係る他人によるチェックアウトを通知する通知画面の一例を示す図である。
【図１５】本発明に係るチェックイン画面の一例を示す図である。
【図１６】本発明に係る他人によってチェックアウトされたことを通知する通知画面の一例を示す図である。
【図１７】本発明に係る編集内容の確認画面の一例を示す図である。
【図１８】本発明に係る編集中ユーザに対する通知画面の一例を示す図である。
【図１９】本発明に係るチェックイン前の整合性チェック確認画面の一例を示す図である。
【図２０】本発明に係るチェックイン前の整合性チェックの確認結果入力画面の一例を示す図である。
【図２１】本発明の実施形態に係る各種テーブルの一例を示す図である。
【発明を実施するための形態】
【００１３】
図１は、本発明に係る情報処理装置を含むシステムの構成の一例を示すシステム構成図である。
【００１４】
開発者端末１０１、変更管理・構成管理サーバ１０３、変更管理・構成管理サーバ内で稼動するデータベース１０４、開発端末とサーバを結びつけるネットワーク１０２（ＬＡＮ）からなる。
【００１５】
本システムでは、少なくとも１台の開発者端末１０１（情報処理装置）と変更管理・構成管理サーバ（管理サーバ）１０３がネットワーク１０２（ＬＡＮ）を介して接続されている。
【００１６】
開発者端末からは、変更管理・構成管理サーバに格納されたソースコードの編集・参照が可能となっている。
【００１７】
なお、図１では例として３台の開発者端末１０１ａ〜１０１ｃが設けられている場合を示しているが、何台で構成されていてもよい。また、開発者端末装置の種類はソースファイルを編集する開発画面であるエディタを利用することができる情報処理装置であればよく、スマートフォン、タブレットなどの端末を利用可能である。
【００１８】
ソースファイルの編集を行う場合の一連の処理について説明する。まず開発者が開発者端末１０１から、変更管理・構成管理サーバ１０３に対して指定されたプログラムのソースファイルのチェックアウト要求を送信する。
【００１９】
チェックアウトを実行すると、管理サーバ１０３からローカル環境である作業フォルダにファイルが編集可能な状態でコピーされ、コピーされたファイルに対して編集を行い、編集が終わるとソースファイルのチェックインを行う。通常、チェックアウトは排他的であるが、本発明では、他の開発者のチェックイン状態およびチェックアウト状態を管理することにより、ソースファイルの整合性を維持するようになっている。
【００２０】
チェックアウトしたファイルをチェックインすると、管理サーバでは新しいバージョンのファイルが作成されるようになっている。
【００２１】
チェックアウト要求を受けると管理サーバ１０３は、データベース１０４から指定されたプログラムのソースファイルのチェックアウト状況を取得する。現時点で、他の開発者がチェックアウトし編集中の場合は、開発者端末１０１に警告を表示する。
【００２２】
管理サーバ１０３は、データベース１０４から指定されたプログラムのその時点での最新バージョンのソースファイルの格納フォルダの情報を取得し、開発者用の作業用フォルダを作成し、当該フォルダにソースファイルをコピーする。
【００２３】
開発者は、開発者端末１０１のエディタを使用して、変更管理・構成管理サーバ１０３の作業用フォルダにコピーされたソースファイルを編集する。
【００２４】
管理サーバ１０３は、データベース１０４から指定されたプログラムのソースファイルを同時並行で編集している他の開発者の情報を取得し、その開発者の開発者端末１０１に対して通知する。
【００２５】
開発者が開発者端末１０１から、変更管理・構成管理サーバ１０３に対して同時並行で同じプログラムのソースファイルを編集している開発者の編集内容確認要求を送信する。
【００２６】
変更管理・構成管理サーバ１０３は、データベース１０４から他の開発者が編集しているソースファイルの情報を取得し、確認要求を送信した開発者の開発者端末１０１に表示する。
【００２７】
開発者が開発者端末１０１から、変更管理・構成管理サーバ１０３に対して指定されたプログラムのソースファイルのチェックイン要求を送信する。
【００２８】
変更管理・構成管理サーバ１０３は、データベース１０４から指定されたプログラムのソースファイルのチェックアウト状況を取得する。既に他の開発者がチェックアウトし編集中の場合は、開発者端末１０１に他の開発者の確認が必要な旨通知する。
【００２９】
変更管理・構成管理サーバ１０３は、データベース１０４から他の開発者が編集しているソースファイルの情報を取得し、強制保存する。さらに、同じプログラムのソースファイルのチェックイン要求に際し、確認が必要な旨、他の開発者の開発者端末１０１に表示する。
【００３０】
他の開発者の開発者端末１０１が、管理サーバ１０３に対して確認要求を送信する。管理サーバ１０３は、データベース１０４からチェックイン要求した開発者が編集したソースファイルの情報を取得し、確認要求を送信した他の開発者の開発者端末１０１に表示する。
【００３１】
他の開発者の開発者端末１０１が、変更管理・構成管理サーバ１０３に対してチェックイン承認要求を送信する。
【００３２】
変更管理・構成管理サーバ１０３は、データベース１０４からチェックイン要求した開発者が当該プログラムのソースファイルをチェックアウト後に当該プログラムのソースファイルがチェックインされている場合は、当該ソースファイルをチェックイン要求した開発者の開発者端末１０１に表示する。
【００３３】
チェックイン要求した開発者の開発者端末１０１が、管理サーバ１０３に対して確認要求を送信する。
【００３４】
管理サーバ１０３は、データベース１０４からチェックイン要求されたプログラムのソースファイルの作業用フォルダの情報を取得し、格納用フォルダ下にフォルダを作成し、そこに移動する。
【００３５】
管理サーバ１０３は、データベース１０４のチェックインされたプログラムの最新バージョンのソースファイルの格納フォルダの情報を更新する。
【００３６】
また、チェックイン要求した開発者の当該プログラムに対する作業状況を完了状態（チェックイン済み）に更新する。
【００３７】
変更管理・構成管理サーバ１０３は、チェックイン要求した開発者端末１０１にチェックアウトが完了したことを通知する。
【００３８】
図２は、本発明に係る情報処理装置のハードウェアの構成の一例を示すブロック図である。
【００３９】
図２において、２０１はＣＰＵで、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【００４０】
２０３はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００４１】
また、２０５は入力コントローラで、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。スマートフォン１０２、タブレットＰＣ１０３の場合は、２０５入力コントローラは、画面に設置されたタッチセンサにより入力を制御する。
【００４２】
２０６はビデオコントローラで、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。なお、図２では、ＣＲＴ２１０と記載しているが、表示器はＣＲＴだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
【００４３】
２０７はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル，編集ファイル，各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、ソリッドステートドライブ（ＳＳＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００４４】
２０８は通信Ｉ／Ｆコントローラで、ネットワーク（例えば、図１に示したＬＡＮ４００）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００４５】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００４６】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ２１１に格納されており、これらについての詳細な説明も後述する。
【００４７】
図３は、本発明に係る情報処理装置の機能構成の一例を示した機能構成図である。
【００４８】
図１に示す開発者端末１０１、変更管理・構成管理サーバ（管理サーバ）１０３、およびデータベース１０４の有する機能構成およびデータテーブルについて説明する。
【００４９】
開発者端末１０１は、チェックアウト要求部３０１、ソースファイル編集部３０２、ソースファイル確認入力部３０３、およびチェックイン要求部３０４を有する。
【００５０】
管理サーバ１０３は、チェックアウト受付部３０５、ソースファイル編集部３０６、ソースファイル確認受付部３０７、チェックイン受付部３０８、一時保存フォルダ３０９、本番フォルダ３１０を有する。一時保存フォルダ３０９には、一時保存ファイル３１１が、本番フォルダ３１０には、ソースファイル３１２がそれぞれ保存されている。なお、各フォルダには、複数のファイルを保存することが可能である。
【００５１】
データベース１０４には、プロジェクトテーブル３１３、プログラムテーブル３１４、担当者テーブル３１５、チェックアウトテーブル３１６、結果確認テーブル３１７、およびプログラムバージョンテーブル３１７を有している。これらテーブルの詳細については後述する。
【００５２】
チェックアウト要求部３０１は、後述するチェックアウト画面を利用して管理サーバのチェックアウト受付部に対してチェックアウトの要求を行う。管理サーバは、プロジェクトテーブル３１３およびプログラムテーブル３１４からチェックアウトするプログラム、チェックアウト時に指定するプロジェクトの情報を取得し、チェックアウト画面から選択可能に表示する。
【００５３】
ソースファイル編集部３０２は、チェックアウト画面よりチェックアウトしたソースファイルの編集を行うことが可能なエディタ画面である。ソースファイル編集部３０２により編集されたソースファイルは、ソースファイル編集受付部を介して一時保存フォルダ３０９に、一時保存されたソースファイル３１１として保存される。
【００５４】
ソースファイル確認入力部３０３は、ソースファイルを編集中のユーザが、他人が編集したソースファイルに問題がないかの確認をし、当該他人が編集いたソースファイルに問題がなければチェックインを承認する機能を有する。
【００５５】
チェックインが承認（または否認）されると、ソースファイル確認受付部３０７を介して、確認結果テーブル３１７を更新する。
【００５６】
チェックイン要求部３０４は、チェックイン要求をしたユーザに表示される画面で、自分がチェックインしようとしているソースファイルが、チェックアウト後に他人によってチェックインされたソースファイルが存在する場合に、チェックイン受付部３０８を介してポップアップなどにより通知を行う。
【００５７】
通知を開くと、一時保存フォルダ３０９に一時保存されたソースファイル３１１と、チェックインされた本番フォルダ３１０のチェックインされたソースファイル３１２とを比較表示する機能を有する。
【００５８】
ここでチェックインが許可されると、チェックアウトテーブル３１６を更新するとともに、プログラムバージョンテーブル３１８にレコードが追加される。
【００５９】
図４は、本発明に係るチェックアウト画面の一例を示す図である。
【００６０】
チェックアウト画面４０１は、開発者が開発者端末から管理サーバに接続して所定のメニューから起動される画面である。
【００６１】
利用者は、プログラム４０２、プロジェクト４０４、および備考４０４を入力し、チェックアウトボタン４０５を押下するとチェックアウト処理が開始される。戻るボタン４０６が押下されると処理がキャンセルされる。
【００６２】
プログラム４０２では、プルダウン表示される項目からチェックアウトしたいプログラムを選択する。プルダウン表示される項目は、プログラムテーブルで管理されているプログラム名が表示される。
【００６３】
プロジェクト４０４では、プルダウンされる項目から該当するプロジェクトを選択する。プルダウン表示される項目は、プロジェクトテーブルで管理されているプロジェクト名が表示される。
【００６４】
備考４０４には、利用者が自由に記入を行う。また、プルダウンにより項目を選択入力するようにしてもよい。
【００６５】
プログラムテーブルおよびプロジェクトテーブルについては、図２２を利用して説明する。
【００６６】
図２２は、本発明の実施形態に係る各種テーブルの一例を示す図である。
【００６７】
プログラムテーブル２１０２は、「プログラムＩＤ」と「プログラム名」が関連付いて記憶されており、プログラム名がチェックアウト画面においては、プログラム名が選択可能に表示される。
【００６８】
プログラムごとのバージョンがプログラムバージョンテーブル２１０３で管理されており、図の例では、「プログラムＩＤ」ＪＣＲ０１０のプログラムに対応した「バージョン」「プロジェクト」「ソースコードパス」が記憶されている。
【００６９】
バージョンは、チェックインされるごとに新しいバージョンが付与される。プロジェクトは、プログラムが更新チェックインされた時のプロジェクトが記録されている。ソースコードパスには、ソースコードが記憶されているパスが記録される。
【００７０】
プロジェクトコード２１０１は、「プロジェクトＩＤ」に対応した「プロジェクト名」および「緊急フラグ」が関連付いて記録されている。
【００７１】
プロジェクトとは、同一のプログラムに対して複数対応付けることが可能である。緊急フラグは、「０」「１」があり、１が緊急であることを示す。
【００７２】
以下、図５〜図１０に示すフローチャート、図４、図１１〜図２０に示す画面イメージ、および図２１に示すデータテーブルを利用して実施例について説明する。
【００７３】
図５は、本発明に係るチェックアウト処理の一例を示すフローチャートである。
【００７４】
ステップＳ５０１では、利用者によってチェックアウト要求があったかどうかの判定を行い、チェックアウト要求があった場合、ステップＳ５０２に進み、図４に示すチェックアウト画面を表示する。
【００７５】
ステップＳ５０３では、チェックアウトボタンが押下されるかどうかを判定し、チェックアウトボタンが押下されると、ステップＳ５０４に進み、選択されたプログラム（ソースファイル）が既にチェックアウト済な状態であるか否かの判定を行う。
【００７６】
チェックアウト済みかどうかの判定は、図２２のチェックアウトテーブル２１０５を利用する。
【００７７】
チェックアウトテーブル２１０５には、「プログラムＩＤ」「担当者コード」「プロジェクトコード」「チェックアウト年月日」「チェックイン年月日」「備考」「バージョン」および「作業用ソースコードパス」が記録されている。
【００７８】
チェックアウトテーブルはトランザクションテーブルであり、チェックアウトのタイミングで、レコードが追加されチェックアウト年月日に日時および時刻が入力される。また、チェックインのタイミングで、チェックアウト年月日に日時および時刻が入力される。
【００７９】
よって、チェックアウト済みかどうかは、チェックアウトされチェックインされていない件が対象となる。具体的には、チェックアウト年月日に記録がありチェックイン年月日が空欄となっているソースプログラムである。
【００８０】
誰もチェックアウトしていない状態であれば、ステップＳ５０５に進み、チェックアウトを行い、チェックアウトテーブル２１０５に新規レコードを作成し、チェックアウト画面で入力された項目およびチェックアウト年月日を追記して処理を終了する。
【００８１】
一方、既にチェックアウト済（チェックアウト中）であると判定された場合には、ステップＳ５０６に進み、図１１に示すように、表示されたチェックアウト画面上に警告画面１１０１が表示される（既チェックアウト通知）。
【００８２】
警告画面には、利用者が選択したプログラム「ＪＣＲ０１０」は、プロジェクト「ＰＲＪ００１」により、観音太郎さんによりチェックアウトされていることが通知され、それでもチェックアウトするかどうかを問い合わせている。
【００８３】
ＯＫボタン１１０２が押下されると、ステップＳ５０８に進み、チェックアウトを行い、チェックアウトテーブル２１０５に新規レコードを作成し、チェックアウト画面で入力された項目およびチェックアウト年月日を追記しステップＳ５０８に進む。
【００８４】
ステップＳ５０８では、チェックアウト済ユーザ（この場合、観音太郎）のエディタに対して、図１４に示すような通知画面１４０１を表示し（チェックアウト予告）、処理を終了する。この時、チェックアウト済ユーザがエディタを起動していない場合は電子メールなどでエディタを起動するように促してもよい。
【００８５】
一方、キャンセルボタン１１０２が押下されると、ステップＳ５０９に進み、チェックアウトを拒否し処理を終了する。この場合、チェックアウトテーブル２１０５には何も記録されない。
【００８６】
図６は、本発明に係るエディタの編集制御処理の一例を示すフローチャートである。
【００８７】
チェックアウト済みのソースファイルを一時保存フォルダ３０９から呼び出して本エディタで編集される。
【００８８】
ステップＳ６０１では、利用者よりソースファイルを開く要求があるかを判定し、要求があれば、ステップＳ６０２で図１２に示すようなエディタ画面上で選択したソースファイルが開かれる。編集画面１２０１では、編集対象として、プログラム名およびプロジェクト名が表示され、編集領域１２０３でソースファイルの修正を行う。
【００８９】
保存ボタン１２０４が押下されると、一時保存フォルダ３０９にソースファイルが保存され、閉じるボタン１２０５が押下されると編集内容は保存されずにエディタ画面が閉じられる。
【００９０】
ステップＳ６０３で並行開発中通知処理を行い、ステップＳ６０４で開いたソースファイルを編集可能状態とする（編集状態制御手段）。並行開発中処理とは、エディタで編集中、他の利用者が同じソースファイルをチェックアウトしている場合に行う通知処理のことである。詳細については、図７にて説明する。
【００９１】
ステップＳ６０４−２では、他の利用者によるチェックイン通知を受信したかどうかの判定を行う。
【００９２】
チェックイン通知の一例について図１３を利用して説明する。チェックイン通知は、エディタの編集画面１３０１に表示されるもので、チェックイン通知１３０３として表示される。チェックイン通知には、ソースファイル名、プロジェクト名、および作業者が表示される。
【００９３】
チェックイン通知を受信しなければ、ステップＳ６０５に進み、保存ボタンが押下されれば、ステップＳ６０６に進みソースファイルを保存し、処理を終了し、保存ボタンが押下されない状態であれば、ステップＳ６０３に戻り処理をループする。
【００９４】
一方、エディタ画面上で他の利用者のチェックイン通知を受信すると、図１３のはいボタン１３０４が押下されることによりステップＳ６０７に進み、ステップＳ６０７でソースファイルの強制保存を行い、ステップＳ６０８で当該ソースファイルの編集状態を不可にする（編集状態制御手段）。
【００９５】
キャンセルボタン１３０５が押下されると編集はキャンセルされ編集を続けることができないようになっている。すなわち、チェックイン通知を受信した場合には、他の利用者によるチェックインの内容を確認する必要がある。
【００９６】
画面上には、図１３の編集画面１３０１に編集不可１３０２と表示され、保存ボタン１３０６が押下できないよう、例えばグレーアウト表示される。
【００９７】
ステップＳ６０９では、編集内容確認処理が行われ、ステップＳ８１０に進む。編集内容確認処理については図８にて後述する。ステップＳ６１０では、ステップＳ６０９での確認（承認）内容の判定を行う。確認が終了（承認通知を受領）すると、ステップＳ６０３に戻り引き続き編集が行われ、編集状態が編集可能となる。確認が終了するまでは、先に進めないようなっている。
【００９８】
図７は、本発明に係る並行開発処理の一例を示すフローチャートである。
【００９９】
図６のステップＳ６０３、並行開発中通知処理に対応する処理である。ステップＳ７０１では、並行開発されているソースファイルが存在するかどうかの判定行う。具体的には、チェックアウトテーブル２１０５を参照し、自分が編集しているソースファイルが現在開発中であるか（すなわちチェックインされた状態のものであるか）、または、自分が編集しているソースファイルが、自分がチェックアウトした後にチェックインされたものがないかの確認を行う。
【０１００】
並行開発がないと判定された場合は、ステップＳ７０７に進み、並行開発中ボタンの表示を行わず（何も行わず）に処理を終了する。
【０１０１】
一方、並行開発中の案件があると判定された場合には、ステップＳ７０２に進み、図１４に示すように、エディタ上に並行開発中ボタン１４０２を表示する。並行開発中ボタン１４０２に表示される合計とは、ステップＳ７０１で判定した並行開発されている数を示す。
【０１０２】
ステップＳ７０３で、並行開発中ボタン１４０２が押下されたかどうかを判定し、ボタンが押下されない場合（不図示のキャンセルボタンが押下されたか所定時間内にボタンが押下されなかった場合など）は、処理を終了し、ボタンが押下された場合には、ステップＳ７０４に進む。
【０１０３】
ステップＳ７０４では、該当するソースファイルが複数人により開発中であるかどうかの判定を行う。具体的には、ステップＳ７０１で判定され、並行開発中ボタン１４０２に表示されている数によって判定される。
【０１０４】
複数人で開発中である場合には、ステップＳ７０５に進み、図１４に示す表示選択画面１４０３を表示する。表示選択画面には、プログラム名１４０４およびプロジェクト名１４０５が表示される。図の例では、利用者本人以外に２件（「ＰＲＪ００２」「ＰＲＪ００３」）の並行開発中であることがわかる。
【０１０５】
プロジェクト名には、開発中の担当者１４０６が対応付いて表示され、選択ボタン１４０７で選択したソースファイルがステップＳ７０６で表示することが可能となる。
【０１０６】
ステップＳ７０６では、図１７に示すような確認画面１７０１が表示され、利用者が修正中のソースファイル１７０２および並行開発中であるソースファイル１７０３が同一画面上に比較可能な状態で表示される。これにより他の利用者の編集中のソースファイルの内容を確認することが可能となる。
【０１０７】
図８は、本発明に係る編集内容確認処理の一例を示すフローチャートである。
【０１０８】
図６のステップＳ６０９、編集内容確認処理に対応する処理である。ステップＳ８０１では、図１３に示す編集画面上に表示されたチェックイン通知１３０３ではいボタン１３０４が選択されることを確認する。
【０１０９】
確認ボタン１３０３が押下されると、ステップＳ８０２に進み要確認ボタン１３０７を表示する。ステップＳ８０３では、要確認ボタン１３０７が押下されたかどうかを判定し、押下されるとステップＳ８０４に進む。
【０１１０】
ステップＳ８０４では、図１７に示すような確認画面１７０１を表示し、ステップＳ８０５では、確認入力ボタン１７０７が押下されるかどうかの判定を行い、確認入力ボタン１７０７が押下されるとステップＳ８０６に進む。
【０１１１】
ステップＳ８０６では、確認結果入力画面１７０４を表示し、利用者により入力を受け付ける。ステップＳ８０８では、利用者による入力内容および押下されたボタンを判定し、承認ボタン１７０５が押下されるとステップＳ８０９へ、否認ボタン１７０６が押下されるとステップＳ８１０に進む。
【０１１２】
ステップＳ８０９では、確認結果テーブル２１０６の確認結果に承認を意味するフラグ「１」を入力しステップＳ８１１に進む。ステップＳ８１１では、関係するソースファイルをチェックアウトした利用者全員からの承認（許可）がされているかを判定し、全員の承認があった場合は、ステップＳ８１２に進む。
【０１１３】
ステップＳ８１０では、確認結果テーブル２１０６の確認結果に否認を意味するフラグ「０」を入力し、ステップＳ８１３に進む。
【０１１４】
ステップＳ８１２では、図１８に示すようなチェックインが可能になった旨の承認通知１８０１をチェックイン担当者の画面に表示し、ステップＳ８１３では、チェックインが拒否された旨の拒否通知をチェックイン担当者の画面に表示し処理を終了する。
【０１１５】
図９は、本発明に係るチェックイン処理の一例を示すフローチャートである。
【０１１６】
利用者が、チェックアウトしたソースファイルをチェックインする時の処理である。ステップＳ９０１で、利用者よりチェックインの要求を受付けると、ステップＳ９０２では、図１５に示すようなチェックイン画面１５０１を利用者の端末に表示する。
【０１１７】
利用者は、プログラム名１５０２、プロジェクト名１５０３、および備考１５０４を入力してチェックインボタン１５０５を押下するとチェックイン処理が開始される。
【０１１８】
ステップＳ９０３では、チェックインボタン１５０５が押下されたかどうかの判定を行い、押下された場合は、ステップＳ９０４に進み、並行開発があるかどうかの判定を行う。並行開発があるかどうかは、チェックアウトテーブル２１０６に自分がチェックアウトしようとするソースファイルであって、現在開発中（チェックイン年月日が空欄）のものがあるか否かで判定する。
【０１１９】
ステップＳ９０４で並行開発がないと判定された場合はステップＳ９０５のチェックイン前整合チェック処理に進む。
【０１２０】
一方、並行開発があると判定された場合には、ステップＳ９０８に進み、図１６に示すようなチェックインの通知画面１６０１が表示される。通知画面には、ソースファイル名「ＪＣＲ０１０」、プロジェクト名「ＰＲＪ００１」、作業担当者「観音  太郎さん」などのチャックイン内容が表示され、チェックアウト中の利用者に対する確認（承認）を促す内容が表示される。なお、チェックイン内容には、ソースファイルを含めるようにしてもよい。
【０１２１】
ステップＳ９０９では、ユーザにより押下されたボタンの判定を行い、キャンセルボタン１６０３が押下されると処理を終了し、はいボタン１６０２が押下されるとステップｓ９１０に進む
【０１２２】
ステップＳ９１０では、並行開発中の相手側のエディタに対して、図１３に示す通知ポップアップが表示される。通知ポップアップを受信した相手側のエディタ側での処理は、図６のステップＳ６０４以降の処理に対応する。相手側のエディタで承認状態によってステップＳ９１１では、確認結果テーブル２１０６が更新され、ステップＳ９１３では結果がＯＫ（全員承認）であったかどうかを判定し、ＯＫであった場合は、ステップＳ９０６に進み、ＮＧであった場合はチェックインが拒否され処理を終了する。
【０１２３】
ステップＳ９０５では、チェックイン前の整合性チェックを行い、チェック内容の確認をステップＳ９０６で行い、チェックＯＫであればステップＳ９０７に進み、チェックイン処理を行い、チェックＮＧであればチェックインを行わずに処理を終了する。チェックイン前整合チェックについて、図１０を利用して説明する。
【０１２４】
図１０は、本発明に係るチェックイン前整合性チェック処理の一例を示すフローチャートである。
【０１２５】
整合性のチェックとは、チェックアウトテーブル２１０５に自分がチェックインしようとしているソースファイルであって、自分がチェックアウトした後にチェックインしたものがある場合にこれらのソースファイルの編集部分が自分のソースファイルに反映されているかどうかの処理である。
【０１２６】
図８などで他の利用者の編集内容に承認したものの、承認内容を自分のソースファイルに反映し忘れた場合などに有効な処理である。
【０１２７】
ステップＳ１００１では並行開発があるかどうかの判定を行い、並行開発が無い場合は処理を終了し、並行開発がある場合はステップＳ１００２に進み、図１９に示すような通知画面１９０１を表示する。表示画面には、チェックインする前に確認が必要かどうか問われており、はいボタン１９０２またはキャンセルボタン１９０３を押下するようになっている。
【０１２８】
ステップＳ１００３では、はいボタン１００２が押下されたかどうかの判定を行い、はいボタン１００２が押下されるとステップＳ１００４に進み、キャンセル１９０３が押下されると処理を終了する。
【０１２９】
ステップＳ１００４では、チェックインしようとしているソースファイルと並行開発されたソースファイルを確認可能に対比した確認画面１９０４が表示される。
【０１３０】
ステップＳ１００５では、確認入力ボタン１９０６が押下されたかの判定を行い、押下された場合は、ステップＳ１００６に進み、図２０に示すよう確認結果入力画面２００１を表示する。
【０１３１】
ステップＳ１００７で利用者は、確認ボタン２００２もしくはキャンセルボタン２００３の押下の判定を行い、確認ボタン２００２が押下されるとステップＳ１００８に進み、確認結果テーブル２１０６を更新する。一方、キャンセルボタン２００３が押下された場合はステップＳ１００９に進み確認結果２１０６を更新し処理を終了する。
【０１３２】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システム又は装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成される。
【０１３３】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１３４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１３５】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３６】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３７】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システム又は装置にプログラムを供給することによって達成される場合にも適応できる。この場合、本発明を達成するためのプログラムを格納した記録媒体をシステム又は装置に読み出すことによって、そのシステム又は装置が、本発明の効果を享受することが可能となる。
【０１３８】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１３９】
更に、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム又は装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１４０】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【符号の説明】
【０１４１】
１０１  開発者端末
１０２  ＬＡＮ
１０３  管理サーバ
１０４  データベース
【図１】
2017120480.tif 000003
【図２】
2017120480.tif 000004
【図３】
2017120480.tif 000005
【図４】
2017120480.tif 000006
【図５】
2017120480.tif 000007
【図６】
2017120480.tif 000008
【図７】
2017120480.tif 000009
【図８】
2017120480.tif 000010
【図９】
2017120480.tif 000011
【図１０】
2017120480.tif 000012
【図１１】
2017120480.tif 000013
【図１２】
2017120480.tif 000014
【図１３】
2017120480.tif 000015
【図１４】
2017120480.tif 000016
【図１５】
2017120480.tif 000017
【図１６】
2017120480.tif 000018
【図１７】
2017120480.tif 000019
【図１８】
2017120480.tif 000020
【図１９】
2017120480.tif 000021
【図２０】
2017120480.tif 000022
【図２１】
2017120480.tif 000023