(57)【特許請求の範囲】
【請求項１】
開発中又は開発が終了したソフトウェアを構成するソフトウェア部品を登録し、保持するサーバを有するソフトウェア再利用部品管理システムであって、前記サーバが、
（ａ）第１のソフトウェア部品に付与した部品ＩＤ及びバージョン番号とともに前記第１のソフトウェア部品のソフトウェア部品本体、部品仕様書及びソースコードを関連づけて登録したリポジトリであって、前記第１のソフトウェア部品の部品仕様書には、前記第１のソフトウェア部品を実行させてテストを行うテストドライバと、前記第１のソフトウェア部品が機能仕様通りに動作することを確認するために実行すべき全てのテストケースと、各テストケースに与える各テストデータと、各テストデータを各テストケースに与えてテストドライバによりテストを実行した各テスト結果とが含まれている、前記リポジトリと、
（ｂ）登録済みの前記第１のソフトウェア部品を派生元とする第２のソフトウェア部品を登録するために、前記第１のソフトウェア部品の部品ＩＤ及びバージョン番号とともに前記第２のソフトウェア部品のソフトウェア部品本体、部品仕様書及びソースコードを受信する受信手段であって、前記第２のソフトウェア部品の部品仕様書には、前記第２のソフトウェア部品を実行させてテストを行うテストドライバと、前記第２のソフトウェア部品が機能仕様通りに動作することを確認するために実行すべき全てのテストケースと、各テストケースに与える各テストデータとが含まれている、前記受信手段と、
（ｃ）受信した前記第２のソフトウェア部品の部品仕様書に含まれている各テストデータを各テストケースに与えてテストドライバによりテストを実行し、それにより取得した各テスト結果を前記第２のソフトウェア部品の部品仕様書に追加するテスト実行手段と、
（ｄ）受信した前記第１のソフトウェア部品の部品ＩＤ及びバージョン番号に基づいて前記リポジトリから前記第１のソフトウェア部品の部品仕様書を取得する手段と、
（ｅ）前記第２のソフトウェア部品が前記第１のソフトウェア部品に対して互換性があるか否かを判定する互換性判定手段であって、前記第２のソフトウェア部品の部品仕様書のテストケースの中に前記第１のソフトウェア部品の部品仕様書のテストケースが全て含まれているか否かを確認し、全てが含まれていない場合は互換性無しと判定し、さらに、全てが含まれている場合は、双方に含まれる全てのテストケースについてテスト結果が一致しているか否かを確認し、一致しないテストケースが有る場合は互換性無しと判定し、一致しないテストケースが無い場合は互換性有りと判定する、前記互換性判定手段と、
（ｆ）前記第２のソフトウェア部品が前記第１のソフトウェア部品に対して互換性が有ると判定された場合は、前記第１のソフトウェア部品のバージョン番号よりも後の番号を前記第２のソフトウェア部品のバージョン番号として決定し、前記第２のソフトウェア部品に付与した部品ＩＤ及び決定されたバージョン番号とともにソフトウェア部品本体、部品仕様書及びソースコードを関連づけて前記リポジトリに登録する登録手段と、を備えたことを特徴とする
ソフトウェア再利用部品管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア部品を再利用するソフトウェア再利用部品管理システムに関し、特に、改造、修正を経たソフトウェア部品の互換性を判定する機能を有するソフトウェア再利用部品管理システムに関するものである。
【背景技術】
【０００２】
近年、ソフトウェアの短期開発への要求は非常に強いものがあり、それを実現するためには、ソフトウェア部品（以下、「部品」ともいう）の効率的な再利用は不可欠である。そこで、コンピュータ上の共有フォルダに、再利用できるソフトウェア部品や仕様書を格納して、組織内で共有することがある。もしくは検索機能を持つソフトウェア部品管理ソフトを使用することもある。
【０００３】
また、ソフトウェア部品のバージョン管理は、ＲＣＳ(Revision
Control System)やＣＶＳ(Concurrent
Versions System)など、従来から実現されてきた機能がある。
また、ソフトウェア部品のテストに関しては、テスト対象とテスト対象を駆動させるドライバ、およびそのドライバ自身を駆動するフレームワークから構成されるテストを実行するためのテスト用フレームワークが存在しており、さまざまなプログラミング言語の単体テストで使用できるようになっている。
【０００４】
例えば、特許文献１では、既存ソフトウェア部品機能仕様書と既存ソフトウェア部品ソースコードとを保持し、新規ソフトウェア機能仕様書に基づいて、上記既存ソフトウェア部品機能仕様書および既存ソフトウェア部品ソースコードを出力するソフトウェア部品庫と、新規ソフトウェア機能仕様書に基づいて、上記新規ソフトウェアを構成する新規ソフトウェア部品の新規ソフトウェア部品ソースコードとして再利用可能な既存ソフトウェア部品ソースコードを抽出すると共に、上記新規ソフトウェア部品の新規ソフトウェア部品機能仕様書として再利用可能な既存ソフトウェア部品機能仕様書を抽出するソフトウェア部品抽出部とを備えるソフトウェア再利用支援装置に関する技術が開示されている。
【０００５】
また、特許文献２では、適用対象のシステムのソフトウェアを再利用するソフトウェア再利用装置において、前記システムを、ソフトウェア資源又はデータ資源を含む複数の機能別モデルの集合体として構成し、前記機能別モデルを統一的に記述管理するサ−バ側装置と、前記機能別モデルを分類管理するクライアント側装置を有するソフトウェア再利用装置に関する技術が開示されている。
【０００６】
【特許文献１】特開２００１−１８８６７３号公報
【特許文献２】特開平０８−２３４９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、ソフトウェア部品は、さまざまな要求に対応するために、随時改良、修正が加えられる。特に、不具合が発見された場合、そのソフトウェア部品を使っているソフトウェアにおいて、不具合を含むソフトウェア部品を、修正されたソフトウェア部品で置換したいという要求は必ず発生する。この置換作業で問題が発生する場合として、改良と同時に不具合修正が行われた場合があげられる。置換作業を行う場合、新しく改良、修正されたソフトウェア部品が、置換されるソフトウェア部品と互換性を持っていないと、置換後のソフトウェアの動作は正しいものにならない。改良と修正は同時に行われることが多く、上記の問題は頻繁に起こりうる。
【０００８】
また、ソフトウェア部品のバージョン管理をしていても、バージョンが進む段階でソフトウェア部品の互換性が失われることがあり、単純に最も新しいバージョンのものを使用するわけにはいかず、ソフトウェア部品を使用しようとするユーザは、どのバージョンのソフトウェア部品が、自分が使用しているソフトウェア部品と互換性があるのかを、各バージョンについて確認する必要がある。
また、すでに古いバージョンが登録されているソフトウェア部品を、改良、修正して新しいバージョンのソフトウェア部品として登録する際にも、互換性が失われた場合には、別のソフトウェア部品として登録した方がよいこともあり、互換性の有無を確認する必要がある。
【０００９】
上記問題点に鑑み、本発明の課題は、ソフトウェア部品を再利用しようとするユーザが、以前使用していたソフトウェア部品と互換性のあるソフトウェア部品のバージョンを容易に知ることができ、また、ソフトウェア部品を登録するユーザが、登録したいソフトウェア部品について、古いバージョンのソフトウェア部品との互換性の有無を容易に確認できるソフトウェア再利用部品管理システムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、以下の特徴を有する。
請求項１に記載の本発明は、開発中又は開発が終了したソフトウェアを構成するソフトウェア部品を登録し、保持するサーバを有するソフトウェア再利用部品管理システムであって、前記サーバが、
（ａ）第１のソフトウェア部品に付与した部品ＩＤ及びバージョン番号とともに前記第１のソフトウェア部品のソフトウェア部品本体、部品仕様書及びソースコードを関連づけて登録したリポジトリであって、前記第１のソフトウェア部品の部品仕様書には、前記第１のソフトウェア部品を実行させてテストを行うテストドライバと、前記第１のソフトウェア部品が機能仕様通りに動作することを確認するために実行すべき全てのテストケースと、各テストケースに与える各テストデータと、各テストデータを各テストケースに与えてテストドライバによりテストを実行した各テスト結果とが含まれている、前記リポジトリと、
（ｂ）登録済みの前記第１のソフトウェア部品を派生元とする第２のソフトウェア部品を登録するために、前記第１のソフトウェア部品の部品ＩＤ及びバージョン番号とともに前記第２のソフトウェア部品のソフトウェア部品本体、部品仕様書及びソースコードを受信する受信手段であって、前記第２のソフトウェア部品の部品仕様書には、前記第２のソフトウェア部品を実行させてテストを行うテストドライバと、前記第２のソフトウェア部品が機能仕様通りに動作することを確認するために実行すべき全てのテストケースと、各テストケースに与える各テストデータとが含まれている、前記受信手段と、
（ｃ）受信した前記第２のソフトウェア部品の部品仕様書に含まれている各テストデータを各テストケースに与えてテストドライバによりテストを実行し、それにより取得した各テスト結果を前記第２のソフトウェア部品の部品仕様書に追加するテスト実行手段と、
（ｄ）受信した前記第１のソフトウェア部品の部品ＩＤ及びバージョン番号に基づいて前記リポジトリから前記第１のソフトウェア部品の部品仕様書を取得する手段と、
（ｅ）前記第２のソフトウェア部品が前記第１のソフトウェア部品に対して互換性があるか否かを判定する互換性判定手段であって、前記第２のソフトウェア部品の部品仕様書のテストケースの中に前記第１のソフトウェア部品の部品仕様書のテストケースが全て含まれているか否かを確認し、全てが含まれていない場合は互換性無しと判定し、さらに、全てが含まれている場合は、双方に含まれる全てのテストケースについてテスト結果が一致しているか否かを確認し、一致しないテストケースが有る場合は互換性無しと判定し、一致しないテストケースが無い場合は互換性有りと判定する、前記互換性判定手段と、
（ｆ）前記第２のソフトウェア部品が前記第１のソフトウェア部品に対して互換性が有ると判定された場合は、前記第１のソフトウェア部品のバージョン番号よりも後の番号を前記第２のソフトウェア部品のバージョン番号として決定し、前記第２のソフトウェア部品に付与した部品ＩＤ及び決定されたバージョン番号とともにソフトウェア部品本体、部品仕様書及びソースコードを関連づけて前記リポジトリに登録する登録手段と、を備えたことを特徴とするソフトウェア再利用部品管理システムである。
【発明の効果】
【００１２】
本発明のソフトウェア再利用部品管理システムにより、サーバに登録されているソフトウェア部品の部品仕様書を閲覧し、更に、ソフトウェア部品のテストを実行し、その結果を閲覧することで、すでに使用しているソフトウェア部品と、サーバに登録されているソフトウェア部品との互換性を容易に確認でき、互換性のないソフトウェア部品を誤って使用した際の修正を効率よく行うことができる。
さらに、上記に加えて、再利用しようとするソフトウェア部品の挙動、仕様について容易に理解ができ、ソフトウェア部品を誤って使用した際のソフトウェア部品の修正やソフトウェア部品の再検索を効率よく行うことができる。
また、本発明のソフトウェア再利用部品管理システムにより、ソフトウェア部品のバージョンの系列内の各ソフトウェア部品が適切な互換性を保ったまま格納されることで、指定したソフトウェア部品のうち、互換性のあるバージョンを容易に検索できる。
また、本発明のソフトウェア再利用部品管理システムにより、登録時にバージョンの系列内のソフトウェア部品との互換性の確認することで、新しいソフトウェア部品として登録するか、ある系列の最新バージョンとして登録するかの判断を容易にすることができる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明を実施するための最良の形態を図面に基づいて説明する。
【００１４】
図１は、本発明の実施の形態の一例を示すシステム構成図である。
本発明のソフトウェア再利用部品管理システムは、ソフトウェア再利用部品管理を行う装置本体としてのサーバ１０１と、ユーザが要求を出す複数のクライアント端末１０２からなり、サーバ１０１とクライアント端末１０２の間はネットワークで接続されている。
サーバ１０１には、リポジトリ１０３と、部品登録手段１０４、部品検索手段１０５、部品抽出手段１０６がある。また、前記部品登録手段１０４、部品検索手段１０５、部品抽出手段１０６を実行するための手段として、サーバ１０１は、互換性判定手段１０７、テスト実行手段１０８、版管理手段１０９を備えている。
リポジトリ１０３は、ソフトウェア部品のカテゴリを保持するカテゴリ表１１０、ソフトウェア部品の名称、概要、属しているカテゴリを保持する部品管理表１１１、ソフトウェア部品のバージョンを管理するバージョン管理表１１２、および、複数のソフトウェア部品１１３と、各ソフトウェア部品に関連づけられた部品仕様書１１４、各ソフトウェア部品に関連づけられたソースコード１１５を格納している。
【００１５】
図２は、ソフトウェア部品のカテゴリを格納するカテゴリ表の一例を示す図である。
カテゴリＩＤ２０１は、各カテゴリを一意に特定するために割り振られるキーである。分類２０２は、各カテゴリが、適用分野や言語といった大分類のどれに相当するかを示す。カテゴリ名２０３は、各カテゴリの名称を示す。
【００１６】
図３は、部品管理表の一例を示す図である。
部品管理表１１１は、ソフトウェア部品を新規に登録した場合に、当該ソフトウェア部品に対応する行が追加される。部品ＩＤ３０１は、ソフトウェア部品を識別するために割り振られるキーである。部品名称３０２は、ソフトウェア部品を新規に登録する際にユーザが指定したソフトウェア部品の名称である。部品概要３０３は、ソフトウェア部品を新規に登録する際にユーザが指定した、ソフトウェア部品の簡単な説明文である。カテゴリ３０４は、カテゴリ表１１０におけるカテゴリＩＤ２０１のリストを保持する項目で、ユーザがソフトウェア部品を新規に登録する際にカテゴリ表１１０の中から選択したカテゴリを格納し、当該ソフトウェア部品がどのカテゴリに属しているかを表す。
【００１７】
図４は、バージョン管理表の一例を示す図である。
バージョン管理表１１２は、ソフトウェア部品を新規に登録した場合、又は、あるソフトウェア部品の後継バージョンのソフトウェア部品を登録した場合に、当該ソフトウェア部品に対応する行が追加される。部品ＩＤ４０１は、部品管理表１１１における部品ＩＤ３０１に対応するキーである。バージョン番号４０２は、ソフトウェア部品を登録する際に割り当てられるバージョンを表し、同じバージョン系列のソフトウェア部品を一意に識別するために使用する。バージョン番号が１となっているのは、新規に登録されたソフトウェア部品であることを表し、バージョン番号が２以上となっているのは、あるバージョンのソフトウェア部品の後継バージョンとして登録されたソフトウェア部品であることを表す。派生元バージョン４０３は、当該ソフトウェア部品がどのバージョンの直近の後継として登録されたものであるかを示す。新規に登録されるソフトウェア部品については、派生元バージョン４０３には何も指定しない。後継バージョン４０４は、バージョン番号のリストを保持する項目であり、当該バージョンの後継に相当する全てのバージョンのバージョン番号が入る。後継のバージョンが登録されていないソフトウェア部品については、後継バージョン４０４には何も指定しない。
【００１８】
図４に示す例では、Ｐ０００００１という部品ＩＤを持つソフトウェア部品には５つの異なるバージョンが存在している。そのうち、バージョン３とバージョン４は、バージョン２から別々に派生したソフトウェア部品であり、バージョン２を起点にバージョン系列の枝分かれが発生している。このように、ソフトウェア部品のバージョン系列には枝分かれが発生することがある。
【００１９】
図５は、部品仕様書の一例を示す図である。
部品仕様書１１４は、インターフェース仕様書５０１、機能仕様書５０２、テストドライバ５０３、テストデータ５０４、テストケース５０５を必ず含む。また、テスト結果５０６は、テスト実行手段１０８において、テストドライバ５０３、テストデータ５０４、テストケース５０５を用いて当該ソフトウェア部品を実行した結果であり、部品登録手段１０４によって、当該部品仕様書１１４に追加される。
インターフェース仕様書５０１は、例５０７のように、パッケージ名、クラス名、メソッド名、入力値のデータ型、戻り値のデータ型など、ソフトウェア部品のインターフェースに関する情報を含む。
【００２０】
機能仕様書５０２は、例５０８のように、当該ソフトウェア部品の機能を示すドキュメントであり、制約条件や、前バージョンからの機能変更点などの情報を含む。テストドライバ５０３は、当該ソフトウェア部品を駆動させるドライバであり、テスト実行手段１０８において直接実行することができるよう、バイナリ形式で提供される。
テストドライバ５０３は、機能として、テストデータ５０４を読み込み、テストケース５０５の中の各テストケースを一括実行して、テスト結果５０６を出力するまでの処理を行う。
【００２１】
テストデータ５０４は、例５０９のように、当該ソフトウェア部品のテストを実行する際に使用するデータを配列形式で与える。テストケース５０５は、当該ソフトウェア部品が、機能仕様書５０２に記述された仕様どおりに動作することを確認するために実行しなければならない全テストケースを、例５１０のような表形式で記述したものである。
テスト結果５０６は、テストケース５０５にある全テストケースと、各テストケースに対する実行結果を対応づけて、例５１１のような表形式で保持する。
【００２２】
次に、ソフトウェア再利用部品管理システムにおけるサーバ１０１の動作を、図を参照しながら説明する。
図６は、ソフトウェア部品の検索手順を示すフローチャートである。
ユーザは、クライアント端末１０２から部品検索要求をサーバ１０１に送信し、部品検索手段１０５がこれを受信する（ステップ６０１）。部品検索手段１０５は、リポジトリ１０３からカテゴリ表１１０を検索し、クライアント端末１０２に返却する（ステップ６０２）。ユーザは、返却されたカテゴリ表１１０の中からカテゴリを複数個指定、もしくは検索用キーワードを複数個指定し、部品検索手段１０５に送信する（ステップ６０３）。
【００２３】
部品検索手段１０５は、ユーザが指定したカテゴリに属するソフトウェア部品の部品ＩＤ、部品名称、部品概要、および、ユーザが指定したキーワードを部品名称または部品概要に含むソフトウェア部品の部品ＩＤ、部品名称、部品概要を、部品管理表１１１から検索する（ステップ６０４）。部品検索手段１０５は、検索結果をクライアント端末１０２に返却する（ステップ６０５）。
以上の手順により、ユーザはサーバ１０１を用いてソフトウェア部品を検索できる。ユーザは、クライアント端末１０２上に表示された部品名称と部品概要を閲覧することにより、引き続き、ソフトウェア部品の全バージョンの表示を行いたい場合に、その対象となるソフトウェア部品を容易に選択できる。
【００２４】
図７は、指定したソフトウェア部品の全バージョンを表示する手順を示すフローチャートである。
ユーザは、まず図６の手順に沿ってソフトウェア部品を検索し、クライアント端末１０２上に表示された検索結果の中から、全バージョンを表示したいソフトウェア部品を１つ指定し、全バージョン表示要求をサーバ１０１に送信し、部品検索手段１０５がこれを受信する（ステップ７０１）。
【００２５】
部品検索手段１０５は、版管理手段１０９に、ユーザが指定したソフトウェア部品の全バージョン取得依頼を出し、版管理手段１０９は、バージョン管理表１１２を検索して、指定されたソフトウェア部品の全バージョン番号を取得し、部品検索手段１０５に返却する（ステップ７０２）。部品検索手段１０５は、返却された全バージョン番号をクライアント端末１０２に返却する（ステップ７０３）。
以上の手順により、ユーザは、指定したソフトウェア部品の全バージョンを取得できる。ユーザは、クライアント端末１０２上に表示されたバージョン番号の１つを指定することにより、引き続き、指定したバージョンと互換性のあるバージョンの表示、または、指定したバージョンの後継バージョンの登録を行うことができる。
【００２６】
図８は、ソフトウェア部品を抽出する手順のフローチャートである。
ユーザは、まず図７の手順に沿って、あるソフトウェア部品の全バージョンを表示し、その中から、抽出したいバージョンを１つ選択し、部品抽出要求をサーバ１０１に送信し、部品抽出手段（第１の手段）１０６がこれを受信する（ステップ８０１）。部品抽出手段１０６は、部品抽出要求を受信すると、選択されたバージョンに該当するソフトウェア部品１１３、部品仕様書１１４、ソースコード１１５を、リポジトリ１０３から取得してクライアント端末１０２に返却する（ステップ８０２）。
以上の手順により、ユーザは本サーバ１０１から、ソフトウェア部品、部品仕様書、ソースコードを抽出できる。
【００２７】
図９は、ソフトウェア部品を新規に登録する場合の手順を示すフローチャートである。
ユーザは、クライアント端末１０２から、ソフトウェア部品の新規登録要求をサーバ１０１に送信し、部品登録手段１０４がこれを受信する（ステップ９０１）。部品登録手段１０４は、リポジトリ１０３からカテゴリ表１１０を取得し、クライアント端末１０２に返却する（ステップ９０２）。ユーザは、返却されたカテゴリ表１１０の中から、新規に登録しようとしているソフトウェア部品が属するカテゴリを複数個選択するとともに、登録しようとしているソフトウェア部品本体、当該ソフトウェア部品のソフトウェア部品仕様書、当該ソフトウェア部品のソースコード、当該ソフトウェア部品の部品名称、当該ソフトウェア部品の部品概要を、クライアント端末１０２上で入力して、サーバ１０１に送信し、部品登録手段１０４がこれを受信する（ステップ９０３）。
【００２８】
部品登録手段１０４は、部品仕様書の中のテストドライバ、テストデータ、テストケースをもとに、テスト実行手段１０８を使用してテストを実行してテスト結果を取得し（ステップ９０４）、テスト実行手段１０８から返却されたテスト結果を部品仕様書に追加する（ステップ９０５）。次に、部品登録手段１０４は、当該ソフトウェア部品に新しい部品ＩＤを付与し、部品管理表１１１にアクセスして、当該ソフトウェア部品の部品ＩＤ、当該ソフトウェア部品の部品名称、当該ソフトウェア部品の部品概要、当該ソフトウェア部品が属するカテゴリを記録し、また、版管理手段１０９を使用してバージョン管理表１１２にアクセスし、当該ソフトウェア部品の部品ＩＤと、バージョン番号「１」を記録する（ステップ９０６）。続いて、部品登録手段１０４は、当該ソフトウェア部品本体、当該ソフトウェア部品の部品仕様書、当該ソフトウェア部品のソースコードを、それぞれの関連付けを保ったまま、リポジトリ１０３に格納する（ステップ９０７）。最後に、部品登録手段１０４は、登録完了を告げるメッセージをクライアント端末１０２に返却して処理を終了する（ステップ９０８）。
以上の手順により、ユーザはサーバ１０１にソフトウェア部品を新規に登録できる。
【００２９】
図１０は、ソフトウェア部品を、既に登録されているあるソフトウェア部品の後継バージョンとして登録する場合の手順を示すフローチャートである。
ユーザは、まず図７の手順に沿って、指定したソフトウェア部品の全バージョンをクライアント端末１０２上に表示し、これから登録しようとしているソフトウェア部品の直近の派生元に当たるソフトウェア部品を選択し、選択したソフトウェア部品の部品ＩＤと、選択した派生元ソフトウェア部品のバージョン番号と、後継バージョンの登録要求とをサーバ１０１に送信し、部品登録手段１０４がこれを受信する（ステップ１００１）。ユーザは、引き続き、登録しようとしているソフトウェア部品本体、当該ソフトウェア部品の部品仕様書、当該ソフトウェア部品のソースコードを、クライアント端末１０２上で入力して、サーバ１０１に送信し、部品登録手段１０４がこれを受信する（ステップ１００２）。
【００３０】
部品登録手段１０４は、部品仕様書の中のテストドライバ、テストデータ、テストケースをもとに、テスト実行手段１０８を使用してテストを実行し、テスト結果を取得する（ステップ１００３）。部品登録手段１０４は、テスト実行手段１０８から取得したテスト結果を部品仕様書に追加する（ステップ１００４）。次に、部品登録手段１０４は、取得したテスト結果をもとに、当該ソフトウェア部品が、派生元ソフトウェア部品との互換性を保っているかどうかを、互換性判定手段１０７を用いて判定する（ステップ１００５）。
【００３１】
その結果、互換性なしの場合は、当該ソフトウェア部品が派生元のソフトウェア部品と互換性がないことを告げるメッセージをクライアント端末１０２に返却して処理を終了する（ステップ１００６）。ステップ１００５にて、互換性ありの場合、部品登録手段１０４は、版管理手段１０９を用いてバージョン管理表１１２にアクセスし、当該ソフトウェア部品の部品ＩＤ、当該ソフトウェア部品の新しいバージョン番号、当該ソフトウェア部品の直近の派生元ソフトウェア部品のバージョン番号を記録すると同時に、当該ソフトウェア部品の派生元に当たる全てのソフトウェア部品について、後継バージョンに、当該ソフトウェア部品のバージョン番号を追加する（ステップ１００７）。
【００３２】
さらに、部品登録手段１０４は、当該ソフトウェア部品本体、当該ソフトウェア部品の部品仕様書、当該ソフトウェア部品のソースコードを、それぞれの関連付けを保ったまま、リポジトリ１０３に格納する（ステップ１００８）。最後に、部品登録手段１０４は、登録完了を告げるメッセージをクライアント端末１０２に返却して処理を終了する（ステップ１００９）。
以上の手順により、ユーザは、本サーバ１０１にすでに登録されているソフトウェア部品の後継バージョンを登録できる。後継バージョンは、直近の派生元バージョンとの互換性を保っていることが、登録のための条件となる。ただし、直近の派生元バージョンが必ずしも、最新のバージョンに一致するとは限らないことから、バージョン系列に複数の枝分かれが発生することがある。
【００３３】
図１１は、指定したバージョンのソフトウェア部品と互換性のあるバージョンを表示する手順を示すフローチャートである。
ユーザは、まず図７の手順に沿って、あるソフトウェア部品の全バージョンをクライアント端末１０２上に表示し、その中から１つのバージョンを指定して、指定したバージョンと互換性のあるバージョンの表示要求をサーバ１０１に送信し、部品検索手段１０５がこれを受信する（ステップ１１０１）。部品検索手段１０５は、版管理手段１０９を用いて、バージョン管理表１１２にアクセスし、指定されたバージョンのソフトウェア部品の後継バージョンを取得する（ステップ１１０２）。部品検索手段１０５は、取得したバージョン番号をクライアント端末１０２に返却する（ステップ１１０３）。
以上の手順により、ユーザは、指定したバージョンのソフトウェア部品と互換性が保たれているバージョンを知ることができる。
【００３４】
図１２は、ソフトウェア部品の互換性判定の手順を示す図である。
図１２では、ソフトウェア部品Ａとソフトウェア部品Ｂという２つのソフトウェア部品を仮定しており、ソフトウェア部品Ａがソフトウェア部品Ｂに対して互換性があるか否かを判定するための手順を表している。
まず、互換性判定手段１０７は、互換性判定依頼を受取り、同時に、ソフトウェア部品Ａのテスト結果と、ソフトウェア部品Ｂの部品ＩＤおよびバージョン番号を受取る（ステップ１２０１）。互換性判定手段１０７は、ソフトウェア部品Ｂの部品ＩＤとバージョン番号から、ソフトウェア部品Ｂの部品仕様書を特定してリポジトリ１０３から取得し、取得した部品仕様書の中から、ソフトウェア部品Ｂのテスト結果を取得する（ステップ１２０２）。互換性判定手段１０７は、ソフトウェア部品Ａのテスト結果に記述されたテストケースと、ソフトウェア部品Ｂのテスト結果に記述されたテストケースとを比較し、ソフトウェア部品Ａのテストケース中に、ソフトウェア部品Ｂの全テストケースが含まれていることを確認する（ステップ１２０３）。ここで、ソフトウェア部品Ｂの方にのみ含まれるテストケースが存在した場合、互換性判定手段１０７は、ソフトウェア部品Ａがソフトウェア部品Ｂに対して互換性がないと判定して処理を終了する（ステップ１２０４）。
【００３５】
続いて、互換性判定手段１０７は、ソフトウェア部品Ａとソフトウェア部品Ｂの双方のテスト結果を比較し、双方に含まれる全てのテストケースについて、実行結果が一致することを確認する（ステップ１２０５）。実行結果が一致しないテストケースが存在した場合、互換性判定手段１０７は、ソフトウェア部品Ａがソフトウェア部品Ｂに対して互換性がないと判定する（ステップ１２０４）。結果が一致しないテストケースが存在しなかった場合、互換性判定手段１０７は、ソフトウェア部品Ａがソフトウェア部品Ｂに対して互換性があると判定する（ステップ１２０６）。
以上の手順により、ソフトウェア部品Ａがソフトウェア部品Ｂに対して互換性があるか否かを判定することができる。
【００３６】
図１３は、テストを実行する手順を示すフローチャートである。
テスト実行手段１０８は、テスト実行要求とともに、テストするソフトウェア部品本体と、当該ソフトウェア部品の部品仕様書を受取る（ステップ１３０１）。テスト実行手段１０８は、受取った部品仕様書の中から、テストドライバ、テストデータ、テストケースを取得する（ステップ１３０２）。テスト実行手段１０８は、テストドライバを起動してテストを実行し、テストケースに実行結果を付加して、テスト結果を作成する（ステップ１３０３）。最後に、テスト実行手段１０８は、作成したテスト結果を返却して処理を終了する（ステップ１３０４）。
以上の手順により、ユーザは、ソフトウェア部品のテスト結果を容易に入手することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施の形態の一例を示すシステム構成図である。
【図２】ソフトウェア部品のカテゴリを格納するカテゴリ表の一例を示す図である。
【図３】部品管理表の一例を示す図である。
【図４】バージョン管理表の一例を示す図である。
【図５】部品仕様書の一例を示す図である。
【図６】ソフトウェア部品の検索手順を示すフローチャートである。
【図７】指定したソフトウェア部品の全バージョンを表示する手順を示すフローチャートである。
【図８】ソフトウェア部品を抽出する手順のフローチャートである。
【図９】ソフトウェア部品を新規に登録する場合の手順を示すフローチャートである。
【図１０】ソフトウェア部品を、既に登録されているあるソフトウェア部品の後継バージョンとして登録する場合の手順を示すフローチャートである。
【図１１】指定したバージョンのソフトウェア部品と互換性のあるバージョンを表示する手順を示すフローチャートである。
【図１２】ソフトウェア部品の互換性判定の手順を示す図である。
【図１３】テストを実行する手順を示すフローチャートである。
【符号の説明】
【００３８】
１０１  サーバ
１０２  クライアント端末
１０３  リポジトリ
１０４  部品登録手段（登録手段）
１０５  部品検索手段（検索手段）
１０６  部品抽出手段（抽出手段）
１０７  互換性判定手段（判定手段）
１０８  テスト実行手段
１０９  版管理手段
１１０  カテゴリ表
１１１  部品管理表
１１２  バージョン管理表
１１３  ソフトウェア部品
１１４  部品仕様書
１１５  ソースコード
５０１、５０７  インターフェース仕様書
５０２、５０８  機能仕様書
５０３  テストドライバ
５０４、５０９  テストデータ
５０５、５１０  テストケース
５０６、５１１  テスト結果
【図１】
0004786998.tif 000002
【図２】
0004786998.tif 000003
【図３】
0004786998.tif 000004
【図４】
0004786998.tif 000005
【図５】
0004786998.tif 000006
【図６】
0004786998.tif 000007
【図７】
0004786998.tif 000008
【図８】
0004786998.tif 000009
【図９】
0004786998.tif 000010
【図１０】
0004786998.tif 000011
【図１１】
0004786998.tif 000012
【図１２】
0004786998.tif 000013
【図１３】
0004786998.tif 000014