(57)【特許請求の範囲】
【請求項１】
計算機資源を有し、前記計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理するクラウド管理システムであって、
情報を記憶可能な記憶デバイスと、前記記憶デバイスに接続された１以上のプロセッサであるプロセッサ部と、を有し、
前記記憶デバイスは、
それぞれの前記グループにおける開発効率に関する所定の評価指標の評価値を算出するための時系列の基礎情報と、それぞれの前記グループにおけるソフトウェアの使用状況に関する時系列の使用状況情報と、を記憶し、
前記プロセッサ部は、
前記記憶デバイスが記憶する時系列の前記基礎情報と時系列の前記使用状況情報とに基づいて、前記評価指標の評価に寄与する１以上のソフトウェアを抽出するように構成されている
クラウド管理システム。
【請求項２】
前記プロセッサ部は、
時系列の前記基礎情報に基づいて、各グループにおける評価指標についての評価値を算出し、評価が高い１以上の高効率グループを特定し、
時系列の前記使用状況情報に基づいて、前記高効率グループにおいて、前記評価に寄与する１以上のソフトウェアを抽出する
請求項１に記載のクラウド管理システム。
【請求項３】
前記プロセッサ部は、
複数の評価指標の中から対象とする評価指標の選択を受け付け、
受け付けた前記評価指標を対象に、前記評価に寄与する１以上のソフトウェアを抽出する
請求項２に記載のクラウド管理システム。
【請求項４】
前記所定の評価指標は、複数の評価指標を含み
前記プロセッサ部は、複数の前記評価指標のそれぞれを対象に、前記評価に寄与する１以上のソフトウェアを抽出する
請求項２に記載のクラウド管理システム。
【請求項５】
前記使用状況情報は、前記ソフトウェアの稼働状態に関する時系列の稼働状態情報と、前記グループにおける前記ソフトウェアの作成、削除、及び変更に関する時系列の設定状態情報とを含む
請求項１から請求項４のいずれか一項に記載のクラウド管理システム。
【請求項６】
前記稼働状態情報は、前記ソフトウェアに対する外部からのアクセスに関する情報である
請求項５に記載のクラウド管理システム。
【請求項７】
前記稼働状態情報は、前記ソフトウェアに割り当てられている計算機資源の使用量に関する情報である
請求項５に記載のクラウド管理システム。
【請求項８】
前記稼働状態情報は、前記ソフトウェアにより出力されるログに関する情報である
請求項５に記載のクラウド管理システム。
【請求項９】
前記評価指標の前記評価値は、所定の時間範囲における前記基礎情報の合計値を含み、
前記プロセッサ部は、
前記所定の時間範囲における前記基礎情報の合計値が最大のグループを、評価が高い高効率グループとして特定する
請求項２から請求項４のいずれか一項に記載のクラウド管理システム。
【請求項１０】
前記プロセッサ部は、
前記所定の時間範囲における基礎情報の合計値が最大である時間範囲において、前記高効率グループで使用されている１以上のソフトウェアを前記評価に寄与する１以上のソフトウェアとして抽出する
請求項９に記載のクラウド管理システム。
【請求項１１】
前記プロセッサ部及び前記記憶デバイスは、前記クラウドシステムが提供する前記計算機資源である
請求項１から請求項１０のいずれか一項に記載のクラウド管理システム。
【請求項１２】
前記プロセッサ部は、
前記抽出された１以上のソフトウェアに関する情報を表示させる
請求項１から請求項１１のいずれか一項に記載のクラウド管理システム。
【請求項１３】
前記プロセッサ部は、
前記グループについてのソフトウェアに関する設定を他の利用者と共有してもよいか否かの指定を受け付ける画面を表示させ、前記指定を受け付け、
共有してもよいとの指定を受け付けている場合には、前記ソフトウェアに関する設定値の情報の表示要求を受け付けると、前記ソフトウェアに関する設定情報を表示させる
請求項１から請求項１２のいずれか一項に記載のクラウド管理システム。
【請求項１４】
前記プロセッサ部は、
所定の学習対象グループにおける時系列の基礎情報と、ソフトウェアの使用状況に関する時系列情報とを教師情報として、機械学習が行われている学習モジュールを実行することにより、前記評価指標の評価に寄与する１以上の前記ソフトウェアを抽出する
請求項１から請求項１３のいずれか一項に記載のクラウド管理システム。
【請求項１５】
計算機資源を有し、前記計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理するクラウド管理システムによるクラウド管理方法であって、
それぞれの前記グループにおける開発効率に関する所定の評価指標の評価値を算出するための時系列の基礎情報を取得し、
それぞれの前記グループにおけるソフトウェアの使用状況に関する時系列情報を取得し、
前記時系列の基礎情報に基づいて、各グループにおける評価指標についての評価値を算出し、最も評価が高い高効率グループを特定し、
前記使用状況に関する時系列情報に基づいて、前記高効率グループにおいて、前記評価に寄与した１以上のソフトウェアを抽出する
クラウド管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理するクラウド管理システム等に関する。
【背景技術】
【０００２】
仮想サーバ（ＶＭ）、開発環境または実行環境、ソフトウェア等のＩＴリソースをネットワーク経由でサービスとして提供するクラウドサービス（以下クラウド）が近年、急激な広まりを見せている。【０００３】
クラウドを提供形態で分類すると、仮想サーバ等を提供するＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、開発環境または実行環境を提供するＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ソフトウェアを提供するＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、等がある。【０００４】
例えば、ＰａａＳでは、ＰａａＳを提供する事業者は、クラウドの利用者からの要求があった場合には、利用者専用の環境（インスタンス等とも呼ばれる）と、その環境に接続するためのアクセス経路とを設定し、利用者に通知する。通知を受けた利用者は、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）やＨＴＴＰＳ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ）、またはＳＳＨ（Ｓｅｃｕｒｅ  Ｓｈｅｌｌ）等のプロトコルを用いて、通知されたアクセス経路を介して、事業者が提供する環境に接続することにより、その環境を利用することができる。このようなクラウドを利用することで、利用者は必要なときに必要なだけのＩＴリソースを利用することができるとともに、環境準備のために要する時間を削減できる。【０００５】
一方、近年、新しいソフトウェア開発手法であるアジャイル開発やＤｅｖＯｐｓが注目を集めている。これらのソフトウェア開発手法では、従来のウォーターフォール型の開発とは異なり、少人数のソフトウェアの開発者が密に連携し、開発・テスト・リリース（バージョンアップ）を短期間で繰り返すことが行われる。これら開発手法は、開発するソフトウェアへのニーズに対して、早く答えられるようにすることを目的としている。【０００６】
このような新しいソフトウェアの開発手法では、しばしばＰａａＳが用いられる。ＰａａＳを用いることにより、利用者である開発者は、環境の準備に時間を割かれることなく開発に集中できる。また、開発状況の変化に合わせて、開発支援のためのツール（ツールソフトウェア）を柔軟に組み合わせて利用することもできる。【０００７】
ＰａａＳを用いてソフトウェアを開発する場合、開発チームの単位（グループ、例えば、プロジェクト、テナント等と呼ばれることもある。）に対して、開発環境や実行環境が準備される。ここで開発環境とは、例えば、プロジェクト内のコミュニケーションを潤滑にするチャットや、プロジェクトの進捗・課題等を管理するプロジェクト管理を行うための開発支援ツールのインスタンスや、Ｊａｖａ（登録商標）やＰｙｔｈｏｎといった開発言語のインスタンスがインストールされている環境のことを指す。なお、以下においては、開発支援するツール自体を指す場合をツールといい、或るプロジェクト用にインストールされているツールのことをインスタンスというように区別して用いる場合がある。【０００８】
プロジェクトに属する開発者（利用者）は、ＰａａＳで利用可能なツール（インスタンス）の一覧（カタログという）から、プロジェクトの開発に必要なツールを選択することによりプロジェクト用の開発環境を構築することができ、構築した開発環境を利用することにより実際の開発を行うことができる。【０００９】
このように構築される開発環境では、例えば、開発が効率的に行われているか否かを測るためにＫＰＩ（Ｋｅｙ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｄｉｃａｔｏｒ）が計測される。ＫＰＩとしては、例えば、開発の活発性やスピードの指標となるソースコードの追加・修正回数（コミット数）や、コミュニケーションの活発性の指標となるチャットの投稿数等がある。このようなＫＰＩによると、開発者は開発が効率的に行われているか否かを把握することができる。【００１０】
このようなＫＰＩは、利用しているツールに依存する場合が多々ある。これは、ツール毎に、対象とする用途や、親和性の高いツールや低いツールが異なっている場合があるからである。このため、プロジェクトにおいて使用するツールとして、適切なツールが選択されていない場合には、開発効率が十分に上がらなかったり、開発効率を阻害してしまったりしてしまう可能性がある。【００１１】
例えば、ソースコードを管理するツールとしては、Ｇｉｔｈｕｂ（登録商標）やＧｉｔｌａｂ（登録商標）と呼ばれるものが知られている。Ｇｉｔｌａｂは、開発プロセスを管理する機能を備えている一方、Ｇｉｔｈｕｂは、この機能を備えていない。このため、Ｇｉｔｈｕｂを用いている場合において、効率的な開発を行おうとすると、開発プロセスを管理する機能を有する別のツールが必要となる。【００１２】
また、ＤｅｖＯｐｓによる開発を採用している場合において、ツールを一度使い始めても、必要な機能の考慮漏れがあったり、プロジェクトにおける開発スタイルに合わなかったり、使用していない別のツールに新機能追加のバージョンアップが行われたりすると、使用するツールが変更されることが多々ある。【００１３】
このため、ＰａａＳにおいて開発環境を構築する場合には、ツールの用途や目的、プロジェクトに参加する開発者の習熟度合等を加味し、開発効率を高めるために適切なツール群（ソフトウェア群）を選定することが重要となる。【００１４】
例えば、特許文献１には、ネットワーク上の構成管理データベースから統合システムを構成する複数のソフトウェアおよびその連携態様を共通する他の統合システムを構成する各ソフトウェアの構成値を収集し、収集した構成値について相関の高い構成値の回帰モデルを生成し、回帰モデルを用いてソフトウェアの構成値の最適値を算出する技術が開示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１３−１３１０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
例えば、特許文献１の技術によると、最適な開発環境の構成（例えば、使用するツール群）を提供するためには、構成管理データベースに、適切な開発環境が設定されていることが前提となる。【００１７】
しかしながら、ＤｅｖＯｐｓのような新しいソフトウェア開発手法が用いられている場合には、試行錯誤によって開発環境が構築されており、開発環境が日々変化していくということが一般的である。このため、最新の開発環境の構成が必ずしも最適な構成であるとは限らない。したがって、構成管理データベースに、適切な開発環境が設定されていることを確保することは困難であり、このような場合には、最適な開発環境の構成を提供することはできない。【００１８】
本発明は、上記事情に鑑みなされたものであり、その目的は、複数のグループに提供しているソフトウェアの中から、所定の評価指標の評価に寄与するソフトウェアを適切に抽出することのできる技術を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、一の観点に係るクラウド管理システムは、計算機資源を有し、計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理する。クラウド管理システムは、情報を記憶可能な記憶デバイスと、記憶デバイスに接続された１以上のプロセッサであるプロセッサ部と、を有する。【００２０】
記憶デバイスは、それぞれのグループにおける開発効率に関する所定の評価指標の評価値を算出するための時系列の基礎情報と、それぞれのグループにおけるソフトウェアの使用状況に関する時系列の使用状況情報と、を記憶する。【００２１】
プロセッサ部は、記憶デバイスが記憶する時系列の基礎情報と時系列の使用状況情報とに基づいて、評価指標の評価に寄与する１以上のソフトウェアを抽出するように構成されている。
【発明の効果】
【００２２】
本発明によれば、所定の評価指標の評価に寄与する１以上のソフトウェアを適切に抽出することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、実施例１の概要を示す図である。
【図２】図２は、実施例１に係る計算機システムの全体構成図である。
【図３】図３は、実施例１に係るツール管理情報の構成例を示す図である。
【図４】図４は、実施例１に係るＫＰＩ取得方法管理情報の構成例を示す図である。
【図５】図５は、実施例１に係るプロジェクト管理情報の構成例を示す図である。
【図６】図６は、実施例１に係る構成変更履歴情報の構成例を示す図である。
【図７】図７は、実施例１に係るＫＰＩ履歴情報の構成例を示す図である。
【図８】図８は、実施例１に係るアクセス履歴情報の構成例を示す図である。
【図９】図９は、実施例１に係るＫＰＩ変換方法管理情報の構成例を示す図である。
【図１０】図１０は、実施例１に係る情報取得処理のフローチャートである。
【図１１】図１１は、実施例１に係る抽出処理のフローチャートである。
【図１２】図１２は、実施例１に係る環境構築画面の一例を示す図である。
【図１３】図１３は、実施例１に係るベストプラクティス表示画面の一例を示す図である。
【図１４】図１４は、実施例２に係るＫＰＩ取得方法管理情報の構成例を示す図である。
【図１５】図１５は、実施例４に係る抽出処理のフローチャートである。
【発明を実施するための形態】
【００２４】
いくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２５】
以下の説明では、ＡＡＡ情報をテーブルの構成として説明しているが、ＡＡＡ情報は、どのようなデータ構造で表現されていてもよい。
【００２６】
また、以下の説明では、「プロセッサ部」は、１以上のプロセッサを含む。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサである。１以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【００２７】
また、以下の説明では、「時刻」は、年月日時分の単位で表現されるが、時刻の単位は、それよりも粗くても細かくてもよいし、また異なる単位でもよい。
【実施例１】
【００２８】
以下、実施例１について説明する。【００２９】
まず、実施例１の概要について説明する。【００３０】
図１は、実施例１の概要を示す図である。【００３１】
実施例１に係る計算機システム１は、各プロジェクト（グループ）の開発環境（以下、単にプロジェクトという）３１０が動作する実行システム（ＰａａＳ）３００と、実行システム３００の各プロジェクト３１０から情報を取得し、ベストプラクティスを抽出するベストプラクティス抽出システム５００と、ベストプラクティス抽出システム５００により抽出されたベストプラクティスを利用者に提示するためのベストプラクティス表示画面Ｇ３００（ＧＵＩ）を表示する端末１０とを備える。【００３２】
ベストプラクティス抽出システム５００は、各プロジェクト３１０に関する情報を蓄積した情報蓄積ＤＢ（データベース）５２０と、実行システム３００から情報を取得して情報蓄積ＤＢ５２０に格納する情報取得処理部５１０と、情報蓄積ＤＢ５２０の情報を用いて、評価指標の要件に適切な開発環境の構成（例えば、ツール（ソフトウェア））を抽出する抽出処理部５３０とを備える。【００３３】
情報蓄積ＤＢ５２０には、各プロジェクト３１０のインスタンスから取得したＫＰＩ履歴情報Ｔ５００、各プロジェクトの構成変更履歴情報Ｔ６００、及び各インスタンスへのアクセス履歴情報Ｔ７００が格納されている。ＫＰＩ履歴情報Ｔ５００、構成変更履歴情報Ｔ６００、及びアクセス履歴情報Ｔ７００は、いずれも時系列データである。【００３４】
ここで、ＫＰＩ履歴情報Ｔ５００に格納するＫＰＩ（基礎情報）の例としては、コミット数（ソースコードを管理するインスタンスへの利用者のソースコードのアップロード数）やチャットに対する投稿数、またはツール上に登録された課題の登録数やクローズ数等である。また、構成変更履歴情報Ｔ６００に格納する情報の例としては、ツールのインスタンスの追加や削除、変更等である。また、アクセス履歴情報Ｔ７００に格納する対象のアクセスの例としては、ツールのインスタンスへのＨＴＴＰやＨＴＴＰＳのリクエスト等である。【００３５】
端末１０においてベストプラクティス表示画面Ｇ３００の評価指標選択領域Ｇ３１０に対して利用者が評価指標を指定すると、抽出処理部５３０は、情報蓄積ＤＢ５２０に格納されたデータを用い、評価指標に対する最適な構成を既存プロジェクトから検索して抽出し、最も良い評価指標を記録した際に、このプロジェクトで実際に使用されていたと推測される１以上のツールを抽出する。そして、抽出処理部５３０は、抽出結果をベストプラクティス表示画面Ｇ３００の構成表示選択領域Ｇ４００に表示させる。【００３６】
抽出処理部５３０は、例えば、指定された評価指標に関するＫＰＩの時系列データＧ５３１と、このプロジェクトで使われている（使われていた）１以上のツール（ツールＡ、ツールＢ）へのアクセス履歴の時系列データＧ５３２，Ｇ５３３を比較する。そして、抽出処理部５３０は、例えば、最も良いＫＰＩが記録されていた際に使用されていた（図１では、アクセスされていた）ツール（ツールＡ）を使用と判定し、アクセスされていなかったツール（ツールＢ）を不使用と判定する処理を行い、使用と判定されたツールの一覧を含む構成表示選択領域Ｇ４００を有するベストプラクティス表示画面Ｇ３００を、利用者の端末１０に表示させる。【００３７】
なお、各プロジェクトに環境を提供する実行システム３００は、事前に事業者が利用者に対して同意を得ておくことにより、事業者が各プロジェクト３１０の環境の情報（例えばアクセス履歴情報やリソースの使用に関する情報）を横断的に取得することが比較的容易であることから、ＰａａＳを前提とした構成としている。なお、実行システム３００は、各プロジェクトの情報が取得できるのであれば、それ以外の形態（ＩａａＳやＳａａＳ等）で実現される形態であってもよい。【００３８】
次に、実施例１を詳細に説明する。【００３９】
図２は、実施例１に係る計算機システムの全体構成図である。【００４０】
計算機システム１は、クラウドサービスを提供するクラウドシステム１００と、プロジェクト３１０を利用する利用者の端末１０とを備える。クラウドシステム（以下、クラウドという）１００と、端末１０とは、ネットワーク２０を介して接続されている。ネットワーク２０は、ＬＡＮであっても、ＷＡＮであってもよい。【００４１】
クラウド１００は、利用者が実際に利用するインスタンスを動作させる環境であるプロジェクト３１０を提供する実行システム３００と、利用者や管理者に対してプロジェクト３１０を管理するためのシステムを提供する管理システム２００（クラウド管理システムの一例）とを備える。【００４２】
管理システム２００は、物理的なハードウェアである複数のサーバ４００により構成されている。複数のサーバ４００は、管理システム２００内の図示しないネットワークを介して接続されている。サーバ４００は、プロセッサの一例としてのＣＰＵ４０１と、記憶デバイスの一例としてのメモリ４０２と、記憶デバイスの一例としての補助記憶装置４０３と、通信Ｉ／Ｆ４０４とを備える。通信Ｉ／Ｆ４０４は、例えば、有線ＬＡＮカードや無線ＬＡＮカードなどのインターフェースであり、管理システム２００内の図示しない通信路、又はネットワーク２０を介して他の装置（例えば、端末１０又は他のサーバ４００）と通信する。ＣＰＵ４０１は、メモリ４０２及び／又は補助記憶装置４０３に格納されているプログラムに従って各種処理を実行する。メモリ４０２は、例えば、ＲＡＭ（ＲＡＮＤＯＭ  ＡＣＣＥＳＳ  ＭＥＭＯＲＹ）であり、ＣＰＵ４０１で実行されるプログラムや、必要な情報を記憶する。補助記憶装置４０３は、例えば、ハードディスクやフラッシュメモリなどであり、ＣＰＵ４０１で実行されるプログラムや、ＣＰＵ４０１に利用されるデータを記憶する。【００４３】
管理システム２００は、Ｉ／Ｆシステム２１０と、ベストプラクティス抽出システム５００と、構成管理システム２２０とを備える。Ｉ／Ｆシステム２１０と、ベストプラクティス抽出システム５００と、構成管理システム２２０とは、複数のサーバ４００の計算機資源を用いて実現されている。すなわち、複数のサーバ４００のＣＰＵ４０１がメモリ４０２等のプログラムを実行することにより、Ｉ／Ｆシステム２１０と、ベストプラクティス抽出システム５００と、構成管理システム２２０とを実現している。なお、Ｉ／Ｆシステム２１０と、ベストプラクティス抽出システム５００と、構成管理システム２２０とのそれぞれは、複数のサーバ４００によって実現されてもよく、１つのサーバ４００によって実現されてもよく、サーバ仮想化技術により仮想化された仮想サーバによって実現されてもよい。【００４４】
Ｉ／Ｆシステム２１０は、利用者の端末１０に対して、クラウド１００の利用に関する情報を提示したり、利用者からの要求を受け付けたりするためのＧＵＩやＡＰＩ、または図示しない事業者の端末に対して、クラウド１００を管理するためのＧＵＩやＡＰＩを提供する。【００４５】
構成管理システム２２０は、Ｉ／Ｆシステム２１０から利用者の要求を受け、実行システム３００のプロジェクト３１０の構成を変更する処理や、実行システム３００の各種情報を取得してＩ／Ｆシステム２１０へ送る処理や、実行システム３００の各種情報を取得して記憶する処理等を行う。【００４６】
ベストプラクティス抽出システム５００は、情報取得処理部５１０と、情報蓄積ＤＢ５２０と、抽出処理部５３０とを備える。情報取得処理部５１０は、構成管理システム２２０から各種情報を取得する。情報蓄積ＤＢ５２０は、例えば、メモリ４０２及び／又は補助記憶装置４０３により構成され、情報取得処理部５１０が取得した情報を蓄積する。具体的には、情報蓄積ＤＢ５２０は、ＫＰＩ履歴情報Ｔ５００と、使用状況情報及び設定状態情報の一例である構成変更履歴情報Ｔ６００と、使用状況情報及び稼動状態情報の一例としてのアクセス履歴情報Ｔ７００とを格納する。情報蓄積ＤＢ５２０が格納する情報の詳細については後述する。【００４７】
抽出処理部５３０は、情報蓄積ＤＢ５２０に蓄積された情報に基づいて、所定の評価指標の評価に寄与している１以上のツール（ソフトウェア）を抽出する処理を行う。例えば、抽出処理部５３０は、プロジェクト３１０の中から所定の評価指標に対して評価が最も良い時に使用されていた１以上のツールを抽出する。情報取得処理部５１０と、抽出処理部５３０との具体的な構成及び処理については後述する。【００４８】
なお、図２においては、ベストプラクティス抽出システム５００を、クラウド１００の管理システム２００内部に備えた例を示しているが、ベストプラクティス抽出システム５００を、管理部システム２００の外部のネットワーク２０に接続された図示しないサーバに構築するようにし、ネットワーク２０を介して、Ｉ／Ｆシステム２１０と通信することにより、必要な情報の授受を行うようにしてもよい。【００４９】
実行システム３００は、利用者に対して提供される環境である１以上のプロジェクト３１０を備える。実行システム３００は、管理システム２００と同様に、物理的なハードウェアである複数のサーバ４００により構成されている。なお、サーバ４００の構成は、管理システム２００のサーバ４００と同様な構成である。実行システム３００においては、プロジェクト３１０間は論理的に分割されており、プロジェクト３１０に所属していない利用者によるこのプロジェクト３１０へのアクセスを遮断するようなアクセス制御が行われている。【００５０】
次に、本実施例に関わる各種情報について説明する。【００５１】
図３は、実施例１に係るツール管理情報の構成例を示す図である。【００５２】
ツール管理情報Ｔ１００は、各プロジェクト３１０で利用可能なツールの一覧を管理する情報である。ツール管理情報Ｔ１００は、Ｉ／Ｆシステム２１０、または構成管理システム２２０が保持する情報である。【００５３】
ツール管理情報Ｔ１００は、各ツールごとに、ツール名Ｔ１１０と、イメージＩＤ  Ｔ１２０と、機能フラグＴ１３０とのフィールドを含むレコードを格納する。【００５４】
ツール名Ｔ１１０には、ツールの名称（ツール名）が格納される。ツール名としては、例えば、ソースコードを管理するソフトウェア（ツール）であるＧｉｔｈｕｂ、Ｇｉｔｌａｂ、チャット機能を提供するＲｏｃｋｅｔ．ｃｈａｔ、Ｍａｔｔｅｒｍｏｓｔ（登録商標）、プロジェクトの進捗などを管理するＲｅｄｍｉｎｅ等がある。なお、本実施例の説明においては、実在するツール名称ではなく、便宜的に、ツールＡ、ツールＢ等のように表記する。【００５５】
イメージＩＤ  Ｔ１２０には、レコードに対応するツールのインスタンスを構築するための元となるイメージを識別するＩＤ（イメージＩＤ）が格納される。なお、イメージＩＤ  Ｔ１２０に、イメージＩＤの代わりに、イメージが格納されたパス等の情報を格納してもよい。また、イメージＩＤ  Ｔ１２０に、イメージＩＤのほかに、インスタンスを作成するために必要となる設定の情報を合わせて格納するようにしてもよい。ここで、イメージとしては、例えば、ディスクやファイルの集合や、仮想サーバのテンプレートがある。なお、このイメージは、イメージＩＤによって識別可能に管理されている。【００５６】
機能フラグＴ１３０は、ツールの有している機能を管理するフィールドであり、例えば、複数の機能ごとの個別機能フラグＴ１３１，Ｔ１３２，Ｔ１３３・・・のフィールドを含む。個別機能フラグＴ１３１等は、それぞれが機能に対応付けられており、レコードに対応するツールがその機能を有している場合には、「１」が設定され、その機能を有していない場合には、「０」が設定される。例えば、個別機能フラグＴ１３１は、コード管理機能に対応付けられ、個別機能フラグＴ１３２は、課題管理機能に対応付けられ、個別機能フラグＴ１３３は、チャット機能に対応付けられている。【００５７】
例えば、図３の２番目のレコードによると、ツールＢは、イメージＩＤがｔｏｏｌＢ．ｉｍｇであり、コード管理機能と、課題管理機能とを有していることがわかる。【００５８】
なお、図３においては、ツール管理情報Ｔ１００は、ツール毎に対応するレコードを管理する例を示しているが、例えば、ツールのバージョン毎に対応するレコードを管理するようにしてもよい。【００５９】
図４は、実施例１に係るＫＰＩ取得方法管理情報の構成例を示す図である。【００６０】
ＫＰＩ取得方法管理情報Ｔ２００は、ＫＰＩの種類と、各ＫＰＩの取得方法とを管理する情報である。ＫＰＩ取得方法管理情報Ｔ２００は、情報取得処理部５１０が保持する情報である。【００６１】
ＫＰＩ取得方法管理情報Ｔ２００は、ＫＰＩ名Ｔ２１０と、対象ツール名Ｔ２２０と、取得方法Ｔ２３０とのフィールドを含むレコードを格納する。ＫＰＩ名Ｔ２１０には、レコードに対応するＫＰＩの名称（ＫＰＩ名）が格納される。対象ツール名Ｔ２２０には、レコードに対応するＫＰＩの取得先となるツールの名称（ツール名）が格納される。対象ツール名Ｔ２２０に格納されるツール名は、ツール管理情報Ｔ１００のいずれかのレコードのツール名Ｔ１１０に記載されたツール名に対応する。取得方法Ｔ２３０には、レコードに対応するＫＰＩを取得するための方法（取得方法）が格納される。取得方法Ｔ２３０には、例えば、ＫＰＩを取得するために呼び出すべきプログラムの名称（プログラム名）が格納される。【００６２】
例えば、図４の一番上のレコードは、ＫＰＩの一例としてのコミット数は、ツールＡから取得可能であり、ｆｕｎｃ＿ｔｏｏｌＡ．ｓｈというプログラムを呼び出すことにより取得できることを示している。【００６３】
なお、ＫＰＩ取得方法管理情報Ｔ２００を、情報蓄積ＤＢ５２０に格納して管理するようにしてもよく、構成管理システム２２０が保持するようにしてもよい。ＫＰＩ取得方法管理情報Ｔ２００を、構成管理システム２２０が保持するようにした場合には、構成管理システム２２０が取得方法Ｔ２３０に格納されている取得方法を用いてＫＰＩの情報を取得し、取得した情報を情報取得処理部５１０が取得するようにすればよい。また、各ツールに、このツールにおけるＫＰＩの情報を取得して情報取得処理部５１０に送信するエージェントプログラムを組み込んでおくようにしてもよい。【００６４】
図５は、実施例１に係るプロジェクト管理情報の構成例を示す図である。【００６５】
プロジェクト管理情報Ｔ４００は、実行システム３００内に存在するプロジェクト３１０の情報を管理する。プロジェクト管理情報Ｔ４００は、抽出処理部５３０が保持する情報である。プロジェクト管理情報Ｔ４００は、プロジェクトごとに、プロジェクト名Ｔ４１０と、用途Ｔ４２０と、開始Ｔ４３０と、終了Ｔ４４０と、共有Ｔ４５０とのフィールドを含むレコードを格納する。【００６６】
プロジェクト名Ｔ４１０には、プロジェクトの名称（識別子）が格納される。用途Ｔ４２０には、プロジェクトの用途が格納される。プロジェクトの用途としては、事業者が事前に定義した選択肢から利用者によりプロジェクトの利用開始時に選択された用途である。具体的な用途としては、例えばＷｅｂサービスを開発する「Ｗｅｂサービス開発」や、分析アプリケーションを開発する「分析」等がある。また、用途Ｔ４２０に、Ｊａｖａ（登録商標）、Ｐｙｔｈｏｎ等の開発言語の名称やこれらを用いたフレームワークのリストを格納してもよく、開発のスタイル、例えば従来型のウォーターフォールモデルに基づく開発なのか、アジャイルに基づく開発なのかを示す情報や、開発期間や開発者のスキルレベル等を格納してもよく、利用者が自由に指定した情報を格納するようにしてもよい。【００６７】
開始Ｔ４３０には、レコードに対応するプロジェクトの開始時刻が格納される。終了Ｔ４４０には、レコードに対応するプロジェクトの終了時刻が格納される。なお、使用中であるプロジェクトのレコードにおいては、終了Ｔ４４０には、空値（Ｎｕｌｌ）が格納されている。【００６８】
共有Ｔ４５０には、プロジェクトの情報（本実施例では、ツールの設定値等）をこのプロジェクトに属さない利用者と共有しても良いかを示すフラグが格納される。例えば、共有Ｔ４５０には、プロジェクトに属していない利用者と情報の共有が可である場合には、「Ｙｅｓ」が格納され、情報の共有が不可である場合には、「Ｎｏ」が格納される。【００６９】
例えば、図５の１番目のレコードによると、プロジェクト名Ｔ４１０がＰｒｏｊｅｃｔ−Ａであるプロジェクトは、Ｗｅｂサービスを開発する用途のプロジェクト（用途Ｔ４２０の値）であり、利用の開始が２０１６年１１月３０日９時（開始Ｔ４３０の値）であり、終了が２０１６年１２月３１日１７時（終了Ｔ４４０の値）であり、プロジェクトの内容をプロジェクトに属さない他の利用者に開示してよい（共有Ｔ４５０の値）ことがわかる。【００７０】
なお、プロジェクト管理情報Ｔ４００を、情報蓄積ＤＢ５２０に格納して管理するようにしてもよい。【００７１】
図６は、実施例１に係る構成変更履歴情報の構成例を示す図である。【００７２】
構成変更履歴情報Ｔ６００は、プロジェクト毎のツールの構成の変更履歴を管理する情報である。構成変更履歴情報Ｔ６００は、情報蓄積ＤＢ５２０が保持する情報である。構成変更履歴情報Ｔ６００は、プロジェクト毎に１以上のレコードを管理する。構成変更履歴情報Ｔ６００のレコードは、プロジェクト名Ｔ６１０と、インスタンスＩＤ  Ｔ６２０と、ツール名Ｔ６３０と、種類Ｔ６４０と、時刻Ｔ６５０と、設定値Ｔ６６０とのフィールドを含む。【００７３】
プロジェクト名Ｔ６１０には、プロジェクト名が格納される。インスタンスＩＤ  Ｔ６２０には、レコードに対応するプロジェクトで使用しているツールのインスタンスを実行システム３００内で一意に識別するための識別子（インスタンスＩＤ）が格納される。ツール名Ｔ６３０には、レコードに対応するプロジェクトで使用しているツールの名称が格納される。種類Ｔ６４０には、レコードに対応するプロジェクトにおけるツールのインスタンスに関する変更の種類が格納される。ここで、インスタンスに関する変更の種類としては、例えば、ツールのインスタンスの利用を開始したことを示す利用開始（Ｓｔａｒｔ）、ツールのインスタンスを変更したことを示す変更（Ｃｈａｎｇｅ）、及びツールのインスタンスの利用を終了したことを示す終了（Ｓｔｏｐ）がある。【００７４】
時刻Ｔ６５０には、変更が発生した時刻が格納される。設定値Ｔ６６０には、変更時に使用された設定値に関する情報が格納される。設定値Ｔ６６０には、例えば、設定値を所定の書式（例えばｙｍｌと呼ばれる書式）で記述した設定ファイルのパスが格納される。設定ファイルは、例えば、変数名（キー値）とその値との一覧が格納されたものである。なお、設定値Ｔ６６０に格納する設定に関する情報としては、ファイル以外の形式、例えば設定値の各フィールドに直接変数名と値との一覧が格納されている形式であってもよい。【００７５】
構成変更履歴情報Ｔ６００によると、例えば、プロジェクト名Ｔ６１０がＰｒｏｊｅｃｔ−Ａであるプロジェクトでは、ツールＡ（インスタンスＩＤがツールＡ−Ａ）と、ツールＣ（インスタンスＩＤがツールＣ−Ａ）とを２０１６年１２月１日９時に利用開始し、ツールＣ（インスタンスＩＤがツールＣ−Ａ）を２０１６年１２月１５日１７時に利用終了していることがわかる。また、それぞれのツールで使われた設定は、設定値Ｔ６６０に格納された、ｔｏｏｌＡ−ａ１．ｙｍｌ、ｔｏｏｌＣ−ａ１．ｙｍｌを参照することにより把握することができる。また、構成変更履歴情報Ｔ６００によると、Ｐｒｏｊｅｃｔ−Ａであるプロジェクトでは、２０１６年１２月１５日９時に、ツールＤ（インスタンスＩＤがツールＤ−Ａ）を利用開始し、２０１６年１２月１５日１２時に、設定の変更を行ったことがわかる。【００７６】
図７は、実施例１に係るＫＰＩ履歴情報の構成例を示す図である。【００７７】
ＫＰＩ履歴情報Ｔ５００は、各プロジェクトにおける１以上のＫＰＩの値を時系列で管理する情報である。ＫＰＩ履歴情報Ｔ５００は、情報蓄積ＤＢ５２０が保持する情報である。ＫＰＩ履歴情報Ｔ５００のレコードは、プロジェクト名Ｔ５１０と、ＫＰＩ名Ｔ５２０と、インスタンスＩＤ  Ｔ５３０と、時刻Ｔ５４０と、値Ｔ５５０とのフィールドを含む。【００７８】
プロジェクト名Ｔ５１０には、プロジェクト名が格納される。ＫＰＩ名Ｔ５２０には、ＫＰＩ名が格納される。インスタンスＩＤ  Ｔ５３０には、レコードに対応するプロジェクトで使用しているツールのインスタンスＩＤが格納される。時刻Ｔ５４０には、ＫＰＩの値が取得された時刻が格納される。値Ｔ５５０には、取得されたＫＰＩの値が格納される。【００７９】
ＫＰＩ履歴情報Ｔ５００によると、例えば、プロジェクト名Ｔ５１０がＰｒｏｊｅｃｔ−Ａであるプロジェクトにおける、インスタンスＩＤがツールＡ−Ａのツールから取得されたＫＰＩ（コミット数）や、インスタンスＩＤがツールＣ−Ａのツールから取得されたＫＰＩ（チャット投稿数）についての、時系列のデータ（時刻Ｔ５４０の時刻と値Ｔ５５０の値）がわかる。例えば、プロジェクト名Ｔ５１０がＰｒｏｊｅｃｔ−Ａであるプロジェクトにおける、インスタンスＩＤがツールＡ−Ａのツールにおけるコミット数が、２０１６年１２月１日９時からの１時間（時刻Ｔ５４０の値）で１０回（値Ｔ５５０の値）あったことがわかる。なお、図７のＫＰＩ履歴情報Ｔ５００の例では、ＫＰＩを取得する間隔（サンプリング間隔）を１時間としているが、サンプリング間隔は１時間でなくてもよい。なお、構成変更履歴情報Ｔ６００を参照することにより、ＫＰＩ履歴情報Ｔ５００のインスタンスＩＤ  Ｔ５３０のインスタンスＩＤに対応するツールのツール名を把握することができる。【００８０】
図８は、実施例１に係るアクセス履歴情報の構成例を示す図である。【００８１】
アクセス履歴情報Ｔ７００は、プロジェクト毎に、各ツールのインスタンスへのアクセスの履歴に関する情報を管理する情報であり、情報蓄積ＤＢ５２０が保持する情報である。アクセス履歴情報Ｔ７００においては、プロジェクトの一つのインスタンスに対するアクセスごとに一つのレコードが追加される。ここで、アクセスとは、或るツールのインスタンスに対して、利用者または別のツールから情報の取得または設定要求が、予め定められた通信プロトコル（ＨＴＴＰやＨＴＴＰＳ）により行われることを示す。したがって、アクセスがあった場合には、その時点においてツールのインスタンスが使用されていたことがわかる。アクセス履歴情報Ｔ７００に格納される情報は、実行システム３００に備えられた図示しないルータから取得するようにしてもよく、また、各ツールのインスタンスにエージェントを埋め込んでおき、そのエージェントから取得するようにしてもよい。【００８２】
アクセス履歴情報Ｔ７００のレコードは、プロジェクト名Ｔ７１０と、アクセス先インスタンスＩＤ  Ｔ７２０と、時刻Ｔ７３０と、アクセス元Ｔ７４０とのフィールドを含む。プロジェクト名Ｔ７１０には、プロジェクト名が格納される。アクセス先インスタンスＩＤ  Ｔ７２０には、アクセス先のツールのインスタンスのインスタンスＩＤが格納される。アクセス先インスタンスＩＤ  Ｔ７２０に格納されるインスタンスＩＤは、構成変更履歴情報Ｔ６００のインスタンスＩＤ  Ｔ６２０に格納されているインスタンスＩＤのいずれかである。時刻Ｔ７３０には、アクセスされた時刻が格納される。アクセス元Ｔ７４０には、アクセスを行ったアクセス元を識別する情報（例えば、利用者のＩＤ、インスタンスＩＤ等）が格納される。本実施形態では、アクセス元Ｔ７４０には、例えば、利用者からのアクセスの場合には、「ＵＳＥＲ：」タグに対して、利用者ＩＤを付加した情報が格納され、ツールのインスタンスからのアクセスの場合には「ＴＯＯＬ：」タグに対して、インスタンスＩＤを付加した情報が格納される。【００８３】
例えば、１行目のレコードによると、プロジェクト名Ｔ７１０がＰｒｏｊｅｃｔ−Ａであるプロジェクトにおいて、アクセス先インスタンスＩＤ  Ｔ７２０がツールＡ−Ａであるインスタンスに対して、２０１６年１２月１日９時５分に、ユーザＡ１からアクセスがあることがわかる。また、３行目のレコードによると、プロジェクト名Ｔ７１０がＰｒｏｊｅｃｔ−Ａであるプロジェクトにおいて、アクセス先インスタンスＩＤ  Ｔ７２０がツールＡ−Ａであるインスタンスに対して、２０１６年１２月１日１０時に別のインスタンス（インスタンスＩＤがツールＣ−Ａ）からアクセスがあったことがわかる。なお、アクセス履歴情報Ｔ７００において、各アクセスにおける、通信プロトコルや通信の内容に関する情報をさらに保持するようにしてもよい。【００８４】
図９は、実施例１に係るＫＰＩ変換方法管理情報の構成例を示す図である。【００８５】
ＫＰＩ変換方法管理情報Ｔ３００は、評価指標に対応するＫＰＩと、評価指標を算出するための処理と、使用していたツールのインスタンスを抽出する処理とを管理する情報である。ＫＰＩ変化方法管理情報Ｔ３００は、抽出処理部５３０を構成するプログラム中に保持されている情報である。なお、ＫＰＩ変化方法管理情報Ｔ３００を情報蓄積ＤＢ５２０が保持するようにしてもよい。【００８６】
ＫＰＩ変換方法管理情報Ｔ３００は、評価指標の種類ごとに、レコードを格納する。  ＫＰＩ変換方法管理情報Ｔ３００のレコードは、評価指標Ｔ３１０と、参照ＫＰＩ  Ｔ３２０と、算出処理Ｔ３３０と、関係抽出処理Ｔ３４０とのフィールドを含む。【００８７】
評価指標Ｔ３１０には、システムを評価する要件とする評価指標が格納される。参照ＫＰＩ  Ｔ３２０には、レコードに対応する評価指標を算出するために参照するＫＰＩの識別子が格納される。算出処理Ｔ３３０には、レコードに対応する評価指標の評価値を算出するための処理を示す情報（例えば、評価値を算出する処理のプログラム名）が格納される。算出処理Ｔ３３０に格納されたプログラム名のプログラムは、抽出処理部５３０が実行する一部の処理を実現するプログラムである。関係抽出処理Ｔ３４０には、評価値に対応する時点において実際に使用していたツールを抽出する処理を示す情報（例えば、抽出する処理のプログラム名）が格納される。関係抽出処理Ｔ３４０に格納されたプログラム名のプログラムは、抽出処理部５３０が実行する一部の処理を実現するプログラムである。【００８８】
評価指標Ｔ３１０に格納される評価指標の１つの種類としては、或る期間におけるＫＰＩの合計値がある。このような評価指標としては、或るプロジェクトの１日のコミット数の合計値である日次コミット数や、或るプロジェクトの１日のチャットの投稿数の合計である日次チャット投稿数がある。【００８９】
ＫＰＩ変換方法管理情報Ｔ３００の１行目のレコードの算出処理Ｔ３３０に格納されているｄａｙ＿ｃｏｍｍｉｔ．ｓｈは、プロジェクト名と、コミット数との入力を受けて、ＫＰＩ履歴情報Ｔ５００のプロジェクト名及びコミット数に対応するレコードを参照して、このプロジェクトの開始から終了までの日次コミット数を計算し、最も良い値（ここでは日次コミット数が最大の値）を評価値として出力するプログラムの名前である。【００９０】
また、関係抽出処理Ｔ３４０に格納されているｅｖａｌ＿ｄａｙ＿ｃｏｍｍｉｔ．ｓｈは、算出処理Ｔ３３０に格納されたプログラムにより算出されたプロジェクトの評価に寄与した（すなわち使用されていたと推定される）ツールを抽出するプログラムの名前である。このｅｖａｌ＿ｄａｙ＿ｃｏｍｍｉｔ．ｓｈで示されるプログラムは、プロジェクト名と、ＫＰＩ履歴情報Ｔ５００と、構成変更履歴情報Ｔ６００と、アクセス履歴情報Ｔ７００とを入力として、ツールの使用・不使用を判定し、使用と判定したツールの一覧を出力する処理を実現する。この処理により、プロジェクトにおいて、実際に使用されていたツールを適切に抽出することができる。これにより、使用可能となっているが、使用されていなかったツールが抽出されてしまうことを防止することができる。【００９１】
ｅｖａｌ＿ｄａｙ＿ｃｏｍｍｉｔ．ｓｈで示されるプログラムにより実行する処理の一例としては、評価値（ここでは、最大の日次コミット数）を記録したタイミングにおいて、各ツールにアクセスがあったか否か（すなわち、アクセス履歴情報Ｔ７００にツールのアクセスを示すレコードが格納されているか否か）に基づいて、ツールを使用しているか否かを判定する処理がある。【００９２】
また、ｅｖａｌ＿ｄａｙ＿ｃｏｍｍｉｔ．ｓｈで示されるプログラムにより実行する処理の別の例としては、以下の式（１）で表される評価関数ｆ（ｘ，ｔ）が所定の閾値以上であるツールや、評価関数が上位にあるツールを使用していると判定する処理がある。
【数１】
0006678813.tif 000002
【００９３】
ここで、ｔ０は、評価値を記録したタイミングであり、Ａ（ｘ）（ｔ）は、インスタンスＩＤがｘであるインスタンスの時刻ｔにおけるアクセス数である。【００９４】
また、評価指標Ｔ３１０の別の種類としては、プロジェクト開始から終了までの期間の合計値や平均値がある。この種の評価指標としては、合計コミット数、合計チャット投稿数、平均コミット数、平均チャット投稿数等がある。合計コミット数とは、プロジェクトの開始から終了までのコミット数の合計値であり、平均コミット数とは、プロジェクトの合計コミット数をプロジェクトの開始から終了までの期間で割ったものである。【００９５】
ＫＰＩ変換方法管理情報Ｔ３００の２行目のレコードは、評価指標を平均コミット数とする場合のレコードである。このレコードの算出処理Ｔ３３０に格納されているａｖｅ＿ｃｏｍｍｉｔ．ｓｈで示されるプログラムは、プロジェクト名とＫＰＩ履歴情報Ｔ５００とを入力とし、このプロジェクトの開始から終了までのコミット数の平均値を評価値として出力する処理を実現する。【００９６】
このレコードの関係抽出処理Ｔ３４０のｅｖａｌ＿ａｖｅ＿ｃｏｍｍｉｔ．ｓｈで示されるプログラムは、評価に寄与したツールを抽出する処理を実現するプログラムであり、プロジェクト名と、ＫＰＩ履歴情報Ｔ５００と、構成変更履歴情報Ｔ６００と、アクセス履歴情報Ｔ７００とを入力として、ＫＰＩの変化と、ツール（インスタンス）のアクセス履歴との間に正の相関があるツールを使用しているものと判定し、使用していると判定したインスタンスのツールの一覧を出力する処理を行う。【００９７】
また、ｅｖａｌ＿ａｖｅ＿ｃｏｍｍｉｔ．ｓｈで示されるプログラムにより実行される別の処理としては、アクセス数の平均が一定値以上であるインスタンスや、アクセス数の合計値が一定以上であるインスタンス、または定期的にアクセスがあるインスタンスのツールを使用しているツールと判定して、使用していると判定したツールの一覧を出力する処理がある。【００９８】
なお、このような種類の評価指標の場合には、終了していないプロジェクトを対象から除外してもよいし、処理を実施する時刻までの値を用いて処理を行うようにしてもよい。。【００９９】
次に、計算機システム１における処理動作について説明する。【０１００】
まず、情報取得処理部５１０による情報取得処理について説明する。【０１０１】
図１０は、実施例１に係る情報取得処理のフローチャートである。【０１０２】
情報取得処理は、例えば、一定間隔で実行される。なお、情報取得処理を、構成管理システム２２０からの変更やイベント発生の通知を契機として実行するようにしてもよい。【０１０３】
情報取得処理部５１０は、構成管理システム２２０から必要となる各種情報（プロジェクト管理情報Ｔ４００の各フィールドに格納する情報、ＫＰＩ履歴情報Ｔ５００の各フィールドに格納する情報、構成変更履歴情報Ｔ６００の各フィールドに格納する情報、アクセス履歴情報Ｔ７００の各フィールドに格納する情報等）を取得する（Ｓ１００）。ここで、ＫＰＩに関する情報を取得する場合には、ＫＰＩ取得方法管理情報Ｔ２００の取得方法Ｔ２３０に格納されたプログラムを呼び出して実行することで、情報を取得することができる。なお、構成管理システム２２０から情報を取得せずに、例えば、情報取得処理部５１０がプロジェクト３１０のインスタンスに直接アクセスすることで必要な情報を取得するようにしてもよく、情報取得処理部５１０が、インスタンスに事前に組み込まれたエージェントプログラムから必要な情報を取得するようにしてもよい。【０１０４】
次いで、情報取得処理部５１０は、取得した情報に基づいて、情報蓄積ＤＢ５２０にＫＰＩ履歴情報Ｔ５００、構成変更履歴情報Ｔ６００、アクセス履歴情報Ｔ７００を格納する（Ｓ１１０）。なお、ステップＳ１００において、過去に取得した情報との差分の情報のみを取得するようにしている場合には、情報取得処理部５１０は、取得した差分の情報に基づいて、情報蓄積ＤＢ５２０のＫＰＩ履歴情報Ｔ５００、構成変更履歴情報Ｔ６００、アクセス履歴情報Ｔ７００に、それぞれ差分の情報に対応するレコードを追加する。【０１０５】
次に、抽出処理部５３０による抽出処理について説明する。【０１０６】
図１１は、実施例１に係る抽出処理のフローチャートである。【０１０７】
抽出処理は、例えば、一定間隔で実行される。【０１０８】
まず、抽出処理部５３０は、プロジェクト管理情報Ｔ４００を参照し、用途Ｔ４２０の用途ごとにプロジェクトを分類する（Ｓ２００）。なお、プロジェクトを用途ごとに分類する必要がない場合には、ステップＳ２００を省略してもよい。【０１０９】
次いで、抽出処理部５３０は、ステップＳ２００で分類した各用途のそれぞれの用途を処理対象としてループＡの処理（ループＢ、Ｓ２１０〜Ｓ２３０）を行う。以下、抽出処理の説明において、処理対象の用途を対象用途という。【０１１０】
ループＡの処理においては、抽出処理部５３０は、対象用途のプロジェクト群に対して、ＫＰＩ変換方法管理情報Ｔ３００の評価指標Ｔ３１０に格納された各評価指標のそれぞれの評価指標を処理対象としてループＢの処理（Ｓ２１０〜Ｓ２３０）を行う。以下、抽出処理の説明において、処理対象の評価指標を対象評価指標という。【０１１１】
ループＢの処理においては、抽出処理部５３０は、ＫＰＩ履歴情報Ｔ５００の各レコードを入力として、ＫＰＩ変換方法管理情報Ｔ３００の対象評価指標に対応するレコードの算出処理Ｔ３３０に格納されているプログラム名のプログラムの処理を行うことで、各プロジェクトの評価値（例えば、日次コミット数の最大値、平均コミット数等）を算出する（Ｓ２１０）。【０１１２】
次いで、抽出処理部５３０は、複数のプロジェクトの中から、評価指標の評価が最も高いプロジェクト（例えば、値が高いほど評価が高い評価値であれば、最も高い評価値のプロジェクト：高効率グループ）を選択する（Ｓ２２０）。【０１１３】
次いで、抽出処理部５３０は、選択したプロジェクトと、ＫＰＩ履歴情報Ｔ５００と、構成変更履歴情報Ｔ６００と、アクセス履歴情報Ｔ７００とを入力とし、対象評価指標に対応するレコードの関係抽出処理Ｔ３４０に格納されているプログラム名のプログラム処理を実行することにより、このプロジェクトにおいて評価に寄与したツール（値が高いほど評価が高いことを示す評価値であれば、評価値の向上に影響が強いツール）の一覧を抽出し、抽出結果をメモリ４０２、補助記憶装置４０３等に記憶する（Ｓ２３０）。ここで、抽出結果には、抽出したツールとともに、用途、評価指標、評価指標における評価値、そのツールの設定値のパス名等を含めてもよい。【０１１４】
そして、抽出処理部５３０は、ループＢの処理を全ての評価指標を処理対象として実行し、全ての評価指標を処理対象として処理を終了した後に、ループＢを抜ける。次いで、抽出処理部５３０は、未処理の用途のプロジェクトを処理対象として、ループＡの処理を実行し、全ての用途のプロジェクトを処理対象として処理を終了した後に、ループＡを抜けて抽出処理を終了する。【０１１５】
なお、上記した抽出処理を、利用者からの処理要求を受けた場合、すなわち、端末１０からの処理要求を受け付けた場合に実行するようにしてもよい。この場合において、処理要求に要求者からの評価指標の指定がある場合には、ループＢにおいて、指定された評価指標のみを処理の対象とするようにしてもよい。また、利用者からの処理要求を受け付けて処理を行った場合には、ループＡの処理を終えた後に、後述する図１３に示すベストプラクティス表示画面Ｇ３００の構成表示選択領域Ｇ４００に、抽出したツールの一覧を表示させる処理を行うようにしてもよい。【０１１６】
また、上記した抽出処理を、或るタイミングで１回実行し、それ以降は、処理結果に影響を与える可能性がある状況が発生した場合（例えば、プロジェクトの構成変更が発生した場合や、算出処理Ｔ３３０のプログラムによって算出される評価値が最も良いプロジェクトが変更される可能性がある場合等）において、影響を受ける部分だけの処理を実行するようにしてもよい。【０１１７】
また、上記した例では、ステップＳ２２０では、評価が最も良い一つのプロジェクトを対象として、使用しているツールの一覧を取得するようにしていたが、これに限られず、例えば、評価が上位の複数のプロジェクトのそれぞれを対象として、使用しているツールの一覧を取得するようにしてもよい。また、ツール（インスタンス）の評価を、例えば、評価関数ｆ（ｘ，ｔ）に示すように数値で算出できる場合には、ツール毎に算出された数値を正規化した値を対応付けた一覧を取得するようにしてもよい。【０１１８】
次に、計算機システム１において使用する画面について説明する。【０１１９】
図１２は、実施例１に係る環境構築画面の一例を示す図である。【０１２０】
環境構築画面Ｇ１００は、実行システム３００にプロジェクトの開発環境を構築する際に利用者が用いるＧＵＩである。環境構築画面Ｇ１００は、例えば、Ｉ／Ｆシステム２１０により、利用者の端末１０に対して提供される画面である。【０１２１】
環境構築画面Ｇ１００は、使用可能なツールの一覧を表示するとともに、使用するツールの選択を受け付けるためのテーブルを表示するテーブル選択領域Ｇ２００と、プロジェクトの用途を選択するための用途選択領域Ｇ１１０と、構築したプロジェクトの開発環境の情報を他の利用者と共有することに同意するか否かを入力するための同意用チェックボックスＧ１２０と、現在の入力に対応する開発環境の構築の申し込みを指示するためのＡｐｐｌｙボタンＧ１３０と、現在の入力に対応する開発環境の構築の申し込みをキャンセルするためのキャンセルボタンＧ１４０と、を有する。【０１２２】
テーブル選択領域Ｇ２００には、選択可能なツール名の一覧が表示されるツール名領域Ｇ２２０と、ツール名のツールを使用するか否かを指定するためのチェックボックスＧ２１０と、各ツールの分類が表示される分類表示領域Ｇ２３０とが表示される。なお、ツール名領域Ｇ２２０には、ツール管理情報Ｔ１００のツール名Ｔ１１０に格納されているツール名が表示される。【０１２３】
この環境構築画面Ｇ１００において、用途選択領域Ｇ１１０において選択された用途が、プロジェクト管理情報Ｔ４００の用途Ｔ４２０に格納される用途に反映され、同意チェックボックスＧ１２０に対するチェック結果が、共有Ｔ４５０の値に反映されることとなる。【０１２４】
なお、環境構築画面Ｇ１００において、用途入力領域Ｇ１１０や、同意用チェックボックスＧ１２０を表示しないようにしてもよい。このようにした場合には、用途はデフォルト値とし、共有選択はデフォルト値（一律で共有に同意、又は共有に不同意）としてもよい。【０１２５】
図１３は、実施例１に係るベストプラクティス表示画面の一例を示す図である。【０１２６】
ベストプラクティス表示画面Ｇ３００は、利用者からの要求を受け付け、プロジェクトの開発環境に最も適した構成（ベストプラクティス）を提供するためのＧＵＩである。ベストプラクティス表示画面Ｇ３００は、例えば、Ｉ／Ｆシステム２１０を介して利用者の端末１０に対して提供される画面である。【０１２７】
ベストプラクティス表示画面Ｇ３００は、評価指標の選択を受け付ける評価指標選択領域Ｇ３１０と、評価指標選択領域Ｇ３１０で選択された評価指標において最良の構成をテーブル形式で表示するとともに、構築する構成を選択するための構成表示選択領域Ｇ４００と、プロジェクト３１０のシステムの構築の指示を受け付ける構築ボタンＧ３２０と、ベストプラクティス表示画面Ｇ３００を閉じる指示を受け付けるＣｌｏｓｅボタンＧ３３０と、を有する。【０１２８】
評価指標選択領域Ｇ３１０は、ＫＰＩ変換方法管理情報Ｔ３００の評価指標Ｔ３１０に格納された各評価指標がコンボボックスのような形態で選択可能に表示される。評価指標選択領域Ｇ３１０において評価指標が選択されると、選択された評価指標の情報が、Ｉ／Ｆシステム２１０を介してベストプラクティス抽出システム５００の抽出処理部５３０に送信される。【０１２９】
構成表示選択領域Ｇ４００には、評価指標選択領域Ｇ３１０で選択された評価指標の評価が最も高くなる開発環境の構成の候補が用途ごとに表示される。なお、評価指標選択領域Ｇ３１０で評価指標が選択されていない場合には、何も表示されていない状態となっている。【０１３０】
構成表示選択領域Ｇ４００には、用途表示領域Ｇ４２０と、評価値表示領域Ｇ４３０と、ツール表示領域Ｇ４４０と、設定値表示領域Ｇ４５０と、ラジオボタンＧ４１０とが表示される。【０１３１】
用途表示領域Ｇ４２０には、用途が表示される。ツール表示領域Ｇ４４０には、評価の高いツール名が表示される。評価値表示領域Ｇ４３０には、ツール表示領域Ｇ４４０に表示されたツールについての評価値が表示される。設定値表示領域Ｇ４５０には、他の利用者によるツールに対する設定値が格納された設定ファイルのパス名が表示される。なお、他の利用者がツールに対する設定値の共有に同意していない場合には、設定値表示領域Ｇ４５０には、パス名が表示されない。設定値表示領域Ｇ４５０のパス名が、利用者により選択された場合に設定内容を表示させるようにしてもよい。【０１３２】
ラジオボタンＧ４１０は、構成表示選択領域Ｇ４００の中から構築する構成を選択するためのボタンである。【０１３３】
ラジオボタンＧ４１０により構築する構成が選択されている場合において、構築ボタンＧ３２０が押下されると、選択された構成内容（用途や、選択したツール名等）が、Ｉ／Ｆシステム２１０を介して実行システム３００に送信される。実行システム３００では、送信された構成内容に基づいて、新しいプロジェクト３１０の環境を構築する。この際に、構成内容に含まれるツールに対応する他の利用者の設定ファイルについて、他の利用者が共有を同意している場合には、実行システム３００は、他の利用者の設定ファイルを複製して、プロジェクト３１０のツールを設定する。【０１３４】
ここで、評価指標選択領域Ｇ３１０において評価指標が選択され、選択された評価指標の情報が、Ｉ／Ｆシステム２１０を介してベストプラクティス抽出システム５００の抽出処理部５３０に送信されてから、構成表示選択領域Ｇ４００に、評価指標選択領域Ｇ３１０で選択された評価指標の評価が最も高くなる開発環境の構成の候補が用途ごとに表示されるまでの処理について説明する。【０１３５】
抽出処理部５３０は、選択された評価指標の情報を受信すると、メモリ４０２や補助記憶装置４０３に格納された抽出処理の処理結果の中から、受信した評価指標に対応するツールの情報を選択し、選択したツールに対応する、用途、評価値及び設定値を特定して、特定した用途を用途表示領域Ｇ４２０に表示させ、ツール名をツール表示領域Ｇ４４０に表示させ、設定値を設定値表示領域Ｇ４５０に表示させ、評価値を評価値表示領域Ｇ４３０に表示させるように、Ｉ／Ｆシステム２１０に指示を送信する。この結果、Ｉ／Ｆシステム２１０は、端末１０に表示させるベストプラクティス表示画面Ｇ３００における構成表示選択領域Ｇ４００の用途表示領域Ｇ４２０、ツール表示領域Ｇ４４０、設定値表示領域Ｇ４５０、及び評価値表示領域Ｇ４３０に指示に従った内容を表示させる。【０１３６】
なお、図１３に示すベストプラクティス表示画面Ｇ３００では、用途ごとに１つのプロジェクトの構成を表示するようにしているが、これに限られず、１つの用途に対して、評価が上位の複数の構成を表示するようにしてもよい。また、ベストプラクティス表示画面Ｇ３００では、使用していると判定されたツールのみを表示するようにしているが、関係抽出処理部５３０が、評価を数値で算出するようにしている場合には、このプロジェクトで使用していた全てのツールについて、評価値を正規化した値と対応付けて表示するようにしてもよい。
【実施例２】
【０１３７】
次に、実施例２について説明する。【０１３８】
実施例２においては、ツール及びそのツールの機能と、評価指標とを管理し、評価指標の評価に寄与するツールの機能を利用者に提供できるようにしている。【０１３９】
図１４は、実施例２に係るＫＰＩ取得方法管理情報の構成例を示す図である。なお、図４と同様な構成には、同一の符号を付している。【０１４０】
実施例２に係るベストプラクティス抽出システム５００は、図４に示す実施例１のＫＰＩ取得方法管理情報Ｔ２００の代わりに、ＫＰＩ取得管理情報Ｔ８００を備える。【０１４１】
ＫＰＩ取得管理情報Ｔ８００のレコードは、ＫＰＩ取得方法管理情報Ｔ２００のレコードに、機能Ｔ８１０のフィールドを追加されたレコードである。機能Ｔ８１０には、レコードに対応するＫＰＩを取得できるツールが有する機能が格納される。このような構成により、ＫＰＩ名Ｔ２１０のＫＰＩを、ツールのどの機能から取得できるかということを把握できる。【０１４２】
ここで、課題管理機能は、ツール管理情報Ｔ１００の機能フラグＴ１３０に設定されているように、ツールＡ、ツールＢ、ツールＥが持っている。このＫＰＩ取得方法管理情報Ｔ８００によると、ＫＰＩ名Ｔ２１０の課題クローズ数は、課題管理機能（機能Ｔ８１０の値）から取得できるものであり、課題管理機能を有するツールは対象ツール名Ｔ２２０に格納されているツールＡ、ツールＢ、ツールＥであることがわかる。【０１４３】
このような構成において、抽出処理部５３０は、図１１に示す抽出処理のＳ２３０において、抽出したツールに対して、ツールの機能を対応付けた抽出結果を格納する。そして、抽出処理部５３０は、図１３に示すベストプラクティス表示画面Ｇ３００の構成表示選択領域Ｇ４００において、ツールの機能についても表示するように、Ｉ／Ｆシステム２１０に指示を出す。これにより、利用者は、ベストプラクティス表示画面Ｇ３００を参照して、評価指標の評価に寄与するツールの機能についても把握することができる。
【実施例３】
【０１４４】
次に、実施例３について説明する。【０１４５】
実施例１では、ツールの使用・不使用を判断するために、アクセス履歴情報Ｔ７００を用いる例を示していたが、実施例３では、アクセス履歴情報Ｔ７００と異なる情報を用いてツールの使用・不使用を判定するようにしている。【０１４６】
本実施例では、情報取得処理部５１０は、実行システム３００において各ツールに割り当てられている計算機資源（ＣＰＵの使用量、メモリ使用量の少なくとも一方）のこのツールを利用していない場合の使用量（不使用時使用量）を予め取得して記憶している。そして、抽出処理部５３０は、プロジェクトのインスタンスについて使用・不使用を判定する場合には、その時点におけるこのインスタンスに割り当てられている計算機資源の使用量（現在使用量）を実行システム３００等から取得し、現在使用量と不使用時使用量との差分が所定値以下である場合には、ツールを不使用と判定し、差分が所定値を超える場合には、ツールを使用と判定する。これにより、アクセス履歴情報Ｔ７００によらずにツールの使用・不使用を適切に判定することができる。【０１４７】
上記に代えて、次のようにツールの使用・不使用を判定するようにしてもよい。すなわち、情報取得処理部５１０が、実行システム３００において、各ツールの不使用時に出力されるログの内容やログの量を取得する。そして、抽出処理部５３０は、プロジェクトのインスタンスについて使用・不使用を判定する場合には、その時点におけるこのインスタンスのログを収集し、使用していない時のログと異なる内容のログが出力されている数や、出力されているログの量の不使用時の量との差分を特定し、これらのいずれかに基づいて、インスタンス（ツール）の使用・不使用を判定する。
【実施例４】
【０１４８】
次に、実施例４について説明する。なお、実施例１〜３との差異を中心に説明する。【０１４９】
上記した実施例１〜３では、いずれも評価指標とプロジェクト内のツールの使用・不使用との関係の抽出を、このプロジェクト内の情報のみを用いて判定するようにしていた。実施例４においては、実行システム３００で運用されている複数のプロジェクトの各種情報に基づいて、評価指標とツールの寄与との関係を学習し、その学習結果を利用するようにしている。【０１５０】
本実施例の抽出処理部５３０は、内部に学習モジュールを備えている。学習モジュールは、過去の履歴情報を教師情報として機械学習を行い、学習した結果に応じた処理を行うモジュールである。このような機械学習を行うモジュールとしては、ニューラルネットワークで構成されたモジュールやサポートベクターマシン等がある。【０１５１】
実施例４では、抽出処理部５３０が、ＫＰＩ変換方法管理情報Ｔ３００の算出処理Ｔ３３０や関係抽出処理Ｔ３４０に格納されているプログラムの処理を実行していたものを、学習モジュールによる処理に代えたものである。【０１５２】
図１５は、実施例４に係る抽出処理のフローチャートである。なお、図１１と同様な処理については、同一の符号を付し、重複する説明を省略する。【０１５３】
抽出処理部５３０は、ステップＳ２００で分類した各用途のそれぞれの用途を処理対象としてループＣの処理（ループＤ、Ｓ２５０）を行う。以下、抽出処理の説明において、処理対象の用途を対象用途という。【０１５４】
ループＣの処理においては、抽出処理部５３０は、対象用途のプロジェクト群に対して、ＫＰＩ変換方法管理情報Ｔ３００の評価指標Ｔ３１０に格納された各評価指標のそれぞれの評価指標を処理対象としてループＤの処理（Ｓ２４０）を行う。以下、抽出処理の説明において、処理対象の評価指標を対象評価指標という。【０１５５】
ループＤの処理においては、抽出処理部５３０は、各プロジェクトのＫＰＩ履歴情報Ｔ５００と、構成変更履歴情報Ｔ６００と、アクセス履歴情報Ｔ７００との全フィールドの内の複数のフィールドの情報を教師情報として学習モジュールに入力し、プロジェクトの構成変更やツールへのアクセスと、ＫＰＩの変化との関係を学習する（Ｓ２４０）。ここで、ＫＰＩ履歴情報Ｔ５００については、対象評価指標に関係するＫＰＩ（対象評価指標に対応するＫＰＩ変換方法管理情報Ｔ３００の参照ＫＰＩ  Ｔ３２０）に関するレコードの情報のみを入力の対象とする。なお、構成変更履歴情報Ｔ６００についての入力単位としては、ツールの使用の開始終了の情報（種類Ｔ６４０および時刻Ｔ６５０）に加え、設定値（設定値Ｔ６６０）の変数名やその値（例えば変数の追加や削除、または値の変更）としてもよい。【０１５６】
そして、抽出処理部５３０は、ループＤの処理を全ての評価指標を処理対象として実行し、全ての評価指標を処理対象として処理を終了した後に、ループＤを抜ける。【０１５７】
次いで、抽出処理部５３０は、学習モジュールにより、対象評価指標に寄与するツールを取得し、取得したツールのツール名を含む結果（例えば、用途、評価指標、そのツールの設定値のパス名等を含んでもよい）をメモリ４０２、補助記憶装置４０３等に記憶する（Ｓ２５０）。【０１５８】
次いで、抽出処理部５３０は、未処理の用途のプロジェクトを処理対象として、ループＣの処理を実行し、全ての用途のプロジェクトを処理対象として処理を終了した後に、ループＣを抜けて抽出処理を終了する。なお、抽出処理の直後に、抽出処理部５３０により。ステップＳ２５０で記憶した結果を、ベストプラクティス表示画面Ｇ３００の構成表示選択領域Ｇ４００に表示するようにしてもよい。【０１５９】
なお、学習モジュールに対して、アクセス履歴情報Ｔ７００のフィールドについては入力せずに、ＫＰＩ履歴情報Ｔ５００と構成変更履歴情報Ｔ６００とのフィールドのみを入力するようにして、学習させるようにしてもよい。【０１６０】
このような処理を行うことにより、複数のプロジェクトが動作する実行システム３００において、或る評価指標Ｘに対し、多くのプロジェクトで、或る設定または構成変更Ｙを行った後に評価指標Ｘの算出に用いるＫＰＩ  Ｚの値が上がっている事象を学習モジュールがとらえることも可能となる。このため、評価指標Ｘには、設定または構成変更Ｙが寄与する、という情報を利用者に提示することができるようになる。【０１６１】
なお、本発明は、上述の実施例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。【０１６２】
例えば、上記実施例では、管理システム２００を、クラウドシステム１００内に構成する例を示していたが、本発明はこれに限られず、管理システム２００の少なくとも一部の機能を、クラウドシステム１００外の装置（サーバ等）により構成するようにしてもよい。【０１６３】
また、上記実施例において、ＣＰＵが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施例におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア（例えば可搬型の記憶メディア）であってもよい。
【符号の説明】
【０１６４】
１…計算機システム、１０…端末、１００…クラウドシステム、２００…管理システム、３００…実行システム、４００…サーバ、４０１…ＣＰＵ、４０２…メモリ、４０３…補助記憶装置、４０４…通信Ｉ／Ｆ
【図１】
0006678813.tif 000003
【図２】
0006678813.tif 000004
【図３】
0006678813.tif 000005
【図４】
0006678813.tif 000006
【図５】
0006678813.tif 000007
【図６】
0006678813.tif 000008
【図７】
0006678813.tif 000009
【図８】
0006678813.tif 000010
【図９】
0006678813.tif 000011
【図１０】
0006678813.tif 000012
【図１１】
0006678813.tif 000013
【図１２】
0006678813.tif 000014
【図１３】
0006678813.tif 000015
【図１４】
0006678813.tif 000016
【図１５】
0006678813.tif 000017