(57)【要約】【課題】  意図しない実装コードへのスタブの上書き登録やスタブへの実装コードの上書きを防止することができるスタブ管理機能を備えた構成管理システムの提供。【解決手段】  ユーザはコード中に、「ユーザ情報」及び「コードが実装コードかスタブコードか」、「他のユーザにコードが公開可能か」等の情報を追加する。構成管理クライアント１０５は、上記情報を解析可能なスタブ判定部１１０を備える。コードを登録する際は、コード登録部１０６は、スタブ判定部１１０で得た情報を元にコードを構成管理サーバ１０１に登録してよいか否かを決定する。また、コードを取り出す際は、コード取出部１０７は、実装コードが公開可能かを判定し、公開可能であるときのみ構成管理クライアント１０５に取り出す。【選択図】  図１
2006268163.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザが少なくとも取り出しできるようソースコードを記憶保持するソースコード登録部を備え、コンピュータプログラムの同時開発環境を提供する構成管理システムにおいて、
予め定められた形式でソースコード中に記述されたスタブコードか否かを示す情報と、著者情報を検出するスタブ判定部と、
前記ソースコード登録部から読み出されたソースコードがスタブコードである場合は、前記著者情報に応じた一定のユーザにのみ、該ソースコードの更新登録を許可する登録制御部と、を備えたこと、
を特徴とする構成管理システム。
【請求項２】
前記登録制御部は、ソースコードがスタブコードである場合は、前記著者情報に対応するユーザＩＤを持つユーザにのみ、該ソースコードの更新登録を許可すること、
を特徴とする請求項１に記載の構成管理システム。
【請求項３】
前記スタブ判定部は、予め定められた形式でソースコード中に記述された当該ソースコードが公開可能か非公開かを示す公開可否情報を検出し、
更に、前記ソースコード登録部に対して取り出し要求したソースコードが非公開である場合は、該ソースコードの取り出しを中止するコード取り出し制御部を備えたこと、
を特徴とする請求項１又は２に記載の構成管理システム。
【請求項４】
前記ソースコード登録部は、少なくともスタブコードとその他のソースコードとを区別して記憶保持しており、
前記ソースコード登録部に対してスタブコードの取り出し要求がなされた場合に、自装置側に前記取り出し要求に係るスタブコードに対応するスタブコードが保存されているか否かを検出し、自装置側に前記取り出し要求に係るスタブコードに対応するソースコードが保存されている場合は、前記ソースコード登録部からのスタブコードの取り出しを中止するスタブ取り出し制御部を備えたこと、
を特徴とする請求項１乃至３いずれか一に記載の構成管理システム。
【請求項５】
前記ソースコード登録部は、少なくともスタブコードと実装コードとを区別して記憶保持しており、
前記スタブ取り出し制御部は、ソースコード登録部に対してスタブコードの取り出し要求がなされた場合に、自装置側に前記取り出し要求に係るスタブコードに対応するソースコードが保存されていない場合は、前記ソースコード登録部からのスタブコードの取り出しを行うとともに、該スタブコードに上書き不可である旨の置き換え可否情報を埋め込み、
前記スタブ判定部は、予め定められた形式でソースコード中に記述された当該ソースコードが置き換え可能か否かを示す置き換え可否情報を検出し、
前記コード取り出し制御部は、前記ソースコード登録部に対して実装コードの取り出し要求がなされた場合に、自装置側に対応するスタブコードが保存されているか否かを検出し、該スタブコードが置き換え可能な場合に、前記ソースコード登録部からの前記実装コードの取り出しを許可すること、
を特徴とする請求項１乃至４いずれか一に記載の構成管理システム。
【請求項６】
前記ソースコード登録部を構成する構成管理サーバと接続され、該構成管理サーバに対するクライアントとして動作する請求項１乃至５いずれか一に記載の構成管理システム。
【請求項７】
クライアントとして動作する請求項１乃至５いずれか一に記載の構成管理システムと接続され、少なくともスタブコードと実装コードを区別して記憶保持する前記ソースコード登録部を備えたこと、
を特徴とする構成管理サーバ。
【請求項８】
複数のユーザが少なくとも取り出しできるようソースコードを記憶保持するソースコード登録部を備え、コンピュータプログラムの同時開発環境を提供する構成管理システムを構成するコンピュータに実施させるスタブコードの管理方法であって、
前記コンピュータが、前記ソースコード登録部に対してソースコードの取り出し要求を行うステップと、
前記コンピュータが、前記取り出し要求に係るソースコードの所定の位置を参照して、ソースコード中に予め定められた形式で記述されたスタブコードか否かを示す情報と著者情報とを検出するステップと、
前記取り出したスタブコードについて前記ソースコード登録部への登録要求を受けた際に、前記コンピュータが、前記著者情報に応じた一定のユーザにのみ前記ソースコード登録部への登録を許可するステップと、を含むこと、
を特徴とするスタブコードの管理方法。
【請求項９】
前記取り出したスタブコードについて前記ソースコード登録部への登録要求を受けた際に、前記コンピュータは、前記著者情報に対応するユーザＩＤを持つユーザにのみ、該ソースコードの更新登録を許可すること、
を特徴とする請求項８に記載のスタブコードの管理方法。
【請求項１０】
更に、前記コンピュータが、前記取り出し要求に係るソースコードの所定の位置を参照して、ソースコード中に予め定められた形式で記述された当該ソースコードが公開可能か非公開かを示す公開可否情報を検出するステップと、
前記ソースコードが非公開である場合は、前記コンピュータが、前記取り出し要求に係るソースコードの取り出しを中止するステップと、を含むこと、
を特徴とする請求項８又は９に記載のスタブコードの管理方法。
【請求項１１】
前記ソースコード登録部は、少なくともスタブコードとその他のソースコードとを区別して記憶保持しており、
前記ソースコード登録部に対してスタブコードの取り出し要求がなされた場合に、前記コンピュータが、自装置側に前記取り出し要求に係るスタブコードに対応するソースコードが保存されているか否かを検出するステップと、
自装置側に前記取り出し要求に係るスタブコードに対応するソースコードが保存されている場合は、前記コンピュータが、前記ソースコード登録部からの前記取り出し要求に係るスタブコードの取り出しを中止するステップと、を含むこと、
を特徴とする請求項８乃至１０いずれか一に記載のスタブコードの管理方法。
【請求項１２】
前記ソースコード登録部は、少なくともスタブコードと実装コードとを区別して記憶保持しており、
ソースコード登録部に対してスタブコードの取り出し要求がなされた場合であって、自装置側に同一スタブコードが保存されていない場合に、前記コンピュータが、前記ソースコード登録部からのスタブコードの取り出しを行うとともに、該スタブコードに上書き不可である旨の置き換え可否情報を埋め込むステップと、
前記ソースコード登録部に対して実装コードの取り出し要求がなされた場合に、前記コンピュータが、自装置側に前記取り出し要求に係る実装コードに対応するソースコードが保存されているか否かを検出するステップと、
前記取り出し要求に係る実装コードに対応するスタブコードが検出された場合に、前記コンピュータが、前記スタブコード中に、予め定められた形式でソースコード中に記述された当該ソースコードが置き換え可能か否かを示す置き換え可否情報を検出するステップと、
前記取り出し要求に係る実装コードに対応するスタブコードが置き換え可能な場合に、前記コンピュータが、前記ソースコード登録部からの前記実装コードの取り出しを許可するステップと、を含むこと、
を特徴とする請求項８乃至１１いずれか一に記載のスタブコードの管理方法。
【請求項１３】
複数のユーザが少なくとも取り出しできるようソースコードを記憶保持するソースコード登録部を備えてコンピュータプログラムの同時開発環境を提供する構成管理システムを構成するコンピュータに実行させるプログラムであって、
前記ソースコード登録部に対して指定されたソースコードの取り出し要求を行う処理と、
前記取り出し要求に係るソースコードの所定の位置を参照して、ソースコード中に予め定められた形式で記述されたスタブコードか否かを示す情報と著者情報とを検出する処理と、
前記著者情報に応じた一定のユーザから登録要求されたスタブコードを前記ソースコード登録部に登録する処理と、を前記コンピュータに実行させるプログラム。
【請求項１４】
前記ソースコードがスタブコードである場合は、前記著者情報に対応するユーザＩＤを持つユーザにのみ、該ソースコードの更新登録を許可すること、
を特徴とする請求項１３に記載のプログラム。
【請求項１５】
更に、前記取り出し要求に係るソースコードの所定の位置を参照して、ソースコード中に予め定められた形式で記述された当該ソースコードが公開可能か非公開かを示す公開可否情報を検出する処理と、
前記ソースコードの取り出し要求に対して、前記ソースコードが非公開である場合に、前記取り出し要求を拒否する処理と、を前記コンピュータに実行させる請求項１３又は１４に記載のプログラム。
【請求項１６】
前記ソースコード登録部は、少なくともスタブコードとその他のソースコードとを区別して記憶保持しており、
スタブコードであるソースコードの取り出し要求に対して、自装置側に前記取り出し要求に係るスタブコードに対応するスタブコードが保存されている場合に、前記取り出し要求を拒否する処理、を前記コンピュータに実行させる請求項１３乃至１５いずれか一に記載のプログラム。
【請求項１７】
前記ソースコード登録部は、少なくともスタブコードと実装コードとを区別して記憶保持しており、
ソースコード登録部に対してスタブコードの取り出し要求がなされた場合であって、自装置側に同一スタブコードが保存されていない場合に、前記ソースコード登録部からのスタブコードの取り出しを行うとともに、該スタブコードに上書き不可である旨の置き換え可否情報を埋め込む処理と、
実装コードであるソースコードの取り出し要求に対して、自装置側に前記取り出し要求に係る実装コードに対応するスタブコードが保存されている場合に、前記スタブコード中に、予め定められた形式でソースコード中に記述された当該ソースコードが置き換え可能か否かを示す置き換え可否情報を検出する処理と、
前記取り出し要求に係る実装コードに対応するスタブコードが置き換え可能な場合に、前記ソースコード登録部からの前記実装コードを読み出す処理と、を前記コンピュータに実行させる請求項１３乃至１６いずれか一に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア構成管理システム、スタブコードの管理方法、及び、プログラムに関し、特に、同時開発環境を提供するソフトウェア構成管理システム、スタブコードの管理方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、プログラムなどのソフトウェア製品は極めて大規模化してきており、複数の担当者が分業してソフトウェア開発を行う際の構成管理を行うツールとして、ＣＶＳ（Ｃｏｎｃｕｒｒｅｎｔ  Ｖｅｒｓｉｏｎ  Ｓｙｓｔｅｍ）等のバージョン管理装置が広く利用されている。このＣＶＳは、従来のＲＣＳ（Ｒｅｖｉｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）と異なり、複数のユーザが自由に同一コードにアクセスし、重複箇所に変更が行われていない限り登録を行うことが可能となっており、オープンソース開発やチーム開発に必須のものとなっている。
【０００３】
また、特開平９−２１２３５２号公報には、複数の担当者で分業してプログラムの開発を行う場合を考慮したプログラム開発システムが紹介されている。このプログラム開発システムは、プログラム開発に利用するソースプログラム、ツール、仕様書、開発者といった情報間に関連を生成し、それぞれの情報をリソース情報として統合的に管理できるようにしたリソースデータベースを備えている。
【０００４】
【特許文献１】特開平９−２１２３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、多くのソフトウェア製品は複数の部品が互いに依存しており、実際の開発時にはまだ完成していない部品をスタブ（Ｓｔｕｂ）として開発を行う場合がある。スタブコードは、実装コードと区別して管理されるべきであるが、実装コードと同一ファイル名のスタブを用意して開発を進めることも多く、ユーザの不注意により実装コードをスタブコードで上書き（過誤登録）することが多々ありえた。
【０００６】
とりわけ、複数の企業が協同して一つのシステムを開発するようなケースでは、他社の実装コードを自社のスタブコードで上書きするような事態を防止できる措置を構ずることが望まれている。
【０００７】
また、前述した構成管理装置からコードをチェックアウト（リポジトリから作業用コピーの生成）する際に、ユーザの環境で利用しているスタブコードが構成管理装置に登録されている実装コードで上書き（過誤取り出し）されることがある。更に、この上書きされた実装コードの品質の保証が取れていない場合、ユーザの環境でのテストが阻害されることがある。
【０００８】
本発明は、上記した事情に鑑みてなされたものであって、これら過誤登録や過誤取り出しを防止することができるスタブ管理機能を備えたソフトウェア構成管理システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の視点によれば、複数のユーザが少なくとも取り出しできるようソースコードを記憶保持するソースコード登録部を備えたコンピュータプログラムの同時開発環境を提供する構成管理システムにおいて、取り出したソースコードがスタブコードであるかどうかを判定するスタブ判定部と、スタブコードの更新登録を一定のユーザに制限する登録制御部と、を備えた構成管理システムが提供される。前記スタブ判定部は、ソースコード中に所定形式で記述された情報に基づいて該ソースコードがスタブコードであるか否かと著者（開発者）を判定する。前記登録制御部は、前記スタブ判定部の判定結果に基づき、前記ソースコード登録部から読み出されたソースコードがスタブコードである場合は、該ソースコードの更新登録を所定のユーザに制限する。
【００１０】
また、本発明の第２の視点によれば、前記ソースコード登録部を構成する構成管理サーバと、該構成管理サーバと接続され該構成管理サーバに対するクライアントとして動作する構成管理システムが提供される。
【００１１】
また、上述した構成管理システムに備えられる各処理部がコンピュータプログラムによって実現できるという本発明の第３の視点によれば、上述した構成管理システムを構成するクライアントコンピュータに実行させるコンピュータプログラムが提供される。
【００１２】
また、本発明の第４の視点によれば、上記した構成管理システムを用いて行うことのできるスタブコードの管理方法が提供される。
【発明の効果】
【００１３】
本発明によれば、スタブコードを作成した著者（開発者）が、そのソースコード中に、スタブコードである旨と著者（開発者）を記述しておくことにより、意図しない第三者に書き換えられてしまう（ｃｏｍｍｉｔされてしまう）事態を防止することができる。
【発明を実施するための最良の形態】
【００１４】
続いて、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態に係るソフトウェア構成管理システムの構成を表した図である。図１を参照すると、構成管理サーバ１０１と、複数の構成管理クライアント１０５とを、ネットワーク１０４を介して接続した構成が示されている。
【００１５】
構成管理サーバ１０１は、プログラム制御により動作するコンピュータであり、その記憶装置に、ソースコード登録部を構成する実装コード記憶部１０２及びスタブコード記憶部１０３を備えている。実装コード記憶部１０２は、実装コード（実装用のソースコード）を格納する手段であり、スタブコード記憶部１０３は、スタブコード（テスト用のスタブを構成するためのソースコード）を格納する手段であり、それぞれが構成管理クライアントの制御の下でアクセス可能となっている。
【００１６】
構成管理クライアント１０５は、ユーザの数だけ用意されるコンピュータであり、それぞれが、スタブ判定部１１０、コード登録部１０６、コード取出部１０７、スタブ取出部１０８を備えている。また、構成管理クライアント１０５のその作業ディレクトリには、実装コード１１１及びスタブコード１１２をそれぞれ複製して作業可能となっている。
【００１７】
スタブ判定部１１０は、ソースコード内にコメントとして所定形式で記述された情報を解析する機能を備えている。図２は、Ｊａｖａ（登録商標）のソースコードのコメント部分に記述された情報の一例を表した図である。図２の例では、注釈記号＠ａｕｔｈｏｒ以下が、ソースコードの著者（開発者）名（図２ではａａａ）を表した部分であり（２０１）、注釈記号＠ｉｓＳｔｕｂ以下が、ソースコードがスタブであるか否か（実装コードであるか）をそれぞれ真偽で表した部分であり（２０２）、注釈記号＠ｉｓＰｕｂｌｉｃ以下が、ソースコードが他のユーザに公開可能であるか否かをそれぞれ真偽で表した部分であり（２０３）、注釈記号＠ｉｓＲｅｐｌａｃｅ以下が、自環境のクライアントの同名ソースコードを構成管理サーバ１０１の実装コードによって上書き可能であるか否かをそれぞれ真偽で表した部分である（２０４）。
【００１８】
コード登録部１０６は、登録制御部を構成する処理手段であり、後に詳述する様にスタブコードを登録する際にその著者情報に基づいた登録の制限を行う。また、コード取出部１０７及びスタブ取出部１０８は、それぞれコード取り出し制御部、及び、スタブ取り出し制御部を構成する処理手段であり、後に詳述する様にスタブコードを取り出す（払い出す）際に上記ソースコードが公開可能であるか否かや上書き可能であるか否かによって取り出しの制限を行う。
【００１９】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図３は、本発明に係るソフトウェア構成管理システムの一機能であるスタブコードの登録制限機能の概要を説明するための図である。図３の例では、ユーザＡはスタブＡの著者（開発者）であり、ユーザＢは、スタブＡに関して更新権限を有さない第三者であるものとする。ユーザＡは、構成管理クライアント１０５を使用してスタブＡ３０１をコーディングする際に、そのスタブコード中の任意の位置に著者（開発者）の情報（本例では、「＠ａｕｔｈｏｒ  Ａ」３０２）と、スタブコードであることを示す情報（本例では、「＠ｉｓＳｔｕｂ  ｔｒｕｅ」３０３）を付加しておく。
【００２０】
コーディングが終了し、ユーザＡが構成管理サーバ１０１に登録を要求すると、構成管理クライアント１０５は、スタブコードであること、及び、著者（開発者）がユーザＡであることを判定し、構成管理サーバ１０１のスタブコード記憶部１０３に登録する。
【００２１】
一方、ユーザＢも、構成管理サーバ１０１からユーザＡが作成したスタブＡ３０１を取得し、テスト等に利用することが可能であるが、ユーザＢが構成管理サーバ１０１に登録を要求すると、構成管理クライアント１０５は、スタブコードであること、及び、ユーザＢとは関連を有さないユーザＡが著者（開発者）であることを判定し、構成管理サーバ１０１への登録要求を拒否する。
【００２２】
図４は、図３で概説したスタブコードの登録制限機能を実現するための構成管理クライアント１０５と構成管理サーバ１０１で行われる一連の流れを表したフローチャートである。まず、ユーザが、構成管理クライアント１０５側で起動された構成管理プログラムのメニューやコマンドラインからコード登録を選択すると（ステップＳ４０１）、構成管理クライアント１０５のスタブ判定部１１０は、ソースコードを走査して所定の注釈記号が記述された行を読み出し、ソースコードの著者名情報とソースコードがスタブコードであるか否かの情報を取得する（ステップＳ４０２、Ｓ４０３）。
【００２３】
続いて、構成管理クライアント１０５のコード登録部１０６は、スタブ判定部１１０で取得したソースコードの著者とユーザを比較し（ステップＳ４０４）、著者とユーザが一致しないときは、ユーザに対して適宜エラーメッセージを表示するとともに、構成管理サーバ１０１への登録を行わない（ステップＳ４０５）。
【００２４】
一方、著者とユーザが一致する場合は、コード登録部１０６は、ステップＳ４０３で取得したソースコードがスタブコードであるか否かの情報に基づき（ステップＳ４０６）、ソースコードがスタブコードの場合は、構成管理サーバ１０１のスタブコード記憶部１０３に登録する（ステップＳ４０７）。一方、ソースコードがスタブコードでない場合は、コード登録部１０６は、構成管理サーバ１０１の実装コード記憶部１０２に登録処理を行う（ステップＳ４０８）。
【００２５】
以上のとおり、本実施形態で具現したスタブコードの登録制限機能によれば、ソースコードを異なるユーザが上書きしてしまうことは確実に防止される。また、上記例では、著者とユーザが一致する場合に登録を認めるものとして説明したが、著者とユーザが一致しなくとも同一グループに属する場合等にも登録を認めるものとしてもよい。
【００２６】
続いて、本発明に係るソフトウェア構成管理システムの別の機能であるソースコードの取り出し制限機能について説明する。図５は、本機能の概要を説明するための図である。図５の例では、ユーザＡはスタブコードＡ（図中「スタブＡ」で表す）、実装コードＡ（図中「実装Ａ」で表す）の著者（開発者）であり、ユーザＢは、スタブコードＡに関して更新権限を有さない第三者であるものとする。
【００２７】
ユーザＡは、構成管理クライアント１０５を使用してスタブコードＡ５０１をコーディングする際に、そのスタブコード中の任意の位置に著者（開発者）の情報（本例では、「＠ａｕｔｈｏｒ  Ａ」）と、スタブコードであることを示す情報（本例では、「＠ｉｓＳｔｕｂ  ｔｒｕｅ」）を付加しておく。この状態では、ユーザＢは、スタブコードＡ５０１を取り出すことが可能となっている。
【００２８】
その後、ユーザＡは、構成管理クライアント１０５を使用して、スタブコードＡ５０１から内部を実装し、実装コードＡ５０２を作成する。このとき、ユーザＡは、実装コードＡ中のスタブコードであることを示す情報を実装コードである旨に修正する（本例では、「＠ｉｓＳｔｕｂ  ｆａｌｓｅ」５０３）。
【００２９】
しかし、この実装コードＡは、品質を保証できる段階に入っていないため、実装コードＡに依存する他のソースコードがこの実装コードを取り込んでテストを行った場合、意図しないエラーが発生することが考えられる。そのため、ユーザＡは、品質が安定するまでの間、実装コードＡを他のユーザに利用させないように、この実装コードＡ５０２中に公開不可とする情報を付加しておく（本例では、「＠ｉｓＰｕｂｌｉｃ  ｆａｌｓｅ」５０４）。この状態では、ユーザＢは、実装コードＡ５０２を取り出すことが不可能となる（５０７、５０９）。
【００３０】
その後、実装コードＡ５０２の品質を保証できる段階に到達し、実装コードＡ５０５が得られると、ユーザＡは、実装コードＡ５０２中の公開不可としていた情報を修正する（本例では、「＠ｉｓＰｕｂｌｉｃ  ｔｒｕｅ」５０６）。この状態となると、他のユーザは、以下説明するように自己環境（構成管理クライアント１０５）の対応スタブコードが置き換え可能な状態となっているという条件付きで、実装コードＡ５０５を取り出すことが可能となる（５１０）。
【００３１】
一方、ユーザＢは、スタブコードＡ５０１を自己環境（構成管理クライアント１０５）に複製して自己の担当するコードの開発、テストを行う。その間、構成管理クライアント１０５では、公開された実装コードＡ５０５によるスタブコードＡ５１１の上書きを阻止するため、ユーザＢは、このスタブコードＡ５１１中に上書き不可とする情報を付加するこができる（本例では、「＠ｉｓＲｅｐｌａｃｅ  ｆａｌｓｅ」５１２）。この状態のとき、同名の実装コードが公開可状態であっても構成管理サーバ１０１から取り出すことはできない（５０８）。
【００３２】
その後、ユーザＢが、自己の担当するコードの品質を確保し、実装コードＡ５０５を用いてテスト可能な状態に到達すると、ユーザＡは、スタブコードＡ５１１中に上書き不可としていた情報を上書き可に修正する（本例では、「＠ｉｓＲｅｐｌａｃｅ  ｔｒｕｅ」５１４）。この状態となって初めて、ユーザＢは、スタブコードＡ５１３の上書きを許容し、実装コードＡ５０５を取り出すことが可能となる（５１０）。
【００３３】
図６は、構成管理クライアント１０５にスタブコードが用意（複製）される過程を表したフローチャートである。まず、ユーザが、構成管理クライアント１０５側で起動された構成管理プログラムのメニューやコマンドラインからスタブコードの取り出しを選択すると（ステップＳ６０１）、構成管理クライアント１０５のスタブ取出部１０８は、既に同名のスタブコードが構成管理クライアント１０５の作業ディレクトリに存在しているか調べる（ステップＳ６０２）。ここで、既に構成管理サーバ１０１からスタブコードを取得している場合、スタブ取出部１０８は、スタブコードを取り出さない（ステップＳ６０３）。
【００３４】
一方、作業ディレクトリに同名のスタブコードが存在しない場合は、スタブ取出部１０８は、構成管理サーバ１０１のスタブコード記憶部１０３からスタブコードを取り出す（ステップＳ６０４）。
【００３５】
続いて、構成管理クライアント１０５のスタブ取出部１０８は、取り出したスタブコードを置き換え不可とする置き換え可否情報を自動的に追記する（本例では、＠ｉｓＲｅｐｌａｃｅ  ｆａｌｓｅをスタブコードに追加する；ステップＳ６０５）。スタブ取出部１０８は、この置き換え可否情報を追加したスタブコードを構成管理クライアント１０５の作業ディレクトリにスタブコード１１２として保存する（ステップＳ６０６）。
【００３６】
図７は、図６で説明した様に、上書き不可とする置き換え可否情報が追記されたスタブコードを有する構成管理クライアント１０５から実装コードを取り出す際の一連の流れを表したフローチャートである。まず、ユーザが、構成管理クライアント１０５側で起動された構成管理プログラムのメニューやコマンドラインからスタブコードの取り出しを選択すると（ステップＳ７０１）、構成管理クライアント１０５のコード取出部１０７は、既に構成管理クライアント１０５の作業ディレクトリに存在している取り出し要求に係る実装コードに対応するスタブコードを読み込む（ステップＳ７０２）。
【００３７】
続いて、構成管理クライアント１０５のスタブ判定部１１０は、取り出したスタブコードを走査して所定の注釈記号が記述された行を読み出し、スタブコードが置き換え可能であるか否かの情報を取得する（ステップＳ７０３）。ここで、取り出したスタブコードが置き換え不可の場合は、コード取出部１０７は、スタブコードを取り出さない（ステップＳ７０４）。
【００３８】
一方、取り出したスタブコードが置き換え可の場合は、コード取出部１０７は、実装コード記憶部１０２から対応する実装コードを読み込む（ステップＳ７０５）。続いて、構成管理クライアント１０５のスタブ判定部１１０は、取り出した実装コードを走査して所定の注釈記号が記述された行を読み出し、実装コードが公開可能状態であるか否かを調べる（ステップＳ７０６）。ここで、取り出したスタブコードが公開不可の場合は、コード取出部１０７は、自機側にあるスタブコードが上書き不可であった場合と同様に実装コードを取り出さない（ステップＳ７０４）。
【００３９】
従って、コード取出部１０７は、自機側にあるスタブコードが上書き可に修正され、かつ、取り出し要求に係る実装コードが公開可能状態である場合に、実装コードを取り出し、構成管理クライアント１０５の作業ディレクトリに実装コード１１１として保存する（ステップＳ７０７）。
【００４０】
以上のとおり、本実施形態では、ユーザが特に注意せずともスタブコードと実装コードとを明確に区別して管理することが可能となっている。その理由は、構成管理サーバに実装コード記憶部とスタブコード記憶部を設けるとともに、ソースコードに埋め込んだ各種情報を利用し、スタブコードと実装コードを区別して取り扱い可能としたことにある。
【００４１】
また、本実施形態では、上記注釈記号を利用して実装コードの公開可否も指定可能となっており、他のユーザが品質を保証できる段階にない実装コードを取り出してしまう事態を防ぐことも可能となっている。
【００４２】
以上、本発明の好適な実施形態を説明したが、本発明は、上記したクライアントサーバシステムに限定されるものではなく、その他の構成でも適用可能であることはいうまでもない。また、上記実施形態では、構成管理クライアント側にスタブ判定部、コード登録部、コード取出部、スタブ取出部を備えるものとして説明したが、構成管理サーバ側に同等の処理手段を備えて、過誤登録防止機能や過誤払出し防止機能を備えた構成とすることも可能である。
【００４３】
また、上記実施形態では、ＪＡＶＡ（登録商標）ソースコードのコメント部分に注釈記号で始まる行を追記する形態でスタブコード等の管理情報を埋め込むこととしているが、スタブ判定部で解析させることが可能な形態であれば、その他プログラム言語においても同様のコメント機能等を利用することが可能である。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施形態に係るソフトウェア構成管理システムの構成を表した図である。
【図２】ソースコード中に記述される情報の一例を表した図である。
【図３】本発明の第１の実施形態に係るソフトウェア構成管理システムの機能を説明するための図である。
【図４】本発明の第１の実施形態に係るソフトウェア構成管理システムの動作を表したフローチャートである。
【図５】本発明の第１の実施形態に係るソフトウェア構成管理システムの機能を説明するための別の図である。
【図６】本発明の第１の実施形態に係るソフトウェア構成管理システムの動作を表したフローチャートである。
【図７】本発明の第１の実施形態に係るソフトウェア構成管理システムの動作を表したフローチャートである。
【符号の説明】
【００４５】
１０１  構成管理サーバ
１０２  実装コード記憶部
１０３  スタブコード記憶部
１０４  ネットワーク
１０５  構成管理クライアント
１０６  コード登録部
１０７  コード取出部
１０８  スタブ取出部
１１０  スタブ判定部
１１１  実装コード
１１２  スタブコード
２０１、３０２  著者（開発者）情報
２０２、３０３、５０３  スタブ／非スタブ情報
２０３、５０４、５０６  公開可否情報
２０４、５１２、５１４  置き換え可否情報
３０１、５０１  スタブコードＡ
３０５、５１１、５１３  複製されたスタブコードＡ
５０２  実装コードＡ
５０５  実装コードＡ（公開版）
【図１】
2006268163.tif 000003
【図２】
2006268163.tif 000004
【図３】
2006268163.tif 000005
【図４】
2006268163.tif 000006
【図５】
2006268163.tif 000007
【図６】
2006268163.tif 000008
【図７】
2006268163.tif 000009