(57)【要約】【課題】ソフトウェア開発において、発生した問題、問題に対する対策、及び、結果の関係を整理し、プロジェクトの状況の把握を容易にする。【解決手段】ソフトウェアの開発の過程で発生した問題、問題に対して実施された対策、及び、対策を実施した結果を含む履歴情報と、ソフトウェアを開発するプロジェクトが異常状態であるか否かを判定するための監視ルールとを記憶し、開発成果情報から、プロジェクトを評価するための情報であるメトリクスの現時点の値を収集し、開発成果情報から、プロジェクトの過程で発生したイベント情報を収集し、収集されたメトリクス又は収集されたイベント情報が監視ルールを満たすか否かを判定することによって、プロジェクトの状態を監視し、プロジェクトの状態が異常状態又は正常状態に変化するタイミングを検出し、プロジェクトの状態が異常状態又は正常状態に変化した場合には、履歴情報を登録する。【選択図】図１
2009134535.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発支援ツールによって出力された開発成果情報に基づいて、ソフトウェアの開発を支援するソフトウェア開発支援装置であって、
プロセッサ、及び、前記プロセッサに接続される記憶部を備え、
前記記憶部は、
ソフトウェアの開発の過程で発生した問題、前記問題に対して実施された対策、及び、前記対策を実施した結果を含む履歴情報と、
ソフトウェアを開発するプロジェクトが異常状態であるか否かを判定するための監視ルールと、を記憶し、
前記プロセッサは、
前記開発成果情報から、前記プロジェクトを評価するための情報であるメトリクスの現時点の値を収集し、
前記開発成果情報から、前記プロジェクトの過程で発生したイベントの情報を収集し、
前記収集されたメトリクス又は前記収集されたイベント情報が前記監視ルールを満たすか否かを判定することによって、前記プロジェクトの状態を監視し、
前記プロジェクトの状態が異常状態又は正常状態に変化するタイミングを検出し、
前記プロジェクトの状態が異常状態又は正常状態に変化した場合には、前記履歴情報を登録することを特徴とするソフトウェア開発支援装置。
【請求項２】
前記履歴情報に含まれる問題、対策及び結果は、それぞれ、前記イベント情報が対応付けられ、
前記プロセッサは、
前記プロジェクトが異常状態から正常状態に回復した場合には、前記履歴情報に含まれる問題、対策及び結果に対応付けるイベントの候補を、前記メトリクス及び前記イベント情報に基づいて、前記イベント情報から抽出し、
前記抽出されたイベントの候補を提示することを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記イベント情報には、前記イベントに関連する成果物又は前記イベントに関連する監視ルールを含む種別が含まれ、
前記イベントの候補は、前記イベント情報に含まれる種別に基づいて抽出されることを特徴とする請求項２に記載のソフトウェア開発支援装置。
【請求項４】
前記イベント情報には、前記イベントが発生した日時が含まれ、
前記プロジェクトが異常状態から正常状態に回復するまでの間に発生したイベントが前記イベントの候補として抽出されることを特徴とする請求項２に記載のソフトウェア開発支援装置。
【請求項５】
前記プロセッサは、前記プロジェクトが異常状態になってから正常状態に回復するまでの間に、当該プロジェクトに関連するメトリクスの変化を計測し、
前記イベントの候補は、前記計測されたメトリクスの変化に基づいて抽出されることを特徴とする請求項２に記載のソフトウェア開発支援装置。
【請求項６】
前記プロセッサは、前記履歴情報に含まれる問題、対策及び結果の関係を提示することを特徴とする請求項２に記載のソフトウェア開発支援装置。
【請求項７】
前記プロセッサは、
前記抽出されたイベントの選択を受け付け、
前記選択されたイベントを前記問題、対策又は結果に対応付けて前記履歴情報に登録し、
前記プロジェクトに問題が発生した場合に、前記メトリクス及び前記イベント情報に基づいて、前記履歴情報から新たに発生した問題に類似する問題を検出し、
前記検出された類似する問題を含む履歴情報を提示することを特徴とする請求項２に記載のソフトウェア開発支援装置。
【請求項８】
ソフトウェア開発支援装置において、ソフトウェア開発支援ツールによって出力された開発成果情報に基づいて、ソフトウェアの開発を支援する方法であって、
前記ソフトウェア開発支援装置は、ソフトウェアの開発の過程で発生した問題、前記問題に対して実施された対策、及び、前記対策を実施した結果を含む履歴情報と、
ソフトウェアを開発するプロジェクトが異常状態であるか否かを判定するための監視ルールと、を記憶し、
前記方法は、
前記開発成果情報から、前記プロジェクトを評価するための情報であるメトリクスの現時点の値を収集し、
前記開発成果情報から、前記プロジェクトの過程で発生したイベントの情報を収集し、
前記収集されたメトリクス又は前記収集されたイベント情報が前記監視ルールを満たすか否かを判定することによって、前記プロジェクトの状態を監視し、
前記プロジェクトの状態が異常状態又は正常状態に変化するタイミングを検出し、
前記プロジェクトの状態が異常状態又は正常状態に変化した場合には、前記履歴情報を登録することを特徴とするソフトウェア開発支援方法。
【請求項９】
前記履歴情報に含まれる問題、対策及び結果は、それぞれ、前記イベント情報が対応付けられ、
前記方法は、
前記プロジェクトが異常状態から正常状態に回復した場合には、前記履歴情報に含まれる問題、対策及び結果に対応付けるイベントの候補を、前記メトリクス及び前記イベント情報に基づいて、前記イベント情報から抽出し、
前記抽出されたイベントの候補を提示することを特徴とする請求項８に記載のソフトウェア開発支援方法。
【請求項１０】
前記イベント情報には、前記イベントに関連する成果物又は前記イベントに関連する監視ルールを含む種別が含まれ、
前記イベントの候補は、前記イベント情報に含まれる種別に基づいて抽出されることを特徴とする請求項９に記載のソフトウェア開発支援方法。
【請求項１１】
前記イベント情報には、前記イベントが発生した日時が含まれ、
前記プロジェクトが異常状態から正常状態に回復するまでの間に発生したイベントが前記イベントの候補として抽出されることを特徴とする請求項９に記載のソフトウェア開発支援方法。
【請求項１２】
前記方法は、前記プロジェクトが異常状態になってから正常状態に回復するまでの間に、当該プロジェクトに関連するメトリクスの変化を計測し、
前記イベントの候補は、前記計測されたメトリクスの変化に基づいて抽出されることを特徴とする請求項９に記載のソフトウェア開発支援方法。
【請求項１３】
前記方法は、前記履歴情報に含まれる問題、対策及び結果の関係を提示することを特徴とする請求項９に記載のソフトウェア開発支援方法。
【請求項１４】
前記方法は、
前記抽出されたイベントの選択を受け付け、
前記選択されたイベントを前記問題、対策又は結果に対応付けて前記履歴情報に登録し、
前記プロジェクトに問題が発生した場合に、前記メトリクス及び前記イベント情報に基づいて、前記履歴情報から新たに発生した問題に類似する問題を検出し、
前記検出された類似する問題を含む履歴情報を提示することを特徴とする請求項９に記載のソフトウェア開発支援方法。
【請求項１５】
開発支援ツールによって出力された開発成果情報に基づいて、ソフトウェアの開発を支援するソフトウェア開発支援装置で実行されるプログラムであって、
前記ソフトウェア開発支援装置は、ソフトウェアの開発の過程で発生した問題、前記問題に対して実施された対策、及び、前記対策を実施した結果を含む履歴情報と、
ソフトウェアを開発するプロジェクトが異常状態であるか否かを判定するための監視ルールと、を記憶し、
前記プログラムは、
前記開発成果情報から、ソフトウェアを開発するプロジェクトを評価するための情報であるメトリクスを収集する手順と、
前記開発成果情報から、前記プロジェクトの過程で発生したイベントの情報を収集する手順と、
前記収集されたメトリクス又は前記収集されたイベント情報が前記監視ルールを満たすか否かを判定することによって、前記プロジェクトの状態を監視する手順と、
前記プロジェクトの状態が異常状態又は正常状態に変化するタイミングを検出する手順と、
前記プロジェクトの状態が異常状態又は正常状態に変化した場合には、前記履歴情報を登録する手順と、を前記ソフトウェア開発支援装置に実行させることを特徴とするソフトウェア開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発を支援する技術に関し、特に、プロジェクトの状況を把握する技術に関する。
【背景技術】
【０００２】
ソフトウェア開発において、開発中のプロジェクトに発生した問題を早期に解決しなければならない。そこで、プロジェクトの計画情報及び開発状況情報に基づいて、過去に実施されたプロジェクトの成果物などから対策を抽出し、提示する技術が開示されている（特許文献１参照）。
【０００３】
また、履歴として格納されたプロジェクトとの類似性に基づいて対応策を提示するためにプロジェクトの類似度を判定する場合に、成果物及びプロジェクトに関する定性的又は定量的な管理指標を利用する技術が開示されている（特許文献２参照）。
【特許文献１】特開２００７−１８３７２９号公報
【特許文献２】特開２００７−６６２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１及び特許文献２に開示された技術では、発生した問題又は発生しそうな問題への対策を提示することが可能であるが、問題の発生から対策及び結果の関係が十分に整理されていない。また、複数の問題が関連して発生した場合には、十分に対応することができない。
【０００５】
本発明では、開発対象プロジェクトの過程で発生した「問題」と、問題への「対策」と、対策の「結果」との関係を整理する。特に、「結果」が得られたタイミングの候補を特定し、さらに、「結果」から「対策」及び「問題」を類推してプロジェクト関係者に提示する。
【課題を解決するための手段】
【０００６】
本発明の代表的な一形態では、ソフトウェア開発支援ツールによって出力された開発成果情報に基づいて、ソフトウェアの開発を支援するソフトウェア開発支援装置であって、プロセッサ、及び、前記プロセッサに接続される記憶部を備え、前記記憶部は、ソフトウェアの開発の過程で発生した問題、前記問題に対して実施された対策、及び、前記対策を実施した結果を含む履歴情報と、ソフトウェアを開発するプロジェクトが異常状態であるか否かを判定するための監視ルールと、を記憶し、前記プロセッサは、前記開発成果情報から、前記プロジェクトを評価するための情報であるメトリクスの現時点の値を収集し、前記開発成果情報から、前記プロジェクトの過程で発生したイベント情報を収集し、前記収集されたメトリクス又は前記収集されたイベント情報が前記監視ルールを満たすか否かを判定することによって、前記プロジェクトの状態を監視し、前記プロジェクトの状態が異常状態又は正常状態に変化するタイミングを検出し、前記プロジェクトの状態が異常状態又は正常状態に変化した場合には、前記履歴情報を登録する。
【発明の効果】
【０００７】
本発明の一形態によれば、プロジェクトの状態が変化するタイミングで履歴情報を登録することによって、プロジェクトの状況を把握するための情報を蓄積することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
【０００９】
図１は、本発明の実施の形態のソフトウェア開発支援システム１０１のソフトウェア構成図である。
【００１０】
ソフトウェア開発支援システム１０１は、開発支援ツール１４１と連携して、プロジェクトの状況を示す各種の開発成果情報を管理する。開発支援ツール１４１には、例えば、実装エディタ、構成管理ツール、及び、バグ追跡ツールが含まれる。また、開発成果情報には、設計情報、プログラム、プロジェクト管理情報など、開発対象プロジェクトに関係するすべての成果物が含まれる。なお、ソフトウェア開発支援システム１０１及び開発支援ツール１４１は、同一の計算機に実装されてもよいし、異なる計算機に実装されてもよい。
【００１１】
ソフトウェア開発支援システム１０１は、プロジェクト管理者及びプロジェクトに関係するすべてのプロジェクトメンバによって利用される。プロジェクト管理者は、管理対象プロジェクトの全体を管理する責任を有する。また、プロジェクトメンバは、プロジェクトを遂行するための作業を実施する。
【００１２】
プロジェクト管理者及びプロジェクトメンバは、個々の開発支援ツール１４１を利用して、開発対象プロジェクトにおける開発成果情報の作成及び編集を行う。個々の開発支援ツール１４１によって作成及び編集された開発成果情報は、開発成果情報格納部１４２に格納される。なお、開発成果情報格納部１４２は、ソフトウェア開発支援システム１０１と個々の開発支援ツール１４１のデータ交換方式を制約するものではなく、任意の形式でよい。
【００１３】
本発明の実施の形態のソフトウェア開発支援システム１０１は、画面表示部１１１、画面処理部１２１、メトリクス監視ルール設定部１２２、メトリクス監視ルール格納部１２３、メトリクス監視部１２４、問題・対策・結果情報照会部１２５、問題・対策・結果履歴格納部１２６、開発成果情報分析部１２７、メトリクス格納部１２８及びイベント情報格納部１２９を含む。画面処理部１２１、メトリクス監視ルール設定部１２２、メトリクス監視部１２４、問題・対策・結果情報照会部１２５、及び、開発成果情報分析部１２７は、ＣＰＵによって実行されるプログラムである。
【００１４】
画面表示部１１１は、プロジェクト管理者及びプロジェクトメンバにプロジェクトの開発状況を表示する。プロジェクト管理者は、画面表示部１１１をインタフェースとして、開発対象プロジェクトの開発状況の把握、分析及び指示する。また、プロジェクトメンバは、画面表示部１１１をインタフェースとして、プロジェクト管理者によって公開されるプロジェクトの開発状況に関する情報を閲覧する。
【００１５】
画面処理部１２１は、メトリクス監視部１２４及びメトリクス監視ルール設定部１２２と連携し、画面表示部１１１に表示する情報を生成する。
【００１６】
メトリクス監視ルール設定部１２２は、メトリクス監視部１２４によって、メトリクス又はイベントの変化を監視して異常発生を検出するためのルール（以下、「メトリクス監視ルール」）を設定するための機能を提供する。設定されたメトリクス監視ルールは、メトリクス監視ルール格納部１２３に格納される。なお、メトリクス監視ルールの変更は、メトリクス監視ルール設定部１２２を介さずに、ファイル又はＤＢなどに直接アクセスすることによって実行されてもよい。
【００１７】
メトリクス監視部１２４は、メトリクス監視ルール格納部１２３に格納されたメトリクス監視ルールを参照し、メトリクス格納部１２８に格納されたメトリクス又はイベント情報格納部１２９に格納されたイベント情報と照会し、プロジェクトに異常が発生したか否かを判定する。さらに、判定結果を画面処理部１２１に出力する。
【００１８】
また、メトリクス監視部１２４は、メトリクス監視ルールによって定義される正常状態から異常状態への変化、又は、異常状態から正常状態への変化を検出する。状態変化を検出すると、メトリクス格納部１２８、イベント情報格納部１２９、及び、問題・対策・結果情報照会部１２５を利用して、プロジェクトの状況分析作業を支援する。
【００１９】
問題・対策・結果情報照会部１２５は、メトリクス格納部１２８及びイベント情報格納部１２９を参照し、特定の条件下においてプロジェクトで発生したイベントを分析し、問題・対策・結果の関係付けの候補を生成してメトリクス監視部１２４に出力する。また、プロジェクト管理者が整理及び分析した問題、対策及び結果の関係情報を、問題・対策・結果履歴格納部１２６に記録する。
【００２０】
開発成果情報分析部１２７は、開発成果情報格納部１４２から開発成果情報を収集する。さらに、収集された開発成果情報に基づいて、開発対象プロジェクトを評価するための情報であるメトリクスを生成し、メトリクス格納部１２８に格納する。また、開発対象プロジェクトで実施された作業又は発生した事象を時系列に並べたイベント情報を生成し、イベント情報格納部１２９に格納する。
【００２１】
図２は、本発明の実施の形態のソフトウェア開発支援システムのハードウェア構成図である。
【００２２】
本発明の実施の形態のソフトウェア開発支援システム１０１は、一台の計算機によって実現されている。当該計算機は、ＣＰＵ２０１、主記憶装置２０２、ネットワーク接続装置２０３、外部記憶装置２０４、ディスプレイ２０５、及び、データ入力装置２０６を含む。
【００２３】
ＣＰＵ２０１は、主記憶装置２０２に記憶されたプログラムを実行する。主記憶装置２０２は、プログラム及び当該プログラムの処理に必要なデータを一時的に記憶する。主記憶装置２０２は、高速にアクセス可能な記憶装置が使用される。主記憶装置２０２は、揮発性メモリであってもよいし、不揮発性メモリであってもよい。
【００２４】
ネットワーク接続装置２０３は、ネットワーク２０７に接続し、他の計算機と通信する。外部記憶装置２０４は、プログラム及びデータを記憶する。外部記憶装置２０４に格納されたプログラムは、主記憶装置２０２にロードされ、ＣＰＵ２０１によって実行される。また、外部記憶装置２０４は、大容量のデータを格納可能である。
【００２５】
ディスプレイ２０５は、プロジェクトの開発状況などの情報を利用者に表示する。データ入力装置２０６は、要求された情報を入力するインタフェースである。
【００２６】
図１で説明した開発支援ツール１４１についても、本構成の計算機を利用する。なお、開発支援ツール１４１は、前述したように、ソフトウェア開発支援システム１０１が実装された計算機に実装されてもよい。また、図１に示したソフトウェア開発支援システム１０１の各構成は、複数の計算機で分散して配置されてもよい。例えば、メトリクス格納部１２８及びイベント情報格納部１２９は、別にデータサーバを用意してデータベースに格納されてもよい。
【００２７】
図３は、本発明の実施の形態のメトリクス格納部１２８に格納されるメトリクス一覧３００の一例である。
【００２８】
メトリクスとは、前述のように、ソフトウェアを開発するプロジェクトを評価するための情報である。本発明の実施の形態のメトリクス一覧３００に格納されるメトリクスには、コード行数３０１、バグ数３０２、バグ密度３０３、及び、テスト合格率３０４などが含まれる。各メトリクスは、開発対象プロジェクト全体とモジュール別のそれぞれについて、開発成果情報分析部１２７によって収集及び集計され、格納される。
【００２９】
コード行数３０１は、例えば、当該ソフトウェア開発で使用する個々の開発支援ツール１４１に含まれる構成管理ツールによって取得される。また、バグ数３０２は、例えば、当該ソフトウェア開発で使用する個々の開発支援ツール１４１の１つであるバグ管理ツールから取得できる。
【００３０】
コード行数３０１及びバグ数３０２は、従来の開発支援ツール１４１であっても取得可能な情報であって、開発成果情報格納部１４２に格納されている。バグ密度３０３は、開発成果情報分析部１２７によって所定の計算式に基づいて生成された情報である。また、テスト合格率３０４は、例えば、当該ソフトウェア開発で使用する個々の開発支援ツール１４１の１つである単体テストツールから取得可能である。
【００３１】
メトリクスには、その他、テストケース数、所定の基準で生成されたコードの複雑さなどであってもよい。また、オブジェクト指向言語でソフトウェアを開発している場合には、クラスの数、及び、当該クラスのメソッドの数などをメトリクスとしてもよい。
【００３２】
図４は、本発明の実施の形態のイベント情報格納部１２９に格納されるイベント情報一覧４００の一例である。
【００３３】
本発明の実施の形態では、イベント情報として、開発成果情報格納部１４２に格納されたイベント情報を含む各種の情報（ファイルのアクセス履歴、メール送受信文、打合せ議事録など）から機械的又は手動で抽出される。
【００３４】
イベント情報一覧４００は、イベントＩＤ４０１、日時４０２、種別４０３、及び、説明４０４を含む。
【００３５】
イベントＩＤ４０１は、イベントの識別子である。日時４０２は、イベントが発生した日時を格納する。
【００３６】
種別４０３は、イベントに関連する項目ごとのフィールドを含む。各項目には、イベントに関連する情報が格納される。種別４０３は、開発成果情報格納部１４２に格納されたイベント情報に基づいて格納される。説明４０４は、イベントについての補足説明を格納する。
【００３７】
また、本発明の実施の形態では、一例として、各モジュールでバグ密度（＝バグ数／コード行数）が所定の閾値を超えると異常状態と判断されるメトリクス監視ルールが適用されている。
【００３８】
なお、メトリクス監視ルールに基づいて、プロジェクトの状態が変化することもイベントに含まれる。例えば、イベントＩＤ４０１が“ｅｓ００３１３”のレコードを参照すると、“ｍｏｄｕｌｅ＿ｂ”でバグ密度の閾値が超過したことがイベントとして記載されている。そして、“ｅｓ００３１３”のイベントでは、種別４０３の「ルール」の欄に「バグ密度」、成果物の欄に「ｍｏｄｕｌｅ＿ｂ」が記録される。さらに、説明４０４にイベントの説明が記録されている。
【００３９】
図５は、本発明の実施の形態の開発成果情報を処理する手順を示すフローチャートである。
【００４０】
本処理は、ＣＰＵ２０１が開発成果情報分析部１２７を実行することによって、実行される。また、本処理は、システムによって周期的に実行されるか、プロジェクト管理者などから実行指示を受け付けることによって実行される。
【００４１】
ＣＰＵ２０１は、開発成果情報分析部１２７を実行すると、開発成果情報格納部１４２を参照し、開発成果情報を取得する（ステップ５１１）。開発成果情報とは、前述のように、個々の開発支援ツール１４１によって出力される情報である。
【００４２】
次に、ＣＰＵ２０１は、取得された開発成果情報を整理及び分析し、メトリクス及びイベント情報をそれぞれ生成する（ステップ５１２）。生成されたメトリクスの一例は、図３にて説明したとおりである。同じく、生成されたイベント情報の一例は、図４にて説明したとおりである。
【００４３】
最後に、ＣＰＵ２０１は、生成されたメトリクスをメトリクス格納部１２８に格納し、生成されたイベント情報をイベント情報格納部１２９に格納する（ステップ５１３）。
【００４４】
図６は、本発明の実施の形態のメトリクス監視部１２４を処理する手順を示すフローチャートである。
【００４５】
本処理は、ＣＰＵ２０１がメトリクス監視部１２４を実行することによって、実行される。また、本処理は、システムによって周期的に実行されるか、プロジェクト管理者などによる実行指示を受け付けて実行される。
【００４６】
ＣＰＵ２０１は、メトリクス監視部１２４を実行すると、まず、メトリクス格納部１２８及びイベント情報格納部１２９を参照し、メトリクス及びイベント情報を取得する（ステップ６１１）。
【００４７】
ＣＰＵ２０１は、次に、メトリクス監視ルール格納部１２３を参照し、メトリクス監視ルールを取得する（ステップ６１２）。さらに、取得されたメトリクス監視ルールに基づいて、メトリクスの状態変化の有無を判定する（ステップ６１３）。
【００４８】
ＣＰＵ２０１は、メトリクスの状態が正常状態から異常状態に変化することを検出した場合には（ステップ６２１の結果が「有（正常→異常）」）、画面表示部１１１を介して異常発生をプロジェクト管理者に通知するために異常情報を画面処理部１２１に送信する（ステップ６３１）。
【００４９】
一方、ＣＰＵ２０１は、メトリクスの状態が異常状態から正常状態に変化することを検出した場合には（ステップ６２１の結果が「有（異常→正常）」）、画面表示部１１１を介して異常回復をプロジェクト管理者に通知する。さらに、問題・対策・結果情報照会部１２５を実行し、問題、対策及び結果に対応付けるためのイベントの候補（問題・対策・結果情報の候補）を類推し、イベント情報格納部１２９から取得する（ステップ６３２）。
【００５０】
ここで、問題・対策・結果情報の候補を類推する方法として、イベントが発生した日時を利用することができる。例えば、当該異常状態の開始日時を参照し、開始から前後一定期間に発生したイベントを、問題・対策・結果情報の候補として選択する。
【００５１】
同様に、イベント情報の収集元である監視ルールの適用履歴及び成果物などの種別を利用することも可能である。例えば、異常とみなされたメトリクスに関係するプロジェクトの成果物（ドキュメント及びプログラムなど）と同じ成果物に関係するイベントを、問題・対策・結果情報の候補として選択してもよい。具体的には、図７を参照しながら説明する。
【００５２】
図７は、本発明の実施の形態の問題、対策及び結果の関係を類推する方法を説明する図である。
【００５３】
問題・対策・結果履歴情報は、問題と対策と結果の組を一レコードとする。また、問題、対策及び結果は、それぞれ対応するイベントのイベントＩＤが割り当てられる（１５０１、１５０２、１５０３）。
【００５４】
したがって、問題、対策及び結果には、イベントＩＤに対応するイベント情報が関連付けられ、イベント情報には、日時、関係するルール、関係するメトリクス、関係する開発支援ツールなどが含まれる。そして、関連付けられたイベント情報の類似性又は相関に基づいて、「結果」「対策」「問題」の関係を類推することができる。
【００５５】
例えば、イベント情報一覧４００を簡略化したイベント関係性のマトリクス１５００を参照すると、結果を示すイベント「ｅｓ００４５４」（１５１１）は、ルール「バグ密度」に関係するため、同じくルール「バグ密度」に関係するイベント「ｅｓ００３１３」（１５１２）を、結果に対する対策又は問題として類推することができる。
【００５６】
さらに、当該異常状態に関係する一定期間内における任意のメトリクスの変化を利用することができる。例えば、当該異常状態の期間中に特徴的な推移（継続的な増減、急な増減、急な停止、正常状態／異常状態に対する変化の方向など）をしたメトリクスに関係するイベントを、問題・対策・結果情報の候補として選択する。具体的には、図８を参照しながら説明する。
【００５７】
図８は、本発明の実施の形態の問題・対策・結果の関係を類推するためのメトリクス間の相互関係について説明する図である。
【００５８】
バグ密度の変化曲線８２１が閾値８１１に対して異常側にある期間において、値が増加（１６１１）又は減少（１６１２）したメトリクスを検出し、バグ密度の変化に関係する（相関がある）メトリクスとし、「結果」「対策」「問題」の関係を類推する指標として利用する。プロジェクト進行中には、多数のイベントが頻繁に発生するため、メトリクスが異常となった原因又はメトリクスに影響を与えたイベントをすべて把握することは困難である。このように、メトリクスの相互関係を指標として利用することによって、メトリクスの異常に間接的に関係するイベントについても類推することが可能となる。
【００５９】
ここで、図６のメトリクス監視部１２４の処理の説明に戻る。
【００６０】
ＣＰＵ２０１は、取得された問題・対策・結果情報の候補を画面処理部１２１に送信し（ステップ６３３）、プロジェクト管理者に提示する。
【００６１】
ＣＰＵ２０１は、ステップ６３１及びステップ６３３の処理の実行が完了した場合、又は、メトリクスの状態変化が検出されない場合には（ステップ６２１の結果が「無」）、本処理を終了する。
【００６２】
図９は、本発明の実施の形態の問題・対策・結果情報を取得する手順を示すフローチャートである。
【００６３】
本処理は、メトリクス監視部１２４の処理において、メトリクスの状態が異常状態から正常状態に変化した場合に実行される。
【００６４】
ＣＰＵ２０１は、問題・対策・結果情報照会部１２５を実行すると、メトリクス監視部１２４から、問題・対策・結果候補情報の取得依頼をイベント検索キーとともに受け付ける（ステップ２０１１）。イベント検索キーとは、本処理において検索されるイベント情報の検索範囲を特定するためのキーであり、イベント情報一覧４００の日時４０２又は種別４０３など、任意の情報を利用することができる。
【００６５】
ＣＰＵ２０１は、受け付けたイベント検索キーに基づいて、イベント情報格納部１２９から問題・対策・結果候補情報を取得する（ステップ２０１２）。
【００６６】
ＣＰＵ２０１は、取得された問題・対策・結果候補情報をメトリクス監視部１２４に返信する（ステップ２０１３）。
【００６７】
図１０は、本発明の実施の形態のメトリクス監視ルール格納部１２３に格納されるメトリクス監視ルール一覧７００の一例である。
【００６８】
メトリクス監視ルール一覧７００は、ルールＩＤ７０１、ルール名７０２、及び、異常状態の条件７０３を含む。
【００６９】
ルールＩＤ７０１は、メトリクス監視ルールを識別する識別子である。ルール名７０２は、当該メトリクス監視ルールの名称である。異常状態の条件７０３は、当該メトリクス監視ルールの内容であって、特定のメトリクスを異常と判定するための条件を示している。
【００７０】
本発明の実施の形態では、メトリクス監視部１２４の処理によって、メトリクス格納部１２８に格納されたメトリクス及びイベント情報格納部１２９のイベント情報を照合し、条件７０３の内容に基づいて、開発対象プロジェクトの異常状態を検出する。
【００７１】
図１１は、本発明の実施の形態のメトリクスの時系列変化とメトリクス監視ルールの関係８４１の一例、及び、メトリクスの時系列変化とイベント情報の関係８４２の一例を示す図である。
【００７２】
メトリクスの時系列変化とメトリクス監視ルールの関係８４１は、横軸８０２を時間軸とし、縦軸８０１をメトリクス（プログラムのバグ密度）とした例である。本発明の実施の形態では、メトリクス監視ルールの例として、バグ密度の閾値８１１を定義し、バグ密度の変化曲線８２１が閾値８１１を超えた場合を異常状態、それ以外の状態を正常状態としている。
【００７３】
また、メトリクス監視ルールを時間とバグ密度に対する線形関数として定義しているが、メトリクス監視ルールは、非線形関数又はその他の定義方法によって定義することも可能である。また、メトリクスの変化が激しく、状態の変化が頻繁に発生する場合などには、メトリクスの一定期間の平均値を用いてもよい。
【００７４】
また、メトリクスの時系列変化とイベント情報の関係８４２におけるイベント情報の種別８５１は、イベント情報一覧４００の種別４０３に対応する。時間軸を表す線上に配置された三角点８６１は、イベント情報一覧４００の日時４０２に対応する。
【００７５】
図１２は、本発明の実施の形態のメトリクス監視ルールを設定する画面９０１の一例である。
【００７６】
本発明の実施の形態のメトリクス監視ルール設定画面９０１は、主として、プロジェクト管理者によって使用される。
【００７７】
メトリクス監視ルール設定画面９０１には、ルール名の入力欄９１１、及び、利用するメトリクスの選択タブ９１２を含む。メトリクスの選択タブ９１２からメトリクスを選択し、追加ボタンを操作すると、利用するメトリクスの一覧９１３に追加される。追加されたメトリクスは、変更ボタンによって変更され、削除ボタンによって削除される。
【００７８】
メトリクス監視ルール設定画面９０１には、さらに、ルール式の入力欄９１４が含まれる。ルール式は、選択されたメトリクスを変数として作成される。
【００７９】
すべての入力項目の設定が完了し、登録ボタン９１５を操作すると、図１０に示したメトリクス監視ルール一覧７００のレコードが追加される。
【００８０】
図１３は、本発明の実施の形態の問題・対策・結果履歴格納部１２６に格納される問題・対策・結果履歴一覧１０００の一例を示す図である。
【００８１】
問題・対策・結果履歴一覧１０００は、履歴ＩＤ１００５、発生した問題を示すイベント１００１、実施された対策を示すイベント１００２、結果を示すイベント１００３、及び、メモ１００４を含む。各イベントに含まれるイベントＩＤには、イベント情報格納部１２９に記録されたイベントＩＤ４０１が使用される。
【００８２】
ここで、問題・対策・結果履歴の各レコードは、開発対象プロジェクトにおいて発生した問題が、いくつかの対策の実施によって、解決（若しくは別の問題又は課題に転化）したとプロジェクト管理者が判定するまでの経過を示している。また、本発明の実施の形態では、問題、対策及び結果が１対１対１の関係となっているが、問題、対策、及び結果がそれぞれ１対多、多対１、多対多の関係になってもよい。
【００８３】
図１４は、本発明の実施の形態のプロジェクトの状態を表示する画面１１０１の一例を示す図である。
【００８４】
プロジェクトの状態表示画面１１０１は、図３に示したメトリクス一覧３００に基づいて作成される。プロジェクトの状態表示画面１１０１には、メトリクスとして、コード行数１１１１、バグ数１１１２、バグ密度１１１３、及び、テスト合格率１１１４が表示されている。
【００８５】
さらに、各メトリクスには、メトリクス監視部１２４によって、メトリクス監視ルールに基づいて、プロジェクト全体及びモジュールごとに正常状態、異常状態を判別した結果、正常から異常に変化したメトリクスには（図１１の８３１）、「異常」のアイコン１１３２を表示する。また、異常から正常に回復したメトリクスには（図１１の８３２）、「正常」のアイコン１１３１を表示する。
【００８６】
「異常」アイコン１１３２又は「正常」アイコン１１３１が選択され、当該アイコンが操作されると、追加項目の入力画面が表示される。追加項目の入力画面は、図１５及び図１６にて説明する。
【００８７】
図１５は、本発明の実施の形態のプロジェクトの状態表示画面１１０１で「異常」アイコンが操作された場合に表示される画面１２０１の一例を示す図である。
【００８８】
画面１２０１は、図１４に示した「異常」アイコン１１３２が操作された場合に表示される。
【００８９】
画面１２０１には、状態を示す「バグ密度の値が異常領域に入りました」のテキストが表示され、メトリクスの推移グラフ１２１１、及び、当該異常に対する説明入力フィールド１２２１が配置される。
【００９０】
説明入力フィールド１２２１への入力は任意である。確認ボタン１２３１を操作すると、フィールドに説明が入力されている場合には、イベント情報としてイベント情報格納部１２９に登録してもよいし、一時的に所定の場所に記録し、問題・対象・結果履歴の登録時に補足参照してもよい。
【００９１】
また、画面１２０１には図示されていないが、イベント間の関係性を類推する方法を利用して、異常状態の発生を「問題」と位置付け、問題・対策・結果履歴格納部１２６に蓄積された問題・対策・結果履歴に基づいて、「対策」及び「結果」の過去事例をプロジェクト関係者に提示してもよい。
【００９２】
図１６は、本発明の実施の形態のプロジェクトの状態表示画面１１０１で「正常」アイコンが操作された場合に表示される正常状態設定画面１３０１の一例を示す図である。
【００９３】
正常状態設定画面１３０１は、図１４に示した「正常」アイコン１１３１が操作された場合に表示される。
【００９４】
正常状態設定画面１３０１には、状態を示す「バグ密度の値が正常異常領域に戻りました」のテキストが表示され、メトリクスの推移グラフ１３１１、及び、問題・対象・結果履歴設定部１３１３が配置される。
【００９５】
また、異常状態から正常状態に回復した場合には、「問題」が発生してから何らかの「対策」が実行された「結果」とすることができる。問題・対象・結果履歴設定部１３１３では、当該「結果」１３２３に対する「対策」及び「問題」に対応するイベントを設定することができる。問題・対象・結果履歴設定部１３１３には、「問題」編集ボタン１３３２及び「対策」編集ボタン１３３３が配置され、編集済みの「問題」一覧１３２１及び編集済みの「対策」一覧１３２２が表示される。「問題」編集ボタン１３３２又は「対策」編集ボタン１３３３が操作されると、対応するイベント情報を選択する画面が表示される。なお、イベント情報選択画面については、図１７にて説明する。
【００９６】
さらに、イベント情報選択画面によって、「問題」又は「対策」にイベント情報を割り当てた後、登録ボタン１３３１を操作することによって、問題・対策・結果履歴一覧１０００に情報を登録する。問題・対策・結果履歴一覧１０００に情報を登録する手順については、図１８にて説明する。
【００９７】
また、正常状態設定画面１３０１には図示されていないが、本画面にイベント情報の検索キーを選択する画面部品などを配置することによって、問題と対策の選択肢となるイベント情報を絞り込むことが可能である。
【００９８】
図１７は、本発明の実施の形態の「問題」に対応するイベントを選択する画面の一例を示す図である。
【００９９】
イベント選択画面１４０１は、正常状態設定画面１３０１において、対策アイコン１７１２を操作されることによって表示される。本発明の実施の形態では、イベント選択画面１４０１は、正常状態設定画面１３０１とは別画面となっている。
【０１００】
イベント選択画面１４０１には、「結果（ＩＤ：ｅｓ０００３２１）に対する問題の選択」のテキストとともに、「結果」表示フィールド１４１１、「対策」表示フィールド１４１２、「問題」選択部を含む。「問題」選択部には、「問題」の新規追加ボタン１４２１、選択ボタン１４２２、選択タブ（１４１２、１４３１）、選択済みの「問題」イベントの一覧１４１４及び削除ボタン１４２３が含まれる。
【０１０１】
イベント選択画面１４０１では、「結果」に対する「問題」に該当するイベントを選択し、割り当てる。また、正常状態設定画面１３０１において「対策」の編集ボタン１３３３が操作された場合にも、イベント選択画面１４０１と同様の画面が表示され、「結果」に対する「対策」に該当するイベントを選択し、選択されたイベントを割り当てることができる。
【０１０２】
図１８は、本発明の実施の形態の問題・対策・結果情報を登録する手順を示すフローチャートである。
【０１０３】
ＣＰＵ２０１は、正常状態設定画面１３０１の登録ボタン１３３１が操作されると、問題・対策・結果情報照会部１２５が実行され、プロジェクト管理者によって入力された問題・対策・結果情報を取得する（ステップ２０２１）。
【０１０４】
ＣＰＵ２０１は、問題・対策・結果情報照会部１２５を実行し、取得された問題・対策・結果情報に基づいて、イベント情報格納部１２９を照会する。このとき、当該イベント情報に関連する必要な付加情報があれば取得する（ステップ２０２２）。必要な付加情報とは、例えば、イベント情報一覧４００の説明４０４であって、説明４０４の内容を問題・対策・結果履歴一覧１０００のメモ欄に記録する場合などである。
【０１０５】
ＣＰＵ２０１は、必要な情報を取得すると、問題・対策・結果履歴格納部１２６に取得された情報を格納する（ステップ２０２３）。
【０１０６】
図１９は、本発明の実施の形態のプロジェクトの状況を閲覧する画面１７０１の一例を示す図である。
【０１０７】
プロジェクト状況閲覧画面１７０１は、問題・対策・結果履歴格納部１２６に格納された問題・対策・結果履歴一覧１０００をグラフィカルに表示する。プロジェクト状況閲覧画面１７０１によって、開発対象プロジェクトの状況を示す情報をプロジェクトメンバ間で共有することができる。
【０１０８】
プロジェクト状況閲覧画面１７０１には、「問題」、「対策」及び「結果」に対応するアイコンが配置されており、関係するアイコンがそれぞれ矢印で接続されている。また、各アイコンには、イベントの種類と日付の情報のみが記載されているが、イベントの概要などを表示してもよい。
【０１０９】
また、実線の矢印で接続されているアイコンは、接続されたアイコンに対応するイベントが問題・対策・結果履歴格納部１２６に格納された問題・対策・結果履歴情報の１レコードに対応する。例えば、問題アイコン１７１１、対策アイコン１７１２、及び、結果アイコン１７１３が、１レコードに対応する。なお、共通のイベントが複数のレコードに含まれる場合があるため、１つのアイコンに複数の矢印が接続される場合がある。
【０１１０】
さらに、破線の矢印は、対策を実施したために新たに問題が発生した場合などに関連するイベントに対応するアイコンが接続される。
【０１１１】
ここで、プロジェクト管理者又はプロジェクト関係者は、プロジェクト状況閲覧画面１７０１に表示されている問題、対策及び結果の関係を編集することが可能である。編集する具体的な手段としては、プロジェクト状況閲覧画面１７０１上でアイコン間の関係線を直接描画してもよいし、アイコンを操作して図２０にて説明するような編集画面を表示してもよい。
【０１１２】
図２０は、本発明の実施の形態のプロジェクト状況閲覧画面１７０１から表示される編集画面１８０１の一例を示す図である。
【０１１３】
編集画面１８０１は、プロジェクト状況閲覧画面１７０１において、対策アイコン１７１２を操作されることによって表示される。本発明の実施の形態では、編集画面１８０１は、プロジェクト状況閲覧画面１７０１とは別画面となっている。
【０１１４】
編集画面１８０１は、図１７に示したイベント選択画面１４０１と同様に、対策アイコン１７１２に対応するイベント情報１８１１と、当該イベントに関係する問題１８１３及び結果１８１２を編集可能なインタフェースを提供する。
【０１１５】
また、対策アイコン１７１２に対応するイベント情報１８１１とは直接関係しないが、別途関連が想定される問題が存在する場合には、派生問題として新規の問題を対応付けるためのインタフェース（１８３１、１８３２）を提供する。派生問題を定義することによって、異なる個々の問題・対策・結果の組が連結され、プロジェクト管理者が手動で、若しくは、メトリクス監視部１２４が所定のルールに基づいて、結果に対して問題及び対策を類推可能な範囲を拡張することができる。
【０１１６】
なお、対策と派生問題との関係を保持するために、新たに格納部を作成してもよいし、問題・対策・結果履歴一覧１０００に格納してもよい。問題・対策・結果履歴一覧１０００に格納する場合には、「結果」の欄を空欄にすることによって、通常の問題、対策及び結果の組か、対策及び派生問題の組かを判断することができる。
【０１１７】
さらに、対策アイコン１７１２に対応するイベント情報１８１１に関する簡単なメモを入力し、対応する問題・対策・結果履歴一覧１０００に記録するためのインタフェース１８４１を配置してもよい。
【０１１８】
図２１は、本発明の実施の形態で定義可能な問題、対策及び結果の関係を説明する図である。
【０１１９】
本発明の実施の形態では、基本的には、問題、対策及び結果の関係は１対１対１の関係であるが（１９０１）、同一の問題、対策又は結果が、複数の問題、対策又は結果に関連付けられてもよい（１９０２）。この場合の関連付けは、前述したように、実線の矢印によって表記される。
【０１２０】
また、対策が実行されたことによって新たに発生した派生問題については、前述したように、破線の矢印によって表記される。なお、同時に複数の問題が発生し、発生した問題が相互に関連している場合には、一方を派生問題としてもよい。また、結果に関連して新たな問題が発生する場合には、当該結果の派生問題としてもよい（１９０３）。
【０１２１】
本発明の実施の形態によれば、ソフトウェア開発における問題、対策及び結果を関連付けて管理し、問題、対策及び結果の関係を提示することによって、プロジェクトの状況を容易に把握することができる。したがって、プロジェクト管理者をはじめとするプロジェクトの関係者に、プロジェクトに対する共通認識を持たせることが可能となる。
【０１２２】
また、本発明の実施の形態によれば、過去のソフトウェア開発で発生した問題、当該問題に対する対策、及び、当該対策を施した結果に基づいて、プロジェクトで発生している問題の解決を支援することができる。例えば、問題・対策・結果履歴一覧１０００から発生した問題と同じ又は類似する履歴情報を抽出し、対応する対策及び結果をプロジェクト関係者に提示すればよい。さらに、抽出された履歴情報と関連する履歴情報を検索し、問題、対策及び結果の関係をプロジェクト関係者に提示してもよい。例えば、図１９に示すように、問題、対策及び結果の関係を提示することによって、ある対策を実施することによって新たに発生する可能性のある別の問題をあらかじめ把握することも可能となる。したがって、プロジェクトにおいて発生した問題を迅速に解決することが可能となり、ソフトウェア開発の効率を向上させることができる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施の形態のソフトウェア開発支援システムのソフトウェア構成図である。
【図２】本発明の実施の形態のソフトウェア開発支援システムのハードウェア構成図である。
【図３】本発明の実施の形態のメトリクス格納部に格納されるメトリクス一覧の一例である。
【図４】本発明の実施の形態のイベント情報格納部に格納されるイベント情報一覧の一例である。
【図５】本発明の実施の形態の開発成果情報を処理する手順を示すフローチャートである。
【図６】本発明の実施の形態のメトリクス監視部を処理する手順を示すフローチャートである。
【図７】本発明の実施の形態の問題、対策及び結果の関係を類推する方法の一例を説明する図である。
【図８】本発明の実施の形態の問題・対策・結果の関係を類推するためのメトリクス間の相互関係について説明する図である。
【図９】本発明の実施の形態の問題・対策・結果情報を取得する手順を示すフローチャートである。
【図１０】本発明の実施の形態のメトリクス監視ルール格納部に格納されるメトリクス監視ルール一覧の一例である。
【図１１】本発明の実施の形態のメトリクスの時系列変化とメトリクス監視ルールの関係の一例、及び、メトリクスの時系列変化とイベント情報の関係の一例を示す図である。
【図１２】本発明の実施の形態のメトリクス監視ルールを設定する画面の一例である。
【図１３】本発明の実施の形態の問題・対策・結果履歴格納部に格納される問題・対策・結果履歴一覧の一例を示す図である。
【図１４】本発明の実施の形態のプロジェクトの状態を表示する画面の一例を示す図である。
【図１５】本発明の実施の形態のプロジェクトの状態表示画面で「異常」アイコンが操作された場合に表示される画面の一例を示す図である。
【図１６】本発明の実施の形態のプロジェクトの状態表示画面で「正常」アイコンが操作された場合に表示される正常状態設定画面の一例を示す図である。
【図１７】本発明の実施の形態の「問題」に対応するイベントを選択する画面の一例を示す図である。
【図１８】本発明の実施の形態の問題・対策・結果情報を登録する手順を示すフローチャートである。
【図１９】本発明の実施の形態のプロジェクトの状況を閲覧する画面の一例を示す図である。
【図２０】本発明の実施の形態のプロジェクト状況閲覧画面から表示される編集画面の一例を示す図である。
【図２１】本発明の実施の形態で定義可能な問題、対策及び結果の関係を説明する図である。
【符号の説明】
【０１２４】
１０１    ソフトウェア開発支援システム
１１１    画面表示部
１２１    画面処理部
１２２    メトリクス監視ルール設定部
１２３    メトリクス監視ルール格納部
１２４    メトリクス監視部
１２５    問題・対策・結果情報照会部
１２６    問題・対策・結果履歴格納部
１２７    開発成果情報分析部
１２８    メトリクス格納部
１２９    イベント情報格納部
１４１    開発支援ツール
１４２    開発成果情報格納部
２０１    ＣＰＵ
２０２    主記憶装置
２０３    ネットワーク接続装置
２０４    外部記憶装置
２０５    ディスプレイ
２０６    データ入力装置
２０７    ネットワーク
３００    メトリクス一覧
４００    イベント情報一覧
７００    メトリクス監視ルール一覧
１０００    問題・対策・結果履歴一覧
【図１】
2009134535.tif 000003
【図２】
2009134535.tif 000004
【図３】
2009134535.tif 000005
【図４】
2009134535.tif 000006
【図５】
2009134535.tif 000007
【図６】
2009134535.tif 000008
【図７】
2009134535.tif 000009
【図８】
2009134535.tif 000010
【図９】
2009134535.tif 000011
【図１０】
2009134535.tif 000012
【図１１】
2009134535.tif 000013
【図１２】
2009134535.tif 000014
【図１３】
2009134535.tif 000015
【図１４】
2009134535.tif 000016
【図１５】
2009134535.tif 000017
【図１６】
2009134535.tif 000018
【図１７】
2009134535.tif 000019
【図１８】
2009134535.tif 000020
【図１９】
2009134535.tif 000021
【図２０】
2009134535.tif 000022
【図２１】
2009134535.tif 000023