(57)【要約】【課題】開発者個人がコンパイル環境や単体テスト環境を持たないプログラム開発方式を提供する。【解決手段】コンパイル手段１２は、差分組込手段１５に開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、オブジェクトは開発者別成果物格納手段１１に格納する。単体テスト手段１３は、差分組込手段１５に開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う。開発者成果物統合手段１４は、単体テストが終了して統合可能である開発者別成果物を開発者別成果物格納手段１１から取り出し、統合済成果物格納手段１６に格納する。差分組込手段１５は、統合済成果物格納手段１６から成果物を取り出した後、開発者別成果物格納手段１１から開発者の成果物を取り出して上書きし、開発者別のコンパイル環境や単体テスト環境を構築する。【選択図】　　　　図１
2004118587.tif 000002
【特許請求の範囲】
【請求項１】
開発者の指示に基づき開発者別成果物を開発センター装置に送付する成果物送付手段と、
開発者の指示に基づき開発センター装置に指示を伝達する遠隔操作手段と、
前記成果物送付手段から受け取った開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、
統合済の成果物を格納する統合済成果物格納手段と、
前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、
前記遠隔操作手段を通じた開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、
前記遠隔操作手段を通じた開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、
前記遠隔操作手段を通じた開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段と、
前記統合済成果物格納手段から統合済のソースを取り出してコンパイルする統合コンパイル手段と、
前記統合済成果物格納手段から統合済のオブジェクトを取り出して結合テストする結合テスト手段と
を有することを特徴とするプログラム開発方式。
【請求項２】
操作開始前に開発者に開発者名および認証情報を要求し、認証が成功した場合は現在の開発者名を記憶する開発者ログイン手段と、
開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、
統合済の成果物を格納する統合済成果物格納手段と、
前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、
開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、
開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、
開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段と
を有することを特徴とするプログラム開発方式。
【請求項３】
前記差分組込手段が、前記統合済成果物格納手段から統合済の成果物を取得する統合済成果物取得手段と、前記開発者別成果物格納手段から現在操作中の開発者の成果物を取得する開発者別成果取得手段と、前記統合済の成果物に前記開発者の成果物を上書きして開発者別のコンパイル環境および単体テスト環境を構築する開発者構成取得手段とを含むことを特徴とする請求項１または請求項２記載のプログラム開発方式。
【請求項４】
開発者から受け取った開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、
統合済の成果物を格納する統合済成果物格納手段と、
前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、
開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、
開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、
開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段と
を有することを特徴とする開発センター装置。
【請求項５】
操作開始前に開発者に開発者名および認証情報を要求し、認証が成功した場合は現在の開発者名を記憶する開発者ログイン手段と、
開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、
統合済の成果物を格納する統合済成果物格納手段と、
前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、
開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、
開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、
開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段と
を有することを特徴とする開発センター装置。
【請求項６】
前記差分組込手段が、前記統合済成果物格納手段から統合済の成果物を取得する統合済成果物取得手段と、前記開発者別成果物格納手段から現在操作中の開発者の成果物を取得する開発者別成果取得手段と、前記統合済の成果物に前記開発者の成果物を上書きして開発者別のコンパイル環境および単体テスト環境を構築する開発者構成取得手段とを含むことを特徴とする請求項４または請求項５記載の開発センター装置。
【請求項７】
コンピュータを、開発者から受け取った開発者別成果物を開発者ごとに格納する開発者別成果物格納手段，統合済の成果物を格納する統合済成果物格納手段，前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段，および開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段として機能させるためのプログラム。
【請求項８】
コンピュータを、操作開始前に開発者に開発者名および認証情報を要求し、認証が成功した場合は現在の開発者名を記憶する開発者ログイン手段，開発者別成果物を開発者ごとに格納する開発者別成果物格納手段，統合済の成果物を格納する統合済成果物格納手段，前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段，および開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段として機能させるためのプログラム。
【請求項９】
前記差分組込手段が、前記統合済成果物格納手段から統合済の成果物を取得する統合済成果物取得手段と、前記開発者別成果物格納手段から現在操作中の開発者の成果物を取得する開発者別成果取得手段と、前記統合済の成果物に前記開発者の成果物を上書きして開発者別のコンパイル環境および単体テスト環境を構築する開発者構成取得手段とを含むことを特徴とする請求項７または請求項８記載のプログラム。
【請求項１０】
開発者により開発された成果物を開発者別成果物格納手段が格納するステップと、
開発者によりコンパイルが指示されたときにコンパイル手段が統合済成果物格納手段からソースを取得するステップと、
コンパイル手段が開発者別成果物格納手段からソースを取得するステップと、
コンパイル手段が統合済成果物格納手段からのソースに開発者別成果物格納手段からのソースを上書きするステップと、
コンパイル手段が上書きされたソースをコンパイルするステップと、
コンパイル手段がコンパイルエラーを判定するステップと、
コンパイルエラーがなかった場合、開発者より単体テストが指示されたときに単体テスト手段が統合済成果物格納手段からテスト環境を取得するステップと、
単体テスト手段が開発者別成果物格納手段からテスト環境を取得するステップと、
単体テスト手段が統合済成果物格納手段からのテスト環境に開発者別成果物格納手段からのテスト環境を上書きするステップと、
単体テスト手段が上書きされたテスト環境で単体テストを行うステップと、
単体テスト手段が単体テストエラーを判定するステップと、
単体テストエラーがなかった場合、開発者より成果物統合が指示されたときに開発者成果物統合手段が開発者別成果物格納手段から成果物を取得するステップと、
開発者成果物統合手段が成果物を統合済成果物格納手段に格納するステップと、開発者成果物統合手段が開発者別成果物格納手段から成果物を削除するステップと、
開発者成果物統合手段が統合済成果物格納手段から成果物を取得するステップと、
開発者成果物統合手段が成果物をコンパイルするステップと、
開発者成果物統合手段がコンパイル結果のオブジェクトを統合済成果物格納手段に格納するステップと、
統合コンパイル手段が統合済成果物格納手段から成果物を取得するステップと、統合テスト手段が成果物を結合テストするステップと
を含むことを特徴とするプログラム開発方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラム開発方式および開発センター装置に関し、特に開発者個人がコンパイル環境や単体テスト環境を持たないプログラム開発方式および開発センター装置に関する。
【０００２】
従来のプログラム開発方式では、１つの環境において、開発者が交代で作業する場合があった。しかし、このような従来のプログラム開発方法では、▲１▼さまざまなコンパイルおよびテスト作業において環境を変更しなければならない場合があるため、前の開発者が行った変更を次に使用する開発者が元に戻さなければならず、逆に、統合した環境から一切変更できないようにした場合は、特にテスト作業において非効率が発生する可能性が高いという問題点があった。また、▲２▼１つの環境を交代で使用するため、複数の開発者が同時に開発を進めることができず、したがって、開発者が１０名以上といった大規模な開発の場合、この手法を使用することはできないという問題点があった。
【０００３】
そこで、従来のプログラム開発方式の他の例では、図９に示すように、各フェーズ毎に各個人により開発作業が行われ各ソースコードを生成する個人作業環境部と、生成された各ソースコードを保管するとともに各ソースコードの変更履歴を管理する変更履歴管理環境部と、指定したフェーズに対応するソースコードを変更履歴管理環境部から抽出するとともに抽出したソースコードのコンパイルおよびリンク等を示すビルドを実施しソフトウェアを作成するビルド環境部とを備え、各開発者が個人作業環境でプログラムの開発を行えるようにしている（例えば、特許文献１参照。）。
【０００４】
このような各開発者が個人作業環境でプログラムの開発を行えるようにした従来のプログラム開発方式では、図１０に示すように、各開発者の自己コンパイル環境と自己テスト環境とが必要となる。
【０００５】
【特許文献１】
特開平０７−０９３１４２（第３−４頁、図１）
【０００６】
【発明が解決しようとする課題】
しかしながら、上述した従来の各開発者が個人作業環境でプログラムの開発を行えるようにしたプログラム開発方式には、以下のような問題点があった。
【０００７】
第１の問題点は、プログラム開発を行っている個人作業環境では動作するが、プログラム統合時にエラーが発生したり、プログラム統合後に動作しなかったりするという問題である。その理由は、プログラム統合時に指定される環境と、開発者個人の環境との不整合が存在するためである。不整合の例としては、個人のビルド環境やテスト環境のバージョンが統合環境に比べて古い場合，個人が環境を設定する作業を誤った場合などがある。また、動作を確認済の成果物とは異なる、誤った成果物を統合の際に送ってしまう可能性もある。
【０００８】
第２の問題点は、開発者個人のコンパイル環境やテスト環境を構築するために大きな工数が必要であるという問題である。その理由は、多人数が参加するプログラム開発では、開発者が参照するソフトウェア量が大きく、変更頻度が高いためである。
【０００９】
第３の問題点は、開発者個人のコンパイル環境やテスト環境に必要なリソース（ディスク容量，コンパイル・テスト用パッケージソフトウェアライセンス，ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）速度，ＣＰＵ数，コンパイル時間など）が大きいということである。その理由は、多人数が個々に一そろいのコンパイル環境やテスト環境を使用できない（タイムシェアなどで共用する）場合、開発効率が低下するためである。
【００１０】
第４の問題点は、開発者が品質の悪いプログラムを統合した場合、他の開発者の作業に悪影響を与えるという問題である。その理由は、参加する開発者数が多いと、１つの統合にミスが入る期待値が上がってしまうことと、統合にミスがあった場合に悪影響が及ぼされる範囲が広いということである。
【００１１】
【発明が解決しようとする課題】
本発明の目的は、開発者ごとにコンパイル（ビルド）環境やテスト環境を保有せずにシステム環境内に保有することにより、従来の問題点を全て解決することができるプログラム開発方式を提供することにある。
【００１２】
また、本発明の他の目的は、開発者ごとにコンパイル（ビルド）環境やテスト環境を保有せずにシステム環境内に保有することにより、従来の問題点を全て解決することができる開発センター装置を提供することにある。
【００１３】
さらに、本発明の別の目的は、コンピュータに搭載することにより上記開発センター装置を実現することができるプログラムを提供することにある。
【００１４】
【課題を解決するための手段】
本発明のプログラム開発方式は、開発者の指示に基づき開発者別成果物を開発センター装置に送付する成果物送付手段と、開発者の指示に基づき開発センター装置に指示を伝達する遠隔操作手段と、前記成果物送付手段から受け取った開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、統合済の成果物を格納する統合済成果物格納手段と、前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、前記遠隔操作手段を通じた開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、前記遠隔操作手段を通じた開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、前記遠隔操作手段を通じた開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段と、前記統合済成果物格納手段から統合済のソースを取り出してコンパイルする統合コンパイル手段と、前記統合済成果物格納手段から統合済のオブジェクトを取り出して結合テストする結合テスト手段とを有することを特徴とする。
【００１５】
また、本発明のプログラム開発方式は、操作開始前に開発者に開発者名および認証情報を要求し、認証が成功した場合は現在の開発者名を記憶する開発者ログイン手段と、開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、統合済の成果物を格納する統合済成果物格納手段と、前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段とを有することを特徴とする。
【００１６】
さらに、本発明のプログラム開発方式は、前記差分組込手段が、前記統合済成果物格納手段から統合済の成果物を取得する統合済成果物取得手段と、前記開発者別成果物格納手段から現在操作中の開発者の成果物を取得する開発者別成果取得手段と、前記統合済の成果物に前記開発者の成果物を上書きして開発者別のコンパイル環境および単体テスト環境を構築する開発者構成取得手段とを含むことを特徴とする。
【００１７】
また、本発明の開発センター装置は、開発者から受け取った開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、統合済の成果物を格納する統合済成果物格納手段と、前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段とを有することを特徴とする。
【００１８】
さらに、本発明の開発センター装置は、操作開始前に開発者に開発者名および認証情報を要求し、認証が成功した場合は現在の開発者名を記憶する開発者ログイン手段と、開発者別成果物を開発者ごとに格納する開発者別成果物格納手段と、統合済の成果物を格納する統合済成果物格納手段と、前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段と、開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段と、開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段と、開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段とを有することを特徴とする。
【００１９】
さらにまた、本発明の開発センター装置は、前記差分組込手段が、前記統合済成果物格納手段から統合済の成果物を取得する統合済成果物取得手段と、前記開発者別成果物格納手段から現在操作中の開発者の成果物を取得する開発者別成果取得手段と、前記統合済の成果物に前記開発者の成果物を上書きして開発者別のコンパイル環境および単体テスト環境を構築する開発者構成取得手段とを含むことを特徴とする。
【００２０】
一方、本発明のプログラムは、コンピュータを、開発者から受け取った開発者別成果物を開発者ごとに格納する開発者別成果物格納手段，統合済の成果物を格納する統合済成果物格納手段，前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段，および開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段として機能させることを特徴とする。
【００２１】
また、本発明のプログラムは、コンピュータを、操作開始前に開発者に開発者名および認証情報を要求し、認証が成功した場合は現在の開発者名を記憶する開発者ログイン手段，開発者別成果物を開発者ごとに格納する開発者別成果物格納手段，統合済の成果物を格納する統合済成果物格納手段，前記統合済成果物格納手段から統合済の成果物を取り出した後に前記開発者別成果物格納手段から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境および単体テスト環境を構築する差分組込手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルし、コンパイル結果として得られたオブジェクトを前記開発者別成果物格納手段に格納するコンパイル手段，開発者の指示に基づき前記差分組込手段に現在操作中の開発者の単体テスト環境を取得するように指示し、環境構築後に単体テストを行う単体テスト手段，および開発者の指示に基づき前記単体テスト手段による単体テストが終了して統合可能である開発者別成果物を前記開発者別成果物格納手段から取り出して前記統合済成果物格納手段に格納し、格納が成功した場合は前記開発者別成果物格納手段から当該成果物を削除する開発者成果物統合手段として機能させることを特徴とする。
【００２２】
さらに、本発明のプログラムは、前記差分組込手段が、前記統合済成果物格納手段から統合済の成果物を取得する統合済成果物取得手段と、前記開発者別成果物格納手段から現在操作中の開発者の成果物を取得する開発者別成果取得手段と、前記統合済の成果物に前記開発者の成果物を上書きして開発者別のコンパイル環境および単体テスト環境を構築する開発者構成取得手段とを含むことを特徴とする。
【００２３】
他方、本発明のプログラム開発方法は、開発者により開発された成果物を開発者別成果物格納手段が格納するステップと、開発者によりコンパイルが指示されたときにコンパイル手段が統合済成果物格納手段からソースを取得するステップと、コンパイル手段が開発者別成果物格納手段からソースを取得するステップと、コンパイル手段が統合済成果物格納手段からのソースに開発者別成果物格納手段からのソースを上書きするステップと、コンパイル手段が上書きされたソースをコンパイルするステップと、コンパイル手段がコンパイルエラーを判定するステップと、コンパイルエラーがなかった場合、開発者より単体テストが指示されたときに単体テスト手段が統合済成果物格納手段からテスト環境を取得するステップと、単体テスト手段が開発者別成果物格納手段からテスト環境を取得するステップと、単体テスト手段が統合済成果物格納手段からのテスト環境に開発者別成果物格納手段からのテスト環境を上書きするステップと、単体テスト手段が上書きされたテスト環境で単体テストを行うステップと、単体テスト手段が単体テストエラーを判定するステップと、単体テストエラーがなかった場合、開発者より成果物統合が指示されたときに開発者成果物統合手段が開発者別成果物格納手段から成果物を取得するステップと、開発者成果物統合手段が成果物を統合済成果物格納手段に格納するステップと、開発者成果物統合手段が開発者別成果物格納手段から成果物を削除するステップと、開発者成果物統合手段が統合済成果物格納手段から成果物を取得するステップと、開発者成果物統合手段が成果物をコンパイルするステップと、開発者成果物統合手段がコンパイル結果のオブジェクトを統合済成果物格納手段に格納するステップと、統合コンパイル手段が統合済成果物格納手段から成果物を取得するステップと、統合テスト手段が成果物を結合テストするステップとを含むことを特徴とする。
【００２４】
図１において、開発者個人は、成果物送付手段１で開発中でありコンパイル前である成果物を開発センター装置１０内の開発者別成果物格納手段１１に送付する。開発者は、遠隔操作手段２を通して、コンパイル手段１２にコンパイルを指示する。同様に、開発者は、遠隔操作手段２を通して、単体テスト手段１３に単体テストを指示することもできる。コンパイル手段１２や単体テスト手段１３は、差分組込手段１５を通じ、統合済成果物格納手段１６および開発者別成果物格納手段１１からそれぞれ成果物を取得し、開発者別のコンパイル環境や単体テスト環境を構成する。このようにして、開発者個人のコンパイル環境や単体テスト環境が誤る可能性を排除するとともに、開発者個人が環境を構築する手間を省くことを可能にする。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００２６】
［第１の実施の形態］
図１を参照すると、本発明の第１の実施の形態に係るプログラム開発方式は、成果物送付手段１と、遠隔操作手段２と、開発センター装置１０（開発者別成果物格納手段１１，コンパイル手段１２，単体テスト手段１３，開発者成果物統合手段１４，差分組込手段１５，および統合済成果物格納手段１６を含む）と、統合コンパイル手段２１と、結合テスト手段２２とから構成されている。
【００２７】
これらの手段は、それぞれ概略つぎのように動作する。
【００２８】
成果物送付手段１は、開発者個人が開発しコンパイルおよび単体テストを行う予定の成果物を、開発者の指示に基づき開発センター装置１０内の開発者別成果物格納手段１１に送付する。
【００２９】
遠隔操作手段２は、開発者個人が自席に居ながらにして開発センター装置１０内のコンパイル手段１２，単体テスト手段１３，および開発者成果物統合手段１４を操作可能なように各手段に指示を伝達する。
【００３０】
開発者別成果物格納手段１１は、成果物送付手段１から受け取った開発者別成果物を開発者ごとに格納する。また、開発者別成果物格納手段１１は、開発者成果物統合手段１４の指示に基づき、開発者別成果物を取り出したり、削除したりする（削除するのは通常は統合済成果物格納手段１６に格納された後）。さらに、開発者別成果物格納手段１１は、差分組込手段１５の指示に基づき、開発者別成果物を取り出す。
【００３１】
コンパイル手段１２は、開発者が遠隔操作手段２を通じて行う指示に基づき、差分組込手段１５に現在操作中の開発者のコンパイル環境を取得するように指示し、取得後にコンパイルする。コンパイル結果として得られたオブジェクトは開発者別成果物格納手段１１に格納する。また、コンパイル中のメッセージなどの情報は、開発者に対し表示する。
【００３２】
単体テスト手段１３は、開発者が遠隔操作手段２を通じて行う指示に基づき、差分組込手段１５に現在操作中の開発者の単体テスト環境を取得するように指示する。単体テスト環境は、直前のコンパイル手段１２によるコンパイル結果を含む。単体テスト手段１３は、環境構築後に単体テストを行う。単体テスト中のメッセージなどの情報は、開発者に対し表示する。
【００３３】
開発者成果物統合手段１４は、開発者が遠隔操作手段２を通じて行う指示に基づき、単体テストが終了し統合可能である開発者別成果物を開発者別成果物格納手段１１から取り出し、統合済成果物格納手段１６に格納する。格納が成功した場合は、開発者成果物統合手段１４は、開発者別成果物格納手段１１から当該成果物を削除する。
【００３４】
差分組込手段１５は、統合済成果物格納手段１６から成果物を取り出した後、開発者別成果物格納手段１１から現在操作中の開発者の成果物を取り出して上書きし、開発者別のコンパイル環境や単体テスト環境を構築する。
【００３５】
統合済成果物格納手段１６は、統合済の成果物を格納するとともに、開発者成果物統合手段１４，差分組込手段１５，統合コンパイル手段２１，および結合テスト手段２２の指示に従い格納されている成果物を取り出す。
【００３６】
統合コンパイル手段２１は、統合済の成果物のソースコード（以下、単にソースと略記する）からオブジェクトコード（以下、単にオブジェクトと略記する）を生成するために、統合済成果物格納手段１６から統合済のソースを取り出してコンパイルする。
【００３７】
結合テスト手段２２は、統合済の成果物から結合テスト環境を構築するために、統合済成果物格納手段１６から統合済のオブジェクトなどを取り出して結合テストする。
【００３８】
図２を参照すると、第１の実施の形態に係るプログラム開発方式の処理は、成果物作成ステップＡ１と、成果物送付ステップＡ２と、成果物格納ステップＡ３と、コンパイル指示ステップＡ４と、統合済成果物格納手段からのソース取得ステップＡ５と、開発者別成果物格納手段からのソース取得ステップＡ６と、ソース上書きステップＡ７と、コンパイルステップＡ８と、エラー判定ステップＡ９と、単体テスト指示ステップＡ１０と、統合済成果物格納手段からのテスト環境取得ステップＡ１１と、開発者別成果物格納手段からのテスト環境取得ステップＡ１２と、テスト環境上書きステップＡ１３と、単体テストステップＡ１４と、エラー判定ステップＡ１５と、成果物統合指示ステップＡ１６と、開発者別成果物格納手段からの成果物取得ステップＡ１７と、統合済成果物格納手段への成果物格納ステップＡ１８と、開発者別成果物格納手段からの成果物削除ステップＡ１９と、統合済成果物格納手段からの成果物取得ステップＡ２０と、成果物コンパイルステップＡ２１と、オブジェクト格納ステップＡ２２と、統合済成果物格納手段からの成果物取得ステップＡ２３と、結合テストステップＡ２４とからなる。
【００３９】
図３は、第１の実施の形態に係るプログラム開発方式の概要を説明する図である。本実施の形態に係るプログラム開発方式では、自己の環境（コンパイル環境，テスト環境）とシステム環境との不整合は、開発者個人が開発したソース部分およびテストデータ部分のみで、他は完全に整合する。また、環境を開発者１人１人作成する必要がない。
【００４０】
図４は、差分組込手段１５におけるコンパイル環境の構成方法を説明する図である。差分組込手段１５は、統合済成果物取得手段１２１と、開発者別成果物取得手段１２２と、開発者構成取得手段（図示せず）とを備える。差分組込手段１５における開発者別成果物取得処理は、構成要素選択ステップＢ１と、開発者別成果物有無判定ステップＢ２と、統合済成果物取得ステップＢ３と、開発者別成果物取得ステップＢ４とからなる。なお、リポジトリから基準構成を取得するのは、公知の従来技術である。また、開発者のコンパイル環境は、ソースの差分を元に開発者構成取得手段（図示せず）で自動的に構成される。さらに、コンパイル環境構成後のコンパイルは開発者ごとではなく、集中的に行われる。
【００４１】
図５は、差分組込手段１５におけるテスト環境の構成方法を説明する図である。なお、テスト環境に必要な手段もコンパイル環境と同じである。また、開発者のテスト環境は、開発者ごとにコンパイルされたオブジェクトの差分およびテスト用データの差分を元に、開発者構成取得手段（図示せず）で自動的に構成される。また、テスト環境は開発センター装置１０に構成され、テスト操作のみ開発者個人が行う。さらに、差分を作ってはならない環境（ライブラリ，設定）には差分を許さない。
【００４２】
次に、このように構成された第１の実施の形態に係るプログラム開発方式の動作について、図１ないし図５を参照して詳細に説明する。
【００４３】
まず、開発者は、成果物を作成する（ステップＡ１）。
【００４４】
次に、開発者は、作成した成果物を、成果物送付手段１によって開発センター装置１０に送付する（ステップＡ２）。
【００４５】
開発センター装置１０内の開発者別成果物格納手段１１は、送付された成果物を、送付した開発者用の場所に格納する（ステップＡ３）。
【００４６】
さらに、開発者は、遠隔操作手段２を通じてコンパイル手段１２にコンパイルを指示する（ステップＡ４）。
【００４７】
コンパイル手段１２は、差分組込手段１５に開発者専用のコンパイル環境の取得を指示する。
【００４８】
差分組込手段１５は、まず統合済成果物格納手段１６から、コンパイルに必要なソースを取得する（ステップＡ５）。
【００４９】
次に、差分組込手段１５は、開発者別成果物格納手段１１から、コンパイルに必要で、かつ現在操作中の開発者が作成したソースを取得する（ステップＡ６）。詳しくは、図４に示すように、まず、統合済成果物取得手段１２１によりリポジトリから基準構成を作成し、開発者別成果物取得手段１２２により、構成要素を１つ選び（ステップＢ１）、開発者別成果物があるかどうかを判定し（ステップＢ２）、開発者別成果物がなければ統合済成果物を取得し（ステップＢ３）、開発者別成果物があれば開発者別成果物を取得する（ステップＢ４）。
【００５０】
続いて、差分組込手段１５は、開発者別成果物格納手段１１から取得したソースを統合済成果物格納手段１６から先に取得したソースに上書きし、それを開発者専用のコンパイル環境として返す（ステップＡ７）。
【００５１】
コンパイル手段１２は、現在操作中の開発者専用のコンパイル環境に基づきコンパイルする（ステップＡ８）。
【００５２】
ここで、コンパイルエラーが発生した場合は、開発者は、ステップＡ１に戻り成果物を作成し直す（ステップＡ９）。
【００５３】
エラーがない場合は、開発者は、遠隔操作手段２を通じて単体テスト手段１３に単体テストを指示する（ステップＡ１０）。
【００５４】
単体テスト手段１３は、開発者専用の単体テスト環境の取得を差分組込手段１５に指示する。
【００５５】
差分組込手段１５は、統合済成果物格納手段１６から、単体テストに必要なテスト環境（オブジェクト，データ，ライブラリ，および設定）を取得する（ステップＡ１１）。
【００５６】
次に、差分組込手段１５は、開発者別成果物格納手段１１から、単体テストに必要で、かつ現在操作中の開発者が作成したテスト環境（オブジェクトやデータ）を取得する（ステップＡ１２）。詳しくは、図５に示すように、統合済成果物取得手段１２１によりリポジトリから基準構成を作成し、開発者別成果物取得手段１２２により開発者別成果物を取得する。
【００５７】
続いて、差分組込手段１５は、開発者別成果物格納手段１１から取得したテスト環境を統合済成果物格納手段１６から先に取得した単体テスト環境に上書きし、それを開発者専用のテスト環境として返す（ステップＡ１３）。
【００５８】
単体テスト手段１３は、現在操作中の開発者専用の単体テスト環境に基づき単体テストを行う（ステップＡ１４）。
【００５９】
ここで、テストエラーが発生した場合は、開発者は、ステップＡ１に戻り成果物を作成し直す（ステップＡ１５）。
【００６０】
エラーがない場合は、開発者は、遠隔操作手段２を通じて開発者成果物統合手段１４に開発者別成果物を統合済に移すように指示する（ステップＡ１６）。
【００６１】
開発者成果物統合手段１４は、まず開発者別成果物格納手段１１から、現在操作中の開発者の成果物を取得する（ステップＡ１７）。
【００６２】
次に、開発者成果物統合手段１４は、統合済成果物格納手段１６に、成果物を格納する（ステップＡ１８）。
【００６３】
さらに、開発者成果物統合手段１４は、開発者別成果物格納手段１１から、統合済となった開発者の成果物を削除する（ステップＡ１９）。
【００６４】
統合後、統合作業者は、統合済成果物格納手段１６からソースを取得し（ステップＡ２０）、結合コンパイル手段２１によりコンパイルする（ステップＡ２１）。この時点では、エラーは発生しないはずである。
【００６５】
次に、統合作業者は、統合済成果物格納手段１６からテスト環境を取得し（ステップＡ２２）、最後に、結合テスト手段２２により、取得された結合テスト環境に基づき結合テストを行う（ステップＡ２３）。
【００６６】
このように、第１の実施の形態では、個人作業環境を無くして開発中の必要な差分を除きすべてセンター環境（システム環境）上で作業するため、プログラム開発を行っている個人作業環境では動作するが、プログラム統合時にエラーが発生したり、プログラム統合後に動作しなかったりという可能性を排除できる。
【００６７】
また、コンパイル環境もテスト環境もすべてセンター環境（システム環境）に存在するため、開発者個人は開発に必要な差分の設定のみを行えばよいから、開発者個人のコンパイル環境やテスト環境を構築するための作業やリソース（ディスク容量，コンパイル・テスト用パッケージソフトウェアライセンス，ＣＰＵ速度，ＣＰＵ数，コンパイル時間）が少なくて済む。加えて、リソースについても、ファイルを開発者個人の環境にコピーする必要がないために少なくて済む。
【００６８】
さらに、開発者が品質の悪いプログラムを納期怠慢その他の理由により故意に統合しようとしても、開発中の成果物は常にセンター環境（システム環境）に存在するために事前にチェックが可能であり、開発者個人が品質の悪いプログラムを統合する可能性を減少できる。
【００６９】
［第２の実施の形態］
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００７０】
図６を参照すると、本発明の第２の実施の形態に係るプログラム開発方式は、開発者別成果物格納手段１１と、コンパイル手段１２と、単体テスト手段１３と、開発者成果物統合手段１４と、差分組込手段１５と、統合済成果物格納手段１６と、開発者ログイン手段１９とを含む開発センター装置１０により構成されている。第２の実施の形態に係るプログラム開発方式では、図１に示した第１の実施の形態に係るプログラム開発方式に対して、成果物送付手段および遠隔操作手段を使用せず、開発者が開発センター装置１０を直接操作するようになっている。また、開発者を区別するために開発者ログイン手段１９が設けられている。
【００７１】
これらの手段は、それぞれ概略つぎのように動作する。
【００７２】
開発者ログイン手段１９は、開発者を識別するために操作開始前に開発者に開発者名および認証情報を要求する。認証が成功した場合は、現在の開発者名を記憶する。
【００７３】
開発者別成果物格納手段１１は、成果物を格納・取得する際、開発者ログイン手段１９に現在使用中の開発者を問い合わせる点を除き、図１に示した第１の実施の形態に係るプログラム開発方式における開発者別成果物格納手段１１と同じ動作をする。
【００７４】
コンパイル手段１２，単体テスト手段１３，開発者成果物統合手段１４，差分組込手段１５，および統合済成果物格納手段１６は、ログイン後、開発者が直接指示を与える点を除き、図１に示した第１の実施の形態に係るプログラム開発方式における各手段と同じ動作をする。
【００７５】
なお、開発者別成果物格納手段１１においては、作業中の成果物を開発者ごとに管理するが、一部もしくは全部の成果物が他の開発者から参照できるようにしてもよい。
【００７６】
また、遠隔操作手段により、統合済成果物格納手段１６，統合コンパイル手段，および結合テスト手段を操作対象として操作できるようにしてもよい。
【００７７】
［第３の実施の形態］
図７を参照すると、本発明の第３の実施の形態に係るプログラム開発方式は、図１に示した第１の実施の形態に係るプログラム開発方式における開発センター装置１０に対して、開発センタープログラム７００を備える点だけが異なっている。なお、図７中の各手段等には、対応する符号を付してそれらの詳しい説明を省略する。
【００７８】
開発センタープログラム７００は、コンピュータでなる開発センター装置１０に読み込まれ、当該開発センター装置１０の動作を開発者別成果物格納手段１１，コンパイル手段１２，単体テスト手段１３，開発者成果物統合手段１４，差分組込手段１５および統合済成果物格納手段１６として制御する。開発センタープログラムプログラム７００の制御による開発センター装置１０の動作は、第１の実施の形態における開発センター装置１０の動作と全く同様になるので、その詳しい説明を割愛する。
【００７９】
［第４の実施の形態］
図８を参照すると、本発明の第４の実施の形態に係るプログラム開発方式は、図６に示した第２の実施の形態に係るプログラム開発方式における開発センター装置１０に対して、開発センタープログラム８００を備える点だけが異なっている。なお、図８中の各手段等には、対応する符号を付してそれらの詳しい説明を省略する。
【００８０】
開発センタープログラム８００は、コンピュータでなる開発センター装置１０に読み込まれ、当該開発センター装置１０の動作を開発者別成果物格納手段１１，コンパイル手段１２，単体テスト手段１３，開発者成果物統合手段１４，差分組込手段１５，統合済成果物格納手段１６および開発者ログイン手段１９として制御する。開発センタープログラム８００の制御による開発センター装置１０の動作は、第２の実施の形態における開発センター装置１０の動作と全く同様になるので、その詳しい説明を割愛する。
【００８１】
【発明の効果】
第１の効果は、プログラム開発を行っている個人作業環境では動作するが、プログラム統合時にエラーが発生したり、プログラム統合後に動作しなかったりという可能性を排除できることにある。その理由は、個人作業環境を無くし、開発中の必要な差分を除きすべてセンター環境上で作業するためである。
【００８２】
第２の効果は、開発者個人のコンパイル環境やテスト環境を構築するための作業やリソース（ディスク容量，コンパイル・テスト用パッケージソフトウェアライセンス，ＣＰＵ速度，ＣＰＵ数，コンパイル時間など）が少なくて済むことにある。その理由は、コンパイル環境もテスト環境もすべてセンター環境に存在するため、開発者個人は開発に必要な差分の設定のみを行えばよいからである。また、リソースについても、ファイルを開発者個人の環境にコピーする必要がないために少なくて済む。
【００８３】
第３の効果は、開発者個人が品質の悪いプログラムを統合する可能性を減少できることにある。その理由は、開発者が品質の悪いプログラムを納期怠慢その他の理由により故意に統合しようとしても、開発中の成果物は常にセンター環境に存在するために事前にチェックが可能であるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るプログラム開発方式の構成を示すブロック図である。
【図２】第１の実施の形態に係るプログラム開発方式の動作を説明するフローチャートである。
【図３】第１の実施の形態に係るプログラム開発方式の概要を説明する図である。
【図４】図１中の差分組込手段によるコンパイル環境の構成方法を説明する図である。
【図５】図１中の差分組込手段によるテスト環境の構成方法を説明する図である。
【図６】本発明の第２の実施の形態に係るプログラム開発方式の構成を示すブロック図である。
【図７】本発明の第３の実施の形態に係るプログラム開発方式の構成を示すブロック図である。
【図８】本発明の第４の実施の形態に係るプログラム開発方式の構成を示すブロック図である。
【図９】従来のプログラム開発方式の構成を示すブロック図である。
【図１０】従来のプログラム開発方式の概要を説明する図である。
【符号の説明】
１　成果物送付手段
２　遠隔操作手段
１０　開発センター装置
１１　開発者別成果物格納手段
１２　コンパイル手段
１３　単体テスト手段
１４　開発者成果物統合手段
１５　差分組込手段
１６　統合済成果物格納手段
１９　開発者ログイン手段
２１　統合コンパイル手段
２２　結合テスト手段
１２１　統合済成果物取得手段
１２２　開発者別成果物取得手段
７００，８００　開発センタープログラム
Ａ１　成果物作成ステップ
Ａ２　成果物送付ステップ
Ａ３　成果物格納ステップ
Ａ４　コンパイル指示ステップ
Ａ５　統合済成果物格納手段からのソース取得ステップ
Ａ６　開発者別成果物格納手段からのソース取得ステップ
Ａ７　ソース上書きステップ
Ａ８　コンパイルステップ
Ａ９　エラー判定ステップ
Ａ１０　単体テスト指示ステップ
Ａ１１　統合済成果物格納手段からのテスト環境取得ステップ
Ａ１２　開発者別成果物格納手段からのテスト環境取得ステップ
Ａ１３　テスト環境上書きステップ
Ａ１４　単体テストステップ
Ａ１５　エラー判定ステップ
Ａ１６　成果物統合指示ステップ
Ａ１７　開発者別成果物格納手段からの成果物取得ステップ
Ａ１８　統合済成果物格納手段への成果物格納ステップ
Ａ１９　開発者別成果物格納手段からの成果物削除ステップ
Ａ２０　統合済成果物格納手段からの成果物取得ステップ
Ａ２１　成果物コンパイルステップ
Ａ２２　オブジェクト格納ステップ
Ａ２３　統合済成果物格納手段からの成果物取得ステップ
Ａ２４　結合テストステップ
Ｂ１　構成要素選択ステップ
Ｂ２　開発者別成果物有無判定ステップ
Ｂ３　統合済成果物取得ステップ
Ｂ４　開発者別成果物取得ステップ
【図１】
2004118587.tif 000003
【図２】
2004118587.tif 000004
【図３】
2004118587.tif 000005
【図４】
2004118587.tif 000006
【図５】
2004118587.tif 000007
【図６】
2004118587.tif 000008
【図７】
2004118587.tif 000009
【図８】
2004118587.tif 000010
【図９】
2004118587.tif 000011
【図１０】
2004118587.tif 000012