説明

支援装置、支援方法およびプログラム

【課題】ソフトウェア開発において評価や対策の検討にかかる時間を短縮する。
【解決手段】ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、上記の指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部と、複数のカテゴリーのいずれかに履歴データを分類し、さらにグループ化する判定部と、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部と、マッピングリストの優先度を決定する重み値算出部と、支援対象データを上記の複数のカテゴリーのいずれかに分類し、分類されたカテゴリーに対応するグループに対応するマッピングリストを、優先度が認識できるように外部に出力する提案部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア開発における品質や進捗の改善を支援する支援装置、支援方法およびプログラムに関する。
【背景技術】
【0002】
ソフトウェア開発において開発者は、ソフトウェアの品質やソフトウェア開発の進捗を管理するための定量的な指標の計画値を設定する。そして、開発者は、設定した計画値と実績値とを比較することにより、ソフトウェアの品質やソフトウェア開発の進捗を評価し、その評価結果に基づいた対策を実施する。
【0003】
上述した評価や対策の検討は各開発者に任されており、開発ノウハウのない開発者は、評価を間違えたり、適切な対策がわからなかったりする場合がある。また、開発者が適切な評価や対策を実施したとしても、その評価や対策の検討に時間がかかることがある。昨今、ソフトウェア開発は、短期間で完了することが望まれており、評価や対策の検討に時間がかかることは望ましくない。
【0004】
そこで、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することが求められ、それを実現するための技術が例えば、特許文献1に開示されている。
【0005】
特許文献1に開示されている技術においてテスト作業管理支援装置は、品質の信頼性およびテストの十分性に関するデータの入力を受け付ける。次に、テスト作業管理支援装置は、受け付けたデータに基づいてソフトウェアの品質の信頼性とテストの十分性とを推定する。そして、テスト作業管理支援装置は、推定結果と予め定められたアドバイスルールとに基づき、所定のメッセージを選択してメッセージデータとして出力する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−146806号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、ソフトウェア開発の現場において熟練の開発者は、上述した定量的な指標だけではなく、その開発者が有するノウハウ等を用いてソフトウェアの品質やソフトウェア開発の進捗を分析して評価や対策を実施することが多い。
【0008】
個々の開発者が有するノウハウ等は、徐々に蓄積されていくものである。熟練の開発者は、ノウハウ等を蓄積しつつ活用することにより、評価や対策の検討にかかる時間を短縮することができる。
【0009】
上述した特許文献1に開示されている技術では、予め定められたアドバイスルールに基づいた所定のメッセージが選択される。そのため、上述したような徐々に蓄積されていくノウハウ等を活用することができない。
【0010】
従って、特許文献1に開示されている技術は、ソフトウェア開発において評価や対策の検討にかかる時間という問題点を解決するのに十分なものとは言えない。
【0011】
本発明は、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することを可能にする支援装置、支援方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するために本発明の支援装置は、ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、前記指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部と、
前記入力部にて受け付けられた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する判定部と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する重み値算出部と、
前記入力部にて受け付けられた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する提案部と、を有する。
【0013】
また、上記目的を達成するために本発明の支援方法は、ソフトウェア開発を支援する支援装置における支援方法であって、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける処理と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する処理と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する処理と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する処理と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける処理と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する処理と、を有する。
【0014】
また、上記目的を達成するために本発明のプログラムは、ソフトウェア開発を支援する支援装置に、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける機能と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する機能と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する機能と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する機能と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける機能と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する機能と、を実現させる。
【発明の効果】
【0015】
本発明は以上説明したように構成されているので、開発ノウハウのない開発者に対し、熟練の開発者が徐々に蓄積しているノウハウ等を提供することができる。
【0016】
従って、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することが可能となる。
【図面の簡単な説明】
【0017】
【図1】本発明の支援装置の実施の一形態の構成を示すブロック図である。
【図2】図1に示した蓄積部が備える履歴DBに記憶された履歴データの一例を示す図である。
【図3】図2に示した履歴DBに既に記憶された行動情報を管理する管理用テーブルの構成の一例を示す図であり、(a)は行動種別が「チェック」である場合の管理用テーブルの構成の一例を示す図、(b)は行動種別が「対策」である場合の管理用テーブルの構成の一例を示す図である。
【図4】図1に示した判定部が、新たに履歴DBに記憶された履歴データのカテゴリーIDを決定する動作の一例を説明するための図である。
【図5】図1に示した判定部が備えるグループDBの構成の一例を示す図である。
【図6】図1に示した判定部が、履歴DBに新たに記憶された履歴データをグループ化する動作を説明するためのフローチャートである。
【図7】図1に示したマッピングリスト生成部が生成したマッピングリストの一例を示す図である。
【図8】図1に示したマッピングリスト生成部が備える基礎データテーブルの構成の一例を示す図である。
【発明を実施するための形態】
【0018】
以下に、本発明の実施の形態について図面を参照して説明する。
【0019】
図1は、本発明の支援装置の実施の一形態の構成を示すブロック図である。
【0020】
本実施形態の支援装置10は図1に示すように、蓄積部11と、判定部12と、マッピングリスト生成部13と、重み値算出部14と、入力部15と、提案部16と、表示部17とを備えている。
【0021】
入力部15は、開発対象のソフトウェアを一意に識別するためのプロダクトIDと、ソフトウェア開発における品質や進捗の改善のために過去に実施した行動およびその行動を実施した順番を示す行動情報と、そのソフトウェア開発における品質や進捗を定量的に示す指標毎の過去の計画値および実績値と、そのソフトウェア開発において優先される要素を示す優先要素情報と、上記の改善が実現できたかどうかの評価を示す評価情報とを含む履歴データの入力を受け付ける。そして、入力部15は、受け付けた履歴データを蓄積部11へ出力する。また、入力部15は、上述した指標毎の計画値および実績値と、優先要素情報とを含む支援対象データの入力を受け付ける。そして、入力部15は、受け付けた支援対象データを提案部16へ出力する。なお、優先要素情報と、指標毎の計画値および実績値との詳細については後述する。
【0022】
蓄積部11は、履歴DB(Data Base)を備えている。蓄積部11は、入力部15から出力された履歴データを受け付ける。そして、蓄積部11は、受け付けた履歴データを一意に識別し、その履歴データを示す履歴ID(Identification)を生成する。そして、蓄積部11は、生成した履歴IDと、受け付けた履歴データとを対応付けて履歴DBに記憶させる。
【0023】
図2は、図1に示した蓄積部11が備える履歴DBに記憶された履歴データの一例を示す図である。
【0024】
履歴DBでは図2に示すように、履歴IDと、プロダクトIDと、優先要素情報と、指標毎の計画値および実績値と、行動情報と、評価情報とが対応付けられている。
【0025】
優先要素情報は、上述したように、ソフトウェア開発において優先される要素を示す情報である。優先要素情報として履歴DBに記憶可能な情報は予め定められているものとする。ここでは一例として、Q(Quality:品質)、C(Cost:価格)および、D(Delivery:納期)を履歴DBに記憶可能な優先要素情報とする。
【0026】
指標毎の計画値および実績値は、例えばバグ密度や試験項目密度等、ソフトウェア開発において数値として表すことのできる指標の計画値および実績値である。指標の数は、幾つでもよいが予め決められているものとする。ここでは一例として、指標1と指標2との2つとする。
【0027】
行動情報では、ソフトウェア開発において進捗や品質を改善するために実施した行動の順番を示す行動番号と、行動種別情報と、行動詳細情報と、チェック結果情報とが対応付けられている。
【0028】
行動種別情報には、「チェック」または「対策」または「行動無し」のいずれかが記憶される。なお、行動番号1に対応する行動種別情報には「チェック」が記憶される。また、最後の行動番号に対応する行動種別情報には「対策」または「行動無し」が記憶される。
【0029】
行動詳細情報には、対応する行動種別情報に「チェック」が記憶されている場合、チェック内容を示すチェック項目番号が記憶される。また、行動詳細情報には、対応する行動種別に「対策」が記憶されている場合、対策内容を示す対策番号が記憶される。なお、対応する行動種別に「行動無し」が記憶されている場合には、行動詳細情報には何も記憶されない。
【0030】
チェック結果情報は、行動種別情報が「チェック」の場合にだけ記憶される情報である。チェック結果情報には、対応する行動詳細情報に記憶されたチェック項目番号が示すチェック内容を実施した際のチェック結果が記憶される。
【0031】
評価情報は、行動情報が示す行動を実施した結果、ソフトウェア開発における品質や進捗が改善したかどうかの評価を示す情報である。評価情報として記憶可能な情報は予め定めておく。ここでは、評価情報として記憶可能な情報を、○と×との2つとする。○は改善されたことを示し、×は改善されなかったことを示す。これ以外にも例えば、評価が低いものから順番に1から10まで数字を評価情報としてもよい。なお、改善したかどうかの評価は、例えば優先要素情報がD(納期)である場合には、行動情報が示す行動の実施前後の進捗の改善度合いに基づいて行うようにすればよい。
【0032】
ここで、履歴DBに記憶される履歴データは、入力部15にて受け付けられたデータである。既に履歴データとして履歴DBに記憶されている行動情報と同じ行動情報を入力する際には、入力者が履歴DBに記憶されている行動情報を選択できるようにするのが望ましい。これは、履歴DBの規模の増大を回避するとともに、後述するグループ化を適切に行うためである。そのために、既に履歴DBに記憶された行動情報を一元的に管理する管理用テーブルを生成しておく方法がある。
【0033】
図3は、図2に示した履歴DBに既に記憶された行動情報を管理する管理用テーブルの構成の一例を示す図であり、(a)は行動種別情報が「チェック」である場合の管理用テーブルの構成の一例を示す図、(b)は行動種別情報が「対策」である場合の管理用テーブルの構成の一例を示す図である。
【0034】
図3(a)に示す管理用テーブルは、行動詳細情報として既に履歴DBに記憶されているチェック項目番号と、そのチェック項目番号が示すチェック内容を表すチェック内容情報と、そのチェック項目番号に対応するチェック結果情報としてとり得る情報とを対応付けて記憶している。この管理用テーブルは、履歴データの入力者が履歴データを入力する際に表示部17に表示される。これにより、入力者は、既に履歴DBに記憶されている履歴データに含まれる行動詳細情報と同じ行動詳細情報を入力する際、表示部17に表示されたチェック項目番号のいずれかを選択することができる。また、入力者は、選択したチェック項目番号に対応するチェック結果情報のいずれかを選択することができる。従って、同じ行動詳細情報やチェック結果情報が、異なる情報として履歴DBに記憶されてしまうことを回避することができる。
【0035】
また、図3(b)に示す管理用テーブルは、行動詳細情報として既に履歴DBに記憶されている対策番号と、その対策番号が示す対策内容を表す対策内容情報とを対応付けて記憶している。この管理用テーブルは、図3(a)に示した管理用テーブルと同様に、履歴データの入力者が履歴データを入力する際に表示部17に表示される。これにより、入力者は、既に履歴DBに記憶されている履歴データが示す行動詳細情報と同じ行動詳細情報を入力する際、表示部17に表示された対策番号を選択することができる。
【0036】
再度、図1を参照すると、判定部12は、グループDBを備えている。判定部12は、蓄積部11が備える履歴DBに新たな履歴データが記憶されると、その履歴データに含まれる指標の計画値と実績値とを比較する。そして、判定部12は、比較結果に応じ、予め設定された複数のカテゴリーのいずれかに、その履歴データを分類する。具体的には、判定部12は、比較結果に応じ、その履歴データを分類するためのカテゴリーIDを決定する。なお、比較方法としては例えば指標が指標1と指標2の2つである場合、判定部12は、例えば、実績値が計画値よりも大きいか、実績値と計画値とが等しいか、実績値が計画値よりも小さいかどうかを比較する。この場合、履歴データは9つのカテゴリーのいずれかに分類されることになり、9つのカテゴリーIDが予め設定されていることになる。そして、判定部12は、比較結果に応じ、新たに履歴DBに記憶された履歴データのカテゴリーIDを9つのカテゴリーIDの中から決定する。
【0037】
図4は、図1に示した判定部12が、新たに履歴DBに記憶された履歴データのカテゴリーIDを決定する動作の一例を説明するための図である。
【0038】
ここでは、指標の数が指標1および指標2の2つであり、実績値が計画値よりも大きいか、実績値と計画値とが等しいか、実績値が計画値よりも小さいかどうかに応じて9つのカテゴリーIDが設定されている。
【0039】
なお、指標の実績値と計画値とを比較する方法は上述した方法に限定されない。例えば、計画値と実績値との乖離率をパーセンテージで表し、パーセンテージで表された乖離率に応じてカテゴリーIDを決定するようにしてもよい。この場合、上述した方法よりも多くのカテゴリーに履歴データを分類することも可能となる。
【0040】
次に、判定部12は、複数のカテゴリーのいずれかに分類された履歴データをグループ化できるかどうかを判定し、グループ化できると判定された履歴データをグループ化してグループDBに記憶させる。
【0041】
ここで、グループ化できるとは、行動番号1に対応する行動詳細情報が同じであり、かつ、その後の行動番号に対応する行動詳細情報とチェック結果情報との組合せが最後まで相反していないことをいう。
【0042】
また、相反していないとは、ある行動番号に対応するチェック結果情報が同じであり、かつ、次の行動番号に対応する行動が同じであること、または、ある行動番号に対応するチェック結果情報が異なることである。なお、行動が同じとは、行動種別情報が「チェック」である場合は、行動種別情報と行動詳細情報とが一致することであり、行動種別情報が「対策」または「行動無し」の場合には、行動種別情報が一致することである。
【0043】
なお、判定部12は、グループ化できるかどうかを判定する処理を効率的に行うため、グループに属する履歴データをさらにサブグループ化してグループDBに記憶させる。
【0044】
図5は、図1に示した判定部12が備えるグループDBの構成の一例を示す図である。
【0045】
グループDBでは図5に示すように、カテゴリーIDと、グループを一意に識別するためのグループIDと、サブグループを一意に識別するためのサブグループIDと、そのサブグループIDにて識別されるサブグループに属する履歴データを示す履歴IDとが対応付けられている。
【0046】
ここで、判定部12が履歴DBに新たに記憶された履歴データをグループ化する動作について説明する。
【0047】
図6は、図1に示した判定部12が、履歴DBに新たに記憶された履歴データをグループ化する動作を説明するためのフローチャートである。ここでは、グループDBに図5に示したような情報が記憶されている場合について説明する。
【0048】
まず、判定部12は、履歴DBに新たに記憶された履歴データに含まれる指標の計画値と実績値とを比較することにより、この履歴データのカテゴリーIDを決定する(ステップS1)。
【0049】
次に、判定部12は、ステップS1にて決定したカテゴリーIDに対応するグループIDのうちのいずれかをグループDBから選択する。そして、判定部12は、選択したグループIDに対応するサブグループIDのいずれかをグループDBから選択する。
【0050】
次に、判定部12は、選択したサブグループIDに対応する履歴IDのいずれかを選択し、選択した履歴IDが示す履歴データを履歴DBから抽出する(ステップS2)。
【0051】
次に、判定部12は、変数N,Mを定義する。そして、判定部12は、N=1とし、Mを、抽出した履歴データにおける最後の行動番号とする(ステップS3)。
【0052】
次に、判定部12は、履歴DBに新たに記憶された履歴データにおける行動番号Nの行動と、抽出した履歴データにおける行動番号Nの行動とが同じであるかどうかを確認する(ステップS4)。
【0053】
ステップS4における確認の結果、履歴DBに新たに記憶された履歴データにおける行動番号Nの行動と、抽出した履歴データにおける行動番号Nの行動とが同じでない場合、判定部12は、履歴DBに新たに記憶された履歴データと、抽出した履歴データとが相反していると判定する(ステップS5)。そして、処理を終了する。
【0054】
一方、ステップS4における確認の結果、履歴DBに新たに記憶された履歴データにおける行動番号Nの行動と、抽出した履歴データにおける行動番号Nの行動とが同じである場合、判定部12は、履歴DBに新たに記憶された履歴データにおける行動番号Nに対応するチェック結果情報と、抽出した履歴データにおける行動番号Nに対応するチェック結果情報とが同じであるかどうかを確認する(ステップS6)。
【0055】
ステップS6における確認の結果、履歴DBに新たに記憶された履歴データにおける行動番号Nに対応するチェック結果情報と、抽出した履歴データにおける行動番号Nのチェック結果情報とが同じでない場合、判定部12は、履歴DBに新たに記憶された履歴データと、抽出した履歴データとが相反していないと判定する(ステップS7)。そして、処理を終了する。
【0056】
一方、ステップS6における確認の結果、履歴DBに新たに記憶された履歴データにおける行動番号Nに対応するチェック結果情報と、抽出した履歴データにおける行動番号Nに対応するチェック結果情報とが同じである場合、判定部12は、N=N+1とする(ステップS8)。
【0057】
次に、判定部12は、履歴DBに新たに記憶された履歴データにおける行動番号Nの行動と、抽出した履歴データにおける行動番号Nの行動とが同じであるかどうかを確認する(ステップS9)。
【0058】
ステップS9における確認の結果、履歴DBに新たに記憶された履歴データにおける行動番号Nの行動と、抽出した履歴データにおける行動番号Nの行動とが同じでない場合、判定部12は、履歴DBに新たに記憶された履歴データと抽出した履歴データとが相反していると判定する(ステップS10)。そして、処理を終了する。
【0059】
一方、ステップS9における確認の結果、履歴DBに新たに記憶された履歴データにおける行動番号Nの行動と、抽出した履歴データにおける行動番号Nの行動とが同じである場合、判定部12は、N=Mが成立するかどうかを確認する(ステップS11)。
【0060】
ステップS11における確認の結果、N=Mが成立する場合、判定部12は、履歴DBに新たに記憶された履歴データが、抽出した履歴データと相反しておらず、かつ、抽出した履歴データと一致すると判定する(ステップS12)。そして、処理を終了する。
【0061】
一方、ステップS11における判定の結果、N=Mが成立しない場合、ステップS6の動作へ遷移する。
【0062】
以降、判定部12は、選択したサブグループIDに対応する履歴IDが示すすべての履歴データを1つずつ抽出して上述した動作を繰り返して行う。その後、判定部12は、選択したグループIDに対応するサブグループIDのうち未選択のサブグループIDを選択し、上述した動作を繰り返して行う。
【0063】
そして、履歴DBに新たに記憶された履歴データが、選択したグループIDに対応する履歴IDが示すすべての履歴データと相反せず、かつ、選択したサブグループIDに対応する履歴IDが示す履歴データのいずれかと一致する場合、判定部12は、履歴DBに新たに記憶された履歴データを示す履歴IDを、その選択したサブグループIDに対応付けてグループDBに記憶させる。
【0064】
また、履歴DBに新たに記憶された履歴データが、選択したグループIDに対応する履歴IDが示すすべての履歴データと相反せず、かつ、すべてのサブグループIDに対応する履歴IDが示す履歴データと一致しない場合、判定部12は、選択したグループIDに対応する新たなサブグループIDを生成する。そして、履歴DBに新たに記憶された履歴データを示す履歴IDを、生成したサブグループIDに対応付けてグループDBに記憶させる。
【0065】
また、履歴DBに新たに記憶された履歴データが、選択したサブグループIDに対応する履歴IDが示す履歴データのすべてと相反していない場合、判定部12は、新たなグループIDを仮グループIDとして生成するとともに、生成した仮グループIDに対応する新たなサブグループIDを生成する。そして、判定部12は、履歴DBに新たに記憶された履歴データを示す履歴IDと、その選択したサブグループIDに対応する履歴IDとを、生成した新たなサブグループIDに対応付けてグループDBに記憶させる。
【0066】
以降、判定部12は、ステップS1にて決定したカテゴリーIDに対応するグループIDのうち、未選択のグループIDを選択して上述した動作を繰り返して行う。
【0067】
そして、履歴DBに新たに記憶された履歴データが、すべてのグループIDに対応する履歴IDが示すすべての履歴データと相反する場合、すなわちいずれのグループにもグループ化できない場合、判定部12は、新たなグループIDを生成するとともに、その生成したグループIDに対応するサブグループIDを生成する。そして、判定部12は、履歴DBに新たに記憶された履歴データを示す履歴IDを、生成したサブグループIDに対応付けてグループDBに記憶させる。
【0068】
なお、仮グループIDが生成された場合、判定部12は、生成された仮グループIDのうちの1つを抽出する。次に、判定部12は、抽出した仮グループIDに対応するサブグループIDに対応する履歴IDの全てを含むグループを示すグループIDをグループDBから検索する。そして、検索された場合、判定部12は、抽出した仮グループIDを含む行をグループDBから削除する。一方、検索されない場合、判定部12は、仮グループIDを新たなグループIDとしてグループDBに記憶させる。判定部12は、これを全ての仮グループIDに対して実行する。
【0069】
また、支援装置10を初めて導入し、履歴DBに初めて履歴データが記憶された場合、判定部12は、新たなグループIDと、そのグループIDに対応する新たなサブグループIDを生成する。そして、判定部12は、その履歴データを示す履歴IDを、生成したサブグループIDに対応付けてグループDBに記憶させる。
【0070】
また、1つの履歴IDは、グループDBにおいて複数のグループIDに対応付けられていてもよい。
【0071】
再度、図1を参照すると、マッピングリスト生成部13は、判定部12にて生成されたグループDBに基づいてマッピングリストを生成して記憶する。マッピングリストは、グループID毎に生成され、そのグループIDに対応する履歴IDが示す履歴データに含まれる行動情報のすべてを、開発者等が視認できるようにツリー構造で表したものである。
【0072】
図7は、図1に示したマッピングリスト生成部13が生成したマッピングリストの一例を示す図である。
【0073】
以下に、マッピングリスト生成部13が図7に示したようなマッピングリストを生成する動作について説明する。
【0074】
まず、マッピングリスト生成部13は、グループDBに記憶されたカテゴリーIDのいずれかを選択する。次に、マッピングリスト生成部13は、選択したカテゴリーIDに対応するグループIDのいずれかを選択する。次に、マッピングリスト生成部13は、選択したグループIDに対応するサブグループIDのいずれかを選択する。そして、マッピングリスト生成部13は、選択したサブグループIDに対応する履歴IDのいずれかを選択する。
【0075】
次に、マッピングリスト生成部13は、選択した履歴IDが示す履歴データのうち、行動番号1に対応する行動種別情報と行動詳細情報とを履歴DBから抽出する。なお、行動番号1に対応する行動種別情報は「チェック」である。
【0076】
次に、マッピングリスト生成部13は、抽出した行動詳細情報が示すチェック項目番号に対応するチェック結果情報を、図3(a)に示した管理用テーブルから抽出する。そして、マッピングリスト生成部13は、抽出した行動種別情報および行動詳細情報の下部に、抽出したチェック結果情報を配置してツリー構造とする。
【0077】
次に、マッピングリスト生成部13は、選択した履歴IDが示す履歴データのうち行動番号1に対応するチェック結果情報を確認するとともに、行動番号2に対応する行動種別情報を履歴DBから取得する。
【0078】
取得した行動種別情報が「行動無し」である場合、マッピングリスト生成部13は、ここまでの行動を一意に識別するための基礎データIDを生成する。そして、マッピングリスト生成部13は、ツリー構造において最下部に配置されているチェック結果情報のうち、確認したチェック結果情報の下部に、取得した行動種別情報と、生成した基礎データIDとを配置する。
【0079】
次に、マッピングリスト生成部13は、選択したサブグループIDに対応する履歴IDが示すすべての履歴データから、複数の優先要素情報毎および評価情報毎に履歴IDの数を集計する。そして、マッピングリスト生成部13は、選択したグループIDと、生成した基礎データIDと、複数の優先要素情報毎および評価情報毎の履歴IDの数とを対応付けて自身が備える基礎データテーブルに記憶させる。
【0080】
図8は、図1に示したマッピングリスト生成部13が備える基礎データテーブルの構成の一例を示す図である。
【0081】
基礎データテーブルでは図8に示すように、グループIDと、基礎データIDと、優先要素情報と、評価情報と、履歴IDの数とが対応付けられている。
【0082】
また、取得した行動種別情報が「対策」である場合、マッピングリスト生成部13は、選択したサブグループIDに対応する履歴IDが示すすべての履歴データの行動種別情報が「対策」に対応する行動詳細情報を履歴DBから取得する。次に、マッピングリスト生成部13は、基礎データIDを生成する。そして、マッピングリスト生成部13は、ツリー構造において最下部に配置されているチェック結果情報のうち、確認したチェック結果情報の下部に、取得した行動種別情報および行動詳細情報と、生成した基礎データIDとを配置する。
【0083】
次に、マッピングリスト生成部13は、選択したサブグループIDに対応する履歴IDが示すすべての履歴データから、複数の優先要素情報毎および評価情報毎に履歴IDの数を集計する。そして、マッピングリスト生成部13は、選択したグループIDと、生成した基礎データIDと、複数の優先要素情報毎および評価情報毎の履歴IDの数とを対応付けて基礎データテーブルに記憶させる。
【0084】
また、取得した行動種別情報が「チェック」の場合、マッピングリスト生成部13は、取得した行動種別情報に対応する行動詳細情報を履歴DBから取得する。そして、マッピングリスト生成部13は、ツリー構造において最下部に配置されているチェック結果情報のうち、確認したチェック結果情報の下部に、取得した行動種別情報および行動詳細情報を配置する。そして、マッピングリスト生成部13は、行動番号を1つインクリメントし、1つインクリメントされた行動番号に対応する行動種別情報を履歴DBから取得する。そして、マッピングリスト生成部13は、取得した行動種別情報が「行動無し」であるか、「対策」であるか、「チェック」であるかに応じて上述した動作を繰り返す。
【0085】
次に、マッピングリスト生成部13は、選択したグループIDに対応するサブグループIDのうち未選択のサブグループIDを選択して上述した動作を繰り返して行う。
【0086】
そして、マッピングリスト生成部13は、選択したカテゴリーIDに対応するグループIDのうち未選択のグループIDを選択して上述した動作を繰り返して行う。
【0087】
なお、この繰り返しの動作において、マッピングリスト生成部13は、同じツリー構造を重複して生成することはない。
【0088】
また、新たなグループIDやサブグループID、履歴IDがグループDBに追加された場合、マッピングリスト生成部13は、生成済みのツリー構造を基にして、追加されたグループIDやサブグループID、履歴IDに関して上述した動作を行う。これにより、マッピングリストや基礎データテーブルに記憶された情報が更新されることになる。また、グループIDに対応するサブグループIDが変更されたり、サブグループIDに対応する履歴IDが変更されたりした場合も、マッピングリストや基礎データテーブルに記憶された情報が更新される。
【0089】
なお、図7に示すマッピングリストにおいて、Q、C、Dは、優先要素情報を示しており、Q、C、Dのそれぞれの後に記載された( )内には、後述する重み値算出部14にて算出される重み値という値が記憶される。そのため、マッピングリスト生成部13は、マッピングリストや、基礎データテーブルに記憶された情報が更新された場合、後述する重み値算出部14にその旨を通知する。
【0090】
また、ここでは、ソフトウェア開発において進捗や品質を改善するための行動を図7に示したようなツリー構造で表し、優先要素情報および評価情報毎の履歴IDの数を図8に示したような基礎データテーブルにて記憶したが、この方法は一例である。
【0091】
再度、図1を参照すると、重み値算出部14は、図8に示した基礎データテーブルに記憶された情報から重み値を複数の優先要素情報毎に算出する。重み値とは、マッピングリストに付与される値であり、ソフトウェア開発において品質や進捗を改善するために実施すべき行動の優先度を示す値である。すなわち、重み値算出部14は、マッピングリストの優先度を複数の優先要素情報毎に決定する。なお、ここでは、付与された重み値が大きなマッピングリストほど優先度が高いものとする。
【0092】
ここで、重み値算出部14が重み値を算出する動作の一例について説明する。
【0093】
重み値算出部14はまず、マッピングリスト生成部13に記憶された基礎データテーブルに記憶された情報を抽出する。ここでは例えば、基礎データテーブルにおいて、優先要素情報Qに対応する評価情報○の履歴IDの数が20であり、評価情報×の履歴IDの数が3であるとする。
【0094】
評価情報○の履歴IDを、評価情報×の履歴IDに比べて2倍の重みがあるものとし、履歴IDの数と評価情報の重みとの積を、マッピングリストに付与される重み値とすると、マッピングリストの優先要素情報Qの重み値は、例えば以下のように算出することができる。
【0095】
重み値=2×20+1×3=43
そして、重み値算出部14は、算出した重み値をマッピングリストに対応付けてマッピングリスト生成部13に記憶させる。
【0096】
上述したのと同様に、重み値算出部14が、基礎データID毎、すなわち、マッピングリストの対策毎の重み値を算出するようにしてもよい。ここでは例えば、基礎データテーブルにおいて、基礎データID001が対策Aに対応し、基礎データID002が対策Bに対応している場合を考えてみる。
【0097】
このとき、基礎データテーブルにおいて、基礎データID001の優先要素情報Qに対応する評価情報○の数が15であり、評価情報×の履歴IDの数が2であるとする。また、基礎データID002の優先要素情報Qに対応する評価情報○の履歴IDの数が5であり、評価情報×の履歴IDの数が1であるとする。
【0098】
評価情報が○の履歴IDを、評価情報が×の履歴IDに比べて2倍の重みがあるものとし、履歴IDの数と評価情報との重みとの積を、対策の重み値とすると、対策A(基礎データID001)の優先要素情報Qの重み値と、対策B(基礎データID002)の優先要素情報Qの重み値とは、例えば以下のように算出することができる。
【0099】
対策A:重み値=2×15+1×2=32
対策B:重み値=2×5+1×1=11
そして、重み値算出部14は、算出した重み値をマッピングリスト上の行動種別情報「対策」に対応付けてマッピングリスト生成部13に記憶させる。
【0100】
再度、図1を参照すると、提案部16は、入力部15から出力された支援対象データを受け付ける。そして、提案部16は、受け付けた支援対象データに含まれる指標毎の計画値と実績値との比較を行い、カテゴリーIDを決定する。次に、提案部16は、決定したカテゴリーIDに対応するグループIDを、判定部12に記憶されたグループDBから取得する。次に、提案部16は、取得したグループIDに対応するマッピングリストをマッピングリスト生成部13から取得する。そして、提案部16は、取得したマッピングリストと、そのマッピングリストに付与された重み値とを表示部17に表示させる。ここで、複数のマッピングリストが取得された場合、提案部16は、取得した複数のマッピングリストのそれぞれに付与された複数の優先要素情報(Q、C、D)毎の重み値のうち、受け付けた支援対象データに含まれる優先要素情報と同じ優先要素情報の重み値の大きさを確認する。そして、提案部16は、確認した重み値の大きさの違いを開発者等が認識可能なように、取得した複数のマッピングリストのそれぞれを表示部17に表示させる。例えば、提案部16は、確認した重み値が大きな順番に、取得した複数のマッピングリストのそれぞれを表示部17に表示させる。なお、対策にも重み値を付与した場合には、対策に付与された重み値も含めたマッピングリストを表示するようにしてもよい。
【0101】
このように本実施形態において支援装置10は、ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、上記の指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部15を有する。
【0102】
また、支援装置10は、入力部15にて受け付けられた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する判定部12を有する。
【0103】
また、支援装置10は、グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部13を有する。
【0104】
また、支援装置10は、グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する重み値算出部14を有する。
【0105】
また、支援装置10は、入力部15にて受け付けられた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを上記の複数のカテゴリーのいずれかに分類し、分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する提案部16を有する。
【0106】
これにより、開発ノウハウのない開発者に対し、熟練の開発者が徐々に蓄積しているノウハウ等を提供することができる。
【0107】
従って、ソフトウェア開発において評価や対策の検討にかかる時間を短縮することが可能となる。また、個々のソフトウェア開発において優先される要素に応じた適切な対策を実施することも可能となる。
【0108】
なお、本実施形態では、マッピングリストを表示部17を用いて外部に通知する場合について説明した。これ以外にも、支援装置10が例えば通信部を備え、マッピングリストを予め決められた端末等に通信回線を介して送信するようにしてもよい。
【0109】
なお、本発明においては、支援装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを支援装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを支援装置に読み込ませ、実行するものであっても良い。支援装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、支援装置に内蔵されたHDDなどを指す。
【符号の説明】
【0110】
10 支援装置
11 蓄積部
12 判定部
13 マッピングリスト生成部
14 重み値算出部
15 入力部
16 提案部
17 表示部

