(57)【要約】【課題】ソフトウェア開発において評価や対策の検討にかかる時間を短縮する。【解決手段】ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、上記の指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部と、複数のカテゴリーのいずれかに履歴データを分類し、さらにグループ化する判定部と、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部と、マッピングリストの優先度を決定する重み値算出部と、支援対象データを上記の複数のカテゴリーのいずれかに分類し、分類されたカテゴリーに対応するグループに対応するマッピングリストを、優先度が認識できるように外部に出力する提案部とを有する。【選択図】図１
2012256211.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、前記指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部と、
前記入力部にて受け付けられた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する判定部と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する重み値算出部と、
前記入力部にて受け付けられた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する提案部と、を有する支援装置。
【請求項２】
請求項１に記載の支援装置において、
前記履歴データと前記支援対象データとは、ソフトウェア開発において優先される複数の要素のそれぞれを示す複数の優先要素情報のうちのいずれかをさらに含み、
前記重み値算出部は、前記グループに属する履歴データの数と、当該履歴データに含まれる優先要素情報とに基づき、当該グループに対応するマッピングリストの優先度を前記複数の優先要素情報毎に決定し、
前記提案部は、前記分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの前記複数の優先要素情報毎の優先度のうち、前記入力部にて受け付けられた支援対象データに含まれる優先要素情報と同じ優先要素情報の優先度が認識できるように外部に出力する支援装置。
【請求項３】
請求項２に記載の支援装置において、
前記履歴データは、当該ソフトウェア開発における品質や進捗の改善のために過去に実施した行動の結果、当該改善が実現できたかどうかの評価を示す評価情報をさらに含み、
前記重み値算出部は、前記グループに属する履歴データの数と、当該履歴データに含まれる優先要素情報および評価情報とに基づき、当該グループに対応するマッピングリストの優先度を前記複数の優先要素情報毎に決定する支援装置。
【請求項４】
ソフトウェア開発を支援する支援装置における支援方法であって、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける処理と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する処理と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する処理と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する処理と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける処理と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する処理と、を有する支援方法。
【請求項５】
ソフトウェア開発を支援する支援装置に、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける機能と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する機能と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する機能と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する機能と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける機能と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する機能と、を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発における品質や進捗の改善を支援する支援装置、支援方法およびプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発において開発者は、ソフトウェアの品質やソフトウェア開発の進捗を管理するための定量的な指標の計画値を設定する。そして、開発者は、設定した計画値と実績値とを比較することにより、ソフトウェアの品質やソフトウェア開発の進捗を評価し、その評価結果に基づいた対策を実施する。
【０００３】
上述した評価や対策の検討は各開発者に任されており、開発ノウハウのない開発者は、評価を間違えたり、適切な対策がわからなかったりする場合がある。また、開発者が適切な評価や対策を実施したとしても、その評価や対策の検討に時間がかかることがある。昨今、ソフトウェア開発は、短期間で完了することが望まれており、評価や対策の検討に時間がかかることは望ましくない。
【０００４】
そこで、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することが求められ、それを実現するための技術が例えば、特許文献１に開示されている。
【０００５】
特許文献１に開示されている技術においてテスト作業管理支援装置は、品質の信頼性およびテストの十分性に関するデータの入力を受け付ける。次に、テスト作業管理支援装置は、受け付けたデータに基づいてソフトウェアの品質の信頼性とテストの十分性とを推定する。そして、テスト作業管理支援装置は、推定結果と予め定められたアドバイスルールとに基づき、所定のメッセージを選択してメッセージデータとして出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−１４６８０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、ソフトウェア開発の現場において熟練の開発者は、上述した定量的な指標だけではなく、その開発者が有するノウハウ等を用いてソフトウェアの品質やソフトウェア開発の進捗を分析して評価や対策を実施することが多い。
【０００８】
個々の開発者が有するノウハウ等は、徐々に蓄積されていくものである。熟練の開発者は、ノウハウ等を蓄積しつつ活用することにより、評価や対策の検討にかかる時間を短縮することができる。
【０００９】
上述した特許文献１に開示されている技術では、予め定められたアドバイスルールに基づいた所定のメッセージが選択される。そのため、上述したような徐々に蓄積されていくノウハウ等を活用することができない。
【００１０】
従って、特許文献１に開示されている技術は、ソフトウェア開発において評価や対策の検討にかかる時間という問題点を解決するのに十分なものとは言えない。
【００１１】
本発明は、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することを可能にする支援装置、支援方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の支援装置は、ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、前記指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部と、
前記入力部にて受け付けられた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する判定部と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する重み値算出部と、
前記入力部にて受け付けられた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する提案部と、を有する。
【００１３】
また、上記目的を達成するために本発明の支援方法は、ソフトウェア開発を支援する支援装置における支援方法であって、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける処理と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する処理と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する処理と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する処理と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける処理と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する処理と、を有する。
【００１４】
また、上記目的を達成するために本発明のプログラムは、ソフトウェア開発を支援する支援装置に、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける機能と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する機能と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する機能と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する機能と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける機能と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する機能と、を実現させる。
【発明の効果】
【００１５】
本発明は以上説明したように構成されているので、開発ノウハウのない開発者に対し、熟練の開発者が徐々に蓄積しているノウハウ等を提供することができる。
【００１６】
従って、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の支援装置の実施の一形態の構成を示すブロック図である。
【図２】図１に示した蓄積部が備える履歴ＤＢに記憶された履歴データの一例を示す図である。
【図３】図２に示した履歴ＤＢに既に記憶された行動情報を管理する管理用テーブルの構成の一例を示す図であり、（ａ）は行動種別が「チェック」である場合の管理用テーブルの構成の一例を示す図、（ｂ）は行動種別が「対策」である場合の管理用テーブルの構成の一例を示す図である。
【図４】図１に示した判定部が、新たに履歴ＤＢに記憶された履歴データのカテゴリーＩＤを決定する動作の一例を説明するための図である。
【図５】図１に示した判定部が備えるグループＤＢの構成の一例を示す図である。
【図６】図１に示した判定部が、履歴ＤＢに新たに記憶された履歴データをグループ化する動作を説明するためのフローチャートである。
【図７】図１に示したマッピングリスト生成部が生成したマッピングリストの一例を示す図である。
【図８】図１に示したマッピングリスト生成部が備える基礎データテーブルの構成の一例を示す図である。
【発明を実施するための形態】
【００１８】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１９】
図１は、本発明の支援装置の実施の一形態の構成を示すブロック図である。
【００２０】
本実施形態の支援装置１０は図１に示すように、蓄積部１１と、判定部１２と、マッピングリスト生成部１３と、重み値算出部１４と、入力部１５と、提案部１６と、表示部１７とを備えている。
【００２１】
入力部１５は、開発対象のソフトウェアを一意に識別するためのプロダクトＩＤと、ソフトウェア開発における品質や進捗の改善のために過去に実施した行動およびその行動を実施した順番を示す行動情報と、そのソフトウェア開発における品質や進捗を定量的に示す指標毎の過去の計画値および実績値と、そのソフトウェア開発において優先される要素を示す優先要素情報と、上記の改善が実現できたかどうかの評価を示す評価情報とを含む履歴データの入力を受け付ける。そして、入力部１５は、受け付けた履歴データを蓄積部１１へ出力する。また、入力部１５は、上述した指標毎の計画値および実績値と、優先要素情報とを含む支援対象データの入力を受け付ける。そして、入力部１５は、受け付けた支援対象データを提案部１６へ出力する。なお、優先要素情報と、指標毎の計画値および実績値との詳細については後述する。
【００２２】
蓄積部１１は、履歴ＤＢ（Ｄａｔａ  Ｂａｓｅ）を備えている。蓄積部１１は、入力部１５から出力された履歴データを受け付ける。そして、蓄積部１１は、受け付けた履歴データを一意に識別し、その履歴データを示す履歴ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を生成する。そして、蓄積部１１は、生成した履歴ＩＤと、受け付けた履歴データとを対応付けて履歴ＤＢに記憶させる。
【００２３】
図２は、図１に示した蓄積部１１が備える履歴ＤＢに記憶された履歴データの一例を示す図である。
【００２４】
履歴ＤＢでは図２に示すように、履歴ＩＤと、プロダクトＩＤと、優先要素情報と、指標毎の計画値および実績値と、行動情報と、評価情報とが対応付けられている。
【００２５】
優先要素情報は、上述したように、ソフトウェア開発において優先される要素を示す情報である。優先要素情報として履歴ＤＢに記憶可能な情報は予め定められているものとする。ここでは一例として、Ｑ（Ｑｕａｌｉｔｙ：品質）、Ｃ（Ｃｏｓｔ：価格）および、Ｄ（Ｄｅｌｉｖｅｒｙ：納期）を履歴ＤＢに記憶可能な優先要素情報とする。
【００２６】
指標毎の計画値および実績値は、例えばバグ密度や試験項目密度等、ソフトウェア開発において数値として表すことのできる指標の計画値および実績値である。指標の数は、幾つでもよいが予め決められているものとする。ここでは一例として、指標１と指標２との２つとする。
【００２７】
行動情報では、ソフトウェア開発において進捗や品質を改善するために実施した行動の順番を示す行動番号と、行動種別情報と、行動詳細情報と、チェック結果情報とが対応付けられている。
【００２８】
行動種別情報には、「チェック」または「対策」または「行動無し」のいずれかが記憶される。なお、行動番号１に対応する行動種別情報には「チェック」が記憶される。また、最後の行動番号に対応する行動種別情報には「対策」または「行動無し」が記憶される。
【００２９】
行動詳細情報には、対応する行動種別情報に「チェック」が記憶されている場合、チェック内容を示すチェック項目番号が記憶される。また、行動詳細情報には、対応する行動種別に「対策」が記憶されている場合、対策内容を示す対策番号が記憶される。なお、対応する行動種別に「行動無し」が記憶されている場合には、行動詳細情報には何も記憶されない。
【００３０】
チェック結果情報は、行動種別情報が「チェック」の場合にだけ記憶される情報である。チェック結果情報には、対応する行動詳細情報に記憶されたチェック項目番号が示すチェック内容を実施した際のチェック結果が記憶される。
【００３１】
評価情報は、行動情報が示す行動を実施した結果、ソフトウェア開発における品質や進捗が改善したかどうかの評価を示す情報である。評価情報として記憶可能な情報は予め定めておく。ここでは、評価情報として記憶可能な情報を、○と×との２つとする。○は改善されたことを示し、×は改善されなかったことを示す。これ以外にも例えば、評価が低いものから順番に１から１０まで数字を評価情報としてもよい。なお、改善したかどうかの評価は、例えば優先要素情報がＤ（納期）である場合には、行動情報が示す行動の実施前後の進捗の改善度合いに基づいて行うようにすればよい。
【００３２】
ここで、履歴ＤＢに記憶される履歴データは、入力部１５にて受け付けられたデータである。既に履歴データとして履歴ＤＢに記憶されている行動情報と同じ行動情報を入力する際には、入力者が履歴ＤＢに記憶されている行動情報を選択できるようにするのが望ましい。これは、履歴ＤＢの規模の増大を回避するとともに、後述するグループ化を適切に行うためである。そのために、既に履歴ＤＢに記憶された行動情報を一元的に管理する管理用テーブルを生成しておく方法がある。
【００３３】
図３は、図２に示した履歴ＤＢに既に記憶された行動情報を管理する管理用テーブルの構成の一例を示す図であり、（ａ）は行動種別情報が「チェック」である場合の管理用テーブルの構成の一例を示す図、（ｂ）は行動種別情報が「対策」である場合の管理用テーブルの構成の一例を示す図である。
【００３４】
図３（ａ）に示す管理用テーブルは、行動詳細情報として既に履歴ＤＢに記憶されているチェック項目番号と、そのチェック項目番号が示すチェック内容を表すチェック内容情報と、そのチェック項目番号に対応するチェック結果情報としてとり得る情報とを対応付けて記憶している。この管理用テーブルは、履歴データの入力者が履歴データを入力する際に表示部１７に表示される。これにより、入力者は、既に履歴ＤＢに記憶されている履歴データに含まれる行動詳細情報と同じ行動詳細情報を入力する際、表示部１７に表示されたチェック項目番号のいずれかを選択することができる。また、入力者は、選択したチェック項目番号に対応するチェック結果情報のいずれかを選択することができる。従って、同じ行動詳細情報やチェック結果情報が、異なる情報として履歴ＤＢに記憶されてしまうことを回避することができる。
【００３５】
また、図３（ｂ）に示す管理用テーブルは、行動詳細情報として既に履歴ＤＢに記憶されている対策番号と、その対策番号が示す対策内容を表す対策内容情報とを対応付けて記憶している。この管理用テーブルは、図３（ａ）に示した管理用テーブルと同様に、履歴データの入力者が履歴データを入力する際に表示部１７に表示される。これにより、入力者は、既に履歴ＤＢに記憶されている履歴データが示す行動詳細情報と同じ行動詳細情報を入力する際、表示部１７に表示された対策番号を選択することができる。
【００３６】
再度、図１を参照すると、判定部１２は、グループＤＢを備えている。判定部１２は、蓄積部１１が備える履歴ＤＢに新たな履歴データが記憶されると、その履歴データに含まれる指標の計画値と実績値とを比較する。そして、判定部１２は、比較結果に応じ、予め設定された複数のカテゴリーのいずれかに、その履歴データを分類する。具体的には、判定部１２は、比較結果に応じ、その履歴データを分類するためのカテゴリーＩＤを決定する。なお、比較方法としては例えば指標が指標１と指標２の２つである場合、判定部１２は、例えば、実績値が計画値よりも大きいか、実績値と計画値とが等しいか、実績値が計画値よりも小さいかどうかを比較する。この場合、履歴データは９つのカテゴリーのいずれかに分類されることになり、９つのカテゴリーＩＤが予め設定されていることになる。そして、判定部１２は、比較結果に応じ、新たに履歴ＤＢに記憶された履歴データのカテゴリーＩＤを９つのカテゴリーＩＤの中から決定する。
【００３７】
図４は、図１に示した判定部１２が、新たに履歴ＤＢに記憶された履歴データのカテゴリーＩＤを決定する動作の一例を説明するための図である。
【００３８】
ここでは、指標の数が指標１および指標２の２つであり、実績値が計画値よりも大きいか、実績値と計画値とが等しいか、実績値が計画値よりも小さいかどうかに応じて９つのカテゴリーＩＤが設定されている。
【００３９】
なお、指標の実績値と計画値とを比較する方法は上述した方法に限定されない。例えば、計画値と実績値との乖離率をパーセンテージで表し、パーセンテージで表された乖離率に応じてカテゴリーＩＤを決定するようにしてもよい。この場合、上述した方法よりも多くのカテゴリーに履歴データを分類することも可能となる。
【００４０】
次に、判定部１２は、複数のカテゴリーのいずれかに分類された履歴データをグループ化できるかどうかを判定し、グループ化できると判定された履歴データをグループ化してグループＤＢに記憶させる。
【００４１】
ここで、グループ化できるとは、行動番号１に対応する行動詳細情報が同じであり、かつ、その後の行動番号に対応する行動詳細情報とチェック結果情報との組合せが最後まで相反していないことをいう。
【００４２】
また、相反していないとは、ある行動番号に対応するチェック結果情報が同じであり、かつ、次の行動番号に対応する行動が同じであること、または、ある行動番号に対応するチェック結果情報が異なることである。なお、行動が同じとは、行動種別情報が「チェック」である場合は、行動種別情報と行動詳細情報とが一致することであり、行動種別情報が「対策」または「行動無し」の場合には、行動種別情報が一致することである。
【００４３】
なお、判定部１２は、グループ化できるかどうかを判定する処理を効率的に行うため、グループに属する履歴データをさらにサブグループ化してグループＤＢに記憶させる。
【００４４】
図５は、図１に示した判定部１２が備えるグループＤＢの構成の一例を示す図である。
【００４５】
グループＤＢでは図５に示すように、カテゴリーＩＤと、グループを一意に識別するためのグループＩＤと、サブグループを一意に識別するためのサブグループＩＤと、そのサブグループＩＤにて識別されるサブグループに属する履歴データを示す履歴ＩＤとが対応付けられている。
【００４６】
ここで、判定部１２が履歴ＤＢに新たに記憶された履歴データをグループ化する動作について説明する。
【００４７】
図６は、図１に示した判定部１２が、履歴ＤＢに新たに記憶された履歴データをグループ化する動作を説明するためのフローチャートである。ここでは、グループＤＢに図５に示したような情報が記憶されている場合について説明する。
【００４８】
まず、判定部１２は、履歴ＤＢに新たに記憶された履歴データに含まれる指標の計画値と実績値とを比較することにより、この履歴データのカテゴリーＩＤを決定する（ステップＳ１）。
【００４９】
次に、判定部１２は、ステップＳ１にて決定したカテゴリーＩＤに対応するグループＩＤのうちのいずれかをグループＤＢから選択する。そして、判定部１２は、選択したグループＩＤに対応するサブグループＩＤのいずれかをグループＤＢから選択する。
【００５０】
次に、判定部１２は、選択したサブグループＩＤに対応する履歴ＩＤのいずれかを選択し、選択した履歴ＩＤが示す履歴データを履歴ＤＢから抽出する（ステップＳ２）。
【００５１】
次に、判定部１２は、変数Ｎ，Ｍを定義する。そして、判定部１２は、Ｎ＝１とし、Ｍを、抽出した履歴データにおける最後の行動番号とする（ステップＳ３）。
【００５２】
次に、判定部１２は、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎの行動と、抽出した履歴データにおける行動番号Ｎの行動とが同じであるかどうかを確認する（ステップＳ４）。
【００５３】
ステップＳ４における確認の結果、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎの行動と、抽出した履歴データにおける行動番号Ｎの行動とが同じでない場合、判定部１２は、履歴ＤＢに新たに記憶された履歴データと、抽出した履歴データとが相反していると判定する（ステップＳ５）。そして、処理を終了する。
【００５４】
一方、ステップＳ４における確認の結果、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎの行動と、抽出した履歴データにおける行動番号Ｎの行動とが同じである場合、判定部１２は、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎに対応するチェック結果情報と、抽出した履歴データにおける行動番号Ｎに対応するチェック結果情報とが同じであるかどうかを確認する（ステップＳ６）。
【００５５】
ステップＳ６における確認の結果、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎに対応するチェック結果情報と、抽出した履歴データにおける行動番号Ｎのチェック結果情報とが同じでない場合、判定部１２は、履歴ＤＢに新たに記憶された履歴データと、抽出した履歴データとが相反していないと判定する（ステップＳ７）。そして、処理を終了する。
【００５６】
一方、ステップＳ６における確認の結果、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎに対応するチェック結果情報と、抽出した履歴データにおける行動番号Ｎに対応するチェック結果情報とが同じである場合、判定部１２は、Ｎ＝Ｎ＋１とする（ステップＳ８）。
【００５７】
次に、判定部１２は、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎの行動と、抽出した履歴データにおける行動番号Ｎの行動とが同じであるかどうかを確認する（ステップＳ９）。
【００５８】
ステップＳ９における確認の結果、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎの行動と、抽出した履歴データにおける行動番号Ｎの行動とが同じでない場合、判定部１２は、履歴ＤＢに新たに記憶された履歴データと抽出した履歴データとが相反していると判定する（ステップＳ１０）。そして、処理を終了する。
【００５９】
一方、ステップＳ９における確認の結果、履歴ＤＢに新たに記憶された履歴データにおける行動番号Ｎの行動と、抽出した履歴データにおける行動番号Ｎの行動とが同じである場合、判定部１２は、Ｎ＝Ｍが成立するかどうかを確認する（ステップＳ１１）。
【００６０】
ステップＳ１１における確認の結果、Ｎ＝Ｍが成立する場合、判定部１２は、履歴ＤＢに新たに記憶された履歴データが、抽出した履歴データと相反しておらず、かつ、抽出した履歴データと一致すると判定する（ステップＳ１２）。そして、処理を終了する。
【００６１】
一方、ステップＳ１１における判定の結果、Ｎ＝Ｍが成立しない場合、ステップＳ６の動作へ遷移する。
【００６２】
以降、判定部１２は、選択したサブグループＩＤに対応する履歴ＩＤが示すすべての履歴データを１つずつ抽出して上述した動作を繰り返して行う。その後、判定部１２は、選択したグループＩＤに対応するサブグループＩＤのうち未選択のサブグループＩＤを選択し、上述した動作を繰り返して行う。
【００６３】
そして、履歴ＤＢに新たに記憶された履歴データが、選択したグループＩＤに対応する履歴ＩＤが示すすべての履歴データと相反せず、かつ、選択したサブグループＩＤに対応する履歴ＩＤが示す履歴データのいずれかと一致する場合、判定部１２は、履歴ＤＢに新たに記憶された履歴データを示す履歴ＩＤを、その選択したサブグループＩＤに対応付けてグループＤＢに記憶させる。
【００６４】
また、履歴ＤＢに新たに記憶された履歴データが、選択したグループＩＤに対応する履歴ＩＤが示すすべての履歴データと相反せず、かつ、すべてのサブグループＩＤに対応する履歴ＩＤが示す履歴データと一致しない場合、判定部１２は、選択したグループＩＤに対応する新たなサブグループＩＤを生成する。そして、履歴ＤＢに新たに記憶された履歴データを示す履歴ＩＤを、生成したサブグループＩＤに対応付けてグループＤＢに記憶させる。
【００６５】
また、履歴ＤＢに新たに記憶された履歴データが、選択したサブグループＩＤに対応する履歴ＩＤが示す履歴データのすべてと相反していない場合、判定部１２は、新たなグループＩＤを仮グループＩＤとして生成するとともに、生成した仮グループＩＤに対応する新たなサブグループＩＤを生成する。そして、判定部１２は、履歴ＤＢに新たに記憶された履歴データを示す履歴ＩＤと、その選択したサブグループＩＤに対応する履歴ＩＤとを、生成した新たなサブグループＩＤに対応付けてグループＤＢに記憶させる。
【００６６】
以降、判定部１２は、ステップＳ１にて決定したカテゴリーＩＤに対応するグループＩＤのうち、未選択のグループＩＤを選択して上述した動作を繰り返して行う。
【００６７】
そして、履歴ＤＢに新たに記憶された履歴データが、すべてのグループＩＤに対応する履歴ＩＤが示すすべての履歴データと相反する場合、すなわちいずれのグループにもグループ化できない場合、判定部１２は、新たなグループＩＤを生成するとともに、その生成したグループＩＤに対応するサブグループＩＤを生成する。そして、判定部１２は、履歴ＤＢに新たに記憶された履歴データを示す履歴ＩＤを、生成したサブグループＩＤに対応付けてグループＤＢに記憶させる。
【００６８】
なお、仮グループＩＤが生成された場合、判定部１２は、生成された仮グループＩＤのうちの１つを抽出する。次に、判定部１２は、抽出した仮グループＩＤに対応するサブグループＩＤに対応する履歴ＩＤの全てを含むグループを示すグループＩＤをグループＤＢから検索する。そして、検索された場合、判定部１２は、抽出した仮グループＩＤを含む行をグループＤＢから削除する。一方、検索されない場合、判定部１２は、仮グループＩＤを新たなグループＩＤとしてグループＤＢに記憶させる。判定部１２は、これを全ての仮グループＩＤに対して実行する。
【００６９】
また、支援装置１０を初めて導入し、履歴ＤＢに初めて履歴データが記憶された場合、判定部１２は、新たなグループＩＤと、そのグループＩＤに対応する新たなサブグループＩＤを生成する。そして、判定部１２は、その履歴データを示す履歴ＩＤを、生成したサブグループＩＤに対応付けてグループＤＢに記憶させる。
【００７０】
また、１つの履歴ＩＤは、グループＤＢにおいて複数のグループＩＤに対応付けられていてもよい。
【００７１】
再度、図１を参照すると、マッピングリスト生成部１３は、判定部１２にて生成されたグループＤＢに基づいてマッピングリストを生成して記憶する。マッピングリストは、グループＩＤ毎に生成され、そのグループＩＤに対応する履歴ＩＤが示す履歴データに含まれる行動情報のすべてを、開発者等が視認できるようにツリー構造で表したものである。
【００７２】
図７は、図１に示したマッピングリスト生成部１３が生成したマッピングリストの一例を示す図である。
【００７３】
以下に、マッピングリスト生成部１３が図７に示したようなマッピングリストを生成する動作について説明する。
【００７４】
まず、マッピングリスト生成部１３は、グループＤＢに記憶されたカテゴリーＩＤのいずれかを選択する。次に、マッピングリスト生成部１３は、選択したカテゴリーＩＤに対応するグループＩＤのいずれかを選択する。次に、マッピングリスト生成部１３は、選択したグループＩＤに対応するサブグループＩＤのいずれかを選択する。そして、マッピングリスト生成部１３は、選択したサブグループＩＤに対応する履歴ＩＤのいずれかを選択する。
【００７５】
次に、マッピングリスト生成部１３は、選択した履歴ＩＤが示す履歴データのうち、行動番号１に対応する行動種別情報と行動詳細情報とを履歴ＤＢから抽出する。なお、行動番号１に対応する行動種別情報は「チェック」である。
【００７６】
次に、マッピングリスト生成部１３は、抽出した行動詳細情報が示すチェック項目番号に対応するチェック結果情報を、図３（ａ）に示した管理用テーブルから抽出する。そして、マッピングリスト生成部１３は、抽出した行動種別情報および行動詳細情報の下部に、抽出したチェック結果情報を配置してツリー構造とする。
【００７７】
次に、マッピングリスト生成部１３は、選択した履歴ＩＤが示す履歴データのうち行動番号１に対応するチェック結果情報を確認するとともに、行動番号２に対応する行動種別情報を履歴ＤＢから取得する。
【００７８】
取得した行動種別情報が「行動無し」である場合、マッピングリスト生成部１３は、ここまでの行動を一意に識別するための基礎データＩＤを生成する。そして、マッピングリスト生成部１３は、ツリー構造において最下部に配置されているチェック結果情報のうち、確認したチェック結果情報の下部に、取得した行動種別情報と、生成した基礎データＩＤとを配置する。
【００７９】
次に、マッピングリスト生成部１３は、選択したサブグループＩＤに対応する履歴ＩＤが示すすべての履歴データから、複数の優先要素情報毎および評価情報毎に履歴ＩＤの数を集計する。そして、マッピングリスト生成部１３は、選択したグループＩＤと、生成した基礎データＩＤと、複数の優先要素情報毎および評価情報毎の履歴ＩＤの数とを対応付けて自身が備える基礎データテーブルに記憶させる。
【００８０】
図８は、図１に示したマッピングリスト生成部１３が備える基礎データテーブルの構成の一例を示す図である。
【００８１】
基礎データテーブルでは図８に示すように、グループＩＤと、基礎データＩＤと、優先要素情報と、評価情報と、履歴ＩＤの数とが対応付けられている。
【００８２】
また、取得した行動種別情報が「対策」である場合、マッピングリスト生成部１３は、選択したサブグループＩＤに対応する履歴ＩＤが示すすべての履歴データの行動種別情報が「対策」に対応する行動詳細情報を履歴ＤＢから取得する。次に、マッピングリスト生成部１３は、基礎データＩＤを生成する。そして、マッピングリスト生成部１３は、ツリー構造において最下部に配置されているチェック結果情報のうち、確認したチェック結果情報の下部に、取得した行動種別情報および行動詳細情報と、生成した基礎データＩＤとを配置する。
【００８３】
次に、マッピングリスト生成部１３は、選択したサブグループＩＤに対応する履歴ＩＤが示すすべての履歴データから、複数の優先要素情報毎および評価情報毎に履歴ＩＤの数を集計する。そして、マッピングリスト生成部１３は、選択したグループＩＤと、生成した基礎データＩＤと、複数の優先要素情報毎および評価情報毎の履歴ＩＤの数とを対応付けて基礎データテーブルに記憶させる。
【００８４】
また、取得した行動種別情報が「チェック」の場合、マッピングリスト生成部１３は、取得した行動種別情報に対応する行動詳細情報を履歴ＤＢから取得する。そして、マッピングリスト生成部１３は、ツリー構造において最下部に配置されているチェック結果情報のうち、確認したチェック結果情報の下部に、取得した行動種別情報および行動詳細情報を配置する。そして、マッピングリスト生成部１３は、行動番号を１つインクリメントし、１つインクリメントされた行動番号に対応する行動種別情報を履歴ＤＢから取得する。そして、マッピングリスト生成部１３は、取得した行動種別情報が「行動無し」であるか、「対策」であるか、「チェック」であるかに応じて上述した動作を繰り返す。
【００８５】
次に、マッピングリスト生成部１３は、選択したグループＩＤに対応するサブグループＩＤのうち未選択のサブグループＩＤを選択して上述した動作を繰り返して行う。
【００８６】
そして、マッピングリスト生成部１３は、選択したカテゴリーＩＤに対応するグループＩＤのうち未選択のグループＩＤを選択して上述した動作を繰り返して行う。
【００８７】
なお、この繰り返しの動作において、マッピングリスト生成部１３は、同じツリー構造を重複して生成することはない。
【００８８】
また、新たなグループＩＤやサブグループＩＤ、履歴ＩＤがグループＤＢに追加された場合、マッピングリスト生成部１３は、生成済みのツリー構造を基にして、追加されたグループＩＤやサブグループＩＤ、履歴ＩＤに関して上述した動作を行う。これにより、マッピングリストや基礎データテーブルに記憶された情報が更新されることになる。また、グループＩＤに対応するサブグループＩＤが変更されたり、サブグループＩＤに対応する履歴ＩＤが変更されたりした場合も、マッピングリストや基礎データテーブルに記憶された情報が更新される。
【００８９】
なお、図７に示すマッピングリストにおいて、Ｑ、Ｃ、Ｄは、優先要素情報を示しており、Ｑ、Ｃ、Ｄのそれぞれの後に記載された（  ）内には、後述する重み値算出部１４にて算出される重み値という値が記憶される。そのため、マッピングリスト生成部１３は、マッピングリストや、基礎データテーブルに記憶された情報が更新された場合、後述する重み値算出部１４にその旨を通知する。
【００９０】
また、ここでは、ソフトウェア開発において進捗や品質を改善するための行動を図７に示したようなツリー構造で表し、優先要素情報および評価情報毎の履歴ＩＤの数を図８に示したような基礎データテーブルにて記憶したが、この方法は一例である。
【００９１】
再度、図１を参照すると、重み値算出部１４は、図８に示した基礎データテーブルに記憶された情報から重み値を複数の優先要素情報毎に算出する。重み値とは、マッピングリストに付与される値であり、ソフトウェア開発において品質や進捗を改善するために実施すべき行動の優先度を示す値である。すなわち、重み値算出部１４は、マッピングリストの優先度を複数の優先要素情報毎に決定する。なお、ここでは、付与された重み値が大きなマッピングリストほど優先度が高いものとする。
【００９２】
ここで、重み値算出部１４が重み値を算出する動作の一例について説明する。
【００９３】
重み値算出部１４はまず、マッピングリスト生成部１３に記憶された基礎データテーブルに記憶された情報を抽出する。ここでは例えば、基礎データテーブルにおいて、優先要素情報Ｑに対応する評価情報○の履歴ＩＤの数が２０であり、評価情報×の履歴ＩＤの数が３であるとする。
【００９４】
評価情報○の履歴ＩＤを、評価情報×の履歴ＩＤに比べて２倍の重みがあるものとし、履歴ＩＤの数と評価情報の重みとの積を、マッピングリストに付与される重み値とすると、マッピングリストの優先要素情報Ｑの重み値は、例えば以下のように算出することができる。
【００９５】
重み値＝２×２０＋１×３＝４３
そして、重み値算出部１４は、算出した重み値をマッピングリストに対応付けてマッピングリスト生成部１３に記憶させる。
【００９６】
上述したのと同様に、重み値算出部１４が、基礎データＩＤ毎、すなわち、マッピングリストの対策毎の重み値を算出するようにしてもよい。ここでは例えば、基礎データテーブルにおいて、基礎データＩＤ００１が対策Ａに対応し、基礎データＩＤ００２が対策Ｂに対応している場合を考えてみる。
【００９７】
このとき、基礎データテーブルにおいて、基礎データＩＤ００１の優先要素情報Ｑに対応する評価情報○の数が１５であり、評価情報×の履歴ＩＤの数が２であるとする。また、基礎データＩＤ００２の優先要素情報Ｑに対応する評価情報○の履歴ＩＤの数が５であり、評価情報×の履歴ＩＤの数が１であるとする。
【００９８】
評価情報が○の履歴ＩＤを、評価情報が×の履歴ＩＤに比べて２倍の重みがあるものとし、履歴ＩＤの数と評価情報との重みとの積を、対策の重み値とすると、対策Ａ（基礎データＩＤ００１）の優先要素情報Ｑの重み値と、対策Ｂ（基礎データＩＤ００２）の優先要素情報Ｑの重み値とは、例えば以下のように算出することができる。
【００９９】
対策Ａ：重み値＝２×１５＋１×２＝３２
対策Ｂ：重み値＝２×５＋１×１＝１１
そして、重み値算出部１４は、算出した重み値をマッピングリスト上の行動種別情報「対策」に対応付けてマッピングリスト生成部１３に記憶させる。
【０１００】
再度、図１を参照すると、提案部１６は、入力部１５から出力された支援対象データを受け付ける。そして、提案部１６は、受け付けた支援対象データに含まれる指標毎の計画値と実績値との比較を行い、カテゴリーＩＤを決定する。次に、提案部１６は、決定したカテゴリーＩＤに対応するグループＩＤを、判定部１２に記憶されたグループＤＢから取得する。次に、提案部１６は、取得したグループＩＤに対応するマッピングリストをマッピングリスト生成部１３から取得する。そして、提案部１６は、取得したマッピングリストと、そのマッピングリストに付与された重み値とを表示部１７に表示させる。ここで、複数のマッピングリストが取得された場合、提案部１６は、取得した複数のマッピングリストのそれぞれに付与された複数の優先要素情報（Ｑ、Ｃ、Ｄ）毎の重み値のうち、受け付けた支援対象データに含まれる優先要素情報と同じ優先要素情報の重み値の大きさを確認する。そして、提案部１６は、確認した重み値の大きさの違いを開発者等が認識可能なように、取得した複数のマッピングリストのそれぞれを表示部１７に表示させる。例えば、提案部１６は、確認した重み値が大きな順番に、取得した複数のマッピングリストのそれぞれを表示部１７に表示させる。なお、対策にも重み値を付与した場合には、対策に付与された重み値も含めたマッピングリストを表示するようにしてもよい。
【０１０１】
このように本実施形態において支援装置１０は、ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、上記の指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部１５を有する。
【０１０２】
また、支援装置１０は、入力部１５にて受け付けられた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する判定部１２を有する。
【０１０３】
また、支援装置１０は、グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部１３を有する。
【０１０４】
また、支援装置１０は、グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する重み値算出部１４を有する。
【０１０５】
また、支援装置１０は、入力部１５にて受け付けられた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを上記の複数のカテゴリーのいずれかに分類し、分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する提案部１６を有する。
【０１０６】
これにより、開発ノウハウのない開発者に対し、熟練の開発者が徐々に蓄積しているノウハウ等を提供することができる。
【０１０７】
従って、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することが可能となる。また、個々のソフトウェア開発において優先される要素に応じた適切な対策を実施することも可能となる。
【０１０８】
なお、本実施形態では、マッピングリストを表示部１７を用いて外部に通知する場合について説明した。これ以外にも、支援装置１０が例えば通信部を備え、マッピングリストを予め決められた端末等に通信回線を介して送信するようにしてもよい。
【０１０９】
なお、本発明においては、支援装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを支援装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを支援装置に読み込ませ、実行するものであっても良い。支援装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、支援装置に内蔵されたＨＤＤなどを指す。
【符号の説明】
【０１１０】
１０    支援装置
１１    蓄積部
１２    判定部
１３    マッピングリスト生成部
１４    重み値算出部
１５    入力部
１６    提案部
１７    表示部
【図１】
2012256211.tif 000003
【図２】
2012256211.tif 000004
【図３】
2012256211.tif 000005
【図４】
2012256211.tif 000006
【図５】
2012256211.tif 000007
【図６】
2012256211.tif 000008
【図７】
2012256211.tif 000009
【図８】
2012256211.tif 000010