(57)【要約】  本発明は、プログラムの保守の優先度付けを合理的に行うことができるようにするための技術である。本発明に係るプログラム分析方法は、各プログラムについて、コストに関する特性を含む複数の特性の特性値と、累計障害発生件数との相関関係を分析する工程と、上記分析結果と、コストに関する特性を含む複数の特性の特性値とから、各プログラムについて障害発生予測値を算出する工程と、各プログラムについて、累計障害発生件数と障害発生予測値と障害１件あたりの想定損害度とから潜在リスクを算出する工程と、上記潜在リスクの値に基づき、対処すべきプログラムを選択する工程とを含む。このようにすれば、潜在リスクを基に保守を実施すべきプログラムを特定することができるようになる。
2008020468.tif 000002
【特許請求の範囲】
【請求項１】
各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納するステップと、
前記記憶装置に格納されている前記分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を含む前記複数の特性の特性値とから、各前記プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、
各前記プログラムについて、前記品質実績データ格納部に格納されている前記累計障害発生件数と前記プログラム業務損害データ格納部に格納されている前記障害発生予測値と障害１件あたりの想定損害度とから潜在リスクを算出し、前記プログラム業務損害データ格納部に格納する潜在リスク算出ステップと、
前記プログラム業務損害データ格納部に格納されている前記潜在リスクの値に基づき、対処すべきプログラムを選択する選択ステップと、
を含み、コンピュータにより実行されるプログラム分析方法。
【請求項２】
各前記プログラムについて、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値と、前記品質実績データ格納部に格納されている前記累計障害発生件数との相関関係を分析し、分析結果を第２分析結果として前記記憶装置に格納するステップと、
前記記憶装置に格納されている前記第２分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値とから、各前記プログラムについて第２の障害発生予測値を算出し、前記プログラム業務損害データ格納部に格納するステップと、
各前記プログラムについて、前記プログラム業務損害データ格納部に格納されている前記第１の障害発生予測値及び前記第２の障害発生予測値からコスト影響率を算出し、前記記憶装置に格納するステップと、
前記記憶装置に格納されている、各前記プログラムの前記コスト影響率のデータと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値とから、障害をゼロにするために必要な機能規模あたりのコストである単位コストを算出し、前記記憶装置に格納する単位コスト算出ステップと、
前記記憶装置に格納されている前記単位コストと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値と、前記プログラム業務損害データ格納部に格納されている、各前記プログラムの前記障害発生予測値と、前記品質実績データ格納部に格納されている前記累計障害発生件数又は前記障害発生予測値と前記累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも前記対処すべきプログラムについて所定の品質を確保するために必要なコストを算出し、前記プログラム業務損害データ格納部に格納するコスト算出ステップと、
をさらに含む請求項１記載のプログラム分析方法。
【請求項３】
前記障害１件あたりの想定損害度を、プログラムの業務損害ランクに対応する損害コストと、前記複数の特性に含まれる特定の特性に対応する、当該プログラムのコストとから算出し、前記プログラム業務損害データ格納部に格納するステップ
をさらに含む請求項１記載のプログラム分析方法。
【請求項４】
前記潜在リスク算出ステップが、
各前記プログラムについて、前記品質実績データ格納部に格納されている前記累計障害発生件数と前記プログラム業務損害データ格納部に格納されている前記障害発生予測値とから潜在障害発生件数を算出し、前記プログラム業務損害データ格納部に格納するステップと、
前記プログラム業務損害データ格納部に格納されている前記潜在障害発生件数と前記障害１件あたりの想定損害度とから、各前記プログラムについて潜在リスクを算出し、前記プログラム業務損害データ格納部に格納するステップと、
を含む請求項１記載のプログラム分析方法。
【請求項５】
前記選択ステップが、
各前記プログラムを、前記プログラム業務損害データ格納部に格納されている前記潜在リスクの値でソートするステップと、
前記潜在リスクの値が小さい順に当該潜在リスクの値を累計し、当該潜在リスクの累計値が所定の閾値を超えることとなった特定のプログラム及び前記潜在リスクの値が当該特定のプログラムより大きいプログラムを、前記対処すべきプログラムとして選択するステップと、
を含む請求項１記載のプログラム分析方法。
【請求項６】
前記単位コスト算出ステップが、
前記記憶装置に格納されている、各前記プログラムの前記コスト影響率のデータと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値との相関関係を分析し、当該分析の結果を第３分析結果として前記記憶装置に格納するステップと、
前記記憶装置に格納されている前記第３分析結果に従って、前記コスト影響率がゼロとなる前記機能規模あたりのコストを前記単位コストとして算出し、前記記憶装置に格納するステップと、
を含む請求項２記載のプログラム分析方法。
【請求項７】
前記コスト算出ステップが、
前記記憶装置に格納されている前記単位コストと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値とから、各前記プログラムについて理想コストを算出し、前記プログラム業務損害データ格納部に格納するステップと、
前記プログラム業務損害データ格納部に格納されている、各前記プログラムの前記障害発生予測値と、前記品質実績データ格納部に格納されている前記累計障害発生件数又は前記障害発生予測値と前記累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも前記対処すべきプログラムについて前記障害発生予測値に対する障害発生率を算出し、前記記憶装置又は前記プログラム業務損害データ格納部に格納するステップと、
前記プログラム業務損害データ格納部に格納されている、各前記プログラムの前記理想コストと、前記記憶装置又は前記プログラム業務損害データ格納部に格納されている前記障害発生予測値に対する障害発生率とから、少なくとも前記対処すべきプログラムについて所定の品質を確保するために必要なコストを算出し、前記プログラム業務損害データ格納部に格納するステップと、
を含む請求項２記載のプログラム分析方法。
【請求項８】
各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納するステップと、
前記記憶装置に格納されている前記分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を含む前記複数の特性の特性値とから、各前記プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、
各前記プログラムについて、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値と、前記品質実績データ格納部に格納されている前記累計障害発生件数との相関関係を分析し、分析結果を第２分析結果として前記記憶装置に格納するステップと、
前記記憶装置に格納されている前記第２分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値とから、各前記プログラムについて第２の障害発生予測値を算出し、前記プログラム業務損害データ格納部に格納するステップと、
各前記プログラムについて、前記プログラム業務損害データ格納部に格納されている前記第１の障害発生予測値及び前記第２の障害発生予測値からコスト影響率を算出し、前記記憶装置に格納するステップと、
前記記憶装置に格納されている、各前記プログラムの前記コスト影響率のデータと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値とから、障害をゼロにするために必要な機能規模あたりのコストである単位コストを算出し、前記記憶装置に格納する単位コスト算出ステップと、
前記記憶装置に格納されている前記単位コストと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値と、前記プログラム業務損害データ格納部に格納されている、各前記プログラムの前記障害発生予測値と、前記品質実績データ格納部に格納されている前記累計障害発生件数又は前記障害発生予測値と前記累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも一部のプログラムについて所定の品質を確保するために必要なコストを算出し、前記プログラム業務損害データ格納部に格納するコスト算出ステップと、
を含み、コンピュータにより実行されるプログラム分析方法。
【請求項９】
請求項１乃至８のいずれか１つ記載のプログラム分析方法をコンピュータに実行させるためのプログラム。
【請求項１０】
各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納する手段と、
前記記憶装置に格納されている前記分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を含む前記複数の特性の特性値とから、各前記プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納する手段と、
各前記プログラムについて、前記品質実績データ格納部に格納されている前記累計障害発生件数と前記プログラム業務損害データ格納部に格納されている前記障害発生予測値と障害１件あたりの想定損害度とから潜在リスクを算出し、前記プログラム業務損害データ格納部に格納する潜在リスク算出手段と、
前記プログラム業務損害データ格納部に格納されている前記潜在リスクの値に基づき、対処すべきプログラムを選択する選択手段と、
を有するプログラム分析装置。
【請求項１１】
各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納する手段と、
前記記憶装置に格納されている前記分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を含む前記複数の特性の特性値とから、各前記プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納する手段と、
各前記プログラムについて、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値と、前記品質実績データ格納部に格納されている前記累計障害発生件数との相関関係を分析し、分析結果を第２分析結果として前記記憶装置に格納する手段と、
前記記憶装置に格納されている前記第２分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値とから、各前記プログラムについて第２の障害発生予測値を算出し、前記プログラム業務損害データ格納部に格納する手段と、
各前記プログラムについて、前記プログラム業務損害データ格納部に格納されている前記第１の障害発生予測値及び前記第２の障害発生予測値からコスト影響率を算出し、前記記憶装置に格納する手段と、
前記記憶装置に格納されている、各前記プログラムの前記コスト影響率のデータと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値とから、障害をゼロにするために必要な機能規模あたりのコストである単位コストを算出し、前記記憶装置に格納する単位コスト算出手段と、
前記記憶装置に格納されている前記単位コストと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値と、前記プログラム業務損害データ格納部に格納されている、各前記プログラムの前記障害発生予測値と、前記品質実績データ格納部に格納されている前記累計障害発生件数又は前記障害発生予測値と前記累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも一部のプログラムについて所定の品質を確保するために必要なコストを算出し、前記プログラム業務損害データ格納部に格納するコスト算出手段と、
を有するプログラム分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの分析技術に関し、より詳しくはプログラムの保守のためのプログラム分析技術に関する。
【背景技術】
【０００２】
従来、ソフトウエアの開発、保守において、品質、コスト、開発期間の尺度として用いられてきたのはステップ数による規模であった。ステップ数による規模見積は新規開発の場合、ある程度の妥当性はあるものの保守の工程においては修正ステップ数のみでは品質、コスト、保守期間を評価、見積もるのは困難であった。これは、修正母体への影響度や修正対象の複雑度が定量的に測定できておらず、修正ステップ数に必ずしも反映されないからである。コスト見積においては規模の尺度として機能量を測定するファンクションポイントが用いられてきたが、こちらも保守を行う際のコスト見積が困難であるのは同様であり、品質評価にも適していない。他にもいくつかのソフトウエアメトリクスが考案されているが、主として品質評価が目的であり、それぞれのプロジェクト特性があるため万能なメトリクスは存在していない。コストや開発期間の評価については規模（例えばステップ数やファンクションポイントなど）のみで行われているのが現状である。【０００３】
例えば特開平７−１６０４９５号公報には、分散開発環境においても、容易かつ迅速にソフトウェアの品質評価を行うことができ、品質に関する情報の伝送速度が速く、品質の問題点に対する対応を迅速に行うことができるような、優れたソースコード評価装置が開示されている。具体的には、情報収集部により、評価対象システムを構成するプログラムのソースコードを各端末から収集する。品質メトリクス値計測部によってソースコードの品質メトリクス値を計測する。計測した品質メトリクス値に基づき、システム品質評価部によって評価対象システムの品質評価を行う。システム評価結果に基づき、危険プログラム抽出部によってトラブルにつながる可能性の高い危険プログラムを抽出する。情報フィードバック部により、評価結果とプログラムの危険度を各端末に対してフィードバックする。しかしながら、コストの面は考慮されておらず、評価時までの保守状況も反映されないので、保守時の優先度付けや費用対効果の評価ができない。
【特許文献１】特開平７−１６０４９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、保守時に適正なコストで高品質なプログラムを実現するためには、規模には現れてこないアプリケーションの特性を考慮した上で保守の優先度付けや費用対効果などの評価を行うことは、従来では不可能であった。【０００５】
従って、本発明の目的は、プログラムの保守のための新規なプログラム分析技術を提供することである。【０００６】
また、本発明の他の目的は、プログラムの保守の優先度付けを合理的に行うことができるようにするための技術を提供することである。【０００７】
さらに、本発明の他の目的は、プログラムの保守を費用対効果に応じて実施できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の第１の態様に係るプログラム分析方法は、各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納するステップと、記憶装置に格納されている分析結果と、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値とから、各プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、各プログラムについて、品質実績データ格納部に格納されている累計障害発生件数とプログラム業務損害データ格納部に格納されている障害発生予測値と障害１件あたりの想定損害度とから潜在リスクを算出し、プログラム業務損害データ格納部に格納する潜在リスク算出ステップと、プログラム業務損害データ格納部に格納されている潜在リスクの値に基づき、対処すべきプログラムを選択する選択ステップとを含む。【０００９】
このようにすれば、潜在リスクを基に保守を実施すべきプログラムを特定することができるようになる。なお、潜在リスクは、現在の保守状況を表す累計障害発生件数をも考慮して算出されるものであって、既に発現している問題以外についてのリスクであるため、より保守の必要性／優先度を表すことができる。【００１０】
また、各プログラムについて、特性データ格納部に格納されている、上記コストに関する特性を除く複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を第２分析結果として記憶装置に格納するステップと、記憶装置に格納されている第２分析結果と、特性データ格納部に格納されている、コストに関する特性を除く複数の特性の特性値とから、各プログラムについて第２の障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、各プログラムについて、プログラム業務損害データ格納部に格納されている第１の障害発生予測値及び第２の障害発生予測値からコスト影響率を算出し、記憶装置に格納するステップと、記憶装置に格納されている、各プログラムのコスト影響率のデータと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値とから、障害をゼロにするために必要な機能規模あたりのコストである単位コストを算出し、記憶装置に格納する単位コスト算出ステップと、記憶装置に格納されている単位コストと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値と、プログラム業務損害データ格納部に格納されている、各プログラムの障害発生予測値と、品質実績データ格納部に格納されている累計障害発生件数又は障害発生予測値と累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも上記対処すべきプログラムについて所定の品質を確保するために必要なコストを算出し、プログラム業務損害データ格納部に格納するコスト算出ステップとをさらに含むようにしてもよい。【００１１】
このように、所定の品質を確保するために必要なコストを算出するため、費用対効果を考慮した形で保守を実施することができるようになる。【００１２】
さらに、障害１件あたりの想定損害度を、プログラムの業務損害ランクに対応する損害コストと、複数の特性に含まれる特定の特性に対応する、当該プログラムのコストとから算出し、プログラム業務損害データ格納部に格納するステップをさらに含むようにしてもよい。このように、プログラムの業務損害ランク、すなわち業務への影響度を反映することによって、潜在リスクをより業務との関連性をもって算出することができるようになる。【００１３】
また、上で述べた潜在リスク算出ステップが、各プログラムについて、品質実績データ格納部に格納されている累計障害発生件数とプログラム業務損害データ格納部に格納されている障害発生予測値とから潜在障害発生件数を算出し、プログラム業務損害データ格納部に格納するステップと、プログラム業務損害データ格納部に格納されている潜在障害発生件数と障害１件あたりの想定損害度とから、各プログラムについて潜在リスクを算出し、プログラム業務損害データ格納部に格納するステップとを含むようにしてもよい。例えば、潜在障害発生件数と累計障害発生件数との差が負になる場合には、潜在障害発生件数をゼロなどに設定してもよい。また、この場合には、プログラムの特性を入れ替えて障害発生予測値を再度算出するようにしてもよい。【００１４】
さらに、上で述べた選択ステップが、各プログラムを、プログラム業務損害データ格納部に格納されている潜在リスクの値でソートするステップと、潜在リスクの値が小さい順に当該潜在リスクの値を累計し、当該潜在リスクの累計値が所定の閾値を超えることとなった特定のプログラム及び潜在リスクの値が当該特定のプログラムより大きいプログラムを、上記対処すべきプログラムとして選択するステップとを含むようにしてもよい。このようにすれば、全体として許容されるリスクを超える分に対して保守を行うべきプログラムとして特定できるようになる。【００１５】
さらに、上で述べた単位コスト算出ステップが、記憶装置に格納されている、各プログラムのコスト影響率のデータと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値との相関関係を分析し、当該分析の結果を第３分析結果として記憶装置に格納するステップと、記憶装置に格納されている第３分析結果に従って、コスト影響率がゼロとなる機能規模あたりのコストを単位コストとして算出し、記憶装置に格納するステップとを含むようにしてもよい。これによって妥当な単位コスト（すなわち、障害をゼロにするために必要な機能規模あたりのコスト）を特定できるようになる。【００１６】
また、上で述べたコスト算出ステップが、記憶装置に格納されている単位コストと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値とから、各プログラムについて理想コストを算出し、プログラム業務損害データ格納部に格納するステップと、プログラム業務損害データ格納部に格納されている、各プログラムの損害発生予測値と、品質実績データ格納部に格納されている累計障害発生件数又は障害発生予測値と累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも上記対処すべきプログラムについて障害発生予測値に対する障害発生率（以下、潜在障害発生率ともいう。）を算出し、記憶装置又はプログラム業務損害データ格納部に格納するステップと、プログラム業務損害データ格納部に格納されている、各プログラムの理想コストと、記憶装置又はプログラム業務損害データ格納部に格納されている潜在障害発生率とから、少なくとも上記対処すべきプログラムについて所定の品質を確保するために必要なコストを算出し、プログラム業務損害データ格納部に格納するステップとを含むようにしてもよい。【００１７】
本発明の第２の態様に係るプログラム分析方法は、各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納するステップと、記憶装置に格納されている分析結果と、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値とから、各プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、各プログラムについて、特性データ格納部に格納されている、コストに関する特性を除く複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を第２分析結果として記憶装置に格納するステップと、記憶装置に格納されている第２分析結果と、特性データ格納部に格納されている、コストに関する特性を除く複数の特性の特性値とから、各プログラムについて第２の障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、各プログラムについて、プログラム業務損害データ格納部に格納されている第１の障害発生予測値及び第２の障害発生予測値からコスト影響率を算出し、記憶装置に格納するステップと、記憶装置に格納されている、各プログラムのコスト影響率のデータと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値とから、障害をゼロにするために必要な機能規模あたりのコストである単位コストを算出し、記憶装置に格納する単位コスト算出ステップと、記憶装置に格納されている単位コストと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値と、プログラム業務損害データ格納部に格納されている、各プログラムの障害発生予測値と、品質実績データ格納部に格納されている累計障害発生件数又は障害発生予測値と累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも一部のプログラムについて所定の品質を確保するために必要なコストを算出し、プログラム業務損害データ格納部に格納するコスト算出ステップとを含む。このように、所定の品質を確保するために必要なコストを算出するため、費用対効果を考慮した形で保守を実施することができるようになる。【００１８】
上で述べたプログラム分析方法をコンピュータに実行させるためのプログラムを作成することができ、このプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメモリ等の記憶装置に一時保管される。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の実施の形態に係るシステム概要図である。
【図２】図２は、プログラム分析装置の機能ブロック図である。
【図３】図３は、本発明の実施の形態に係るメインの処理フローを示す図である。
【図４】図４は、分析データ収集処理の処理フローを示す図である。
【図５】図５は、資産特性テーブルに格納されるデータの一例を示す図である。
【図６】図６は、品質実績テーブルに格納されるデータの一例を示す図である。
【図７】図７は、保守実績テーブルに格納されるデータの一例を示す図である。
【図８】図８は、資産特性テーブルに格納されるデータの一例を示す図である。
【図９】図９は、保守レベル設定処理の処理フローを示す図である。
【図１０】図１０は、業務損害ランク換算テーブルに格納されるデータの一例を示す図である。
【図１１】図１１は、資産特性値コスト換算テーブルに格納されるデータの一例を示す図である。
【図１２】図１２は、プログラム業務損害度テーブルに格納されるデータの一例を示す図である。
【図１３】図１３は、プログラム業務損害度ワークテーブルに格納されるデータの一例を示す図である。
【図１４】図１４は、プログラム業務損害度テーブルに格納されるデータの一例を示す図である。
【図１５】図１５は、レベル設定テーブルの一例を示す図である。
【図１６】図１６は、影響特性特定処理の処理フローを示す図である。
【図１７】図１７は、障害予測回帰分析テーブルに格納されるデータの一例を示す図である。
【図１８】図１８は、プログラム業務損害度テーブルに格納されるデータ例を示す図である。
【図１９】図１９は、プログラム業務損害度テーブルに格納されるデータ例を示す図である。
【図２０】図２０は、図６及び図１９に示したデータを棒グラフ形式で表した図である。
【図２１】図２１は、図６及び図１９に示したデータを他の形式で表した図である。
【図２２】図２２は、プログラム業務損害度テーブルに格納されるデータ例を示す図である。
【図２３】図２３は、アプリケーション資産評価処理の処理フローを示す図である。
【図２４】図２４は、要対処プログラム特定処理の処理フローを示す図である。
【図２５】図２５は、プログラム業務損害度テーブルに格納されるデータ例を示す図である。
【図２６】図２６は、要対処プログラムと許容リスク範囲内のプログラムとを区別するためのグラフを示す図である。
【図２７】図２７は、プログラム業務損害度テーブルに格納されるデータ例を示す図である。
【図２８】図２８は、コスト影響率決定処理の処理フローを示す図である。
【図２９】図２９は、障害予測回帰分析テーブルに格納されるデータの一例を示す図である。
【図３０】図３０は、プログラム業務損害度テーブルに格納されるデータの一例を示す図である。
【図３１】図３１は、機能規模あたりのコストとコスト影響率の関係を表すグラフを示す図である。
【図３２】図３２は、コスト影響率データテーブルに格納されるデータの一例を示す図である。
【図３３】図３３は、品質確保コスト決定処理の処理フローを示す図である。
【図３４】図３４は、コンピュータの機能ブロック図を示す図である。
【発明を実施するための最良の形態】
【００２０】
図１に本発明の実施の形態に係るシステム概要図を示す。例えばＬＡＮ（Local Area Network）などのネットワーク１には、複数のユーザ端末（例えばユーザ端末Ａ及びユーザ端末Ｂ）と、本実施の形態における主要な処理を実施するプログラム分析装置３とが接続されている。なお、以下ではクライアント・サーバ方式の実施例を示すが、スタンドアロン方式で実施することも可能である。【００２１】
プログラム分析装置３の構成を図２を用いて説明する。プログラム分析装置３は、ユーザ端末などに対するインターフェースとなる入出力部３１と、入出力部３１を介してユーザ端末から取得された保守実績データ及び品質実績データなどを格納する保守実績データ格納部３２と、例えば入出力部３１を介して取得されたプログラムのソースコードなどを格納するアプリケーション資産格納部３３と、保守実績データ格納部３２及びアプリケーション資産格納部３３に格納されているデータなどを用いて処理を行う分析データ収集部３４と、分析データ収集部３４の処理結果を格納する分析データＤＢ３７と、入出力部３１を介してユーザ端末から入力されたデータを受け付け、さらに分析データＤＢ３７に格納されたデータなどを用いて処理を実施する保守レベル設定部３５と、保守レベル設定部３５の処理結果を格納する保守レベルＤＢ３６と、分析データＤＢ３７及び保守レベルＤＢ３６に格納されているデータなどを用いて処理を実施する品質影響特性特定部３８と、品質影響特性特定部３８の処理結果を格納する影響特性ＤＢ３９と、保守レベルＤＢ３６と影響特性ＤＢ３９と分析データＤＢ３７とに格納されているデータなどを用いて処理を実施するアプリケーション資産評価部４０と、アプリケーション資産評価部４０による処理結果を格納する評価結果ＤＢ４１とを含む。評価結果ＤＢ４１に格納されているデータは、入出力部３１を介してユーザ端末に出力される。その他、ＤＢに格納されているデータについても、ユーザ端末に出力するようにしてもよい。【００２２】
分析データ収集部３４は、保守データ収集部３４１と、アプリケーション特性データ収集部３４２とを含む。また、保守データ収集部３４１は、品質実績データ収集部３４１１と、保守実績データ収集部３４１２とを含む。【００２３】
さらに、保守レベル設定部３５は、損害度設定部３５１と、保守品質レベル設定部３５２とを含む。また、アプリケーション資産評価部４０は、品質リスク判定部４０１と、品質維持コスト判定部４０２とを有する。【００２４】
次に、図１及び図２に示したシステムの処理内容について図３乃至図３３を用いて説明する。まず、入出力部３１及び分析データ収集部３４は、分析データ収集処理を実施する（ステップＳ１）。この処理の詳細は図４乃至図８を用いて説明する。また、処理結果は分析データＤＢ３７に格納される。次に、入出力部３１及び保守レベル設定部３５は、分析データＤＢ３７に格納されているデータなどを用いて、保守レベル設定処理を実施する（ステップＳ３）。この処理の詳細は図９乃至図１５を用いて説明する。また、処理結果は保守レベルＤＢ３６に格納される。【００２５】
そして、品質影響特性特定部３８は、分析データＤＢ３７及び保守レベルＤＢ３６に格納されているデータを用いて影響特性特定処理を実施する（ステップＳ５）。この処理の詳細は図１６乃至図２２を用いて説明する。また、処理結果は影響特性ＤＢ３９に格納される。さらに、アプリケーション資産評価部４０は、分析データＤＢ３７、影響特性ＤＢ３９及び保守レベルＤＢ３６に格納されているデータなどを用いて、アプリケーション資産評価処理を実施する（ステップＳ７）。この処理の詳細は図２３乃至図３３を用いて説明する。また、処理結果は、評価結果ＤＢ４１に格納される。評価結果ＤＢ４１に格納されたデータは、入出力部３１を介して、処理要求元のユーザ端末に出力される。【００２６】
次に、図４乃至図８を用いて分析データ収集処理（ステップＳ１）について説明する。アプリケーション特性データ収集部３４２は、例えば入出力部３１を介して入力され且つアプリケーション資産格納部３３に格納された全てのソースプログラムに対して所定の資産特性分析処理を実施し、分析結果を分析データＤＢ３７内の資産特性テーブルに格納する（ステップＳ１１）。例えば、論理行数（特性１）、ＭｃＣａｂｅ複雑度（特性２）、構造化度（例えば構造化阻害命令数）（特性３）、更新頻度（特性４）、関連プログラム数（特性５）、機能規模（例えば論理行数１００を機能規模１とする）（特性６）を、従来技術の手法を用いて分析する。【００２７】
資産特性テーブルは、例えば図５に示すようなテーブルである。すなわち、プログラム名（又はＩＤ）の列と、各特性の特性値の列とを含む。なお、特性７は、ステップＳ１１では取得されないが、本例では機能規模あたりのコストである。【００２８】
また、入出力部３１は、例えばユーザ端末から各プログラムの品質実績データを取得すると保守実績データ格納部３２に格納し、保守データ収集部３４１内の品質実績データ収集部３４１１は、保守実績データ格納部３２から品質実績データを読み出し、分析データＤＢ３７内の品質実績テーブルに格納する（ステップＳ１３）。【００２９】
品質実績テーブルは、例えば図６に示すようなテーブルである。すなわち、プログラム名（又はＩＤ）毎に、累計障害件数が登録されている。なお、入出力部３１は、他の障害データベースなどから累計障害件数を収集して、保守実績データ格納部３２に格納するようにしてもよい。また、品質実績データ収集部３４１１が収集するようにしてもよい。【００３０】
さらに、入出力部３１は、例えばユーザ端末から各プログラムの保守実績データを取得すると保守実績データ格納部３２に格納し、保守データ収集部３４１内の保守実績データ収集部３４１２は、保守実績データ格納部３２から保守実績データを読み出し、分析データＤＢ３７内の保守実績テーブルに格納する（ステップＳ１５）。【００３１】
保守実績テーブルは、例えば図７に示すようなテーブルである。すなわち、プログラム名（又はＩＤ）毎に、保守コストに相当する保守工数（単位は例えば人日）が登録されている。なお、入出力部３１は、他の保守データベースなどから発生した保守工数のデータを収集し、保守実績データ格納部３２に格納するようにしてもよい。また、保守実績データ収集部３４１２が収集するようにしてもよい。【００３２】
そして、保守実績データ収集部３４１２は、分析データＤＢ３７内の資産特性テーブルにおける機能規模（特性６）のデータを読み出し、各プログラムについて、保守工数／機能規模を計算することにより、機能規模あたりのコスト（特性７）を算出し、資産特性テーブルに格納する（ステップＳ１７）。このような処理を行うと図８に示すような資産特性テーブルが分析データＤＢ３７に格納されるようになる。【００３３】
これにて第１段階の前処理が終了し元の処理に戻る。【００３４】
次に、図９乃至図１５を用いて保守レベル設定処理（ステップＳ３）を説明する。まず、保守レベル設定部３５内の損害度設定部３５１は、入出力部３１を介してユーザ端末から業務損害ランク毎に損害コストの入力を受け付け、保守レベルＤＢ３６内の業務損害ランク換算テーブルに格納する（ステップＳ２１）。【００３５】
業務損害ランク換算テーブルは、例えば図１０に示すようなテーブルである。すなわち、例えば業務損害ランクＡ乃至Ｅのそれぞれについて、業務復旧コスト（人日工数）が対応付けられて格納されている。Ａ乃至Ｅの５段階に限定するものではない。【００３６】
また、損害度設定部３５１は、入出力部３１を介してユーザ端末から、分析データＤＢ３７内の資産特性テーブルにおける特定の特性値毎に調査修正コストの入力を受け付け、保守レベルＤＢ３６内の資産特性値コスト換算テーブルに格納する（ステップＳ２３）。【００３７】
資産特性値コスト換算テーブルは、例えば図１１に示すようなテーブルである。すなわち、特性種類名の列と、当該特性の特性値の列と、障害の調査修正難易度であるコスト（人日工数）の列とが設けられている。図１１の例では、特性５、すなわち関連プログラム数について、各特性値に対応してコストが登録されている例を示しているが、他の特性や複数の特性について登録することもある。【００３８】
そして、損害度設定部３５１は、入出力部３１を介してユーザ端末から分析データＤＢ３７内の資産特性テーブルにおける各プログラムについて業務損害ランクの入力を受け付け、保守レベルＤＢ３６内のプログラム業務損害度テーブルに格納する（ステップＳ２５）。【００３９】
プログラム業務損害度テーブルは、例えば図１２に示すようなテーブルである。すなわち、プログラム名（又はＩＤ）毎に、業務損害ランク、障害１件あたりの損害度などを登録するようになっている。但し、ステップＳ２５では、業務損害ランクのみが登録される。【００４０】
さらに、損害度設定部３５１は、プログラム業務損害度テーブルをコピーしてプログラム業務損害ワークテーブルを生成すると共に、各プログラムの業務損害ランクから保守レベルＤＢ３６内の業務損害ランク換算テーブルを検索して損害コストを特定し、プログラム業務損害ワークテーブルに格納する（ステップＳ２７）。【００４１】
プログラム業務損害ワークテーブルは、例えば図１３に示すようなテーブルである。すなわち、プログラム名（又はＩＤ）毎に、業務損害ランク、損害コスト、関連プログラム数（すなわち特性５）、資産特性値コスト換算テーブルに基づくコスト、障害１件あたりの損害度とが登録されている。なお、ステップＳ２７では、プログラム業務損害テーブルからコピーされた業務損害ランク（例えば「Ａ」）と、業務損害ランク換算テーブルに基づく損害コスト（例えば「Ａ」に対応する「１０」）とが登録される。【００４２】
また、損害度設定部３５１は、保守レベルＤＢ３６内の資産特性値コスト換算テーブル及び分析データＤＢ３７における資産特性テーブルを用いて、各プログラムの資産特性値（特性５の特性値）に対応する調査修正コストを特定し、プログラム業務損害ワークテーブルに格納する（ステップＳ２９）。【００４３】
図１３に示すように、特性５の値（例えば「３」）と、資産特性値コスト換算テーブルにおける調査修正コスト（例えば「３」に対応する「５」）とが、プログラム業務損害ワークテーブルに登録されるようになる。【００４４】
そして、損害度設定部３５１は、各プログラムの損害コストと調査修正コストとを加算することによって障害１件あたりの損害度を算出し、プログラム業務損害度テーブルに格納する（ステップＳ３１）。【００４５】
例えばプログラムＡの場合、損害コストは「１０」であり、調査修正コストは「５」であるから、障害１件あたりの損害度は「１５」と算出される。このような処理を実施すれば、図１４に示すようなプログラム業務損害度テーブルが生成される。【００４６】
さらに、保守レベル設定部３５の保守品質レベル設定部３５２は、入出力部３１を介してユーザ端末から損害許容度の入力を受け付け、保守レベルＤＢ３６内のレベル設定テーブルに格納する（ステップＳ３３）。レベル設定テーブルは、図１５に示すような許容損害度のみを格納するテーブルである。【００４７】
このようにして第２の前処理が完了し、元の処理に戻る。【００４８】
次に、影響特性特定処理（ステップＳ５）について図１６乃至図２２を用いて説明する。品質影響特性特定部３８は、分析データＤＢ３７内の資産特性テーブルに格納されている各プログラムの資産特性の特性値と品質実績テーブルに格納されている累計障害件数との相関関係を重回帰分析によって分析し、算出された偏回帰係数を影響特性ＤＢ３９内の障害予測回帰分析テーブルに格納する（ステップＳ４１）。重回帰分析については周知であるからここでは詳しく述べない。但し、ステップＳ４１では、切片は０とする。また、ステップＳ４１では、特性７は必ず分析対象となり、その他の特性については分析対象とならない場合もある。なお、相関関係の分析は重回帰分析に限らない。【００４９】
障害予測回帰分析テーブルは、例えば図１７に示すようなテーブルである。すなわち、回帰分析種別の列と、切片の列と、特性１の係数の列と、特性２の係数の列と、特性３の係数の列と、特性４の係数の列と、．．．特性７の係数の列とを有する。特性７は、機能規模あたりのコストであるから、コストをかければそれだけ累計障害発生件数は減少するため、符号が負となっている。他は、通常、符号は正である。【００５０】
そして、品質影響特性特定部３８は、各プログラムの資産特性の特性値と当該資産特性の偏回帰係数とから、各プログラムの第１の障害予測値を算出し、保守レベルＤＢ３６内のプログラム業務損害度テーブルに格納する（ステップＳ４５）。第１の障害予測値は、特性１乃至ｎ（ｎは特性番号の最大値。但し、分析対象に限る。）について（特性ｉの偏回帰係数×特性ｉの特性値）をすべて加算したものである。プログラム業務損害度テーブルは、例えば図１８に示すような状態となる。【００５１】
さらに、品質影響特性特定部３８は、各プログラムの第１障害予測値と、分析データＤＢ３７内の品質実績テーブルに格納されている累計障害件数との差を潜在障害件数として算出し、保守レベルＤＢ３６内のプログラム業務損害テーブルに格納する（ステップＳ４５）。但し、本実施の形態では、第１障害予測値−累計障害件数の値が負である場合には「０」とする。本ステップまで実行すると、プログラム業務損害度テーブルは図１９に示すような状態となる。例えばＰＧＭ１は、現在の保守状況を踏まえるとあと８件程度障害が発生する可能性がある。【００５２】
ここまでで品質実績テーブル及びプログラム業務損害度テーブルに格納されたデータをまとめると例えば図２０に示すようになる。図２０のグラフは、縦軸が障害件数を表し、横軸が各プログラムを表している。また、白抜きの棒は累計障害件数を表し、ハッチング付きの棒は第１障害予測値を表している。また、図２１のように表すことも可能である。図２１のグラフは、縦軸が累計障害件数を表し、横軸が第１障害予測値を表す。また、線Ａは、４５°線を表している。【００５３】
図２０において左側の棒の方が右側の棒より低いプログラム、図２１において線Ａより下の領域にプロットされたプログラム（ＰＧＭ１、ＰＧＭ２、ＰＧＭ３、ＰＧＭ４）については、第１障害予測値の方が累計障害件数よりも大きい値となっているので、潜在的に障害が発生するリスクを有するプログラムである。一方、図２０において左側の方が右側の棒より高いプログラム、図２１において線Ａより上の領域にプロットされたプログラム（ＰＧＭ５、ＰＧＭ６、ＰＧＭ７）については、第１障害予測値の方が累計障害件数よりも小さい値となっているので、他に障害発生要因となる特性（悪化要因特性とも呼ぶ）が存在する可能性があるプログラムである。このような場合には、回帰分析を実施する特性を変更したり、追加する場合もある。そして、図２０において左右の棒が同じ高さのプログラム、図２１において線Ａ上にプロットされたプログラム（ＰＧＭ８）については、障害が全て対処済みで潜在的に障害が発生するリスクがなく、他に障害発生要因となるような特性が存在しないプログラムである。【００５４】
このような分析結果をユーザ端末に送信して、ユーザに対して提示するようにしてもよい。【００５５】
そして、品質影響特性特定部３８は、プログラム業務損害度テーブルに格納されている各プログラムの潜在障害件数と障害１件あたりの損害度との積から損害リスクを算出し、保守レベルＤＢ３６内のプログラム業務損害度テーブルに格納する（ステップＳ４７）。【００５６】
ここまで処理を実施すれば、プログラム業務損害度テーブルには図２２に示すようなデータが格納される。このように、プログラムの業務上の重要度（業務損害ランク）を考慮した障害１件あたりの損害度と、保守状況を加味した潜在障害件数とを用いて、現在の損害リスクが、各プログラムについて特定できるようになる。【００５７】
これにて元の処理に戻る。【００５８】
次に、アプリケーション資産評価処理（ステップＳ７）を図２３乃至図３３を用いて説明する。このアプリケーション資産評価処理は、品質リスク判定部４０１が実行する要対処プログラム特定処理（図２３：ステップＳ５１）と、品質維持コスト判定部４０２が実行するコスト影響率決定処理（図２３：ステップＳ５３）及び品質確保コスト決定処理（図２３：ステップＳ５５）とを含む。【００５９】
まず要対処プログラム特定処理（ステップＳ５１）について図２４乃至図２７を用いて説明する。まず、品質リスク判定部４０１は、プログラム業務損害度テーブルにおいて、プログラム（すなわちレコード）を、その損害リスクの値で例えば降順にソートする（ステップＳ６１）。そうすると、プログラム業務損害度テーブルは図２５に示すような状態となる。損害リスクが大きい順に、ＰＧＭ１、ＰＧＭ２、ＰＧＭ４、そしてＰＧＭ３となる。【００６０】
そして、品質リスク判定部４０１は、累積リスクｒ＝０に初期化し（ステップＳ６３）、最下位のプログラムの損害リスクｒ１を特定する（ステップＳ６５）。例えば、０を超える損害リスクを有するプログラムについての最下位に限定してもよい。そして、累積リスクｒ＝ｒ＋ｒ1を算出する（ステップＳ６７）。そして、保守レベルＤＢ３６内のレベル設定テーブルに格納されている許容損害度より累積リスクｒが大きくなったか判断する（ステップＳ６９）。累積リスクｒが許容損害度以下であれば（ステップＳ６９：Ｎｏルート）、次に上位のプログラムの損害リスクｒ1を特定し（ステップＳ７１）、ステップＳ６７に戻る。一方、許容損害度より累積リスクｒが大きくなった場合には（ステップＳ６９：Ｙｅｓルート）、ステップＳ６５又はステップＳ７１のうち最後に実施した方で特定されたプログラム及びそれより上位のプログラムの対処フラグを、プログラム業務損害度テーブルにおいてオンにセットする（ステップＳ７３）。このステップの処理結果であるプログラム業務損害度テーブルは、評価結果ＤＢ４１に格納される。【００６１】
図２５の例では、許容損害度が「２０」であって、ＰＧＭ３だけでは「１３」であるから累積リスクｒは許容範囲内であるが、ＰＧＭ３とＰＧＭ４の累積リスクｒは「２９」となり、許容範囲を超えてしまう。従って、図２６及び図２７に示すように、ＰＧＭ４及びＰＧＭ４より上位のプログラムＰＧＭ２及びＰＧＭ１については要対処として対処フラグをオンにセットし、ＰＧＭ３及びそれより下位のプログラムについては許容範囲内とされて対処フラグはオフのままとなる。【００６２】
以上のようにすれば、許容損害度を超えるような潜在リスクを有するプログラムを特定することができ、潜在リスクに応じて保守対象を絞り込むことができるようになる。【００６３】
次に、コスト影響率決定処理（ステップＳ５３）を図２８乃至図３３を用いて説明する。まず、品質維持コスト判定部４０２は、分析データＤＢ３７内の品質実績テーブルに格納されている、各プログラムの累計障害件数と、資産特性テーブルに格納されている、資産特性（コストに関連する特性を除く）の特性値との相関関係を重回帰分析により分析し、算出された偏回帰係数を障害予測回帰分析テーブルに格納する（ステップＳ８１）。重回帰分析は周知なのでこれ以上述べない。図８に示すような資産特性テーブルの例では特性７が、機能規模あたりのコストであるから、この特性については分析対象から除外する。なお、相関関係の分析は重回帰分析に限らない。【００６４】
また、障害予測回帰分析テーブルは、ステップＳ８１を実行すると図２９のようになる。すなわち、ステップＳ８１を実行すると、特性７についての係数は求められず、それ以外の分析対象となっている特性について偏回帰係数が算出されている第２レコード（回帰分析種別が「２」）が生成され、登録されるようになる。【００６５】
次に、品質維持コスト判定部４０２は、資産特性テーブルに格納されている、各プログラムの資産特性の特性値と、障害予測回帰分析テーブルに格納されている、当該資産特性の特性値の偏回帰係数とから、各プログラムの第２の障害予測値を算出し、評価結果ＤＢ４１内のプログラム業務損害度テーブルに格納する（ステップＳ８３）。第２の障害予測値は、特性１乃至ｍ（ｍは特性番号の最大値。但し、分析対象に限る。）について（特性ｉの偏回帰係数×特性ｉの特性値）をすべて加算したものである。プログラム業務損害度テーブルは、例えば図３０に示すような状態となる。【００６６】
図３０の例では、プログラム名（又はＩＤ）の列と、業務損害ランクの列と、障害１件あたりの損害度の列と、第１障害予測値の列と、第２障害予測値の列と、コスト影響率の列と、潜在障害件数の列と、損害リスクの列と、理想コストの列と、品質確保コストの列とが含まれている。但し、ステップＳ８３でデータが登録される列は、第２障害予測値の列のみである。このようにしてコスト効果を除外した第２の障害予測値を算出する。【００６７】
その後、品質維持コスト判定部４０２は、各プログラムについて、プログラム業務損害度テーブルに格納されているデータを用いて第１障害予測値／第２障害予測値を計算することによってコスト影響率を算出し、プログラム業務損害度テーブルに格納する（ステップＳ８５）。図３０で示したプログラム業務損害度テーブルにおいて、コスト影響率の列にデータが登録される。このように、コスト効果を除外した第２の障害予測値と、コスト効果を考慮に入れて算出した第１の障害予測値との比であるコスト影響率によって、コスト効果を判定する。すなわち、コストを特性として加えた場合、障害予測値がどのくらいの割合で減少するかを算出する。【００６８】
そして、品質維持コスト判定部４０２は、分析データＤＢ３７内の資産特性テーブルに格納されている各プログラムの機能規模あたりのコスト（特性７）と、プログラム業務損害度テーブルに格納されている各プログラムのコスト影響率との相関関係を偏回帰分析によって分析し、算出された偏回帰係数及び切片（ｙ切片）のデータをコスト影響率データテーブルとして評価結果ＤＢ４１に格納する（ステップＳ８７）。例えば図３２のようなコスト影響率データテーブルが生成され、格納される。【００６９】
図３１にステップＳ８７で算出された偏回帰係数及び切片で特定される回帰直線Ｂ及び機能規模あたりのコストとコスト影響率とで特定される点の系列とを表す。図３１のグラフにおいて、縦軸はコスト影響率を表し、横軸は機能規模あたりのコストを表す。この回帰直線Ｂから、どのくらいのコストをかければ、どのくらい障害発生件数を減少させることができるかが分かり、さらに障害を発生させないようにするため、すなわちコスト影響率＝０％とするために１機能規模あたりどのくらいのコストが必要となるのかを算出できるようになる。なお、図３１の例では、約１７．３のコストを１機能規模あたりにかけることによって障害発生件数を０にできる可能性があることが分かる。【００７０】
次に、品質確保コスト決定処理（ステップＳ５５）について図３３を用いて説明する。品質維持コスト判定部４０２は、コスト影響率データテーブルのデータ（ｙ切片及び偏回帰係数）からコスト影響率が０となる場合における機能規模あたりのコスト（ｘ切片）を算出し、コスト影響率データテーブルに格納する（ステップＳ９１）。この処理自体は周知であるから、これ以上述べない。【００７１】
品質維持コスト判定部４０２は、分析データＤＢ３７内の資産特性テーブルに格納されている各プログラムの機能規模（特性６）と、コスト影響率データテーブルに格納されている、コスト影響率が０となる場合における機能規模あたりのコスト（ｘ切片）との積から理想コストを算出し、プログラム業務損害度テーブルに格納する（ステップＳ９３）。図８に示した資産特性テーブルにおいてＰＧＭ１の特性６の特性値は１０である。従って、ｘ切片の値１７．３から、理想コストは約１７３（＝１７．３×１０）となる。これは図３０に示したプログラム業務損害度テーブルにおける理想コストの列に登録される。なお、理想コストの算出対象プログラムは、全てのプログラムであってもよいが、要対処フラグがオンとなっているプログラムに限定するようにしてもよい。【００７２】
そして、品質維持コスト判定部４０２は、各プログラムについて、理想コスト×（１−累計障害件数／第１障害予測値）を品質確保コストとして算出し、プログラム業務損害度テーブルに格納する（ステップＳ９５）。（１−累計障害件数／第１障害予測値）は潜在障害件数／第１障害予測値で代替できる。なお、品質確保コストの算出対象プログラムは、全てのプログラムであってもよいが、要対処フラグがオンとなっているプログラムに限定するようにしてもよい。【００７３】
図３１の品質確保コストの列に示すように、潜在的な障害の発生を抑えるためのコストとして品質確保コストが算出されるようになる。【００７４】
以上述べたような処理を行うことによって、費用対効果が高いプログラムに対して保守を行ったり、その費用であるコストを現在の保守状況を基に見積もることができるようになる。また、上で述べた各種指標を基に、保守の対象とすべきプログラムを優先順位付けできるようになる。【００７５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図２に示したプログラム分析装置３の機能ブロックは、必ずしも実際のプログラムモジュール構成に対応するわけではない。また、上でも述べたが例えばユーザ端末において図２に示したプログラム分析装置３の機能を実現させるようにしてもよい。また、図１において、プログラム分析装置３をインターネットなどのネットワークに接続させて、外部にサービス提供できるような構成とすることも可能である。【００７６】
さらに、処理フローについても処理結果が同じであれば順番については入れ替えることができるまたは並列に実行できる部分も存在している。【００７７】
また、プログラム分析装置３及びユーザ端末は、コンピュータ装置であって、図３４に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【図１】
2008020468.tif 000003
【図２】
2008020468.tif 000004
【図３】
2008020468.tif 000005
【図４】
2008020468.tif 000006
【図５】
2008020468.tif 000007
【図６】
2008020468.tif 000008
【図７】
2008020468.tif 000009
【図８】
2008020468.tif 000010
【図９】
2008020468.tif 000011
【図１０】
2008020468.tif 000012
【図１１】
2008020468.tif 000013
【図１２】
2008020468.tif 000014
【図１３】
2008020468.tif 000015
【図１４】
2008020468.tif 000016
【図１５】
2008020468.tif 000017
【図１６】
2008020468.tif 000018
【図１７】
2008020468.tif 000019
【図１８】
2008020468.tif 000020
【図１９】
2008020468.tif 000021
【図２０】
2008020468.tif 000022
【図２１】
2008020468.tif 000023
【図２２】
2008020468.tif 000024
【図２３】
2008020468.tif 000025
【図２４】
2008020468.tif 000026
【図２５】
2008020468.tif 000027
【図２６】
2008020468.tif 000028
【図２７】
2008020468.tif 000029
【図２８】
2008020468.tif 000030
【図２９】
2008020468.tif 000031
【図３０】
2008020468.tif 000032
【図３１】
2008020468.tif 000033
【図３２】
2008020468.tif 000034
【図３３】
2008020468.tif 000035
【図３４】
2008020468.tif 000036
【手続補正書】
【提出日】平成21年1月21日(2009.1.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納するステップと、
前記記憶装置に格納されている前記分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を含む前記複数の特性の特性値とから、各前記プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納するステップと、
各前記プログラムについて、前記品質実績データ格納部に格納されている前記累計障害発生件数と前記プログラム業務損害データ格納部に格納されている前記障害発生予測値と障害１件あたりの想定損害度とから潜在リスクを算出し、前記プログラム業務損害データ格納部に格納する潜在リスク算出ステップと、
前記プログラム業務損害データ格納部に格納されている前記潜在リスクの値に基づき、対処すべきプログラムを選択する選択ステップと、
を含み、コンピュータにより実行されるプログラム分析方法。
【請求項２】
各前記プログラムについて、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値と、前記品質実績データ格納部に格納されている前記累計障害発生件数との相関関係を分析し、分析結果を第２分析結果として前記記憶装置に格納するステップと、
前記記憶装置に格納されている前記第２分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を除く複数の特性の特性値とから、各前記プログラムについて第２の障害発生予測値を算出し、前記プログラム業務損害データ格納部に格納するステップと、
各前記プログラムについて、前記プログラム業務損害データ格納部に格納されている前記障害発生予測値及び前記第２の障害発生予測値からコスト影響率を算出し、前記記憶装置に格納するステップと、
前記記憶装置に格納されている、各前記プログラムの前記コスト影響率のデータと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値とから、障害をゼロにするために必要な機能規模あたりのコストである単位コストを算出し、前記記憶装置に格納する単位コスト算出ステップと、
前記記憶装置に格納されている前記単位コストと、前記特性データ格納部に格納されている、各前記プログラムの機能規模あたりのコストに関する特性値と、前記プログラム業務損害データ格納部に格納されている、各前記プログラムの前記障害発生予測値と、前記品質実績データ格納部に格納されている前記累計障害発生件数又は前記障害発生予測値と前記累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも前記対処すべきプログラムについて所定の品質を確保するために必要なコストを算出し、前記プログラム業務損害データ格納部に格納するコスト算出ステップと、
をさらに含む請求項１記載のプログラム分析方法。
【請求項３】
前記障害１件あたりの想定損害度を、プログラムの業務損害ランクに対応する損害コストと、前記複数の特性に含まれる特定の特性に対応する、当該プログラムのコストとから算出し、前記プログラム業務損害データ格納部に格納するステップ
をさらに含む請求項１記載のプログラム分析方法。
【請求項４】
請求項１乃至３のいずれか１つ記載のプログラム分析方法をコンピュータに実行させるためのプログラム。
【請求項５】
各プログラムについて、特性データ格納部に格納されている、コストに関する特性を含む複数の特性の特性値と、品質実績データ格納部に格納されている累計障害発生件数との相関関係を分析し、分析結果を記憶装置に格納する手段と、
前記記憶装置に格納されている前記分析結果と、前記特性データ格納部に格納されている、前記コストに関する特性を含む前記複数の特性の特性値とから、各前記プログラムについて障害発生予測値を算出し、プログラム業務損害データ格納部に格納する手段と、
各前記プログラムについて、前記品質実績データ格納部に格納されている前記累計障害発生件数と前記プログラム業務損害データ格納部に格納されている前記障害発生予測値と障害１件あたりの想定損害度とから潜在リスクを算出し、前記プログラム業務損害データ格納部に格納する潜在リスク算出手段と、
前記プログラム業務損害データ格納部に格納されている前記潜在リスクの値に基づき、対処すべきプログラムを選択する選択手段と、
を有するプログラム分析装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
また、上で述べたコスト算出ステップが、記憶装置に格納されている単位コストと、特性データ格納部に格納されている、各プログラムの機能規模あたりのコストに関する特性値とから、各プログラムについて理想コストを算出し、プログラム業務損害データ格納部に格納するステップと、プログラム業務損害データ格納部に格納されている、各プログラムの障害発生予測値と、品質実績データ格納部に格納されている累計障害発生件数又は障害発生予測値と累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも上記対処すべきプログラムについて障害発生予測値に対する障害発生率（以下、潜在障害発生率ともいう。）を算出し、記憶装置又はプログラム業務損害データ格納部に格納するステップと、プログラム業務損害データ格納部に格納されている、各プログラムの理想コストと、記憶装置又はプログラム業務損害データ格納部に格納されている潜在障害発生率とから、少なくとも上記対処すべきプログラムについて所定の品質を確保するために必要なコストを算出し、プログラム業務損害データ格納部に格納するステップとを含むようにしてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
さらに、損害度設定部３５１は、プログラム業務損害度テーブルをコピーしてプログラム業務損害度ワークテーブルを生成すると共に、各プログラムの業務損害ランクから保守レベルＤＢ３６内の業務損害ランク換算テーブルを検索して損害コストを特定し、プログラム業務損害度ワークテーブルに格納する（ステップＳ２７）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
プログラム業務損害度ワークテーブルは、例えば図１３に示すようなテーブルである。すなわち、プログラム名（又はＩＤ）毎に、業務損害ランク、損害コスト、関連プログラム数（すなわち特性５）、資産特性値コスト換算テーブルに基づくコスト、障害１件あたりの損害度とが登録されている。なお、ステップＳ２７では、プログラム業務損害度テーブルからコピーされた業務損害ランク（例えば「Ａ」）と、業務損害ランク換算テーブルに基づく損害コスト（例えば「Ａ」に対応する「１０」）とが登録される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
また、損害度設定部３５１は、保守レベルＤＢ３６内の資産特性値コスト換算テーブル及び分析データＤＢ３７における資産特性テーブルを用いて、各プログラムの資産特性値（特性５の特性値）に対応する調査修正コストを特定し、プログラム業務損害度ワークテーブルに格納する（ステップＳ２９）。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
図１３に示すように、特性５の値（例えば「３」）と、資産特性値コスト換算テーブルにおける調査修正コスト（例えば「３」に対応する「５」）とが、プログラム業務損害度ワークテーブルに登録されるようになる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
さらに、保守レベル設定部３５の保守品質レベル設定部３５２は、入出力部３１を介してユーザ端末から損害許容度の入力を受け付け、保守レベルＤＢ３６内のレベル設定テーブルに格納する（ステップＳ３３）。レベル設定テーブルは、図１５に示すような損害許容度のみを格納するテーブルである。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
そして、品質影響特性特定部３８は、各プログラムの資産特性の特性値と当該資産特性の偏回帰係数とから、各プログラムの第１の障害予測値を算出し、保守レベルＤＢ３６内のプログラム業務損害度テーブルに格納する（ステップＳ４３）。第１の障害予測値は、特性１乃至ｎ（ｎは特性番号の最大値。但し、分析対象に限る。）について（特性ｉの偏回帰係数×特性ｉの特性値）をすべて加算したものである。プログラム業務損害度テーブルは、例えば図１８に示すような状態となる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
さらに、品質影響特性特定部３８は、各プログラムの第１障害予測値と、分析データＤＢ３７内の品質実績テーブルに格納されている累計障害件数との差を潜在障害件数として算出し、保守レベルＤＢ３６内のプログラム業務損害度テーブルに格納する（ステップＳ４５）。但し、本実施の形態では、第１障害予測値−累計障害件数の値が負である場合には「０」とする。本ステップまで実行すると、プログラム業務損害度テーブルは図１９に示すような状態となる。例えばＰＧＭ１は、現在の保守状況を踏まえるとあと８件程度障害が発生する可能性がある。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
そして、品質リスク判定部４０１は、累積リスクｒ＝０に初期化し（ステップＳ６３）、最下位のプログラムの損害リスクｒ１を特定する（ステップＳ６５）。例えば、０を超える損害リスクを有するプログラムについての最下位に限定してもよい。そして、累積リスクｒ＝ｒ＋ｒ1を算出する（ステップＳ６７）。そして、保守レベルＤＢ３６内のレベル設定テーブルに格納されている損害許容度より累積リスクｒが大きくなったか判断する（ステップＳ６９）。累積リスクｒが損害許容度以下であれば（ステップＳ６９：Ｎｏルート）、次に上位のプログラムの損害リスクｒ1を特定し（ステップＳ７１）、ステップＳ６７に戻る。一方、損害許容度より累積リスクｒが大きくなった場合には（ステップＳ６９：Ｙｅｓルート）、ステップＳ６５又はステップＳ７１のうち最後に実施した方で特定されたプログラム及びそれより上位のプログラムの対処フラグを、プログラム業務損害度テーブルにおいてオンにセットする（ステップＳ７３）。このステップの処理結果であるプログラム業務損害度テーブルは、評価結果ＤＢ４１に格納される。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
図２５の例では、損害許容度が「２０」であって、ＰＧＭ３だけでは「１３」であるから累積リスクｒは許容範囲内であるが、ＰＧＭ３とＰＧＭ４の累積リスクｒは「２９」となり、許容範囲を超えてしまう。従って、図２６及び図２７に示すように、ＰＧＭ４及びＰＧＭ４より上位のプログラムＰＧＭ２及びＰＧＭ１については要対処として対処フラグをオンにセットし、ＰＧＭ３及びそれより下位のプログラムについては許容範囲内とされて対処フラグはオフのままとなる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
以上のようにすれば、損害許容度を超えるような潜在リスクを有するプログラムを特定することができ、潜在リスクに応じて保守対象を絞り込むことができるようになる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
次に、コスト影響率決定処理（ステップＳ５３）を図２８乃至図３２を用いて説明する。まず、品質維持コスト判定部４０２は、分析データＤＢ３７内の品質実績テーブルに格納されている、各プログラムの累計障害件数と、資産特性テーブルに格納されている、資産特性（コストに関連する特性を除く）の特性値との相関関係を重回帰分析により分析し、算出された偏回帰係数を障害予測回帰分析テーブルに格納する（ステップＳ８１）。重回帰分析は周知なのでこれ以上述べない。図８に示すような資産特性テーブルの例では特性７が、機能規模あたりのコストであるから、この特性については分析対象から除外する。なお、相関関係の分析は重回帰分析に限らない。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
図３０の品質確保コストの列に示すように、潜在的な障害の発生を抑えるためのコストとして品質確保コストが算出されるようになる。
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2008020468.tif 000037
【国際調査報告】
2008020468.tif 000038
2008020468.tif 000039
2008020468.tif 000040
2008020468.tif 000041