(57)【要約】【課題】ソフトウェアの品質指標として用いることができる適切なトラブル発生率を算出する。【解決手段】ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部１１ｃと、集計部１１ｃが集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部１１ｄとを備える。【選択図】図６
2014016814.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、
該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部と
を備えることを特徴とする算出装置。
【請求項２】
ソフトウェアに関するトラブルの発生率を算出する対象期間の開始日及び終了日を受け付ける受付部を備え、
前記集計部は、前記対応情報に対応付けられた使用開始日から前記受付部が受け付けた終了日までの期間が前記所定期間内であるソフトウェアについて、前記受付部が受け付けた開始日及び終了日に係る対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部が集計したトラブルの件数を前記ソフトウェアの数で除算して、トラブルの発生率を算出する
ことを特徴とする請求項１に記載の算出装置。
【請求項３】
前記受付部は、ソフトウェアの使用開始日から該ソフトウェアに関して発生するトラブルの件数が一定数に収束するまでの仮定期間を更に受け付け、
前記集計部は、前記対応情報に対応付けられた使用開始日から前記終了日までの期間が前記受付部により受け付けられた仮定期間内であるソフトウェアについて、前記対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部が集計したトラブルの件数を前記ソフトウェアの数で除算して、トラブルの発生率を算出する
ことを特徴とする請求項２に記載の算出装置。
【請求項４】
前記受付部は、経過時間を一定間隔で区切るための期間を更に受け付け、
前記受付部が受け付けた期間で経過時間を複数の期間に区切る区切り部を備え、
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日とが複数レコード毎に対応付けられた情報であり、
前記集計部は、前記区切り部により区切られた異なる期間毎に使用が開始されたソフトウェア別に、前記対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部がソフトウェア別に集計したトラブルの件数を、夫々対応する前記期間毎に使用が開始されたソフトウェアの数で除算して、トラブルの発生率を各々算出する
ことを特徴とする請求項３に記載の算出装置。
【請求項５】
前記算出部は、異なる前記期間毎に使用が開始されたソフトウェア別に各々算出したトラブルの発生率を加算する
ことを特徴とする請求項４に記載の算出装置。
【請求項６】
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日から所定期間が経過したソフトウェアについて、該所定期間経過後に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、
該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部と
を備えることを特徴とする算出装置。
【請求項７】
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計し、
集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する
ことを特徴とする算出方法。
【請求項８】
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計し、
集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのトラブル発生率を算出する算出装置、算出方法及びプログラムに関する。
【背景技術】
【０００２】
製品に関する品質指標の一つにトラブル発生率がある。ここでのトラブルは、例えば製品に関する不具合の発生、加工品質の低下、ユーザからの問い合わせ等である。トラブル発生率は、トラブル発生件数を製品の使用数で除算することにより求められる。トラブル発生率の時間推移を求めることにより、製品の品質を予測する技術がある（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６２２６号公報
【特許文献２】特開平１１−６５６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソフトウェア製品の開発において、プログラムの不具合（バグ）に関する問合せや、ユーザからの問合せ等の、製品出荷後のトラブルは、コスト増の要因となるため、トラブルの少ない製品開発が目標とされる。ここで、品質に係るソフトウェア製品のトラブルとハードウェア製品のトラブルとの間には、幾つかの相違点があるため、ハードウェアにおけるトラブル発生率に対する考え方を、そのままソフトウェア開発に持ち込んでも、ソフトウェア製品の品質指標として、適切に扱うことは難しい。
【０００５】
例えば、ハードウェア製品は、全く同一の製造条件での製造が困難であり、製品の品質は製造ロットにより異なる。これにより、製品の故障率や、経年劣化の進み具合は製造ロットごとに異なり、トラブル発生率等の品質指標も製造ロットごとに管理される。
【０００６】
これに対し、ソフトウェア製品は、版数が同一である場合、製品の出荷時期等に関わらず同一であり、品質も出荷時期には依らず、また、ハードウェア製品のように、使用に伴い製品自体が劣化することは少ない。一方で、ソフトウェア製品におけるトラブル発生件数は、環境構築期間における環境設定時やテスト時、ユーザの操作習熟期間に多く発生し、また、製品出荷数よりはユーザの使用頻度に応じて、トラブル発生件数が増加する。これらの件数の時間変化は、ソフトウェアの種類毎に大きく異なり、かつ、ハードウェア製品のように、直接的な品質指標として用いることができない。そのため、トラブル発生件数の時間変化と無関係に算出されたソフトウェア製品のトラブル発生率を用いても、ソフトウェアの品質を適切に評価することができない場合がある。
【０００７】
一つの側面では、本発明は、ソフトウェアの品質指標として用いることができる適切なトラブル発生率を算出することを目的とする。
【課題を解決するための手段】
【０００８】
一態様の算出装置は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部とを備える。
【発明の効果】
【０００９】
一側面によれば、ソフトウェアのトラブル発生率を正確かつ客観的に算出することができる。
【図面の簡単な説明】
【００１０】
【図１】トラブル発生率算出システムのハードウェア構成例の概要を示すブロック図である。
【図２】算出装置のハードウェア構成例を示すブロック図である。
【図３】ソフトウェアの種別毎に、ソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
【図４】ソフトウェア管理テーブルのレコードレイアウトの一例を示す説明図である。
【図５】トラブル情報管理テーブルのレコードレイアウトの一例を示す説明図である。
【図６】算出装置の機能概要例を示す機能ブロック図である。
【図７】ソフトウェアに関するトラブル発生件数の時間推移を示す表形式の説明図である。
【図８】作業テーブルであるパラメータテーブルのレコードレイアウトの一例を示す説明図である。
【図９】作業テーブルである区切り期間テーブルのレコードレイアウトの一例を示す説明図である。
【図１０】作業テーブルであるサポートＩＤテーブルのレコードレイアウトの一例を示す説明図である。
【図１１】作業テーブルであるトラブル発生件数集計結果テーブルのレコードレイアウトの一例を示す説明図である。
【図１２】トラブル発生率算出処理の手順の一例を示すフローチャートである。
【図１３】トラブル発生率算出処理の手順の一例を示すフローチャートである。
【図１４】トラブル発生率算出処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本実施の形態に係るトラブル発生率算出システムをその図面に基づいて説明する。トラブル発生率算出システムは、ソフトウェアに係るトラブルの発生率を算出する。ここでのトラブルとは、ソフトウェアを構成するプログラムのバグだけでなく、ソフトウェア製造者（以下、メーカと呼ぶ）が運営するヘルプデスク、サービスセンター等へ寄せられる問い合わせ又は苦情も含む。例えば、ソフトウェアの使用者は「ソフトウェアの○○がわからない」、「ソフトウェアの機能である△△を実行できない」等の問い合わせ又は苦情をヘルプデスク等に寄せる。メーカは、使用者又は使用者が使用するコンピュータからトラブル情報を集め、算出装置（コンピュータ）により、トラブルの発生率を算出する。
【００１２】
実施の形態１
図１は、トラブル発生率算出システムのハードウェア構成例の概要を示すブロック図である。トラブル発生率算出システムは、算出装置１及び分析対象装置２を含む。算出装置１及び分析対象装置２は、夫々ＰＣ（パーソナルコンピュータ）、ワークステーション、汎用コンピュータ等である。分析対象装置２は、携帯電話、スマートフォン、タブレットＰＣ等でもよい。以下では、算出装置１及び分析対象装置２は、夫々ワークステーションであるものとする。図１には、１台の分析対象装置２が描かれているが、分析対象装置２の台数は２台以上でもよい。
【００１３】
分析対象装置２には、メーカが製造し、顧客に販売したソフトウェアがインストールされている。分析対象装置２にインストールされているソフトウェアの数は、１つでもよいし、複数でもよい。ソフトウェアが大規模であればあるほど、ソフトウェアを構成するプログラムの数は増大し、その機能も多岐に渡る。
【００１４】
例えば、分析対象装置２にインストールされているソフトウェアが人事管理ソフトである場合、ソフトウェアを構成する各プログラムは社員管理、勤務管理、給与管理、組織管理等の多くの機能を有する。各プログラムは、一度に全てがインストールされる場合もあれば、少しずつ時間をかけてインストールされる場合もある。後者の場合、時間をかけてシステムが構築されることになる。
【００１５】
分析対象装置２に対してソフトウェアを構成する各プログラムのインストールが終了する前後に、又はメーカが顧客にソフトウェアを販売する際に、顧客はソフトウェアに関するサポートサービスを受ける契約をプログラム毎に又は一括してメーカと締結する。分析対象装置２に対してソフトウェアを構成する各プログラムのインストールが終了した後に、顧客はソフトウェアのテストを含めて、ソフトウェアの使用を開始する。一般に、ソフトウェアを構成する各プログラムの使用開始日は同じではなく、プログラム間で異なる。
【００１６】
分析対象装置２において稼働するソフトウェアにトラブルが発生した場合、トラブルの発生日、トラブル内容等のトラブル情報が顧客からメーカに通知される。メーカの管理者は、顧客から通知されたトラブル情報を算出装置１に入力する。算出装置１は、顧客から通知されたソフトウェアに関するトラブル情報を蓄積する。そして、算出装置１は、自身が保持するソフトウェアに関する情報及び蓄積したトラブル情報に基づいて、トラブル発生率を算出する。
【００１７】
算出装置１及び分析対象装置２は、ネットワークＮにより接続されていてもよいし、接続されていなくてもよい。図１は、算出装置１及び分析対象装置２がネットワークＮにより接続された状態を例示している。ネットワークＮは、例えばインターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、電話通信回線、衛星通信回線、ケーブルテレビに係るケーブル、電力及び情報を送信する電線等であり、これらを組み合わせた通信網であってもよい。
算出装置１及び分析対象装置２がネットワークＮにより接続されている場合、分析対象装置２はソフトウェアに関するトラブル情報をネットワークＮを介して算出装置１に送信してもよい。
【００１８】
図２は、算出装置１のハードウェア構成例を示すブロック図である。算出装置１は、制御部（集計部、算出部、出力部）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３を含む。また、算出装置１は、ハードディスク１４、ディスクドライブ１５、表示部１６、操作部（受付部）１７及び送受信部１８を含む。算出装置１の各構成部は、バス１ｂを介して相互に接続されている。
【００１９】
制御部１１は、ＣＰＵ（Central Processing Unit）からなるプロセッサであり、算出装置１の各構成部を制御する。制御部１１は、ハードディスク１４に記憶されたプログラム１ＰをＲＡＭ１３に読み出し、ＲＡＭ１３に読み出したプログラム１Ｐを実行する。
【００２０】
ＲＯＭ１２は、例えば不揮発性の半導体メモリ又は半導体メモリ以外の読み出し専用記憶媒体である。ＲＯＭ１２は、算出装置１の起動時に制御部１１が実行するＢＩＯＳ（Basic Input/Output System）、ファームウェア等を記憶している。
ＲＡＭ１３は、例えばＳＲＡＭ又はＤＲＡＭであり、制御部１１が実行する処理の過程で必要な作業変数、データ等を一時的に記憶する。なお、ＲＡＭ１３は主記憶装置の一例であり、ＲＡＭ１３の代わりにフラッシュメモリ、メモリカード等が用いられてもよい。
【００２１】
ハードディスク１４は、制御部１１が実行するプログラム１Ｐ及び各種テーブル（対応情報）を記憶している。プログラム１Ｐは、制御部１１が実行する処理の手順を記録している。各種テーブルは、ソフトウェア管理テーブル１Ｔ、トラブル情報管理テーブル２Ｔ及び各種作業テーブルを含む。ソフトウェア管理テーブル１Ｔは、分析対象装置２上で動作するソフトウェアを管理するテーブルである。トラブル情報管理テーブル２Ｔは、分析対象装置２上で動作するソフトウェアに関するトラブル情報を管理するテーブルである。作業テーブルは、制御部１１がトラブル発生率を算出する処理を実行するに当たり、必要な作業データを格納するテーブルである。なお、制御部１１は、作業データを例えば変数又は配列としてＲＡＭ１３に記憶してもよい。かかる場合、作業テーブルはなくてもよい。
各種テーブルの詳細については、後述する。
【００２２】
ハードディスク１４は、算出装置１の内部に取り付けられるものであっても、算出装置１の外部に置かれるものであってもよい。例えば、ハードディスク１４に記憶された各種テーブルは、外部のデータベースサーバに記憶されていてもよい。かかる場合、算出装置１は、外部のデータベースサーバにアクセスして、各種テーブルに記憶されている情報を取得し、各種テーブルに情報を書き込むことができる。
ハードディスク１４は、補助記憶装置の一例であり、大容量の情報の記憶が可能なフラッシュメモリ又はＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray Disc、登録商標）等の光ディスク１ａで代替されてもよい。
【００２３】
ディスクドライブ１５は、外部の記憶媒体であるＣＤ、ＤＶＤ、ＢＤ等の光ディスク１ａから情報を読み出し、光ディスク１ａに情報を記録する。制御部１１は、操作部１７からディスクドライブ１５に対する光ディスク１ａの排出命令を受け付けた場合、ディスクドライブ１５の図示しないトレイを排出する。
【００２４】
表示部１６は、例えば液晶ディスプレイ、有機ＥＬ（Electro Luminescence）ディスプレイ、ＣＲＴ（Cathode Ray Tube）ディスプレイ等の画面を有し、制御部１１からの指示に従って、プログラム１Ｐに係る各種情報を表示する。
【００２５】
操作部１７は、ユーザが各種の入力を行うキーボード、マウス、電源スイッチ、ディスクドライブ１５から光ディスク１ａを排出するための操作ボタン等の入力デバイスを含む。操作部１７は、ユーザによる操作に基づいて入力信号を生成する。生成された入力信号は、バス１ｂを介して制御部１１に送信される。
【００２６】
送受信部１８は、有線又は無線通信のモデム、ＬＡＮカード、ルータ、ＵＳＢ端子、接続ケーブル等であり、ネットワークＮと接続されている。送受信部１８は、ネットワークＮを介して分析対象装置２と接続されている。送受信部１８は、パラレルポート又はプリンタポートを備えていてもよい。
【００２７】
分析対象装置２のハードウェア構成は、算出装置１のハードウェア構成と同じであるため、その説明を省略する。
【００２８】
算出装置１は、ソフトウェアの使用開始日を基準にして、使用開始日からの経過時間（期間）が所定期間内であるソフトウェアについてトラブル発生率を算出する。ここでのソフトウェアは、トラブルの数をカウントする単位となるソフトウェアであり、その規模は問わない。以下、ソフトウェアの使用開始日から所定期間内に発生するトラブルを、算出装置１が算出するトラブル発生率の対象とする理由について説明する。
【００２９】
図３は、ソフトウェアの種別毎に、ソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。図３Ａは、業務運用管理に関するソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。図３Ｂは、ＯＳ（オペレーティングシステム）に関する使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。図３Ｃは、ＧＵＩ（Graphical User Interface）に関するソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。図３Ｄは、データベースに関する使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
【００３０】
図３Ａ〜図３Ｄにおける横軸は、ソフトウェアの使用開始日からの経過時間であり、単位は週（Ｗ）である。図３Ａ〜図３Ｄにおける縦軸は、トラブル発生件数である。ここでのトラブル発生件数は、例えば１００システム当たりの発生件数である。また、ここでのシステムは、最小単位の機能を有するプログラム又はプログラム群を１システムとする。便宜上、図３Ａ、図３Ｂ、図３Ｃ及び図３Ｄに夫々対応するトラブル発生件数の推移をパターン１、パターン２、パターン３及びパターン４と呼ぶ。
【００３１】
図３Ａのパターン１では、システム構築期間（例えば、〜５週）の環境設定時に多くのトラブルが発生し、その後トラブル発生件数は減少する。しかし、設定ミスに起因するトラブルが再び発生する（例えば、１５週〜１９週）。２０週以降、トラブル発生件数は減少する。
【００３２】
図３Ｂのパターン２では、システム構築期間又はテスト期間の間（例えば、〜１６週）、トラブルが発生するが、その後徐々にトラブル発生件数は減少し、トラブル発生件数は０件に収束する。
【００３３】
図３Ｃのパターン３では、運用初期（例えば、〜３週）に画面操作に関するトラブルが多く発生する。しかし、その後、ユーザが画面操作に慣れる、画面を使用しなくなる等の理由から、トラブル発生件数は急減する。
【００３４】
データベースは、アプリケーション開発に使用される代表的なソフトウェアの１つである。図３Ｄのパターン４では、アプリケーション開発期間（例えば、〜１８週）にトラブルが多く発生する。なお、アプリケーション開発期間の終盤にトラブル発生件数が増加する場合もある。
【００３５】
以上、図３に示すように、ソフトウェアのトラブル発生件数の時間推移は、ソフトウェアの種別によって異なる。しかし、どの種別のソフトウェアについても、使用開始から種別毎に所定時間が経過した後に、トラブル発生件数が一定数に収束する経験則が見出される。
そこで、予め使用開始日からトラブル発生件数が一定数に収束するまでの期間（以下、この期間を収束期間（仮定期間）と呼ぶ）を、ソフトウェアの種別毎に決定しておく。収束期間が経過する前段階では、どのソフトウェアについてもトラブル発生件数は多い。他方、収束期間が経過した後にカウントされるトラブル発生件数は、いずれのソフトウェアについても一定に推移する。従って、あるソフトウェアについて収束期間に算出されたトラブル発生率と、別のソフトウェアについて収束期間後に算出されたトラブル発生率とを比較しても、これらのトラブル発生率はソフトウェア同士の品質を客観的に比較する指標とはなり得ない。
なお、収束期間経過後に収束するトラブル発生件数は、０件である場合もあるし、０件以外の一定数である場合もある。
【００３６】
算出装置１は、収束期間内に発生したソフトウェアのトラブルの発生件数を集計する。そして、算出装置１は、収束期間内に使用されていたソフトウェアの数で、集計したトラブルの発生件数を除算することにより、トラブル発生率を算出する。
【００３７】
次に、各種テーブルについて、詳細に説明する。
図４は、ソフトウェア管理テーブル１Ｔのレコードレイアウトの一例を示す説明図である。ソフトウェア管理テーブル１Ｔは、使用者ＩＤ、サポートＩＤ（識別情報）、ソフトウェア名、ソフトウェア版数、使用開始日、ステップ数、売上額及び受講実績の各列を含む。
使用者ＩＤは、ソフトウェアを使用する使用者の識別記号である。使用者はメーカにとってソフトウェアを販売した顧客であることが多いため、使用者ＩＤは顧客ＩＤと同等な場合が多い。メーカがソフトウェアを販売した顧客と、ソフトウェアを使用する使用者とが異なる場合、ソフトウェア管理テーブル１Ｔは別途顧客ＩＤの列を含んでもよい。
同一ソフトウェアを使用する使用者が複数人である場合、複数列の使用者ＩＤ列がソフトウェア管理テーブル１Ｔに含まれてもよい。
【００３８】
サポートＩＤは、トラブルが発生したソフトウェアを特定する識別記号であり、例えば４桁、４桁、４桁の数字の順列である。サポートＩＤは、メーカから使用者に交付され、分析対象装置２が有するハードディスクに記憶される。メーカ及び使用者は、サポートＩＤを共有する。使用者からメーカへのトラブルの通知と、メーカから使用者へのトラブルに対するサポートは、サポートＩＤに基づいて行われる。
【００３９】
ソフトウェア名は、ソフトウェアの名称である。ソフトウェア版数は、ソフトウェアのバージョンに関する識別記号である。ソフトウェア名が同一であっても、ソフトウェア版数が異なるソフトウェアは、別のソフトウェアであり、異なるサポートＩＤが設定される。
【００４０】
使用開始日はソフトウェアが使用開始された年月日であり、そのフォーマットは例えばｙｙｙｙ／ｍｍ／ｄｄである。例えば、分析対象装置２は、インストールされたソフトウェアを初めて起動する時、その時のシステム日時及びサポートＩＤをネットワークＮを介して算出装置１に送信する。算出装置１は、受信したサポートＩＤに対応させて受信したシステム日時の日付をソフトウェア管理テーブル１Ｔの使用開始日に書き込む。なお、使用開始日のフォーマットは、システム日時のフォーマットに合わせて、例えばｙｙｙｙ／ｍｍ／ｄｄ  ｈｈ：ｍｍでもよい。
【００４１】
なお、使用開始日は、メーカからユーザへサポートＩＤが交付された日付でもよいし、サポートＩＤが分析対象装置２のハードディスクに記憶された日付でもよい。
あるいは、使用開始日は、メーカから使用者へソフトウェアが納入された日付でもよい。例えば、メーカから使用者に納入されるソフトウェアには、ソフトウェアを識別する識別記号であるソフトウェアＩＤが振られている。メーカから使用者にソフトウェアの納入があった場合、使用者は納入されたソフトウェアのソフトウェアＩＤをメーカに通知する。メーカの管理者は、使用者からソフトウェアＩＤの通知を受けた場合、当該ソフトウェアＩＤに応じたソフトウェアのサポートＩＤと対応付けて、ソフトウェア管理テーブル１Ｔの使用開始日に、ソフトウェアＩＤの通知を受けた日付を書き込む。
【００４２】
なお、ソフトウェア管理テーブル１Ｔは、サポートＩＤに加えて、ソフトウェアＩＤ列を含んでもよい。
あるいは、サポートＩＤは、ソフトウェアＩＤと１対１に対応する。そのため、サポートＩＤは、ソフトウェアＩＤに代替されてもよい。
【００４３】
ステップ数は、ソフトウェアを構成するプログラムの全ステップ数である。
売上額は、ソフトウェアの売上額である。売上額は、ソフトウェアの価格でもよい。売上額の単位は、例えば円、セント、角等である。
受講実績は、ソフトウェアの使用に関してメーカが行う教育を使用者が受講したか否かを示すフラグである。受講実績には、デフォルトで無しが登録される。使用者が該当するソフトウェアの使用に関する教育を受講した場合、受講実績は有りに更新される。
【００４４】
図５は、トラブル情報管理テーブル２Ｔのレコードレイアウトの一例を示す説明図である。トラブル情報管理テーブル２Ｔは、管理番号、トラブル発生日、サポートＩＤ、ソフトウェア名及びソフトウェア版数の各列を含む。
管理番号は、分析対象装置２上で動作するソフトウェアに発生したトラブルを識別する記号であり、例えば３桁、４桁、４桁の数字の順列である。トラブル発生日は、分析対象装置２上で動作するソフトウェアにトラブルが発生した日付であり、そのフォーマットは例えばｙｙｙｙ／ｍｍ／ｄｄである。なお、トラブル発生日のフォーマットは、システム日時のフォーマットに合わせて、例えばｙｙｙｙ／ｍｍ／ｄｄ  ｈｈ：ｍｍでもよい。
【００４５】
サポートＩＤは、ソフトウェア管理テーブル１ＴのサポートＩＤと同じである。ソフトウェア名は、ソフトウェア管理テーブル１Ｔのソフトウェア名と同じである。ソフトウェア版数は、ソフトウェア管理テーブル１Ｔのソフトウェア版数と同じである。
【００４６】
トラブル情報管理テーブル２Ｔは、現象、原因及び処置の各列を含む。
現象は、トラブルの内容であり、例えばプログラムのバグに起因する処理ミス、画面操作方法がわからないという使用者からの通知等である。あるいは、現象は、分析対象装置２から算出装置１に送信されたトラブルの内容である。原因は、使用者からの現象の通知又は分析対象装置２からのトラブル情報の送信に対して、メーカが解析したトラブルの原因である。処置は、ソフトウェアのトラブルに対して、メーカが実行した処置内容である。
【００４７】
図６は、算出装置１の機能概要例を示す機能ブロック図である。図６の各機能部は、制御部１１がハードディスク１４に記録されたプログラム１Ｐに基づいて動作することにより実行される。
算出装置１は、受付部１１ａ、区切り部１１ｂ、集計部１１ｃ、算出部１１ｄ、加算部１１ｅ及び出力部１１ｆを含む。受付部１１ａは、トラブル発生率を算出するためのパラメータを受け付ける。パラメータは、例えばトラブル発生率を算出する対象のソフトウェアを識別する情報、トラブル発生率を算出する対象の期間（対象期間）、収束期間等を含む。
【００４８】
区切り部１１ｂは、経過時間を、トラブル発生件数を集計するための各期間に区切る。使用開始日が異なる複数のソフトウェアについてトラブル発生率を算出する場合、トラブル発生率を算出する対象の期間の最終日に収束期間が経過しているソフトウェアは、トラブル発生率を算出する対象のソフトウェアから除外される。そこで、区切り部１１ｂは、トラブル発生率を算出する対象の期間の最終日に、収束期間が経過しているソフトウェアと経過していないソフトウェアとを区別するために、経過時間を各期間に区切る。区切り部１１ｂが区切ったいずれの期間にソフトウェアの使用が開始されたかを判定することにより、収束期間が経過しているソフトウェアを、トラブル発生率を算出する対象のソフトウェアから除外することができる。
【００４９】
集計部１１ｃは、区切り部１１ｂが区切った期間毎に使用が開始されたソフトウェアについて、トラブル発生率を算出する対象の期間に発生したトラブルに関するトラブル情報をトラブル情報管理テーブル２Ｔから抽出する。集計部１１ｃは、抽出したトラブル情報に基づいて、トラブル発生率を算出する対象の期間に発生したトラブル発生件数を集計する。
【００５０】
なお、集計部１１ｃは、受付部１１ａがトラブル発生率を算出する対象の期間を受け付けている場合、この算出対象の期間に発生したトラブルの件数を集計する。集計部１１ｃは、受付部１１ａがトラブル発生率を算出する対象の期間を受け付けていない場合、予め決められた期間の最終時点に収束期間が経過していないソフトウェアについて、予め決められた期間内に発生したトラブルの件数を集計してもよい。ここでの予め決められた期間とは、例えば使用開始日から現在までの期間、使用開始日と現在から３か月前の時点との間の期間等である。
【００５１】
算出部１１ｄは、区切り部１１ｂが区切った期間毎に使用が開始されたソフトウェアについて、集計部１１ｃが集計したトラブル発生件数をソフトウェア管理テーブル１Ｔが記憶するサポートＩＤの数で除算する。ここでのサポートＩＤの数は、トラブル発生率の分母に該当するソフトウェアの数に等しい。これにより、算出部１１ｄは、区切り部１１ｂが区切った期間毎に使用が開始されたソフトウェアのトラブル発生率を算出する。加算部１１ｅは、区切り部１１ｂが区切った期間毎に使用が開始されたソフトウェアのトラブル発生率を加算する。出力部１１ｆは、加算部１１ｅが加算したトラブル発生率をソフトウェアの識別情報と共に表示部１６に出力する。
【００５２】
なお、算出部１１ｄは、ソフトウェアに関する様々なメタデータ別に、トラブル発生率を算出してもよい。
また、算出部１１ｄは、トラブル発生件数をソフトウェアの使用数以外の数値（例えば、経済的価値に関する数値である売上額、コスト費、利益額等）で除算して、当該数値単位のトラブル発生件数を算出してもよい。
【００５３】
次に、算出装置１の動作について説明する。
メーカは、分析対象装置２にソフトウェアをインストールする。メーカは、使用者にサポートＩＤを交付する。また、メーカは、サポートＩＤを分析対象装置２のハードディスクに設定するための設定コマンドを使用者に配布する。使用者は、メーカから配布された設定コマンドを分析対象装置２に対して実行する。これにより、分析対象装置２のハードディスクにサポートＩＤが設定される。サポート対象のソフトウェアが複数である場合、使用者はサポート対象のソフトウェアの数だけ、設定コマンドの実行を繰り返す。
【００５４】
メーカは、使用者にサポートＩＤ及びトラブル情報を分析対象装置２から取得する取得コマンドを交付する。使用者は、取得コマンドを実行し、分析対象装置２からサポートＩＤ及びトラブル情報を取得する。
例えば、当該取得コマンドが実行された場合、分析対象装置２はソフトウェア及びハードウェアの状態及び動作が記録されたログからトラブル情報を抽出する。当該取得コマンドが実行された場合、分析対象装置２はソフトウェア及びハードウェアの各種状態が連続的に追跡記録されたトレース情報をトラブル情報として抽出する。当該取得コマンドが実行された場合、分析対象装置２はＲＡＭの任意領域に記録された情報をトラブル情報として抽出する。
そして、分析対象装置２は、取得したサポートＩＤ及びトラブル情報を例えばネットワークＮを介して算出装置１に送信する。あるいは、分析対象装置２は、抽出したサポートＩＤ及びトラブル情報を表示部に出力する。
【００５５】
なお、ログ、ＲＡＭ等からやみくもにトラブル情報を取得するのではなく、予め取得するトラブル情報を定義したファイルを用意しておいてもよい。例えば、トラブル情報管理テーブル２Ｔの列名に従って、取得すべきトラブル情報の項目がサポートＩＤと対応付けて記録されたファイルを予め用意しておく。分析対象装置２は、取得コマンドが実行された場合、当該ファイルに定義された情報をログ、ＲＡＭ等から抽出する。
また、取得コマンドは、分析対象装置２からサポートＩＤ及びトラブル情報を取得するが、サポートＩＤのみを取得してもよい。かかる場合、使用者は、トラブル情報をトレーサ、メモリダンプツール等の他の手段により取得する。使用者は、取得したトラブル情報と、取得コマンドの実行により別途取得したサポートＩＤとを対応付けてメーカに通知する。
【００５６】
算出装置１は、ネットワークＮを介して、取得されたサポートＩＤ及びトラブル情報を分析対象装置２から受信し、受信したサポートＩＤ及びトラブル情報をトラブル情報管理テーブル２Ｔに格納する。あるいは、メーカの管理者は、使用者からサポートＩＤ及びトラブル情報の通知を受け付け、受け付けたサポートＩＤ及びトラブル情報をマニュアル操作でトラブル情報管理テーブル２Ｔに格納する。更に、メーカの管理者は、ヘルプデスク等が使用者から受け付けたサポートＩＤ若しくはソフトウェアＩＤ、問い合わせ及び苦情を、マニュアル操作でトラブル情報管理テーブル２Ｔに格納する。
【００５７】
次に、具体的な数値例を用いて、算出装置１がソフトウェアのトラブル発生率を算出する概要を説明する。
図７は、ソフトウェアに関するトラブル発生件数の時間推移を示す表形式の説明図である。
いま、ある使用者がメーカから６つのソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆを購入したものとする。ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆは、全体として１つの大規模ソフトウェアを構成している。図７の１列目は、使用者が購入した各ソフトウェアの名称を示している。
【００５８】
ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆは、夫々複数のシステムの集合体である。１つのシステムは、単体のプログラム又は複数のプログラムから構成されたモジュールであり、他のシステムと区別可能な機能を有している。図７の２列目は、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆを夫々構成するシステムの数を示している。例えば、ソフトウェアＡは、５０個のシステムの集合体である。各システムには、夫々異なるサポートＩＤが交付されている。従って、ソフトウェアＡに対して、５０個のサポートＩＤが交付されている。
【００５９】
使用者はソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆを同一年度に使用開始したが、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの使用開始日は、図７の３列目に示すように月単位で異なっていた。例えば、ソフトウェアＡに属するシステム群は、分析対象装置２上で４月に使用が開始された。ソフトウェアＢに属するシステム群は、分析対象装置２上で５月に使用が開始された。ソフトウェアＣ、Ｄ等もアルファベット順に１か月ずつ順次遅れて使用が開始された。
【００６０】
使用者は、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの使用開始前に、メーカから交付された設定コマンドを実行し、サポートＩＤを分析対象装置２に設定する。使用者は、トラブルが発生した場合、メーカから交付された取得コマンドを実行する。その結果、サポートＩＤ及びトラブル情報は、自動的に又は手作業により算出装置１が有するトラブル情報管理テーブル２Ｔに格納される。
【００６１】
算出装置１は、トラブル発生率を算出する対象の月を操作部１７から受け付ける。算出装置１は、ソフトウェア管理テーブル１Ｔ及びトラブル情報管理テーブル２Ｔを参照し、使用開始月が共通するシステム毎に、受け付けた月に発生したトラブル発生件数を集計する。図７の４列目から最終列までは、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ毎に、４月から９月までの各月に発生したトラブル発生件数を集計した一例を示している。
なお、トラブル発生件数は、トラブル情報管理テーブル２ＴからサポートＩＤ及びトラブル発生日に基づいて抽出された数値である。ソフトウェア管理テーブル１Ｔ及びトラブル情報管理テーブル２Ｔは、サポートＩＤにより結合可能である。そのため、各トラブルは、ソフトウェア管理テーブル１Ｔ及びトラブル情報管理テーブル２Ｔにより、いずれの使用者又は顧客がいずれの版数のいずれのソフトウェアをいつから使用開始したことによっていつ生じたトラブルであるか判別可能である。
【００６２】
図３に示したように、ソフトウェアの種別によって使用開始日からトラブル発生件数が一定数に収束するまでの収束期間は異なる。図７の例では、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの収束期間は、いずれも３か月であるものとする。かかる場合、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの夫々について、使用開始日から３か月間についてトラブル発生率を算出することは意味があるが、使用開始日から４か月以降までの期間についてトラブル発生率を算出することには意味がない。
例えば、４月に使用を開始したソフトウェアＡの場合、４月から７月以降までトラブル発生率を算出することには意味がない。５月に使用を開始したソフトウェアＢの場合、使用開始から８月以降までトラブル発生率を算出することには意味がない。そこで、算出装置１は、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの夫々について、各々の使用開始日から３か月以内に限り、トラブル発生率を算出する。
【００６３】
算出装置１は、例えば７月のトラブル発生率を算出する場合、ソフトウェアＢ、Ｃ、Ｄにおけるトラブル発生件数を夫々ソフトウェアＢ、Ｃ、Ｄのシステム数で除算して求めた各トラブル発生率を加算する。一方、算出装置１は、例えば７月のトラブル発生率を算出する場合、７月末日時点において収束期間が経過したソフトウェアＡのトラブル発生件数を利用しない。
【００６４】
算出装置１は、例えば８月のトラブル発生率を算出する場合、ソフトウェアＣ、Ｄ、Ｅにおけるトラブル発生件数を夫々ソフトウェアＣ、Ｄ、Ｅのシステム数で除算して求めた各トラブル発生率を加算する。一方、算出装置１は、例えば８月のトラブル発生率を算出する場合、８月末日時点において収束期間が経過したソフトウェアＡ、Ｂのトラブル発生件数を利用しない。
【００６５】
算出装置１が算出する当月のトラブル発生率は、以下の式で表される。
当月のトラブル発生率＝
（当月に使用開始したソフトウェアでの当月トラブル数÷当月使用開始システム数）
＋（前月に使用開始したソフトウェアでの当月トラブル数÷前月使用開始システム数）
＋（前々月に使用開始したソフトウェアでの当月トラブル数÷前々月使用開始システム数）
＋・・・
当月のトラブル発生率を求めるために、何月前までに使用開始したソフトウェアを考慮するかということは、収束期間に依存する。
【００６６】
以下、図７のトラブル発生件数に基づき、６月から９月までのトラブル発生率の算出式例を示す。
６月：  ５÷５０＋  ８÷５０＋１４÷７０＝０．４６
７月：  ６÷５０＋１１÷７０＋１５÷８０＝０．４６
８月：  ７÷７０＋１１÷８０＋１３÷６０＝０．４５
９月：  ７÷８０＋１１÷６０＋１４÷８０＝０．４５
【００６７】
図７において斜線で示した欄は、例えば６月、７月、８月の各月に発生したトラブルのトラブル発生率を算出する対象となるソフトウェア（システム群）を例示している。
図７の例では、ソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの収束期間は、いずれも３か月であるものとした。そのため、１か月毎に次々と各ソフトウェアが使用開始された場合、算出装置１は、ある月のトラブル発生率を算出する場合、ソフトウェアＡ、Ｂ…のうち、最大３つのソフトウェアについて、ある月のトラブル発生率を加算する。
【００６８】
以下、図７のトラブル発生件数に基づき、従来のトラブル発生率の算出例を示す。従来、トラブル発生率は、ソフトウェアの使用開始又は出荷開始から現在までに発生した全システムのトラブル発生件数に基づいて算出されていた。
４月：１１÷５０＝０．２２
５月：（１０+１２）÷（５０＋５０）＝０．２２
６月：（５＋８＋１４）÷（５０＋５０＋７０）＝０．１６
７月：（２＋６＋１１＋１５）÷（５０＋５０＋７０＋８０）＝０．１４
８月：（１＋２＋７＋１１＋１３）÷（５０＋５０＋７０＋８０＋６０）＝０．１１
９月：（１＋０＋２＋７＋１１＋１４）÷（５０＋５０＋７０＋８０＋６０＋８０）
＝０．０９
【００６９】
図７における算出装置１によるトラブル発生率の算出例では、トラブル発生率は各月で、ほぼ同じ値である。収束期間内のトラブル発生件数のみに注目した場合、トラブル発生率は大きな変動をしない。
一方、図７における従来のトラブル発生率の算出例では、６月にトラブル発生率は急減少し、９月までトラブル発生率の減少が継続している。従来例は、トラブル発生率を算出するために、収束期間経過後におけるソフトウェアのトラブル発生件数も考慮している。そのため、トラブル発生率が時間の経過と共に減少していくのは当然である。しかし、従来例のトラブル発生率の算出方法では、異なるソフトウェアの間又は異なる版数のソフトウェアの間において、トラブル発生率を比較しても、ソフトウェアの品質を正確に比較したことにはならない。
【００７０】
図７において、ソフトウェアの使用開始日からの経過時間を月単位で区切り、月単位で集計されたトラブル発生件数に基づいて、トラブル発生率を算出する場合を扱った。しかし、算出装置１がトラブル発生件数を集計する時間単位は、月単位に限らず、例えば１年でもよい。あるいは、１か月の日数又は１年の日数はカレンダーによって変動するため、算出装置１がトラブル発生件数を集計する時間単位は、３０日、７日、１日等でもよい。
【００７１】
例えば、メーカの管理者が算出装置１にトラブル発生件数を集計する時間単位として３０日を指定した場合、算出装置１が算出する過去３０日間のトラブル発生率は、以下の式で表される。
過去３０日間のトラブル発生率＝
（過去１〜３０日間に使用開始したソフトウェアでの過去１〜３０日間のトラブル数÷過去１〜３０日間に使用開始したシステム数）
＋（過去３１〜６０日間に使用開始したソフトウェアでの過去１〜３０日間のトラブル数÷過去３１〜６０日間に使用開始したシステム数）
＋（過去６１〜９０日間に使用開始したソフトウェアでの過去１〜３０日間のトラブル数÷過去６１〜９０日間に使用開始したシステム数）
＋・・・
【００７２】
上述では、収束期間に発生したトラブル発生件数に基づいて、トラブル発生率を算出した。しかし、算出装置１は、トラブル発生件数が一定数に収束した後について、トラブル発生率を算出してもよい。かかる場合、収束期間以降におけるソフトウェアの品質を比較、評価することができる。
【００７３】
また、ソフトウェアの使用開始から未来へ向かう経過時間を所定時間単位で区切るのではなく、例えばトラブル発生率を算出する対象の期間から過去に向かって経過時間を所定時間単位で区切ってトラブル発生件数を集計してもよい。
【００７４】
図８は、作業テーブルであるパラメータテーブル３Ｔのレコードレイアウトの一例を示す説明図である。パラメータテーブル３Ｔは、いずれのソフトウェアについて、いずれの期間のトラブル発生率を算出するかというパラメータを格納するテーブルである。ここで、いずれのソフトウェアとは、例えば図７におけるソフトウェアＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆのうち、いずれのソフトウェアについてトラブル発生率を算出するのかということである。ここで、いずれの期間とは、例えば図７における４列目以降の月に該当する列を指定することに対応する。算出装置１は、経過時間を区切った期間の長さ（例えば１か月の長さ）を越えて使用開始日が異なる複数のソフトウェア全体のトラブル発生率を算出する場合、指定された各ソフトウェアのトラブル発生率を加算して、最終的なトラブル発生率を求める。例えば、図７において、６月のトラブル発生率を求める場合、算出装置１は４月、５月、６月に夫々使用を開始したソフトウェアＡ、Ｂ、Ｃ各々について、６月に発生したトラブルのトラブル発生率を加算する。
【００７５】
パラメータテーブル３Ｔは、単位期間Ｍ、算出基準点ＢＰ、算出期間Ｋ、算出タイミングＴ及び収束期間Ｌの各列を含む。算出装置１は、トラブル発生件数を集計するに当たり、経過時間を例えば過去に向かって所定の時間間隔で区切る。単位期間Ｍは、経過時間を区切る区切り時間単位である。図８の例では、７日単位、すなわち１週間単位で経過時間を区切る例が示されている。
【００７６】
算出基点ＢＰは、経過時間を例えば過去に向かって区切る基点となる時間を指定するパラメータである。算出基点ＢＰのフォーマットは、例えばｙｙｙｙ／ｍｍ／ｄｄである。算出装置１は、算出基点ＢＰで指定された日付の午前０時又は算出基点ＢＰで指定された日付の前日の午後１２時を、経過時間を区切る基点に設定する。なお、算出基点ＢＰは、トラブル発生率を算出する当日でもよいし、他の日付でもよい。
【００７７】
算出期間Ｋは、トラブル発生率を算出する対象の期間を指定する数値である。算出装置１は、算出基点ＢＰから過去に向かって区切った各期間の最初の期間を基点にして、算出期間Ｋの数だけ単位期間Ｍの時間繰り返し過去に遡った期間を、トラブル発生率を算出する期間に設定する。図８の例では、算出期間Ｋは、算出基点ＢＰに基づく最初の区切り期間から０単位（７日×０単位＝０日）だけ過去に遡った期間を示している。
【００７８】
算出タイミングＴ及び収束期間Ｌは、トラブル発生率を算出する対象のソフトウェアを指定するパラメータである。算出装置１は、算出タイミングＴから算出タイミングＴ＋（Ｌ−１）まで、区切られた期間毎に使用が開始されたソフトウェアに対応するサポートＩＤを抽出する。そして、算出装置１は、抽出したサポートＩＤを期間毎にカウントし、カウントした数を各期間に使用が開始されたソフトウェア（システム群）の数とする。
【００７９】
メーカの管理者は、操作部１７から、パラメータテーブル３Ｔに格納されるパラメータを算出装置１に入力する。算出装置１は、入力されたパラメータをパラメータテーブル３Ｔに書き込む。なお、算出装置１は、操作部１７から入力されたパラメータを例えばＲＡＭ１３に記憶してもよい。
【００８０】
次に、具体的な数値例を挙げて、算出装置１がトラブル発生件数を集計する処理の手順を説明する。
図９は、作業テーブルである区切り期間テーブル４Ｔのレコードレイアウトの一例を示す説明図である。区切り期間テーブル４Ｔは、期間、ｆｒｏｍ及びｔｏの各列を含む。期間は、ソフトウェアの使用開始からの経過時間を、算出基点ＢＰを基点にして単位期間Ｍ毎に過去へ向かって区切った場合の期間を識別する番号である。図９には、期間１から期間８までが例示されている。
ｆｒｏｍ及びｔｏは、夫々期間における最初及び最後の日である。図９のｆｒｏｍ及びｔｏは、算出基点ＢＰが２０１１／０５／０１であり、単位期間Ｍが７日である場合を例示している。
算出装置１は、パラメータテーブル３Ｔの単位期間Ｍ及び算出基点ＢＰに基づいて、経過時間を過去に向かって区切り、区切ることにより求めた各期間のｆｒｏｍ及びｔｏを区切り期間テーブル４Ｔに書き込む。
算出装置１は、トラブル発生率を算出する対象である複数のソフトウェアの使用開始日のうち、最も古い使用開始日が区切る期間に含まれるまで、経過時間の区切りを繰り返す。
【００８１】
図１０は、作業テーブルであるサポートＩＤテーブル５Ｔのレコードレイアウトの一例を示す説明図である。サポートＩＤテーブル５Ｔは、トラブル発生率の分母に該当するソフトウェアの使用数を集計するための作業テーブルである。サポートＩＤテーブル５Ｔは、期間及びサポートＩＤの各列を含む。期間は、区切り期間テーブル４Ｔの期間と同じである。サポートＩＤは、各期間に使用が開始されたソフトウェアに対応するサポートＩＤである。
【００８２】
算出装置１は、ソフトウェア管理テーブル１ＴのサポートＩＤ及び使用開始日を参照し、パラメータテーブル３Ｔの算出タイミングＴ及び収束期間Ｌに基づいて、トラブル発生率を算出する対象となるソフトウェアのサポートＩＤを抽出する。
【００８３】
算出装置１は、図８のパラメータテーブル３Ｔのレコードを利用する場合、期間Ｔ＝２から期間Ｔ＋（Ｌ−１）＝２＋（３−１）＝４までの区切られた期間に使用が開始されたソフトウェアに対応するサポートＩＤをソフトウェア管理テーブル１Ｔから抽出する。具体的には、算出装置１は、期間２、期間３、期間４の各期間に、夫々使用が開始されたソフトウェアに対応するサポートＩＤをソフトウェア管理テーブル１Ｔから抽出し、抽出したサポートＩＤをサポートＩＤテーブル５Ｔに記録する。なお、いずれのサポートＩＤに対応するソフトウェアが各期間に使用が開始されたか否かは、ソフトウェア管理テーブル１Ｔの使用開始日が区切り期間テーブル４Ｔのいずれの期間のｆｒｏｍ及びｔｏの間にあるか否かで判定される。
【００８４】
図１１は、作業テーブルであるトラブル発生件数集計結果テーブル６Ｔのレコードレイアウトの一例を示す説明図である。トラブル発生件数集計結果テーブル６Ｔは、トラブル発生率の分子に該当するトラブル発生件数を集計するための作業テーブルである。トラブル発生件数集計結果テーブル６Ｔは、期間及びトラブル発生件数の各列を含む。期間は、区切り期間テーブル４Ｔの期間と同じである。トラブル発生件数は、各期間に使用が開始されたソフトウェア毎に、算出期間Ｋに発生したトラブル発生件数を集計した数である。
【００８５】
図８の例に従い、単位期間Ｍ＝７日、算出期間Ｋ＝０である場合、図９における算出期間Ｋは、次のようになる。算出期間Ｋは、算出基点ＢＰから過去に向かって区切った各区間の最初の期間を基点にして、算出期間Ｋ＝０の数だけ単位期間Ｍ＝７日の時間繰り返し過去に遡った期間であり、図９の期間１（２０１１／０４／２４〜２０１１／０４／３０）に該当する。
【００８６】
算出装置１は、トラブル情報管理テーブル２Ｔ及びサポートＩＤテーブル５Ｔを参照し、トラブル発生件数を期間毎に集計する。具体的には、算出装置１は、算出期間Ｋ、サポートＩＤテーブル５Ｔの各期間及びサポートＩＤと夫々整合するトラブル情報管理テーブル２Ｔのトラブル発生日及びサポートＩＤを抽出し、抽出したトラブル発生日及びサポートＩＤのレコード数を各期間毎に集計する。ここで、サポートＩＤテーブル５Ｔの各期間及びトラブル情報管理テーブル２Ｔのトラブル発生日が整合するとは、トラブル発生日が算出期間Ｋにおける最初及び最後の日の間に入る場合である。算出装置１は、集計したレコード数を期間毎にトラブル発生件数集計結果テーブル６Ｔのトラブル発生件数に記録する。
【００８７】
算出装置１は、サポートＩＤテーブル５ＴのサポートＩＤの数を期間毎に集計する。この集計されたサポートＩＤの数は、各期間に使用が開始されたソフトウェアのシステム数に等しい。そこで、算出装置１は、トラブル発生件数集計結果テーブル６Ｔにおける各期間のトラブル発生件数を、各期間に使用が開始されたソフトウェアのシステム数で夫々除算することにより、各期間に対応するトラブル発生率を算出する。そして、算出装置１は、算出した各期間に対応するトラブル発生率を加算し、最終的な算出期間Ｋにおけるトラブル発生率を求める。
【００８８】
以下に、ソフトウェアのトラブル発生率を算出する一般式の一例を示す。トラブル発生率は、パラメータテーブル３Ｔに格納されるパラメータＫ、Ｔ、Ｌにより、トラブル発生率（Ｋ、Ｔ、Ｌ）として表現される。
【００８９】
Ｋは、トラブル発生率を算出する期間を、算出基点ＢＰに基づいて区切った期間のうち最初の期間からＫ期間前の期間として表すためのパラメータである。期間の単位は、Ｍで表されるパラメータテーブル３Ｔの単位であり、既述したように１か月、３０日、７日（１週）、１日等から選択される任意の単位である。個々の期間は、経過時間を過去に向かってＭで区切った各期間の通し番号で特定される。個々の期間は、例えば１期間前の期間、２期間前の期間と表現される。
Ｔは、使用開始からの経過時間が収束期間内であるソフトウェアのうち、最も新しい期間に使用を開始したソフトウェアを指定するパラメータであり、指定したいソフトウェアの使用開始日が属する期間が現在から何期間前かという数値で表現される。
Ｌは、収束期間である。
【００９０】
ソフトウェアのトラブル発生率は、ソフトウェアのトラブル発生件数を、ソフトウェアを構成するシステム数で除算したものである。ソフトウェアのトラブル発生件数は、パラメータｍ、ｎにより、トラブル発生件数（ｍ、ｎ）として表現される。ソフトウェアのトラブル発生件数（ｍ、ｎ）は、ｍ期間に使用を開始したソフトウェアについてのｎ期間前に発生したトラブルの件数を示す。
ソフトウェアを構成するシステム数を、以下では使用開始数とも呼ぶ。使用開始数は、パラメータｌにより、使用開始数（ｌ）として表現される。使用開始数（ｌ）は、ｌ期間前に使用が開始されたソフトウェアを構成するシステム数を示す。
【００９１】
トラブル発生率（Ｋ、Ｔ、Ｌ）＝
トラブル発生件数（Ｔ、Ｋ）÷使用開始数（Ｔ）
＋トラブル発生件数（Ｔ＋１、Ｋ）÷使用開始数（Ｔ＋１）
＋トラブル発生件数（Ｔ＋２、Ｋ）÷使用開始数（Ｔ＋２）
・・・
＋トラブル発生件数（Ｔ＋（Ｌ−１）、Ｋ）÷使用開始数（Ｔ＋（Ｌ−１））
【００９２】
次に、具体的な数値を上記の一般式に代入した例を示す。
算出基点ＢＰに基づいて区切った最初の期間は１２月、Ｍは１か月、Ｋ＝1、Ｔ＝１、Ｌ＝３とする。すなわち、Ｋ＝１なので、１２月を基準にして１か月前である１１月のトラブル発生率を求める。
トラブル発生率（１、１、３）＝
１か月前の１１月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷１か月前の１１月に使用開始したソフトウェアを構成するシステム数
＋２か月前の１０月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷２か月前の１０月に使用開始したソフトウェアを構成するシステム数
＋３か月前の９月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷３か月前の９月に使用開始したソフトウェアを構成するシステム数
【００９３】
上述では、経過時間を区切る基点をパラメータテーブル３Ｔの算出基点ＢＰに設定したが、経過時間を区切る基点をＢＰ以外の時点（例えば、現在）に設定してもよいことは勿論である。
【００９４】
上述では、Ｔを使用開始からの経過時間が収束期間内であるソフトウェアのうち、最も新しい期間に使用を開始したソフトウェアを指定するパラメータとした。しかし、Ｔは、収束期間経過後のソフトウェアを指定するパラメータであってもよく、ソフトウェアの使用開始日から収束期間を経過した期間を示す数値であってもよい。これにより、収束期間以降におけるソフトウェアの品質をトラブル発生率で表現することができる。
【００９５】
収束期間以降のトラブル発生率の具体的な一例を以下に示す。
７か月前の５月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷７か月前の５月に使用開始したソフトウェアを構成するシステム数
＋８か月前の４月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷８か月前の４月に使用開始したソフトウェアを構成するシステム数
＋９か月前の３月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷９か月前の３月に使用開始したソフトウェアを構成するシステム数
＋１０か月前の２月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷１０か月前の２月に使用開始したソフトウェアを構成するシステム数
＋１１か月前の１月に使用開始したソフトウェアについて１１月に発生したトラブル件数
÷１１か月前の１月に使用開始したソフトウェアを構成するシステム数
【００９６】
上述では、収束期間以降のトラブル発生率を加算する対象のソフトウェアを、１月に使用開始したものから５月に使用開始したものまで、５種とした。しかし、トラブル発生率を加算する対象のソフトウェアの種類数は任意である。また、上述では、トラブル発生率を加算する対象のソフトウェアに係る使用開始期間を１月〜５月としたが、他の月の組み合わせが任意に選択されてよい。
【００９７】
図１２、図１３及び図１４は、トラブル発生率算出処理の手順の一例を示すフローチャートである。以下の処理において、制御部１１は、配列を含む作業変数を用いてトラブル発生率を算出する。しかし、制御部１１は、パラメータテーブル３Ｔ、区切り期間テーブル４Ｔ等の作業テーブルに中間段階の計算結果又は処理結果を記録することにより、トラブル発生率を算出してもよいことは勿論である。
【００９８】
なお、ステップＳ１０２からステップＳ１０６までの処理は、経過時間を区切り、区切られた各期間を求める処理である。ステップＳ１０７からステップＳ１１１までの処理は、トラブル発生率の分母に該当する使用開始数を求める処理である。ステップＳ１１２からステップＳ１１５までの処理は、トラブル発生率の分子に該当するトラブル発生件数を求める処理である。ステップＳ１１６からステップＳ１２１までの処理は、異なる期間に使用を開始した各ソフトウェアのトラブル発生率を算出し、算出したトラブル発生率を加算する処理である。
【００９９】
以下、次の変数を使用する。
ＳＯＦＴ          ：ソフトウェア名を格納する変数
ＶＬ              ：ソフトウェア版数を格納する変数
Ｍ                ：区切りの単位期間を格納する変数
ＢＰ              ：算出基点を格納する変数
Ｋ                ：算出期間を格納する変数
Ｔ                ：算出タイミングを格納する変数
Ｌ                ：収束期間を格納する変数
ＤＡＹ            ：日付を格納する作業変数
ＦＲＯＭ（）      ：区切り期間の最初の日付を格納する配列
ＴＯ（）          ：区切り期間の最後の日付を格納する配列
ｉ                ：期間の数を数えるカウンタ変数
ＩＤ（）          ：サポートＩＤを格納する配列
Ｕ＿ＣＯＵＮＴ（）：使用開始数を格納する配列
Ｔ＿ＣＯＵＮＴ（）：トラブル発生件数を格納する配列
ＳＵＭ            ：トラブル発生率の加算値を格納する変数
Ｒ＿ＴＲＯＵＢＬＥ：加算後のトラブル発生率を格納する変数
なお、Ｍは日を単位としている。
【０１００】
制御部１１は、操作部１７から入力されたパラメータを受け付ける（ステップＳ１０１）。ステップＳ１０１において、制御部１１が受け付けるパラメータは、パラメータテーブル３Ｔのパラメータ、ソフトウェア名及びソフトウェア版数である。ステップＳ１０１において、制御部１１は、受け付けたパラメータを各変数に代入する処理も実行する。制御部１１は、経過時間を過去に向かって区切る区切り期間の基点日を算出する（ステップＳ１０２）。
ステップＳ１０２における処理は、例えば次のようになる。
ＤＡＹ＝ＢＰ−１
ＢＰ−１は、ＢＰの午前０時又は前日の午後１２時を基点とするためである。
【０１０１】
なお、トラブル発生率の算出に用いない期間の算出を避けるために、次のようにしてもよい。
ＤＡＹ＝（ＢＰ−１）−Ｔ×Ｍ
【０１０２】
制御部１１は、期間１の最初及び最後の日を算出する（ステップＳ１０３）。
ステップＳ１０３における処理は、例えば次のようになる。
ＦＲＯＭ（１）＝ＤＡＹ−（Ｍ−１）
ＴＯ（１）    ＝ＤＡＹ
制御部１１は、次の期間の最初及び最後の日を算出する（ステップＳ１０４）。
ステップＳ１０４における処理は、例えば次のようになる。
ｉ＝２
ＦＲＯＭ（ｉ）＝ＦＲＯＭ（ｉ−１）−Ｍ
ＴＯ（ｉ）    ＝ＴＯ（ｉ−１）−Ｍ
【０１０３】
制御部１１は、カウンタ変数ｉをインクリメントする（ステップＳ１０５）。制御部１１は、ｉがＴ＋Ｌより大きいか否かを判定する（ステップＳ１０６）。制御部１１は、ｉがＴ＋Ｌより大きくないと判定した場合（ステップＳ１０６：ＮＯ）、ステップＳ１０４へ処理を戻す。制御部１１は、ｉがＴ＋Ｌより大きいと判定した場合（ステップＳ１０６：ＹＥＳ）、ステップＳ１０７に処理を進める。
【０１０４】
制御部１１は、ｉにＴを格納する（ステップＳ１０７）。制御部１１は、サポートＩＤをＩＤ（ｉ）に格納する（ステップＳ１０８）。ステップＳ１０８において、制御部１１は、次の条件を満たすサポートＩＤをソフトウェア管理テーブル１Ｔから抽出し、抽出したサポートＩＤをＩＤ（ｉ）に格納する。
ソフトウェア名＝ＳＯＦＴ
ソフトウェア版数＝ＶＬ
ＦＲＯＭ（ｉ）≦使用開始日≦ＴＯ（ｉ）
【０１０５】
制御部１１は、使用開始数をＵ＿ＣＯＵＮＴ（ｉ）に格納する（ステップＳ１０９）。ステップＳ１０９において、抽出したサポートＩＤの数、すなわちＩＤ（ｉ）の要素数をＵ＿ＣＯＵＮＴ（ｉ）に格納する。制御部１１は、カウンタ変数ｉをインクリメントする（ステップＳ１１０）。
【０１０６】
制御部１１は、ｉがＴ＋Ｌより大きいか否かを判定する（ステップＳ１１１）。制御部１１は、ｉがＴ＋Ｌより大きくないと判定した場合（ステップＳ１１１：ＮＯ）、ステップＳ１０８へ処理を戻す。制御部１１は、ｉがＴ＋Ｌより大きいと判定した場合（ステップＳ１１１：ＹＥＳ）、ステップＳ１１２に処理を進める。
【０１０７】
制御部１１は、ｉにＴを格納する（ステップＳ１１２）。制御部１１は、トラブル発生件数をＴ＿ＣＯＵＮＴ（ｉ）に格納する（ステップＳ１１３）。ステップＳ１１３において、制御部１１は、次の条件を満たすトラブル発生件数をトラブル情報管理テーブル２Ｔから抽出し、抽出したトラブル発生件数をＴ＿ＣＯＵＴ（ｉ）に格納する。
ソフトウェア名＝ＳＯＦＴ
ソフトウェア版数＝ＶＬ
ＦＲＯＭ（Ｋ）≦トラブル発生日≦ＴＯ（Ｋ）
サポートＩＤ＝ＩＤ（ｉ）に格納されたいずれかの要素のサポートＩＤ
制御部１１は、Ｋにより指定された期間に発生したトラブルのうち、Ｔ期間からＴ＋（Ｌ−１）期間までの間に使用開始されたソフトウェア又はシステムに付されたサポートＩＤを持つレコードの数をトラブル情報管理テーブル２Ｔから抽出する。
制御部１１は、カウンタ変数ｉをインクリメントする（ステップＳ１１４）。
【０１０８】
制御部１１は、ｉがＴ＋Ｌより大きいか否かを判定する（ステップＳ１１５）。制御部１１は、ｉがＴ＋Ｌより大きくないと判定した場合（ステップＳ１１５：ＮＯ）、ステップＳ１１３へ処理を戻す。制御部１１は、ｉがＴ＋Ｌより大きいと判定した場合（ステップＳ１１５：ＹＥＳ）、ステップＳ１１６に処理を進める。
【０１０９】
ＳＵＭに０を格納する（ステップＳ１１６）。ステップＳ１１６は、制御部１１がＳＵＭを初期化する処理である。制御部１１は、ｉにＴを格納する（ステップＳ１１７）。制御部１１は期間ｉに使用開始されたソフトウェアのトラブル発生率を算出し、算出したトラブル発生率をＳＵＭに格納する（ステップＳ１１８）。
ステップＳ１１８における処理は、例えば次のようになる。
ＳＵＭ＝ＳＵＭ＋（Ｔ＿ＣＯＵＮＴ（ｉ）÷Ｕ＿ＣＯＵＮＴ（ｉ））
【０１１０】
制御部１１は、カウンタ変数ｉをインクリメントする（ステップＳ１１９）。制御部１１は、ｉがＴ＋Ｌより大きいか否かを判定する（ステップＳ１２０）。制御部１１は、ｉがＴ＋Ｌより大きくないと判定した場合（ステップＳ１２０：ＮＯ）、ステップＳ１１８へ処理を戻す。制御部１１は、ｉがＴ＋Ｌより大きいと判定した場合（ステップＳ１２０：ＹＥＳ）、繰り返しＳＵＭに加算したトラブル発生率をＲ＿ＴＲＯＵＢＬＥに格納し（ステップＳ１２１）、処理を終了する。
【０１１１】
Ｒ＿ＴＲＯＵＢＬＥは、例えばグローバル変数であり、トラブル発生率算出処理の終了後、トラブル発生率を実績値として出力する際に、制御部１１により参照される。
制御部１１は、操作部１７を介して、トラブル発生率の実績値を出力する命令を受け付けた場合、例えば次のようなトラブル発生率算出結果を表示部１６に表示する。
製品名    ：ＪＯＨＣＨＡＲ
世代      ：Ｖ２０Ｌ２０
実績値    ：１０．５
【０１１２】
上述における算出期間Ｋは、算出基点ＢＰに基づいて相対的に指定された。しかし、算出期間Ｋは、例えば２０１１年３月２日、２０１１年５月のように絶対的に指定されてもよい。また、算出期間Ｋは、２０１１年８月１日〜２０１１年８月３１日のように開始日と終了日とから、絶対的に指定されてもよい。
【０１１３】
上述では、経過時間を区切る時間単位の長さと、トラブル発生件数を集計する時間単位の長さと、トラブル発生率を算出する対象の期間（算出期間Ｋ）の長さとは、同一であった。しかし、これらの時間の単位の長さは、異なっていてもよい。
例えば、経過時間を区切る時間単位及びトラブル発生件数を集計する時間単位を１日とした場合、トラブル発生率を算出する対象の期間の長さとして、１日以上の任意の長さが指定されてもトラブル発生率を算出することができる。また、トラブル発生件数を１日単位で集計する場合、トラブル発生率を算出する対象の期間として、例えば２０１１年１２月１５日〜２０１２年１月１４日のように、異なる年又は月を跨ぐ期間が指定されても、トラブル発生率を算出することができる。
【０１１４】
算出装置１によれば、ソフトウェアのトラブル発生率をより正確に算出することができる。
ソフトウェアは使用が開始されてから収束期間までと、収束期間以後とで、トラブル発生件数の時間変化が異なる。また、収束期間の長さは、ソフトウェアの種類によって異なる。収束期間を考慮せずに、出荷開始から現在までの全システムについてトラブル発生率を算出しても、出荷時期が異なるソフトウェア、出荷数の伸長が異なるソフトウェア等を客観的に比較することは困難である。算出装置１は、収束期間内に発生したトラブルに基づいてトラブル発生率を算出するため、出荷時期、出荷数の伸長等の違いがあるソフトウェア同士の間でも品質比較が可能である。また、算出装置１は、収束期間以降に発生したトラブルに基づいてトラブル発生率を算出することでも、ソフトウェア同士の品質を客観的に比較することができる。
【０１１５】
大規模なシステムは複数のソフトウェアからなり、時期をずらして各ソフトウェアがリリースされる。そのため、使用者は複数のソフトウェアを異なる時期に順次使用し始める。そのような複数のソフトウェアのトラブル発生率をある特定の期間について算出する場合にも、算出装置１は収束期間内のソフトウェアにおけるトラブル発生率を加算することにより、トラブル発生率の客観性を担保することができる。
【０１１６】
実施の形態２
実施の形態２は、ソフトウェアに関する様々なメタデータ別にトラブル発生率を算出する形態に関する。また、実施の形態２は、トラブル発生件数をソフトウェアの売上額で除算することにより、単位売上額当たりのトラブル発生件数を算出する形態に関する。収束期間の考え、サポートＩＤ、経過時間を各期間に区切ること等は、実施の形態１と同じである。
（実施例２−１）
実施例２−１は、ソフトウェア管理テーブル１Ｔの使用者ＩＤ別に、トラブル発生率を算出する実施例に関する。以下、メーカにとって、使用者ＩＤは顧客ＩＤと同じであるものとする。メーカは、使用者ＩＤ別のトラブル発生率を算出することにより、納入したソフトウェアのトラブル発生率が高い顧客に対して、他の顧客よりも多くのコストをサポート業務にかけていることがわかる。これにより、コスト低減が可能な顧客を絞り込むことができる。また、顧客が他社と同じソフトウェアを同じ環境で使用しているにもかかわらず、他社よりもトラブル発生率が高い場合、ソフトウェアの運用体制を見直すシグナルを得ることができる。
【０１１７】
算出装置１は、ソフトウェア名及びソフトウェア版数を受け付けた場合、ソフトウェア管理テーブル１Ｔから、同一のソフトウェア名及びソフトウェア版数について、使用者ＩＤ、サポートＩＤ及び使用開始日を抽出する。算出装置１は、トラブル発生率を算出する対象の期間が入力されている場合、抽出したサポートＩＤ及び使用開始日に基づいて、その入力された期間におけるソフトウェアのトラブル発生率を、使用者ＩＤ別に算出する。また、算出装置１は、トラブル発生率を算出する対象の期間が入力されていない場合、抽出したサポートＩＤ及び使用開始日に基づいて、所定期間におけるソフトウェアのトラブル発生率を使用者ＩＤ別に算出する。ここでの所定期間とは、ハードディスク１４に予め所定期間として記憶された、例えば直近３か月のような数値である。
【０１１８】
算出装置１は、使用者ＩＤ及び使用者ＩＤ別に算出したトラブル発生率を降順にソートする。算出装置１は、使用者ＩＤ別に算出したトラブル発生率の平均値を算出する。算出装置１は、ソートした使用者ＩＤ、トラブル発生率及び平均値を表示部１６に表示する。
なお、算出装置１は、使用者ＩＤ別に算出したトラブル発生率について、各種の統計処理（例えば分散、標準偏差の算出）を実行し、実行した結果を表示部１６に表示してもよい。
【０１１９】
（実施例２−２）
実施例２−２は、ソフトウェア管理テーブル１Ｔのステップ数に基づいて、トラブル発生率を加工する実施例に関する。ステップ数が多いソフトウェアは、トラブル発生件数が多い傾向がある。そこで、ソフトウェアのトラブル発生率をソフトウェアを構成するプログラムのステップ数で除算し、ノーマライズすることにより、ステップ数の大小の影響を除外したトラブル発生率を算出することができる。
【０１２０】
算出装置１は、トラブル発生率を算出した場合、その基となったサポートＩＤに対応するステップ数をソフトウェア管理テーブル１Ｔから抽出する。算出装置１は、トラブル発生率を算出する基となったサポートＩＤが複数ある場合、各サポートＩＤに対応するステップ数を加算する。また、算出装置１は、異なる期間に使用を開始した複数のソフトウェアがある場合、使用を開始した期間毎にステップ数を加算する。
【０１２１】
算出装置１は、算出したトラブル発生率を抽出又は加算したステップ数でノーマライズし、１ステップ当たりのトラブル発生率を算出する。算出装置１は、算出した１ステップ当たりのトラブル発生率を表示部１６に表示する。算出装置１は、実施の形態１に係るトラブル発生率を表示部１６に表示する場合、別途算出した１ステップ当たりのトラブル発生率を併記して表示してもよい。
（実施例２−３）
実施例２−３は、ソフトウェア管理テーブル１Ｔの売上額に基づいて、単位売上額当たりのトラブル発生件数を算出する実施例に関する。例えば、価格が安いソフトウェア製品におけるトラブル発生率が高い場合、サポート業務に係るコストの上昇を招く。そこで、単位売上額当たりのトラブル発生件数を算出することにより、コスト面から見たソフトウェアの品質を把握する材料を提供することが可能となる。
【０１２２】
トラブル発生率は、トラブル発生件数÷使用開始数であった。本実施例における単位売上額当たりのトラブル発生件数を一種のトラブル発生率とみなした場合、そのトラブル発生率は以下の式で表される。
トラブル発生率＝トラブル発生件数÷使用開始数（ｌ）に対応する総売上額
使用開始数（1）に対応する総売上額は、ｌ期間前に使用が開始されたソフトウェアを構成するシステムの売上額の総和である。売上額は、ソフトウェア管理テーブル１Ｔから抽出される。
【０１２３】
算出装置１は、トラブル発生率を算出する場合、その基となるサポートＩＤに対応する売上額をソフトウェア管理テーブル１Ｔから抽出する。算出装置１は、トラブル発生率を算出する基となるサポートＩＤが複数ある場合、サポートＩＤ毎に売上額を加算し、複数のサポートＩＤに対応する総売上額を求める。
【０１２４】
算出装置１は、集計したトラブル発生件数を抽出又は加算した売上額でノーマライズし、単位売上額当たりのトラブル発生率を算出する。算出装置１は、算出した単位売上額当たりのトラブル発生率を表示部１６に表示する。算出装置１は、実施の形態１に係るトラブル発生率を表示部１６に表示する場合、別途算出した単位売上額当たりのトラブル発生率を併記して表示してもよい。
【０１２５】
（実施例２−４）
実施例２−４は、ソフトウェア管理テーブル１Ｔの受講実績に基づいて、ソフトウェアの使用方法に関する教育を受講した使用者と、未受講の使用者とのトラブル発生率を比較する実施例に関する。ソフトウェア管理テーブル１Ｔの受講実績は、ソフトウェアの使用方法に関する教育を使用者が受講したか否かを示すフラグである。
【０１２６】
大規模開発により作成されたソフトウェアは、その複雑さのために、ソフトウェアの使用方法に関する教育が実施される。受講実績の有無がトラブル発生率と相関する場合と相関しない場合とがあり得るが、どちらの結果もメーカ及び使用者にとって、ソフトウェアの使用方法に関する教育の是非、教育プログラムの修正等について吟味する材料となる。また、受講実績の有無別に算出されるトラブル発生率は、メーカにとって受講を使用者に促す材料にすることができる。受講実績の有無別に算出されるトラブル発生率は、使用者にとってトラブル対応コストと受講コストとから、受講に関する費用対効果を判定する材料となる。
【０１２７】
算出装置１は、算出するトラブル発生率の基となるサポートＩＤに対応する受講実績をソフトウェア管理テーブル１Ｔから抽出する。算出装置１は、算出したトラブル発生率を表示部１６に表示する場合、受講実績の有無をトラブル発生率に対応付けて表示する。
算出装置１は、算出したトラブル発生率が複数のサポートＩＤに基づく場合、ソフトウェア管理テーブル１Ｔから受講実績について有り及び無しの件数を夫々集計する。そして、算出装置１は、算出したトラブル発生率を表示部１６に表示する場合、集計した受講実績に関する有り及び無しの件数をトラブル発生率に併記する形態で表示する。
【０１２８】
（実施例２−５）
実施例２−５は、ソフトウェアのトラブルをより細かく分類し、分類したトラブル毎にトラブル発生率を算出する実施例に関する。ソフトウェアについて発生するトラブルの種類は、ソフトウェアの使用開始からの経過時間により異なる場合がある。そのようなトラブルの種類として、例えば以下の例を挙げることができる。
インストールミス、環境設定ミス
新たなコマンド実行における操作ミス
データのバックアップ処理における操作ミス、修正プログラムを適用する場合の操作ミス、初期設定ミス
ハードディスク及びＲＡＭにおけるフラグメンテーション並びに記憶領域の枯渇
ハードウェア部品の交換に伴う操作ミス
【０１２９】
例えば、トラブル情報管理テーブル２Ｔの現象を更に細分化し、上記のトラブルの種類毎に現象の列を追加する。算出装置１は、トラブル発生件数を集計する際に、トラブルの種類別に集計する。算出装置１は、トラブルの種類別に集計したトラブル発生件数を用いてトラブル発生率を算出し、トラブルの種類別にトラブル発生率を表示部１６に表示する。また、算出装置１は、区切った期間の時系列順に、トラブルの種類別に算出したトラブル発生率を表示部１６に表示してもよい。
【０１３０】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【０１３１】
以上の実施の形態に関し、さらに以下の付記を開示する。
【０１３２】
（付記１）
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、
該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部と
を備えることを特徴とする算出装置。
【０１３３】
（付記２）
ソフトウェアに関するトラブルの発生率を算出する対象期間の開始日及び終了日を受け付ける受付部を備え、
前記集計部は、前記対応情報に対応付けられた使用開始日から前記受付部が受け付けた終了日までの期間が前記所定期間内であるソフトウェアについて、前記受付部が受け付けた開始日及び終了日に係る対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部が集計したトラブルの件数を前記ソフトウェアの数で除算して、トラブルの発生率を算出する
ことを特徴とする付記１に記載の算出装置。
【０１３４】
（付記３）
前記受付部は、ソフトウェアの使用開始日から該ソフトウェアに関して発生するトラブルの件数が一定数に収束するまでの仮定期間を更に受け付け、
前記集計部は、前記対応情報に対応付けられた使用開始日から前記終了日までの期間が前記受付部により受け付けられた仮定期間内であるソフトウェアについて、前記対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部が集計したトラブルの件数を前記ソフトウェアの数で除算して、トラブルの発生率を算出する
ことを特徴とする付記２に記載の算出装置。
【０１３５】
（付記４）
前記受付部は、経過時間を一定間隔で区切るための期間を更に受け付け、
前記受付部が受け付けた期間で経過時間を複数の期間に区切る区切り部を備え、
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日とが複数レコード毎に対応付けられた情報であり、
前記集計部は、前記区切り部により区切られた異なる期間毎に使用が開始されたソフトウェア別に、前記対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部がソフトウェア別に集計したトラブルの件数を、夫々対応する前記期間毎に使用が開始されたソフトウェアの数で除算して、トラブルの発生率を各々算出する
ことを特徴とする付記３に記載の算出装置。
【０１３６】
（付記５）
前記算出部は、異なる前記期間毎に使用が開始されたソフトウェア別に各々算出したトラブルの発生率を加算する
ことを特徴とする付記４に記載の算出装置。
【０１３７】
（付記６）
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアに係る一又は複数の使用者の識別情報とが複数レコード毎に対応付けられた情報であり、
前記集計部は、前記対応情報に対応付けられた一又は複数の使用者の識別情報に基づいて、トラブルの件数を該使用者別に集計し、
前記算出部はトラブルの発生率を前記使用者別に算出する
ことを特徴とする付記１に記載の算出装置。
【０１３８】
（付記７）
前記対応情報にソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアの使用方法に関する教育に対する前記一又は複数の使用者の受講実績の有無とが対応付けられており、
前記集計部は、前記対応情報に対応付けられた前記受講実績の有無別にトラブルの件数を集計し、
前記算出部は、前記受講実績の有無別にトラブルの発生率を算出する
ことを特徴とする付記６に記載の算出装置。
【０１３９】
（付記８）
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアを構成するプログラムのステップ数とが対応付けられた情報であり、
前記算出部は、算出したトラブルの発生率を前記対応情報に対応付けられたステップ数で除算して正規化する
ことを特徴とする付記１に記載の算出装置。
【０１４０】
（付記９）
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアの経済的価値に関する数値とが対応付けられた情報であり、
前記算出部は、前記集計部が集計したトラブルの件数を前記対応情報に対応付けられた数値で除算して、該数値単位のトラブルの件数を算出する
ことを特徴とする付記１に記載の算出装置。
【０１４１】
（付記１０）
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日から所定期間が経過したソフトウェアについて、該所定期間経過後に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、
該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部と
を備えることを特徴とする算出装置。
【０１４２】
（付記１１）
前記算出部が算出したトラブルの発生率を出力する出力部を備える
ことを特徴とする付記１から付記１０までのいずれか一つに記載の算出装置。
【０１４３】
（付記１２）
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計し、
集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する
ことを特徴とする算出方法。
【０１４４】
（付記１３）
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計し、
集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する
処理をコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【０１４５】
１    算出装置（コンピュータ）
１１  制御部（集計部、算出部、出力部）
１４  ハードディスク
１７  操作部（受付部）
２    分析対象装置
１Ｐ  プログラム
１Ｔ  ソフトウェア管理テーブル
２Ｔ  トラブル情報管理テーブル
３Ｔ  パラメータテーブル
４Ｔ  区切り期間テーブル
５Ｔ  サポートＩＤテーブル
６Ｔ  トラブル発生件数集計結果テーブル
【図１】
2014016814.tif 000003
【図２】
2014016814.tif 000004
【図３】
2014016814.tif 000005
【図４】
2014016814.tif 000006
【図５】
2014016814.tif 000007
【図６】
2014016814.tif 000008
【図７】
2014016814.tif 000009
【図８】
2014016814.tif 000010
【図９】
2014016814.tif 000011
【図１０】
2014016814.tif 000012
【図１１】
2014016814.tif 000013
【図１２】
2014016814.tif 000014
【図１３】
2014016814.tif 000015
【図１４】
2014016814.tif 000016