(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
本実施の形態に係るトラブル発生率算出システムをその図面に基づいて説明する。トラブル発生率算出システムは、ソフトウェアに係るトラブルの発生率を算出する。ここでのトラブルとは、ソフトウェアを構成するプログラムのバグだけでなく、ソフトウェア製造者(以下、メーカと呼ぶ)が運営するヘルプデスク、サービスセンター等へ寄せられる問い合わせ又は苦情も含む。例えば、ソフトウェアの使用者は「ソフトウェアの○○がわからない」、「ソフトウェアの機能である△△を実行できない」等の問い合わせ又は苦情をヘルプデスク等に寄せる。メーカは、使用者又は使用者が使用するコンピュータからトラブル情報を集め、算出装置(コンピュータ)により、トラブルの発生率を算出する。
【0012】
実施の形態1
図1は、トラブル発生率算出システムのハードウェア構成例の概要を示すブロック図である。トラブル発生率算出システムは、算出装置1及び分析対象装置2を含む。算出装置1及び分析対象装置2は、夫々PC(パーソナルコンピュータ)、ワークステーション、汎用コンピュータ等である。分析対象装置2は、携帯電話、スマートフォン、タブレットPC等でもよい。以下では、算出装置1及び分析対象装置2は、夫々ワークステーションであるものとする。
図1には、1台の分析対象装置2が描かれているが、分析対象装置2の台数は2台以上でもよい。
【0013】
分析対象装置2には、メーカが製造し、顧客に販売したソフトウェアがインストールされている。分析対象装置2にインストールされているソフトウェアの数は、1つでもよいし、複数でもよい。ソフトウェアが大規模であればあるほど、ソフトウェアを構成するプログラムの数は増大し、その機能も多岐に渡る。
【0014】
例えば、分析対象装置2にインストールされているソフトウェアが人事管理ソフトである場合、ソフトウェアを構成する各プログラムは社員管理、勤務管理、給与管理、組織管理等の多くの機能を有する。各プログラムは、一度に全てがインストールされる場合もあれば、少しずつ時間をかけてインストールされる場合もある。後者の場合、時間をかけてシステムが構築されることになる。
【0015】
分析対象装置2に対してソフトウェアを構成する各プログラムのインストールが終了する前後に、又はメーカが顧客にソフトウェアを販売する際に、顧客はソフトウェアに関するサポートサービスを受ける契約をプログラム毎に又は一括してメーカと締結する。分析対象装置2に対してソフトウェアを構成する各プログラムのインストールが終了した後に、顧客はソフトウェアのテストを含めて、ソフトウェアの使用を開始する。一般に、ソフトウェアを構成する各プログラムの使用開始日は同じではなく、プログラム間で異なる。
【0016】
分析対象装置2において稼働するソフトウェアにトラブルが発生した場合、トラブルの発生日、トラブル内容等のトラブル情報が顧客からメーカに通知される。メーカの管理者は、顧客から通知されたトラブル情報を算出装置1に入力する。算出装置1は、顧客から通知されたソフトウェアに関するトラブル情報を蓄積する。そして、算出装置1は、自身が保持するソフトウェアに関する情報及び蓄積したトラブル情報に基づいて、トラブル発生率を算出する。
【0017】
算出装置1及び分析対象装置2は、ネットワークNにより接続されていてもよいし、接続されていなくてもよい。
図1は、算出装置1及び分析対象装置2がネットワークNにより接続された状態を例示している。ネットワークNは、例えばインターネット、LAN(Local Area Network)、WAN(Wide Area Network)、電話通信回線、衛星通信回線、ケーブルテレビに係るケーブル、電力及び情報を送信する電線等であり、これらを組み合わせた通信網であってもよい。
算出装置1及び分析対象装置2がネットワークNにより接続されている場合、分析対象装置2はソフトウェアに関するトラブル情報をネットワークNを介して算出装置1に送信してもよい。
【0018】
図2は、算出装置1のハードウェア構成例を示すブロック図である。算出装置1は、制御部(集計部、算出部、出力部)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13を含む。また、算出装置1は、ハードディスク14、ディスクドライブ15、表示部16、操作部(受付部)17及び送受信部18を含む。算出装置1の各構成部は、バス1bを介して相互に接続されている。
【0019】
制御部11は、CPU(Central Processing Unit)からなるプロセッサであり、算出装置1の各構成部を制御する。制御部11は、ハードディスク14に記憶されたプログラム1PをRAM13に読み出し、RAM13に読み出したプログラム1Pを実行する。
【0020】
ROM12は、例えば不揮発性の半導体メモリ又は半導体メモリ以外の読み出し専用記憶媒体である。ROM12は、算出装置1の起動時に制御部11が実行するBIOS(Basic Input/Output System)、ファームウェア等を記憶している。
RAM13は、例えばSRAM又はDRAMであり、制御部11が実行する処理の過程で必要な作業変数、データ等を一時的に記憶する。なお、RAM13は主記憶装置の一例であり、RAM13の代わりにフラッシュメモリ、メモリカード等が用いられてもよい。
【0021】
ハードディスク14は、制御部11が実行するプログラム1P及び各種テーブル(対応情報)を記憶している。プログラム1Pは、制御部11が実行する処理の手順を記録している。各種テーブルは、ソフトウェア管理テーブル1T、トラブル情報管理テーブル2T及び各種作業テーブルを含む。ソフトウェア管理テーブル1Tは、分析対象装置2上で動作するソフトウェアを管理するテーブルである。トラブル情報管理テーブル2Tは、分析対象装置2上で動作するソフトウェアに関するトラブル情報を管理するテーブルである。作業テーブルは、制御部11がトラブル発生率を算出する処理を実行するに当たり、必要な作業データを格納するテーブルである。なお、制御部11は、作業データを例えば変数又は配列としてRAM13に記憶してもよい。かかる場合、作業テーブルはなくてもよい。
各種テーブルの詳細については、後述する。
【0022】
ハードディスク14は、算出装置1の内部に取り付けられるものであっても、算出装置1の外部に置かれるものであってもよい。例えば、ハードディスク14に記憶された各種テーブルは、外部のデータベースサーバに記憶されていてもよい。かかる場合、算出装置1は、外部のデータベースサーバにアクセスして、各種テーブルに記憶されている情報を取得し、各種テーブルに情報を書き込むことができる。
ハードディスク14は、補助記憶装置の一例であり、大容量の情報の記憶が可能なフラッシュメモリ又はCD(Compact Disc)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc、登録商標)等の光ディスク1aで代替されてもよい。
【0023】
ディスクドライブ15は、外部の記憶媒体であるCD、DVD、BD等の光ディスク1aから情報を読み出し、光ディスク1aに情報を記録する。制御部11は、操作部17からディスクドライブ15に対する光ディスク1aの排出命令を受け付けた場合、ディスクドライブ15の図示しないトレイを排出する。
【0024】
表示部16は、例えば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等の画面を有し、制御部11からの指示に従って、プログラム1Pに係る各種情報を表示する。
【0025】
操作部17は、ユーザが各種の入力を行うキーボード、マウス、電源スイッチ、ディスクドライブ15から光ディスク1aを排出するための操作ボタン等の入力デバイスを含む。操作部17は、ユーザによる操作に基づいて入力信号を生成する。生成された入力信号は、バス1bを介して制御部11に送信される。
【0026】
送受信部18は、有線又は無線通信のモデム、LANカード、ルータ、USB端子、接続ケーブル等であり、ネットワークNと接続されている。送受信部18は、ネットワークNを介して分析対象装置2と接続されている。送受信部18は、パラレルポート又はプリンタポートを備えていてもよい。
【0027】
分析対象装置2のハードウェア構成は、算出装置1のハードウェア構成と同じであるため、その説明を省略する。
【0028】
算出装置1は、ソフトウェアの使用開始日を基準にして、使用開始日からの経過時間(期間)が所定期間内であるソフトウェアについてトラブル発生率を算出する。ここでのソフトウェアは、トラブルの数をカウントする単位となるソフトウェアであり、その規模は問わない。以下、ソフトウェアの使用開始日から所定期間内に発生するトラブルを、算出装置1が算出するトラブル発生率の対象とする理由について説明する。
【0029】
図3は、ソフトウェアの種別毎に、ソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
図3Aは、業務運用管理に関するソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
図3Bは、OS(オペレーティングシステム)に関する使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
図3Cは、GUI(Graphical User Interface)に関するソフトウェアの使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
図3Dは、データベースに関する使用開始日からの経過時間とトラブル発生件数との関係を例示した説明図である。
【0030】
図3A〜
図3Dにおける横軸は、ソフトウェアの使用開始日からの経過時間であり、単位は週(W)である。
図3A〜
図3Dにおける縦軸は、トラブル発生件数である。ここでのトラブル発生件数は、例えば100システム当たりの発生件数である。また、ここでのシステムは、最小単位の機能を有するプログラム又はプログラム群を1システムとする。便宜上、
図3A、
図3B、
図3C及び
図3Dに夫々対応するトラブル発生件数の推移をパターン1、パターン2、パターン3及びパターン4と呼ぶ。
【0031】
図3Aのパターン1では、システム構築期間(例えば、〜5週)の環境設定時に多くのトラブルが発生し、その後トラブル発生件数は減少する。しかし、設定ミスに起因するトラブルが再び発生する(例えば、15週〜19週)。20週以降、トラブル発生件数は減少する。
【0032】
図3Bのパターン2では、システム構築期間又はテスト期間の間(例えば、〜16週)、トラブルが発生するが、その後徐々にトラブル発生件数は減少し、トラブル発生件数は0件に収束する。
【0033】
図3Cのパターン3では、運用初期(例えば、〜3週)に画面操作に関するトラブルが多く発生する。しかし、その後、ユーザが画面操作に慣れる、画面を使用しなくなる等の理由から、トラブル発生件数は急減する。
【0034】
データベースは、アプリケーション開発に使用される代表的なソフトウェアの1つである。
図3Dのパターン4では、アプリケーション開発期間(例えば、〜18週)にトラブルが多く発生する。なお、アプリケーション開発期間の終盤にトラブル発生件数が増加する場合もある。
【0035】
以上、
図3に示すように、ソフトウェアのトラブル発生件数の時間推移は、ソフトウェアの種別によって異なる。しかし、どの種別のソフトウェアについても、使用開始から種別毎に所定時間が経過した後に、トラブル発生件数が一定数に収束する経験則が見出される。
そこで、予め使用開始日からトラブル発生件数が一定数に収束するまでの期間(以下、この期間を収束期間(仮定期間)と呼ぶ)を、ソフトウェアの種別毎に決定しておく。収束期間が経過する前段階では、どのソフトウェアについてもトラブル発生件数は多い。他方、収束期間が経過した後にカウントされるトラブル発生件数は、いずれのソフトウェアについても一定に推移する。従って、あるソフトウェアについて収束期間に算出されたトラブル発生率と、別のソフトウェアについて収束期間後に算出されたトラブル発生率とを比較しても、これらのトラブル発生率はソフトウェア同士の品質を客観的に比較する指標とはなり得ない。
なお、収束期間経過後に収束するトラブル発生件数は、0件である場合もあるし、0件以外の一定数である場合もある。
【0036】
算出装置1は、収束期間内に発生したソフトウェアのトラブルの発生件数を集計する。そして、算出装置1は、収束期間内に使用されていたソフトウェアの数で、集計したトラブルの発生件数を除算することにより、トラブル発生率を算出する。
【0037】
次に、各種テーブルについて、詳細に説明する。
図4は、ソフトウェア管理テーブル1Tのレコードレイアウトの一例を示す説明図である。ソフトウェア管理テーブル1Tは、使用者ID、サポートID(識別情報)、ソフトウェア名、ソフトウェア版数、使用開始日、ステップ数、売上額及び受講実績の各列を含む。
使用者IDは、ソフトウェアを使用する使用者の識別記号である。使用者はメーカにとってソフトウェアを販売した顧客であることが多いため、使用者IDは顧客IDと同等な場合が多い。メーカがソフトウェアを販売した顧客と、ソフトウェアを使用する使用者とが異なる場合、ソフトウェア管理テーブル1Tは別途顧客IDの列を含んでもよい。
同一ソフトウェアを使用する使用者が複数人である場合、複数列の使用者ID列がソフトウェア管理テーブル1Tに含まれてもよい。
【0038】
サポートIDは、トラブルが発生したソフトウェアを特定する識別記号であり、例えば4桁、4桁、4桁の数字の順列である。サポートIDは、メーカから使用者に交付され、分析対象装置2が有するハードディスクに記憶される。メーカ及び使用者は、サポートIDを共有する。使用者からメーカへのトラブルの通知と、メーカから使用者へのトラブルに対するサポートは、サポートIDに基づいて行われる。
【0039】
ソフトウェア名は、ソフトウェアの名称である。ソフトウェア版数は、ソフトウェアのバージョンに関する識別記号である。ソフトウェア名が同一であっても、ソフトウェア版数が異なるソフトウェアは、別のソフトウェアであり、異なるサポートIDが設定される。
【0040】
使用開始日はソフトウェアが使用開始された年月日であり、そのフォーマットは例えばyyyy/mm/ddである。例えば、分析対象装置2は、インストールされたソフトウェアを初めて起動する時、その時のシステム日時及びサポートIDをネットワークNを介して算出装置1に送信する。算出装置1は、受信したサポートIDに対応させて受信したシステム日時の日付をソフトウェア管理テーブル1Tの使用開始日に書き込む。なお、使用開始日のフォーマットは、システム日時のフォーマットに合わせて、例えばyyyy/mm/dd hh:mmでもよい。
【0041】
なお、使用開始日は、メーカからユーザへサポートIDが交付された日付でもよいし、サポートIDが分析対象装置2のハードディスクに記憶された日付でもよい。
あるいは、使用開始日は、メーカから使用者へソフトウェアが納入された日付でもよい。例えば、メーカから使用者に納入されるソフトウェアには、ソフトウェアを識別する識別記号であるソフトウェアIDが振られている。メーカから使用者にソフトウェアの納入があった場合、使用者は納入されたソフトウェアのソフトウェアIDをメーカに通知する。メーカの管理者は、使用者からソフトウェアIDの通知を受けた場合、当該ソフトウェアIDに応じたソフトウェアのサポートIDと対応付けて、ソフトウェア管理テーブル1Tの使用開始日に、ソフトウェアIDの通知を受けた日付を書き込む。
【0042】
なお、ソフトウェア管理テーブル1Tは、サポートIDに加えて、ソフトウェアID列を含んでもよい。
あるいは、サポートIDは、ソフトウェアIDと1対1に対応する。そのため、サポートIDは、ソフトウェアIDに代替されてもよい。
【0043】
ステップ数は、ソフトウェアを構成するプログラムの全ステップ数である。
売上額は、ソフトウェアの売上額である。売上額は、ソフトウェアの価格でもよい。売上額の単位は、例えば円、セント、角等である。
受講実績は、ソフトウェアの使用に関してメーカが行う教育を使用者が受講したか否かを示すフラグである。受講実績には、デフォルトで無しが登録される。使用者が該当するソフトウェアの使用に関する教育を受講した場合、受講実績は有りに更新される。
【0044】
図5は、トラブル情報管理テーブル2Tのレコードレイアウトの一例を示す説明図である。トラブル情報管理テーブル2Tは、管理番号、トラブル発生日、サポートID、ソフトウェア名及びソフトウェア版数の各列を含む。
管理番号は、分析対象装置2上で動作するソフトウェアに発生したトラブルを識別する記号であり、例えば3桁、4桁、4桁の数字の順列である。トラブル発生日は、分析対象装置2上で動作するソフトウェアにトラブルが発生した日付であり、そのフォーマットは例えばyyyy/mm/ddである。なお、トラブル発生日のフォーマットは、システム日時のフォーマットに合わせて、例えばyyyy/mm/dd hh:mmでもよい。
【0045】
サポートIDは、ソフトウェア管理テーブル1TのサポートIDと同じである。ソフトウェア名は、ソフトウェア管理テーブル1Tのソフトウェア名と同じである。ソフトウェア版数は、ソフトウェア管理テーブル1Tのソフトウェア版数と同じである。
【0046】
トラブル情報管理テーブル2Tは、現象、原因及び処置の各列を含む。
現象は、トラブルの内容であり、例えばプログラムのバグに起因する処理ミス、画面操作方法がわからないという使用者からの通知等である。あるいは、現象は、分析対象装置2から算出装置1に送信されたトラブルの内容である。原因は、使用者からの現象の通知又は分析対象装置2からのトラブル情報の送信に対して、メーカが解析したトラブルの原因である。処置は、ソフトウェアのトラブルに対して、メーカが実行した処置内容である。
【0047】
図6は、算出装置1の機能概要例を示す機能ブロック図である。
図6の各機能部は、制御部11がハードディスク14に記録されたプログラム1Pに基づいて動作することにより実行される。
算出装置1は、受付部11a、区切り部11b、集計部11c、算出部11d、加算部11e及び出力部11fを含む。受付部11aは、トラブル発生率を算出するためのパラメータを受け付ける。パラメータは、例えばトラブル発生率を算出する対象のソフトウェアを識別する情報、トラブル発生率を算出する対象の期間(対象期間)、収束期間等を含む。
【0048】
区切り部11bは、経過時間を、トラブル発生件数を集計するための各期間に区切る。使用開始日が異なる複数のソフトウェアについてトラブル発生率を算出する場合、トラブル発生率を算出する対象の期間の最終日に収束期間が経過しているソフトウェアは、トラブル発生率を算出する対象のソフトウェアから除外される。そこで、区切り部11bは、トラブル発生率を算出する対象の期間の最終日に、収束期間が経過しているソフトウェアと経過していないソフトウェアとを区別するために、経過時間を各期間に区切る。区切り部11bが区切ったいずれの期間にソフトウェアの使用が開始されたかを判定することにより、収束期間が経過しているソフトウェアを、トラブル発生率を算出する対象のソフトウェアから除外することができる。
【0049】
集計部11cは、区切り部11bが区切った期間毎に使用が開始されたソフトウェアについて、トラブル発生率を算出する対象の期間に発生したトラブルに関するトラブル情報をトラブル情報管理テーブル2Tから抽出する。集計部11cは、抽出したトラブル情報に基づいて、トラブル発生率を算出する対象の期間に発生したトラブル発生件数を集計する。
【0050】
なお、集計部11cは、受付部11aがトラブル発生率を算出する対象の期間を受け付けている場合、この算出対象の期間に発生したトラブルの件数を集計する。集計部11cは、受付部11aがトラブル発生率を算出する対象の期間を受け付けていない場合、予め決められた期間の最終時点に収束期間が経過していないソフトウェアについて、予め決められた期間内に発生したトラブルの件数を集計してもよい。ここでの予め決められた期間とは、例えば使用開始日から現在までの期間、使用開始日と現在から3か月前の時点との間の期間等である。
【0051】
算出部11dは、区切り部11bが区切った期間毎に使用が開始されたソフトウェアについて、集計部11cが集計したトラブル発生件数をソフトウェア管理テーブル1Tが記憶するサポートIDの数で除算する。ここでのサポートIDの数は、トラブル発生率の分母に該当するソフトウェアの数に等しい。これにより、算出部11dは、区切り部11bが区切った期間毎に使用が開始されたソフトウェアのトラブル発生率を算出する。加算部11eは、区切り部11bが区切った期間毎に使用が開始されたソフトウェアのトラブル発生率を加算する。出力部11fは、加算部11eが加算したトラブル発生率をソフトウェアの識別情報と共に表示部16に出力する。
【0052】
なお、算出部11dは、ソフトウェアに関する様々なメタデータ別に、トラブル発生率を算出してもよい。
また、算出部11dは、トラブル発生件数をソフトウェアの使用数以外の数値(例えば、経済的価値に関する数値である売上額、コスト費、利益額等)で除算して、当該数値単位のトラブル発生件数を算出してもよい。
【0053】
次に、算出装置1の動作について説明する。
メーカは、分析対象装置2にソフトウェアをインストールする。メーカは、使用者にサポートIDを交付する。また、メーカは、サポートIDを分析対象装置2のハードディスクに設定するための設定コマンドを使用者に配布する。使用者は、メーカから配布された設定コマンドを分析対象装置2に対して実行する。これにより、分析対象装置2のハードディスクにサポートIDが設定される。サポート対象のソフトウェアが複数である場合、使用者はサポート対象のソフトウェアの数だけ、設定コマンドの実行を繰り返す。
【0054】
メーカは、使用者にサポートID及びトラブル情報を分析対象装置2から取得する取得コマンドを交付する。使用者は、取得コマンドを実行し、分析対象装置2からサポートID及びトラブル情報を取得する。
例えば、当該取得コマンドが実行された場合、分析対象装置2はソフトウェア及びハードウェアの状態及び動作が記録されたログからトラブル情報を抽出する。当該取得コマンドが実行された場合、分析対象装置2はソフトウェア及びハードウェアの各種状態が連続的に追跡記録されたトレース情報をトラブル情報として抽出する。当該取得コマンドが実行された場合、分析対象装置2はRAMの任意領域に記録された情報をトラブル情報として抽出する。
そして、分析対象装置2は、取得したサポートID及びトラブル情報を例えばネットワークNを介して算出装置1に送信する。あるいは、分析対象装置2は、抽出したサポートID及びトラブル情報を表示部に出力する。
【0055】
なお、ログ、RAM等からやみくもにトラブル情報を取得するのではなく、予め取得するトラブル情報を定義したファイルを用意しておいてもよい。例えば、トラブル情報管理テーブル2Tの列名に従って、取得すべきトラブル情報の項目がサポートIDと対応付けて記録されたファイルを予め用意しておく。分析対象装置2は、取得コマンドが実行された場合、当該ファイルに定義された情報をログ、RAM等から抽出する。
また、取得コマンドは、分析対象装置2からサポートID及びトラブル情報を取得するが、サポートIDのみを取得してもよい。かかる場合、使用者は、トラブル情報をトレーサ、メモリダンプツール等の他の手段により取得する。使用者は、取得したトラブル情報と、取得コマンドの実行により別途取得したサポートIDとを対応付けてメーカに通知する。
【0056】
算出装置1は、ネットワークNを介して、取得されたサポートID及びトラブル情報を分析対象装置2から受信し、受信したサポートID及びトラブル情報をトラブル情報管理テーブル2Tに格納する。あるいは、メーカの管理者は、使用者からサポートID及びトラブル情報の通知を受け付け、受け付けたサポートID及びトラブル情報をマニュアル操作でトラブル情報管理テーブル2Tに格納する。更に、メーカの管理者は、ヘルプデスク等が使用者から受け付けたサポートID若しくはソフトウェアID、問い合わせ及び苦情を、マニュアル操作でトラブル情報管理テーブル2Tに格納する。
【0057】
次に、具体的な数値例を用いて、算出装置1がソフトウェアのトラブル発生率を算出する概要を説明する。
図7は、ソフトウェアに関するトラブル発生件数の時間推移を示す表形式の説明図である。
いま、ある使用者がメーカから6つのソフトウェアA、B、C、D、E、Fを購入したものとする。ソフトウェアA、B、C、D、E、Fは、全体として1つの大規模ソフトウェアを構成している。
図7の1列目は、使用者が購入した各ソフトウェアの名称を示している。
【0058】
ソフトウェアA、B、C、D、E、Fは、夫々複数のシステムの集合体である。1つのシステムは、単体のプログラム又は複数のプログラムから構成されたモジュールであり、他のシステムと区別可能な機能を有している。
図7の2列目は、ソフトウェアA、B、C、D、E、Fを夫々構成するシステムの数を示している。例えば、ソフトウェアAは、50個のシステムの集合体である。各システムには、夫々異なるサポートIDが交付されている。従って、ソフトウェアAに対して、50個のサポートIDが交付されている。
【0059】
使用者はソフトウェアA、B、C、D、E、Fを同一年度に使用開始したが、ソフトウェアA、B、C、D、E、Fの使用開始日は、
図7の3列目に示すように月単位で異なっていた。例えば、ソフトウェアAに属するシステム群は、分析対象装置2上で4月に使用が開始された。ソフトウェアBに属するシステム群は、分析対象装置2上で5月に使用が開始された。ソフトウェアC、D等もアルファベット順に1か月ずつ順次遅れて使用が開始された。
【0060】
使用者は、ソフトウェアA、B、C、D、E、Fの使用開始前に、メーカから交付された設定コマンドを実行し、サポートIDを分析対象装置2に設定する。使用者は、トラブルが発生した場合、メーカから交付された取得コマンドを実行する。その結果、サポートID及びトラブル情報は、自動的に又は手作業により算出装置1が有するトラブル情報管理テーブル2Tに格納される。
【0061】
算出装置1は、トラブル発生率を算出する対象の月を操作部17から受け付ける。算出装置1は、ソフトウェア管理テーブル1T及びトラブル情報管理テーブル2Tを参照し、使用開始月が共通するシステム毎に、受け付けた月に発生したトラブル発生件数を集計する。
図7の4列目から最終列までは、ソフトウェアA、B、C、D、E、F毎に、4月から9月までの各月に発生したトラブル発生件数を集計した一例を示している。
なお、トラブル発生件数は、トラブル情報管理テーブル2TからサポートID及びトラブル発生日に基づいて抽出された数値である。ソフトウェア管理テーブル1T及びトラブル情報管理テーブル2Tは、サポートIDにより結合可能である。そのため、各トラブルは、ソフトウェア管理テーブル1T及びトラブル情報管理テーブル2Tにより、いずれの使用者又は顧客がいずれの版数のいずれのソフトウェアをいつから使用開始したことによっていつ生じたトラブルであるか判別可能である。
【0062】
図3に示したように、ソフトウェアの種別によって使用開始日からトラブル発生件数が一定数に収束するまでの収束期間は異なる。
図7の例では、ソフトウェアA、B、C、D、E、Fの収束期間は、いずれも3か月であるものとする。かかる場合、ソフトウェアA、B、C、D、E、Fの夫々について、使用開始日から3か月間についてトラブル発生率を算出することは意味があるが、使用開始日から4か月以降までの期間についてトラブル発生率を算出することには意味がない。
例えば、4月に使用を開始したソフトウェアAの場合、4月から7月以降までトラブル発生率を算出することには意味がない。5月に使用を開始したソフトウェアBの場合、使用開始から8月以降までトラブル発生率を算出することには意味がない。そこで、算出装置1は、ソフトウェアA、B、C、D、E、Fの夫々について、各々の使用開始日から3か月以内に限り、トラブル発生率を算出する。
【0063】
算出装置1は、例えば7月のトラブル発生率を算出する場合、ソフトウェアB、C、Dにおけるトラブル発生件数を夫々ソフトウェアB、C、Dのシステム数で除算して求めた各トラブル発生率を加算する。一方、算出装置1は、例えば7月のトラブル発生率を算出する場合、7月末日時点において収束期間が経過したソフトウェアAのトラブル発生件数を利用しない。
【0064】
算出装置1は、例えば8月のトラブル発生率を算出する場合、ソフトウェアC、D、Eにおけるトラブル発生件数を夫々ソフトウェアC、D、Eのシステム数で除算して求めた各トラブル発生率を加算する。一方、算出装置1は、例えば8月のトラブル発生率を算出する場合、8月末日時点において収束期間が経過したソフトウェアA、Bのトラブル発生件数を利用しない。
【0065】
算出装置1が算出する当月のトラブル発生率は、以下の式で表される。
当月のトラブル発生率=
(当月に使用開始したソフトウェアでの当月トラブル数÷当月使用開始システム数)
+(前月に使用開始したソフトウェアでの当月トラブル数÷前月使用開始システム数)
+(前々月に使用開始したソフトウェアでの当月トラブル数÷前々月使用開始システム数)
+・・・
当月のトラブル発生率を求めるために、何月前までに使用開始したソフトウェアを考慮するかということは、収束期間に依存する。
【0066】
以下、
図7のトラブル発生件数に基づき、6月から9月までのトラブル発生率の算出式例を示す。
6月: 5÷50+ 8÷50+14÷70=0.46
7月: 6÷50+11÷70+15÷80=0.46
8月: 7÷70+11÷80+13÷60=0.45
9月: 7÷80+11÷60+14÷80=0.45
【0067】
図7において斜線で示した欄は、例えば6月、7月、8月の各月に発生したトラブルのトラブル発生率を算出する対象となるソフトウェア(システム群)を例示している。
図7の例では、ソフトウェアA、B、C、D、E、Fの収束期間は、いずれも3か月であるものとした。そのため、1か月毎に次々と各ソフトウェアが使用開始された場合、算出装置1は、ある月のトラブル発生率を算出する場合、ソフトウェアA、B…のうち、最大3つのソフトウェアについて、ある月のトラブル発生率を加算する。
【0068】
以下、
図7のトラブル発生件数に基づき、従来のトラブル発生率の算出例を示す。従来、トラブル発生率は、ソフトウェアの使用開始又は出荷開始から現在までに発生した全システムのトラブル発生件数に基づいて算出されていた。
4月:11÷50=0.22
5月:(10+12)÷(50+50)=0.22
6月:(5+8+14)÷(50+50+70)=0.16
7月:(2+6+11+15)÷(50+50+70+80)=0.14
8月:(1+2+7+11+13)÷(50+50+70+80+60)=0.11
9月:(1+0+2+7+11+14)÷(50+50+70+80+60+80)
=0.09
【0069】
図7における算出装置1によるトラブル発生率の算出例では、トラブル発生率は各月で、ほぼ同じ値である。収束期間内のトラブル発生件数のみに注目した場合、トラブル発生率は大きな変動をしない。
一方、
図7における従来のトラブル発生率の算出例では、6月にトラブル発生率は急減少し、9月までトラブル発生率の減少が継続している。従来例は、トラブル発生率を算出するために、収束期間経過後におけるソフトウェアのトラブル発生件数も考慮している。そのため、トラブル発生率が時間の経過と共に減少していくのは当然である。しかし、従来例のトラブル発生率の算出方法では、異なるソフトウェアの間又は異なる版数のソフトウェアの間において、トラブル発生率を比較しても、ソフトウェアの品質を正確に比較したことにはならない。
【0070】
図7において、ソフトウェアの使用開始日からの経過時間を月単位で区切り、月単位で集計されたトラブル発生件数に基づいて、トラブル発生率を算出する場合を扱った。しかし、算出装置1がトラブル発生件数を集計する時間単位は、月単位に限らず、例えば1年でもよい。あるいは、1か月の日数又は1年の日数はカレンダーによって変動するため、算出装置1がトラブル発生件数を集計する時間単位は、30日、7日、1日等でもよい。
【0071】
例えば、メーカの管理者が算出装置1にトラブル発生件数を集計する時間単位として30日を指定した場合、算出装置1が算出する過去30日間のトラブル発生率は、以下の式で表される。
過去30日間のトラブル発生率=
(過去1〜30日間に使用開始したソフトウェアでの過去1〜30日間のトラブル数÷過去1〜30日間に使用開始したシステム数)
+(過去31〜60日間に使用開始したソフトウェアでの過去1〜30日間のトラブル数÷過去31〜60日間に使用開始したシステム数)
+(過去61〜90日間に使用開始したソフトウェアでの過去1〜30日間のトラブル数÷過去61〜90日間に使用開始したシステム数)
+・・・
【0072】
上述では、収束期間に発生したトラブル発生件数に基づいて、トラブル発生率を算出した。しかし、算出装置1は、トラブル発生件数が一定数に収束した後について、トラブル発生率を算出してもよい。かかる場合、収束期間以降におけるソフトウェアの品質を比較、評価することができる。
【0073】
また、ソフトウェアの使用開始から未来へ向かう経過時間を所定時間単位で区切るのではなく、例えばトラブル発生率を算出する対象の期間から過去に向かって経過時間を所定時間単位で区切ってトラブル発生件数を集計してもよい。
【0074】
図8は、作業テーブルであるパラメータテーブル3Tのレコードレイアウトの一例を示す説明図である。パラメータテーブル3Tは、いずれのソフトウェアについて、いずれの期間のトラブル発生率を算出するかというパラメータを格納するテーブルである。ここで、いずれのソフトウェアとは、例えば
図7におけるソフトウェアA、B、C、D、E、Fのうち、いずれのソフトウェアについてトラブル発生率を算出するのかということである。ここで、いずれの期間とは、例えば
図7における4列目以降の月に該当する列を指定することに対応する。算出装置1は、経過時間を区切った期間の長さ(例えば1か月の長さ)を越えて使用開始日が異なる複数のソフトウェア全体のトラブル発生率を算出する場合、指定された各ソフトウェアのトラブル発生率を加算して、最終的なトラブル発生率を求める。例えば、
図7において、6月のトラブル発生率を求める場合、算出装置1は4月、5月、6月に夫々使用を開始したソフトウェアA、B、C各々について、6月に発生したトラブルのトラブル発生率を加算する。
【0075】
パラメータテーブル3Tは、単位期間M、算出基準点BP、算出期間K、算出タイミングT及び収束期間Lの各列を含む。算出装置1は、トラブル発生件数を集計するに当たり、経過時間を例えば過去に向かって所定の時間間隔で区切る。単位期間Mは、経過時間を区切る区切り時間単位である。
図8の例では、7日単位、すなわち1週間単位で経過時間を区切る例が示されている。
【0076】
算出基点BPは、経過時間を例えば過去に向かって区切る基点となる時間を指定するパラメータである。算出基点BPのフォーマットは、例えばyyyy/mm/ddである。算出装置1は、算出基点BPで指定された日付の午前0時又は算出基点BPで指定された日付の前日の午後12時を、経過時間を区切る基点に設定する。なお、算出基点BPは、トラブル発生率を算出する当日でもよいし、他の日付でもよい。
【0077】
算出期間Kは、トラブル発生率を算出する対象の期間を指定する数値である。算出装置1は、算出基点BPから過去に向かって区切った各期間の最初の期間を基点にして、算出期間Kの数だけ単位期間Mの時間繰り返し過去に遡った期間を、トラブル発生率を算出する期間に設定する。
図8の例では、算出期間Kは、算出基点BPに基づく最初の区切り期間から0単位(7日×0単位=0日)だけ過去に遡った期間を示している。
【0078】
算出タイミングT及び収束期間Lは、トラブル発生率を算出する対象のソフトウェアを指定するパラメータである。算出装置1は、算出タイミングTから算出タイミングT+(L−1)まで、区切られた期間毎に使用が開始されたソフトウェアに対応するサポートIDを抽出する。そして、算出装置1は、抽出したサポートIDを期間毎にカウントし、カウントした数を各期間に使用が開始されたソフトウェア(システム群)の数とする。
【0079】
メーカの管理者は、操作部17から、パラメータテーブル3Tに格納されるパラメータを算出装置1に入力する。算出装置1は、入力されたパラメータをパラメータテーブル3Tに書き込む。なお、算出装置1は、操作部17から入力されたパラメータを例えばRAM13に記憶してもよい。
【0080】
次に、具体的な数値例を挙げて、算出装置1がトラブル発生件数を集計する処理の手順を説明する。
図9は、作業テーブルである区切り期間テーブル4Tのレコードレイアウトの一例を示す説明図である。区切り期間テーブル4Tは、期間、from及びtoの各列を含む。期間は、ソフトウェアの使用開始からの経過時間を、算出基点BPを基点にして単位期間M毎に過去へ向かって区切った場合の期間を識別する番号である。
図9には、期間1から期間8までが例示されている。
from及びtoは、夫々期間における最初及び最後の日である。
図9のfrom及びtoは、算出基点BPが2011/05/01であり、単位期間Mが7日である場合を例示している。
算出装置1は、パラメータテーブル3Tの単位期間M及び算出基点BPに基づいて、経過時間を過去に向かって区切り、区切ることにより求めた各期間のfrom及びtoを区切り期間テーブル4Tに書き込む。
算出装置1は、トラブル発生率を算出する対象である複数のソフトウェアの使用開始日のうち、最も古い使用開始日が区切る期間に含まれるまで、経過時間の区切りを繰り返す。
【0081】
図10は、作業テーブルであるサポートIDテーブル5Tのレコードレイアウトの一例を示す説明図である。サポートIDテーブル5Tは、トラブル発生率の分母に該当するソフトウェアの使用数を集計するための作業テーブルである。サポートIDテーブル5Tは、期間及びサポートIDの各列を含む。期間は、区切り期間テーブル4Tの期間と同じである。サポートIDは、各期間に使用が開始されたソフトウェアに対応するサポートIDである。
【0082】
算出装置1は、ソフトウェア管理テーブル1TのサポートID及び使用開始日を参照し、パラメータテーブル3Tの算出タイミングT及び収束期間Lに基づいて、トラブル発生率を算出する対象となるソフトウェアのサポートIDを抽出する。
【0083】
算出装置1は、
図8のパラメータテーブル3Tのレコードを利用する場合、期間T=2から期間T+(L−1)=2+(3−1)=4までの区切られた期間に使用が開始されたソフトウェアに対応するサポートIDをソフトウェア管理テーブル1Tから抽出する。具体的には、算出装置1は、期間2、期間3、期間4の各期間に、夫々使用が開始されたソフトウェアに対応するサポートIDをソフトウェア管理テーブル1Tから抽出し、抽出したサポートIDをサポートIDテーブル5Tに記録する。なお、いずれのサポートIDに対応するソフトウェアが各期間に使用が開始されたか否かは、ソフトウェア管理テーブル1Tの使用開始日が区切り期間テーブル4Tのいずれの期間のfrom及びtoの間にあるか否かで判定される。
【0084】
図11は、作業テーブルであるトラブル発生件数集計結果テーブル6Tのレコードレイアウトの一例を示す説明図である。トラブル発生件数集計結果テーブル6Tは、トラブル発生率の分子に該当するトラブル発生件数を集計するための作業テーブルである。トラブル発生件数集計結果テーブル6Tは、期間及びトラブル発生件数の各列を含む。期間は、区切り期間テーブル4Tの期間と同じである。トラブル発生件数は、各期間に使用が開始されたソフトウェア毎に、算出期間Kに発生したトラブル発生件数を集計した数である。
【0085】
図8の例に従い、単位期間M=7日、算出期間K=0である場合、
図9における算出期間Kは、次のようになる。算出期間Kは、算出基点BPから過去に向かって区切った各区間の最初の期間を基点にして、算出期間K=0の数だけ単位期間M=7日の時間繰り返し過去に遡った期間であり、
図9の期間1(2011/04/24〜2011/04/30)に該当する。
【0086】
算出装置1は、トラブル情報管理テーブル2T及びサポートIDテーブル5Tを参照し、トラブル発生件数を期間毎に集計する。具体的には、算出装置1は、算出期間K、サポートIDテーブル5Tの各期間及びサポートIDと夫々整合するトラブル情報管理テーブル2Tのトラブル発生日及びサポートIDを抽出し、抽出したトラブル発生日及びサポートIDのレコード数を各期間毎に集計する。ここで、サポートIDテーブル5Tの各期間及びトラブル情報管理テーブル2Tのトラブル発生日が整合するとは、トラブル発生日が算出期間Kにおける最初及び最後の日の間に入る場合である。算出装置1は、集計したレコード数を期間毎にトラブル発生件数集計結果テーブル6Tのトラブル発生件数に記録する。
【0087】
算出装置1は、サポートIDテーブル5TのサポートIDの数を期間毎に集計する。この集計されたサポートIDの数は、各期間に使用が開始されたソフトウェアのシステム数に等しい。そこで、算出装置1は、トラブル発生件数集計結果テーブル6Tにおける各期間のトラブル発生件数を、各期間に使用が開始されたソフトウェアのシステム数で夫々除算することにより、各期間に対応するトラブル発生率を算出する。そして、算出装置1は、算出した各期間に対応するトラブル発生率を加算し、最終的な算出期間Kにおけるトラブル発生率を求める。
【0088】
以下に、ソフトウェアのトラブル発生率を算出する一般式の一例を示す。トラブル発生率は、パラメータテーブル3Tに格納されるパラメータK、T、Lにより、トラブル発生率(K、T、L)として表現される。
【0089】
Kは、トラブル発生率を算出する期間を、算出基点BPに基づいて区切った期間のうち最初の期間からK期間前の期間として表すためのパラメータである。期間の単位は、Mで表されるパラメータテーブル3Tの単位であり、既述したように1か月、30日、7日(1週)、1日等から選択される任意の単位である。個々の期間は、経過時間を過去に向かってMで区切った各期間の通し番号で特定される。個々の期間は、例えば1期間前の期間、2期間前の期間と表現される。
Tは、使用開始からの経過時間が収束期間内であるソフトウェアのうち、最も新しい期間に使用を開始したソフトウェアを指定するパラメータであり、指定したいソフトウェアの使用開始日が属する期間が現在から何期間前かという数値で表現される。
Lは、収束期間である。
【0090】
ソフトウェアのトラブル発生率は、ソフトウェアのトラブル発生件数を、ソフトウェアを構成するシステム数で除算したものである。ソフトウェアのトラブル発生件数は、パラメータm、nにより、トラブル発生件数(m、n)として表現される。ソフトウェアのトラブル発生件数(m、n)は、m期間に使用を開始したソフトウェアについてのn期間前に発生したトラブルの件数を示す。
ソフトウェアを構成するシステム数を、以下では使用開始数とも呼ぶ。使用開始数は、パラメータlにより、使用開始数(l)として表現される。使用開始数(l)は、l期間前に使用が開始されたソフトウェアを構成するシステム数を示す。
【0091】
トラブル発生率(K、T、L)=
トラブル発生件数(T、K)÷使用開始数(T)
+トラブル発生件数(T+1、K)÷使用開始数(T+1)
+トラブル発生件数(T+2、K)÷使用開始数(T+2)
・・・
+トラブル発生件数(T+(L−1)、K)÷使用開始数(T+(L−1))
【0092】
次に、具体的な数値を上記の一般式に代入した例を示す。
算出基点BPに基づいて区切った最初の期間は12月、Mは1か月、K=1、T=1、L=3とする。すなわち、K=1なので、12月を基準にして1か月前である11月のトラブル発生率を求める。
トラブル発生率(1、1、3)=
1か月前の11月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷1か月前の11月に使用開始したソフトウェアを構成するシステム数
+2か月前の10月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷2か月前の10月に使用開始したソフトウェアを構成するシステム数
+3か月前の9月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷3か月前の9月に使用開始したソフトウェアを構成するシステム数
【0093】
上述では、経過時間を区切る基点をパラメータテーブル3Tの算出基点BPに設定したが、経過時間を区切る基点をBP以外の時点(例えば、現在)に設定してもよいことは勿論である。
【0094】
上述では、Tを使用開始からの経過時間が収束期間内であるソフトウェアのうち、最も新しい期間に使用を開始したソフトウェアを指定するパラメータとした。しかし、Tは、収束期間経過後のソフトウェアを指定するパラメータであってもよく、ソフトウェアの使用開始日から収束期間を経過した期間を示す数値であってもよい。これにより、収束期間以降におけるソフトウェアの品質をトラブル発生率で表現することができる。
【0095】
収束期間以降のトラブル発生率の具体的な一例を以下に示す。
7か月前の5月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷7か月前の5月に使用開始したソフトウェアを構成するシステム数
+8か月前の4月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷8か月前の4月に使用開始したソフトウェアを構成するシステム数
+9か月前の3月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷9か月前の3月に使用開始したソフトウェアを構成するシステム数
+10か月前の2月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷10か月前の2月に使用開始したソフトウェアを構成するシステム数
+11か月前の1月に使用開始したソフトウェアについて11月に発生したトラブル件数
÷11か月前の1月に使用開始したソフトウェアを構成するシステム数
【0096】
上述では、収束期間以降のトラブル発生率を加算する対象のソフトウェアを、1月に使用開始したものから5月に使用開始したものまで、5種とした。しかし、トラブル発生率を加算する対象のソフトウェアの種類数は任意である。また、上述では、トラブル発生率を加算する対象のソフトウェアに係る使用開始期間を1月〜5月としたが、他の月の組み合わせが任意に選択されてよい。
【0097】
図12、
図13及び
図14は、トラブル発生率算出処理の手順の一例を示すフローチャートである。以下の処理において、制御部11は、配列を含む作業変数を用いてトラブル発生率を算出する。しかし、制御部11は、パラメータテーブル3T、区切り期間テーブル4T等の作業テーブルに中間段階の計算結果又は処理結果を記録することにより、トラブル発生率を算出してもよいことは勿論である。
【0098】
なお、ステップS102からステップS106までの処理は、経過時間を区切り、区切られた各期間を求める処理である。ステップS107からステップS111までの処理は、トラブル発生率の分母に該当する使用開始数を求める処理である。ステップS112からステップS115までの処理は、トラブル発生率の分子に該当するトラブル発生件数を求める処理である。ステップS116からステップS121までの処理は、異なる期間に使用を開始した各ソフトウェアのトラブル発生率を算出し、算出したトラブル発生率を加算する処理である。
【0099】
以下、次の変数を使用する。
SOFT :ソフトウェア名を格納する変数
VL :ソフトウェア版数を格納する変数
M :区切りの単位期間を格納する変数
BP :算出基点を格納する変数
K :算出期間を格納する変数
T :算出タイミングを格納する変数
L :収束期間を格納する変数
DAY :日付を格納する作業変数
FROM() :区切り期間の最初の日付を格納する配列
TO() :区切り期間の最後の日付を格納する配列
i :期間の数を数えるカウンタ変数
ID() :サポートIDを格納する配列
U_COUNT():使用開始数を格納する配列
T_COUNT():トラブル発生件数を格納する配列
SUM :トラブル発生率の加算値を格納する変数
R_TROUBLE:加算後のトラブル発生率を格納する変数
なお、Mは日を単位としている。
【0100】
制御部11は、操作部17から入力されたパラメータを受け付ける(ステップS101)。ステップS101において、制御部11が受け付けるパラメータは、パラメータテーブル3Tのパラメータ、ソフトウェア名及びソフトウェア版数である。ステップS101において、制御部11は、受け付けたパラメータを各変数に代入する処理も実行する。制御部11は、経過時間を過去に向かって区切る区切り期間の基点日を算出する(ステップS102)。
ステップS102における処理は、例えば次のようになる。
DAY=BP−1
BP−1は、BPの午前0時又は前日の午後12時を基点とするためである。
【0101】
なお、トラブル発生率の算出に用いない期間の算出を避けるために、次のようにしてもよい。
DAY=(BP−1)−T×M
【0102】
制御部11は、期間1の最初及び最後の日を算出する(ステップS103)。
ステップS103における処理は、例えば次のようになる。
FROM(1)=DAY−(M−1)
TO(1) =DAY
制御部11は、次の期間の最初及び最後の日を算出する(ステップS104)。
ステップS104における処理は、例えば次のようになる。
i=2
FROM(i)=FROM(i−1)−M
TO(i) =TO(i−1)−M
【0103】
制御部11は、カウンタ変数iをインクリメントする(ステップS105)。制御部11は、iがT+Lより大きいか否かを判定する(ステップS106)。制御部11は、iがT+Lより大きくないと判定した場合(ステップS106:NO)、ステップS104へ処理を戻す。制御部11は、iがT+Lより大きいと判定した場合(ステップS106:YES)、ステップS107に処理を進める。
【0104】
制御部11は、iにTを格納する(ステップS107)。制御部11は、サポートIDをID(i)に格納する(ステップS108)。ステップS108において、制御部11は、次の条件を満たすサポートIDをソフトウェア管理テーブル1Tから抽出し、抽出したサポートIDをID(i)に格納する。
ソフトウェア名=SOFT
ソフトウェア版数=VL
FROM(i)≦使用開始日≦TO(i)
【0105】
制御部11は、使用開始数をU_COUNT(i)に格納する(ステップS109)。ステップS109において、抽出したサポートIDの数、すなわちID(i)の要素数をU_COUNT(i)に格納する。制御部11は、カウンタ変数iをインクリメントする(ステップS110)。
【0106】
制御部11は、iがT+Lより大きいか否かを判定する(ステップS111)。制御部11は、iがT+Lより大きくないと判定した場合(ステップS111:NO)、ステップS108へ処理を戻す。制御部11は、iがT+Lより大きいと判定した場合(ステップS111:YES)、ステップS112に処理を進める。
【0107】
制御部11は、iにTを格納する(ステップS112)。制御部11は、トラブル発生件数をT_COUNT(i)に格納する(ステップS113)。ステップS113において、制御部11は、次の条件を満たすトラブル発生件数をトラブル情報管理テーブル2Tから抽出し、抽出したトラブル発生件数をT_COUT(i)に格納する。
ソフトウェア名=SOFT
ソフトウェア版数=VL
FROM(K)≦トラブル発生日≦TO(K)
サポートID=ID(i)に格納されたいずれかの要素のサポートID
制御部11は、Kにより指定された期間に発生したトラブルのうち、T期間からT+(L−1)期間までの間に使用開始されたソフトウェア又はシステムに付されたサポートIDを持つレコードの数をトラブル情報管理テーブル2Tから抽出する。
制御部11は、カウンタ変数iをインクリメントする(ステップS114)。
【0108】
制御部11は、iがT+Lより大きいか否かを判定する(ステップS115)。制御部11は、iがT+Lより大きくないと判定した場合(ステップS115:NO)、ステップS113へ処理を戻す。制御部11は、iがT+Lより大きいと判定した場合(ステップS115:YES)、ステップS116に処理を進める。
【0109】
SUMに0を格納する(ステップS116)。ステップS116は、制御部11がSUMを初期化する処理である。制御部11は、iにTを格納する(ステップS117)。制御部11は期間iに使用開始されたソフトウェアのトラブル発生率を算出し、算出したトラブル発生率をSUMに格納する(ステップS118)。
ステップS118における処理は、例えば次のようになる。
SUM=SUM+(T_COUNT(i)÷U_COUNT(i))
【0110】
制御部11は、カウンタ変数iをインクリメントする(ステップS119)。制御部11は、iがT+Lより大きいか否かを判定する(ステップS120)。制御部11は、iがT+Lより大きくないと判定した場合(ステップS120:NO)、ステップS118へ処理を戻す。制御部11は、iがT+Lより大きいと判定した場合(ステップS120:YES)、繰り返しSUMに加算したトラブル発生率をR_TROUBLEに格納し(ステップS121)、処理を終了する。
【0111】
R_TROUBLEは、例えばグローバル変数であり、トラブル発生率算出処理の終了後、トラブル発生率を実績値として出力する際に、制御部11により参照される。
制御部11は、操作部17を介して、トラブル発生率の実績値を出力する命令を受け付けた場合、例えば次のようなトラブル発生率算出結果を表示部16に表示する。
製品名 :JOHCHAR
世代 :V20L20
実績値 :10.5
【0112】
上述における算出期間Kは、算出基点BPに基づいて相対的に指定された。しかし、算出期間Kは、例えば2011年3月2日、2011年5月のように絶対的に指定されてもよい。また、算出期間Kは、2011年8月1日〜2011年8月31日のように開始日と終了日とから、絶対的に指定されてもよい。
【0113】
上述では、経過時間を区切る時間単位の長さと、トラブル発生件数を集計する時間単位の長さと、トラブル発生率を算出する対象の期間(算出期間K)の長さとは、同一であった。しかし、これらの時間の単位の長さは、異なっていてもよい。
例えば、経過時間を区切る時間単位及びトラブル発生件数を集計する時間単位を1日とした場合、トラブル発生率を算出する対象の期間の長さとして、1日以上の任意の長さが指定されてもトラブル発生率を算出することができる。また、トラブル発生件数を1日単位で集計する場合、トラブル発生率を算出する対象の期間として、例えば2011年12月15日〜2012年1月14日のように、異なる年又は月を跨ぐ期間が指定されても、トラブル発生率を算出することができる。
【0114】
算出装置1によれば、ソフトウェアのトラブル発生率をより正確に算出することができる。
ソフトウェアは使用が開始されてから収束期間までと、収束期間以後とで、トラブル発生件数の時間変化が異なる。また、収束期間の長さは、ソフトウェアの種類によって異なる。収束期間を考慮せずに、出荷開始から現在までの全システムについてトラブル発生率を算出しても、出荷時期が異なるソフトウェア、出荷数の伸長が異なるソフトウェア等を客観的に比較することは困難である。算出装置1は、収束期間内に発生したトラブルに基づいてトラブル発生率を算出するため、出荷時期、出荷数の伸長等の違いがあるソフトウェア同士の間でも品質比較が可能である。また、算出装置1は、収束期間以降に発生したトラブルに基づいてトラブル発生率を算出することでも、ソフトウェア同士の品質を客観的に比較することができる。
【0115】
大規模なシステムは複数のソフトウェアからなり、時期をずらして各ソフトウェアがリリースされる。そのため、使用者は複数のソフトウェアを異なる時期に順次使用し始める。そのような複数のソフトウェアのトラブル発生率をある特定の期間について算出する場合にも、算出装置1は収束期間内のソフトウェアにおけるトラブル発生率を加算することにより、トラブル発生率の客観性を担保することができる。
【0116】
実施の形態2
実施の形態2は、ソフトウェアに関する様々なメタデータ別にトラブル発生率を算出する形態に関する。また、実施の形態2は、トラブル発生件数をソフトウェアの売上額で除算することにより、単位売上額当たりのトラブル発生件数を算出する形態に関する。収束期間の考え、サポートID、経過時間を各期間に区切ること等は、実施の形態1と同じである。
(実施例2−1)
実施例2−1は、ソフトウェア管理テーブル1Tの使用者ID別に、トラブル発生率を算出する実施例に関する。以下、メーカにとって、使用者IDは顧客IDと同じであるものとする。メーカは、使用者ID別のトラブル発生率を算出することにより、納入したソフトウェアのトラブル発生率が高い顧客に対して、他の顧客よりも多くのコストをサポート業務にかけていることがわかる。これにより、コスト低減が可能な顧客を絞り込むことができる。また、顧客が他社と同じソフトウェアを同じ環境で使用しているにもかかわらず、他社よりもトラブル発生率が高い場合、ソフトウェアの運用体制を見直すシグナルを得ることができる。
【0117】
算出装置1は、ソフトウェア名及びソフトウェア版数を受け付けた場合、ソフトウェア管理テーブル1Tから、同一のソフトウェア名及びソフトウェア版数について、使用者ID、サポートID及び使用開始日を抽出する。算出装置1は、トラブル発生率を算出する対象の期間が入力されている場合、抽出したサポートID及び使用開始日に基づいて、その入力された期間におけるソフトウェアのトラブル発生率を、使用者ID別に算出する。また、算出装置1は、トラブル発生率を算出する対象の期間が入力されていない場合、抽出したサポートID及び使用開始日に基づいて、所定期間におけるソフトウェアのトラブル発生率を使用者ID別に算出する。ここでの所定期間とは、ハードディスク14に予め所定期間として記憶された、例えば直近3か月のような数値である。
【0118】
算出装置1は、使用者ID及び使用者ID別に算出したトラブル発生率を降順にソートする。算出装置1は、使用者ID別に算出したトラブル発生率の平均値を算出する。算出装置1は、ソートした使用者ID、トラブル発生率及び平均値を表示部16に表示する。
なお、算出装置1は、使用者ID別に算出したトラブル発生率について、各種の統計処理(例えば分散、標準偏差の算出)を実行し、実行した結果を表示部16に表示してもよい。
【0119】
(実施例2−2)
実施例2−2は、ソフトウェア管理テーブル1Tのステップ数に基づいて、トラブル発生率を加工する実施例に関する。ステップ数が多いソフトウェアは、トラブル発生件数が多い傾向がある。そこで、ソフトウェアのトラブル発生率をソフトウェアを構成するプログラムのステップ数で除算し、ノーマライズすることにより、ステップ数の大小の影響を除外したトラブル発生率を算出することができる。
【0120】
算出装置1は、トラブル発生率を算出した場合、その基となったサポートIDに対応するステップ数をソフトウェア管理テーブル1Tから抽出する。算出装置1は、トラブル発生率を算出する基となったサポートIDが複数ある場合、各サポートIDに対応するステップ数を加算する。また、算出装置1は、異なる期間に使用を開始した複数のソフトウェアがある場合、使用を開始した期間毎にステップ数を加算する。
【0121】
算出装置1は、算出したトラブル発生率を抽出又は加算したステップ数でノーマライズし、1ステップ当たりのトラブル発生率を算出する。算出装置1は、算出した1ステップ当たりのトラブル発生率を表示部16に表示する。算出装置1は、実施の形態1に係るトラブル発生率を表示部16に表示する場合、別途算出した1ステップ当たりのトラブル発生率を併記して表示してもよい。
(実施例2−3)
実施例2−3は、ソフトウェア管理テーブル1Tの売上額に基づいて、単位売上額当たりのトラブル発生件数を算出する実施例に関する。例えば、価格が安いソフトウェア製品におけるトラブル発生率が高い場合、サポート業務に係るコストの上昇を招く。そこで、単位売上額当たりのトラブル発生件数を算出することにより、コスト面から見たソフトウェアの品質を把握する材料を提供することが可能となる。
【0122】
トラブル発生率は、トラブル発生件数÷使用開始数であった。本実施例における単位売上額当たりのトラブル発生件数を一種のトラブル発生率とみなした場合、そのトラブル発生率は以下の式で表される。
トラブル発生率=トラブル発生件数÷使用開始数(l)に対応する総売上額
使用開始数(1)に対応する総売上額は、l期間前に使用が開始されたソフトウェアを構成するシステムの売上額の総和である。売上額は、ソフトウェア管理テーブル1Tから抽出される。
【0123】
算出装置1は、トラブル発生率を算出する場合、その基となるサポートIDに対応する売上額をソフトウェア管理テーブル1Tから抽出する。算出装置1は、トラブル発生率を算出する基となるサポートIDが複数ある場合、サポートID毎に売上額を加算し、複数のサポートIDに対応する総売上額を求める。
【0124】
算出装置1は、集計したトラブル発生件数を抽出又は加算した売上額でノーマライズし、単位売上額当たりのトラブル発生率を算出する。算出装置1は、算出した単位売上額当たりのトラブル発生率を表示部16に表示する。算出装置1は、実施の形態1に係るトラブル発生率を表示部16に表示する場合、別途算出した単位売上額当たりのトラブル発生率を併記して表示してもよい。
【0125】
(実施例2−4)
実施例2−4は、ソフトウェア管理テーブル1Tの受講実績に基づいて、ソフトウェアの使用方法に関する教育を受講した使用者と、未受講の使用者とのトラブル発生率を比較する実施例に関する。ソフトウェア管理テーブル1Tの受講実績は、ソフトウェアの使用方法に関する教育を使用者が受講したか否かを示すフラグである。
【0126】
大規模開発により作成されたソフトウェアは、その複雑さのために、ソフトウェアの使用方法に関する教育が実施される。受講実績の有無がトラブル発生率と相関する場合と相関しない場合とがあり得るが、どちらの結果もメーカ及び使用者にとって、ソフトウェアの使用方法に関する教育の是非、教育プログラムの修正等について吟味する材料となる。また、受講実績の有無別に算出されるトラブル発生率は、メーカにとって受講を使用者に促す材料にすることができる。受講実績の有無別に算出されるトラブル発生率は、使用者にとってトラブル対応コストと受講コストとから、受講に関する費用対効果を判定する材料となる。
【0127】
算出装置1は、算出するトラブル発生率の基となるサポートIDに対応する受講実績をソフトウェア管理テーブル1Tから抽出する。算出装置1は、算出したトラブル発生率を表示部16に表示する場合、受講実績の有無をトラブル発生率に対応付けて表示する。
算出装置1は、算出したトラブル発生率が複数のサポートIDに基づく場合、ソフトウェア管理テーブル1Tから受講実績について有り及び無しの件数を夫々集計する。そして、算出装置1は、算出したトラブル発生率を表示部16に表示する場合、集計した受講実績に関する有り及び無しの件数をトラブル発生率に併記する形態で表示する。
【0128】
(実施例2−5)
実施例2−5は、ソフトウェアのトラブルをより細かく分類し、分類したトラブル毎にトラブル発生率を算出する実施例に関する。ソフトウェアについて発生するトラブルの種類は、ソフトウェアの使用開始からの経過時間により異なる場合がある。そのようなトラブルの種類として、例えば以下の例を挙げることができる。
インストールミス、環境設定ミス
新たなコマンド実行における操作ミス
データのバックアップ処理における操作ミス、修正プログラムを適用する場合の操作ミス、初期設定ミス
ハードディスク及びRAMにおけるフラグメンテーション並びに記憶領域の枯渇
ハードウェア部品の交換に伴う操作ミス
【0129】
例えば、トラブル情報管理テーブル2Tの現象を更に細分化し、上記のトラブルの種類毎に現象の列を追加する。算出装置1は、トラブル発生件数を集計する際に、トラブルの種類別に集計する。算出装置1は、トラブルの種類別に集計したトラブル発生件数を用いてトラブル発生率を算出し、トラブルの種類別にトラブル発生率を表示部16に表示する。また、算出装置1は、区切った期間の時系列順に、トラブルの種類別に算出したトラブル発生率を表示部16に表示してもよい。
【0130】
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【0131】
以上の実施の形態に関し、さらに以下の付記を開示する。
【0132】
(付記1)
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、
該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部と
を備えることを特徴とする算出装置。
【0133】
(付記2)
ソフトウェアに関するトラブルの発生率を算出する対象期間の開始日及び終了日を受け付ける受付部を備え、
前記集計部は、前記対応情報に対応付けられた使用開始日から前記受付部が受け付けた終了日までの期間が前記所定期間内であるソフトウェアについて、前記受付部が受け付けた開始日及び終了日に係る対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部が集計したトラブルの件数を前記ソフトウェアの数で除算して、トラブルの発生率を算出する
ことを特徴とする付記1に記載の算出装置。
【0134】
(付記3)
前記受付部は、ソフトウェアの使用開始日から該ソフトウェアに関して発生するトラブルの件数が一定数に収束するまでの仮定期間を更に受け付け、
前記集計部は、前記対応情報に対応付けられた使用開始日から前記終了日までの期間が前記受付部により受け付けられた仮定期間内であるソフトウェアについて、前記対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部が集計したトラブルの件数を前記ソフトウェアの数で除算して、トラブルの発生率を算出する
ことを特徴とする付記2に記載の算出装置。
【0135】
(付記4)
前記受付部は、経過時間を一定間隔で区切るための期間を更に受け付け、
前記受付部が受け付けた期間で経過時間を複数の期間に区切る区切り部を備え、
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日とが複数レコード毎に対応付けられた情報であり、
前記集計部は、前記区切り部により区切られた異なる期間毎に使用が開始されたソフトウェア別に、前記対象期間に発生したトラブルの件数を集計し、
前記算出部は、前記集計部がソフトウェア別に集計したトラブルの件数を、夫々対応する前記期間毎に使用が開始されたソフトウェアの数で除算して、トラブルの発生率を各々算出する
ことを特徴とする付記3に記載の算出装置。
【0136】
(付記5)
前記算出部は、異なる前記期間毎に使用が開始されたソフトウェア別に各々算出したトラブルの発生率を加算する
ことを特徴とする付記4に記載の算出装置。
【0137】
(付記6)
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアに係る一又は複数の使用者の識別情報とが複数レコード毎に対応付けられた情報であり、
前記集計部は、前記対応情報に対応付けられた一又は複数の使用者の識別情報に基づいて、トラブルの件数を該使用者別に集計し、
前記算出部はトラブルの発生率を前記使用者別に算出する
ことを特徴とする付記1に記載の算出装置。
【0138】
(付記7)
前記対応情報にソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアの使用方法に関する教育に対する前記一又は複数の使用者の受講実績の有無とが対応付けられており、
前記集計部は、前記対応情報に対応付けられた前記受講実績の有無別にトラブルの件数を集計し、
前記算出部は、前記受講実績の有無別にトラブルの発生率を算出する
ことを特徴とする付記6に記載の算出装置。
【0139】
(付記8)
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアを構成するプログラムのステップ数とが対応付けられた情報であり、
前記算出部は、算出したトラブルの発生率を前記対応情報に対応付けられたステップ数で除算して正規化する
ことを特徴とする付記1に記載の算出装置。
【0140】
(付記9)
前記対応情報は、ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、一又は複数のトラブルの発生日と、該ソフトウェアの経済的価値に関する数値とが対応付けられた情報であり、
前記算出部は、前記集計部が集計したトラブルの件数を前記対応情報に対応付けられた数値で除算して、該数値単位のトラブルの件数を算出する
ことを特徴とする付記1に記載の算出装置。
【0141】
(付記10)
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日から所定期間が経過したソフトウェアについて、該所定期間経過後に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計する集計部と、
該集計部が集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する算出部と
を備えることを特徴とする算出装置。
【0142】
(付記11)
前記算出部が算出したトラブルの発生率を出力する出力部を備える
ことを特徴とする付記1から付記10までのいずれか一つに記載の算出装置。
【0143】
(付記12)
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計し、
集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する
ことを特徴とする算出方法。
【0144】
(付記13)
ソフトウェアの識別情報と、該ソフトウェアの使用開始日と、該ソフトウェアに関するトラブルが発生した一又は複数の発生日とが対応付けられた対応情報を参照し、使用開始日からの期間が所定期間内であるソフトウェアについて、該所定期間内に発生したトラブルの件数を該対応情報に対応付けられた発生日に基づいて集計し、
集計したトラブルの件数と前記ソフトウェアの数とに基づいて、トラブルの発生率を算出する
処理をコンピュータに実行させることを特徴とするプログラム。