(57)【要約】【課題】システムのメンテナンスに係る工数を予測する方法を提供する。【解決手段】工数算出方法は、システムが有するメンテナンス工数の実績値及びシステムの属性の値に基づいて当該システムのメンテナンス工数予測値を算出する。また、システムに対して、属性の値と、所定の回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。工数算出方法よれば、システムに対する過去のメンテナンス工数の実績値と、システムの各種定量属性又は定性属性とを考慮することにより、将来のメンテナンス工数を予測することができる。【選択図】図２
2020119239.tif 000002
【特許請求の範囲】
【請求項１】
システムが有するメンテナンス工数の実績値及び前記システムの属性の値に基づいて当該システムのメンテナンス工数予測値を算出する、工数算出方法。
【請求項２】
前記システムに対して、前記属性の値と、所定の回帰モデルとに基づいて、前記システムのメンテナンス工数の予測値を算出する、請求項１に記載の工数算出方法。
【請求項３】
前記属性は、定性属性を含み、
前記実績値と前記定性属性の値との相関比に基づいて選択された所定の定性属性のパラメータと、前記実績値とに基づいて、回帰分析を実行して回帰モデルを算出する、請求項２に記載の工数算出方法。
【請求項４】
前記所定の定性属性のパラメータを変更し、前記システムに対して、変更されたパラメータと、前記回帰モデルとに基づいて、前記システムのメンテナンス工数の予測値を算出する、請求項３に記載の工数算出方法。
【請求項５】
前記属性は、定量属性を含み、前記実績値と前記定量属性の値の単相関係数に基づいて選択された所定の定量属性のパラメータと、前記実績値とに基づいて、回帰分析を実行して回帰モデルを算出する、請求項２乃至４のいずれか一項に記載の工数算出方法。
【請求項６】
前記所定の定量属性のパラメータを変更し、前記システムに対して、前記変更されたパラメータと、前記回帰モデルとに基づいて、前記システムのメンテナンス工数の予測値を算出する、請求項５に記載の工数算出方法。
【請求項７】
前記システムのメンテナンス工数の予測値と、前記実績値とを比較して、所定の関係を満たすシステムを選択する、請求項１乃至６のいずれか一項に記載の工数算出方法。
【請求項８】
システムが有するメンテナンス工数の実績値及び前記システムの属性の値に基づいて当該システムのメンテナンス工数予測値を算出する、コンピュータに実行させるためのプログラム。
【請求項９】
前記システムに対して、前記属性の値と、所定の回帰モデルとに基づいて、前記システムのメンテナンス工数の予測値を算出する、請求項８に記載のプログラム。
【請求項１０】
前記属性は、定性属性を含み、
前記実績値と前記定性属性の値との相関比に基づいて選択された所定の定性属性のパラメータと、前記実績値とに基づいて、回帰分析を実行して回帰モデルを算出する、請求項９に記載のプログラム。
【請求項１１】
前記所定の定性属性のパラメータを変更し、前記システムに対して、前記変更されたパラメータと、前記回帰モデルとに基づいて、前記システムのメンテナンス工数の予測値を算出する、請求項１０に記載のプログラム。
【請求項１２】
前記属性は、定量属性を含み、前記実績値と前記定量属性の値の単相関係数に基づいて選択された所定の定量属性のパラメータと、前記実績値とに基づいて、回帰分析を実行して回帰モデルを算出する、請求項９乃至１１のいずれか一項に記載のプログラム。
【請求項１３】
前記所定の定量属性のパラメータを変更し、前記システムに対して、前記変更されたパラメータと、前記回帰モデルとに基づいて、前記システムのメンテナンス工数の予測値を算出する、請求項１２に記載のプログラム。
【請求項１４】
前記システムのメンテナンス工数の予測値と、前記実績値とを比較して、所定の関係を満たすシステムを選択する、請求項８乃至１３のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一実施形態は、システムにおけるメンテナンス工数を予測する技術に関する。
【背景技術】
【０００２】
従来、開発言語、開発ステップ数、及びその他開発プロジェクト各種特性等の要素から、システムの開発工数を予測する手法、及びシステム稼動後のプログラム改修工数を同様要素から予測する手法は存在したものの、システム稼動後の、プログラム改修を伴わないメンテナンス工数を予測する手法は確立されていない。また、システムのメンテナンス工数と、システムの保有ステップ数や規模の尺度として機能量を測定するファンクションポイントとの間には、一定の相関性が認められるとされて来たものの、前者から後者を具体的数値として一意に導く関係式は確立されていない。
【０００３】
特許文献１には、プログラムの保守の優先度付けを合理的に行うことができるようにするためのプログラム分析技術が開示されている。特許文献１によれば、累計障害発生件数又は障害発生予測値と累計障害発生件数の差である潜在障害発生件数とを用いて、少なくとも対処するべきプログラムについて所定の品質を確保するために必要な保守コストに相当する保守工数を算出している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００８／０２０４６８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
システムのメンテナンスの適正な工数を予測するためには、システムの規模のみならず、システムの提供先や稼動年数等、システムの各種定性特性を考慮する必要がある。しかしながら、システムの規模以外の特性において、工数に大きな影響を与える特性毎の定量的な相関関係については、理論的に構築されていなかった。
【０００６】
そこで、本発明は、システムの各種定量属性又は定性属性を考慮することにより、メンテナンスに係る工数を予測するための分析方法を提供することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る工数算出方法は、システムが有するメンテナンス工数の実績値及びシステムの属性の値に基づいて当該システムのメンテナンス工数予測値を算出する。
【０００８】
上記工数算出方法は、システムに対して、属性の値と、所定の回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。
【０００９】
上記工数算出方法は、属性は、定性属性を含み、実績値と定性属性の値との相関比に基づいて選択された所定の定性属性のパラメータと、実績値とに基づいて、回帰分析を実行して回帰モデルを算出する。
【００１０】
上記工数算出方法は、所定の定性属性のパラメータの値を変更し、システムに対して、値が変更されたパラメータと、回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。
【００１１】
上記工数算出方法は、属性は、定量属性を含み、実績値と定量属性の値の単相関係数に基づいて選択された所定の定量属性のパラメータと、実績値とに基づいて、回帰分析を実行して回帰モデルを算出する。
【００１２】
上記工数算出方法は、所定の定量属性のパラメータを変更し、システムに対して、変更されたパラメータと、回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。
【００１３】
上記工数算出方法は、システムのメンテナンス工数の予測値と、実績値とを比較して、所定の関係を満たすシステムを選択する。
【００１４】
本発明の一実施形態に係るプログラムは、システムが有するメンテナンス工数の実績値及びシステムの属性の値に基づいて当該システムのメンテナンス工数予測値を算出する。
【００１５】
上記プログラムは、システムに対して、属性の値と、所定の回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。
【００１６】
上記プログラムは、属性は、定性属性を含み、実績値と定性属性の値との相関比に基づいて選択された所定の定性属性のパラメータと、実績値とに基づいて、回帰分析を実行して回帰モデルを算出する。
【００１７】
上記プログラムは、所定の定性属性のパラメータを変更し、システムに対して、変更されたパラメータと、回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。
【００１８】
上記プログラムは、属性は、定量属性を含み、実績値と定量属性の値の単相関係数に基づいて選択された所定の定量属性のパラメータと、実績値とに基づいて、回帰分析を実行して回帰モデルを算出する。
【００１９】
上記プログラムは、所定の定量属性のパラメータを変更し、システムに対して、変更されたパラメータと、回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出する。
【００２０】
上記プログラムは、システムのメンテナンス工数の予測値と、実績値とを比較して、所定の関係を満たすシステムを選択する。
【発明の効果】
【００２１】
本発明によれば、システムのメンテナンスに係る工数を予測する方法を提供できる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るハードウェアの構成を示すブロック図である。
【図２】本発明の一実施形態に係る工数算出装置の構成を示す機能ブロック図である。
【図３】本発明の一実施形態に係る工数算出装置の構成を示す機能ブロック図である。
【図４】複数のシステム各々における定量属性及び定性属性の一例を説明するテーブルである。
【図５】複数のシステム各々におけるメンテナンス工数の実績値の一例を説明するテーブルである。
【図６Ａ】抽出データ変換部が受信した定性属性に関するデータの一例である。
【図６Ｂ】抽出データ変換部によってビットデータに変換された定性属性に関するデータの一例である。
【図７】各システムにおける定量属性及び定性属性の一例を説明するテーブルである。
【図８】回帰解析部によって得られた各属性の回帰係数及び定数項を説明するテーブルである。
【図９】複数のシステム各々におけるメンテナンス工数の予測値の一例を説明するテーブルである。
【図１０】複数のシステム各々におけるメンテナンス工数の実績値と予測値とを比較したグラフである。
【図１１】本発明の一実施形態に係る工数算出装置のデータフロー図である。
【図１２】本発明の一実施形態に係る工数算出装置のデータフロー図である。
【図１３】本発明の一実施形態に係る工数算出装置の構成を示す機能ブロック図である。
【図１４】本発明の一実施形態に係る工数算出装置のパラメータ入力部を説明する表示画面の一例である。
【図１５】本発明の一実施形態に係る工数算出装置の構成を示す機能ブロック図である。
【図１６】本発明の一実施形態に係る工数算出装置のパラメータ入力部を説明する表示画面の一例である。
【図１７】本発明の一実施形態に係る工数算出装置の出力部を説明する図である。
【発明を実施するための形態】
【００２３】
（第１実施形態）
本実施形態では、本発明の一実施形態に係る工数算出装置１００について、図１乃至図１２を参照して説明する。
【００２４】
［工数算出方法の概要］
ここで、本発明の一実施形態に係る工数算出方法の概要について説明する。本発明の一実施形態に係る工数算出方法は、システムに対する過去のメンテナンス工数の実績値と、システムの各種定量属性又は定性属性とを考慮することにより、将来のメンテナンス工数を予測するものである。
【００２５】
［メンテナンス工数の定義］
ここで、本明細書等におけるメンテナンス工数とは何を指すかを明らかにする。例えば、任意のシステムに係るライフサイクルコストは、（１）新規開発、（２）ソフトウェア改修／追加を伴う改良／機能アップ、（３）ソフトウェア改修を伴うバグフィックス、（４）システムの運用、（５）ハードウェア保守、（６）ソフトウェア改修を伴わないテーブルメンテナンス等、（７）その他、システム維持に必要な各種アクティビティ全般（含む予防保守、セキュリティチェック、ユーザからの問い合わせ、要員教育等）が挙げられる。本明細書等で用いるメンテナンス工数とは、（１）〜（７）のうち、（６）及び（７）をいう。つまり、本明細書等で用いるメンテナンス工数とは、ソフトウェアを維持するために必要な工数の内、ソフトウェア改修を伴わない工数、かつ運用工数を除いた工数をいう。
【００２６】
［工数算出装置のハードウェア構成］
図１は、本発明の一実施形態に係る工数算出装置１００のハードウェア構成を説明するブロック図である。図１に示すように、工数算出装置１００は、制御部１０１、記録媒体１０２、ＲＡＭ１０３、表示部１０４、操作部１０５、及び通信部１０６を有する。
【００２７】
制御部１０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等であり、後述する機能ブロックの動作を制御する。制御部１０１は、例えば、記録媒体１０２に記録されている動作プログラムを読み出し、ＲＡＭ１０３に展開して動作プログラムを実行することにより、各機能ブロックによって工数算出機能を実現する。
【００２８】
記録媒体１０２は、例えば、不揮発性メモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の恒久的な情報保持及び情報の書き換えが可能な記録装置である。記録媒体１０２は、工数算出装置１００が有する機能ブロックの動作プログラム、及び各ブロックの動作において必要となるパラメータ等の情報を格納する。
【００２９】
ＲＡＭ１０３は、例えば、揮発性メモリ等の一時的な情報保持に用いられる書き換え可能な記憶装置である。ＲＡＭ１０３は、記録媒体１０２に記録されている機能ブロックの動作プログラム等の展開領域、及び機能ブロックの動作において出力された中間データ等を記憶する格納領域として用いられる。
【００３０】
表示部１０４は、例えば、液晶表示パネル又はＥＬ表示パネル等の表示装置である。表示部１０４は、工数算出装置１００を構成する筐体内に一体となって接続された表示装置であってもよい。または、表示部１０４は、工数算出装置１００と接続された外部の表示装置であってもよい。表示部１０４には、後に説明する工数算出装置１００の機能ブロックである出力部に関する表示画面を表示する。
【００３１】
操作部１０５は、例えば、ボタン、マウス、キーボード、タッチセンサ等のユーザインタフェースである。操作部１０５は、各ユーザインタフェースに対して操作入力がなされたことを検出すると、なされた操作入力に対応する制御信号を制御部１０１に出力する。操作部１０５は、後に説明する工数算出装置１００の機能ブロックである属性情報入力部、実績値入力部、又はパラメータ入力部に値を入力する際に用いられる。
【００３２】
通信部１０６は、工数算出装置１００が有する通信インターフェースである。本実施形態では、工数算出装置１００は通信部１０６を介することで、ネットワークを経由して他の端末装置と接続し、他の端末装置との間で情報の送受信を行うことができる。
【００３３】
なお、本実施形態では、説明を簡単にするために、工数算出装置１００のハードウェア構成として、各種ブロックを有するものとして説明したが、本発明の一実施形態はこれに限定されない。例えば、各種ブロックの少なくとも一つが、工数算出装置１００とは別の装置として構成されていてもよい。具体的には、記録媒体１０２及び表示部１０４が、別の装置として構成されてもよい。また、記録媒体１０２は、複数の記録媒体に分かれていてもよい。
【００３４】
［工数算出装置の機能構成］
次に、本発明の一実施形態に係る工数算出装置１００によって実現される工数算出機能について、図２乃至図１２を参照して説明する。
【００３５】
図２及び図３は、本発明の一実施形態に係る工数算出装置１００の工数算出機能を説明するブロック図である。図２では、システムの属性情報と、メンテナンス工数の実績値とから回帰モデルを算出する機能ブロックを説明し、図３では、算出された回帰モデルと、メンテナンス工数の実績値とから、メンテナンス工数の予測値を算出する機能ブロックを説明する。
【００３６】
工数算出装置１００は、少なくとも属性情報記憶部２０２、実績値記憶部２０４、回帰分析部２１４、及び予測値算出部２１６を有する。また、工数算出装置１００は、上記に加えて、属性情報入力部２０１、実績値入力部２０３、定量属性抽出部２０５、定量属性記憶部２０６、単相関係数算出部２０７、定性属性抽出部２０８、定性属性記憶部２０９、相関比算出部２１１、抽出データ変換部２１２、抽出データ記憶部２１３、回帰モデル記憶部２１５、予測値記憶部２１７、比較部２１８、外れ値抽出部２１９、及び出力部２２１の少なくとも一つ以上を有する。
【００３７】
属性情報入力部２０１は、各システム対する属性情報が入力される。ここで、属性情報入力部２０１に入力される属性情報として、例えば、開発工数（人月）、トラブル工数（人月）、及び言語別ステップ数（Ｋｓ）等の定量属性が挙げられる。また、属性情報として、システムの機能提供先、稼働年数、システムの種類、重要度（機密性、完全性、可用性）、所管部署、運用部署、利用部署及び人数、ピーク件数、トラブル時の影響範囲、顧客情報の有無、ハードウェアの種類、並びに目標復旧時間等の定性属性が挙げられる。なお、ピーク件数とは、繁忙日における単位時間当たりの処理データのピーク件数をいう。また、属性情報入力部２０１には、各システムに対して、定量属性及び定性属性に対応する値が入力される。属性情報入力部２０１に入力される属性情報は、操作部１０５によって直接入力されてもよいし、他の端末装置に保存されたデータを読み込むことで入力されてもよい。
【００３８】
開発工数とは、システムに対する改修等の為に所定の期間内に投入された実績工数、又は投入見込み工数を指す。所定の期間とは、例えば、４か月、半年、又は１年等である。トラブル工数とは、当該システムに対して、所定の期間内にトラブルに対処するべく投入された工数、又は投入見込み工数をいう。トラブル工数（人月）と、開発工数（人月）との所定の期間は、同じである。本実施形態では、開発工数及びトラブル工数については、所定の期間内における工数を各々パラメータとする。プログラム言語は、例えば、ＪＡＶＡ（登録商標）、Ｃ／Ｃ++の他、Ｖｉｓｕａｌ  Ｂａｓｉｃ（．Ｎｅｔ）、Ｃ＃、ＣＯＢＯＬ、ＰＬ／Ｉ、ＲＰＧ等が挙げられる。本実施形態では、システムの総ステップ数（言語を問わない単純合算ステップ数）をパラメータとするのではなく、システムの言語別のステップ数の在り高を各々パラメータとする。これにより、メンテナンス工数の予測値の精度が向上する。なお、開発工数及びトラブル工数は、従来メンテナンス工数には影響しないと考えることが一般的であったが、分析対象システムを所有する組織の事情等によっては、回帰分析にて強い因果関係が認められる場合があるものである。もちろん、どのパラメータを採用するかは、回帰分析結果に応じて取捨選択してよい。
【００３９】
属性情報記憶部２０２は、各システム単位に、定量属性及び定性属性に対応する値を保存する。図４は、属性情報記憶部２０２に格納されたテーブルの一例である。図４では、上記に列挙した定量属性及び定性属性のうち一部を示している。属性情報記憶部２０２には、システム名の列と、定量属性及び定性属性各々の列とを含むテーブルが保存される。属性情報記憶部２０２には、各システムについて、属性情報入力部２０１に入力された定量属性及び定性属性各々の値が保存されている。
【００４０】
実績値入力部２０３には、システムのメンテナンス作業におけるメンテナンス工数の実績値が入力される。ここで入力されるメンテナンス工数は、所定の期間における工数が保存される。実績値入力部２０３に入力される所定の期間は、開発工数及びトラブル工数の所定の期間と同じである。実績値入力部２０３に入力されるメンテナンス工数の実績値は、操作部１０５によって直接入力されてもよいし、他の端末装置に保存されたデータを読み込むことで入力されてもよい。
【００４１】
実績値記憶部２０４は、実績値入力部２０３に入力されたメンテナンス工数の実績値を保存する。図５は、実績値記憶部２０４に格納されたテーブルの一例である。実績値記憶部２０４には、システム名の列と、所定の期間のメンテナンス工数の実績値の列とを含むテーブルが保存される。
【００４２】
定量属性抽出部２０５は、属性情報記憶部２０２のデータから、システムの定量属性に関するデータを抽出する。つまり、システム名の列と、定量属性に関する列（開発工数、トラブル工数、及び言語別ステップ数）等を含むテーブルを抽出する。定量属性抽出部２０５によって抽出されたテーブルは、定量属性記憶部２０６に保存される。
【００４３】
単相関係数算出部２０７は、定量属性毎に、各システムのメンテナンス工数ｙと、定量属性記憶部２０６に保存された各定量属性値ｘとの単相関係数を算出する。単相関係数は、ｘとｙとの積和／√（ｘの偏差平方和×ｙの偏差平方和）によって算出される。単相関係数を算出した結果、複数の定量属性のうち単相関係数が所定の閾値以上、例えば、０．５以上の定量属性を選択することで抽出し、その定量属性に関するデータを、抽出データ変換部２１２に送信する。
【００４４】
定性属性抽出部２０８は、属性情報記憶部２０２に保存されたテーブルから、各システムの定性属性に関するデータを抽出する。つまり、システム名の列と、定性属性に関する列（機能提供先、稼働年数、システムの種類、重要度（機密性、可用性、完全性））等を含むテーブルを抽出する。定性属性抽出部２０８によって抽出されたテーブルは、定性属性記憶部２０９に保存される。
【００４５】
相関比算出部２１１は、定性属性毎に、各システムのメンテナンス工数ｙと、定性属性記憶部２０９に保存された各システムの定性属性値ｘとの相関比を算出する。相関比は、１−（誤差変動／全体変動）によって算出される。相関比を算出した結果、複数の定性属性のうち相関比が所定の閾値以上、例えば、０．０５以上の定性属性を選択することで抽出し、その定性属性に関するデータを、抽出データ変換部２１２に送信する。
【００４６】
抽出データ変換部２１２は、単相関係数算出部２０７によって選択された定量属性のデータ及び相関比算出部２１１によって選択された定性属性に関するデータを受信する。つまり、システム名の列と、選択された定量属性の列と、選択された定性属性の列とを含むテーブルを受信する。その後、抽出データ変換部２１２は、各システムにおける定性属性に関するデータを、“０／１”のビットデータに変換する。これにより、定性属性の質的データを、量的データに変換する。
【００４７】
図６Ａに、各システムにおける定性属性に関するデータを示し、図６Ｂに各システムにおける定性属性に関するデータを、“０／１”のビットデータに変換した後のデータを示す。なお、図６Ａ及び図６Ｂにおいては、定性属性の一部について記載しており、上述したこの他の定性属性があってもよい。また、図６Ａ及び図６Ｂにおいて、定量属性のデータについては記載を省略している。
【００４８】
抽出データ変換部２１２は、質的データを量的データに変換するにあたり、定性属性の複数の項目を複数のダミー変数に変換する。システムの機能提供先のダミー変数として、例えば、全世界、複数リージョン（地域）、単数リージョン、複数の拠点、単数の拠点等が挙げられる。稼働年数のダミー変数として、例えば、０〜５年、６〜１０年、１１年以上等が挙げられる。システムの種類のダミー変数として、例えば、勘定系、情報系、対外接続系、資金証券系等が挙げられる。システムの重要度は、機密性及び完全性が挙げられる。システムの重要度（機密性）及び重要度（完全性）のダミー変数として、高い、低いが挙げられる。なお、上記のダミー変数は一例であり、適宜設定することができる。
【００４９】
また、図６Ｂに示すように、定性属性に対して、該当するダミー変数については１と変換され、該当しないダミー変数については０と変換される。例えば、システムＡにおける機能提供先は全世界であるので、ダミー変数は１となり、複数リージョンのダミー変数は０となる。また、システムＡにおける稼働年数は５年であるので、０〜５年のダミー変数は１となり、６〜１０年のダミー変数は０となる。また、抽出データ変換部２１２には、上述したシステムの機能提供先等の定性属性をダミー変数に変換するための条件が予め保存されていてもよい。
【００５０】
抽出データ変換部２１２は、各システムにおける定量属性のデータ及びビットデータに変換された定性属性に関するデータを、抽出データ記憶部２１３に保存する。
【００５１】
図７は、抽出データ記憶部２１３が保有するテーブルである。図７では、各システムにおける定量属性の値及びビットデータに変換された定性属性の値を示している。
【００５２】
抽出データ記憶部２１３に保存されたデータ及び実績値記憶部２０４に保存されたデータに基づいて、回帰分析部２１４により回帰モデルを算出する。本実施形態で説明する回帰分析では、選択された複数の定量属性の値又はビットデータに変換された定性属性の値と、メンテナンス工数の実績値とに基づいて、回帰モデルを算出する。
【００５３】
回帰分析部２１４は、抽出データ記憶部２１３に保存された各システムの定量属性及び定性属性を各々説明変数ｘとし、メンテナンス工数の実績値を目的変数ｙとして、回帰分析を実行し、定量属性及び定性属性各々の回帰係数、並びに定数項を算出する。本実施形態では、回帰分析として、拡張型数量化一類にて、重回帰分析を実行する。回帰分析部２１４により定量属性及び定性属性各々における回帰係数と、定数項とが得られる。図８は、回帰係数、定数項の一例である。回帰分析部２１４により、開発工数、トラブル工数、及び複数の言語の各々に対して回帰係数が算出され、定性属性については、ダミー変数の各々に対して回帰係数が算出される。
【００５４】
予測値算出部２１６は、抽出データ記憶部２１３に保存された各システムの定量属性及び定性属性に関するデータと、以下に示す回帰モデルとに基づいて、各システムのメンテナンス工数の予測値を算出する。
【００５５】
以下に、回帰モデル、即ちメンテナンス工数の予測値を算出する式（１）を示す。
メンテナンス工数の予測値
＝開発工数（人月）×回帰係数×偏差
＋トラブル工数（人月）の１．５乗根×回帰係数×偏差
＋言語１のステップ数（Ｋｓ）の２乗根×回帰係数×偏差＋言語２のステップ数（Ｋｓ）の２乗根×回帰係数×偏差＋・・・・・・
＋機能提供先のダミー変数１×回帰係数＋機能提供先のダミー変数２×回帰係数＋・・・・・・
＋稼動年数のダミー変数１×回帰係数＋稼働年数のダミー変数２×回帰係数＋・・・・・・
＋システムの種類のダミー変数１×回帰係数＋システムの種類のダミー変数２×回帰係数＋・・・・・・
＋重要度（機密性）のダミー変数１×回帰係数＋重要度（機密性）のダミー変数２×回帰係数＋・・・・・・
＋重要度（完全性）のダミー変数１×回帰係数＋重要度（完全性）のダミー変数２＋・・・・・・
＋定数項・・・・・・（１）
ここで、偏差とは、各個体と群別平均（算出結果を定数として使用）との差である。また、上記に示す属性以外の相関比及び単相関係数が、設定した所定の閾値を超える場合、所定の閾値を超えた属性をパラメータとして使用してもよい。なお、本例では重回帰分析によって回帰モデルを導いているが、属性情報記憶部２０２と実績値記憶部２０４を直接的なインプットとしてディープラーニング（機械学習）を実施し、その結果を回帰モデルとして使用しても良い。
【００５６】
予測値算出部２１６により、上記の算出式（１）を用いて計算することで、各システムのメンテナンス工数の予測値を算出することができる。
【００５７】
予測値記憶部２１７は、予測値算出部２１６によって得られた各システムのメンテナンス工数の予測値が保存される。図９は、システム名と、各システムに対するメンテナンス工数の予測値とを含むテーブルの例である。
【００５８】
比較部２１８は、各システムのメンテナンス工数の予測値と、各システムのメンテナンス工数の実績値とを比較する。
【００５９】
外れ値抽出部２１９は、各システムのメンテナンス工数の予測値と実績値とを比較した結果、各システムのうち、乖離が大きいシステムを抽出する。例えば、メンテナンス工数の実績値と予測値とが１０人月以上乖離、かつ比率が５０％未満又は１５０％以上のシステムを抽出する。これにより、抽出したシステムに対して乖離した原因を深堀することで、低効率となったシステムを改善する、又は高効率のシステムの良い点を他のシステムに適用する等の応用が可能となる。
【００６０】
出力部２２１は、各システムのメンテナンス工数の予測値と実績値とを比較した結果を出力する。図１０は、各システムのメンテナンス工数の予測値と実績値とを比較した結果をグラフで示したものである。図１０に示すグラフの横軸はシステムの名称を示し、縦軸はメンテナンス工数の予測値及び実績値を示す。図１０におけるシステム名の順序は、メンテナンス工数の実績値が小さい順に並んでいる。
【００６１】
また、本実施形態では、メンテナンス工数の予測値と実績値とを比較して、外れ値を抽出した後に、メンテナンス工数の予測値と実績値とを出力する例について説明したが、本発明はこれに限定されない。例えば、比較部２１８においてメンテナンス工数の予測値と実績値とを比較した結果を、出力部２２１によって出力してもよいし、予測値記憶部２１７に保存されたメンテナンス工数の予測値を出力部２２１によって出力してもよい。
【００６２】
図１１は、本発明の一実施形態に係る工数算出方法におけるデータフロー図である。まず、属性情報ＤＢ２３１から、定量属性に関するデータを抽出して、属性情報ＤＢ（定量属性）２３２に保存し、定性属性に関するデータを抽出して、属性情報ＤＢ（定性属性）２３４に保存する。ここで、属性情報ＤＢ２３１は、図２に示す属性情報記憶部２０２に相当し、属性情報ＤＢ（定量属性）２３２は、定量属性記憶部２０６に相当し、属性情報ＤＢ（定性属性）２３４は、定性属性記憶部２０９に相当する。
【００６３】
属性情報ＤＢ（定量属性）２３２に保存された定量属性に関するデータと、メンテナンス工数実績値ＤＢ２３３に保存されたデータとに基づいて、単相関係数を算出し、複数の定量属性のうち単相関係数が所定の閾値以上の定量属性に関するデータを、属性情報ＤＢ（抽出後）２３５に保存する。ここで、メンテナンス工数実績値ＤＢ２３３は、図２に示す実績値記憶部２０４に相当する。
【００６４】
属性情報ＤＢ（定性属性）２３４に保存された定性属性に関するデータと、メンテナンス工数実績ＤＢ２３３に保存されたデータとに基づいて、相関比を算出し、複数の定性属性のうち相関比が所定の閾値以上の定性属性に関連するデータを、属性情報ＤＢ（抽出後）２３５に保存する。
【００６５】
属性情報ＤＢ（抽出後）２３５に保存された定性属性に関するデータについて、“０／１”のビットデータに変換し、変換した定性属性に関するデータを、属性情報ＤＢ（変換後）２３６に保存する。属性情報ＤＢ（変換後）２３６は、抽出データ記憶部２１３に相当する。
【００６６】
属性情報ＤＢ（変換後）２３６に保存されたデータと、メンテナンス工数実績値ＤＢ２３３に保存されたデータとに基づいて、回帰分析を実行することで、定量属性及び定性属性各々の回帰係数及び定数項を算出し、回帰モデルとして回帰モデル２３７に保存する。
【００６７】
属性情報ＤＢ（変換後）２３６に保存されたデータと、回帰モデル２３７に保存された回帰モデルとに基づいて、各システムのメンテナンス工数の予測値を算出して、メンテナンス工数予測値ＤＢ２３８に保存する。
【００６８】
図１２に示すように、メンテナンス工数予測値ＤＢ２３８の保存されたデータと、メンテナンス工数実績値ＤＢ２３３に保存されたデータとを比較して、比較した結果を結果レポート２４０として出力する。比較した結果を出力する形式は、図１０に示すようにメンテナンス工数の実績値と予測値とを示すグラフであってもよいし、実績値に対する予測値の割合であってもよいし、システム名の列、メンテナンス工数の予測値の列、実績値の列を含むテーブルであってもよい。
【００６９】
従来、システムの開発工数について、開発予定のシステムの属性と、過去のプロジェクト開発工数の実績値とに基づいて、回帰分析により開発工数を予測する方法もあった。開発工数の見積方法については、工数算出に必要な情報はプロジェクト単位の固有の詳細な情報をベースにしている。また、プロジェクト単位の固有の詳細な情報（定量属性や定性属性）は、各プロジェクトの検討がある程度成熟されないと決定できない。よって、例えば、組織が保有する複数システム全体の特定年度分の全開発工数を、事前に予測する事は困難であり、例えば特定年度の要員計画等に供する事ができない。
【００７０】
これに対し、本発明の一実施形態に係る工数算出方法では、メンテナンス工数の予測値の算出根拠となる大宗の既存のプログラムの総量や特性等は静的であり、それほど変化しない情報をベースにしている。よって、組織で保有するシステム全体に対して、回帰分析を行うことにより、メンテナンス工数の見積もりモデルを事前に構築できる。これにより、所定の期間毎に、組織で保有するシステム全体のメンテナンス工数の見積もりを一括して実行することで、調達すべき人員等の工数を容易に決定できる。もちろん、システム全体から、メンテナンス工数の見積もりが必要なシステムの少なくとも一つを抽出して、抽出されたシステムに対して工数の見積もりを実行できることはいうまでもない。
【００７１】
本発明の一実施形態に係る工数算出装置によれば、システム規模を現すステップ数等の定量属性だけでなく、稼働年数やシステムの提供先等の定性属性についても考慮しており、定量属性及び定性属性のうち不要な属性を除去している。これにより、定量属性、定性属性と、実績値とに基づく回帰分析における予測精度を向上させることができる。本発明の一実施形態に係る工数算出装置によれば、従来、数値的に予測することが困難であったシステムのメンテナンス工数の回帰モデルを算出することができる。また、個別のシステム又はプロジェクトのみならず、組織で保有するシステム全体に対して、メンテナンス工数の予測値を算出することができる。
【００７２】
（変形例１）
本実施形態では、回帰モデルを算出する際に、定性属性のパラメータ及び定量属性のパラメータの双方を利用する例について説明したが、本発明の一実施形態はこれに限定されない。定性属性のパラメータと定量属性のパラメータとの一方から算出した回帰モデルを利用してメンテナンス工数の予測値を算出してもよい。
【００７３】
例えば、システムの属性として定性属性を用いる場合、回帰分析部２１４により、メンテナンス工数の実績値と定性属性のパラメータとの相関比に基づいて選択された定性属性のパラメータと、当該実績値とを利用して定性属性の回帰係数（回帰モデル）を算出する。そして、予測値算出部２１６により、選択された定性属性のパラメータと、回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出することができる。
【００７４】
また、システムの属性として定量属性を用いる場合、回帰分析部２１４により、メンテナンス工数の実績値と定量属性のパラメータとの単相関係数に基づいて選択された定量属性のパラメータと、当該実績値とを利用して定量属性の回帰係数（回帰モデル）を算出する。そして、予測値算出部２１６により、選択された定量属性のパラメータと、回帰モデルとに基づいて、システムのメンテナンス工数の予測値を算出することができる。
【００７５】
（変形例２）
本実施形態では、抽出データ変換部２１２は、選択された定量属性のデータを受信して、抽出データ記憶部２１３に当該データを保存する例について説明したが、本発明の一実施形態はこれに限定されない。選択された定量属性のデータは、“０／１”のビットデータに変換する必要がない。そのため、単相関係数算出部２０７によって選択された定量属性のデータを、抽出データ変換部２１２を介さずに、抽出データ記憶部２１３に保存してもよい。
【００７６】
（第２実施形態）
本実施形態では、本発明の一実施形態に係る工数算出装置１００Ａについて説明する。本実施形態では、工数算出装置１００Ａにより、任意のシステムについて定量属性又は定性属性のうち少なくとも一つのパラメータを変更することで、当該システムのメンテナンス工数をシミュレーションする方法について、図１３及び図１４を参照して説明する。
【００７７】
図１３は、本発明の一実施形態に係る工数算出装置１００Ａの工数算出機能を説明するブロック図である。工数算出装置１００Ａは、第１実施形態で説明した工数算出装置１００の機能ブロックに、一部機能ブロックが追加された構成を有する。具体的には、工数算出装置１００の機能ブロックに加えて、パラメータ入力部２２２、抽出データ計算部２２３、抽出データ記憶部２１３Ａ、予測値算出部２１６Ａ、及び予測値記憶部２１７Ａをさらに有する。
【００７８】
パラメータ入力部２２２は、任意のシステムの定量属性及び定性属性のうち少なくとも一つの属性に対して、任意のパラメータが入力される。図１４は、パラメータ入力部２２２にパラメータを入力するための表示画面の一例である。図１４に示す定性属性及び定量属性は、第１実施形態で説明した相関比と単相関係数から導き出された属性である。図１４に示す表示画面において、任意のシステムにおけるパラメータ変更前の項目には、抽出データ記憶部２１３に記憶されたパラメータが表示されており、パラメータ変更後の項目には、変更後のパラメータが表示される。パラメータは全て変更されてもよいし、一部の項目は抽出データ記憶部２１３に記憶されたパラメータのままでもよい。図１４に示す表示画面において、定量属性のうち、言語別ステップ数のパラメータに任意の値を入力する場合について説明する。例えば、任意のシステムについて、プログラム言語のＣＯＢＯＬ及びＰＬ／Ｉのステップ数（Ｋｓ）を、全てＪＡＶＡのステップ数に置換する場合、図１４に示すパラメータ変更後の項目に、ＣＯＢＯＬ及びＰＬ／Ｉのステップ数（Ｋｓ）を０として、ＪＡＶＡのステップ数（Ｋｓ）を２１２３と入力する。その他の項目は、変更前のパラメータと同じであってもよい。
【００７９】
抽出データ計算部２２３は、任意のシステムについて、抽出データ記憶部２１３に保存された定量属性及び定性属性のパラメータと、パラメータ入力部２２２から入力されたパラメータと、を読み出す。そして、抽出データ記憶部２１３に保存された定量属性のパラメータ及び定性属性のパラメータを、パラメータ入力部２２２から入力されたパラメータに変更して、抽出データ記憶部２１３Ａに保存する。本実施形態では、ＪＡＶＡのステップ数を、１４３から２１２３に変更し、ＣＯＢＯＬのステップ数、及びＰＬ／Ｉのステップ数を０に変更する。
【００８０】
抽出データ記憶部２１３Ａは、任意のシステムの各パラメータについて、抽出データ計算部２２３によって変更されたパラメータを保存する。したがって、抽出データ記憶部２１３Ａには、ＪＡＶＡのステップ数２１２３、ＣＯＢＯＬのステップ数０、ＰＬ／Ｉのステップ数０が保存され、それ以外の属性のパラメータは、変更前のパラメータが保存される。なお、抽出データ記憶部２１３Ａは、抽出データ計算部２２３を介することなく、パラメータ入力部２２２に入力された任意のシステムの各パラメータを読み出して、シミュレーション用のデータとして、保存してもよい。
【００８１】
予測値算出部２１６Ａは、抽出データ記憶部２１３Ａと、回帰モデル記憶部２１５に保存された第１実施形態で説明した回帰モデルとに基づいて、任意のシステムのシミュレーション用のメンテナンス工数の予測値を算出する。具体的な算出方法については、第１実施形態で説明した式（１）を用いればよい。
【００８２】
予測値記憶部２１７Ａは、任意のシステムのシミュレーションによって得られたメンテナンス工数の予測値を保存する。
【００８３】
比較部２１８は、予測値記憶部２１７に保存された予測値と、予測値記憶部２１７Ａに保存された予測値と、実績値記憶部２０４に保存された実績値と、を比較する。予測値記憶部２１７に保存された予測値と、予測値記憶部２１７Ａに保存された予測値とを比較、予測値記憶部２１７Ａに保存された予測値と実績値記憶部２０４に保存された実績値とを比較してもよい。
【００８４】
出力部２２１は、比較部２１８により比較した結果を出力する。比較した結果を出力する形式は、図１０に示すようなグラフであってもよいし、システム名の列と、予測値記憶部２１７に保存された予測値の列、予測値記憶部２１７Ａに保存された予測値の列、実績値記憶部２０４に保存された実績値の列のいずれか二つ以上を含むテーブルであってもよい。
【００８５】
従来、任意のシステムに対して、定量属性及び定性属性の少なくとも一部の属性のパラメータを変更したメンテナンス工数をシミュレーションすることができなかった。本実施形態に係る工数算出装置では、任意のシステムについて、定量属性及び定性属性のうち少なくとも一つのパラメータを変更することで、メンテナンス工数についてシミュレーションすることができる。例えば、システムの定量属性及び定性属性の少なくとも一部のパラメータを変更することで、パラメータの変更によってどの程度メンテナンス工数の削減を図ることができるか計算することができる。
【００８６】
（変形例３）
本実施形態では、任意のシステムに対して、定量属性について任意のパラメータを用いて、メンテナンス工数の予測値を算出する例について説明したが、本発明の一実施形態はこれに限定されない。定性属性について任意のパラメータを用いて、メンテナンス工数の予測値を算出してもよいし、定量属性及び定性属性の各々について任意のパラメータを用いて、メンテナンス工数の予測値を算出してもよい。
【００８７】
（第３実施形態）
本実施形態では、本発明の一実施形態に係る工数算出装置１００Ｂについて説明する。本実施形態では、工数算出装置１００Ｂにより、新規に導入するシステムについて定量属性又は定性属性についてパラメータを設定することで、新規に導入するシステムのメンテナンス工数をシミュレーションする方法について、図１５乃至図１７を参照して説明する。
【００８８】
図１５は、本発明の一実施形態に係る工数算出装置１００Ｂの工数算出機能を説明するブロック図である。工数算出装置１００Ｂは、第１実施形態で説明した工数算出装置１００の機能ブロックに、一部機能ブロックが追加された構成を有する。具体的には、パラメータ入力部２２２Ｂ、抽出データ記憶部２２３Ｂ、予測値算出部２１６Ｂ、及び予測値記憶部２１７Ｂをさらに有する。
【００８９】
パラメータ入力部２２２Ｂは、新規に導入するシステムの定量属性又は定性属性に対応する全ての属性に対して、任意のパラメータが入力される。図１６は、パラメータ入力部２２２Ｂにパラメータを入力するための表示画面の一例である。図１６に示す表示画面に、新規に導入するシステムに対する定量属性又は定性属性各々のパラメータを入力する。例えば、図１６に示す表示画面に、新規に導入するシステムの定量属性又は定性属性各々のパラメータを入力する。
【００９０】
抽出データ記憶部２２３Ｂは、パラメータ入力部２２２Ｂに入力された新規システムの定量属性又は定性属性各々のパラメータを読み出して、保存する。
【００９１】
予測値算出部２１６Ｂは、抽出データ記憶部２２３Ｂに保存された定量属性又は定性属性各々のパラメータと、第１実施形態で説明した回帰モデルとに基づいて、新規のシステムのメンテナンス工数の予測値を算出する。具体的な算出方法については、第１実施形態で説明した式（１）を用いればよい。
【００９２】
予測値記憶部２１７Ｂは、新規のシステムのメンテナンス工数の予測値を保存する。
【００９３】
出力部２２１は、予測値記憶部２１７Ｂに保存されるデータを出力する。予測値記憶部２１７Ｂに保存されるデータを出力する表示画面の一例について、図１７に示す。図１７は、新規のシステムに対するメンテナンス工数の予測値を出力する表示画面である。
【００９４】
従来、開発中の新規のシステムに対しては、稼働後のメンテナンス工数を予測することができなかった。本実施形態に係る工数算出装置１００Ｂによれば、第１実施形態で算出した回帰モデルを使用することで、開発中の新規のシステムにおいて、当該システムの稼働後のメンテナンス工数の予測値を事前に算出することができる。メンテナンス工数の予測値が予想よりも高ければ、予測値が低くなるようにシステムの定量属性又は定性属性のいずれかを変更して、システムの開発を進めることで、メンテナンス工数が少ないシステムを提供することができる。
【００９５】
本発明の一実施形態に係る工数算出装置によれば、既存の稼働しているシステムのみならず、新規に導入する稼働していないシステムのいずれにおいても、メンテナンス工数の予測値を算出することができる。
【００９６】
本発明の一実施形態において、抽出データ記憶部２１３、抽出データ記憶部２１３Ａ、抽出データ記憶部２２３Ｂをそれぞれ異なる記憶部として説明したが、全て同じ記憶媒体であってもよいし、一部が異なる記憶部であってもよい。
【００９７】
本発明の一実施形態において、回帰モデルとして、定量属性の回帰係数及び定性属性の回帰係数の双方が得られていれば、定量属性のパラメータ及び定性属性のパラメータと、当該回帰モデルとに基づいて、稼働前のシステムにおけるメンテナンス工数の予測値を算出することができる。
【符号の説明】
【００９８】
１００：工数算出装置、１００Ａ：工数算出装置、１００Ｂ：工数算出装置、１０１：制御部、１０２：記録媒体、１０３：ＲＡＭ、１０４：表示部、１０５：操作部、１０６：通信部、２０１：属性情報入力部、２０２：属性情報記憶部、２０３：実績値入力部、２０４：実績値記憶部、２０５：定量属性抽出部、２０６：定量属性記憶部、２０７：単相関係数算出部、２０８：定性属性抽出部、２０９：定性属性記憶部、２１１：相関比算出部、２１２：抽出データ変換部、２１３：抽出データ記憶部、２１３Ａ：抽出データ記憶部、２２３Ｂ：抽出データ記憶部、２１４：回帰分析部、２１５：回帰モデル記憶部、２１６：予測値算出部、２１６Ａ：予測値算出部、２１６Ｂ：予測値算出部、２１７：予測値記憶部、２１７Ａ：予測値記憶部、２１７Ｂ：予測値記憶部、２１８：比較部、２１９：外れ値抽出部、２２１：出力部、２２２：パラメータ入力部、２２２Ｂ：パラメータ入力部、２２３：抽出データ計算部、２２３Ｂ：抽出データ記憶部、２３２：属性情報ＤＢ（定量属性）、２３４：属性情報ＤＢ（定性属性）、２３５：属性情報ＤＢ（抽出後）、２３６：属性情報ＤＢ（変換後）、２３７：回帰モデル、２４０：結果レポート
【図１】
2020119239.tif 000003
【図２】
2020119239.tif 000004
【図３】
2020119239.tif 000005
【図４】
2020119239.tif 000006
【図５】
2020119239.tif 000007
【図６Ａ】
2020119239.tif 000008
【図６Ｂ】
2020119239.tif 000009
【図７】
2020119239.tif 000010
【図８】
2020119239.tif 000011
【図９】
2020119239.tif 000012
【図１０】
2020119239.tif 000013
【図１１】
2020119239.tif 000014
【図１２】
2020119239.tif 000015
【図１３】
2020119239.tif 000016
【図１４】
2020119239.tif 000017
【図１５】
2020119239.tif 000018
【図１６】
2020119239.tif 000019
【図１７】
2020119239.tif 000020