(57)【要約】【課題】  レビューの実施を徹底させることができるレビュー支援方法を提供することを目的とする。【解決手段】  コンピュータが、作成者の入力に基づき承認者によるレビューが必要な情報を記憶手段に記憶する記憶ステップと、記憶手段に記憶した情報が所定条件に達したか否かを監視する監視ステップと、記憶手段に記憶した情報が所定条件に達すると、作成者の入力を禁止する禁止ステップとを実行することにより、上記課題を解決する。【選択図】  図７
2006277132.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
作成者の入力に基づき承認者によるレビューが必要な情報を記憶手段に記憶する記憶ステップと、
前記記憶手段に記憶した情報が所定条件に達したか否かを監視する監視ステップと、
前記記憶手段に記憶した情報が所定条件に達すると、前記作成者の入力を禁止する禁止ステップと
を実行するレビュー支援方法。
【請求項２】
コンピュータが、
前記記憶手段に記憶した情報が所定条件に達すると、該情報のレビューを行なう承認者を選定する選定ステップと、
前記選定された承認者による前記記憶手段に記憶した情報へのレビューが完了すると、該情報への入力を許可する許可ステップと
を更に実行する請求項１記載のレビュー支援方法。
【請求項３】
前記記憶ステップは、更に、全ての作成者および承認者について、過去に承認者に指摘された情報の内容および作成者に対して指摘した情報の内容をテーブルとして前記記憶手段に記憶し、
前記選定ステップは、前記記憶手段に記憶されている前記テーブルを参照して該記憶手段に記憶した情報のレビューを行なう承認者を選定することを特徴とする請求項２記載のレビュー支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レビュー支援方法に係り、特にコンピュータにおいて実行される情報のレビューを支援するレビュー支援方法に関する。
【背景技術】
【０００２】
作成者により入力された情報を承認者がレビューする例としては、例えばプログラマにより入力されたソースコード（以下、ソースという）をレビュアがレビューするソースレビュー（以下、レビューという）がある。レビューとは、プログラマがコーディングを行った段階で、そのソースをレビュアが見直す作業である。
【０００３】
近年、このようなソースのレビューは、コンピュータ上で実行されるレビュー支援プログラムを用いて行われている。例えば特許文献１には、レビューすべき部分を明示する形でソースを表示してレビューを支援する内容が記載されている。ソースのレビューはプログラム開発工程における単体テスト時のプログラム品質を向上させ、結合テスト時に余計な作業を発生させない為に効果的である。
【特許文献１】特開平１１−１３４１８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ソースのレビューはレビュアの選定が面倒または多忙等の理由により実施が徹底されていなかった。ソースのレビューが実施されないと、プログラム開発工程における単体テスト時のプログラム品質は確保されず、結合テスト以降に余計な作業が発生してしまうという問題があった。
【０００５】
本発明は、上記の点に鑑みなされたもので、レビューの実施を徹底させることができるレビュー支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、コンピュータが、作成者の入力に基づき承認者によるレビューが必要な情報を記憶手段に記憶する記憶ステップと、前記記憶手段に記憶した情報が所定条件に達したか否かを監視する監視ステップと、前記記憶手段に記憶した情報が所定条件に達すると、前記作成者の入力を禁止する禁止ステップとを実行することを特徴とする。
【０００７】
本発明では、作成者により入力された承認者によるレビューが必要な情報が所定条件に達すると、作成者による情報の入力が禁止される。即ち、作成者は情報の入力ができなくなるため、情報の作成を進めることができなくなる。例えば承認者によるレビューが完了した時点で情報の入力を再び許可するようにすれば、レビューは迅速かつ確実に行われることになる。
【発明の効果】
【０００８】
上述の如く、本発明によれば、レビューの実施を徹底させることができるレビュー支援方法を提供可能である。
【発明を実施するための最良の形態】
【０００９】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では作成者により入力された情報を承認者がレビューする例として、プログラマにより入力されたソースをレビュアがレビューする例について説明するが、ソースのレビューに限定するものではない。本発明は、作成者により入力された情報を承認者がレビューする作業を支援する様々なプログラム、装置，機器などに適用可能である。
【００１０】
図１は本発明のレビュー支援方法の各ステップを実行するコンピュータのハードウェア構成図である。図１のコンピュータは、それぞれバスで相互に接続されている入力装置１０，出力装置１１，ドライブ装置１２，補助記憶装置１３，メモリ装置１４，演算処理装置１５及びインターフェース装置１６を有するように構成される。なお、コンピュータを構成する各種デバイスは１つの筐体に収容してもよいし、複数の筐体に分散して収容するようにしてもよい。
【００１１】
入力装置１０はキーボード，マウス，タブレットなどの入力機器で構成され、様々な操作指示や情報（データ，ソースなど）を入力するために用いられる。出力装置１１はディスプレイやプリンタなどの出力機器で構成され、操作に必要な各種ウインドウや情報等を出力するために用いられる。インターフェース装置１６は、ネットワーク等に接続する為のインターフェースであり、例えばモデム，ルータ，ＬＡＮカード等で構成される。
【００１２】
コンピュータを制御するレビュー支援方法の各ステップをコンピュータに実行させるレビュー支援プログラムは、ＣＤ−ＲＯＭ等の記録媒体１７によって提供される。レビュー支援プログラムを記録した記録媒体１７は、ドライブ装置１２にセットされる。レビュー支援プログラムは、記録媒体１７からドライブ装置１２を介して補助記憶装置１３にインストールされる。
【００１３】
なお、レビュー支援プログラムを記録した記録媒体１７は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク（ＭＯ）等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、又はＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることが可能である。
【００１４】
また、レビュー支援プログラムはインターフェース装置１６を介して接続される他のコンピュータの記録媒体等に記録されているものも含まれる。他のコンピュータの記録媒体等に記録されているレビュー支援プログラムはインターフェース装置１６を介してダウンロードされて補助記憶装置１３にインストールされる。補助記憶装置１３はインストールされたレビュー支援プログラムと、そのレビュー支援プログラムの処理に必要な各種ファイル等を格納する。
【００１５】
メモリ装置１４は、起動時に補助記憶装置１３からレビュー支援プログラムを読み出して格納する。演算処理装置１５は、メモリ装置１４に格納されたレビュー支援プログラムに従ってソースのレビューに必要な一部又は全部の機能を実現することができる。
【００１６】
レビュー支援プログラムを実行するコンピュータは、ネットワークに接続せず、単独で利用する形態（いわゆるスタンドアローン）としてもよいし、図２のようにネットワークに接続して利用する形態としてもよい。図２は、レビュー支援方法の各ステップを実行するコンピュータをネットワークに接続して利用するシステムの一実施例の構成図である。
【００１７】
図２のシステムは、レビュー支援方法の各ステップを実行するサーバ装置２０，１つ以上のクライアント２１ａ〜２１ｎが、インターネットやＬＡＮ等の所定のネットワーク２３を介して接続された構成である。なお、いずれかのクライアントを示す場合は、単に参照符号２１を用いる。図２のシステムでは、プログラマとレビュアとが別々のクライアント２１を操作することができる。なお、レビュー支援方法の各ステップを実行するコンピュータをスタンドアローンで利用する場合はプログラマとレビュアとが同じコンピュータを操作する。
【００１８】
一方、図２のシステムの場合、プログラマは、必要に応じてプログラマ用クライアント２１を操作してサーバ装置２０に接続し、ソースの作成を行なう。サーバ装置２０は、プログラマがログインしてきたときにソースの作成の為の各種機能をクライアント２１に提供する。
【００１９】
レビュアは、必要に応じてクライアント２１を操作してサーバ装置２０に接続し、レビューを行う。サーバ装置２０は、レビュアがログインしてきたときにレビューを行なう為の各種機能をクライアント２１に提供する。
【００２０】
以下、レビュー支援プログラムを実行するコンピュータをスタンドアローンで利用する例を説明するが、レビュー支援方法の各ステップを実行するコンピュータをネットワークに接続して利用する場合も同様である。図２のシステムは、クライアント・サーバシステムを利用して、レビュー支援方法の各ステップを実行する例である。
【００２１】
レビュー支援方法の各ステップを実行するコンピュータは、例えば図３に示すような各種機能を実現する。図３は、レビュー支援方法の各ステップを実行するコンピュータの一例の機能図である。レビュー支援方法の各ステップを実行するコンピュータは、認証機能３１，ソース管理機能３２，テーブル管理機能３３，コーディング機能３４，レビュー機能３５，ソース管理ＤＢ３６，ミスカテゴリテーブル３７，ミス発見カテゴリテーブル３８およびミス統計情報テーブル３９を有する構成である。図３に示した各種機能の動作は、後述する。
【００２２】
図４は、レビュー支援方法の各ステップを実行するコンピュータの処理手順の一例を表した全体フローチャートである。ステップＳ１に進み、ソース管理機能３２はソース管理ＤＢ３６に記憶されているソースを読み出して図５のようなソース管理画面１００を出力装置１１に表示する。
【００２３】
図５は、ソース管理画面の一例のイメージ図である。ソース管理画面１００は、画面左部分１０１に例えば一のプロジェクトが管理しているソースのファイル一覧、画面右部分１０２にファイル一覧で選択されているソースの内容が表示されている。プログラマおよびレビュアは、コーディングまたはレビューするソースを画面左部分１０１のファイル一覧から例えば右クリックにより選択する。
【００２４】
ステップＳ２に進み、ソース管理機能３２は画面左部分１０１のファイル一覧に含まれるソースが右クリックされたか否かを判定する。画面左部分１０１のファイル一覧に含まれるソースが右クリックされなければ（Ｓ２においてＮＯ）、ソース管理機能３２はステップＳ１，Ｓ２の処理を繰り返す。画面左部分１０１のファイル一覧に含まれるソースが右クリックされれば（Ｓ２においてＹＥＳ）、ソース管理機能３２はステップＳ３に進み、図６のような右クリックメニュー画面１０３を出力装置１１に表示する。
【００２５】
図６は、右クリックメニュー画面の一例のイメージ図である。右クリックメニュー画面１０３では、プログラマまたはレビュアが、画面左部分１０１のファイル一覧から選択したソースのコーディングまたはレビューを指定できる。
【００２６】
ステップＳ４に進み、ソース管理機能３２は右クリックメニュー画面１０３からコーディングが指定されたか否かを判定する。コーディングが指定されたと判定すると（Ｓ４においてＹＥＳ）、ソース管理機能３２はステップＳ５に進み、後述するコーディング処理を行ったあと、ステップＳ１に戻る。
【００２７】
一方、コーディングが指定されていないと判定すると（Ｓ４においてＮＯ）、ソース管理機能３２はステップＳ６に進み、右クリックメニュー画面１０３からレビューが指定されたか否かを判定する。レビューが指定されたと判定すると（Ｓ６においてＹＥＳ）、ソース管理機能３２はステップＳ７に進み、後述するレビュー処理を行ったあと、ステップＳ１に戻る。
【００２８】
一方、レビューが指定されていないと判定すると（Ｓ６においてＮＯ）、ソース管理機能３２はステップＳ８に進み、終了か否かを判定する。終了でないと判定すると（Ｓ８においてＮＯ）、ソース管理機能３２はステップＳ１に戻る。終了であると判定すると（Ｓ８においてＹＥＳ）、ソース管理機能３２は図４に示す全体フローチャートを終了する。
【００２９】
次に、ステップＳ５のコーディング処理について説明する。図７は、コーディング処理の手順を表したフローチャートである。ステップＳ１１に進み、ソース管理機能３２はファイル一覧から選択されたソースがレビュー設定済みか否かを判定する。レビュー設定済みでないと判定すると（Ｓ１１においてＮＯ）、ソース管理機能３２はステップＳ１２に進み、図８に示すチェックアウト処理を行う。
【００３０】
図８は、チェックアウト処理の手順を表したフローチャートである。ステップＳ３１に進み、ソース管理機能３２はソース管理ＤＢ３６より対象となるソースを取得する。ステップＳ３２に進み、ソース管理機能３２はステップＳ３１で取得したソースが同時編集不可か否かを判定する。同時編集不可であると判定すると（Ｓ３２においてＹＥＳ）、ソース管理機能３２はステップＳ３３に進み、ステップＳ３１で取得したソースがロックされているか否かを判定する。ここで、ソースがロックされている状態とは、一人の編集しか認めないソースであるときに、そのソースが他のプログラマに割り当てられている状態を表している。
【００３１】
ロックされていないと判定すると（Ｓ３３においてＮＯ）、ソース管理機能３２はステップＳ３４に進み、ステップＳ３１で取得したソースをロックする。そして、ソース管理機能３２はステップＳ３６に進む。なお、同時編集不可でないと判定したときも（Ｓ３２においてＮＯ）、ソース管理機能３２はステップＳ３６に進む。ここで、同時編集不可でないソースとは、複数人の協働編集を認めるソースをいう。
【００３２】
ステップＳ３６では、ソース管理機能３２が、ソース管理ＤＢ３６に利用者ＩＤと利用中である旨を記憶することで、ソースを現在のプログラマに割り当てる。なお、ロックされていると判定すると（Ｓ３３においてＹＥＳ）、ソース管理機能３２はステップＳ３５に進み、ステップＳ３１で取得したソースが使用中であることを出力装置１１に表示して警告する。そして、ソース管理機能３２は図４のステップＳ１に戻る。
【００３３】
ステップＳ３１で取得したソースが割り当てられると、ソース管理機能３２は図７のステップＳ１３に進み、コーティング機能３４に処理の開始を指示する。コーディング機能３４は、図９のようなコーディング画面１１０を出力装置１１に表示する。
【００３４】
図９は、コーディング画面の一例のイメージ図である。コーディング画面１１０ではプログラマにより入力された行のうちレビューが未完の行が視認できるように、レビュー待ち色（例えば黄色）で塗りつぶされる。図９のコーディング画面１１０では、レビュー待ち色で塗りつぶされた部分を点線で囲っている。なお、実際のコーディング画面１１０では、文字背景に対してレビュー待ち色が塗りつぶされるため、文字の閲覧が可能である。
【００３５】
コーディング機能３４は、コーディング画面１１０に対するプログラマからの入力を受け付ける。ステップＳ１４に進み、コーディング機能３４はプログラマからの入力がチェックイン指示であるか否かを判定する。
【００３６】
チェックイン指示でなければ（Ｓ１４においてＮＯ）、コーディング機能３４はステップＳ１５に進み、プログラマからの入力が新規編集行であるか否かを判定する。プログラマからの入力が新規編集行であれば（Ｓ１５においてＹＥＳ）、コーディング機能３４はステップＳ１６に進む。
【００３７】
ステップＳ１６では、コーディング機能３４が、編集行数をカウントアップする。ステップＳ１７に進み、コーディング機能３４は残行数をカウントダウンする。ステップＳ１８に進み、コーディング機能３４はレビュー条件が満了したか否かを判定する。ステップＳ１８に設定されているレビュー条件は、指定行数まで編集したこと及び残行数の警告に応答したことである。
【００３８】
レビュー条件が満了していないと判定すると（Ｓ１８においてＮＯ）、コーディング機能３４はステップＳ２１に進み、警告すべき警告残行数であるか否かを判定する。警告残行数でなければ（Ｓ２１においてＮＯ）、コーディング機能３４はステップＳ１３に戻り、再びコーディング画面１１０に対するプログラマからの入力を受け付ける。
【００３９】
警告残行数であれば（Ｓ２１においてＹＥＳ）、コーディング機能３４はステップＳ２２に進み、図１０のような残行数警告画面１２０を出力装置１１に表示する。図１０は、残行数警告画面の一例のイメージ図である。図１０の残行数警告画面１２０は、残行数が５行となったときにプログラマに指定行数間近である旨を知らせるポップアップメッセージである。なお、指定行数の何行前に残行数警告画面１２０を出力装置１１に表示するかはカスタマイズ可能である。
【００４０】
ステップＳ２３に進み、コーディング機能３４は図１０の残行数警告画面１２０の確認ボタンが押下されたか否かを判定する。確認ボタンが押下されたと判定すると（Ｓ２３においてＹＥＳ）、コーディング機能３４はステップＳ１３に戻り、再びコーディング画面１１０に対するプログラマからの入力を受け付ける。確認ボタンが押下されていないと判定すると（Ｓ２３においてＮＯ）、コーディング機能３４はステップＳ２２に戻る。
【００４１】
一方、レビュー条件が満了していると判定すると（Ｓ１８においてＮＯ）、コーディング機能３４はステップＳ１９に進み、図１１に示すレビュア設定処理を行う。図１１は、レビュア設定処理の手順を表したフローチャートである。ステップＳ４１に進み、コーディング機能３４はレビュー機能３５にレビュア設定処理の開始を指示する。
【００４２】
ステップＳ４１に進み、レビュー機能３５はテーブル管理機能３３に対し、プログラマの利用者ＩＤをキー情報としたミスカテゴリテーブル３７の検索を依頼する。図１２はミスカテゴリテーブルの一例の構成図である。図１２のミスカテゴリテーブル３７は、プログラマ名，利用者ＩＤ，ミスのカテゴリ，ミスの回数および最後のミス年月日から成るレコードにより構成されている。ミスカテゴリテーブル３７は、プログラマが犯したミスをカテゴリ毎にカウントするものである。
【００４３】
ステップＳ４２に進み、レビュー機能３５はテーブル管理機能３３からプログラマの利用者ＩＤをキー情報としたミスカテゴリテーブル３７の検索結果として、そのプログラマが過去に犯したミスの回数をミスのカテゴリ毎に取得できる。また、レビュー機能３５はテーブル管理機能３３から、そのプログラマのレビュー回数を取得する。
【００４４】
ステップＳ４３に進み、レビュー機能３５は最もミスの多いカテゴリのミスの回数とレビュー回数とで、そのプログラマのミス率を算出する。ステップＳ４３で算出されたミス率は、他のプログラマのミス率との比較により「ミス率が高い」，「ミス率が中位」，「ミス率が低い」に分けることができる。
【００４５】
ステップＳ４４に進み、レビュー機能３５はテーブル管理機能３３に対し、最もミスの多いカテゴリの発見回数をキー情報としたミス発見カテゴリテーブル３８のソートを依頼する。図１３は、ミス発見カテゴリテーブルの一例の構成図である。図１３のミス発見カテゴリテーブル３８は、レビュア名，発見ミスカテゴリ，発見回数，最後の発見年月日から成るレコードにより構成されている。ミス発見カテゴリテーブル３８は、レビュアが発見したミスをカテゴリ毎にカウントするものである。
【００４６】
ステップＳ４５に進み、レビュー機能３５は、そのプログラマのミス率が高いか否かを判定する。ミス率が高いと判定すると（Ｓ４５においてＹＥＳ）、レビュー機能３５はステップＳ４６に進み、そのプログラマが最も犯しやすいミスのカテゴリの発見回数の多い上級レビュアを割り当てたあと、ステップＳ５１に進む。一方、ミス率が高くないと判定すると（Ｓ４５においてＮＯ）、レビュー機能３５はステップＳ４７に進む。
【００４７】
ステップＳ４７に進み、レビュー機能３５は、そのプログラマのミス率が中位か否かを判定する。ミス率が中位と判定すると（Ｓ４７においてＹＥＳ）、レビュー機能３５はステップＳ４８に進み、そのプログラマが最も犯しやすいミスのカテゴリの発見回数の中位の中級レビュアを割り当てたあと、ステップＳ５１に進む。一方、ミス率が中位でないと判定すると（Ｓ４７においてＮＯ）、レビュー機能３５はステップＳ５０に進む。
【００４８】
ステップＳ５０に進み、レビュー機能３５は、そのプログラマのミス率が高くも中位でもなかったので、そのプログラマが最も犯しやすいミスのカテゴリの発見回数の少ない初級レビュアを割り当てたあと、ステップＳ５１に進む。
【００４９】
ステップＳ５１に進み、レビュー機能３５はレビューの対象となるソースにレビューを設定すると共に、ステップＳ４６，Ｓ４８，Ｓ５０で割り当てたレビュアの利用者ＩＤを例えばソース管理ＤＢ３６に記憶させる。図１１のレビュア設定処理では、プログラマが過去に起こしたミスのカテゴリ毎の回数とレビュアが発見したミスのカテゴリ毎の発見回数とに応じて自動的にレビュアを割り当て可能である。
【００５０】
なお、ステップＳ１９のレビュア設定処理は、必ずしも自動的にレビュアを割り当てなくてもよく、プロジェクト管理者（リーダ）がレビュアを選定する際に、図１４のようなレビュア候補表示画面１３０を出力装置１１に表示するようにしてもよい。
【００５１】
図１４は、レビュア候補表示画面の一例のイメージ図である。図１４のレビュア候補表示画面１３０は、そのプログラマのミスの特徴と、選定したレビュア候補のミス発見率の特徴とを情報として含んでいる。なお、プログラマのミスの特徴と選定したレビュア候補のミス発見率の特徴とは、ミスカテゴリテーブル３７およびミス発見カテゴリテーブル３８から得ることができる。プロジェクト管理者は、レビュア候補表示画面１３０に含まれる情報を参考に、そのプログラマに適したレビュアを容易に選定できる。
【００５２】
ステップＳ１９のレビュア設定処理が終了すると、コーディング機能３４はステップＳ２０に進み、図１５に示すチェックイン処理を行う。なお、ステップＳ１４においてチェックイン指示であると判定した場合も（Ｓ１４においてＹＥＳ）、コーディング機能３４はステップＳ２０に進み、図１５に示すチェックイン処理を行う。
【００５３】
図１５は、チェックイン処理の手順を表したフローチャートである。ステップＳ６１に進み、コーディング機能３４はソース管理機能３２に依頼して、コーディング処理の内容をソース管理ＤＢ３６の対象となるソースに反映させる。
【００５４】
ステップＳ６２に進み、ソース管理機能３２は対象となるソースが同時編集不可か否かを判定する。同時編集不可であると判定すると（Ｓ６２においてＹＥＳ）、ソース管理機能３２はステップＳ６３に進み、対象となるソースのロック解除を行なう。同時編集不可でない判定すると（Ｓ６２においてＮＯ）、ソース管理機能３２はステップＳ６４に進み、コンフリクト処理を行う。ここでコンフリクト処理とは、複数のプログラマによる同時編集時に編集箇所の整合性を取る処理であって、異なるプログラマから同一箇所の編集が行われていないかチェックするものであるが、従来技術であって、本願の本質ではないため詳述しない。
【００５５】
ステップＳ６３，Ｓ６４に続いてステップＳ６５に進み、ソース管理機能３２はソース管理ＤＢ３６の対象となるソースに、コーディング処理の内容を反映させたプログラマの利用者ＩＤを記憶する。
【００５６】
ステップＳ２０のチェックイン処理が終了すると、コーディング機能３４はコーディング処理を終了する。なお、ステップＳ１１において、ソース管理機能３２はレビュー設定済みであると判定すると（Ｓ１１においてＹＥＳ）、ステップＳ２４に進み、レビュー待ち警告の画面を出力装置１１に表示したあと、コーディング処理を終了する。
【００５７】
即ち、プログラマによる編集行数がレビュー条件を満了したソースは、レビュー設定済みとなるため、後述するレビュー処理によりレビュー設定解除が行われるまで、コーディング処理が禁止される。したがって、プログラマはレビュアによるレビューを迅速かつ確実に行なうようになる。
【００５８】
次に、ステップＳ７のレビュー処理について説明する。図１６，図１７は、レビュー処理の手順を表したフローチャートである。ステップＳ７１に進み、ソース管理機能３２はファイル一覧から選択されたソースがレビュー対象であるか否かを判定する。レビュー対象であれば（Ｓ７１においてＹＥＳ）、ソース管理機能３２は認証機能３１を利用してレビュアの利用者ＩＤを取得し、レビューの対象であるソースに割り当てたレビュアの利用者ＩＤと合致するか否かを判定する。
【００５９】
レビューの対象であるソースに割り当てたレビュアの利用者ＩＤと合致すれば（Ｓ７２においてＹＥＳ）、ソース管理機能３２はステップＳ７３に進み、図８を参照しつつ前述したチェックアウト処理を行う。ファイル一覧から選択されたソースがレビュアに割り当てられると、ソース管理機能３２はステップＳ７４に進み、レビュー機能３５にレビュー処理の開始を指示する。レビュー機能３５は、図１８に示すようなレビュー画面１４０を出力装置１１に表示する。
【００６０】
図１８は、レビュー画面の一例のイメージ図である。レビュー画面１４０はレビュー完了の行が視認できるように、承認色またはミス回数対応色で塗りつぶされる。図１８のレビュー画面１４０では、承認色またはミス回数対応色で塗りつぶされた部分を点線で囲って表している。なお、実際のレビュー画面１４０では、文字背景に対して承認色（例えば青色）またはミス回数対応色（例えば赤色）が塗りつぶされるため、文字の閲覧が可能である。
【００６１】
ここで、承認色とはレビューによりレビュアが正常だと確認したソースの行を塗りつぶす色である。ミス回数対応色とは、レビューによりレビュアが異常を確認したソースの行を塗りつぶす、ミスの回数に応じて変化する色である。レビュー機能３５は、レビュー画面１４０に対するレビュアからの入力を受け付ける。
【００６２】
ステップＳ７５に進み、レビュー機能３５はレビュアからの入力がチェックイン指示であるか否かを判定する。チェックイン指示でなければ（Ｓ７５においてＮＯ）、レビュー機能３５はステップＳ７６に進み、レビュアからの入力がミスの指摘であるか否かを判定する。レビュアからの入力がミスの指摘であれば（Ｓ７６においてＹＥＳ）、レビュー機能３５はステップＳ７７に進む。
【００６３】
ステップＳ７７では、レビュー機能３５が、レビュアからのミスの指摘をミスカテゴリテーブル３７，ミス発見カテゴリテーブル３８，図１９に示すミス統計情報テーブル３９に反映するように、テーブル管理機能３３に依頼する。テーブル管理機能３３は、ミスカテゴリテーブル３７，ミス発見カテゴリテーブル３８及びミス統計情報テーブル３９の該当するカテゴリのミスの回数，発見回数または発生回数をカウントアップする。
【００６４】
図１９は、ミス統計情報テーブルの一例の構成図である。図１９のミス統計情報テーブル３９は、ミスのカテゴリ，発生回数，最後の発見年月日から成るレコードにより構成されている。ミス統計情報テーブル３９は、個々のプログラマが犯したミスを集計し、プログラマ全体の統計情報としてカテゴリ毎にカウントするものである。
【００６５】
ステップＳ７８に進み、レビュー機能３５は該当する行にミス回数対応色を設定してステップＳ７９に進み、ソースの全ての行が着色されたか否かを判定する。ソースの全ての行が着色されていなければ（Ｓ７９においてＮＯ）、レビュー機能３５はステップＳ７４に戻り、レビュアからの次の入力を待ち受ける。
【００６６】
ステップＳ７６において、レビュアからの入力がミスの指摘でなければ（Ｓ７６においてＮＯ）、レビュー機能３５はステップＳ８２に進む。ステップＳ８２に進み、レビュー機能３５はレビュアからの入力が承認であるか否かを判定する。レビュアからの入力が承認であれば（Ｓ８２においてＹＥＳ）、レビュー機能３５はステップＳ８３に進み、該当する行に承認色を設定してステップＳ７９に進む。
【００６７】
ステップＳ７９に進み、ビュー機能３５はソースの全ての行が着色されたか否かを判定する。なお、レビュアからの入力が承認でなければ（Ｓ８２においてＮＯ）、レビュー機能３５はステップＳ７４に戻り、レビュアからの次の入力を待ち受ける。
【００６８】
ステップＳ７９において、ソースの全ての行が着色されていれば（Ｓ７９においてＹＥＳ）、レビュー機能３５はステップＳ８０に進み、ミスカテゴリテーブル３７及びミス発見カテゴリテーブル３８のレビュー回数（図示せず）をカウントアップさせる。ステップＳ８１に進み、レビュー機能３５はレビューの対象であるソースのレビュー設定を解除したあとステップＳ８５に進む。なお、ステップＳ７５において、チェックイン指示であった場合も（Ｓ７５においてＹＥＳ）、レビュー機能３５はステップＳ８５に進む。
【００６９】
ステップＳ８５に進み、レビュー機能３５はソースをソース管理ＤＢ３６に反映させるようにチェックイン警告画面を出力装置１１に表示するチェックイン警告処理を行う。ステップＳ８６に進み、レビュー機能３５はチェックイン警告画面の確認ボタンが押下されたか否かを判定する。
【００７０】
確認ボタンが押下されたと判定すると（Ｓ８６においてＹＥＳ）、レビュー機能３５はステップＳ８７に進み、図１５を参照しつつ前述したチェックイン処理を行ったあと、処理を終了する。なお、レビュー機能３５は確認ボタンが押下されなければ（Ｓ８６においてＮＯ）、ステップＳ８５に戻る。
【００７１】
ステップＳ７１において、ファイル一覧から選択されたソースがレビュー対象でないと判定されると（Ｓ７１においてＮＯ）、ソース管理機能３２はステップＳ８４に進む。ステップＳ７２において、レビューの対象であるソースに割り当てたレビュアの利用者ＩＤと合致しなければ（Ｓ７２においてＮＯ）、ソース管理機能３２はステップＳ８４に進む。
【００７２】
ステップＳ８４に進み、ソース管理機能３２はレビュー機能３５にレビュー対象外警告画面を出力装置１１に表示するレビュー対象外警告処理を依頼する。レビュー対象外警告画面にはファイル一覧から選択されたソースをレビューできない旨の情報が含まれる。ステップＳ８４のレビュー対象外警告処理のあと、レビュー機能３５は処理を終了する。
【００７３】
なお、レビュー機能３５はミスカテゴリテーブル３７，ミス統計情報テーブル３９を利用することにより、そのプログラマ自身が過去に犯したミスや、他のプログラマも含めて統計的に犯しやすいミスに合致する行を色や点滅などにより示すこともできる。そのプログラマ自身が過去に犯したミスや、他のプログラマも含めて統計的に犯しやすいミスに合致する行を色や点滅などにより示すことにより、レビュアはミスを発見し易くなる。
【００７４】
本発明のレビュー支援方法の各ステップを実行するコンピュータは、プログラマによる編集行数が指定行数に達すると、レビュアによるレビューが行われるまでコーディング処理を進めることができなくなる。その結果、本発明によればレビュー間隔の短縮、レビュー回数の増加が期待できる。
【００７５】
例えばレビュー間隔の延長は、プログラマが犯したミスをレビュアが発見するまでの時間を延長してしまう。ソースにミスがあると手戻り作業が発生するが、手戻り作業量はミスが発見されるまでの時間に比例して大きくなる。また、ミスがプログラム全体に影響を及ぼすような重要性の高いものである場合、手戻り作業量は更に大きくなる。
【００７６】
本発明によればレビュー間隔を短縮できるので、プログラマが犯したミスはレビュアにより早期に発見されやすい。したがって、ミスがプログラム全体に影響を及ぼすような重要性の高いものであっても、手戻り作業量は従来よりも小さくなる。
【００７７】
また、レビュー回数の減少は、レビューによるグループ内の相互コミュニケーションが不足して、グループ作業において重要な情報の共有が消極的なものとなってしまう。
【００７８】
本発明によればレビュー回数を増加できるので、グループ内の相互コミュニケーションが密となり、グループ作業において重要な情報の共有が積極的なものとなる。また、性格や人格を考慮してプログラマに合ったレビュアを選定することにより、グループ内の相互コミュニケーションは更に向上することが見込まれる。
【００７９】
さらに、レビュー回数の減少は、レビューによるグループ内の相互コミュニケーションが不足して、知識やノウハウの伝搬が遅くなり、上級プログラマから初級プログラマへの知識やノウハウの伝搬がされずらい。
【００８０】
本発明によればレビュー回数を増加できるので、上級プログラマから初級プログラマへの知識やノウハウの伝搬がスムーズに行われるようになる。初級プログラマは、新しい知識やノウハウを獲得しやすくなる。上級プログラマは、基本的な知識やノウハウを再確認することができる。
【００８１】
なお、プログラマとレビュアとの組み合わせは、作成するモジュールの重要度や学習効果を考慮して決定できる。例えば重要度の高いモジュールはミスが許されないため、上級プログラマ同士でプログラマとレビュアとを選定する。それほど重要でないモジュールは教育のため、初級プログラマと上級プログラマとでプログラマとレビュアとを選定することができる。また、必要などうか微妙なモジュールは初級プログラマ同士でプログラマとレビュアとを選定することができる。
【００８２】
したがって、本発明によれば、プログラム開発工程において、レビュー必須の作業環境を整えることができる。この結果、単体テスト時ではプログラム品質を確保して、品質向上が実現できる。また、結合テスト時では手戻り作業の発生を防ぎ、作業期間の短縮が実現できる。
（実施例のバリエーション）
本実施例では、図７のステップＳ１８等に示すように、レビュー条件として行数を利用しているが、文字数や命令数であってもよい。また、本発明のレビュー支援方法の各ステップを実行するコンピュータは、指紋認証機器などの認証機器を接続することにより、プログラマ及びレビュアの認証を行なうようにしてもよい。
【００８３】
指紋認証機器が接続された本発明のレビュー支援方法の各ステップを実行するコンピュータではプログラマ及びレビュアのなりすましを防ぐと共に、例えば指紋認証機器にプログラマ及びレビュアが同時に触れていないとレビューが行えないようにすることで、レビューが確実に行われたかを正確に把握できる。
【００８４】
また、図７のステップＳ１９等に示すように、本実施例ではプログラマが過去に起こしたミスのカテゴリ毎の回数とレビュアが発見したミスのカテゴリ毎の発見回数とに応じてレビュアまたはレビュア候補を選定しているが、ランダムに選定してもよい。
【００８５】
なお、本発明のレビュー支援方法は、コーディング処理用のエディタの一機能として実現してもよいし、コンパイラの機能として実現してもよいし、コンパイラと連携して動作するチェッカの機能として実現してもよいし、エディタ，コンパイラ又はチェッカとは別のツールの機能として実現してもよい。
【００８６】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
コンピュータが、
作成者の入力に基づき承認者によるレビューが必要な情報を記憶手段に記憶する記憶ステップと、
前記記憶手段に記憶した情報が所定条件に達したか否かを監視する監視ステップと、
前記記憶手段に記憶した情報が所定条件に達すると、前記作成者の入力を禁止する禁止ステップと
を実行するレビュー支援方法。
（付記２）
前記コンピュータが、
前記記憶手段に記憶した情報が所定条件に達すると、該情報のレビューを行なう承認者を選定する選定ステップと、
前記選定された承認者による前記記憶手段に記憶した情報へのレビューが完了すると、該情報への入力を許可する許可ステップと
を更に実行する付記１記載のレビュー支援方法。
（付記３）
前記記憶ステップは、更に、全ての作成者および承認者について、過去に承認者に指摘された情報の内容および作成者に対して指摘した情報の内容をテーブルとして前記記憶手段に記憶し、
前記選定ステップは、前記記憶手段に記憶されている前記テーブルを参照して該記憶手段に記憶した情報のレビューを行なう承認者を選定することを特徴とする付記２記載のレビュー支援方法。
（付記４）
前記コンピュータが、
前記承認者からレビュー要求を受け付けると前記記憶手段に記憶されている前記テーブルを参照して、前記情報のうち統計的に指摘され易い情報の内容を視覚的に異なるように出力する参考出力ステップ
を更に実行する付記２記載のレビュー支援方法。
（付記５）
前記記憶ステップは、更に、前記情報のうちレビューが未完の部分とレビューが完了した部分とを識別可能に前記記憶手段に記憶し、
前記承認者からレビュー要求を受け付けると、前記レビューが未完の部分を視覚的に異なるように出力する明示出力ステップ
を更に実行する付記１乃至４何れか一項記載のレビュー支援方法。
（付記６）
前記コンピュータが、
前記選定された承認者によるレビューが完了したあと、前記作成者から入力要求を受け付けると前記記憶手段に記憶されている前記テーブルを参照して、前記承認者により指摘された情報の内容を前記指摘の頻度に応じて視覚的に異なるように出力するレビュー結果出力ステップ
を更に実行する付記１乃至４何れか一項記載のレビュー支援方法。
（付記７）
前記監視ステップは、作成者により入力された情報のうち承認者によるレビューが未完の部分の情報量が所定の情報量に達したか否かを監視する
ことを特徴とする付記１乃至６何れか一項記載のレビュー支援方法。
【００８７】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明のレビュー支援プログラムを実行するコンピュータのハードウェア構成図である。
【図２】レビュー支援プログラムを実行するコンピュータをネットワークに接続して利用するシステムの一実施例の構成図である。
【図３】レビュー支援プログラムを実行するコンピュータの一例の機能図である。
【図４】レビュー支援プログラムを実行するコンピュータの処理手順の一例を表した全体フローチャートである。
【図５】ソース管理画面の一例のイメージ図である。
【図６】右クリックメニュー画面の一例のイメージ図である。
【図７】コーディング処理の手順を表したフローチャートである。
【図８】チェックアウト処理の手順を表したフローチャートである。
【図９】コーディング画面の一例のイメージ図である。
【図１０】残行数警告画面の一例のイメージ図である。
【図１１】レビュア設定処理の手順を表したフローチャートである。
【図１２】ミスカテゴリテーブルの一例の構成図である。
【図１３】ミス発見カテゴリテーブルの一例の構成図である。
【図１４】レビュア候補表示画面の一例のイメージ図である。
【図１５】チェックイン処理の手順を表したフローチャートである。
【図１６】レビュー処理の手順を表したフローチャート（１／２）である。
【図１７】レビュー処理の手順を表したフローチャート（２／２）である。
【図１８】レビュー画面の一例のイメージ図である。
【図１９】ミス統計情報テーブルの一例の構成図である。
【符号の説明】
【００８９】
１０    入力装置
１１    出力装置
１２    ドライブ装置
１３    補助記憶装置
１４    メモリ装置
１５    演算処理装置
１６    インターフェース装置
１７    記録媒体
２０    サーバ装置
２１ａ〜２１ｎ    クライアント
２３    ネットワーク
３１    認証機能
３２    ソース管理機能
３３    テーブル管理機能
３４    コーディング機能
３５    レビュー機能
３６    ソース管理ＤＢ
３７    ミスカテゴリテーブル
３８    ミス発見カテゴリテーブル
３９    ミス統計情報テーブル
【図１】
2006277132.tif 000003
【図２】
2006277132.tif 000004
【図３】
2006277132.tif 000005
【図４】
2006277132.tif 000006
【図５】
2006277132.tif 000007
【図６】
2006277132.tif 000008
【図７】
2006277132.tif 000009
【図８】
2006277132.tif 000010
【図９】
2006277132.tif 000011
【図１０】
2006277132.tif 000012
【図１１】
2006277132.tif 000013
【図１２】
2006277132.tif 000014
【図１３】
2006277132.tif 000015
【図１４】
2006277132.tif 000016
【図１５】
2006277132.tif 000017
【図１６】
2006277132.tif 000018
【図１７】
2006277132.tif 000019
【図１８】
2006277132.tif 000020
【図１９】
2006277132.tif 000021