(57)【要約】【課題】優先度の高いソフトウェアの開発を優先的に行えるソフトウェアビルドシステム及びソフトウェアビルド方法を提供する。【解決手段】ソースコード管理システムと、自動ビルドシステムと、コンパイルサーバー群と、ファイルサーバー群と、ソフトウェアの設計管理者が開発テーマ毎のビルド優先度を登録する開発テーマ管理システムと、ソフトウェアのテスト担当者及び市場サポート担当者がソフトウェアに発生した障害に応じた対策優先度を登録する障害管理システムとを備える。自動ビルドシステムは、設計者がコミットしたソースコードと、開発テーマ管理システムに登録されたビルド優先度と、障害管理システムに登録された対策優先度とに基づいて、前記コンパイルサーバー群にソフトウェアのビルド依頼を行う。【選択図】図３
2017215762.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの設計者がコミットしたソースコードとその変更履歴の管理を行うソースコード管理システムと、
前記ソースコード管理システムからソースコードの変更を検出して、コンパイルサーバー群にソフトウェアのビルド依頼を行う自動ビルドシステムと、
前記コンパイルサーバー群により作製されたビルド成果物を保存するファイルサーバー群と、
ソフトウェアの設計監理者が開発テーマ毎のビルド優先度を登録する開発テーマ管理システムと、
ソフトウェアのテスト担当者及び市場サポート担当者がソフトウェアに発生した障害に応じた対策優先度を登録する障害管理システムと、を備え、
前記自動ビルドシステムは、前記設計者がコミットした前記ソースコードと、前記開発テーマ管理システムに登録された前記ビルド優先度と、前記障害管理システムに登録された前記対策優先度とに基づいて、前記コンパイルサーバー群にソフトウェアのビルド依頼を行うことを特徴とするソフトウェアのビルドシステム。
【請求項２】
前記自動ビルドシステムは、前記ソースコード管理システムから前記ソースコードの変更通知を受けたとき、前記変更通知をトリガーにして前記コンパイルサーバー群にソフトウェアのビルド依頼を行うことを特徴とする請求項１に記載のソフトウェアのビルドシステム。
【請求項３】
前記自動ビルドシステムは、前記ソフトウェアに発生した障害が複数ある場合、前記障害に関与する複数のソースコードについて前記コンパイルサーバー群にソフトウェアのビルド依頼を行うことを特徴とする請求項１及び請求項２のいずれか１項に記載のソフトウェアのビルドシステム。
【請求項４】
前記自動ビルドシステムは、変更したソースコードのビルド結果であるライブラリを必要とするソースコードがある場合、前記自動ビルドシステムに保存されたソースコード構成定義にあるライブラリ利用ソースコードを参照して、前記コンパイルサーバー群にソフトウェアのビルド依頼を行うことを特徴とする請求項１乃至請求項３のいずれか１項に記載のソフトウェアのビルドシステム。
【請求項５】
前記コンパイルサーバー群は、前記ビルド優先度及び前記対策優先度の順にビルドジョブキューを並べ替えることを特徴とする請求項１乃至請求項４のいずれか１項に記載のソフトウェアのビルドシステム。
【請求項６】
ソフトウェアの設計者がコミットしたソースコードとその変更履歴の管理を行うソースコード管理システムと、
前記ソースコード管理システムからソースコードの変更を検出して、コンパイルサーバー群にソフトウェアのビルド依頼を行う自動ビルドシステムと、
前記コンパイルサーバー群により作製されたビルト成果物を保存するファイルサーバー群と、
ソフトウェアの設計監理者が開発テーマ毎のビルド優先度を登録する開発テーマ管理システムと、
ソフトウェアのテスト担当者及び市場サポート担当者がソフトウェアに発生した障害に関する障害情報を登録する障害管理システムと、を備えたソフトウェアのビルドシステムを用い、
前記自動ビルドシステムが、前記設計者がコミットした前記ソースコードと、前記開発テーマ管理システムに登録された前記ビルド優先度と、前記障害管理システムに登録された前記障害情報とに基づいて、前記コンパイルサーバー群にソフトウェアのビルド依頼を行うことを特徴とするソフトウェアのビルド方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアビルドシステム及びソフトウェアビルド方法に関する。
【背景技術】
【０００２】
ソフトウェアの開発、特に大規模ソフトウェアの開発は、部品データベース部を備えた部品サーバー装置と、部品サーバー装置から発送されたソフトウェア部品を用いてソフトウェアを自動的にビルドするビルドサーバー装置とを備えたソフトウェアのビルドシステムを用いて行われる（例えば、特許文献１参照）。
【０００３】
この種のソフトウェアビルドシステムにおいては、ソフトウェアの開発スピードを高めるため、システム管理者が複数のビルドサーバー装置を配置し、夫々のビルドサーバー装置のスループットが均等化するように、また複数のビルドサーバー装置のスループットが全体として目標値に近づくように、各ビルドサーバー装置の並列実行ジョブ数の設定することが一般的に行われている。
【０００４】
また、この種のソフトウェアのビルドシステムにおいては、複数のソフトウェアを同時開発する場合、複数のソフトウェアについて並行にビルドが実行されるようにキュー管理を行うことも一般的である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数のソフトウェアの同時開発する場合には、必然的に優先度の高いソフトウェアの開発と、優先度の低いソフトウェアの開発とが生じる。例えば、開発中のソフトウェアの不具合対策や市場で生じたソフトウェアの不具合対策については、優先度を高めて、不具合を速やかに解消することが求められる。
【０００６】
しかしながら、複数のビルドサーバー装置のスループットが均等化するように、また複数のビルドサーバー装置のスループットが全体として目標値に近づくように、各ビルドサーバー装置の並列実行ジョブ数を設定するという方法や、複数のソフトウェアについて並行にビルドが実行されるようにキュー管理を行うという方法では、優先度の高いソフトウェアの開発スピードを上げることができない。
【０００７】
本発明は、このような従来技術の課題を解決するためになされたものであり、優先度の高いソフトウェアの開発を優先的に行えるソフトウェアビルドシステム及びソフトウェアビルド方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様は、ソフトウェアの設計者がコミットしたソースコードとその変更履歴の管理を行うソースコード管理システムと、前記ソースコード管理システムからソースコードの変更を検出して、コンパイルサーバー群にソフトウェアのビルド依頼を行う自動ビルドシステムと、前記コンパイルサーバー群により作製されたビルト成果物を保存するファイルサーバー群と、ソフトウェアの設計監理者が開発テーマ毎のビルド優先度を登録する開発テーマ管理システムと、ソフトウェアのテスト担当者及び市場サポート担当者がソフトウェアに発生した障害に関する障害情報を登録する障害管理システムと、を備え、前記自動ビルドシステムは、前記設計者がコミットした前記ソースコードと、前記開発テーマ管理システムに登録された前記ビルド優先度と、前記障害管理システムに登録された前記障害情報とに基づいて、前記コンパイルサーバー群にソフトウェアのビルド依頼を行うことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、優先度の高いソフトウェアの開発を優先的に行えるソフトウェアビルドシステム及びソフトウェアビルド方法を提供できる。
【図面の簡単な説明】
【００１０】
【図１】従来知られている一般的なソフトウェアビルドシステムの基本構成を示す図である。
【図２】実施形態に係るソフトウェアビルドシステムの基本構成を示す図である。
【図３】実施形態に係るソフトウェアビルドシステムの詳細構成を示す図である。
【図４】実施形態に係るソースコード変更付加情報の一例を示す図である。
【図５】実施形態に係る機種ソースコード構成定義の一例を示す図である。
【図６】実施形態に係る開発テーマ管理登録データの一例を示す図である。
【図７】実施形態に係る障害管理登録データの一例を示す図である。
【図８】実施形態に係る機種群ビルド制御部が実施するビルド要求までの手順を示すフローチャートである。
【図９】障害対策のために複数のソースコードの対策が必要な場合における処理の手順を示すフローチャートである。
【図１０】変更したソースコードのビルド結果であるライブラリを必要とするソースコードがある場合における処理の手順を示すフローチャートである。
【図１１】実施形態に係る機種群ビルドジョブキュー制御部が実施するビルド手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施形態に係るソフトウェアビルドシステムの説明に先立ち、従来知られている一般的なソフトウェアビルドシステムの基本構成を、図１を用いて説明する。
【００１２】
図１に示すように、従来知られている一般的なソフトウェアビルドシステム１００は、メールサーバーと、ソースコード管理システムと、自動ビルドシステムと、コンパイルサーバー群と、ファイルサーバー群とを含んで構成されている。
【００１３】
メールサーバーは、自動ビルドシステムからのビルド結果メールを受け付ける。設計者Ｄ１、Ｄ２、Ｄ３は、メールサーバーにアクセスすることにより、自分宛のビルド結果メールを受け取ることができる。
【００１４】
ソースコード管理システムは、設計者Ｄ１、Ｄ２、Ｄ３がコミットしたソースコードと変更履歴の管理を行う。
【００１５】
自動ビルドシステムは、ソースコード管理システムからソースコードの変更を検出し、コンパイルサーバー群にビルド依頼を行う。また、自動ビルドシステムは、ビルド成果物であるライブラリやＲＯＭイメージをファイルサーバー群に保存すると共に、ファイルサーバー群へのビルド成果物の保存完了後に、メールサーバー１に対してビルド結果メールの通知要求を発行する。
【００１６】
コンパイルサーバー群は、自動ビルドシステムから依頼されたソースコードに対してソフトウェアのビルドを実行する。
【００１７】
ファイルサーバー群は、自動ビルドシステムからの依頼により、ビルド成果物であるライブラリやＲＯＭイメージをファイル保存する。
【００１８】
このように構成された従来のソフトウェアビルドシステムにおいては、図１に示す手順でソフトウェアのビルドが行われる。即ち、設計者Ｄ１、Ｄ２、Ｄ３が、クライアントコンピュータ（ＰＣ）を操作してソースコードをコミットすると、そのソースコードコミットがソースコード管理システムに登録される（ステップＳ１）。
【００１９】
自動ビルドシステムは、ソースコード管理システムからソースコードの変更を検出し（ステップＳ２）、コンパイルサーバー群にビルド依頼を行う（ステップＳ３）。次いで、自動ビルドシステムは、コンパイルサーバー群からビルド成果物を受け取り、受け取ったビルド成果物をライブラリやＲＯＭイメージの形でファイルサーバー群に保存する（ステップＳ４）。更に、自動ビルドシステムは、ファイルサーバー群へのビルド成果物の保存完了後に、メールサーバーに対してビルド結果メールの通知要求を発行する。
【００２０】
メールサーバーは、自動ビルドシステムから発行されたビルド結果メールの通知要求に基づいて、自動ビルドシステムからビルド結果メールを受け取る（ステップＳ５）。設計者Ａ、Ｂ、Ｃは、メールサーバーにアクセスして自分宛のビルド結果メールを受け取り（ステップＳ６）、受け取ったビルド結果メールの内容に応じて、必要がある場合にはクライアントコンピュータを操作して、再度ソースコードをコミットする。
【００２１】
従来のソフトウェアビルドシステム１００は、このように構成されているので、開発しているソフトウェアの優先度に関係なく、設計者Ｄ１、Ｄ２、Ｄ３によるソフトウェアの開発がほぼ同時並行的に行われる。
【００２２】
次に、実施形態に係るソフトウェアビルドシステム２００の構成を、図２及び図３を用いて説明する。図２は、実施形態に係るソフトウェアビルドシステム２００の基本構成を示す図であり、この図から明らかなように、実施形態に係るソフトウェアビルドシステム２００は、図１に示した一般的なソフトウェアビルドシステム１００に、開発テーマ管理システムと、障害管理システムとを追加した構成になっている。
【００２３】
図３は、実施形態に係るソフトウェアビルドシステム２００のより実際的な構成を示す図である。この図から明らかなように、本例のソフトウェアビルドシステム２００は、ソースコード管理システムに、Ａ機種群ソースコード管理サーバーと、Ｂ機種群ソースコード管理サーバーとが備えられている。Ａ機種群ソースコード管理サーバー及びＢ機種群ソースコード管理サーバーは、類似機種単位でソースコードを管理するための管理サーバーであり、ソースコードと後述するソースコード変更付加情報を関連づけて保存する。なお、開発しようとするソフトウェアの機種数によっては、３つ以上の機種群ソースコード管理サーバーが備えられる。
【００２４】
Ａ機種群ソースコード管理サーバーは、設計者Ｄ１、Ｄ２、Ｄ３がＰＣを操作することによりコミットしたソースコードと変更履歴の管理を行い、Ｂ機種群ソースコード管理サーバーは、設計者Ｄ４、Ｄ５、Ｄ６がＰＣを操作することによりコミットしたソースコードと変更履歴の管理を行う。即ち、図３のソフトウェアビルドシステム２００は、設計者Ｄ１、Ｄ２、Ｄ３が共同してＡ機種のソフトウェアを開発し、設計者Ｄ４、Ｄ５、Ｄ６が共同してＢ機種のソフトウェアを開発できるようになっている。
【００２５】
設計者Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６が操作するＰＣのクライアントソフトは、機種群ソースコード管理サーバーにソースコードをコミットするためのソフトウェアを有している。また、各ＰＣは、図４に示すソースコード変更付加情報６０を入力できるユーザインタフェースを併せ持っている。
【００２６】
ソースコード変更付加情報は、設計者Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６がソースコードをコミットするときに付加する情報である。設計者Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６は、図４に示すフォームに従って、ソースコードの変更内容が障害対策なのか否かの識別と、障害対策の場合は障害管理番号と、他のソースコードとの組み合わせ変更の有無と、複数のソースコードのコミットで対策が完了する場合にはその対策ソースコードを記載する。
【００２７】
また、Ａ機種群ソースコード管理サーバーには、Ａ機種群ソースコード変更監視部が付設され、Ｂ機種群ソースコード管理サーバーには、Ｂ機種群ソースコード変更監視部が付設されている。
【００２８】
Ａ機種群ソースコード変更監視部は、Ａ機種群ソースコード管理サーバーへの設計者Ｄ１、Ｄ２、Ｄ３によるソースコードのコミットを監視し、ソースコードのコミットを検出したならば、自動ビルドシステムにソースコードの変更通知を行う。また、Ｂ機種群ソースコード変更監視部は、Ｂ機種群ソースコード管理サーバーへの設計者Ｄ４、Ｄ５、Ｄ６によるソースコードのコミットを監視し、ソースコードのコミットを検出したならば、自動ビルドシステムにソースコードの変更通知を行う。ソースコードの変更通知には、ソースコードに変更があったことと、変更後のソースコードとを含む。
【００２９】
また、実施形態に係るソフトウェアビルドシステム２００は、図３に示すように、自動ビルドシステムとして、Ａ機種群用自動ビルドシステムと、Ｂ機種群用自動ビルドシステムとが備えられている。Ａ機種群用自動ビルドシステムは、Ａ機種群ソースコード変更監視部からソースコードの変更通知を受けたとき、ビルド操作を開始する。またＢ機種群用自動ビルドシステムは、Ｂ機種群ソースコード変更監視部からソースコードの変更通知を受けたとき、ビルド操作を開始する。
【００３０】
Ａ機種群用自動ビルドシステムは、図３に示すように、Ａ機種群設計担当者定義部、Ａ機種群ＲＯＭ作成スケジュール定義、Ａ機種群ビルド制御部、機種Ｗソースコード構成定義、機種Ｗソースコードビルド順番定義、機種Ｗビルド制御ワークスペース、機種Ｗ用ビルド待ちキュー、機種Ｘソースコード構成定義、機種Ｘソースコードビルド順番定義、機種Ｘビルド制御ワークスペース、機種Ｘ用ビルド待ちキューを含んで構成される。
【００３１】
一方、Ｂ機種群用自動ビルドシステムは、図３に示すように、Ｂ機種群設計担当者定義部、Ｂ機種群ＲＯＭ作成スケジュール定義、Ｂ機種群ビルド制御部、機種Ｙソースコード構成定義、機種Ｙソースコードビルド順番定義、機種Ｙビルド制御ワークスペース、機種Ｙ用ビルド待ちキュー、機種Ｚソースコード構成定義、機種Ｚソースコードビルド順番定義、機種Ｚビルド制御ワークスペース、機種Ｚ用ビルド待ちキューを含んで構成される。
【００３２】
Ａ機種群用自動ビルドシステム及びＢ機種群用自動ビルドシステムに備えられた各機種群の設計担当者定義部は、ビルド結果のメール通知先であり、ソースコードと対応されている。
【００３３】
同様に、Ａ機種群用自動ビルドシステム及びＢ機種群用自動ビルドシステムに備えられた各機種群のＲＯＭ作成スケジュール定義は、ＲＯＭ作成開始時間が設定されている。通常の場合、ＲＯＭ作成は、ソースコード全体をビルドする。
【００３４】
機種群ビルド制御部は、ソースコード管理システムからのソースコードの変更通知を受けて、ビルド操作を開始する役割をもつ。また、機種群ＲＯＭ作成スケジュール定義を参照し、設定された時間になったら、機種ソースコードビルド順番定義にしたがって、ビルド操作を開始する。
【００３５】
機種ソースコード構成定義は、機種を構成しているソースコードの一覧である。ソースコード構成定義の一例を図５に示す。図５に例示するソースコード構成定義は、ソースコードと、成果物と、ライブラリ利用ソースコードとから構成されており、ソースコードをビルドしたときに、他のソースコードのためのライブラリを生成するのか否かの識別と、ライブラリ生成の場合には利用するソースコードを登録する。
【００３６】
また、機種ソースコードビルド順番定義は、ＲＯＭ作成時に利用されるソースコード全体のビルド順番を定義している。
【００３７】
機種ビルド制御ワークスペースは、ビルドログやビルド結果の一時置き場である。
【００３８】
機種ビルド待ちキューは、コンパイルサーバーにビルド要求を出す順番を記憶するキューである。
【００３９】
更に、実施形態に係るソフトウェアビルドシステム２００は、図３に示すように、コンパイルサーバー群に、Ａ機種群用コンパイルサーバーと、Ｂ機種群用コンパイルサーバーとが備えられている。Ａ機種群用コンパイルサーバーは、Ａ機種群用自動ビルドシステムから依頼されたソースコードに対してソフトウェアのビルドを実行する。また、Ｂ機種群用コンパイルサーバーは、Ｂ機種群用自動ビルドシステムから依頼されたソースコードに対してソフトウェアのビルドを実行する。
【００４０】
Ａ機種群用コンパイルサーバーは、Ａ機種群ビルドジョブキュー制御部と、Ａ機種群ビルドジョブキューと、サーバー（１）と、サーバー（２）とを含んで構成される。また、Ｂ機種群用コンパイルサーバーは、Ｂ機種群ビルドジョブキュー制御部と、Ｂ機種群ビルドジョブキューと、サーバー（３）と、サーバー（４）とを含んで構成される。
【００４１】
Ａ機種群用コンパイルサーバーのＡ機種群ビルドジョブキュー制御部は、Ａ機種群用自動ビルドシステムの機種Ｗ用及び機種Ｘ用のビルド待ちキューを参照して、Ａ機種群ビルドジョブキューにビルド要求を書き込む。また、Ｂ機種群用コンパイルサーバーのＢ機種群ビルドジョブキュー制御部は、Ｂ機種群用自動ビルドシステムの機種Ｙ用及び機種Ｚ用のビルド待ちキューを参照して、Ｂ機種群ビルドジョブキューにビルド要求を書き込む。
【００４２】
Ａ機種群用コンパイルサーバー及びＢ機種群用コンパイルサーバーに備えられた各ビルドジョブキューは、上記ビルド要求を受けてジョブの空きを待つためのキューである。また、サーバー（１）〜（４）は、ビルド実行するための仮想サーバーであり、ジョブは、ビルド処理のインスタンスである。
【００４３】
加えて、実施形態に係るソフトウェアビルドシステム２００は、図３に示すように、ファイルサーバー群として、ライブラリ保存サーバーと、ＲＯＭイメージ保存サーバーとが備えられている。
【００４４】
ライブラリ保存サーバーには、Ａ機種群用自動ビルドシステムで生成された機種Ｗ用ライブラリ及び機種Ｘ用ライブラリと、Ｂ機種群用自動ビルドシステムで生成された機種Ｙ用ライブラリ及び機種Ｚ用ライブラリとが保存される。
【００４５】
一方、ＲＯＭイメージ保存サーバーには、Ａ機種群用自動ビルドシステムで生成された機種Ｗ用ＲＯＭイメージ及び機種Ｘ用ＲＯＭイメージと、Ｂ機種群用自動ビルドシステムで生成された機種Ｙ用ＲＯＭイメージ及び機種Ｚ用ＲＯＭイメージとが保存される。
【００４６】
図２に戻って、実施形態に係るソフトウェアビルドシステム２００に備えられる開発テーマ管理システム及び障害管理システムについて説明する。
【００４７】
開発テーマ管理システムは、図６に例示する開発テーマ管理登録データを保有しており、開発テーマ毎の開発日程とビルドの優先度とを管理する。この開発テーマ管理登録データは、設計監理者Ｍが登録する情報である。
【００４８】
図６に例示する開発テーマ管理登録データは、開発テーマ名と、量産時期と、ビルド優先度とから構成されている。機種Ｗは量産時期が２０１７年１月１日、機種Ｘは量産時期が２０１７年３月１日、機種Ｙは量産時期が２０１７年２月１日、機種Ｚは量産時期が２０１７年６月１日である。そして、本例においては、量産時期が早い順にビルド優先度が定義されている。
【００４９】
障害管理システムは、図７に例示する障害管理登録データを保有しており、ソフトウェアの開発中に発生した障害及び市場での障害内容を管理する。この障害管理登録データは、テスト担当者Ｔ及び市場サポート担当者Ｓが登録する情報である。
【００５０】
図７に例示する障害管理登録データは、障害管理番号と、障害内容と、発生区分と、発生機種と、対策優先度と、ステータスと、担当者名と、担当者であるテスト担当者Ｔ又は市場サポート担当者Ｓのメールアドレスとから構成されている。
【００５１】
障害管理番号は、例えば通し番号とすることができる。発生区分には、市場で発生した障害であるのか、ソフトウェアの開発中に発生した障害であるのかの区分が登録される。対策優先度には、「高」、「中」、「低」の区分が登録される。一般に対策優先度は、市場で発生した障害に対して高い対策優先度が割り振られる。また、ソフトウェアの開発中に発生した障害については、量産時期を考慮して対策優先度が割り振られる。
【００５２】
実施形態に係るソフトウェアビルドシステム２００は、図２に示す手順でソフトウェアのビルドを行う。まず、設計監理者Ｍは、ソフトウェアのビルドを開始するに先立ち、開発テーマ管理システムに開発テーマ毎のビルド優先度（図６参照）を登録する（ステップＳ０）。
【００５３】
また、テスト担当者Ｔは、開発中のソフトウェアに障害が発生したとき、障害管理システムに障害情報（図７参照）を登録し、市場サポート担当者Ｓは、市場に提供されているソフトウェアに障害が発生したとき、障害管理システムに障害情報（図７参照）を登録する（ステップＳ１１）。
【００５４】
ソースコードのコミットに際して、設計者Ｄ１、Ｄ２、Ｄ３は、障害管理システムに登録された障害管理番号（図７参照）を参照する（ステップＳ１２）。そして、障害管理システムに登録されている障害対応を実施した場合、設計者Ｄ１、Ｄ２、Ｄ３は、障害管理番号を付加して、ソースコード管理システムにソースコードをコミットする（ステップＳ１３）。
【００５５】
自動ビルドシステムは、ソースコード管理システムからソースコードの変更を検知する（ステップＳ１４）。また、自動ビルドシステムは、障害管理登録データに付加されている障害管理番号を参照し、そこから対応する対策優先度を確認する（ステップＳ１５）。更に、自動ビルドシステム３は、そのソースコードが対策優先度「高」に設定されていれば、対策優先度「低」の障害のビルドよりも前にビルドがされるようにキュー操作し、コンパイルサーバー群４にビルド依頼をする（ステップＳ１６）。
【００５６】
コンパイルサーバー群は、開発テーマ管理システムに登録されたビルド優先度を確認した後（ステップＳ１７）、自動ビルドシステムから依頼されたソースコードに対してビルドを実行する（ステップＳ１８）。このとき、コンパイルサーバー群は、開発テーマ管理システムの登録内容を参照し、そのソースコードがビルド優先度「高」に設定されているテーマであれば、ビルド優先度「低」のテーマ用よりも先にビルドするようにキュー操作する。
【００５７】
ビルドが障害対策である場合、自動ビルドシステムは、ビルド完了後に、障害管理システムに対してステータス（図７参照）の変更要求を発行する（ステップＳ１９）。また、自動ビルドシステムは、ステータスの変更要求後に、メールサーバー及び障害管理システムに対してビルド結果メールの通知要求を発行する（ステップＳ２０）。
【００５８】
しかる後に、ファイルサーバー群は、自動ビルドシステムからの依頼により、ビルド成果物であるライブラリ又はＲＯＭイメージを保存する（ステップＳ２１）。また、メールサーバーは、ビルド結果を設計者Ｄ１、Ｄ２、Ｄ３、テスト担当者Ｔ、市場サポート担当者Ｓにメール通知する（ステップＳ２２）。
【００５９】
次に、機種群ビルド制御部が機種群ソースコード変更監視部からソースコードの変更通知を受けたときに、その変更通知をトリガーにしてソースコードのビルドを開始する場合の、機種群ビルド制御部（図３参照）が実施するビルド要求までの手順を、図８にしたがって説明する。
【００６０】
機種群ビルド制御部が、機種群ソースコード変更監視部からソースコードの変更通知を受信する（ステップＳ３１）と、機種群ビルド制御部は、ソースコード変更付加情報（図４）の障害管理番号をキーにして、障害管理登録データ（図７）から対策優先度を識別する（ステップＳ３２）。次いで、機種群ビルド制御部は、機種群ソースコード構成定義（図５）の対象ソースコードをキーにして、そのソースコードが含まれる機種を確定する（ステップＳ３３）。しかる後に、機種群ビルド制御部は、機種別に用意されている機種別ビルド待ちキューにキューイングする（ステップＳ３４）。
【００６１】
これにより、機種群ビルド制御部は、機種群ソースコード変更監視部からソースコードの変更通知を受けたときに、その変更通知をトリガーにしてソースコードのビルドを開始することができる。
【００６２】
次に、障害対策のために複数のソースコードの対策が必要な場合の手順を図９にしたがって説明する。なお、図９の例においては、２つのソースコードの対策が必要な場合について説明するが、３つ以上のソースコードの対策が必要な場合についても同様である。
【００６３】
機種群ビルド制御部は、機種群ソースコード変更監視部からのソースコードの変更通知を受信したとき（ステップＳ４１）、ソースコード変更付加情報にある対象ソースコードを参照して、ビルド制御ワークスペースにこれと待ち合わせしている障害管理番号の有無を問い合わせる（ステップＳ４２）。
【００６４】
機種群ビルド制御部は、待ち合わせしている障害管理番号がある場合、その待ち合わせしている２つのソースコードのソースコード名称と障害対策管理番号を機種ビルド制御ワークスペースに保存する（ステップＳ４３）。このとき、ソースコード毎に記憶しているビルド要求を発行済みのフラグをＯＮにする。保存した内容には識別ＩＤを付加する。
【００６５】
しかる後に、機種別ビルドキューに要求を識別ＩＤとともにキューイングする（ステップＳ４４）。
【００６６】
次いで、機種群ビルド制御部は、機種群ソースコード変更監視部からの変更通知を受信するのを待って（ステップＳ４５）、機種ビルド制御ワークスペースに保存されたソースコード名称と障害対策管理番号が一致しているか判断する（ステップＳ４６）。
【００６７】
機種ビルド制御ワークスペースに保存されたソースコード名称と障害対策管理番号が一致している場合は、機種別ビルド待ちキューに要求をキューイングすると同時にソースコード毎に記憶しているビルド要求を発行済みのフラグをＯＮにする（ステップＳ４７）。
【００６８】
次いで、機種群ビルド制御部は、機種群ビルドジョブキュー制御部からビルドの完了を受信したとき（ステップＳ４８）、障害対策の場合には、識別ＩＤの有無を判断し、識別ＩＤが存在する場合には、その識別ＩＤとソースコード名称に一致するビルド完了フラグをＯＮにする（ステップＳ４９）。そして、機種群ビルド制御部は、:識別ＩＤの中にあるビルド完了フラグがすべてＯＮになったとき、障害対策完了と認識する。
【００６９】
これにより、障害対策のために複数のソースコードの対策が必要な場合におけるソースコードのビルドを行うことができる。
【００７０】
次に、変更したソースコードのビルド結果であるライブラリを必要とするソースコードがある場合の手順を図１０にしたがって説明する。
【００７１】
機種群ビルド制御部は、機種群ビルドジョブキュー制御部からビルドの完了を受信したとき（ステップＳ５１）、機種ソースコード構成定義にあるライブラリ利用ソースコードを参照する（ステップＳ５２）。そして、ソースコードがある場合には、そのソースコードのビルド要求を機種別ビルドキューに要求にキューイングする。
【００７２】
これにより、変更したソースコードのビルド結果であるライブラリを必要とするソースコードがある場合におけるソースコードのビルドを行うことができる。
【００７３】
次に、機種群ビルドジョブキュー制御部が実施するビルド手順を、図１１にしたがって説明する。
【００７４】
機種群ビルドジョブキュー制御部は、複数ある機種用ビルド待ちキューを順次ポーリングし、ビルド要求を識別する（ステップＳ６１）。次いで、機種群ビルドジョブキュー制御部は、ビルド要求があった機種用ビルド待ちキューから機種を識別する（ステップＳ６２）。更に、機種群ビルドジョブキュー制御部は、開発テーマ管理登録データを参照し、識別した複数の機種それぞれが、開発中の機種なのか否かを識別する（ステップＳ６３）。
【００７５】
なお、開発中の機種である場合、機種群ビルドジョブキュー制御部は、ビルド優先度を識別し、ビルド優先度が市場対応と判断した場合は、優先度を最優先と判断する。そして、機種群ビルドジョブキュー制御部は、機種群用ビルドジョブキューにビルド要求を投入する際に、キューを優先度順に並び替える。
【００７６】
キューからの読み出しも同時に行われていて、ジョブに空きがあれば、直ちにビルドジョブを実行する（ステップＳ６４）。ジョブに空きがない場合には、実行中のジョブの優先度とキューから読みだされたビルドの優先度を比較し、キューから読みだされたビルド優先度が高ければ、実行中のジョブをキャンセルし、キューに積まれている同じ優先度のビルド要求の先頭に配置するようにキュー操作をする（ステップＳ６５）。
【００７７】
これにより、優先度の順にソースコードのビルドを行うことができる。
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】特開２００３−００５９７７号公報
【図１】
2017215762.tif 000003
【図２】
2017215762.tif 000004
【図３】
2017215762.tif 000005
【図４】
2017215762.tif 000006
【図５】
2017215762.tif 000007
【図６】
2017215762.tif 000008
【図７】
2017215762.tif 000009
【図８】
2017215762.tif 000010
【図９】
2017215762.tif 000011
【図１０】
2017215762.tif 000012
【図１１】
2017215762.tif 000013