(57)【要約】【課題】プログラムのチェックイン時にプログラムの品質管理を自動的に実行するプログラム管理装置を得ること。【解決手段】プログラムの品質管理を行うプログラム管理装置２において、プログラムのチェックイン前に、プログラムの品質管理を行うための品質条件定義情報に基づいてプログラムの品質チェックを行う品質チェック部４０と、プログラムのチェックインを実行するチェックイン実行部１４と、プログラムおよび品質チェック部４０の品質チェック結果を記憶するリポジトリ１５と、を備える。【選択図】        図１
2005316685.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの品質管理を行うプログラム管理装置において、
前記プログラムのチェックイン前に、前記プログラムの品質管理を行うための品質条件に基づいて前記プログラムの品質チェックを行う品質チェック部と、
前記プログラムのチェックインを実行するチェックイン実行部と、
前記プログラムおよび前記品質チェック部の品質チェック結果を記憶する記憶部と、
を備えることを特徴とするプログラム管理装置。
【請求項２】
前記チェックイン実行部は、前記品質チェック部の品質チェック結果に基づいて前記記憶部への前記プログラムのチェックインを実行するか否かを判断することを特徴とする請求項１に記載のプログラム管理装置。
【請求項３】
前記品質条件を入力する品質条件入力部をさらに備え、
前記品質チェック部は、前記品質条件入力部に入力された品質条件に基づいて前記プログラムの品質チェックを行うことを特徴とする請求項１または２に記載のプログラム管理装置。
【請求項４】
前記品質チェック部は、前記プログラムの文法チェックを行う文法チェック手段を備えることを特徴とする請求項１〜３のいずれか１つに記載のプログラム管理装置。
【請求項５】
前記品質チェック部は、前記プログラムの品質の尺度に基づいた前記プログラムの特性をメトリクス計測するメトリクス計測手段をさらに備えることを特徴とする請求項１〜４のいずれか１つに記載のプログラム管理装置。
【請求項６】
前記品質チェック部は、前記プログラムの実行処理テストを行うテスト実行手段をさらに備えることを特徴とする請求項１〜５のいずれか１つに記載のプログラム管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのチェックイン時にプログラムの品質管理を行うプログラム管理装置に関するものである。
【背景技術】
【０００２】
近年、ソフトウェアシステムの大規模化に伴い、ソフトウェア開発におけるソフトウェアプログラムを効率よく管理することが望まれている。ソフトウェア開発においてはバージョン管理システム（版管理システム）を用いてソフトウェアプログラムが管理されている。従来のバージョン管理システムでは、ソフトウェアの変更履歴を記録する機能や競合編集を防止する機能を備えており、これによりソフトウェアの変更履歴を調査することやソフトウェアが競合して編集されることの防止を行っていた。また、ソフトウェアプログラムが作成や変更された際には、このソフトウェアプログラムの品質計測を行う必要がある。
【０００３】
特許文献１に記載のソフトウェア品質計測システムは、ソースコードの品質を計測する手段、設計書の品質を計測する手段、仕様書の品質を計測する手段によって構成されている。そして、ソフトウェア品質計測の対象（成果物）の計測を開始する日時、この成果物が保存されるディレクトリに基づいて、ソフトウェア品質計測システムを制御し、成果物の品質計測を実行している。
【０００４】
【特許文献１】特開平５−３５５３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来の技術によればソフトウェアプログラムの品質計測を実行することはできるが、バージョン管理システムにプログラムをチェックインする際にプログラムの品質チェックが行われない。そのため、プログラムの変更によって生じたバグがプログラムに埋め込まれたままバージョン管理システムに登録される可能性があるといった問題があった。また、プログラムの品質チェックに対する記録が残されていない場合がある。このため、過去に作成、変更されたプログラムの品質を調べる必要が生じた場合に、プログラムの品質チェックに対する記録が残されていないと、過去のプログラムをバージョン管理システムから取り出して再度品質チェックをしなければならないといった問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、プログラムのチェックイン時にプログラムの品質管理を自動的に実行するプログラム管理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、プログラムの品質管理を行うプログラム管理装置において、前記プログラムのチェックイン前に、前記プログラムの品質管理を行うための品質条件に基づいて前記プログラムの品質チェックを行う品質チェック部と、前記プログラムのチェックインを実行するチェックイン実行部と、前記プログラムおよび前記品質チェック部の品質チェック結果を記憶する記憶部と、を備えることを特徴とする。
【０００８】
この発明によれば、プログラムのチェックイン時にプログラムの品質チェックを行うので、プログラムのチェックイン時にバグを含むプログラムが登録されることを防止できる。
【発明の効果】
【０００９】
この発明によれば、プログラムのチェックイン時にプログラムの品質チェックを行うので、プログラムのチェックイン時にバグを含むプログラムが登録されることを防止できるとともに、プログラムの品質チェックの履歴を容易に把握することが可能となる。したがって、プログラムの品質管理を高めることが可能なプログラム管理装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明にかかるプログラム管理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態
図１は、本発明の実施の形態に係るプログラム管理装置の構成を示すブロック図である。プログラム管理装置２は、コンピュータ(パーソナルコンピュータ、サーバコンピュータ)等であり、ソースプログラムの品質チェックを行うとともに、プログラムの格納を行う。
【００１２】
プログラム管理装置２は、プログラム入出力部１１、表示部１２、チェックアウト実行部１３、チェックイン実行部１４、リポジトリ１５（記憶部）、品質チェック指示部１６、品質条件入力部１８、品質チェック部４０からなる。
【００１３】
プログラム入出力部１１は、マウス、キーボード、プリンタ、記録媒体の読み込み装置、記録媒体への書込み装置等を備えて構成され、プログラム（ソフトウェア）の入出力を行う。表示部１２は、液晶ディスプレイ等を備えて構成され、リポジトリ１５が格納するプログラムの品質チェック結果、プログラムの品質チェック結果の履歴等を表示する。
【００１４】
チェックアウト実行部１３は、リポジトリ１５に格納しているプログラムやプログラムの品質チェック結果履歴を取り出す（チェックアウト（ｃｈｅｃｋｏｕｔ））。チェックアウト実行部１３は、取り出したプログラムやプログラムの品質チェック結果履歴をプログラム入出力部１１に出力させる。チェックイン実行部１４は、プログラム入出力部１１から入力されたプログラムを品質チェック結果に応じてリポジトリ１５へ格納させる。リポジトリ１５は、プログラムの変更履歴、プログラムの品質チェック結果、プログラムの品質チェック結果履歴等の情報を格納する。
【００１５】
品質チェック指示部１６は、品質チェック部４０にチェックイン実行部１４から送信されるプログラムの品質のチェックを行わせる。品質チェック指示部１６は、品質チェック部４０が行ったプログラムの品質チェック結果をチェックイン実行部１４に送信する。
【００１６】
品質チェック部４０は、文法チェック部１９、メトリクス計測部２０、テスト実行部２１からなる。文法チェック部１９、メトリクス計測部２０、テスト実行部２１は、品質条件入力部１８から入力される品質条件に基づいて、プログラムの品質のチェックを行う。文法チェック部１９はプログラムの文法をチェックし、メトリクス計測部２０はプログラムのメトリクスを計測し、テスト実行部２１はプログラムのテストを実行する。
【００１７】
文法チェック部１９は、プログラムの文法のチェックを行うツール（ソフトウェア）を備えており、例えばプログラムのエラーの個数、プログラムのワーニングの個数のチェックを行う。文法チェック部１９は、例えばＪａｖａ(登録商標)言語用のツールとして文法チェックを行うJlintによってプログラムの文法のチェックを行う。
【００１８】
メトリクス計測部２０は、プログラムのメトリクス計測を行うツールを備えており、例えばプログラムの複雑度、１関数当たりの非コメント行数、プログラム全体に占めるコメント行数の割合、プログラム中の注意事項の個数等の計測を行う。メトリクス計測部２０は、例えばメトリクス計測を行うツールのＪＣＳＣによってプログラムのメトリクス計測を行う。
【００１９】
テスト実行部２１は、プログラムの実行テストを行うツールを備えており、例えばプログラム内の全てのテストパスの実行を行う。テスト実行部２１は、例えば単体テストフレームワークであるＪｕｎｉｔによってプログラムの実行テストを行う。品質条件入力部１８は、プログラムのチェックインのために要求される品質条件を定義した情報（後述する品質条件定義情報３０）を入力する。
【００２０】
つぎに、プログラム管理装置の動作手順について説明する。図２−１はチェックイン実行部の処理手順を示すフローチャートであり、図２−２は品質チェック部の処理手順を示すフローチャートである。
【００２１】
プログラム管理装置２の使用者（プログラムの品質管理者）は、プログラムのチェックインのために要求される品質条件定義情報３０を品質条件入力部１８へ入力する。プログラム入出力部１１からプログラムを入力すると、チェックイン実行部１４はプログラム入出力部１１からこのプログラムを読み込む（ステップＳ１００）。
【００２２】
チェックイン実行部１４は、読み込んだプログラムとともにこのプログラムの品質チェックを行うための指示情報を品質チェック指示部１６に送信する。品質チェック指示部１６は、品質条件入力部１８から入力された品質条件定義情報３０に基づいて、品質チェック部４０にチェックイン実行部１４から送信されたプログラムの品質のチェックを行わせる。
【００２３】
品質チェック部４０は、チェックイン実行部１４から送信されたプログラムの品質のチェックを行うと、この品質チェックのチェック結果を品質チェック指示部１６に送信する。品質チェック指示部１６は、品質チェック部４０からの品質チェックのチェック結果をチェックイン実行部１４に送信する。チェックイン実行部１４は、品質チェック指示部１６から品質チェックのチェック結果を受信し（ステップＳ１１０）、この品質チェック結果が品質条件を満たしたものであるか否かを判断する（ステップＳ１２０）。
【００２４】
品質チェック指示部１６からの品質チェック結果が品質条件を満たしたものであれば（ステップＳ１２０、Ｙｅｓ）、チェックイン実行部１４は品質チェック結果と品質チェックの対象となったプログラムをリポジトリ１５へ格納させる（ステップＳ１３０）。そして、チェックイン実行部１４は、リポジトリ１５へ格納させた品質チェック結果を表示部１２に表示させる（ステップＳ１４０）。
【００２５】
一方、品質チェック指示部１６からの品質チェック結果が品質条件を満たしたものでない場合（ステップＳ１２０、Ｎｏ）、チェックイン実行部１４は、この品質チェック結果とともに品質チェックが品質条件を満たさなかった旨の警告メッセージを表示部１２に表示させる（ステップＳ１５０）。
【００２６】
その後、プログラム管理装置２の使用者は、必要に応じてリポジトリ１５が格納しているプログラムをチェックアウトさせるための指示情報をプログラム入出力部１１から入力し、チェックアウト実行部１３にプログラムのチェックアウトを行わせる。
【００２７】
また、プログラム管理装置２の使用者は、必要に応じてリポジトリ１５が格納している品質チェック結果や品質チェック履歴を表示させるための指示情報をプログラム入出力部１１から入力し、表示部１２に品質チェック結果や品質チェック履歴を表示させる。
【００２８】
つぎに、図２−２に示すフローチャートに従って品質チェック指示部の処理手順を説明する。図２−２に示すフローチャートは品質チェック指示部１６が、チェックイン実行部１４からプログラムの品質チェックを指示されてチェックイン実行部１４に品質チェック結果を返すまでの処理の流れを示している。
【００２９】
プログラム管理装置２の使用者は、予めプログラムのチェックインのために要求される品質条件定義情報３０を品質条件入力部１８へ入力しておく。プログラム入出力部１１からプログラムを入力すると、チェックイン実行部１４はプログラム入出力部１１からこのプログラムを読み込み、品質チェック指示部１６はチェックイン実行部１４からプログラムを受け取る（ステップＳ３００）。品質チェック指示部１６は、品質条件入力部１８から品質条件定義情報３０を読み込む(ステップＳ３１０）。
【００３０】
ここで、品質条件定義情報３０について説明する。図３は、品質条件定義情報の一例を示す図である。品質条件定義情報３０は、プログラムの品質チェックを行う項目名を示す「品質チェック項目」、この品質チェック項目を起動させるコマンドを示す「起動コマンド」、プログラムの品質条件を示す「品質条件」が含まれる。
【００３１】
品質条件定義情報３０はプログラムの品質管理者によって任意に変更可能である。品質条件定義情報３０を変更する場合、プログラムの品質管理者はプログラムの品質チェックを行う前に、品質条件入力部１８を介して変更後の品質条件定義情報３０を入力しておく。
【００３２】
ここでは、「品質チェック項目」に文法チェック、メトリクス計測、テスト実行が含まれている場合を示している。文法チェックは、プログラムの文法をチェックすることを表している。ここでは、文法チェックの「品質条件」のチェックとしてプログラムのエラーの個数、プログラムのワーニングの個数が５個以下であるか否かのチェックを行う。この文法チェックは、「起動コマンド」として例えばＣ:￥ｊｌｉｎｔ￥ｊｌｉｎｔ.ｅｘｅを用いる。
【００３３】
メトリクス計測は、プログラムの品質の尺度や測定の基準（工数、バグ数、規模）に従ったプログラムの特性を測定することを表している。ここでは、メトリクス計測の「品質条件」のチェックとしてプログラムの複雑度が２０以下であるか否か、１関数当たりの非コメント行数が１００以下であるか否か、プログラム全体に占めるコメント行数の割合が３０％以上であるか否か、プログラム中の注意事項の個数が１０以下であるか否かのチェックを行う。このメトリクス計測は、「起動コマンド」として例えばＣ:￥ｊｃｓｃ￥ｊｃｓｃ.ｂａｔを用いる。
【００３４】
テスト実行は、プログラムの実行処理をチェックすることを表している。ここでは、テスト実行の「品質条件」のチェックとしてプログラム内の全てのテストパスが通過したか否かのチェックを行う。このテスト実行は、「起動コマンド」として例えばＣ:￥ｊｕｎｉｔ￥ｊｕｎｉｔ.ｂａｔを用いる。なお、品質条件定義情報３０の「品質チェック項目」は、文法チェック、メトリクス計測、テスト実行に限られず、これら以外の「品質チェック項目」を追加する構成としてもよい。
【００３５】
品質チェック指示部１６が、チェックイン実行部１４からプログラムを受け取り、品質条件入力部１８から品質条件定義情報３０を読み込むと、品質チェック部４０はチェックイン実行部１４から受け取ったプログラムの品質チェックを開始する。
【００３６】
品質チェック指示部１６は、文法チェック部１９、メトリクス計測部２０、テスト実行部２１に対し、品質条件定義情報３０に基づいてプログラムの品質チェックをさせる。例えば、品質チェック指示部１６は文法チェック部１９、メトリクス計測部２０、テスト実行部２１の順にプログラムのテスト処理を行わせる。
【００３７】
品質チェック指示部１６は、まず文法チェック部１９に文法チェックを行わせるか否かを判断する（ステップＳ３２０）。品質条件定義情報３０の「品質チェック項目」に文法チェックが含まれていない場合やプログラム管理装置２の使用者によってプログラム入出力部１１を介して文法チェックを行わせないための指示情報が入力されている場合、品質チェック指示部１６は、文法チェック部１９に対して文法チェックを行わせない（ステップＳ３２０、Ｎｏ）。
【００３８】
一方、品質条件定義情報３０の「品質チェック項目」に文法チェックが含まれている場合やプログラム管理装置２の使用者によってプログラム入出力部１１を介して文法チェックを行わせない指示情報が入力されていない場合、品質チェック指示部１６は、文法チェック部１９に対して文法チェックを行わせる（ステップＳ３２０、Ｙｅｓ）。文法チェック部１９は、品質条件定義情報３０に基づいてプログラムの文法チェックを行う。文法チェック部１９は、この文法チェックのチェック結果を品質チェック指示部１６に送信し、品質チェック指示部１６がこのチェック結果を受信する（ステップＳ３３０）。文法チェック部１９から品質チェック指示部１６に送信されるチェック結果には、文法チェック部１９がチェックを行ったプログラムが品質条件を満たすものであるか否かの情報（文法チェック結果ＯＫまたは文法チェック結果ＮＧ）が含まれる。
【００３９】
ここでは、品質条件定義情報３０の「品質条件」がエラー個数０、ワーニング個数５個以下であるため、文法チェックのエラー個数が０で、文法チェックのワーニング個数が５個以下の場合に、文法チェック結果ＯＫとなる。また、文法チェックのエラー個数が１以上または、文法チェックのワーニング個数が６個以上の条件の少なくとも一方に該当する場合、文法チェック結果ＮＧとなる。
【００４０】
品質チェック指示部１６は、文法チェック部１９から受信したチェック結果が文法チェック結果ＯＫであるか否かを判断する（ステップＳ３４０）。品質チェック指示部１６は、文法チェック部１９から文法チェック結果ＯＫのチェック結果を受信すると（ステップＳ３４０、Ｙｅｓ）、メトリクス計測部２０にメトリクス計測を行わせるか否かを判断する（ステップＳ３５０）。品質条件定義情報３０の「品質チェック項目」にメトリクス計測が含まれていない場合やプログラム管理装置２の使用者によってプログラム入出力部１１を介してメトリクス計測を行わせないための指示情報が入力されている場合、品質チェック指示部１６は、メトリクス計測部２０に対してメトリクス計測を行わせない（ステップＳ３５０、Ｎｏ）。
【００４１】
一方、品質条件定義情報３０の「品質チェック項目」にメトリクス計測が含まれている場合やプログラム管理装置２の使用者によってプログラム入出力部１１を介してメトリクス計測を行わせない指示情報が入力されていない場合、品質チェック指示部１６は、メトリクス計測部２０に対してメトリクス計測を行わせる（ステップＳ３５０、Ｙｅｓ）。メトリクス計測部２０は、品質条件定義情報３０に基づいてプログラムのメトリクス計測を行う。メトリクス計測部２０は、このメトリクス計測のチェック結果を品質チェック指示部１６に送信し、品質チェック指示部１６がこのチェック結果を受信する（ステップＳ３６０）。メトリクス計測部２０から品質チェック指示部１６に送信されるチェック結果には、メトリクス計測部２０が計測を行ったプログラムが品質条件を満たすものであるか否かの情報（メトリクス計測結果ＯＫまたはメトリクス計測結果ＮＧ）が含まれる。
【００４２】
ここでは、品質条件定義情報３０の「品質条件」が複雑度２０以下、１関数当たりの非コメント行数１００以下、全体に占めるコメント行数の割合３０％以上、注意事項個数１０以下であるため、プログラムのメトリクス計測において複雑度２０以下、プログラムのメトリクス計測において１関数当たりの非コメント行数１００以下、プログラムのメトリクス計測において全体に占めるコメント行数の割合３０％以上、プログラムのメトリクス計測において注意事項個数１０以下である場合に、メトリクス計測結果ＯＫとなる。また、プログラムのメトリクス計測において複雑度２１以上、プログラムのメトリクス計測において１関数当たりの非コメント行数１０１以上、プログラムのメトリクス計測において全体に占めるコメント行数の割合３０％より大きい場合、プログラムのメトリクス計測において注意事項個数１１以上の条件の少なくとも１つに該当する場合に、メトリクス計測結果ＮＧとなる。
【００４３】
品質チェック指示部１６は、メトリクス計測部２０から受信した計測結果がメトリクス計測結果ＯＫであるか否かを判断する（ステップＳ３７０）。品質チェック指示部１６は、メトリクス計測部２０からメトリクス計測結果ＯＫのチェック結果を受信すると（ステップＳ３７０、Ｙｅｓ）、メトリクス計測部２０にテスト実行を行わせるか否かを判断する（ステップＳ３８０）。品質条件定義情報３０の「品質チェック項目」テスト実行が含まれていない場合やプログラム管理装置２の使用者によってプログラム入出力部１１を介してテスト実行を行わせないための指示情報が入力されている場合、品質チェック指示部１６は、テスト実行部２１に対してテスト実行を行わせない（ステップＳ３８０、Ｎｏ）。
【００４４】
一方、品質条件定義情報３０の「品質チェック項目」にテスト実行が含まれている場合やプログラム管理装置２の使用者によってプログラム入出力部１１を介してテスト実行を行わせない指示情報が入力されていない場合、品質チェック指示部１６は、テスト実行部２１に対してテスト実行を行わせる（ステップＳ３８０、Ｙｅｓ）。テスト実行部２１は、品質条件定義情報３０に基づいてプログラムのテスト実行を行う。テスト実行部２１は、このテスト実行の実行結果を品質チェック指示部１６に送信し、品質チェック指示部１６がこの実行結果を受信する（ステップＳ３９０）。テスト実行部２１から品質チェック指示部１６に送信されるチェック結果には、テスト実行部２１がチェックを行ったプログラムが品質条件を満たすものであるか否かの情報（テスト実行結果ＯＫまたはテスト実行結果ＮＧ）が含まれる。
【００４５】
ここでは、品質条件定義情報３０の「品質条件」がすべてのテストパスを通過することであるため、プログラムがすべてのテストパスを通過するとテスト実行結果ＯＫとなる。また、プログラムがすべてのテストパスを通過しない場合はテスト実行結果ＮＧとなる。
【００４６】
品質チェック指示部１６は、テスト実行部２１から受信した実行結果がテスト実行結果ＯＫであるか否かを判断するとともに（ステップＳ４００）、プログラムの総合品質条件を満たしているか否かを判断する（ステップＳ４１０）。プログラムの総合品質条件は、文法チェック結果、メトリクス計測結果、テスト実行結果に基づいて決定され、例えば文法チェック結果ＯＫ、メトリクス計測結果ＯＫ、テスト実行結果ＯＫの場合に、総合品質条件ＯＫとなる。品質チェック指示部１６が総合品質条件ＯＫと判断すると、チェックイン実行部１４にプログラムが品質条件を満たしている旨の情報を送信する（ステップＳ４３０）。
【００４７】
品質チェック指示部１６が、文法チェック部１９から文法チェック結果ＮＧのチェック結果を受信した場合（ステップＳ３４０、Ｎｏ）、品質チェック指示部１６はそれ以降の「品質チェック項目」のチェックを行わず、チェックイン実行部１４にプログラムが品質条件を満たしていない旨のチェック結果を送信する（ステップＳ４２０）。
【００４８】
品質チェック指示部１６が、メトリクス計測部２０からメトリクス計測結果ＮＧのメトリクス計測結果を受信した場合（ステップＳ３７０、Ｎｏ）、品質チェック指示部１６はそれ以降の「品質チェック項目」のチェックを行わず、チェックイン実行部１４にプログラムが品質条件を満たしていない旨のチェック結果を送信する（ステップＳ４２０）。
【００４９】
品質チェック指示部１６が、テスト実行部２１からテスト実行結果ＮＧのテスト実行結果を受信した場合（ステップＳ４００、Ｎｏ）、品質チェック指示部１６はそれ以降の「品質チェック項目」のチェックを行わず、チェックイン実行部１４にプログラムが品質条件を満たしていない旨のチェック結果を送信する（ステップＳ４２０）。
【００５０】
品質チェック指示部１６が総合品質条件ＮＧと判断した場合（ステップＳ４１０、Ｎｏ）、チェックイン実行部１４にプログラムが品質条件を満たしていない旨のチェック結果を送信する（ステップＳ４２０）。
【００５１】
品質チェック指示部１６からの品質チェック結果が品質条件を満たしたものであれば、チェックイン実行部１４は品質チェック結果と品質チェックの対象となったプログラムをリポジトリ１５へ格納させる。そして、チェックイン実行部１４は、リポジトリ１５へ格納させた品質チェック結果としてプログラムが品質条件を満たしている旨のメッセージを表示部１２に表示させる。
【００５２】
一方、品質チェック指示部１６からの品質チェック結果が品質条件を満たしたものでない場合、チェックイン実行部１４は、この品質チェック結果とともに品質チェックが品質条件を満たさなかった旨の警告メッセージを表示部１２に表示させる。
【００５３】
プログラム管理装置２の使用者が、品質チェック結果の履歴を確認する場合は、プログラム入出力部１１から品質チェック結果の履歴を取得するための指示情報を入力する。チェックアウト実行部１３は、この指示情報に基づいてリポジトリ１５から品質チェック結果の履歴を取り出し、表示部１２に品質チェック結果の履歴を表示させる。
【００５４】
なお、本実施の形態ではプログラム管理装置２がプログラム入出力部１１、表示部１２、チェックアウト実行部１３、チェックイン実行部１４、リポジトリ１５、品質チェック指示部１６、品質条件入力部１８、品質チェック部４０（文法チェック部１９、メトリクス計測部２０、テスト実行部２１）を備える構成としたが、これらの構成要素を別々のコンピュータ等に配置して、ネットワークで通信することによってプログラムの管理を行う構成としてもよい。
【００５５】
なお、本実施の形態においては、文法チェック結果ＯＫ、メトリクス計測結果ＯＫ、テスト実行結果ＯＫの場合に、総合品質条件ＯＫとしたが、総合品質条件はプログラム管理装置２の使用者によって任意に設定可能であり、品質チェック指示部１６はプログラム管理装置２の使用者によって設定された総合品質条件に基づいてプログラムの総合的な品質を判断する。
【００５６】
このように実施の形態によれば、プログラムのチェックイン時にプログラムの品質チェックを行うとともに、変更したプログラムが品質条件を満たした場合のみ、リポジトリ１５へプログラムを登録するので、プログラム管理装置２へのプログラムのチェックイン時にバグを含むプログラムが登録されることを防止できる。また、チェックイン時にリポジトリ１５に品質チェック結果を登録しておくので、プログラムの品質チェックの履歴を容易に把握することが可能となる。したがって、プログラムの品質を高めることができる。また、品質チェック指示部１６が、品質チェック部４０に対し品質条件定義情報３０に基づいて品質チェック項目を実行させるので独自の品質チェック項目を容易に追加することが可能となる。
【産業上の利用可能性】
【００５７】
以上のように、本発明にかかるプログラム管理装置は、作成や変更されたプログラムの管理に適している。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の形態に係るプログラム管理装置の構成を示すブロック図である。
【図２−１】チェックイン実行部の処理手順を示すフローチャートである。
【図２−２】品質チェック部の処理手順を示すフローチャートである。
【図３】品質条件定義情報の一例を示す図である。
【符号の説明】
【００５９】
２  プログラム管理装置
１１  プログラム入出力部
１２  表示部
１３  チェックアウト実行部
１４  チェックイン実行部
１５  リポジトリ
１６  品質チェック指示部
１８  品質条件入力部
１９  文法チェック部
２０  メトリクス計測部
２１  テスト実行部
３０  品質条件定義情報
４０  品質チェック部
【図１】
2005316685.tif 000003
【図２−１】
2005316685.tif 000004
【図２−２】
2005316685.tif 000005
【図３】
2005316685.tif 000006