【特許請求の範囲】
【請求項1】
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データと、前記指標の計画値および実績値を含む支援対象データとの入力を受け付ける入力部と、
前記入力部にて受け付けられた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する判定部と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成するマッピングリスト生成部と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する重み値算出部と、
前記入力部にて受け付けられた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する提案部と、を有する支援装置。
【請求項2】
請求項1に記載の支援装置において、
前記履歴データと前記支援対象データとは、ソフトウェア開発において優先される複数の要素のそれぞれを示す複数の優先要素情報のうちのいずれかをさらに含み、
前記重み値算出部は、前記グループに属する履歴データの数と、当該履歴データに含まれる優先要素情報とに基づき、当該グループに対応するマッピングリストの優先度を前記複数の優先要素情報毎に決定し、
前記提案部は、前記分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの前記複数の優先要素情報毎の優先度のうち、前記入力部にて受け付けられた支援対象データに含まれる優先要素情報と同じ優先要素情報の優先度が認識できるように外部に出力する支援装置。
【請求項3】
請求項2に記載の支援装置において、
前記履歴データは、当該ソフトウェア開発における品質や進捗の改善のために過去に実施した行動の結果、当該改善が実現できたかどうかの評価を示す評価情報をさらに含み、
前記重み値算出部は、前記グループに属する履歴データの数と、当該履歴データに含まれる優先要素情報および評価情報とに基づき、当該グループに対応するマッピングリストの優先度を前記複数の優先要素情報毎に決定する支援装置。
【請求項4】
ソフトウェア開発を支援する支援装置における支援方法であって、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける処理と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する処理と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する処理と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する処理と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける処理と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する処理と、を有する支援方法。
【請求項5】
ソフトウェア開発を支援する支援装置に、
ソフトウェア開発における品質や進捗の改善のために過去に実施した行動および当該行動を実施した順番を示す行動情報と、当該ソフトウェア開発における品質や進捗を示す指標の過去の計画値および実績値とを含む履歴データを受け付ける機能と、
前記受け付けた履歴データを、当該履歴データに含まれる過去の計画値および実績値に基づき、予め決められた複数のカテゴリーのいずれかに分類し、該分類された履歴データを、当該履歴データに含まれる行動情報に基づき、当該カテゴリーに対応付けられたグループにグループ化する機能と、
前記グループに対応付けられ、当該グループに属する履歴データに含まれる行動情報のすべてを表すマッピングリストを生成する機能と、
前記グループに属する履歴データの数に基づき、当該グループに対応するマッピングリストの優先度を決定する機能と、
前記指標の計画値および実績値を含む支援対象データの入力を受け付ける機能と、
前記受け付けた支援対象データに含まれる計画値および実績値に基づき、当該支援対象データを前記複数のカテゴリーのいずれかに分類し、該分類されたカテゴリーに対応するグループに対応するマッピングリストを、当該マッピングリストの優先度が認識できるように外部に出力する機能と、を実現させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−256211(P2012−256211A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−128969(P2011−128969)
【出願日】平成23年6月9日(2011.6.9)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】