(57)【要約】【課題】  プログラムのチェックを的確に行うことが可能な作業者にプログラムのチェックを指示するためのプログラム開発支援方法及びプログラム開発支援プログラムを提供する。【解決手段】  管理コンピュータ２１が、変更されたプログラムのプログラム言語と使用された関数に基づいて、使用関数データ記憶部３１を用いて、変更されたプログラムの難易度を算出する。そして、変更されたプログラムの難易度とスキルデータ記憶部３２のピアレビュースキル又はテスト実施スキルとに基づいて、ピアレビュー又はテストを実施する作業者を特定し、この作業者の電子メールアドレスに、ピアレビュー又はテストの実施を指示する電子メールを送信する。【選択図】      図１
2006172000.tif 000002
【特許請求の範囲】
【請求項１】
プログラムで使用される関数についての難易度を特定するためのデータを記録した使用関数データ記憶手段と、作業者のプログラムのチェックに関するスキルレベルを記録するスキルレベルデータ記憶手段と、これらを管理する管理コンピュータとを用いて、作業者にプログラムのチェックの指示を行うプログラム開発支援方法であって、
前記管理コンピュータが、
登録されたプログラムに含まれる関数を抽出し、この関数について、前記使用関数データ記憶手段を用いて、このプログラムの難易度を算出する難易度算出段階と、
前記難易度算出段階において算出した難易度と、前記スキルレベルデータ記憶手段のスキルレベルとに基づいて、プログラムのチェックを実施する作業者を特定する作業者特定段階と、
前記特定した作業者の端末に、前記プログラムのチェックの実施を指示するデータを送信する作業通知段階と
を含むことを特徴とするプログラム開発支援方法。
【請求項２】
前記管理コンピュータが、
変更されたプログラムが登録された場合に、先に登録された変更前のプログラムと、新たにバージョンアップされて登録された変更後のプログラムとを比較して差分を検出することにより、前記プログラムの変更部分を特定する変更部分特定段階をさらに含み、
前記作業通知段階において作業者の端末に送信するデータは、前記プログラムの変更部分に関するデータを含むことを特徴とする請求項１に記載のプログラム開発支援方法。
【請求項３】
前記管理コンピュータが、
前記変更部分特定段階において特定された変更部分に含まれる関数を抽出し、抽出された関数についての難易度を特定するためのデータを前記使用関数データ記憶手段に記録する段階をさらに含むことを特徴とする請求項２に記載のプログラム開発支援方法。
【請求項４】
前記プログラムのチェックは、少なくともプログラムのレビュー及びプログラムに関するテストのいずれか１つを含むことを特徴とする請求項１〜３のいずれか１つに記載のプログラム開発支援方法。
【請求項５】
前記管理コンピュータは、プログラム作成者からのプログラムのチェックを実施する作業者へのメッセージに関するデータをプログラムと関連付けて記録する通知内容記憶手段にさらに接続され、
前記管理コンピュータが、
プログラム作成者にプログラムのチェックを実施する作業者へのメッセージの入力を促し、前記プログラム作成者により入力されたメッセージに関するデータをプログラムと関連付けて前記通知内容記憶手段に記録する段階をさらに含み、
前記作業通知段階は、
前記プログラムに関連付けられたメッセージに関するデータを前記通知内容記憶手段から抽出し、前記プログラムのチェックを実施する作業者の端末に送信することを特徴とする請求項１〜４のいずれか１つに記載のプログラム開発支援方法。
【請求項６】
プログラムで使用される関数についての難易度を特定するためのデータを記録した使用関数データ記憶手段と、作業者のプログラムのチェックに関するスキルレベルを記録するスキルレベルデータ記憶手段と、これらを管理する管理コンピュータとを用いて、作業者にプログラムのチェックの指示を行うためのプログラム開発支援プログラムであって、
前記管理コンピュータを、
登録されたプログラムに含まれる関数を抽出し、この関数について、前記使用関数デー
タ記憶手段を用いて、このプログラムの難易度を算出する難易度算出手段と、
前記難易度算出手段により算出した難易度と、前記スキルレベルデータ記憶手段のスキルレベルとに基づいて、プログラムのチェックを実施する作業者を特定する作業者特定手段と、
前記特定した作業者の端末に、前記プログラムのチェックの実施を指示するデータを送信する作業通知手段
として機能させるためのプログラム開発支援プログラム。
【請求項７】
前記管理コンピュータを、さらに、
変更したプログラムが登録された場合に、先に登録されたプログラムと、新たにバージョンアップされて登録された変更したプログラムとを比較して差分を検出することにより、前記プログラムの変更部分を特定する変更部分特定手段として機能させ、
前記作業通知手段により作業者の端末に送信するデータは、前記プログラムの変更部分に関するデータを含むことを特徴とする請求項６に記載のプログラム開発支援プログラム。
【請求項８】
前記管理コンピュータを、さらに、
前記変更部分特定手段により特定された変更部分に含まれる関数を抽出し、抽出された関数についての難易度を特定するためのデータを前記使用関数データ記憶手段に記録する手段として機能させることを特徴とする請求項７に記載のプログラム開発支援プログラム。
【請求項９】
前記プログラムのチェックは、少なくともプログラムのレビュー及びプログラムに関するテストのいずれか１つを含むことを特徴とする請求項６〜８のいずれか１つに記載のプログラム開発支援プログラム。
【請求項１０】
前記管理コンピュータは、プログラム作成者からのプログラムのチェックを実施する作業者へのメッセージに関するデータをプログラムと関連付けて記録する通知内容記憶手段にさらに接続され、この通知内容記憶手段をさらに用いて、
前記管理コンピュータを、さらに、
プログラム作成者にプログラムのチェックを実施する作業者へのメッセージの入力を促し、前記プログラム作成者により入力されたメッセージに関するデータをプログラムと関連付けて前記通知内容記憶手段に記録する手段として機能させ、
前記作業通知手段を、
前記プログラムに関連付けられたメッセージに関するデータを前記通知内容記憶手段から抽出し、前記プログラムのチェックを実施する作業者の端末に送信する手段として機能させることを特徴とする請求項６〜９のいずれか１つに記載のプログラム開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのチェックを的確に行うことが可能な作業者にプログラムのチェックを指示するためのプログラム開発支援方法及びプログラム開発支援プログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発においては、プログラムのコーディングを行った後、コーディングされたプログラムのレビューと、開発されたプログラムが仕様のとおりに動作するかどうかの確認とが必要である。なお、プログラムのレビューの方法としては、例えば、同僚同士で技術的な視点からレビューを行うピアレビューがある。また、プログラムの変更時にも、新規作成時と同様に、プログラムのレビューや動作確認のためのテストが必要となる。
【０００３】
一方、ソフトウェア開発を効率的に行うためのシステムが、多数、開発されている（例えば、特許文献１参照。）。この特許文献１には、プログラムの更新時にソースコード行数等を収集し、進捗情報を作成して作業者端末に通知するシステムが開示されている。
【特許文献１】特開２００２−３６６６７４号公報（第４−６頁）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、プログラムが変更された際に、ピアレビューをする相手の能力によっては最適な指摘を行えない場合がある。また、テスト実施者に変更内容や必要なテストに関する通知が不徹底であると、必要なテストが行われない可能性がある。
【０００５】
本発明は、上記問題点を解決するためになされたものであり、その目的は、プログラムのチェックを的確に行うことが可能な作業者にプログラムのチェックを指示するためのプログラム開発支援方法及びプログラム開発支援プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、プログラムで使用される関数についての難易度を特定するためのデータを記録した使用関数データ記憶手段と、作業者のプログラムのチェックに関するスキルレベルを記録するスキルレベルデータ記憶手段と、これらを管理する管理コンピュータとを用いて、作業者にプログラムのチェックの指示を行うものであって、前記管理コンピュータが、登録されたプログラムに含まれる関数を抽出し、この関数について、前記使用関数データ記憶手段を用いて、このプログラムの難易度を算出し、この難易度と、前記スキルレベルデータ記憶手段のスキルレベルとに基づいて、プログラムのチェックを実施する作業者を特定し、前記特定した作業者の端末に、前記プログラムのチェックの実施を指示するデータを送信する。これによれば、登録されたプログラムに使用された関数を用いて、プログラムで使用される関数についての難易度を特定するためのデータを参照して、登録されたプログラムの難易度を求めることができる。そして、この難易度に基づいて、適切なスキルを有する作業者にプログラムのチェックの実施を指示することができる。
【０００７】
さらに、本発明によれば、前記管理コンピュータが、変更されたプログラムが登録された場合に、先に登録された変更前のプログラムと、新たにバージョンアップされて登録された変更後のプログラムとを比較して差分を検出することにより、前記プログラムの変更部分を特定し、前記作業者の端末に送信するデータは、前記プログラムの変更部分に関するデータを含む。これによれば、変更されたプログラムが登録された場合に、プログラムの変更部分を特定することができる。そして、このプログラムの変更部分について、プロ
グラムのチェックを指示する作業者に通知できる。これにより、プログラムのチェックを実施する作業者が変更部分を確認できるため、作業者は、変更された部分について、この部分に集中して漏れなくプログラムのチェックを行うことが可能となる。
【０００８】
さらに、本発明によれば、前記管理コンピュータが、特定された変更部分に含まれる関数を抽出し、抽出された関数についての難易度を特定するためのデータを前記使用関数データ記憶手段に記録する。これによれば、変更部分に含まれる関数についての難易度を特定するためのデータを蓄積していくことができる。そして、このようにして蓄積したデータを参照してプログラムの難易度を算出するため、このデータの蓄積が大きくなるほど、算出するプログラムの難易度の精度を高めることができる。
【０００９】
さらに、本発明によれば、前記プログラムのチェックは、少なくともプログラムのレビュー及びプログラムに関するテストのいずれか１つを含む。これによれば、プログラムのレビュー、プログラムに関するテストについて、それぞれ適切なスキルを有する作業者に、プログラムのレビュー、プログラムに関するテストの実施をそれぞれ指示することができる。
【００１０】
さらに、本発明によれば、前記管理コンピュータは、プログラム作成者からのプログラムのチェックを実施する作業者へのメッセージに関するデータをプログラムと関連付けて記録する通知内容記憶手段にさらに接続され、前記管理コンピュータが、プログラム作成者にプログラムのチェックを実施する作業者へのメッセージの入力を促し、前記プログラム作成者により入力されたメッセージに関するデータをプログラムと関連付けて前記通知内容記憶手段に記録し、前記プログラムに関連付けられたメッセージに関するデータを前記通知内容記憶手段から抽出し、前記プログラムのチェックを実施する作業者の端末に送信する。これによれば、プログラム作成者が、プログラムのチェックを実施する作業者に、プログラムのチェックに関して必要な事項に関するメッセージを伝えることができる。このため、プログラムのチェックを実施する作業者は、通知されたメッセージに従って、必要な範囲で、漏れなくプログラムのチェックを実施することが可能となる。
【発明の効果】
【００１１】
本発明によれば、プログラムのチェックを的確に行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を具体化した一実施形態を、図１〜図６を用いて説明する。本実施形態では、プログラムが変更された場合に、変更されたプログラムの難易度に従って、適切なスキルを有する作業者にプログラムのピアレビューやテストの実施を指示するためのプログラム開発支援方法及びプログラム開発支援プログラムとして説明する。
【００１３】
図１に示すように、支援サーバ２０は、ＬＡＮ等のネットワーク５０を介して、複数の作業者がそれぞれ使用する作業者端末４０に接続されている。
作業者端末４０は、プログラムの作成を行うプログラマ（プログラム作成者）、ピアレビューを行う作業者、テストを実施する作業者がそれぞれ使用するコンピュータ端末である。作業者端末４０は、ネットワークを介してデータを送信する機能や、受信したデータを表示する機能等を有する。作業者端末４０は、図示しない制御手段（ＣＰＵ）、記憶手段（ＲＡＭ、ＲＯＭ、ハードディスク等）の他、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、モデム等の通信手段等を有する。
【００１４】
支援サーバ２０は、管理コンピュータ２１を備えている。管理コンピュータ２１は、図示しない制御手段（ＣＰＵ）、記憶手段（ＲＡＭ、ＲＯＭ等）、通信手段等を有し、後述する処理（変更部分特定段階、難易度算出段階、作業者特定段階、作業通知段階等を含む
処理）を行う。このためのプログラム開発支援プログラムを実行することにより、管理コンピュータ２１は、変更部分特定手段２２、難易度算出手段２３、作業者特定手段２４、作業通知手段２５等として機能する。変更部分特定手段２２は、プログラムの変更部分を特定する。難易度算出手段２３は、登録されたプログラムに含まれる関数を抽出し、この関数について、使用関数データ記憶部３１を用いて、このプログラムの難易度を算出する。作業者特定手段２４は、算出したプログラムの難易度と、スキルデータ記憶部３２のピアレビュースキル又はテスト実施スキルとに基づいて、ピアレビュー又はテストを実施する作業者を特定する。作業通知手段２５は、特定した作業者の作業者端末４０に、ピアレビュー又はテストの実施を指示するデータを送信する。
【００１５】
管理コンピュータ２１は、使用関数データ記憶手段としての使用関数データ記憶部３１と、スキルレベルデータ記憶手段としてのスキルデータ記憶部３２と、プログラム記憶部３３と、通知内容記憶手段としての通知内容データ記憶部３４と、変更部分特定データ記憶部３５とに接続されている。
【００１６】
使用関数データ記憶部３１には、図２に示すように、過去に作成されたプログラムで使用されたプログラム言語や関数に関する使用関数データ３１０が記録されている。この使用関数データ３１０は、新規作成されたプログラムや変更されたプログラムがプログラム記憶部３３に登録された場合に、登録されたプログラムで使用されている関数について記録される。この使用関数データ３１０は、プログラム言語、関数、難易度、使用回数及び難易度指定フラグに関するデータ領域を含んで構成されている。
【００１７】
プログラム言語データ領域には、プログラムの作成に用いられる言語に関するデータが記録される。関数データ領域には、プログラムに使用された関数に関するデータが記録される。難易度データ領域には、このプログラム言語におけるこの関数の難易度に関するデータが記録される。本実施形態では、難易度は、１〜３の３段階で設定され、３が最も高い難易度となる。使用回数データ領域には、このプログラム言語におけるこの関数の使用回数に関するデータが記録される。難易度指定フラグデータ領域には、ユーザによる難易度の指定に関するフラグが記録される。具体的には、作業者等により難易度が指定された場合、データ領域にフラグが記録される。
【００１８】
スキルデータ記憶部３２には、図３に示すように、作業者のプログラム言語毎のピアレビューやテストのスキルに関するスキルデータ３２０が記録されている。このスキルデータ３２０は、作業者の上司である作業管理者により作業者のスキルについての登録が行われた場合に記録され、また、作業管理者による更新登録により更新される。このスキルデータ３２０は、作業者識別子、プログラム言語、ピアレビュースキル及びテスト実施スキルに関するデータ領域を含んで構成されている。
【００１９】
作業者識別子データ領域には、作業者を特定するための識別子に関するデータが記録される。プログラム言語データ領域には、プログラム言語に関するデータが記録される。ピアレビュースキルデータ領域には、この作業者のこのプログラム言語におけるピアレビューのスキルレベルに関するデータが記録される。本実施形態では、ピアレビューのスキルレベルは、１〜３の３段階で設定され、３が最も高いスキルレベルとなる。テスト実施スキルデータ領域には、この作業者のこのプログラム言語におけるテスト実施のスキルに関するデータが記録される。本実施形態では、テスト実施のスキルレベルは１〜３の３段階で設定され、３が最も高いスキルレベルとなる。
【００２０】
プログラム記憶部３３には、新規作成されたプログラムや変更されたプログラムに関するデータが登録される。なお、本実施形態では、変更されたプログラムが登録された場合、変更前のプログラムと関連付けられて、バージョンアップされたプログラムとして管理
される。具体的には、プログラム記憶部３３に登録するプログラムに連番のバージョン情報を付与する。
【００２１】
通知内容データ記憶部３４には、プログラマにより入力されたメッセージに関する通知内容データが記録される。このメッセージには、プログラムの変更部分やテストが必要な範囲についてのテスト実施者への通知内容が含まれる。そして、この通知内容データは、プログラムの変更登録の際に、プログラマによりメッセージが入力された場合に記録される。この通知内容データは、プログラム識別子及びメッセージに関するデータ領域を含んで構成されている。
【００２２】
変更部分特定データ記憶部３５には、バージョンアップされたプログラムの変更部分を特定した変更部分特定データがプログラム毎に記録される。この変更部分特定データは、プログラムが変更登録された場合に記録される。この変更部分特定データは、プログラム識別子及び変更部分を特定するための情報に関するデータ領域を含んで構成されている。本実施形態では、変更部分を特定するための情報として、変更後のプログラムにおけるプログラムソースの行番号の指定が記録される。なお、広範囲にわたって変更が行われている場合には、プログラムソースにおける変更の開始位置の行番号の指定と変更の終了位置の行番号の指定とが記録される。
【００２３】
次に、上記のようなシステムを用いて、プログラムが変更された場合に、変更されたプログラムに関する難易度を算出し、この難易度に従って、適切なスキルを有する作業者にプログラムのピアレビューやテストの実施を指示する場合の処理手順を図４〜図６を用いて説明する。ここでは、作業者のスキルを登録する段階と、過去に使用された関数についての難易度を作業者等が指定する段階と、プログラム変更時のプログラムのチェックに関する指示を行う段階（図４）とに分けて説明する。
【００２４】
（作業者のスキルレベルの登録）
まず、作業者のスキルレベルの登録について説明する。本実施形態では、作業者のスキルレベルの登録は、作業者の上司である作業管理者が行う。作業者のスキルについては、ピアレビュースキルとテスト実施スキルとについて、それぞれ登録する。
【００２５】
ここでは、ピアレビュースキルを登録する場合について説明する。作業管理者が作業者端末４０を用いて、作業者のピアレビュースキルの登録画面の送信要求を支援サーバ２０に送信すると、支援サーバ２０の管理コンピュータ２１は、図５に示すピアレビュースキル登録画面６０を表示させるためのデータを作業者端末４０に送信する。
【００２６】
図５に示すように、ピアレビュースキル登録画面６０は、作業者選択部６１と、スキルレベル指定部６２とを備えている。作業者選択部６１には、この作業管理者がスキルレベルの登録を可能な作業者が、作業管理者の作業者識別子とこの作業管理者がスキルレベルを管理する作業者の作業者識別子とを関連付けたデータに基づいて一覧表示される。スキルレベル指定部６２には、プログラム言語毎にピアレビュースキルのスキルレベルの指定を行うための表示が行われる。ここでは、Ｃ言語についてのピアレビュースキルのスキルレベルの指定部が表示されている。
【００２７】
このピアレビュースキル登録画面６０において、作業管理者は、作業者選択部６１で作業者を選択し、この作業者をドラッグアンドドロップにより、スキルレベル指定部６２の各難易度の指定部に振り分ける。また、既に振り分けられている作業者についても、スキルレベル指定部６２の他のスキルレベルからドラッグアンドドロップにより作業者の表示を移動することにより、スキルレベルの振り分けを再度行うことができる。このようにして作業者の振り分けを行うと、作業管理者の作業者端末４０は、振り分けられた作業者の
作業者識別子とプログラム言語とピアレビュースキル（難易度）とを支援サーバ２０に送信する。これを受信した支援サーバ２０の管理コンピュータ２１は、作業者識別子とプログラム言語とによりスキルデータ記憶部３２を検索し、特定されたスキルデータ３２０のピアレビュースキルデータ領域に、作業管理者によって指定されたピアレビュースキルに関するデータを記録する。
【００２８】
なお、テスト実施者についても、同様にしてスキルレベルの登録を行う。
（関数についての難易度の指定）
次に、過去に使用された関数について、難易度を作業者等が再設定を行う場合について説明する。使用関数データ記憶部３１に登録されている難易度が実情と異なる場合、作業者等は、使用関数データ３１０に設定されている難易度を変更することができる。
【００２９】
具体的には、作業者又は作業管理者は、まず、作業者端末４０を用いて、使用関数の難易度の設定画面の表示要求を行う。この要求に対し、支援サーバ２０は、使用関数の難易度の設定画面を作業者端末４０に送信する。この使用関数の難易度の設定画面において、プログラム言語と関数とを指定して、設定する難易度を指定すると、作業者端末４０は、このプログラム言語、関数、難易度を含む難易度指定データを支援サーバ２０に送信する。これを受信した支援サーバ２０の管理コンピュータ２１は、受信したプログラム言語及び関数に基づいて使用関数データ記憶部３１を検索し、特定された使用関数データ３１０の難易度として、この難易度指定データに含まれる難易度を記録する。さらに、この場合、この使用関数データ３１０に、難易度指定フラグを記録する。
【００３０】
（プログラム変更時のプログラムのチェック指示）
次に、プログラム変更時の処理を、図４を用いて説明する。図４に示すように、プログラムの変更したプログラマは、使用している作業者端末４０から支援サーバ２０に変更後のプログラムを送信して、変更したプログラムのプログラム記憶部３３への登録要求を行う。この登録要求を受け付けた支援サーバ２０の管理コンピュータ２１は、受信したプログラムをプログラム記憶部３３に登録する（ステップＳ１−１）。具体的には、管理コンピュータ２１は、まず、受信したプログラムのプログラム識別子に基づいて、プログラム記憶部３３を検索する。そして、このプログラム識別子のプログラムのうち、プログラム記憶部３３に登録されている最新のバージョンのプログラムの次のバージョンを、受信したプログラムに付与し、このプログラムをプログラム記憶部３３に登録する。
【００３１】
次に、管理コンピュータ２１は、プログラマによるメッセージの登録処理を行う（ステップＳ１−２）。具体的には、管理コンピュータ２１は、変更したプログラムの登録要求を送信した作業者端末４０に、テスト実施者へのメッセージの入力画面を表示させるためのデータを送信する。これを受信した作業者端末４０には、図６に示すメッセージ入力画面７０が表示される。
【００３２】
図６に示すように、メッセージ入力画面７０には、メッセージ入力欄７１、チェックインボタン７２及びキャンセルボタン７３が表示される。メッセージ入力欄７１は、テスト実施者へのメッセージを入力するための入力欄である。本実施形態では、このメッセージ入力欄７１に、必要なテスト範囲に関するメッセージを入力する。チェックインボタン７２は、メッセージを支援サーバ２０に登録するためのボタンである。キャンセルボタン７３は、メッセージの登録をキャンセルするためのボタンである。
【００３３】
プログラマは、メッセージ入力欄７１において、必要なテスト範囲に関するメッセージを入力し、チェックインボタン７２を用いて、メッセージの登録要求を行う。これにより、作業者端末４０は、プログラム識別子と入力されたメッセージとを含むメッセージ登録要求データを支援サーバ２０に送信する。これを受信した支援サーバ２０の管理コンピュ
ータ２１は、このメッセージ登録要求データに含まれるプログラム識別子及びメッセージに関する通知内容データを通知内容データ記憶部３４に記録する。
【００３４】
次に、管理コンピュータ２１は、変更部分の特定を行う（ステップＳ１−３）。具体的には、管理コンピュータ２１は、変更後のプログラムと変更前のプログラムとを、プログラム識別子と登録バージョンとに基づいてそれぞれ抽出し、変更後のプログラムと変更前のプログラムとの差分を調べる。そして、変更後のプログラムと変更前のプログラムとの差分を、変更部分として特定し、プログラム識別子、変更後の登録バージョン及び特定した変更部分に関するデータを変更部分特定データ記憶部３５に登録する。
【００３５】
次に、管理コンピュータ２１は、変更されたプログラムの作成に用いられたプログラム言語を特定する（ステップＳ１−４）。具体的には、プログラム言語毎に用いられる基本の関数を登録した基本言語データを参照しながら、変更されたプログラムのプログラムソースについて、関数を順次検出していき、変更したプログラムのプログラムソースで使用されている基本の関数を抽出する。そして、変更したプログラムのプログラムソースで使用されている基本の関数と、基本言語データに登録された関数とを比較し、この比較の結果に基づいて、変更したプログラムのプログラム言語を特定する。
【００３６】
そして、管理コンピュータ２１は、変更されたプログラムで使用された関数を抽出する（ステップＳ１−５）。具体的には、特定されたプログラム言語についての基本の関数を登録した、特定されたプログラム言語についての基本言語データを参照しつつ、変更されたプログラムのプログラムソースについて、関数を順次検出していき、変更されたプログラムで使用された関数を抽出する。
【００３７】
次に、管理コンピュータ２１は、過去に使用したプログラム言語及び関数を使用関数データ記憶部３１において検索する（ステップＳ１−６）。具体的には、変更されたプログラムで使用されているプログラム言語及び関数に基づいて、使用関数データ記憶部３１の検索を行う。そして、使用関数データ３１０が検索された場合、検索された使用関数データ３１０の難易度を抽出する。一方、使用関数データ３１０が検索されなかった場合、変更したプログラム中のこの関数についての難易度を「３」とする。
【００３８】
そして、管理コンピュータ２１は、検索結果に基づいて、使用関数データ３１０の登録又は更新を行う（ステップＳ１−７）。具体的には、変更部分で使用された関数のうち、使用関数データ３１０を検索できなかったものについては、変更部分で使用された関数についての使用関数データ３１０を新たに登録する。具体的には、変更されたプログラムのプログラム言語及び関数を記録するとともに、難易度として「３」を記録する。また、使用回数として「１」を記録する。なお、難易度指定フラグは記録しない。
【００３９】
一方、変更部分で使用された関数のうち、使用関数データ３１０が検索されたものについては、検索された使用関数データ３１０の使用回数に「１」を加算する。そして、使用回数が基準値に達した場合、難易度指定フラグが記録されていなければ、難易度を１段階引き下げる。例えば、基準値を「１００回」とした場合、使用回数が１００回に達することにより難易度を「３」から「２」に引き下げる。ただし、使用回数が基準値に達した場合であっても、難易度指定フラグが記録されている場合には、難易度の変更は行わない。
【００４０】
このようにして、管理コンピュータ２１は、特定された変更部分で使用されている関数すべてについて、使用関数データ３１０の登録又は更新を行う。
そして、管理コンピュータ２１は、過去に使用したプログラム言語及び関数に基づいて、変更されたプログラムの難易度を算出する（ステップＳ１−８）。本実施形態では、変更されたプログラムで使用された関数について、上記のようにしてそれぞれ特定された難
易度のうち、最も高い難易度を、変更されたプログラムの難易度とする。
【００４１】
次に、管理コンピュータ２１は、ピアレビュー者を特定する（ステップＳ１−９）。具体的には、まず、管理コンピュータ２１は、変更されたプログラムのプログラム言語と難易度とに基づいて、スキルデータ記憶部３２のプログラム言語とピアレビュースキルとにより作業者識別子を抽出する。本実施形態では、変更されたプログラムの難易度と同等のピアレビュースキルを有するピアレビュー者を抽出する。ここで、複数の作業者がピアレビュー者として抽出された場合、管理コンピュータ２１は、ピアレビューを指示する作業者を特定する。本実施形態では、ピアレビューの指示に関する履歴を記録しておき、最後にピアレビューの指示を行ってからの経過時間が最も長い作業者にピアレビューを指示する。なお、抽出された作業者の中にピアレビューの指示を行ったことがない作業者がいる場合は、この作業者に優先的にピアレビューを指示する。また、変更されたプログラムの難易度と同等のピアレビュースキルを有するピアレビュー者が抽出されなかった場合は、変更されたプログラムの難易度より高いピアレビュースキルを有するピアレビュー者を抽出し、この中からピアレビューを指示する作業者を特定する。
【００４２】
さらに、管理コンピュータ２１は、テスト実施者を特定する（ステップＳ１−１０）。具体的には、まず、管理コンピュータ２１は、変更されたプログラムのプログラム言語と難易度とに基づいて、スキルデータ記憶部３２のプログラム言語とテスト実施スキルとにより作業者識別子を抽出する。本実施形態では、変更されたプログラムの難易度と同等のテスト実施スキルを有するテスト実施者を抽出する。ここで、複数の作業者がテスト実施者として抽出された場合、管理コンピュータ２１は、テストの実施を指示する作業者を特定する。本実施形態では、テストの実施の指示に関する履歴を記録しておき、最後にテストの実施の指示を行ってからの経過時間が最も長い作業者にテストの実施を指示する。なお、抽出された作業者の中にテストの実施の指示を行ったことがない作業者がいる場合は、この作業者に優先的にテストの実施を指示する。また、変更されたプログラムの難易度と同等のテスト実施スキルを有するテスト実施者が抽出されなかった場合は、変更されたプログラムの難易度より高いテスト実施スキルを有するテスト実施者を抽出し、この中からテストの実施を指示する作業者を特定する。
【００４３】
次に、管理コンピュータ２１は、ピアレビュー者に変更部分を通知する（ステップＳ１−１１）。具体的には、管理コンピュータ２１は、プログラムの変更部分へのリンク情報を有する電子メールを生成し、特定されたピアレビュー者の電子メールアドレスに送信する。ピアレビュー者は、作業者端末４０によりこの電子メールを受信し、この電子メールが有するリンク情報を用いて、プログラムの変更部分にアクセスする。そして、ピアレビュー者はプログラムの変更部分についてのピアレビューを行う。
【００４４】
そして、管理コンピュータ２１は、テスト実施者にテストが必要な範囲を通知する（ステップＳ１−１２）。具体的には、通知内容データ記憶部３４に登録された通知内容データに基づいて、変更されたプログラム識別子と必要なテスト範囲に関するメッセージとを有する電子メールを生成し、特定されたテスト実施者の電子メールアドレスに送信する。テスト実施者は、作業者端末４０によりこの電子メールを受信し、この電子メールの記載内容に従って、テストを実施する。
【００４５】
以上、本実施形態によれば、以下に示す効果を得ることができる。
・  上記実施形態では、管理コンピュータ２１が、変更されたプログラムのプログラム言語と使用された関数に基づいて、使用関数データ記憶部３１を用いて、変更されたプログラムの難易度を算出する。そして、変更されたプログラムの難易度とスキルデータ記憶部３２のピアレビュースキル又はテスト実施スキルとに基づいて、ピアレビュー又はテストを実施する作業者を特定し、この作業者の電子メールアドレスに、ピアレビュー又はテ
ストの実施を指示する電子メールを送信する。これにより、変更されたプログラムのプログラム言語や使用された関数を用いて、過去に使用されたプログラム言語や関数に関するデータを参照して、変更されたプログラムの難易度を求めることができる。そして、この変更されたプログラムの難易度に基づいて、適切なスキルを有する作業者にピアレビューやテストの実施を指示することができる。
【００４６】
・  上記実施形態では、管理コンピュータ２１が、変更されたプログラムが登録された場合に、先に登録されている変更前のプログラムと、新たにバージョンアップされて登録された変更後のプログラムとを比較して差分を検出することにより、前記変更部分を特定する。このため、ピアレビュー者にプログラムの変更部分を通知することが可能となる。従って、ピアレビュー者は、プログラムの変更部分に集中して、漏れなくレビューを行うことが可能となる。
【００４７】
・  上記実施形態では、管理コンピュータ２１が、変更されたプログラムで使用されたプログラム言語や関数に関する難易度を特定するためのデータを使用関数データ記憶部３１に記録する。これにより、変更されたプログラムで使用されたプログラム言語や関数に関するデータを蓄積していくことができる。そして、このようにして蓄積したデータを参照して、変更されたプログラムの難易度を算出するため、データの蓄積が大きくなるほど、算出するプログラムの難易度の精度を高めることができる。
【００４８】
・  上記実施形態では、管理コンピュータ２１が、ピアレビュー者に、プログラムの変更部分へのリンク情報を有する電子メールを送信する。これにより、変更されたプログラムと変更部分とが特定され、ピアレビュー者が変更部分を確認できる。このため、ピアレビュー者は、変更された範囲について、この範囲に集中して漏れなくピアレビューを行うことが可能となる。
【００４９】
・  上記実施形態では、管理コンピュータ２１が、プログラマにテスト実施者へのメッセージの入力を促し、プログラマにより入力されたメッセージをテスト実施者に通知する。これによれば、プログラム作成者が、テスト実施者に、必要なテスト範囲に関するメッセージを連絡することが可能となる。このため、テストの実施者は、通知されたメッセージに従って、必要な範囲で、漏れなくテストを実施することが可能となる。
【００５０】
・  上記実施形態では、過去に使用された関数について、難易度を作業者等が再設定した場合、管理コンピュータ２１は、使用関数データ３１０の難易度を再設定するとともに、難易度指定フラグを記録する。そして、難易度指定フラグが記録されている場合には、この関数の使用回数に関わらず、再設定された難易度を維持する。これにより、作業者等が難易度の再設定を行った場合には、この関数の使用頻度に関わらず、作業者等により再設定された難易度が用いられる。このため、関数について作業者等により再設定された難易度を用いて、プログラムの難易度の算出を、より精度よく行うことができる。
【００５１】
なお、上記実施形態は、以下の態様に変更してもよい。
○  上記実施形態では、プログラムの変更部分のリンク情報を有する電子メールをピアレビュー者の電子メールアドレスに送信することにより、変更されたプログラムと変更部分とをピアレビュー者に通知した。変更されたプログラムと変更部分とをピアレビュー者に通知する方法はこれに限られない。例えば、変更されたプログラムのプログラム識別子とプログラムソースにおける変更部分の行番号や変更部分の開始位置と終了位置の行番号を指定した電子メールを送信することにより、ピアレビュー者への通知を行ってもよい。
【００５２】
○  上記実施形態では、ピアレビュー者及びテスト実施者に、ピアレビュー、テストの実施の指示をそれぞれ通知したが、ピアレビュー者及びテスト実施者のいずれかについて
のみ、指示を通知するものであってもよい。
【００５３】
○  上記実施形態では、プログラムの変更部分で使用された関数が、既に使用関数データ記憶部３１に記録されている場合、この関数については、使用関数データ３１０を記録せず、既に記録されている使用関数データ３１０について使用回数に「１」を加算した。そして、この使用回数に基づいて、使用関数データ３１０に難易度に関するデータを記録し、これに基づいて変更されたプログラムの難易度を算出した。これに代えて、プログラムの変更部分で使用された関数が既に使用関数データ３１０が記録されている場合でも、使用関数データ３１０の登録を行い、使用回数や難易度の記録を行わないようにしてもよい。そして、同様の関数について蓄積されたデータの量に基づいて、変更されたプログラムで使用されている関数の難易度を算出し、これを用いてプログラムの難易度を算出してもよい。
【００５４】
○  上記実施形態では、スキルレベル及びプログラムの関数についての難易度について、どちらも３段階で設定し、変更されたプログラムで使用された関数の難易度のうち最も高い難易度に相当するスキルレベルのピアレビュー者及びテスト実施者を特定した。これに代えて、スキルレベル及びプログラムの関数についての難易度を、異なる段階で設定してもよい。そして、変更されたプログラムで使用された関数についての難易度を用いて、ピアレビューやテストの実施を指示するピアレビュー者及びテスト実施者のスキルレベルを算出してもよい。
【００５５】
○  上記実施形態では、変更部分で使用されている関数とそれ以外の部分で使用されている関数とを区別せずに、それぞれの関数の難易度を求めて、これらを同等に用いて変更されたプログラムの難易度を算出した。これに代えて、変更部分の関数の難易度に重きをおいて、変更されたプログラムの難易度を算出してもよい。また、管理コンピュータ２１がプログラムを解析して、変更部分に関連が大きい部分を特定し、この部分の関数の難易度に重きをおいて、変更されたプログラムの難易度を算出してもよい。
【００５６】
○  上記実施形態では、プログラムのチェックとして、プログラムのピアレビュー又はプログラムに関するテストを実施する場合を想定したが、プログラムのチェックは、これに限られない。例えば、同僚同士で技術的なチェックを行うピアレビューに限らず、レビューを専門に行う作業者にレビューを指示し、この作業者がレビューを実施してもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態のシステムの概略図。
【図２】使用関数データ記憶部に記録されたデータの説明図。
【図３】スキルデータ記憶部に記録されたデータの説明図。
【図４】本発明の一実施形態の処理手順の説明図。
【図５】作業者端末の表示部に表示された表示画面の説明図。
【図６】作業者端末の表示部に表示された表示画面の説明図。
【符号の説明】
【００５８】
２１…管理コンピュータ、３１…使用関数データ記憶手段としての使用関数データ記憶部、３２…スキルレベルデータ記憶手段としてのスキルデータ記憶部、３４…通知内容記憶手段としての通知内容記憶部、４０…作業者端末。
【図１】
2006172000.tif 000003
【図２】
2006172000.tif 000004
【図３】
2006172000.tif 000005
【図４】
2006172000.tif 000006
【図５】
2006172000.tif 000007
【図６】
2006172000.tif 000008