(57)【特許請求の範囲】
【請求項１】
検証の対象である複数のソースコードの検証順番を決定する順番決定部と、
前記複数のソースコードの各々に対して前記検証の実行にかける検証予定時間を割り付ける時間算出部と、
前記検証順番に基づいて、前記複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割り付けられた前記検証予定時間内で前記検証を実行する検証実行部と、
前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証に要した検証所要時間が当該選択ソースコードに割り付けられた前記検証予定時間より短い場合には、残った余剰検証予定時間を、前記複数のソースコードのうちで当該選択ソースコードの前記検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、前記未実行ソースコードの各々の前記検証予定時間を増加させる結果受取部と
を備える
検証管理装置。
【請求項２】
請求項１に記載の検証管理装置であって、
前記結果受取部は、前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証予定時間から前記検証所要時間を減算して前記余剰検証予定時間を算出し、前記余剰検証予定時間を前記未実行ソースコードの総数で除算した時間を、前記未実行ソースコードの各々の前記検証予定時間に加算することによって再割付けする
検証管理装置。
【請求項３】
請求項１または請求項２に記載の検証管理装置であって、
前記順番決定部は、前記複数のソースコードの各々の前記検証所要時間が短いと想定する順に前記検証順番を決定する
検証管理装置。
【請求項４】
請求項１から請求項３までのいずれかに記載の検証管理装置であって、
前記検証実行部は、前記選択ソースコードの前記検証が当該選択ソースコードに割り付けられた前記検証予定時間内に完了しない場合には、当該選択ソースコードの前記検証の開始からの経過時間が当該選択ソースコードに割り付けられた前記検証予定時間に到達した時点で前記検証を終了する
検証管理装置。
【請求項５】
請求項１から請求項４までのいずれかに記載の検証管理装置であって、
前記時間算出部は、前記複数のソースコードの全てに対して前記検証を実行するための検証制限時間の範囲内で、前記複数のソースコードの各々に前記検証予定時間を割り付ける
検証管理装置。
【請求項６】
請求項５に記載の検証管理装置であって、
前記時間算出部は、前記検証制限時間を前記複数のソースコードの総数で除算することにより前記検証予定時間を算出して、前記複数のソースコードの各々に割り付ける
検証管理装置。
【請求項７】
請求項１から請求項６までのいずれかに記載の検証管理装置であって、
前記検証実行部は、前記選択ソースコードの前記検証を完了する毎に、当該選択ソースコードの前記検証所要時間と、当該選択ソースコードに割り付けられた前記検証予定時間内に前記検証が完了しなかったために前記検証を終了した場合には、前記検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力し、
前記結果受取部は、前記検証結果に記録された前記検証所要時間に基づいて前記余剰検証予定時間を算出する
検証管理装置。
【請求項８】
請求項７に記載の検証管理装置であって、
前記検証順番と、前記検証予定時間と、前記検証結果とを、それぞれ前記複数のソースコードの各々に対応させて保存する管理データベース
をさらに備える
検証管理装置。
【請求項９】
請求項８に記載の検証管理装置であって、
前記順番決定部は、前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在しないソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記検証所要時間の短いものから順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在しないソースコードの検証順番を決定する
検証管理装置。
【請求項１０】
請求項８または請求項９に記載の検証管理装置であって、
前記順番決定部は、前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在するソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記未完了検証項目の少ない順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在するソースコードの検証順番を決定し、
前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記未完了検証項目が存在するソースコードの検証順番が配置されるように前記検証順番を決定する
検証管理装置。
【請求項１１】
請求項８から請求項１０までのいずれかに記載の検証管理装置であって、
前記順番決定部は、前記複数のソースコードのうち、前記管理データベースに前記検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に前記検証を実行するように、前記検証順番における前記検証結果が存在しないソースコードの検証順番を決定し、
前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれず、前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定し、
前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれる場合には、前記未完了検証項目が存在するソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定する
検証管理装置。
【請求項１２】
請求項８から請求項１１までのいずれかに記載の検証管理装置であって、
前記時間算出部は、前記複数のソースコードの各々に割り付けられた前記検証予定時間と、前記管理データベースに保存された前記複数のソースコードの各々に対応する前記検証結果に基づいて、前記複数のソースコードのうち、各々に割り付けられた前記検証予定時間では前記検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力する
検証管理装置。
【請求項１３】
コンピュータにより実施される検証管理方法であって、
（ａ）検証の対象である複数のソースコードの検証順番を決定するステップと、
（ｂ）前記複数のソースコードの各々に対して前記検証の実行にかける検証予定時間を割り付けるステップと、
（ｃ）前記検証順番に基づいて、前記複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割り付けられた前記検証予定時間内で前記検証を実行するステップと、
（ｄ）前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証に要した検証所要時間が当該選択ソースコードに割り付けられた前記検証予定時間より短い場合には、残った余剰検証予定時間を、前記複数のソースコードのうちで当該選択ソースコードの前記検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、前記未実行ソースコードの各々の前記検証予定時間を増加させるステップと
を備える
検証管理方法。
【請求項１４】
請求項１３に記載の検証管理方法であって、
前記ステップ（ｄ）は、
前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証予定時間から前記検証所要時間を減算して前記余剰検証予定時間を算出するステップと、
前記余剰検証予定時間を前記未実行ソースコードの総数で除算した時間を、前記未実行ソースコードの各々の前記検証予定時間に加算することによって再割付けするステップと
を含む
検証管理方法。
【請求項１５】
請求項１３または請求項１４に記載の検証管理方法であって、
前記ステップ（ａ）は、
前記検証順番を、前記複数のソースコードの各々の前記検証所要時間が短いと想定される順に決定するステップ
を含む
検証管理方法。
【請求項１６】
請求項１３から請求項１５までのいずれかに記載の検証管理方法であって、
前記ステップ（ｃ）は、
前記選択ソースコードの前記検証が当該選択ソースコードに割り付けられた前記検証予定時間内に完了しない場合には、当該選択ソースコードの前記検証の開始からの経過時間が当該選択ソースコードに割り付けられた前記検証予定時間に到達した時点で前記検証を終了するステップ
を含む
検証管理方法。
【請求項１７】
請求項１３から請求項１６までのいずれかに記載の検証管理方法であって、
前記ステップ（ｂ）は、
前記複数のソースコードの全てに対して前記検証を実行するための検証制限時間の範囲内で前記複数のソースコードの各々に前記検証予定時間を割り付けるステップ
を含む
検証管理方法。
【請求項１８】
請求項１７に記載の検証管理方法であって、
検証制限時間の範囲内で前記複数のソースコードの各々に前記検証予定時間を割り付けるステップは、
前記検証制限時間を前記複数のソースコードの総数で除算することにより前記検証予定時間を算出して、前記複数のソースコードの各々に割り付けるステップ
を含む
検証管理方法。
【請求項１９】
請求項１３から請求項１８までのいずれかに記載の検証管理方法であって、
前記ステップ（ｃ）は、
前記検証実行部は、前記選択ソースコードの前記検証を完了する毎に、当該選択ソースコードの前記検証所要時間と、当該選択ソースコードに割り付けられた前記検証予定時間内に前記検証が完了しなかったために前記検証を終了した場合には、前記検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力するステップと、
前記ステップ（ｄ）は、
前記結果受取部は、前記検証結果に記録された前記検証所要時間に基づいて前記余剰検証予定時間を算出するステップと
をさらに備える
検証管理方法。
【請求項２０】
請求項１９に記載の検証管理方法であって、
前記ステップ（ｃ）は、
前記検証順番と、前記検証予定時間と、前記検証結果とを、それぞれ前記複数のソースコードの各々に対応させて管理データベースへ保存するステップ
をさらに備える
検証管理方法。
【請求項２１】
請求項２０に記載の検証管理方法であって、
前記ステップ（ａ）は、
前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在しないソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記検証所要時間の短いものから順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在しないソースコードの検証順番を決定するステップ
を含む
検証管理方法。
【請求項２２】
請求項２０または請求項２１に記載の検証管理方法であって、
前記ステップ（ａ）は、
前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在するソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記未完了検証項目の少ない順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在するソースコードの検証順番を決定するステップと、
前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記未完了検証項目が存在するソースコードの検証順番が配置されるように前記検証順番を決定するステップと
を含む
検証管理方法。
【請求項２３】
請求項２０から請求項２２までのいずれかに記載の検証管理方法であって、
前記ステップ（ａ）は、
前記複数のソースコードのうち、前記管理データベースに前記検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に前記検証を実行するように、前記検証順番における前記検証結果が存在しないソースコードの検証順番を決定するステップと、
前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれず、前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定するステップと、
前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれる場合には、前記未完了検証項目が存在するソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定するステップと
を含む
検証管理方法。
【請求項２４】
請求項１３から請求項２３までのいずれかに記載の検証管理方法であって、
前記ステップ（ｂ）は、
前記複数のソースコードの各々に割り付けられた前記検証予定時間と、前記管理データベースに保存された前記複数のソースコードの各々に対応する前記検証結果に基づいて、前記複数のソースコードのうち、各々に割り付けられた前記検証予定時間では前記検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力するステップ
をさらに備える
検証管理方法。
【請求項２５】
請求項１３から請求項２４までのいずれかに記載された検証管理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコードの検証に関し、特に静的解析手法による検証に関する。
【背景技術】
【０００２】
プログラムソースコード（以下、ソースコード）は、ソフトウェアの開発工程で加えられる追加や修正に対して、ソフトウェアの品質を確保するために検証が実行される。
ソースコードは、ソフトウェアの開発工程における要件の変更や機能の追加に伴って、追加、変更、削除といった修正が加えられる。ソースコードの検証は、ソースコードへの修正に対してソフトウェアの品質を確保するために行われ、ソースコードの修正に起因する不具合の発生の有無や、既存のソースコードへの悪影響の有無が確認される。
【０００３】
ソースコードの検証方法には、回帰テストと呼ばれる手法がある。回帰テストは、ソースコードを実行形式にし、あらかじめ用意した入力データをソースコードの修正前後で実行して、その出力結果を比較することによって検証を行う手法である。回帰テストは、ソースコードの修正前後で出力結果に変化が無いことを確認することで、ソースコードの修正による不具合の発生の有無や、既存部分への悪影響の有無を確認する。このような検査手法が、特許文献１や特許文献２に開示されている。
【０００４】
一方で、ソースコードの検証方法には、静的解析手法と呼ばれる手法がある。静的解析手法は、ソフトウェアを実行形式にはせずに、ソースコード対して直接的に検証を行う手法である。静的解析手法のうち、形式的手法の一つとしてモデル検査がある。モデル検査は、ソースコードから状態遷移モデルを作成し、その状態遷移モデル上において、初期状態から到達状態までの到達の可能性を証明することで、検証仕様を満たすか否かを検査する。モデル検査によって、実行時にしか検出できないエラー（バグ）を効率的に検出することが可能である。静的解析手法を利用することでソースコードの改修による既存部分への影響を確認することも可能である。このような検査手法が、特許文献３に開示されている。
【０００５】
静的解析手法においては、ソースコード毎の検証に要する時間を想定することが困難である。これは、静的解析手法では検証の実行に要する時間が、実行する検証の種類や方法などの特性によって、単純にプログラムソースコードの規模から決定することはできないためである。そのため、実際に検証を実行してみないことには検証に要する時間が想定できず、検証時間が長時間に及び制限時間内に検証項目が全て完了しない場合も発生する。モデル検査手法においても、検証対象のソースコードが取り得る状態数が爆発的に増加する状態爆発の問題により、検証時間はソースコードの検証項目数に応じて級数的に増加する。
【０００６】
しかし、ソースコードの検証は、ある一定時間内で実行する必要がある。例えば、ソースコードの検証は、ソースコードの修正が行われない夜間に一括して検証を行い、翌日に結果を確認する方法をとる。静的解析においては、検証に要する時間を想定することが困難であり、個々のソースコードに適正な検証時間を割り付けることができない。とは言え、個々のソースコードに必要十分な時間を割り付けしまうと、検証全体の時間が制限時間内に収められないという問題がある。
【０００７】
このような問題を解決するための従来技術として、特許文献４が開示されている。特許文献４の発明は、論理回路に対し検証対象部分の複雑性を計算し、複雑性の低い検証対象から検証を実行する。また、特許文献４の発明は、検証対象の複雑度に応じて検証時間を設定する。さらに検証対象部分の複雑度が一定以上の場合は検証時間を割り付けず、検証を行わないことで検証にかかる時間を短縮し、定められた時間内で検証が完了する。
【０００８】
この従来技術にはいくつかの課題点がある。まず、個々の検証対象の複雑性に応じて任意に検証時間を設定するとされているため、全ての検証対象の検証を、確実に検証実施者の要求する検証制限時間内に完了することができない可能性がある。これは、検証制限時間内で検証を完了させることができない場合に、ソフトウェア開発工程に影響を与える可能性となる。次に、複雑度が一定以上の検証対象の検証時間を割り付けないため、検証装置が検証制限時間を使い切らずに検証を完了させてしまう可能性がある。これは、検証制限時間を最大限利用して検証を実行いたならば、発見し得た問題箇所を見落とす可能性となる。
【特許文献１】特開平８−２１２１０８号公報
【特許文献２】特開２００６−１６３５１９号公報
【特許文献３】特開２００４−００５６７４号公報
【特許文献４】特開２００１−３３８００８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、検証の対象であるソースコード毎に割り付ける検証予定時間の動的な再割り付けを可能にする検証管理装置を提供することである。  
【００１０】
本発明の他の目的は、検証全体を実行する検証制限時間を超えずに検証の対象である全てのソースコードに対する検証の実行を可能にする検証管理装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の検証管理装置は、検証の対象である複数のソースコードの検証順番を決定する順番決定部と、複数のソースコードの各々に対して検証の実行にかける検証予定時間を割り付ける時間算出部と、検証順番に基づいて、複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割付けられた検証予定時間内で検証を実行する検証実行部と、選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証に要した検証所要時間が当該選択ソースコードに割付けられた検証予定時間より短い場合には、残った余剰検証予定時間を、複数のソースコードのうちで当該選択ソースコードの検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、未実行ソースコードの各々の検証予定時間を増加させる結果受取部とを備える。
【００１２】
本発明の検証管理装置の結果受取部は、選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証予定時間から検証所要時間を減算して余剰検証予定時間を算出し、余剰検証予定時間を未実行ソースコードの総数で除算した時間を、未実行ソースコードの各々の検証予定時間に加算することによって再割付けする。
【００１３】
本発明の検証管理装置の順番決定部は、複数のソースコードの各々の検証所要時間が短いと想定する順に検証順番を決定する。
【００１４】
本発明の検証管理装置の検証実行部は、選択ソースコードの検証が当該選択ソースコードに割付けられた検証予定時間内に完了しない場合には、当該選択ソースコードの検証の開始からの経過時間が当該選択ソースコードに割付けられた検証予定時間に到達した時点で検証を終了する。
【００１５】
本発明の検証管理装置の時間算出部は、複数のソースコードの全てに対して検証を実行するための検証制限時間の範囲内で、複数のソースコードの各々に検証予定時間を割り付ける。
【００１６】
本発明の検証管理装置の時間算出部は、検証制限時間を複数のソースコードの総数で除算することにより検証予定時間を算出して、複数のソースコードの各々に割り付ける。
【００１７】
本発明の検証管理装置の検証実行部は、選択ソースコードの検証を完了する毎に、当該選択ソースコードの検証所要時間と、当該選択ソースコード割付けられた検証予定時間内に検証が完了しなかったために検証を終了した場合には、検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力し、結果受取部は、検証結果に記録された検証所要時間に基づいて余剰検証予定時間を算出する。
【００１８】
本発明の検証管理装置は、検証順番と、検証予定時間と、検証結果とを、それぞれ複数のソースコードの各々に対応させて保存する管理データベースをさらに備える。
【００１９】
本発明の検証管理装置の順番決定部は、複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在しないソースコードについて、管理データベースに保存された検証結果に記録されている検証所要時間の短いものから順に検証を実行するように、検証順番における未完了検証項目が存在しないソースコードの検証順番を決定する。
【００２０】
本発明の検証管理装置の順番決定部は、複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在するソースコードについて、管理データベースに保存された検証結果に記録されている未完了検証項目の少ない順に検証を実行するように、検証順番における未完了検証項目が存在するソースコードの検証順番を決定し、複数のソースコードに、検証結果に未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、未完了検証項目が存在するソースコードの検証順番が配置されるように検証順番を決定する。
【００２１】
本発明の検証管理装置の順番決定部は、複数のソースコードのうち、管理データベースに検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に検証を実行するように、検証順番における検証結果が存在しないソースコードの検証順番を決定し、複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれず、未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定し、複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれる場合には、未完了検証項目が存在するソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定する。
【００２２】
本発明の検証管理装置の時間算出部は、複数のソースコードの各々に割り付けられた検証予定時間と、管理データベースに保存された複数のソースコードの各々に対応する検証結果に基づいて、複数のソースコードのうち、各々に割り付けられた検証予定時間では検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力する。
【００２３】
本発明の検証管理方法は、
（ａ）検証の対象である複数のソースコードの検証順番を決定するステップと、
（ｂ）複数のソースコードの各々に対して検証の実行にかける検証予定時間を割り付けるステップと、
（ｃ）検証順番に基づいて、複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割付けられた検証予定時間内で検証を実行するステップと、
（ｄ）選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証に要した検証所要時間が当該選択ソースコードに割付けられた検証予定時間より短い場合には、残った余剰検証予定時間を、複数のソースコードのうちで当該選択ソースコードの検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、未実行ソースコードの各々の検証予定時間を増加させるステップとを備える。
【００２４】
本発明の検証管理方法のステップ（ｄ）は、
選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証予定時間から検証所要時間を減算して余剰検証予定時間を算出するステップと、
余剰検証予定時間を未実行ソースコードの総数で除算した時間を、未実行ソースコードの各々の検証予定時間に加算することによって再割付けするステップとを含む。
【００２５】
本発明の検証管理方法のステップ（ａ）は、
検証順番を、複数のソースコードの各々の検証所要時間が短いと想定される順に決定するステップを含む。
【００２６】
本発明の検証管理方法のステップ（ｃ）は、
選択ソースコードの検証が当該選択ソースコードに割付けられた検証予定時間内に完了しない場合には、当該選択ソースコードの検証の開始からの経過時間が当該選択ソースコードに割付けられた検証予定時間に到達した時点で検証を終了するステップを含む。
【００２７】
本発明の検証管理方法のステップ（ｂ）は、
複数のソースコードの全てに対して検証を実行するための検証制限時間の範囲内で複数のソースコードの各々に検証予定時間を割り付けるステップを含む。
【００２８】
本発明の検証管理方法の検証制限時間の範囲内で複数のソースコードの各々に検証予定時間を割り付けるステップは、検証制限時間を複数のソースコードの総数で除算することにより検証予定時間を算出して、複数のソースコードの各々に割り付けるステップを含む。
【００２９】
本発明の検証管理方法のステップ（ｃ）は、
検証実行部は、選択ソースコードの検証を完了する毎に、当該選択ソースコードの検証所要時間と、当該選択ソースコード割付けられた検証予定時間内に検証が完了しなかったために検証を終了した場合には、検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力するステップと、
ステップ（ｄ）は、結果受取部は、検証結果に記録された検証所要時間に基づいて余剰検証予定時間を算出するステップとをさらに備える。
【００３０】
本発明の検証管理方法のステップ（ｃ）は、
検証順番と、検証予定時間と、検証結果とを、それぞれ複数のソースコードの各々に対応させて管理データベースへ保存するステップをさらに備える。
【００３１】
本発明の検証管理方法のステップ（ａ）は、
複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在しないソースコードについて、管理データベースに保存された検証結果に記録されている検証所要時間の短いものから順に検証を実行するように、検証順番における未完了検証項目が存在しないソースコードの検証順番を決定するステップを含む。
【００３２】
本発明の検証管理方法のステップ（ａ）は、
複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在するソースコードについて、管理データベースに保存された検証結果に記録されている未完了検証項目の少ない順に検証を実行するように、検証順番における未完了検証項目が存在するソースコードの検証順番を決定するステップと、
複数のソースコードに、検証結果に未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、未完了検証項目が存在するソースコードの検証順番が配置されるように検証順番を決定するステップとを含む。
【００３３】
本発明の検証管理方法のステップ（ａ）は、
複数のソースコードのうち、管理データベースに検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に検証を実行するように、検証順番における検証結果が存在しないソースコードの検証順番を決定するステップと、
複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれず、未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定するステップと、
複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれる場合には、未完了検証項目が存在するソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定するステップとを含む。
【００３４】
本発明の検証管理方法のステップ（ｂ）は、
複数のソースコードの各々に割り付けられた検証予定時間と、管理データベースに保存された複数のソースコードの各々に対応する検証結果に基づいて、複数のソースコードのうち、各々に割り付けられた検証予定時間では検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力するステップをさらに備える。
【００３５】
本発明のプログラムは、前述の検証管理方法をコンピュータによって実現する。
【発明の効果】
【００３６】
本発明によれば、検証の対象であるソースコード毎に割り付ける検証予定時間の動的な再割り付けが可能となるため、定められた検証制限時間内により多くの検証結果を得ることが可能となり、効率的に検証を実行できる。
【００３７】
さらに本発明によれば、検証全体を実行する検証制限時間を超えずに検証の対象である全てのソースコードに対して検証を実行することが可能となるため、定められた検証制限時間の枠を超えずに検証の対象となる全てのソースコードに対しての検証結果を得ることが可能となる。
【発明を実施するための最良の形態】
【００３８】
添付図面を参照して、本発明によるソースコード検証管理装置を実施するための最良の形態としての一実施例を以下に説明する。
【００３９】
［構成の説明］
始めに本発明の構成について説明する。図１は、本発明のソースコード検証管理装置の構成図を示している。本発明のソースコード検証管理装置は、ソースコード管理装置１００と、検証実行装置２００と、表示装置３００と、入力装置４００と、検証管理装置５００を備える。
【００４０】
図２は、本発明のソースコード管理装置１００、検証実行装置２００、検証管理装置５００のそれぞれ構成を示している。ソースコード管理装置１００、検証実行装置２００、検証管理装置５００は、それぞれ処理部１、記憶部２、出力部３、入力情報受付部４、通信部５を備える。処理部１、記憶部２、出力部３、入力情報受付部４、通信部５は、それぞれ電気的に接続される。処理部１はＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などで実現される。処理部１は本実施例の機能を実現する処理を行う。記憶部２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などで実現される。記憶部２には本実施例の機能を実現するプログラムを含む、従来のプログラムが記憶されている。出力部３は、例えば液晶ディスプレイで構成され、入力情報受付部４は、例えばキーボードやマウスで構成される。図１において、検証管理装置５００の出力部３は、表示装置３００である。検証管理装置５００の入力情報受付部４は、入力装置４００である。ソースコード管理装置１００と検証実行装置２００の出力部３及び入力情報受付部４は、図１において図示を省略している。通信部５は、例えばＬＡＮ（Local Area Network）ポートで構成される。それぞれの装置間は従来技術により、有線通信や無線通信を利用して直接的に接続されているか、あるいはＷＡＮ（Wide Area Network）やインターネットのような通信ネットワークを介して接続されている。また、図１において、ソースコード管理装置１００、検証実行装置２００、検証管理装置５００は、別々の装置で構成しているが、これを一つの装置内において実現してもよい。
【００４１】
次に、図３を使用して各装置を詳細に説明する。  
まず、ソースコード管理装置１００について説明する。
ソースコード管理装置１００は、ソースコード管理データベース１０１（以下、ソースコード管理ＤＢ１０１）を備える。ソースコード管理ＤＢ１０１は、複数のソースコード１０とソースコードの更新状態情報１３を保存している。本発明のソースコード検証管理装置による検証対象のソースコード１０は、ソースコード管理装置が保存している複数のソースコード１０から、更新状態情報１３に基づいて抽出される。本実施例において、検証対象となるソースコード１０を検証対象ソースコード１１と呼ぶ。
ソースコード１０の開発者は、ソースコード１０の新規追加、変更、削除等の作業を行い、更新後のソースコード１０をソースコード管理装置に保存する。ソースコード１０の更新状態を更新履歴として管理している。図４は、本実施例におけるソースコード管理ＤＢ１０１に記録された更新状態情報１３の例を表している。更新状態情報１３は、ソースコードＩＤ、ソースコードの規模（本実施例においてはラベル数）、更新日時を記録している。なお、更新状態情報１３に記録されるデータはこの例に限定しない。
ソースコード管理ＤＢ１０１は、後述する検証管理装置５００の選択部５０１からの命令により、ソースコード１０のうちから更新状態情報１３に基づいて検証対象のソースコードを抽出する。ソースコード管理ＤＢ１０１は、検証対象ソースコード１１を検証対象ソースコード１１の更新状態と共に、選択部５０１へ出力する。
【００４２】
次に検証実行装置２００について説明する。
検証実行装置２００は、検証実行部２０１を備える。検証実行部２０１は、検証対象ソースコード１１の検証を実行する。本発明において、検証実行装置２０１が実行する検証は静的解析手法による検証である。静的解析手法による検証については従来技術を用いて行うため説明を省略する。また、本発明において、個々の検証対象ソースコード１１に対する検証内容や、個々の検証対象ソースコード１１が満たすべき検証仕様についても、特に限定するものではないので説明を省略する。
検証実行部２０１は、後述する検証管理装置５００の実行命令部５０６からの検証実行命令により、順番決定部５０２の決定した検証順番で、時間算出部５０５が検証対象ソースコード１１毎に割り付けた検証予定時間内に、当該検証対象ソースコード１１の検証を実行する。図５は、実行命令部５０６からの検証実行命令のデータ内容の例を示している。
【００４３】
検証実行部２０１は、検証が完了すると検証結果２０を生成する。図６Ａと図６Ｂは、検証結果２０に記録されているデータの例を示している。検証結果２０には、検証を実行した検証対象ソースコード１１に対する検証対象ソースコード１１毎の検証所要時間と未完了検証項目数（データ項目上は未完了項目数と表記、以下同じ。）が含まれている。図６Ａと図６Ｂに示す検証結果には、他に検証を実行した検証対象ソースコード１１が検証仕様を満たしたか否かといった情報が含まれるが、前述のとおり、本発明において検証方法や検証仕様について限定するものではないので、明示していない。
検証所要時間は、検証対象ソースコード１１毎の検証を開始してから完了するまでに要した時間である。未完了検証項目数は、検証対象ソースコード１１毎に割り付けられた検証予定時間内に検証が実行完了できなかった場合の、検証予定時間内に実行することができなかった未完了検証項目の数である。検証実行部２０１は、生成した検証結果２０を、検証管理装置５００の結果受取部５０７へ出力する。なお、検証結果２０の例は、これに限定しない。
検証実行部２０１は、検証対象ソースコード１１毎に割付けられた検証予定時間内に、当該検証対象ソースコード１１の検証が完了しない場合には、検証開始からの経過時間が検証予定時間に到達すると、その時点で当該検証を終了する。その場合にも、検証実行部２０１は、検証結果２０を生成し、結果受取部５０７へ出力する。
【００４４】
次に表示装置３００について説明する。
表示装置３００は、前述のとおり、例えば液晶ディスプレイで構成され、検証管理装置５００の情報表示部５０３から出力される情報を表示する。検証実施者は、表示装置３００に表示される検証に関する情報を確認できる。
【００４５】
次に入力装置４００について説明する。
入力装置４００は、前述のとおり、例えばキーボードやマウスで構成される。検証実施者は、表示装置３００へ表示される検証に関する情報を確認し、これに応じて入力装置４００へ入力を行う。入力装置４００は、検証実施者が入力する情報を検証管理装置５００の入力受付部５０４へ出力する。
【００４６】
次に検証管理装置５００について説明する。
検証管理装置５００は、選択部５０１、順番決定部５０２、情報表示部５０３、入力受付部５０４、時間算出部５０５、実行命令部５０６、結果受取部５０７、管理データベース５０８を備える。選択部５０１、順番決定部５０２、情報表示部５０３、入力受付部５０４、時間算出部５０５、実行命令部５０６、結果受取部５０７の各機能は、検証管理装置５００の記憶部２に記憶されたプログラムを処理部１が処理することによって実現する。
【００４７】
選択部５０１は、ソースコード管理装置１００に保存されているソースコード１０から検証対象ソースコード１１を抽出する。選択部５０１は、入力受付部５０４から受けた検証対象ソースコード１１の抽出命令を入力し、検証対象ソースコード１１の抽出をソースコード管理装置１００のソースコード管理ＤＢ１０１へ命令する。選択部５０１は、ソースコード管理装置１００が保存するソースコード１０毎の更新情報や、検証実行装置２００で行われる検証の機能や種類に応じて、ソースコード管理ＤＢ１０１に検証対象ソースコード１１の抽出を命令する。
選択部５０１は、ソースコード管理装置１００が出力する検証対象ソースコード１１を入力し、検証対象ソースコード１１の一覧リスト（以下、一覧リスト１）を作成する。図７は、一覧リスト１の例を示している。「一覧リスト１」には、検証対象ソースコード１１の識別番号（以下、ソースコードＩＤ）と、検証対象ソースコード１１に対応するソースコードの規模（本実施例においては、ラベル数）が含まれる。選択部５０１は、作成した「一覧リスト１」を、順番決定部５０２へ出力する。
ソースコード１０から検証対象ソースコード１１を抽出する方法として、ソースコード１０の更新状況に基づいて抽出する方法や、一つのソースコード１０とプログラム上で関係性のある他のソースコード１０の更新状況も考慮し抽出する方法などが存在する。検証対象ソースコード１１を抽出する方法については、従来の技術によって実現するため説明を省略する。
【００４８】
順番決定部５０２は、検証対象ソースコード１１の検証を実行する検証順番を決定する。順番決定部５０２は、管理データベース５０８に保存されている過去の検証結果である検証結果５０に基づいて検証順番を決定する。図８は、後述する、管理データベース５０８に保存される検証結果５０の例を示している。検証結果５０は、検証実行部２０１が出力する検証結果２０を、検証対象ソースコード毎に対応させて保存したものである。なお、検証結果５０の管理データベース５０８へ保存方法はこれに限定しない。
【００４９】
本発明において、検証順番は重要な要素である。本発明は、検証対象ソースコード１１毎に割り付けられる検証を実施するための予定時間である検証予定時間と、実際に検証実行装置２００が当該検証対象ソースコード１１の検証を実行した結果、検証の完了に要した時間である検証所要時間と、を比較して、検証予定時間より検証所要時間が短い場合には、検証予定時間と検証所要時間の差分であり、余りとなった検証予定時間である余剰検証予定時間を、当該検証対象ソースコード１１よりも検証順番が後であり、これから検証を実行する検証対象ソースコード１１である未実行検証対象ソースコード１２へ再割り付けする。
【００５０】
定められた検証制限時間内でより多くの検証を実行するためには、より多くの余剰検証予定時間を生み出すことが必要となる。そのために検証順番は、検証の実行に必要な検証所要時間が短い順番で検証を実行していくように決定することが効果的である。
検証所要時間が短い順番に検証を実行することで、早い順番に検証順番が割り付けられた検証対象ソースコード１１は、検証予定時間内に検証が完了できる可能性が高くなる。これにより、検証順番の早い段階で余剰検証予定時間を生み出すことができる。余剰検証予定時間を動的に未実行検証対象ソースコード１２に割り付けることで、未実行検証対象ソースコード１１の検証予定時間は増加する。これにより当初の検証予定時間では、全ての検証項目を完了できない可能性のあった検証対象ソースコード２０も、増加した検証予定時間のにおいて検証項目を全て完了できる可能性が広がる。このように、検証予定時間内に検証が完了できない検証対象ソースコード１１が、検証予定時間内に検証を完了できれば、さらに新たに余剰検証予定時間を生み出すことが可能であり、検証の効率化の連鎖を発生させることができる。
【００５１】
しかし、検証所要時間が短い順番に検証対象ソースコード１１を順番決定するのは困難である。これは、静的解析により検証を実行する場合には、検証の内容により検証項目数に変動が発生する場合等があるためであり、実際に検証を実行しないことには、検証にどれだけの時間を要するのか判明しない。そこで、本発明では管理データベース５０８に保存されている検証結果５０に基づいて検証順番を決定する方法を採用している。
【００５２】
図９Ａから図９Ｃを使用して検証順番の決定方法の例を説明する。順番決定部５０２は、選択部５０１が出力する「一覧リスト１」を入力する。順番決定部５０２は、「一覧リスト１」に記載された検証対象ソースコード１１毎に、管理データベースに保存されている検証結果５０を対応させる。図９Ａは、「一覧リスト１」に記載された検証対象ソースコード１１に検証結果５０を対応させた例を示している。
順番決定部５０２は、「一覧リスト１」に記載された検証対象ソースコード１１を、管理データベースに保存されている検証結果５０に基づいて分類する。第１の分類は、前回の検証結果５０が存在して、前回の検証結果５０に未完了検証項目数が存在しない検証対象ソースコード１１である（以下、分類１）。第２の分類は、前回の検証結果５０が存在して、前回の検証結果５０に未完了検証項目数が存在する検証対象ソースコード１１である（以下、分類２）。第３の分類は、前回の検証結果５０が存在していない検証対象ソースコード１１である（以下、分類３）。
【００５３】
次に、順番決定部５０２は、分類した検証対象ソースコード１１のそれぞれの分類において、検証順番を決定する。図９Ｂは「一覧リスト１」に記載された検証対象ソースコード１１の分類毎に検証順番を決定した例を示している。
まず、分類１の検証対象ソースコード１１は、前回の検証結果５０に含まれる検証に要した検証所要時間に基づいて、検証所要時間の最も短い検証対象ソースコード１１を最先の検証順番とし、それから検証所要時間が短い順に検証順番を決定する。
分類２の検証対象ソースコード１１は、前回の検証結果に含まれる未完了検証項目数に基づいて、未完了検証項目数が最も少ない検証対象ソースコード１１を最先の検証順番とし、それから未完了検証項目数が少ない順に検証順番を決定する。
分類３の検証対象ソースコード１２は、検証結果が存在しないため新規のソースコード１０であることが考えられる。分類３の検証対象ソースコード１１は、当該検証対象ソースコード１１の規模に基づいて順番を決定する。本実施例においては、当該検証対象ソースコード１１のラベル数に基づいて、最もラベル数が少ない検証対象ソースコード１１を最先の検証順番とし、それからラベル数が少ない順に検証順番を決定する。
なお、いずれの分類においても、検証順番の決定方法はこれに限定しない。また、本実施例における、順番決定方法の例においては、検証対象ソースコード１１を３分類に分類しているが、分類自体をより細分化することも可能である。
【００５４】
次に、順番決定部５０２は、各分類毎に検証順番の決定が完了すると、全体の検証順番を決定する。図９Ｃは、「一覧リスト１」に記載された検証対象ソースコードの全体の検証順番を決定した例を示している。
全体の検証順番の決定は、各分類毎の順番をつなぎ合わせることで行う。ここにおいても、検証所要時間が短い順に検証順番を決定できるよう考慮する。本発明においては、最初に分類１、次に分類２、最後に分類３の順に検証順番を決定する。つまり、最初に検証結果が存在して未完了検証項目数が存在しない検証対象ソースコード１１、次に検証結果が存在して未完了検証項目数が存在する検証対象ソースコード１１、最後に検証結果が存在していない検証対象ソースコード１１の順に検証順番を決定する。
このように過去の検証結果に基づいて、分類１や分類２のように検証所用時間の目安が存在する検証対象ソースコード１１を先の順番に決定し、分類３のように検証結果が存在せず検証所要時間の目安が存在しない検証対象ソースコード１１を後に配置することで、検証所要時間が短い順番に検証順番を想定し決定する。
順番決定部５０２は、図９Ｃに示すように決定した全体の検証順番を、検証対象ソースコード１１に対応させた一覧リスト（以下、一覧リスト２）として管理データベース５０８に保存する。
【００５５】
情報表示部５０３は、検証対象ソースコードの一覧を生成し、表示装置３００へ出力する。情報表示部５０３は、管理データベース５０８から「一覧リスト２」を入力する。情報表示部５０３は、管理データベース５０８に保存されている検証結果２０に基づいて、「一覧リスト２」の検証対象ソースコード１１毎に検証結果の有無、検証所要時間、未完了検証項目数を、検証対象ソースコード１１に対応付けた一覧リスト（以下、一覧リスト３）を生成する。情報表示部５０３は、検証対象ソースコード１１に複数の検証結果が存在する場合には、検証所要時間が最大であった検証結果を選択し、未完了検証項目数はその際の未完了検証項目数を選択する。情報表示部５０３は、生成した「一覧リスト３」を表示装置３００へ出力する。
【００５６】
さらに、情報表示部５０３は、全ての検証対象ソースコード１１の検証に要すると思われる時間である総検証想定時間を算出する。情報表示部５０３は、算出した総検証想定時間を表示装置３００へ出力する。検証実施者は、表示装置３００に表示された総検証想定時間を確認した上で、当該検証において、全ての検証対象ソースコード１１を検証するための制限時間である検証制限時間を入力装置４００に入力する。
総検証想定時間は、個々の検証対象ソースコード１１の検証に要すると思われる時間である検証想定時間の総和である。情報表示部５０３は、検証対象ソースコード１１毎に検証想定時間を算出し、検証想定時間の総和をとることで総検証想定時間を算出する。
図１０は、「一覧リスト３」と総検証想定時間を表示装置３００へ出力した例を示している。図１０を参照すると、本実施例における１０個の検証対象ソースコード１１と、総検証想定時間が表示されていることが確認できる。本実施例において情報表示部５０３は、総検証想定時間を１２,３２６秒と算出している。
【００５７】
検証想定時間の算出方法の例を説明する。まず、情報表示部５０３は、検証順番の決定方法において説明した、検証対象ソースコード１１の検証結果に基づく分類毎に検証想定時間算出する。次に、情報表示部５０３は、分類毎の検証想定時間の総和を算出して、総検証想定時間を算出する。
情報表示部５０３は、検証対象ソースコード１１を、「一覧リスト３」に記載された検証結果に基づいて分類する。分類１は、検証結果が存在して、未完了検証項目数が存在しない検証対象ソースコード１１である。分類２は、検証結果が存在して、未完了検証項目数が存在する検証対象ソースコード１１である。分類３は、検証結果が存在していない検証対象ソースコード１１である。
【００５８】
まず、分類１の検証対象ソースコード１１については、未完了検証項目が存在しないため、検証結果に含まれる検証対象想定時間毎の過去の検証所要時間を、検証想定時間として使用する。情報表示部５０３は、管理データベース５０８に保存されている検証結果に基づいて、分類１の検証対象ソースコード１１毎の検証所要時間を抽出する。情報表示部５０３は、分類１の検証対象ソースコード１１毎に検証所要時間が複数存在する場合には、存在する検証所要時間のうちで最も長い時間を要したものを選択する。情報表示部５０３は、このようにして抽出した検証所要時間を分類１の検証対象ソースコード１１毎の検証想定時間とする。情報表示部５０３は、分類１の検証対象ソースコード１１毎の検証所要時間を合計する。情報表示部５０３は、検証所要時間の合計を、分類１の総検証所要時間として記憶する。
【００５９】
次に、分類２の検証対象ソースコード１１について、情報表示部５０３は、管理データベース５０８に保存されている検証結果に基づいて、検証結果に含まれる未完了検証項目の項目数毎に、分類２の検証対象ソースコード１１の数を算出する。情報表示部５０３は、未完了検証項目数毎に未完了検証項目数に基づく係数を算出する。情報表示部５０３は、分類２の検証対象ソースコード１１毎に、未完了検証項目数に基づく係数を検証結果２０に保存される検証所要時間に掛け合わせることによって検証想定時間を算出する。情報表示部５０３は、分類２の検証対象ソースコード１１毎の検証想定時間を合計する。情報表示部５０３は、検証想定時間の合計が、分類２の総検証想定時間として記憶する。
【００６０】
この未完了検証項目数に基づく係数とは、分類２の検証対象ソースコード１１毎の検証想定時間を算出するための係数である。先に述べたとおり、静的解析を用いる検証においては、分類２の検証対象ソースコード１１のように未完了検証項目が存在するソースコード１０の検証想定時間を算出するのは困難である。そのため、未完了検証項目数に応じて一定の手法を定め係数を算出し、分類２の検証対象ソースコード１１毎に未完了検証項目数に対応する係数を、それぞれの過去の検証所要時間に掛け合わせて、分類２の検証対象ソースコード１１毎の検証想定時間を算出する。この係数算出の手法については、検証内容に応じて定められるものであり、本発明においては限定はしない。
【００６１】
次に、分類３の検証対象ソースコード１１について、まず、情報表示部５０３は、前述した分類２の検証対象ソースコード１１毎に算出された検証想定時間のうちで最大値を選択する。情報表示部５０３は、分類３の検証対象ソースコード１１の個数を求める。情報表示部５０３は、分類２の検証対象ソースコード１１毎に算出された検証想定時間の最大値に、分類３の検証対象ソースコード１１の個数を乗算し、分類３全体の検証想定時間を算出する。情報表示部５０３は、この乗算結果を分類３の総検証想定時間として記憶する。分類２の検証対象ソースコード１１と同様に、静的解析を用いる検証においては、ソースコード１０の検証想定時間を算出するのは困難であるため、分類３の検証想定時間は、分類２の検証想定時間を使用して算出する。
【００６２】
分類１から分類３毎の総検証想定時間を算出した後、情報表示部５０３は、記憶した分類１、分類２、分類３、それぞれの分類毎の総検証想定時間を合計し、検証対象ソースコード１１全体の総検証想定時間を算出する。なお、総検証想定時間の算出方法はこれに限定しない。
【００６３】
入力受付部５０４は、入力装置４００が出力した検証実施者が入力装置４００に入力する情報を入力する。検証実施者が入力する情報とは、例えば、検証対象ソースコード１１の抽出命令や、検証の実行時間を定める検証制限時間入力である。また、後述する時間算出部５０５からの通知を受けて、検証実施者が検証対象ソースコード１１のうちのいくつかを検証対象から外す操作の入力や、検証実施者が今回の検証内容を承諾して検証の実行を命令する入力である。入力受付部５０４は、各入力に応じて、選択部５０１、時間算出部５０５、実行命令部５０６へ出力する。
【００６４】
時間算出部５０５は、検証対処ソースコード１１毎の検証予定時間を算出する。検証予定時間とは、検証対象ソースコード１１毎の検証の実行にかける時間である。時間算出部５０５は、入力受付部５０４が出力した検証制限時間を入力する。検証実施者が入力する検証制限時間とは、検証実施者が全ての検証対象ソースコード１１に対する検証を完了したいと考える制限時間である。本発明の本実施例において、時間算出部５０５は、検証制限時間を検証対象ソースコード１１の数で除算して検証予定時間を算出する。この検証予定時間の算出方法はこれに限定しない、管理データベース５０８に保存されている検証対象ソースコード１１の検証結果２０に基づいて、検証対象ソースコード１１毎に重み付けをする方法等も考えられる。
【００６５】
時間算出部５０５は、管理データベース５０８から「一覧リスト２」を入力する。「一覧リスト２」には、図９Ｃに示すとおり、ソースコードＩＤと、検証対象ソースコード毎の規模、検証順番が記録されている。時間算出部５０５は、「一覧リスト２」の検証対象ソースコード１１の総数を算出する。時間算出部５０５は、検証制限時間を検証対象ソースコード１１の総数で除算して検証対象ソースコード１１毎の検証予定時間を算出する。
本実施例において、検証実施者は、検証制限時間を１４,０００秒と設定したものする。検証対象ソースコードは、図９Ｃに示すとおり１０個であるので検証対象ごとの検証予定時間は１,４００秒ずつとなる。時間算出部５０５は、算出した検証予定時間を、一覧「一覧リスト２」の検証対象ソースコード１１毎に割り付ける。時間算出部５０５は、算出した検証予定時間を割り付けた、検証対象ソースコード１１の一覧リスト（以下、一覧リスト４）を作成する。図１１は、「一覧リスト４」の例を示している。図１１を参照すると１０個の検証対象ソースコード毎に１，４００秒の検証予定時間が割付けられていることが確認できる。時間算出部５０５は、「一覧リスト４」を管理データベース５０８に保存する。
【００６６】
次に、時間算出部５０５は、割り付けられた検証予定時間では検証が完了しない可能性のある検証対象ソースコードを抽出する。この処理は、「一覧リスト４」の検証対象ソースコード１１の検証順番に従って、検証対象ソースコード１１毎に行われる。
時間算出部５０５は、検証対象ソースコード１１毎に未完了検証項目が存在するか判定する。時間算出部５０５は、未完了検証項目が存在する検証対象ソースコード１１について、検証結果に保存されている検証所要時間が最長であった検証の際に記録された未完了検証項目数と、当該検証対象ソースコード１１のその他検証結果として保存されている未完了検証項目数を比較する。その結果、検証所要時間が最長であった際に記録された未完了検証項目数が、同一であるか、もしくは最大である場合には、時間算出部５０５は、検証所要時間が最長であった際に記録された検証所要時間と、今回の検証において割り付けられた検証予定時間をさらに比較する。さらにその結果、今回の検証において割り付けられた検証予定時間が、検証所要時間が最長であった際に記録された検証所要時間より短い場合には、時間算出部５０５は、今回の検証において割付けられた検証予定時間内では、当該検証対象ソースコード１１の検証は、完了しない可能性が高いと判定する。
【００６７】
時間算出部５０５は、このようにして、割付けられた検証予定時間内では検証が完了しない可能性が高いと判定した検証対象ソースコード１１について、今回の検証の対象外としたほうがよい旨の通知（以下、完了不可通知）を、情報表示部５０３を介して表示装置３００へ出力する。図１２は、検証対象ソースコード１１に対応させて完了不可通知を表示装置３００へ出力した例を示している。図１２を参照すると、検証対象ソースコード１１の一覧リストにおいて、２個の検証対象ソースコード１１に対して完了不可通知を示すようにフラグを立っていることが確認できる。なお、完了不可通知の表示方法は、これに限定しない。検証実施者は、表示装置３００において、当該検証対象ソースコード１１の完了不可通知を確認する。検証実施者は、必要に応じて、検証対象から外すか、または外さないかを入力装置４００へ入力する。本実施例において検証実施者は、図１２に示される完了不可通知を示された２個の検証対象ソースコードを検証対象から外すこととする。
【００６８】
検証実施者が、当該２個の検証対象ソースコード１１を検証対象から外す操作を行うと、検証対象ソースコード１１の数量が変化する。これに伴って時間算出部５０５は、再度、検証予定時間を算出する。さらに時間算出部５０５は、再度、前述の方法により、新たに割付けられた検証予定時間に基づいて、割付けられた検証予定時間内では検証が完了しない可能性のある検証対象ソースコード１１を抽出する。時間算出部５０５は、本判定動作を、全ての検証対象ソースコード１１に行い、全ての検証対象ソースコード１１に対して、本判定動作が完了すると検証対象ソースコード１１が確定する。時間算出部５０５は、最終的に確定した検証対象ソースコード１１と、検証対象ソースコード１１の検証順番と、検証対象ソースコード１１毎の検証予定時間を記載した一覧リスト「一覧リスト５」を管理データベース５０８へ保存する。
【００６９】
図１３は、「一覧リスト５」の例を示している。本実施例において、検証実施者は、図１２において完了不可通知が示されていた２個の検証対象ソースコード１１を検証対象から外した。検証対象ソースコードの数が８個へ減少したため、時間算出部５０５が検証予定時間を再計算し、検証制限時間の１４，０００秒を残る８個の検証対象ソースコードへ割り付ける。図１３を参照すると、時間算出部５０５は、８個の検証対象ソースコードへ、新たに１,７５０秒の検証予定時間を割り付けていることが確認できる。
【００７０】
実行命令部５０６は、検証実行部２０１へ検証の実行を命令する。管理データベース５０８に保存された「一覧リスト５」を入力する。実行命令部５０６は、「一覧リスト５」に記録されている検証順番で、ソースコード管理ＤＢ１０１から検証対象ソースコード１１を取得する。実行命令部５０６は、「一覧リスト５」に記録されている当該検証対象ソースコード１１に対応する検証予定時間内で、当該ソースコード１１の検証を実行するように検証実行部２０１へ命令を出力する。
前述のとおり、図５は、実行命令部５０６から検証実行部２０１への検証実行命令のデータ内容を示している。図５の命令によれば、実行命令部５０６は、検証実行部２０１へ、検証順番が３番目に位置するソースコードＩＤ４２を、検証予定時間１,７５０秒で検証を実行するように命令している。検証実行部２０１は、検証実行命令を受けて、当該検証対象ソースコード１１の検証を実行する。
【００７１】
結果受取部５０７は、検証実行部２０１が出力する検証結果２０を入力し、検証予定時間の再割付けを実行し、検証結果２０を管理データベース５０８へ保存し、実行命令部５０６へ当該検証対象ソースコード１１の検証完了を通知する。
当該実行命令部５０６は、結果受取部５０７が出力する当該検証対象ソースコード１１の検証完了の通知を入力する。実行命令部５０６は、通知を受けて当該検証対象ソースコード１１の次の検証順番に位置する検証対象ソースコード１１をソースコード管理ＤＢ１０１から取得し、検証の実行を検証実行部２０１へ命令する。
【００７２】
結果受取部５０７は、検証実行部２０１が検証対象ソースコード１１の検証を実行した結果として出力する検証結果２０を入力する。結果受取部５０７は、管理データベース５０８に保存されている「一覧リスト５」を読み込む。結果受取部５０７は、「一覧リスト５」に記録された当該検証対象ソースコード１１の検証予定時間を抽出する。結果受取部５０７は、検証結果２０に記録された検証所要時間が、当該検証対象ソースコード１１の検証予定時間より短いか否かを判定する。なお、検証予定時間は、検証結果２０に記録されている時間を使用してもよい。
判定の結果、検証所要時間が検証予定時間より短い場合、結果受取部５０７は、検証予定時間と検証所要時間との差分を算出する。算出された差分は、余剰検証予定時間となる。余剰検証予定時間は、検証全体の制限時間である検証制限時間内における余りの時間を意味する。
結果受取部５０７は、「一覧リスト５」において、当該検証対象ソースコード１１より検証順番が後ろに位置し、これから検証が実行される検証対象ソースコード１１である未実行検証対象ソースコード１２の数を算出する。結果受取部５０７は、算出した余剰検証予定時間を、未実行検証対象ソースコード１２の数で除算して、再割り付け用の余剰検証予定時間を算出する。結果受取部５０７は、再割り付け用の余剰検証予定時間を、「一覧リスト５」の未実行検証対象ソースコード１２に対応して記録されている検証予定時間に加算して再割付けする。結果受取部５０７は、検証予定時間の再割付け後の「一覧リスト５」を管理データベース５０８に保存する。
【００７３】
添付の図を用いて説明する。前述のとおり図６Ａは、検証実行部２０１が出力する検証結果２０を示している。図６Ａを参照すると、ソースコードＩＤ２０の検証は、検証予定時間１,７５０秒に対して、検証所要時間７５０秒で完了している。検証予定時間と検証所要時間の差分は１,０００秒であり、結果受取部５０７は、余剰検証予定時間を１，０００秒と算出する。また、図１３を参照すると、「一覧リスト５」において、ソースコードＩＤ４２の検証順番は３番である。未実行検証対象ソースコード１２は、検証順番４番から検証順番８番までの検証対象ソースコード１１となる。そのため、結果受取部５０７は、未実行検証対象ソースコード１２を５個と算出する。
ソースコードＩＤ４２の検証対象ソースコード１１の検証が完了した時点で、余剰検証時間は１，０００秒発生し、未実行検証対象ソースコード１２は５個であるので、結果受取部５０７は、未実行検証対象ソースコード１２毎に２００秒の検証予定時間を追加で割り付ける。  図１４は、余剰検証予定時間を再割付けした後の「一覧リスト５」を示している。図１４を参照すると、結果受取部５０７が、５個の身実行検証対象ソースコード１２へ検証予定時間を２００秒ずつ加算したため、検証順番４番から検証順番８番までの各検証対象ソースコード１１毎の検証予定時間が、１，７５０秒から１，９５０秒に増加しているのが確認できる。このようにして、検証の実行後に発生した余り時間を他の検証対象ソースコード１１に割付けることができる。
【００７４】
次に、結果受取部５０７は、検証実行装置から入力した検証結果２０を、管理データベース５０８に保存する。結果受取部５０７は、検証対象ソースコード１１の検証の結果によって、余剰検証予定時間が発生しない場合には、当該検証対象ソースコード１１の検証結果２０の保存処理のみを行う。
前述のとおり、図６Ｂは、検証予定時間内に検証が完了しない場合の検証結果２０を示している。図６Ｂによれば、ソースコードＩＤ４０６の検証は、検証予定時間１，７５０秒で検証が完了せず、未完了検証項目が２２個残っていることが確認できる。結果受取部は５０７は、この場合には余剰検証予定時間は発生しないため、図６Ｂの当該検証結果を管理データベース５０８に保存する処理のみを行う。
結果受取部５０７は、「一覧リスト５」への余剰検証予定時間の再割付け処理と、検証結果の保存処理が完了した後、実行命令部５０６へ当該検証対象ソースコード１１の検証が完了したことを通知する。実行命令部５０６は、結果受取部５０７からの通知を受けて、次の順番に位置する検証対象ソースコード１１の検証処理へ移行する。
【００７５】
管理データベース５０８は、検証に関するデータを保存する。検証に関するデータとは、順番決定部５０２が決定する検証対象ソースコード１１の検証順番を記録した「一覧リスト２」や、時間算出部５０５が算出する検証対象ソースコード１１毎の検証予定時間を記録した「一覧リスト４」、最終的に検証対象として確定した検証対象ソースコード１１を記録した「一覧リスト５」、検証実行装置２００が出力する検証結果２０である。管理データベース５０８は、結果受取部５０７が、検証対象ソースコード１１毎の検証が完了する度に出力する、検証結果２０を保存する。管理データベース５０８は、各部位からの情報抽出命令に基づき、データを抽出して応答出力を行う。前述のとおり、図８は、本発明による管理データベース５０８に保存される検証結果２０の例を示している。図８を参照すると、ソースコードＩＤに検証所要時間と未完了検証項目数が対応して保存されていることが確認できる。検証ＩＤは、当該検証結果２０が記録された検証毎に割り振られたＩＤである。なお、管理データベース５０８に保存する検証結果２０のデータ形式はこの例に限定しない。
【００７６】
以上が、本発明の本実施例における構成の説明である。
時間算出部５０５は、検証制限時間内で全ての検証対象ソースコード１１に検証予定時間を割付けるため、全ての検証対象ソースコード１１に対して検証が実行される。
また、検証実行部２０１は、検証を実行している検証対象ソースコード１１に対する検証が検証予定時間内で完了しない場合には、検証開始からの経過時間が検証予定時間に達した時点で当該検証対象ソースコード１１に対する検証を終了するため、全ての検証対象ソースコード１１に対する検証が検証制限時間を超えることは無い。
さらに、結果受取部５０７が、検証対象ソースコード１１毎の検証が完了する度に、余剰検証時間を算出して未実行検証対象ソースコード１２へ再割付けするため、限られた検証制限時間内で検証予定時間を動的に配分することができ、検証制限時間の効率利用が可能である。
加えて、順番決定部５０２は、検証所要時間が短いと想定する順番に検証対象ソースコード１１の検証順番を決定するため、順番の早い段階で余剰検証予定時間を生み出しやすい検証順番で検証を実行していくことができる。
【００７７】
［動作方法の説明］
次に、本発明の本実施例における動作方法の説明を行う。図１５から図１７は本実施例における本発明の動作方法を表している。
【００７８】
始めに、図１５は、ソースコード管理装置１００から検証対象ソースコード１１を抽出し、検証順番を決定し、総検証想定時間を算出し、検証順番に並べられた検証対象ソースコード１１の一覧リストと総検証想定時間を表示装置へ表示するまでの動作方法である。
【００７９】
（ステップＡ０１）
まず、検証実施者が、入力装置４００へ、検証対象ソースコード１１の抽出命令を入力する。入力装置４００は、検証対象ソースコード１１の抽出命令を検知し、入力受付部５０４へ検証対象ソースコード１１の抽出命令を出力する。入力受付部５０４は、入力装置４００が出力する検証対象ソースコード１１の抽出命令を入力し、選択部５０１へ検証対象ソースコード１１の抽出命令を出力する。
【００８０】
（ステップＡ０２）
選択部５０１は、入力受付部５０４が出力した検証対象ソースコード１１の抽出命令を入力する。選択部５０１は、ソースコード管理装置１００へ、ソースコード１０から検証対象ソースコード１１の抽出を命令する。ソースコード管理装置１００は、ソースコード１０の更新状態情報１３に基づいて検証対象ソースコード１１を抽出する。ソースコード管理装置１００は、抽出した検証対象ソースコード１１を選択部５０１へ出力する。選択部５０１は、ソースコード管理装置１００が出力する検証対象ソースコード１１を入力する。選択部５０１は、検証対象ソースコード１１の「一覧リスト１」を作成する。選択部５０１は、作成した「一覧リスト１」を順番決定部５０２へ出力する。
【００８１】
（ステップＡ０３）
順番決定部５０２は、選択部５０１が出力する「一覧リスト１」を入力する。順番決定部５０２は、「一覧リスト１」の検証対象ソースコード１１を、管理データベース５０８に保存されている検証結果に基づいて分類（前述の分類１、分類２、分類３）する。
【００８２】
（ステップＡ０４）
順番決定部５０３は、各分類毎に検証対象ソースコード１１の検証順番を決定する。
【００８３】
（ステップＡ０５）
順番決定部５０２は、各分類毎の検証順番を結合して、検証対象ソースコード１１全体の検証順番を決定する。
【００８４】
（ステップＡ０６）
順番決定部５０２は、検証対象ソースコード１１全体の検証順番を、「一覧リスト２」として、管理データベース５０８へ保存する。
【００８５】
（ステップＡ０７）
情報表示部５０３は、管理データベース５０８から「一覧リスト２」を読み込む。情報表示部５０３は、「一覧リスト２」の検証対象ソースコード１１毎に、管理データベース５０８に保存された検証結果から、検証結果の有無、検証所要時間、未完了検証項目数を抽出し、検証対象ソースコード１１に対応させた「一覧リスト３」を作成する。情報表示部５０３は、「一覧リスト３」を表示装置３００へ出力する。表示装置３００は、「一覧リスト３」を表示する。
【００８６】
（ステップＡ０８）
情報表示部５０３は、「一覧リスト２」の検証対象ソースコード１１を分類（前述の分類１、分類２、分類３）毎に、検証対象ソースコード１１毎の検証想定時間の算出する。
【００８７】
（ステップＡ０９）
情報表示部５０３は、各分類毎の検証想定時間を合計し、検証対象ソースコード１１全体の総検証想定時間を算出する。
【００８８】
（ステップＡ１０）
情報表示部５０３は、総検証想定時間を表示装置３００へ出力する。表示装置３００は、総検証想定時間を表示する。
【００８９】
以上の動作方法により、検証管理装置５００は、ソースコード管理装置１００から検証対象ソースコード１１を抽出して、管理データベース５０８に保存されている検証結果に基づいて検証順番を決定し、同様に管理データベース５０８に保存されている検証結果に基づいて総検証想定時間を算出して、検証順番に並べられた検証対象ソースコード１１に過去の検証結果を対応させた「一覧リスト３」と共に総検証想定時間を、表示装置３００へ出力する。
【００９０】
過去の検証結果に基づいて、検証に要する時間が短いと思われる順番に、検証対象ソースコード１１の検証順番が決定されるため、検証において余剰検証予定時間を生み出し易くなる。また、過去の検証結果に基づいて、検証想定時間を算出するため、検証実施者は検証全体に要する時間を容易に把握することができる。
【００９１】
次に、図１６Ａ、図１６Ｂは、検証制限時間を受け付け、検証予定時間を割り付け、検証予定時間内で検証が完了しない可能性のある検証対象ソースコード１１を抽出し、当該検証対象ソースコードについて検証対象外としたほうがよい旨の通知を出力し、検証対象ソースコード１１と検証対象ソースコード１１の検証順番と、検証対象ソースコード１１の検証予定時間を確定するまでの動作方法を示している。
【００９２】
（ステップＢ０１）
検証実施者は、表示装置３００に表示された「一覧リスト３」と総検証想定時間を確認し、入力装置４００へ検証制限時間を入力する。入力装置４００は、検証制限時間の入力を検知し、入力受付部５０４へ検証制限時間を出力する。入力受付部５０４は、入力装置４００が出力する検証制限時間を入力し、時間算出部５０５へ検証制限時間を出力する。
【００９３】
（ステップＢ０２）
時間算出部５０５は、入力受付部５０４が出力する検証制限時間を入力する。時間算出部５０５は、管理データベース５０８から「一覧リスト２」を読み込む。時間算出部５０５は、「一覧リスト２」に記載された検証対象ソースコード１１の個数を算出する。時間算出部５０５は、検証制限時間を、「一覧リスト２」に記載された検証対象ソースコード１１の個数で除算して、検証対象ソースコード１１毎の検証予定時間を算出する。
【００９４】
（ステップＢ０３）
時間算出部５０５は、検証予定時間を、「一覧リスト２」の検証対象ソースコード１１毎に割り付ける。時間算出部５０５は、検証対象ソースコード１１毎に検証予定時間を割り付けた「一覧リスト４」を作成する。
【００９５】
（ステップＢ０４）
時間算出部５０５は、「一覧リスト４」を管理データベース５０８に保存する。
【００９６】
（ステップＢ０５）
時間算出部５０５は、検証対象ソースコード１１毎に割り付けられた検証予定時間内では検証が完了しない可能性のある検証対象ソースコード１１を抽出する。この処理は、「一覧リスト４」の検証対象ソースコード１１の検証順番に従って、検証対象ソースコード１１毎に行われる。時間算出部５０５は、検証順番ｎ＝ｎ＋１（初期状態では、ｎ＝０）として、処理対象となる検証順番ｎの検証対象ソースコード１１が存在するかを判定する。時間算出部５０５は、処理対象となる検証順番ｎの検証対象ソースコード１１が存在する場合は、検証順番ｎの検証対象ソースコード１１を処理対象として選択してステップＢ０６へ進む。処理対象となる検証順番ｎの検証対象ソースコードが存在しない場合は、処理は終了となりステップＢ１４へ進む。
【００９７】
（ステップＢ０６）
時間算出部５０５は、検証順番ｎの検証対象ソースコード１１に、過去の検証結果２０が管理データベース５０８に存在するか否かを確認する処理を行う。時間算出部５０５は、処理の結果、検証結果２０が存在する場合には、ステップＢ０７へ進む。時間算出部５０５は、処理の結果、検証結果２０が存在しない場合には、次の検証順番に位置する検証対象ソースコード１１の処理に移るため、ステップＢ０５へ戻る。
【００９８】
（ステップＢ０７）
時間算出部５０５は、検証順番ｎの検証対象ソースコード１１に検証結果２０が存在する場合、検証順番ｎの検証結果２０に未完了検証項目が存在するか否かを確認する処理を行う。時間算出部５０５は、処理の結果、未完了検証項目が存在する場合は、ステップＢ０８へ進む。時間算出部５０５は、処理の結果、未完了検証項目が存在しない場合には、次の検証順番に位置する検証対象ソースコード１１の処理に移るため、ステップＢ０５へ戻る。
【００９９】
（ステップＢ０８）
時間算出部５０５は、検証順番ｎの検証対象ソースコード１１に、検証結果２０が存在し、かつ検証結果２０に未完了検証項目が存在する場合、当該検証順番ｎの検証対象ソースコード１１の検証結果２０のうちで、検証に要した検証所要時間が最長である検証結果２０を抽出する。
【０１００】
（ステップＢ０９）
時間算出部５０５は、検証順番ｎの検証対象ソースコード１１について、管理データベース５０８から抽出した検証所要時間が最長である検証結果２０に記録された未完了検証項目数と、その他の検証結果２０に記録された未完了検証項目数を比較する。
時間算出部５０５は、比較の結果、検証所要時間が最長である検証結果２０に記録された未完了検証項目数が、その他の検証結果に記録された未完了検証項目数のうち、最大の項目数と同一であるか、最大の項目数以上である場合、ステップＢ１０へ進む。時間算出部５０５は、比較の結果が、それ以外の場合、次の検証順番に位置する検証対象ソースコード１１の処理に移るため、ステップＢ０５へ戻る。
【０１０１】
（ステップＢ１０）
時間算出部５０５は、検証所要時間が最長である検証結果に記録された未完了検証項目数が、検証結果ｎの検証対象ソースコード１１についてのその他の検証結果に記録された未完了検証項目数と比較し、最大であるか、もしくは最大であるものと同一である検証順番ｎの検証対象ソースコードについて、検証所要時間が最長である検証結果に記録された検証所要時間と、「一覧リスト４」に記録された今回の検証において割り付けられた検証予定時間を比較する。
時間算出部５０５は、検証順番ｎの検証対象ソースコード１１について、比較の結果、「一覧リスト４」に記録されている今回の検証において割り付けられた検証予定時間が、検証所要時間が最長であった際に検証結果に記録された検証所要時間より短い場合、検証順番ｎの検証対象ソースコード１１の検証は、今回の検証において割付けられた検証予定時間内では当該検証対象ソースコード１１の検証は完了しない可能性が高いと判定し、ステップＢ１１へ進む。時間算出部５０５は、比較の結果が、それ以外の場合、次の検証順番に位置する検証対象ソースコード１１の処理に移るため、ステップＢ０５へ戻る。
【０１０２】
（ステップＢ１１）
時間算出部５０５は、検証順番ｎの検証対象ソースコード１１について、今回においても検証は検証予定時間内に完了しない可能性が高いと判定した場合、検証順番ｎの検証対象ソースコード１１を今回の検証の対象外にしたほうがよい旨の通知として、完了不可通知を、情報表示部５０３へ出力する。情報表示部５０３は、時間算出部５０５が出力する完了不可通知を入力し、表示装置３００へ出力する。表示装置３００は、情報表示部５０３が出力する完了不可通知を入力して表示する。
【０１０３】
（ステップＢ１２）
検証実施者は、表示装置３００に表示された、検証順番ｎの検証対象ソースコード１１の完了不可通知を確認する。検証実施者は、必要に応じて検証順番ｎの検証対象ソースコード１１を検証対象から外す命令か、検証対象から外さない命令（あるいは、検証対象について特に変更は行わない旨の命令）を入力装置４００へ入力する。検証順番ｎの検証対象ソースコード１１を検証対象から外す命令が入力された場合、ステップＢ１３へ進む。検証順番ｎの検証対象ソースコード１１を検証対象から外さない命令（あるいは、検証対象について特に変更は行わない旨の命令）が入力された場合、次の検証順番に位置する検証対象ソースコード１１の処理に移るため、ステップＢ０５へ戻る。
【０１０４】
（ステップＢ１３）
検証実施者が、検証順番ｎの検証対象ソースコード１１を検証対象から外す命令（以下、削除命令）を、入力装置４００へ入力した場合、入力装置４００は、検証順番ｎの検証対象ソースコード１１の削除命令を検知し、入力受付部５０４へ検証順番ｎの検証対象ソースコード１１の削除命令を出力する。入力受付部５０４は、入力装置４００が出力する検証順番ｎの検証対象ソースコード１１の削除命令を入力し、時間算出部５０４へ検証順番ｎの検証対象ソースコード１１の削除命令を出力する。時間算出部５０４は、入力受付部５０４が出力する検証順番ｎの検証対象ソースコード１１の削除命令を入力する。時間算出部５０４は、管理データベース５０８から「一覧リスト４」を読み込む。時間算出部５０４は、「一覧リスト４」から検証順番ｎの検証対象ソースコード１１を削除する。時間算出部５０４は、検証順番ｎの検証対象ソースコード１１を削除した「一覧リスト４」を管理データベース５０８に保存する。これにより、管理データベース５０８上の「一覧リスト４」は、検証順番ｎの検証対象ソースコード１１が削除された状態で更新される。時間算出部５０４は、検証順番ｎの検証対象ソースコード１１を「一覧リスト４」が削除されたことにより、検証対象ソースコード１１の総数が変化するので、再度検証予定時間を算出するために、ステップＢ０２に戻る。
【０１０５】
（ステップＢ１４）
時間算出部５０５は、検証順番に沿って全ての検証対象ソースコード１１に対してステップＢ０５からステップＢ０１３を繰り返す。ステップＢ０５において、処理対象となる検証対象ソースコード１１が無くなった時点で、全ての検証対象ソースコード１１への処理が完了したことを意味する。これによって、最終的に検証対象となる検証対象ソースコード１１の総数と、検証対象ソースコード１１の検証順番と、検証対象ソースコード１１毎の検証予定時間が確定する。時間算出部５０５は、最終的に確定した、検証対象ソースコード１１と、検証対象ソースコード１１の検証順番と、検証対象ソースコード１１毎の検証予定時間を記載した「一覧リスト５」を、管理データベース５０８に保存する。
【０１０６】
以上の動作方法によって、検証管理装置５００は、検証実施者より検証制限時間を受け付け、検証対象ソースコード１１に検証予定時間を割り付け、検証予定時間内で検証が完了しない可能性のある検証対象ソースコード１１を検証対象から削除し、最終的に検証対象となる検証対象ソースコード１１の総数と、検証対象ソースコード１１の検証順番と、検証対象ソースコード１１毎の検証予定時間を確定する。
【０１０７】
過去の検証結果に基づいて、検証対象ソースコード１１毎に割り付けられた検証予定時間では検証が完了しないことを予測することで、当該検証対象ソースコード１１はあらかじめ検証対象外とすることも選択できるため、検証制限時間が有効に利用できる。
【０１０８】
次に、図１７は、確定した検証対象ソースコード１１を検証順番に従って検証予定時間内で検証を行い、検証に要した検証所要時間が検証予定時間より短い場合には、その差分であり余りとなった余剰検証予定時間を、当該検証対象ソースコード１１より検証順番が後ろに位置し、これから検証が実行する未実行検証対象ソースコード１１に再割り付けを行うまでの動作方法を表している。
【０１０９】
（ステップＣ０１）
検証実施者は、入力装置４００へ、検証対象ソースコード１１の検証実行命令を入力する。入力装置４００は、検証実行命令の入力を検知し、入力受付部５０４へ検証実行命令を出力する。入力受付部５０４は、入力装置４００が出力する検証実行命令を入力し、実行命令部５０６へ検証実行命令を出力する。
【０１１０】
（ステップＣ０２）
実行命令部５０６は、入力受付部５０４が出力する検証実行命令を入力する。実行命令部５０６は、管理データベース５０８から「一覧リスト５」を読み込む。実行命令部５０６は、検証順番ｎ＝ｎ＋１（初期状態では、ｎ＝０）として、処理対象となる検証対象ソースコード１１が「一覧リスト５」に存在するかを判定する。実行命令部５０６は、処理対象となる検証順番ｎに位置する検証対象ソースコード１１が、「一覧リスト５」に存在する場合には、ソースコード管理装置１００から検証順番ｎに位置する検証対象ソースコード１１を読み込む。実行命令部５０６は、検証順番ｎに位置する検証対象ソースコード１１の検証を、「一覧リスト５」に記録されている検証予定時間内で実行するように検証実行部２０１へ命令し、ステップＣ０３へ進む。実行命令部５０６は、次の検証順番ｎに位置する検証対象ソースコード１１が存在しない場合、検証は完了となるため、ステップＣ１１へ進む。
【０１１１】
（ステップＣ０３）
検証実行部２０１は、実行命令部５０６の命令に基づいて、検証順番ｎの検証対象ソースコード１１に検証を、検証順番ｎの該検証対象ソースコード１１に割付けられた検証予定時間内で実行する。検証実行部２０１は、検証順番ｎの検証対象ソースコード１１の検証を開始してからの経過時間が、検証順番ｎの該検証対象ソースコード１１に割付けられた検証予定時間に到達した時点で、検証を打ち切って終了する。
【０１１２】
（ステップＣ０４）
検証実行部２０１は、検証順番ｎの検証対象ソースコード１１の検証が完了すると（あるいは検証予定時間に到達して検証を打ち切って終了すると）、検証順番ｎの検証対象ソースコード１１の検証結果２０を作成する。検証実行部２０１は、結果受取部５０７へ、作成した検証順番ｎの検証対象ソースコード１１の検証結果２０を出力する。
【０１１３】
（ステップＣ０５）
結果受取部５０７は、検証実行装置２００が出力する検証順番ｎの検証対象ソースコード１１の検証結果２０を入力する。結果受取部５０７は、「一覧リスト５」を読み込む。結果受取部５０７は、検証順番ｎの検証対象ソースコード１１の検証結果２０に記録された検証に要した検証所要時間と、「一覧リスト５」に記録された当該検証対象ソースコード１１に割付けられた検証予定時間とを比較する。結果受取部５０７は、比較の結果、検証所要時間が検証予定時間より短い場合には、余りとなった検証予定時間の再割付け処理のために、ステップＣ０６へ進む。結果受取部５０７は、それ以外の場合は、検証結果２０を記録するため、ステップＣ０９へ進む。
【０１１４】
（ステップＣ０６）
結果受取部５０７は、検証順番ｎの検証対象ソースコード１１の検証結果２０に記録された検証に要した検証所要時間が、「一覧リスト５」に記録された当該検証対象ソースコード１１に割付けられた検証予定時間より短い場合、検証予定時間と検証所要時間との差分を算出する。検証予定時間と検証所要時間との差分は、検証順番ｎの検証対象ソースコード１１に割り付けられた検証予定時間の余りである余剰検証予定時間を表す。結果受取部５０７は、「一覧リスト５」に記録された検証対象ソースコード１１のうち、検証順番ｎの検証対象ソースコード１１よりも検証順番が後ろに位置し、これから検証を実行する検証対象ソースコード１１である未実行検証対象ソースコード１２の数を算出する。結果受取部５０７は、余剰検証予定時間を、未実行検証対象ソースコード１２の数で除算して、再割り付け用の余剰検証予定時間を算出する。
【０１１５】
（ステップＣ０７）
結果受取部５０７は、再割り付け用の余剰検証予定時間を、未実行検証対象ソースコード１２毎に、現在「一覧リスト５」に記録されている未実行検証対象ソースコード１２の検証予定時間に加算して割り付ける。
【０１１６】
（ステップＣ０８）
結果受取部５０７は、検証予定時間を再割り付けた後の「一覧リスト５」を管理データベース５０８に保存する。
【０１１７】
（ステップＣ０９）
結果受取部５０７は、検証順番ｎの検証対象ソースコード１１の検証結果を管理データベース５０８保存する。
【０１１８】
（ステップＣ１０）
結果受取部５０７は、実行命令部５０６へ検証順番ｎの検証対象ソースコード１１の検証完了通知を出力する。実行命令部５０６は、結果受取部５０７が出力する検証順番ｎの検証対象ソースコード１１の検証完了通知を入力する。実行命令部５０６は、次の検証順番に位置する検証対象ソースコード１１の処理に移るため、ステップＣ０２へ戻る。
【０１１９】
（ステップＣ１１）
実行命令部５０６は、全ての検証対象ソースコード１１の検証が完了すると検証完了する。
【０１２０】
以上の動作方法により、確定した検証対象ソースコード１１を検証順番に従って検証予定時間内で検証を行い、検証に要した検証所要時間が検証予定時間より短い場合には、その差分であり余りとなった余剰検証予定時間を、当該検証対象ソースコード１１より検証順番が後ろに位置し、これから検証を実行する未実行検証対象ソースコード１１に再割り付けを行う。
【０１２１】
検証順番は、前述のとおり順番が後になるに従って検証に要する時間が長くなるように決定されている。余剰検証予定時間の再割付を行うことによって、検証予定時間が延長されるため、実行することが可能な検証項目を増やすことができる。これによって、当初割り当てられた検証予定時間内では検証が完了しない可能性のあった検証対象ソースコード１１が、余剰検証予定時間によって延長された検証予定時間内において検証を完了させることが可能になる可能性が増加する。
【０１２２】
また、検証実行部２０１は、検証を実行している検証対象ソースコード１１に割り付けられた検証予定時間内に、当該検証対象ソースコード１１の検証が完了しない場合には、検証開始からの経過時間が検証予定時間に到達した時点で当該検証対象ソースコード１１の検証を完了させる。そのため、本発明の検証管理装置が検証対象ソースコード１１全体として検証制限時間を超えて、検証を実行することはなく、検証制限時間内で検証対象ソースコードの検証を完了させることができる。
【０１２３】
以上が、本発明の本実施例における動作方法の説明である。
【０１２４】
なお、本実施例においては、管理データベース５０８に保存する検証対象ソースコード１１データについて、一覧リストを作成する形式で保存しているが、管理データベース５０８に保存するデータはこの方法に限定しない。検証対象ソースコード１１に関する管理データベース５０８へのデータの保存形式、保存方法、受渡し動作や、管理データベース５０８からのデータの抽出手段等は従来の技術で実現するものである。
本発明により、全ての検証対象ソースコード１１に対する検証を、定められた検証制限時間を超えることなく、限られた検証制限時間を効率的に利用しながら検証を実行することが可能となるのである。
【図面の簡単な説明】
【０１２５】
【図１】本発明によるソースコード検証管理装置の構成図である。
【図２】本発明によるソースコード検証管理装置の各構成装置の構成図である。
【図３】本発明によるソースコード検証管理装置の機能ブロック図である。
【図４】本発明によるソースコード管理ＤＢに記録された更新状態情報の例を示す図である。
【図５】本発明による実行命令部５０６からの検証実行命令のデータ内容の例を示す図である。
【図６Ａ】本発明による検証結果に記録されているデータの例を示す図である。
【図６Ｂ】本発明による検証結果に記録されているデータの例を示す図である。
【図７】本発明による「一覧リスト１」の例を示す図である。
【図８】本発明による管理データベースに保存される検証結果の例を示す図である。
【図９Ａ】本発明による「一覧リスト１」に記載された検証対象ソースコードに検証結果を対応させた例を示す図である。
【図９Ｂ】本発明による「一覧リスト１」に記載された検証対象ソースコードの分類毎に検証順番を決定した例を示す図である。
【図９Ｃ】本発明による検証対象ソースコードの全体の検証順番を決定した「一覧リスト２」の例を示す図である。
【図１０】本発明による「一覧リスト３」と総検証想定時間を表示装置へ出力した例を示す図である。
【図１１】本発明による「一覧リスト４」の例を示す図である。
【図１２】本発明による「一覧リスト３」に対応して完了不可通知を表示装置へ表示した例を示す図である。
【図１３】本発明による「一覧リスト５」の例を示す図である。
【図１４】本発明による余剰検証予定時間を再割付けした後の「一覧リスト５」の例を示した図である。
【図１５】本発明による動作方法のフローチャートである。
【図１６Ａ】本発明による動作方法のフローチャートである。
【図１６Ｂ】本発明による動作方法のフローチャートである。
【図１７】本発明による動作方法のフローチャートである。
【符号の説明】
【０１２６】
１  処理部
２  記憶部
３  入力情報受付部
４  出力部
５  通信部
１０  ソースコード
１１  検証対象ソースコード
１２  未実行検証対象ソースコード
１３  更新状態情報
２０  検証結果
５０  検証結果
５１  検証対象ソースコード
１００  ソースコード管理装置
１０１  ソースコード管理データベース
２００  検証実行装置
２０１  検証実行部
３００  表示装置
４００  入力装置
５００  検証完了装置
５０１  選択部
５０２  順番決定部
５０３  入力情報受付部
５０４  情報表示部
５０５  時間算出部
５０６  実行命令部
５０７  結果受取部
５０８  管理データベース
【図１】
0005046109.tif 000002
【図２】
0005046109.tif 000003
【図３】
0005046109.tif 000004
【図４】
0005046109.tif 000005
【図５】
0005046109.tif 000006
【図６Ａ】
0005046109.tif 000007
【図６Ｂ】
0005046109.tif 000008
【図７】
0005046109.tif 000009
【図８】
0005046109.tif 000010
【図９Ａ】
0005046109.tif 000011
【図９Ｂ】
0005046109.tif 000012
【図９Ｃ】
0005046109.tif 000013
【図１０】
0005046109.tif 000014
【図１１】
0005046109.tif 000015
【図１２】
0005046109.tif 000016
【図１３】
0005046109.tif 000017
【図１４】
0005046109.tif 000018
【図１５】
0005046109.tif 000019
【図１６Ａ】
0005046109.tif 000020
【図１６Ｂ】
0005046109.tif 000021
【図１７】
0005046109.tif 000022