(57)【要約】【課題】開発成果物の信頼性向上、開発工程の工数削減、管理者の負担軽減を図ること。【解決手段】構成管理装置１０１は、指定部１１３により開発環境Ｄａが指定された場合、抽出部１１４により構成管理ＤＢ１１２から開発環境Ｄａを抽出し出力する。取得部１１６により開発成果物Ｒが取得された場合、検証コード生成部１１７によりコンパイラＣ−１を含む指定された開発環境Ｄａの下で、開発成果物Ｒに含まれているソースコードＳＣを再コンパイルする。これにより、再コンパイル結果Ｂａが生成される。そして、再コンパイル結果Ｂａ及び指定された開発環境Ｄａ中のファイルを用いて、開発環境の照合用検証コードＡｂａを生成する。開発環境検証コード判定部１１８により、開発環境の照合用検証コードＡｂａと、開発成果物Ｒに含まれている開発環境検証コードＡｂｂとが一致するか否かを判定する。【選択図】        図３
2006350840.tif 000002
【特許請求の範囲】
【請求項１】
コンパイラを含む開発環境の指定を受け付けさせる指定工程と、
前記指定工程によって指定された開発環境（以下、「指定開発環境」という）を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な検証コードとを取得させる取得工程と、
前記取得工程によって取得されたソースコードの前記指定開発環境下に於ける再コンパイル結果及び当該指定開発環境中のファイルを用いて、当該ソースコードの開発環境の照合用検証コードを生成させる生成工程と、
前記取得工程によって取得された検証コードと前記生成工程によって生成された照合用検証コードとの同一性を判定させる判定工程と、
前記判定工程によって判定された判定結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする構成管理プログラム。
【請求項２】
前記生成工程は、
前記再コンパイル結果及び指定開発環境中の全ファイルのビット列をファイル名等でソートした順で結合し、一方向関数に入力することによって、前記照合用検証コードを生成させることを特徴とする請求項１に記載の構成管理プログラム。
【請求項３】
構成管理サーバに記憶されているコンパイラを含む開発環境の入力を受け付ける入力工程と、
前記入力工程によって開発環境が入力された場合、ソースコードの作成処理と当該ソースコードのコンパイル処理を含む開発処理を実行させる実行工程と、
前記実行工程による開発処理の実行によって得られたコンパイル結果及び前記開発環境中のファイルを用いて、前記実行工程による開発処理の実行によって得られたソースコードの開発環境検証コードを生成させる生成工程と、
前記ソースコードと、前記生成工程によって生成された検証コードとを出力させる出力工程と、
をコンピュータに実行させることを特徴とする開発処理プログラム。
【請求項４】
コンパイラを含む開発環境の指定を受け付ける指定工程と、
前記指定工程によって指定された開発環境を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な検証コードとを取得する取得工程と、
前記取得工程によって取得されたソースコードの前記指定の開発環境下に於ける再コンパイル結果及び指定開発環境中のファイルを用いて、当該ソースコードの開発環境の照合用検証コードを生成する生成工程と、
前記取得工程によって取得された検証コードと前記生成工程によって生成された照合用検証コードとの同一性を判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする構成管理方法。
【請求項５】
構成管理サーバに記憶されているコンパイラを含む開発環境の入力を受け付ける入力工程と、
前記入力工程によって開発環境が入力された場合、ソースコードの作成処理と当該ソースコードのコンパイル処理を含む開発処理を実行する実行工程と、
前記実行工程による開発処理の実行によって得られたコンパイル結果及び前記開発環境中のファイルを用いて、前記実行工程による開発処理の実行によって得られたソースコードの開発環境検証コードを生成する生成工程と、
前記ソースコードと、前記生成工程によって生成された検証コードとを出力させる出力工程と、
を含んだことを特徴とする開発処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェア、当該ソフトウェアを構成するソフトウェア部品や、コンパイラ、クラスライブラリ、デバッガ、メイクファイルなどの開発環境の構成管理をおこなう構成管理プログラム、開発処理プログラム、該プログラムを記録した記録媒体、構成管理装置、開発処理端末、構成管理方法、および開発処理方法に関する。
【背景技術】
【０００２】
従来から、オープン環境および、オブジェクト指向開発の場合、コンパイラやクラスライブラリなどの開発環境の種類や版数が多数かつ頻繁に変化する。そのため、高品質な分散開発を実現するために、作成・納品対象であるソフトウェアやソフトウェア部品およびそれらのソースコードだけではなく、コンパイラやクラスライブラリなどの開発環境も含めた構成管理がおこなわれる。また、短納期で信頼性の高いソフトウェア開発のために、分散開発環境の構成管理を厳密に行う技術の必要性は高まっている。さらに、品質管理の要求水準が高くなるに従い、成果物自体およびそれらの構成要素だけではなく、分散開発時の開発環境の構成管理の検証の自動処理が重要となる。
【０００３】
上述した分散開発の各拠点の開発環境の構成管理を厳密におこなうには、以下の２通りの方策がとられている。
（１）全開発拠点を単一の構成管理ツールの管理下における場合、開発環境などの構成管理に分散環境対応ツールを適用し、ファイル操作の自動処理をおこなう。
（２）全開発拠点を単一の構成管理ツールの管理下におかない場合、各開発拠点に管理責任者を置き、集中管理している構成管理サーバから、開発環境の原本等の配布・開発成果の収集処理等の標準化された手続きを運用する。
【０００４】
このような構成管理システムは、従来から提案されており、具体的には、以下のように、分散開発するソフトウェアとそれらの各々に関連する物理的配置／コンパイラのバージョン／開発者などの関連情報を集中管理することで、ソフトウェア開発の支援を行う機能を実現している。
【０００５】
たとえば、下記特許文献１に記載の従来技術では、ソフトウェアの論理的なモジュール構成と、それらの各々に対応する仕様書／設計書／ソースプログラムの物理ファイルの所在情報との対応関係を管理している。
【０００６】
また、下記特許文献２に記載の従来技術では、開発するソフトウェアと、それらの各々に関する仕様書／プログラム／品質情報／進捗情報／開発マシン情報／開発ツール情報／プロジェクト情報との対応関係を管理している。特に、ソフトウェアと、そのコンパイルに用いたコンパイラのバージョン情報との対応関係を用いて、コンパイラが更新されたときに、全ソフトウェアのコンパイラのバージョンを統一している。
【０００７】
さらに、下記特許文献３に記載の従来技術では、分散開発するソフトウェアと、それらの各々のソフトウェア部品名／バージョン／開発担当者名／発生エラーコード／プログラムチェックリストとの対応関係を管理している。特に、分散開発開始時に、登録データにしたがって、プログラム部品の開発を指定された担当者に依頼し、開発されたソフトウェアの納品時に、プログラム部品と開発担当者間の対応関係が指定通りかのチェックを行っている。
【０００８】
【特許文献１】特開平９−１６７０８７号公報
【特許文献２】特開平３−２５６１２０号公報
【特許文献３】特開２００２−２４０１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来の構成管理システムでは、開発体制、開発工程または予算の都合により、全開発拠点を単一の構成管理システムの管理下に置くことができない状況が生じる。この場合、ファイルの自動管理の徹底が不可能となり、ファイル管理に人的操作が入ることが不可避となる。したがって、操作ミス・不正改竄見逃しなど管理品質上の不確実性が生じ、構成管理の品質を低下させるという問題があった。また、開発作業自体および構成管理に十分な人員、工数、資源が割り当てられない場合には、開発成果が、配布された開発環境下のものであるかどうかを保証することが困難であるという問題があった。
【００１０】
たとえば、開発者が各自の携帯型計算機を用いて、自宅または移動先などで開発作業をおこなう場合、管理拠点から開発環境が与えられていても、開発者によっては、不注意などにより与えられた開発環境とはバージョンが異なる開発環境を用いて開発作業をおこなってしまうことが有り得る。このような開発作業により得られた開発成果物には、納品チェックをパスしても、管理拠点側が意図した開発成果物にくらべてクラスライブラリやコンパイラのバージョンが異なっていることによるチェック対象外の機能面・性能面の差異が発生し得るため、納品後のチェック時には想定外の使用方法や高負荷に耐えられず、修正しなければならないことが発生し得るという問題があった。
【００１１】
一方で、構成管理の品質向上のために、管理規定を制定し、管理体制を整えることで、
各開発拠点の開発環境の構成管理を厳密におこなおうとすると、各開発拠点での開発作業が規定通りの開発環境下で実行されたことを厳密に検証することが必要である。それを実現しようとすると、管理体制側の担当者の作業負担が増大するという問題があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するため、全開発拠点が単一の管理システム下に置かれていない場合であっても、ソースコードなどの開発成果物の信頼性向上、開発工程の構成管理工数削減および品質管理担当者の負担軽減を図ることができる構成管理プログラム、開発処理プログラム、該プログラムを記録した記録媒体、構成管理装置、開発処理端末、構成管理方法、および開発処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、この発明にかかる構成管理プログラム、該プログラムを記録した記録媒体、構成管理装置、および構成管理方法は、コンパイラを含む開発環境の指定を受け付け、指定された開発環境（以下、「指定開発環境」という）を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な検証コードとを取得し、取得されたソースコードの前記指定開発環境下に於ける再コンパイル結果及び当該指定開発環境中のファイルを用いて、当該ソースコードの開発環境の照合用検証コードを生成し、取得された検証コードと生成された照合用検証コードとの同一性を判定し、判定された判定結果を出力することを特徴とする。
【００１４】
また、この発明にかかる開発処理プログラム、該プログラムを記録した記録媒体、開発処理装置、および開発処理方法は、構成管理から出力された前記開発環境の入力を受け付け、該開発環境に於いて、ソースコード作成と当該ソースコードのコンパイル処理を実行し、開発処理の実行によって得られたコンパイル結果及び当該開発環境中のファイルを用いて、当該ソースコードの開発環境検証コードを生成し、開発処理の実行によって得られたソースコードと、生成された検証コードと、を出力することを特徴とする。
【００１５】
また、上記発明において、前記開発環境検証コードは、前記コンパイル結果及びそのコンパイル作業を行った開発環境中の全ファイルのファイルサイズの合計値に基づいて生成されることとしてもよく、また、前記コンパイル結果及びそのコンパイル作業を行った開発環境中の全ファイルのビット列をファイル名等でソートした順で結合し、一方向関数に入力することによって生成されることとしてもよい。
【００１６】
また、上記発明において、前記検証コードは、前記コンパイル結果のファイルサイズに基づいて生成されることとしてもよく、また、前記コンパイル結果のファイルのビット列を一方向関数に入力することによって生成されることとしてもよい。
【００１７】
また、この発明にかかる他の構成管理プログラム、該プログラムを記録した記録媒体、開発処理装置、および開発処理方法は、指定された開発環境を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な検証コードとを取得する。その後、取得されたソースコードを、構成管理ＤＢから取得した指定の開発環境下に於いて、再コンパイルする。再コンパイル結果及び指定開発環境中のファイルを用いて、指定の開発環境の照合用検証コードを生成し、取得された検証コードと生成された照合用検証コードとの同一性を判定し、判定された判定結果を出力することを特徴とする。
【００１８】
また、上記発明において、前記開発環境の照合用検証コードは、前記再コンパイル結果及び指定の開発環境中の全ファイルのファイルサイズの合計値に基づいて生成されることとしてもよく、また、前記開発環境の照合用検証コードは、前記コンパイル結果及び指定の開発環境中の全ファイルのビット列をファイル名等でソートした順で結合し、一方向関数に入力することによって生成されることとしてもよい。
【００１９】
また、上記発明において、前記検証コードは、前記再コンパイル結果のファイルサイズに基づいて生成されることとしてもよく、また、前記再コンパイル結果のファイルのビット列を一方向関数に入力することによって生成されることとしてもよい。
【００２０】
これらの発明によれば、同一性チェックに用いる検証コード及び照合用検証コード生成のための情報源に開発環境中のファイルを含めることで、指定された開発環境を用いて開発処理を実行したかどうかを検証することができる。また、同一性チェック対象に用いる検証コード及び照合用検証コード生成のための情報源にコンパイル結果を含めることで、指定された開発環境を用いてコンパイル処理を実行したかどうかを検証することができる。
【００２１】
特に、情報源のファイルサイズの合計値の値を開発環境に固有な検証コード及び照合用検証コードとすることにより、簡単に同一性チェックをおこなうことができる。また、情報源の全ファイルのビット列をファイル名等でソートした順で結合し、一方向関数に入力して得られたハッシュ値を開発環境に固有な検証コード及び照合用検証コードとすることにより、検証コード及び照合用検証コードの圧縮化（転送・格納・同一性チェック処理の対象とするビット数の縮小実現）および衝突困難性（同一性チェック処理を通すための検証コードの偽造の困難性）の両立を図ることができる。
【発明の効果】
【００２２】
本発明にかかる構成管理プログラム、開発処理プログラム、該プログラムを記録した記録媒体、構成管理装置、開発処理端末、構成管理方法、および開発処理方法によれば、全開発拠点が単一の管理下に置かれていない場合であっても、ソースコードなどの開発成果物の信頼性向上、開発工程の工数削減および管理者の負担軽減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明にかかる構成管理プログラム、開発処理プログラム、該プログラムを記録した記録媒体、構成管理装置、開発処理端末、構成管理方法、および開発処理方法の好適な実施の形態を詳細に説明する。
【００２４】
（構成管理システムの概略構成）
まず、この発明の実施の形態にかかる構成管理システムの概略構成について説明する。図１は、この発明の実施の形態にかかる構成管理システムを示す概略構成図である。図１において、構成管理システム１００は、管理拠点となる構成管理装置１０１と、開発拠点となる開発処理端末１０２とが、インターネット、ＬＡＮ、ＷＡＮなどのネットワーク１１０を介して相互に交信可能に接続されている。
【００２５】
まず、構成管理装置１０１は、ソフトウェア、当該ソフトウェアを構成するソフトウェア部品や、コンパイラ、クラスライブラリ、デバッガ、メイクファイルなどの開発環境の構成管理をおこない、構成管理システム１００においてサーバとして機能する。また、開発処理端末１０２は、構成管理装置１０１から出力された開発環境を入力として受け取り内部記憶に展開して、開発処理を実行し、ソースコードなどの開発成果物を生成する。なお、図１では、構成管理装置１０１と開発処理端末１０２とがネットワーク１１０を介して接続されているが、ネットワーク１１０を介して接続されていない構成としてもよい。この場合、構成管理装置１０１と開発処理端末１０２は、可搬可能な記録媒体に格納することで、互いにデータを提供することができる。
【００２６】
（構成管理装置１０１および開発処理端末１０２のハードウェア構成）
まず、この発明の実施の形態にかかる構成管理装置１０１および開発処理端末１０２（以下、「構成管理装置１０１等」という）のハードウェア構成について説明する。図２は、この発明の実施の形態にかかる構成管理装置１０１等のハードウェア構成を示すブロック図である。
【００２７】
図２において、構成管理装置１０１等は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２８】
ここで、ＣＰＵ２０１は、構成管理装置１０１等の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００２９】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータを構成管理装置１０１等に読み取らせたりする。
【００３０】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３１】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク１１０に接続され、このネットワーク１１０を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク１１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３２】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３３】
スキャナ２１２は、画像を光学的に読み取り、構成管理装置１０１等内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３４】
（構成管理システム１００の機能的構成）
つぎに、この発明の実施の形態にかかる構成管理システム１００の機能的構成について説明する。図３は、この発明の実施の形態にかかる構成管理システム１００の機能的構成を示すブロック図である。図３に示した構成管理システム１００において、構成管理装置１０１は、開発環境作成部１１１と、構成管理ＤＢ（データベース）１１２と、指定部１１３と、抽出部１１４と、開発環境出力部１１５と、取得部１１６と、開発環境の照合用検証コード生成部１１７と、開発環境検証コード判定部１１８と、判定結果出力部１１９と、から構成されている。
【００３５】
まず、開発環境作成部１１１は、図２に示したキーボード２１０やマウス２１１を操作することにより、開発環境Ｄａを作成する。ここで、開発環境Ｄａとは、コンパイラ、クラスライブラリ、デバッガなど、ソースコードの開発資源となる電子ファイルである。
【００３６】
また、構成管理ＤＢ１１２は、開発環境作成部１１１によって作成された開発環境Ｄａを記憶する。ここで、構成管理ＤＢ１１２に記憶された開発環境Ｄａの記憶状態について説明する。図４は、構成管理ＤＢ１１２の記憶状態を示す説明図である。
【００３７】
図４において、構成管理ＤＢ１１２は階層構造化されており、最上位の階層には、開発用フォルダ４０１と、ライブラリ用フォルダ４０２と、コンパイラ用フォルダ４０３とが作成されている。メイクファイルが複数種類記憶されている場合、開発用フォルダ４０１の下位の階層には、その種類ごとにフォルダが作成されている。図４においては、開発環境Ｄａ用フォルダ４１１と、開発環境Ｄｂ用フォルダ４１２とが作成されている。
【００３８】
そして、開発環境Ｄａ用フォルダ４１１には、メイクファイルＭａおよび環境設定ファイルＥａが格納されており、開発環境Ｄｂ用フォルダ４１２には、メイクファイルＭｂおよび環境設定ファイルＥｂが格納されている。なお、メイクファイルとは、ソースコードやクラスライブラリやコンパイラの組み合わせや処理手順など、ソースコードをコンパイル作業を自動処理ために必要な情報を記述したテキストファイルである。
【００３９】
また、ライブラリ用フォルダ４０２の下位の階層には、その種類ごとにフォルダが作成されている。図４においては、ライブラリＬａ用フォルダ４２１とライブラリＬｂ用フォルダ４２２とが作成されており、ライブラリＬａ用フォルダ４２１には、ライブラリＬａにおける各バージョンのライブラリＬａ−１，Ｌａ−２が格納され、ライブラリＬｂ用フォルダ４２２には、ライブラリＬｂにおける各バージョンのライブラリＬｂ−１，Ｌｂ−２が格納される。ライブラリＬａ，Ｌｂの枝番は、バージョン番号を示している。
【００４０】
また、コンパイラ用フォルダ４０３の下位の階層にも、その種類ごとにフォルダを作成することができる。図４では、コンパイラは１種類（コンパイラＣ）のみであるため、コンパイラ用フォルダ４０３内にはフォルダが作成されておらず、コンパイラＣにおける各バージョンのコンパイラＣ−１，Ｃ−２が格納されている。コンパイラＣの枝番は、バージョン番号を示している。なお、図４中、点線で囲まれたファイル群が、後述する指定部１１３によって指定される開発環境Ｄａである。
【００４１】
また、指定部１１３は、コンパイラＣ−１を含む開発環境Ｄａの指定を受け付ける。具体的には、たとえば、図２に示したキーボード２１０やマウス２１１を操作することにより、開発環境Ｄａを指定することができる。また、ネットワーク１１０を介して開発処理端末１０２から開発環境Ｄａの指定要求を受信した場合も、開発環境Ｄａを指定することができる。
【００４２】
また、抽出部１１４は、指定部１１３によって指定された開発環境Ｄａを構成管理ＤＢ１１２から抽出する。
【００４３】
また、開発環境出力部１１５は、抽出部１１４によって抽出された開発環境Ｄａを出力する。具体的には、たとえば、ネットワーク１１０を介して開発環境Ｄａを開発処理端末１０２に送信することによって出力することができる。また、図２に示したＨＤ２０５やＦＤ２０７、光ディスク、フラッシュメモリなどの可搬可能な記録媒体に出力して記録することにより、開発処理端末１０２に配布することができる。
【００４４】
また、取得部１１６は、開発処理端末１０２で作成されたソースコードＳＣと、ＳＣの開発・コンパイル作業を行った開発環境に固有な検証コードＡｂｂとからなる開発成果物Ｒを取得する。具体的には、たとえば、ネットワーク１１０を介して開発処理端末１０２から送信されてくる開発成果物Ｒを受信することによって、開発成果物Ｒを取得することができる。また、開発成果物Ｒが図２に示したＦＤ２０７やＨＤ２０５、光ディスク、フラッシュメモリなどの可搬可能な記録媒体に記録されている場合には、図２に示したＣＰＵ２０１により読み取ることにより、開発成果物Ｒを取得することができる。
【００４５】
また、開発環境の照合用検証コード生成部１１７は、開発環境の照合用検証コードＡｂａを生成する。生成元となるファイルは、取得部１１６によって取得されたソースコードＳＣを、コンパイラＣ−１を含む指定された開発環境Ｄａの下で、再コンパイルした再コンパイル結果及び開発環境Ｄａ中のファイルである。
【００４６】
生成手法としては、たとえば、生成元となるファイルのファイルサイズの合計値に基づいて生成される。より具体的には、開発環境Ｄａに含まれているコンパイラＣ−１を用いて再コンパイルした再コンパイル結果及び開発環境Ｄａ中の全ファイルのファイルサイズの合計値の値が、開発環境Ｄａに固有な照合用検証コードとなる。
【００４７】
また、照合用検証コードの生成手法としては、一方向関数（ハッシュ関数）に生成元となるファイル（開発環境Ｄａ中の全ファイル及びコンパイラＣ−１による再コンパイル結果）をファイル名等でソートした上で各々のビット列を結合したものを与えることとしてもよい。一方向関数は、入力値の長い情報を圧縮したハッシュ値にする関数である。一方向関数には、次の２つの特性がある。１つ目は一方向性、すなわち、入力値のハッシュ値を計算することは容易だが、ハッシュ値から元の入力値を逆算することが困難であるという性質である。２つ目は、衝突しない点である。これは、同じハッシュ値を持つ入力値のペアを見つけることが困難であるという性質である。これらの性質により、ハッシュ値同士の比較をすることで、元となる全ファイルの比較を行うことと同等のチェックが可能となる。
【００４８】
なお、開発環境の照合用検証コード生成部１１７によって生成された開発環境の照合用検証コードＡｂａは、開発環境検証コード判定部１１８に出力される。
【００４９】
また、開発環境検証コード判定部１１８は、開発環境の照合用検証コード生成部１１７によって生成された開発環境の照合用検証コードＡｂａと、取得部１１６によって取得された開発環境検証コードＡｂｂとの同一性を判定する。具体的には、たとえば、開発環境検の照合用証コードＡｂａおよび開発環境検証コードＡｂｂがともにファイルサイズの合計値の値である場合、両ファイルサイズの合計値の値が一致するか否かにより同一性を判定する。同様に、開発環境の照合用検証コードＡｂａおよび開発環境検証コードＡｂｂがともに同一の一方向関数から得られたハッシュ値である場合も、両ハッシュ値が一致するか否かにより同一性を判定する。
【００５０】
この判定において、同一性ありと判定された場合、開発処理端末１０２において、構成管理装置１０１から配布した開発環境Ｄａを用いてソースコードＳＣを作成・コンパイルしたことが検証できる。一方、同一性なしと判定された場合、開発処理端末１０２において、構成管理装置１０１から配布した開発環境Ｄａ内のファイル以外のファイル、たとえば、バージョン番号が異なるメイクファイルＭｂを用いてソースコードＳＣを作成し、作成されたソースコードＳＣをバージョン番号が異なるコンパイラＣ−２を用いてコンパイルしたことが検証できる。
【００５１】
また、判定結果出力部１１９は、開発環境検証コード判定部１１８によって判定された判定結果を出力する。具体的には、判定結果である『同一性あり』または『同一性なし』を図２に示したディスプレイ２０８の表示画面に表示したり、プリンタ２１３から印刷することができる。また、音声によって判定結果を出力することとしてもよい。また、判定結果は、ソースコードＳＣとともに構成管理ＤＢ１１２に格納することとしてもよい。図５は、判定後における構成管理ＤＢ１１２の記憶状態を示す説明図である。図５において、最上位の階層には、あらたにチェック用フォルダ５０１が作成され、その中には、ソースコードＳＣと、コンパイラＣ−１によるソースコードＳＣのコンパイル結果Ｂａと、判定結果Ｊとが格納されている。
【００５２】
なお、上述した開発環境作成部１１１、指定部１１３、抽出部１１４、開発環境出力部１１５、取得部１１６、検証コード生成部１１７、開発環境検証コード判定部１１８および判定結果出力部１１９は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されたプログラムを、ＣＰＵ２０１が実行することによって、またはＩ／Ｆ２０９によって、その機能を実現する。また、構成管理ＤＢ１１２は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体によって、その機能を実現する。
【００５３】
つぎに、開発処理端末１０２の機能的構成について具体的に説明する。図３において、開発処理端末１０２は、入力部１２１と、開発処理ＤＢ（データベース）１２２と、実行部１２５と、開発環境検証コード生成部１２６と、開発成果物出力部１２７と、から構成されている。
【００５４】
まず、入力部１２１は、構成管理装置１０１からの開発環境Ｄａの入力を受け付ける。入力部１２１は、より具体的には、ネットワーク１１０を介して構成管理装置１０１から開発環境Ｄａが送信されてきた場合には、開発環境Ｄａを受信することにより、その入力を受け付ける。
【００５５】
また、開発環境Ｄａが、図２に示したＦＤ２０７やＨＤ２０５、光ディスク、フラッシュメモリなどの可搬可能な記録媒体に記録されている場合には、図２に示したＣＰＵ２０１により読み取ることにより、その入力を受け付ける。
【００５６】
また、開発処理ＤＢ１２２は、入力部１２１によって入力された開発環境Ｄａを記憶する。図６は、開発処理ＤＢ１２２の記憶状態を示す説明図である。図６において、開発処理ＤＢ１２２は階層構造化されており、最上位の階層には、開発用フォルダ６０１と、ライブラリ用フォルダ６０２と、コンパイラ用フォルダ６０３とが作成されている。開発用フォルダ６０１には、開発環境Ｄａに含まれているメイクファイルＭａおよび環境設定ファイルＥａが格納される。
【００５７】
また、ライブラリ用フォルダ６０２の下位の階層には、その種類ごとにフォルダが作成されている。図６においては、ライブラリＬａ用フォルダ６２１とライブラリＬｂ用フォルダ６２２とが作成されており、ライブラリＬａ用フォルダ６２１には、開発環境Ｄａに含まれているライブラリＬａ−１が格納され、ライブラリＬｂ用フォルダ６２２には、開発環境Ｄａに含まれているライブラリＬｂ−１が格納される。
【００５８】
また、コンパイラ用フォルダ６０３には、開発環境Ｄａに含まれているコンパイラＣ−１が格納される。
【００５９】
また、実行部１２５は、ソースコードＳＣの作成作業と当該ソースコードＳＣのコンパイル作業等の開発処理を実行するために用いられる。具体的には、たとえば、開発環境Ｄａを用いてソースコードＳＣを作成し、作成されたソースコードＳＣを開発環境Ｄａ内のコンパイラＣ−１によりコンパイルすることにより、コンパイル結果Ｂｂを作成することができる。
【００６０】
ここで、実行部１２５による開発処理の実行後における開発処理ＤＢ１２２の記憶状態について説明する。図７は、実行部１２５による開発処理の実行後における開発処理ＤＢ１２２の記憶状態を示す説明図である。図７において、実行部１２５によって作成されたソースコードＳＣとコンパイル結果Ｂｂは、開発用フォルダ６０１内に格納される。
【００６１】
また、開発環境検証コード生成部１２６は、実行部１２５から得られたコンパイル結果Ｂｂ及び開発環境中のファイルを用いて、開発作業に使用した開発環境に固有な検証コードＡｂｂを生成する。生成手法としては、たとえば、コンパイル結果Ｂｂ及び開発環境中の全ファイルのファイルサイズの合計値の値が、開発作業に使用した開発環境に固有な検証コードとなる。また、一方向関数（ハッシュ関数）に、コンパイル結果Ｂｂ及び開発環境中の全ファイルをファイル名等でソートした上で各々のビット列を結合したものを与えることにより、開発作業に使用した開発環境に固有な検証コードＡｂｂを生成することとしてもよい。
【００６２】
また、開発成果物出力部１２７は、実行部１２５による開発処理の実行によって得られたソースコードＳＣと、開発環境検証コード生成部１２６によって生成された開発環境検証コードＡｂｂとからなる開発成果物Ｒを出力する。具体的には、たとえば、ネットワーク１１０を介して開発成果物Ｒを構成管理装置１０１に送信することによって出力することができる。また、図２に示したＦＤ２０７やＨＤ２０５、光ディスク、フラッシュメモリなどの可搬可能な記録媒体に出力して記録することにより、構成管理装置１０１に提供することができる。
【００６３】
なお、上述した入力部１２１、開発環境検証コード生成部１２６、および開発成果物出力部１２７は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されたプログラムを、ＣＰＵ２０１が実行することによって、またはＩ／Ｆ２０９によって、その機能を実現する。また、開発処理ＤＢ１２２は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体によって、その機能を実現する。
【００６４】
（構成管理装置１０１の構成管理処理手順）
つぎに、この発明の実施の形態にかかる構成管理装置１０１の構成管理処理手順について説明する。図８は、この発明の実施の形態にかかる構成管理装置１０１の構成管理処理手順を示すフローチャートである。図８において、指定部１１３により、開発環境Ｄａの指定を待ち受け（ステップＳ８０１：Ｎｏ）、開発環境Ｄａが指定された場合（ステップＳ８０１：Ｙｅｓ）、抽出部１１４により、開発環境ＤＢ１１２から開発環境Ｄａを抽出する（ステップＳ８０２）。このあと、開発環境出力部１１５により、開発環境Ｄａを出力する（ステップＳ８０３）。
【００６５】
そして、取得部１１６により、開発成果物Ｒの取得を待ち受け（ステップＳ８０４：Ｎｏ）、開発成果物Ｒが取得された場合（ステップＳ８０４：Ｙｅｓ）、検証コード生成部１１７により、コンパイラＣ−１を含む指定された開発環境Ｄａの下で、開発成果物Ｒに含まれているソースコードＳＣを再コンパイルする（ステップＳ８０５）。これにより、再コンパイル結果Ｂａが生成される。そして、再コンパイル結果Ｂａ及び指定された開発環境Ｄａ中のファイルを用いて、開発環境の照合用検証コードＡｂａを生成する（ステップＳ８０６）。
【００６６】
このあと、開発環境検証コード判定部１１８により、開発環境の照合用検証コードＡｂａと、開発成果物Ｒに含まれている開発環境検証コードＡｂｂとが一致するか否かを判定する（ステップＳ８０７）。一致する場合（ステップＳ８０７：Ｙｅｓ）、開発処理端末１０２において、構成管理装置１０１から配布した開発環境Ｄａを用いてソースコードＳＣを作成及びコンパイルしたことが検証できる。そして、図５に示したように、ソースコードＳＣ、再コンパイル結果Ｂａ、および一致する旨の判定結果Ｊを構成管理ＤＢ１１２に格納する（ステップＳ８０８）。
【００６７】
一方、ステップＳ８０７において一致しない場合（ステップＳ８０７：Ｎｏ）、開発処理端末１０２において、構成管理装置１０１から配布した開発環境Ｄａ内のファイル以外のファイルを用いて、ソースコードＳＣを作成し、作成されたソースコードＳＣをコンパイルした事実を指摘できる。たとえば、開発環境Ｄａ内のものとは、バージョン番号が異なるメイクファイルＭｂを用いたために、指定されたコンパイラＣ−１とはバージョンが異なるコンパイラ、たとえば、コンパイラＣ−２によりコンパイルした等の事実を指摘できる。判定結果出力部１１９により、不一致である旨の判定結果Ｊを出力（表示、印刷出力または音声出力）する（ステップＳ８０９）。この場合も、図５に示したように、ソースコードＳＣ、再コンパイル結果Ｂａ、および一致しない旨の判定結果Ｊを構成管理ＤＢ１１２に格納する（ステップＳ８０８）。
【００６８】
（開発処理装置の開発処理手順）
つぎに、この発明の実施の形態にかかる開発処理装置の開発処理手順について説明する。図９は、この発明の実施の形態にかかる開発処理装置の開発処理手順を示すフローチャートである。図９において、入力部１２１により開発環境Ｄａの入力を待ち受け（ステップＳ９０１：Ｎｏ）、開発環境Ｄａが入力された場合（ステップＳ９０１：Ｙｅｓ）、実行部１２５による開発処理を実行し（ステップＳ９０２）、ソースコードＳＣを作成する。そして、作成されたソースコードＳＣをコンパイルすることにより（ステップＳ９０３）、コンパイル結果Ｂｂを得ることができる。
【００６９】
このあと、開発環境検証コード生成部１２６により、コンパイル結果Ｂｂ及び作業を行った開発環境中のファイルを用いて、開発環境検証コードＡｂｂを生成する（ステップＳ９０４）。そして、開発成果物出力部１２７により、ソースコードＳＣと開発環境検証コードＡｂｂを含む開発成果物Ｒを出力する（ステップＳ９０５）。これにより、開発成果物Ｒを構成管理装置１０１に納品することができる。
【００７０】
このように、本実施の形態によれば、まず、開発環境の同一性チェックに用いる検証コード及び照合用検証コード生成のための情報源に、コンパイル結果Ｂａ、Ｂｂを含めることで、実際にその開発環境ＤａのコンパイラＣ−１でコンパイルをしたかどうか、すなわち、指定部１１３によって指定された開発環境Ｄａを用いて開発処理を実行したかどうかを検証することができる。
【００７１】
ただし、コンパイル結果Ｂａ，Ｂｂが同一であるからといって、ソースコードＳＣおよび開発環境Ｄａがすべて同一であることは必ずしも保証されない。そのため、同一性チェック対象に用いる検証コード及び照合用検証コード生成のための情報源に、開発環境中のファイルを含める。ソースコードＳＣの開発環境中のファイル及びコンパイル結果Ｂｂ、指定された開発環境Ｄａ中のファイル及びその開発環境に於ける再コンパイル結果Ｂａを各々セットにして同一性チェックの情報源とすることで、同一の開発環境で開発作業を行ったことの検証をおこなうことができる。
【００７２】
すなわち、納品チェックをパスしても、管理拠点側が意図した開発成果物にくらべてクラスライブラリやコンパイラのバージョンが異なっていることによるチェック対象外の機能面・性能面の差異が発生し得るため、納品後のチェック時には想定外の使用方法や高負荷に耐えられず、修正しなければならないことが発生し得るという障害を防止することができる。また、高負荷に耐えられないソースコードＳＣの作成を防止することができる。これにより、ソフトウェア開発の信頼性の向上を図ることができるとともに、ソフトウェア開発の工数削減を図ることができる。
【００７３】
また、同一の開発環境で開発作業行ったことを検証するために、前記情報源に含まれる全ファイルサイズの合計値の値を用いて開発環境検証コードを生成することで、簡単に同一性のチェックをおこなうことができる。また、前記情報源に含まれる全ファイルをファイル名等でソートした順で結合したビット列を一方向関数に通して得られるハッシュ値を用いて開発環境検証コードを生成することで、転送・格納・同一性チェック処理の対象とするビット数の圧縮と、衝突困難性（同一性チェック処理を通すための検証コードの偽造の困難性）の両立を図ることができる。
【００７４】
また、開発処理端末１０２を構成管理システム１００の管理下に置けない状況でも、開発環境Ｄａや開発成果物Ｒを構成管理装置１０１において集中管理することができるため、開発拠点となる開発処理端末１０２には、開発に必要な開発環境Ｄａのみを有していればよい。したがって、開発処理端末１０２を構成管理システム１００の管理下に置けない状況であっても、ソフトウェアの分散開発支援を実現することができる。
【００７５】
以上説明したように、上述した構成管理装置１０１、開発処理端末１０２、構成管理方法、および開発処理方法によれば、全開発拠点が単一の管理下に置かれていない場合であっても、ソースコードＳＣなどの開発成果物の信頼性向上、開発環境管理の工数削減および開発環境管理者の負担軽減を図ることができるという効果を奏する。
【００７６】
なお、本実施の形態で説明した構成管理方法および開発処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワーク１１０を介して配布することが可能な伝送媒体であってもよい。
【００７７】
（付記１）コンパイラを含む開発環境の指定を受け付けさせる指定工程と、
前記指定工程によって指定された開発環境（以下、「指定開発環境」という）を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な検証コードとを取得させる取得工程と、
前記取得工程によって取得されたソースコードの前記指定開発環境下に於ける再コンパイル結果及び指定開発環境中のファイルを用いて、当該指定開発環境の照合用検証コードを生成させる生成工程と、
前記取得工程によって取得された検証コードと前記生成工程によって生成された照合用検証コードとの同一性を判定させる判定工程と、
前記判定工程によって判定された判定結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする構成管理プログラム。
【００７８】
（付記２）前記生成工程は、前記再コンパイル結果及び指定開発環境中の全ファイルのファイルサイズの合計値に基づいて、前記照合用検証コードを生成させることを特徴とする付記１に記載の構成管理プログラム。
【００７９】
（付記３）前記生成工程は、前記再コンパイル結果及び指定開発環境中の全ファイルのビット列をファイル名等でソートした順で結合し、一方向関数に入力することによって、前記照合用検証コードを生成させることを特徴とする付記１に記載の構成管理プログラム。
【００８０】
（付記４）構成管理サーバに記憶されている前記開発環境の入力を受け付けさせる入力工程と、
前記入力工程によって開発環境が入力された場合、ソースコードの作成処理と当該ソースコードのコンパイル処理を含む開発処理を実行させる実行工程と、
前記実行工程による開発処理の実行によって得られたコンパイル結果及び当該開発環境中のファイルを用いて、前記実行工程による開発処理の実行によって得られたソースコードの開発環境検証コードを生成させる生成工程と、
前記ソースコードと、前記生成工程によって生成された開発環境検証コードとを出力させる出力工程と、
をコンピュータに実行させることを特徴とする開発処理プログラム。
【００８１】
（付記５）前記生成工程は、前記コンパイル結果及びそのコンパイル作業を行った開発環境中の全ファイルのファイルサイズの合計値に基づいて、前記開発環境検証コードを生成させることを特徴とする付記４に記載の開発処理プログラム。
【００８２】
（付記６）前記生成工程は、前記コンパイル結果及びそのコンパイル作業を行った開発環境中の全ファイルのビット列をファイル名等でソートした順で結合し、一方向関数に入力することによって、前記開発環境検証コードを生成させることを特徴とする付記４に記載の開発処理プログラム。
【００８３】
（付記７）前記生成工程は、前記指定開発環境下での再コンパイル結果のみのファイルサイズに基づいて、前記照合用検証コードを生成させることを特徴とする付記１に記載の構成管理プログラム。
【００８４】
（付記８）前記生成工程は、前記指定開発環境下での再コンパイル結果のみを一方向関数に入力することで、前記照合用検証コードを生成させることを特徴とする付記１に記載の構成管理プログラム。
【００８５】
（付記９）前記生成工程は、前記ソースコードの開発環境下でのコンパイル結果のみのファイルサイズに基づいて、前記開発環境検証コードを生成させることを特徴とする付記４に記載の開発処理プログラム。
【００８６】
（付記１０）前記生成工程は、前記ソースコードの開発環境下でのコンパイル結果のみを一方向関数に入力することで、前記開発環境検証コードを生成させることを特徴とする付記４に記載の開発処理プログラム。
【００８７】
（付記１１）付記１〜１０のいずれか一つに記載のプログラムを記録したコンピュータに読み取り可能な記録媒体。
【００８８】
（付記１２）コンパイラを含む開発環境の指定を受け付ける指定手段と、
前記指定手段によって指定された開発環境（以下、「指定開発環境」という）を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な開発環境検証コードとを取得する取得手段と、
前記取得手段によって取得されたソースコードの前記指定開発環境下に於ける再コンパイル結果及び指定開発環境中のファイルを用いて、当該指定開発環境の照合用検証コードを生成する生成手段と、
前記取得手段によって取得された開発環境検証コードと前記生成手段によって生成された開発環境の照合用検証コードとの同一性を判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする構成管理装置。
【００８９】
（付記１３）構成管理サーバに記憶されている前記開発環境の入力を受け付ける入力手段と、
前記入力手段によって開発環境が入力された場合、ソースコードの作成処理と当該ソースコードのコンパイル処理を含む開発処理を実行する実行手段と、
前記実行手段による開発処理の実行によって得られたコンパイル結果及び当該開発環境中のファイルを用いて、前記実行手段による開発処理の実行によって得られたソースコードの開発環境検証コードを生成する生成手段と、
前記ソースコードと、前記生成手段によって生成された開発環境検証コードとを出力する出力手段と、
を備えることを特徴とする開発処理端末。
【００９０】
（付記１４）コンパイラを含む開発環境の指定を受け付ける指定工程と、
前記指定工程によって指定された開発環境（以下、「指定開発環境」という）を有する開発処理端末で作成されたソースコードと、当該ソースコードの開発環境に固有な検証コードとを取得する取得工程と、
前記取得工程によって取得されたソースコードの前記指定開発環境下に於ける再コンパイル結果及び指定開発環境中のファイルを用いて、当該指定開発環境の照合用検証コードを生成する生成工程と、
前記取得工程によって取得された開発環境検証コードと前記生成工程によって生成された開発環境の照合用検証コードとの同一性を判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする構成管理方法。
【００９１】
（付記１５）構成管理サーバに記憶されている前記開発環境の入力を受け付ける入力工程と、
前記入力工程によって開発環境が入力された場合、ソースコードの作成処理と当該ソースコードのコンパイル処理を含む開発処理を実行する実行工程と、
前記実行工程による開発処理の実行によって得られたコンパイル結果及び当該開発環境中のファイルを用いて、前記実行工程による開発処理の実行によって得られたソースコードの開発環境検証コードを生成する生成工程と、
前記ソースコードと、前記生成工程によって生成された開発環境検証コードとを出力する出力工程と、
を含んだことを特徴とする開発処理方法。
【産業上の利用可能性】
【００９２】
以上のように、本発明にかかる構成管理プログラム、開発処理プログラム、該プログラムを記録した記録媒体、構成管理装置、開発処理端末、構成管理方法、および開発処理方法は、ソフトウェアやソフトウェアを構成するソフトウェア部品の開発支援に有用であり、特に、コンパイラ、クラスライブラリ、デバッガ、メイクファイルなどの開発環境の構成管理をともなうソフトウェア開発支援に適している。
【図面の簡単な説明】
【００９３】
【図１】この発明の実施の形態にかかる構成管理システムを示す概略構成図である。
【図２】この発明の実施の形態にかかる構成管理装置等のハードウェア構成を示すブロック図である。
【図３】この発明の実施の形態にかかる構成管理システムの機能的構成を示すブロック図である。
【図４】構成管理ＤＢの記憶状態を示す説明図である。
【図５】判定後における構成管理ＤＢの記憶状態を示す説明図である。
【図６】開発処理ＤＢの記憶状態を示す説明図である。
【図７】開発処理の実行後における開発処理ＤＢの記憶状態を示す説明図である。
【図８】この発明の実施の形態にかかる構成管理装置の構成管理処理手順を示すフローチャートである。
【図９】この発明の実施の形態にかかる開発処理装置の開発処理手順を示すフローチャートである。
【符号の説明】
【００９４】
１００  構成管理システム
１０１  構成管理装置
１０２  開発処理端末
１１０  ネットワーク
１１１  開発環境作成部
１１２  構成管理ＤＢ
１１３  指定部
１１４  抽出部
１１５  開発環境出力部
１１６  取得部
１１７  開発環境の照合用検証コード生成部
１１８  開発環境検証コード判定部
１１９  判定結果出力部
１２１  入力部
１２２  開発処理ＤＢ
１２５  実行部
１２６  開発環境検証コード生成部
１２７  開発成果物出力部
Ａｂａ  開発環境の照合用検証コード
Ａｂｂ  開発環境検証コード
Ｂａ  再コンパイル結果
Ｂｂ  コンパイル結果
Ｃ（Ｃ−１，Ｃ−２）  コンパイラ
Ｄａ  開発環境
ＳＣ  ソースコード
【図１】
2006350840.tif 000003
【図２】
2006350840.tif 000004
【図３】
2006350840.tif 000005
【図４】
2006350840.tif 000006
【図５】
2006350840.tif 000007
【図６】
2006350840.tif 000008
【図７】
2006350840.tif 000009
【図８】
2006350840.tif 000010
【図９】
2006350840.tif 000011