JP6016613B2 - Software reliability evaluation apparatus, software reliability evaluation method, and program - Google Patents
Software reliability evaluation apparatus, software reliability evaluation method, and program Download PDFInfo
- Publication number
- JP6016613B2 JP6016613B2 JP2012279012A JP2012279012A JP6016613B2 JP 6016613 B2 JP6016613 B2 JP 6016613B2 JP 2012279012 A JP2012279012 A JP 2012279012A JP 2012279012 A JP2012279012 A JP 2012279012A JP 6016613 B2 JP6016613 B2 JP 6016613B2
- Authority
- JP
- Japan
- Prior art keywords
- division
- module
- development
- bug
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000011156 evaluation Methods 0.000 title claims description 63
- 238000011161 development Methods 0.000 claims description 106
- 230000018109 developmental process Effects 0.000 description 76
- 235000019580 granularity Nutrition 0.000 description 31
- 238000000034 method Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 8
- 238000012854 evaluation process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
本発明は、ソフトウェア信頼性評価装置、ソフトウェア信頼性評価方法、及びプログラムに関する。 The present invention relates to a software reliability evaluation apparatus, a software reliability evaluation method, and a program.
ソフトウェアの信頼性を評価する方法として、ゴンペルツ曲線モデルやロジスティック曲線モデルと、バグの発生履歴とから残存するバグの数を予測し、ソフトウェアの信頼性を評価する方法がある。また、これらの曲線モデルのパラメータを推定する方法(例えば、特許文献1参照)や、バグ発生履歴と共にバグ発見効率を入力することにより、ゴンペルツ曲線モデルによるソフトウェアの信頼度成長曲線を補正する方法(例えば、特許文献2参照)等により、ソフトウェアの信頼性予測の精度を向上させる技術が知られている。 As a method of evaluating the reliability of software, there is a method of estimating the number of remaining bugs from a Gompertz curve model or a logistic curve model and a bug occurrence history and evaluating the software reliability. Also, a method for estimating the parameters of these curve models (see, for example, Patent Document 1), and a method for correcting the reliability growth curve of software by the Gompertz curve model by inputting the bug discovery efficiency together with the bug occurrence history ( For example, a technique for improving the accuracy of software reliability prediction is known (see Patent Document 2).
ところで、バグは、ソースコード中に一様に分布する訳ではなく、偏在する傾向がある。従って、従来の信頼性評価方法では、このバグの偏在性が考慮されていないため、算出された信頼性の精度としては、不十分であった。 By the way, bugs are not distributed uniformly in the source code but tend to be unevenly distributed. Therefore, in the conventional reliability evaluation method, since the uneven distribution of bugs is not taken into consideration, the accuracy of the calculated reliability is insufficient.
本発明は、上述の事情の下になされたもので、より精度良くソフトウェアの信頼性を評価することが可能なソフトウェア信頼性評価装置、方法、及びプログラムを提供することを目的とする。 The present invention has been made under the above circumstances, and an object thereof is to provide a software reliability evaluation apparatus, method, and program capable of evaluating the reliability of software with higher accuracy.
上記目的を達成するため、本発明に係るソフトウェア信頼性評価装置は、
複数のモジュールから構成されるソフトウェアの品質を評価するソフトウェア信頼性評価装置であって、
モジュールと、当該モジュールの開発時におけるそのモジュールの品質に影響を与えうる開発条件と、を表す情報を対応付けて記憶する開発条件記憶部と、
開発条件と、当該開発条件を構成する複数の要素を分割する際の分割単位の大きさを表す分割粒度と、を表す情報を記憶する分割設定記憶部と、
モジュールと、当該モジュールにおけるバグの個数と、を表すバグ履歴記憶部と、
分割する条件である開発条件と、当該開発条件の分割粒度とを表す情報を取得する分割条件決定部と、
前記開発条件記憶部から、前記分割条件決定部により取得された開発条件に対応するモジュールを特定し、前記分割設定記憶部に記憶された分割粒度及び前記分割条件決定部により取得された分割粒度に基づいて、前記ソフトウェアを部分ソースコードに分割する分割部と、
前記分割部により生成された部分ソースコード毎に、前記バグ履歴記憶部に記憶されたバグの個数に基づいて、部分ソースコード全体におけるバグの割合を表す部分バグ密度と、ソフトウェア全体におけるバグの割合を表す全体バグ密度と、を算出するバグ密度算出部と、
前記バグ密度算出部により算出された部分バグ密度及び全体バグ密度に基づいて、全体バグ密度に対して部分バグ密度に偏りがあるか否かを判定し、偏りがあると判定した部分バグ密度に対応する部分ソースコードを表す情報を出力する評価部と、
を備えることを特徴とする。
In order to achieve the above object, a software reliability evaluation apparatus according to the present invention provides:
A software reliability evaluation apparatus for evaluating the quality of software composed of a plurality of modules,
A development condition storage unit that stores information indicating a module and development conditions that can affect the quality of the module at the time of development of the module in association with each other;
A division setting storage unit that stores information indicating development conditions and a division granularity that represents the size of a division unit when dividing a plurality of elements that constitute the development conditions;
A bug history storage unit representing a module and the number of bugs in the module;
A division condition determination unit that acquires information indicating a development condition that is a condition to be divided and a division granularity of the development condition;
From the development condition storage unit, the module corresponding to the development condition acquired by the division condition determination unit is specified, and the division granularity stored in the division setting storage unit and the division granularity acquired by the division condition determination unit A dividing unit for dividing the software into partial source code,
For each partial source code generated by the dividing unit, based on the number of bugs stored in the bug history storage unit, the partial bug density representing the percentage of bugs in the entire partial source code, and the percentage of bugs in the entire software An overall bug density representing, a bug density calculation unit for calculating,
Based on the partial bug density and the total bug density calculated by the bug density calculation unit, it is determined whether the partial bug density is biased with respect to the total bug density, and the partial bug density determined to be biased is determined. An evaluation unit that outputs information representing the corresponding partial source code;
It is characterized by providing.
本発明によれば、より精度良くソフトウェアの信頼性を評価することができる。 According to the present invention, the reliability of software can be evaluated with higher accuracy.
以下、本発明の実施形態を添付図面を参照しながら詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
図1は、本発明の実施形態に係るソフトウェア信頼性装置のハードウェア構成を示す概略ブロック図である。ソフトウェア信頼性評価装置1は、複数のモジュールから構成されるソフトウェアの信頼性を評価する装置であって、図1に示すように、入力部110と、出力部120と、外部インターフェース(I/F)130と、制御部140と、ROM(Read Only Memory)150と、RAM(Random Access Memory)160と、記憶部170と、から構成される。
FIG. 1 is a schematic block diagram showing a hardware configuration of a software reliability apparatus according to an embodiment of the present invention. The software reliability evaluation apparatus 1 is an apparatus for evaluating the reliability of software composed of a plurality of modules, and as shown in FIG. ) 130, a
入力部110は、ユーザがソフトウェア信頼性評価装置1を操作するためのマウスやキーボード等の入力装置2と接続されており、ユーザによって入力される各種の情報を受け付ける。
The
出力部120は、液晶ディスプレイ等の出力装置3に接続されている。出力部120は、制御部140により出力された各種の情報を出力する。
The
外部I/F部130は、CD(Compact Disc)等のリムーバブルディスクに対して読み書きするためのドライブ装置(図示せず)等に接続されている。また、外部のネットワーク(例えば、インターネット、LAN(Local Area Network)等)に接続するための装置や、制御部140が生成した情報を印字するためのプリンタに接続されていてもよい。
The external I /
制御部140は、例えば、CPU(Central Processing Unit)から構成されており、ソフトウェア信頼性評価装置1の全体の制御を行う。例えば、制御部140は、信頼性評価処理を実行する。信頼性評価処理の詳細については後述する。
The
ROM150は、制御部140がソフトウェア信頼性評価装置1の全体を制御するためのプログラム等を格納する不揮発性メモリである。例えば、ROM150は、信頼性評価処理を実行するためのプログラムを格納している。
The
RAM160は、制御部140が生成した情報や、当該情報を生成するために必要なデータを一時的に格納するための揮発性メモリである。
The
記憶部170は、ハードディスクドライブ等の記憶装置から構成される。具体的には、記憶部170は、分割設定DB(データベース)171と、開発条件DB172と、バグ履歴DB173と、を記憶する。
The
分割設定DB171は、モジュールの開発時において該モジュールの品質に影響を与えうる開発条件毎に、その開発条件のソフトウェアの分割粒度を表す分割設定情報を記憶する。ここで、分割粒度とは、開発条件を構成する複数の要素を分割する際の、分割単位の大きさを表す。なお、本実施形態では、モジュールの開発時において該モジュールの品質に影響を与えうる開発条件の一例として、モジュール位置、開発者、及び開発時期を用いる場合について説明する。
The
モジュール位置は、評価対象であるソフトウェアを構成する複数のモジュールの階層構造(ソースツリー)における位置を表す。モジュール位置が高いほど、そのモジュール内で生じたバグや、開発途中の使用変更の有無の影響範囲は広くなり、ソフトウェアの品質に影響を与えうる。分割設定DB171は、モジュール位置を開発条件とする分割設定情報として、モジュール位置分割設定情報171aを記憶する。
The module position represents a position in a hierarchical structure (source tree) of a plurality of modules constituting software to be evaluated. The higher the module position, the wider the range of influences of bugs occurring in the module and the presence or absence of usage changes during development, which may affect the quality of software. The
図2に、モジュール位置分割設定情報171aの一例を示す。図2に示すように、モジュール位置分割設定情報は、モジュールの階層構造と、その分割粒度とを表す。図2に示すモジュール位置分割設定情報は、具体的には、モジュールの階層に応じて、「大モジュール」、「中モジュール」、及び「小モジュール」の3つの分割粒度を有する。
FIG. 2 shows an example of the module position
開発者は、モジュールを開発した人を表す。開発者のスキルの程度により、その開発者が開発したモジュールの品質に影響を与えうる。分割設定DB171は、開発者を開発条件とする分割設定情報として、開発者分割設定情報171bを記憶する。
Developer represents the person who developed the module. Depending on the skill level of the developer, the quality of the module developed by the developer can be affected. The
図3に、開発者分割設定情報171bの一例を示す。図3に示すように、開発者分割設定情報は、開発者のグループ構成と、その分割基準とを表す。図3に示す開発者分割設定情報は、具体的には、「開発者大」、及び「開発者小」の2つの分割粒度を有する。
FIG. 3 shows an example of the developer
開発時期は、そのモジュールが開発された時期を表す。開発時期が、どのような時期か、例えば、開発の最終段階なのか初期段階なのかによって開発者の疲労度や精神的余裕が変わるため、開発時期はソフトウェアの品質に影響を与えうる。開発時期を開発条件とする場合、その分割粒度は、例えば、月や週といった一般的な時期の区切りの他、ユーザ等により予め設定された所定の期間を用いることができる。 The development time represents the time when the module was developed. Since the developer's fatigue level and mental margin change depending on when the development period is, for example, the final stage or the initial stage of development, the development period can affect the quality of the software. When the development time is set as the development condition, the division granularity may be a predetermined period preset by the user or the like in addition to a general time break such as month or week.
開発条件DB172は、ソフトウェアを構成する複数のモジュール毎に、そのモジュールの開発条件を表す情報を記憶する。図4に、開発条件DB172に格納されるデータの一例を示す。図4に示すように、開発条件DB172は、具体的には、モジュール毎に、そのモジュールの開発者と、そのモジュールの開発時期と、を表す情報を記憶する。
The
バグ履歴DB173は、ソフトウェアを構成する複数のモジュール毎に、バグの個数を表す情報を記憶する。図5に、バグ履歴DB173に格納されるデータの一例を示す。バグの個数は、例えば、そのモジュールに対して行われた試験項目のうち、正常な出力が得られなかった試験項目の個数として取得される。
The
次に、ソフトウェア信頼性評価装置1の制御部140の機能的構成について説明する。図6に示すように、制御部140は、分割条件決定部141、分割部142、バグ密度算出部143、評価部144として機能する。
Next, a functional configuration of the
分割条件決定部141は、評価対象であるソフトウェアを分割する際の分割条件を決定する。具体的には、分割条件決定部141は、入力部110を介して、ユーザから開発条件及びその分割粒度を表す情報を取得する。また、分割条件決定部141は、ユーザから開発条件及びその分割粒度を表す情報を取得しない場合等においては、開発条件と分割粒度の全ての組み合わせについて、分割するよう決定してもよい。
The division
また、分割条件決定部141は、評価部144により、部分バグ密度に偏りがあると判定された場合に、偏りがあると判定された部分ソースコードについて、再度分割するための分割条件を決定する。
In addition, when the
分割部142は、分割条件決定部141により決定された分割条件に応じて、評価対象であるソフトウェアを分割し、部分ソースコード情報を生成する。部分ソースコード情報は、分割条件に応じて評価対象であるソフトウェアが分割された際の、その分割された各部分に属するモジュールを表す情報である。
The dividing
バグ密度算出部143は、評価対象であるソフトウェア全体に対するバグの割合を表す全体バグ密度と、分割部142により生成された各部分ソースコード情報が表すモジュール全体に対するバグの割合を表す部分バグ密度と、を算出する。
The bug
具体的には、全体バグ密度Daは、評価対象であるソフトウェア全体における既知のバグの数及び未知のバグの数をそれぞれKa及びUa、評価対象であるソフトウェア全体の開発ステップ数をSaとして、以下のようにして、算出される。
Da=(Ka+Ua)/Sa・・・(1)
Specifically, the total bug density Da is defined as follows, where Ka and Ua are the number of known bugs and the number of unknown bugs in the entire software to be evaluated, respectively, and Sa is the number of development steps of the entire software to be evaluated. It is calculated as follows.
Da = (Ka + Ua) / Sa (1)
上記の(1)式において、既知のバグの数Kaは、例えば、バグ履歴DB173から、評価対象であるソフトウェアを構成する全モジュールのバグの総数として算出できる。また、未知のバグの数Uaは、例えば、ゴンペルツ曲線モデルやロジスティック曲線モデルといった周知のバグの数の予測手法により算出できる。また、開発ステップ数Saは、評価対象であるソフトウェアを構成する全モジュールの総ステップ数から算出できる。
In the above equation (1), the number of known bugs Ka can be calculated from, for example, the
また、部分バグ密度Dpは、分割部142により生成された各部分ソースコード情報が表すモジュール全体における既知のバグの数及び未知のバグの数をそれぞれKp及びUp、そのモジュール全体の開発ステップ数をSpとして、以下のようにして、算出される。
Dp=(Kp+Up)/Sp・・・(2)
The partial bug density Dp is the number of known bugs and the number of unknown bugs in the entire module represented by each partial source code information generated by the dividing
Dp = (Kp + Up) / Sp (2)
上記の(2)式において、既知のバグの数Kpは、例えば、バグ履歴DB173から、各部分ソースコード情報が表すモジュール全体のバグの総数として算出できる。また、未知のバグの数Upは、例えば、ゴンペルツ曲線モデルやロジスティック曲線モデルといった周知のバグの数の予測手法により算出できる。また、開発ステップ数Spは、分割部142により生成された各部分ソースコード情報が表すモジュール全体の総ステップ数から算出できる。
In the above equation (2), the number of known bugs Kp can be calculated from, for example, the
評価部144は、バグ密度算出部143により算出された全体バグ密度及び部分バグ密度に基づいて、全体バグ密度に対して部分バグ密度に偏りがあるか否かを判定する。具体的には、評価部144は、バグ密度算出部143において算出された部分バグ密度毎に、部分バグ密度が全体バグ密度よりも所定値以上大きいか否かを判定し、所定値以上大きい場合に部分バグ密度に偏りがあると判定する。
The
次に、ソフトウェア信頼性評価装置1が実行する信頼性評価処理の流れについて説明する。図7は、ソフトウェア信頼性評価装置1が実行する信頼性評価処理の流れの一例を示すフローチャートである。図7に示す信頼性評価処理は、例えば、入力装置2を介して、ユーザにより信頼性評価処理の実行を開始する旨を表す操作が入力されたことを契機として開始される。また、分割設定DB171、開発条件DB172、バグ履歴DB173に格納されているデータは、予め、評価対象であるソフトウェアから抽出されることにより、もしくはユーザにより入力装置2を介して入力されることにより、記憶部170に格納されているものとする。
Next, the flow of reliability evaluation processing executed by the software reliability evaluation apparatus 1 will be described. FIG. 7 is a flowchart showing an example of the flow of reliability evaluation processing executed by the software reliability evaluation apparatus 1. The reliability evaluation process illustrated in FIG. 7 is started, for example, when an operation indicating that the execution of the reliability evaluation process is started is input by the user via the
まず、バグ密度算出部143は、全体バグ密度を算出する(ステップS11)。具体的には、バグ密度算出部143は、評価対象のソフトウェア全体について、(1)式を用いて全体バグ密度を算出する。
First, the bug
次に、分割条件決定部141は、入力部110を介してユーザから分割条件として、開発条件と、その分割粒度を表す情報を取得する(ステップS12)。
Next, the division
次に、分割部142は、ステップS12において取得された開発条件と、その分割粒度とに基づいて、部分ソースコード情報を生成する(ステップS13)。
Next, the dividing
部分ソースコード情報の生成について、以下具体的に説明する。例えば、ステップS12において、分割条件決定部141は、開発条件として「モジュール位置」、その分割粒度として「モジュール中」を取得したとする。この場合、分割部142は、分割設定DB171に格納されたモジュール位置分割設定情報171aを参照して、モジュール中に対応する分割粒度で、評価対象であるソフトウェアを分割し、その部分ソースコードを構成する全モジュールを表す部分ソースコード情報を生成する。
The generation of the partial source code information will be specifically described below. For example, in step S12, it is assumed that the division
具体的には、図2に示すモジュール位置分割設定情報171aにおいて、分割部142は、モジュール中を分割粒度として分割することにより、「AA」、「AA」の下位のモジュールである「AAa」及び「AAb」を表す部分ソースコード情報と、「AB」、「AB」の下位のモジュールである「ABa」、「ABb」及び「ABc」を表す部分ソースコード情報と、の2つの部分ソースコード情報を生成する。
Specifically, in the module position
また、分割条件決定部141が、複数の開発条件と、それぞれの開発条件の分割粒度を取得した場合は、分割部142は、その開発条件と分割粒度との組み合わせにより、評価対象のソフトウェアを分割し、部分ソースコード情報を生成する。
In addition, when the division
例えば、ステップS12において、分割条件決定部141は、開発条件として「モジュール位置」、その分割粒度として「モジュール中」の他、さらに開発条件として「開発時期」、その分割粒度として「月」を取得したとする。この場合、分割部141は、分割設定DB171に格納されたモジュール位置分割設定情報171aを参照して、モジュール中に対応する分割粒度で、評価対象であるソフトウェアを分割する。そしてさらに、分割部142は、その分割された各部分ソースコード毎に、開発条件DB172を参照して、その部分ソースコードの開発時期を特定する。そして、分割部142は、特定された開発時期の月毎に、さらに部分ソースコードを分割することにより、部分ソースコード情報を生成する。
For example, in step S12, the division
次に、バグ密度算出部143は、ステップS13において生成された部分ソースコード情報毎に、部分バグ密度を算出する(ステップS14)。具体的には、バグ密度算出部143は、ステップS13において生成された部分ソースコード情報毎に、その部分ソースコード情報が表すモジュール全体について、(2)式を用いて部分バグ密度を算出する。
Next, the bug
次に、評価部144は、部分ソースコード情報毎に、ステップS11において算出された全体バグ密度に対して、ステップS14において算出された部分バグ密度に偏りがあるか否かを判定する(ステップS15)。具体的には、評価部144は、部分バグ密度が、全体バグ密度よりも所定値以上である場合、部分バグ密度に偏りがあると判定する。
Next, the
そして、評価部144は、部分バグ密度に偏りがあると判定した場合(ステップS15;Yes)、分割条件調整処理を実行する(ステップS16)。また、評価部144は、部分バグ密度に偏りがないと判定した場合(ステップS15;No)、ステップS17に処理を進める。
If the
図8は、ソフトウェア信頼性評価装置1が実行する分割条件調整処理の流れの一例を示すフローチャートである。 FIG. 8 is a flowchart illustrating an example of the flow of the division condition adjustment process executed by the software reliability evaluation apparatus 1.
まず、分割条件決定部141は、図7のステップS12において取得した開発条件に開発時期を含むか否かを判定する(ステップS21)。
First, the division
開発時期を含むと判定した場合(ステップS21;Yes)、開発時期条件調整処理を実行する(ステップS22)。開発時期を含まないと判定した場合(ステップS21;No)、ステップS24に処理を進める。 When it is determined that the development time is included (step S21; Yes), the development time condition adjustment process is executed (step S22). If it is determined that the development time is not included (step S21; No), the process proceeds to step S24.
図9は、ソフトウェア信頼性評価装置1が実行する開発時期条件調整処理の流れの一例を示すフローチャートである。この開発時期条件調整処理では、図7のステップS15において部分バグ密度に偏りがあると判定された部分について、開発時期の分割粒度に対応する期間を前後にずらして、再度部分バグ密度を算出することにより、バグ密度が高い時期をさらに精度よく特定することができる。 FIG. 9 is a flowchart illustrating an example of the flow of development time condition adjustment processing executed by the software reliability evaluation apparatus 1. In this development time condition adjustment processing, the partial bug density is calculated again by shifting the period corresponding to the division granularity of the development time back and forth for the part determined to be uneven in the partial bug density in step S15 of FIG. As a result, the time when the bug density is high can be identified more accurately.
まず、分割条件決定部141は、図7のステップS15において部分バグ密度に偏りがあると判定された部分ソースコード情報について、その開発時期の分割粒度に対応する期間を初期期間として設定する(ステップS31)。また、初期期間からずらした日数を表すnを0に設定する。
First, the division
分割条件決定部141は、nに1をインクリメントする(ステップS32)。
The division
次に、分割条件決定部141は、nが、ステップS12において取得した開発時期の分割粒度よりも小さいか否かを判定する(ステップS33)。
Next, the division
nが分割粒度よりも小さいと判定した場合(ステップS33;Yes)、分割部142は、開発条件DB172を参照し、開発時期が、初期期間からn日前にずらした期間内であるモジュールについて部分モジュール情報を生成し、バグ密度算出部143は、その部分モジュール情報について、部分バグ密度を算出する(ステップS34)。
When it is determined that n is smaller than the division granularity (step S33; Yes), the
また、分割部142は、開発条件DB172を参照し、開発時期が、初期期間からn日後にずらした期間内であるモジュールについて部分モジュール情報を生成し、バグ密度算出部143は、その部分モジュール情報について、部分バグ密度を算出する(ステップS35)。そして、処理をステップS32に戻す。
The dividing
nが分割粒度以上であると判定した場合(ステップS33;No)、評価部144は、ステップS34及びステップS35において算出された部分バグ密度のうち、最もバグ密度が高い期間を高バグ密度期間として記憶する(ステップS36)。そして、図8のステップS23に進む。
When it is determined that n is greater than or equal to the division granularity (step S33; No), the
図8に戻って、開発条件に開発時期を含まないと判定した場合(ステップS21;No)、分割条件決定部141は、図7のステップS12において取得した開発条件にモジュール位置を含むか否かを判定する(ステップS23)。
Returning to FIG. 8, when it is determined that the development condition does not include the development time (step S21; No), the division
開発条件にモジュール位置を含むと判定した場合(ステップS23;Yes)、図10のモジュール位置条件調整処理に進める(ステップS24)。 When it is determined that the development condition includes the module position (step S23; Yes), the process proceeds to the module position condition adjustment process of FIG. 10 (step S24).
図10は、ソフトウェア信頼性評価装置1が実行するモジュール位置条件調整処理の流れの一例を示すフローチャートである。このモジュール位置条件調整処理では、図7のステップS15において部分バグ密度に偏りがあると判定された部分について、その隣接するモジュールについて、再度部分バグ密度を算出することにより、バグ密度が高いモジュールをさらに精度よく特定することができる。なお、本実施形態において、隣接するモジュールとは、具体的には、モジュールの階層構造における下位にあたるモジュールとする。ただし、隣接するモジュールはこれに限られず、例えば、モジュールの階層構造における親や兄弟も、隣接するモジュールとして考慮してもよい。 FIG. 10 is a flowchart illustrating an example of a module position condition adjustment process executed by the software reliability evaluation apparatus 1. In this module position condition adjustment processing, a module having a high bug density is obtained by calculating a partial bug density again for the adjacent module for the part determined to have a bias in the partial bug density in step S15 of FIG. Further, it can be specified with high accuracy. In the present embodiment, the adjacent module is specifically a module corresponding to a lower level in the module hierarchical structure. However, adjacent modules are not limited to this, and for example, parents and siblings in a module hierarchical structure may be considered as adjacent modules.
まず、分割条件決定部141は、分割条件として、開発条件をモジュール位置、その分割粒度を図7のステップS12において取得された分割粒度を決定する(ステップS41)。
First, the division
次に、分割部142は、図7のステップS13と同様に、ステップS41において決定された分割条件に基づいて、部分ソースコード情報を生成する(ステップS42)。
Next, the dividing
次に、バグ密度算出部143は、図7のステップS14と同様に、ステップS42において生成された部分ソースコード情報毎に、部分バグ密度を算出する(ステップS43)。
Next, the bug
次に、評価部144は、部分バグ密度が、所定値以上のものがあるか否かを判定する(ステップS44)。評価部144は、所定値以上のものがないと判定した場合(ステップS44;No)、図8のステップS25に処理を進める。
Next, the
部分バグ密度が所定値以上のものがあると判定した場合(ステップS44;Yes)、評価部144は、隣接するモジュールを1つ選択する(ステップS45)。具体的には、モジュール位置分割設定情報171aを参照して、隣接するモジュールの情報を取得する。
If it is determined that there is a partial bug density equal to or higher than the predetermined value (step S44; Yes), the
そして、評価部144は、隣接するモジュールについて、部分バグ密度が所定値以上か否かを判定する(ステップS46)。評価部144は、所定値よりも小さいと判定した場合(ステップS46;No)、ステップS48に処理を進める。
And the
部分バグ密度が所定値以上であると判定した場合(ステップS46;Yes)、評価部144は、そのモジュールを高バグ密度モジュールとして記憶する(ステップS47)。
When it is determined that the partial bug density is equal to or higher than the predetermined value (step S46; Yes), the
次に、評価部144は、未評価の隣接モジュールがあるか否かを判定する(ステップS48)。未評価の隣接モジュールがあると判定した場合(ステップS48;Yes)、ステップS45に処理を戻す。また、未評価の隣接モジュールがないと判定した場合(ステップS48;No)、図8のステップS25に進む。
Next, the
図8に戻って、評価部144は、評価結果として、記憶された高バグ密度期間及び高バグ密度モジュールを表示する(ステップS25)。
Returning to FIG. 8, the
図7に戻って、評価部144は、ステップS12において取得した分割条件とは異なる分割条件において再度評価するか否かを判定する(ステップS17)。具体的には、評価部144は、入力部110を介してユーザから再度評価する指示を表す入力を受け付けたか否かを判定する。そして、再度評価すると判定した場合(ステップS17;Yes)、処理をステップS12に戻し、再度評価しないと判定した場合(ステップS17;No)、信頼性評価処理を終了する。
Returning to FIG. 7, the
以上説明したように、本実施形態に係るソフトウェア信頼性評価装置1は、ソフトウェアの品質に影響を与える開発条件と、その分割粒度に応じて、ソフトウェアを分割し、部分ソースコード毎にバグ密度を算出する。これにより、ソフトウェアのどの部分においてバグが偏在しているのかを把握でき、ユーザは、ソフトウェアの信頼性を精度よく把握することができる。 As described above, the software reliability evaluation apparatus 1 according to the present embodiment divides software according to development conditions that affect software quality and the division granularity, and sets a bug density for each partial source code. calculate. Thereby, it is possible to grasp in which part of the software bugs are unevenly distributed, and the user can accurately grasp the reliability of the software.
以上、本発明の実施形態について説明したが、本発明は実施形態によって限定されるものではない。 As mentioned above, although embodiment of this invention was described, this invention is not limited by embodiment.
例えば、本実施形態において、開発条件であるモジュール位置は、図2のモジュール位置分割設定情報171aに示すように、モジュールの階層構造における位置を表すものとして説明した。しかし、モジュール位置の表し方は、これに限られない。例えば、モジュール間の呼び出し関係を用いて、モジュール位置や、その分割粒度を、モジュール位置分割設定情報171aとしてもよい。
For example, in the present embodiment, the module position, which is the development condition, has been described as representing the position in the hierarchical structure of the module as indicated by the module position
また、本実施形態において、全体バグ密度及び部分バグ密度に代えて、全体残存バグ密度及び部分残存バグ密度を用いて評価してもよい。ここで、残存バグ密度Dは、評価対象であるソフトウェア(もしくはモジュール)全体の開発ステップ数に対する、そのソフトウェア(もしくはモジュール)全体の未知のバグの数の割合として表される。 In the present embodiment, evaluation may be performed using the total remaining bug density and the partial remaining bug density instead of the total bug density and the partial bug density. Here, the remaining bug density D is expressed as a ratio of the number of unknown bugs of the entire software (or module) to the number of development steps of the entire software (or module) to be evaluated.
また、本実施形態では、評価部144は、バグ密度が高いと判定したモジュールをユーザに表示するとして説明したが、ユーザへの結果の出力態様はこれに限られない。例えば、モジュール位置分割設定情報171aにおけるモジュールと、仕様書に記載されたモジュールとの間の対応関係が予め設定されている場合、仕様書とともにバグ密度が高いと判定されたモジュールを示すように出力してもよい。
Further, in the present embodiment, the
また、本発明に係るソフトウェア信頼性評価装置1は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、ネットワークに接続されているコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読み取り可能な記録媒体(CD−ROM、MO等)に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行するソフトウェア信頼性評価装置1を構成してもよい。 Further, the software reliability evaluation apparatus 1 according to the present invention can be realized using a normal computer system, not a dedicated system. For example, a program for executing the above operation is stored in a computer-readable recording medium (CD-ROM, MO, etc.) and distributed to a computer connected to a network, and the program is distributed to the computer system. By installing, the software reliability evaluation apparatus 1 that executes the above-described processing may be configured.
また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線の掲示板(BBS)にアップロードされ、通信回線を介してコンピュータに配信されてもよい。また、プログラムは、プログラムを表す信号により搬送波を変調した変調波により伝送され、この変調波を受信した装置が変調波を復調してプログラムを復元するようにしてもよい。そして、コンピュータは、このプログラムを起動して、OSの制御のもと、他のアプリケーションと同様に実行する。これにより、コンピュータは、上述の処理を実行するソフトウェア信頼性評価装置1として機能する。 Further, the method for providing the program to the computer is arbitrary. For example, the program may be uploaded to a bulletin board (BBS) on a communication line and distributed to a computer via the communication line. The program may be transmitted by a modulated wave obtained by modulating a carrier wave with a signal representing the program, and a device that receives the modulated wave may demodulate the modulated wave to restore the program. Then, the computer activates this program and executes it in the same manner as other applications under the control of the OS. Thus, the computer functions as the software reliability evaluation apparatus 1 that executes the above-described processing.
1 ソフトウェア信頼性評価装置、110 入力部、120 出力部、130 外部I/F部、140 制御部、141 分割条件決定部、142 分割部、143 バグ密度算出部、144 評価部、150 ROM、160 RAM、170 記憶部、171 分割設定DB、171a モジュール位置分割設定情報、171b 開発者分割設定情報、172 開発条件DB、173 バグ履歴DB、2 入力装置、3 出力装置 1 software reliability evaluation apparatus, 110 input unit, 120 output unit, 130 external I / F unit, 140 control unit, 141 division condition determination unit, 142 division unit, 143 bug density calculation unit, 144 evaluation unit, 150 ROM, 160 RAM, 170 storage unit, 171 division setting DB, 171a module position division setting information, 171b developer division setting information, 172 development condition DB, 173 bug history DB, two input device, three output device
Claims (4)
モジュールと、当該モジュールの開発時におけるそのモジュールの品質に影響を与えうる開発条件と、を表す情報を対応付けて記憶する開発条件記憶部と、
開発条件と、当該開発条件を構成する複数の要素を分割する際の分割単位の大きさを表す分割粒度と、を表す情報を記憶する分割設定記憶部と、
モジュールと、当該モジュールにおけるバグの個数と、を表すバグ履歴記憶部と、
分割する条件である開発条件と、当該開発条件の分割粒度とを表す情報を取得する分割条件決定部と、
前記開発条件記憶部から、前記分割条件決定部により取得された開発条件に対応するモジュールを特定し、前記分割設定記憶部に記憶された分割粒度及び前記分割条件決定部により取得された分割粒度に基づいて、前記ソフトウェアを部分ソースコードに分割する分割部と、
前記分割部により生成された部分ソースコード毎に、前記バグ履歴記憶部に記憶されたバグの個数に基づいて、部分ソースコード全体におけるバグの割合を表す部分バグ密度と、ソフトウェア全体におけるバグの割合を表す全体バグ密度と、を算出するバグ密度算出部と、
前記バグ密度算出部により算出された部分バグ密度及び全体バグ密度に基づいて、全体バグ密度に対して部分バグ密度に偏りがあるか否かを判定し、偏りがあると判定した部分バグ密度に対応する部分ソースコードを表す情報を出力する評価部と、
を備えることを特徴とするソフトウェア信頼性評価装置。 A software reliability evaluation apparatus for evaluating the quality of software composed of a plurality of modules,
A development condition storage unit that stores information indicating a module and development conditions that can affect the quality of the module at the time of development of the module in association with each other;
A division setting storage unit that stores information indicating development conditions and a division granularity that represents the size of a division unit when dividing a plurality of elements that constitute the development conditions;
A bug history storage unit representing a module and the number of bugs in the module;
A division condition determination unit that acquires information indicating a development condition that is a condition to be divided and a division granularity of the development condition;
From the development condition storage unit, the module corresponding to the development condition acquired by the division condition determination unit is specified, and the division granularity stored in the division setting storage unit and the division granularity acquired by the division condition determination unit A dividing unit for dividing the software into partial source code,
For each partial source code generated by the dividing unit, based on the number of bugs stored in the bug history storage unit, the partial bug density representing the percentage of bugs in the entire partial source code, and the percentage of bugs in the entire software An overall bug density representing, a bug density calculation unit for calculating,
Based on the partial bug density and the total bug density calculated by the bug density calculation unit, it is determined whether the partial bug density is biased with respect to the total bug density, and the partial bug density determined to be biased is determined. An evaluation unit that outputs information representing the corresponding partial source code;
A software reliability evaluation apparatus comprising:
ことを特徴とする請求項1に記載のソフトウェア信頼性評価装置。 The development condition is at least one of a module position, a module developer, and a module development time in the hierarchical structure of the plurality of modules.
The software reliability evaluation apparatus according to claim 1.
モジュールと、当該モジュールの開発時におけるそのモジュールの品質に影響を与えうる開発条件と、を表す情報を対応付けて開発条件記憶部に記憶させる開発条件記憶ステップと、
開発条件と、当該開発条件を構成する複数の要素を分割する際の分割単位の大きさを表す分割粒度と、を表す情報を分割設定記憶部に記憶させる分割設定記憶ステップと、
モジュールと、当該モジュールにおけるバグの個数と、を表す情報をバグ履歴記憶部に記憶させるバグ履歴記憶ステップと、
分割する条件である開発条件と、当該開発条件の分割粒度とを表す情報を取得する分割条件決定ステップと、
前記開発条件記憶部から、前記分割条件決定ステップにおいて取得された開発条件に対応するモジュールを特定し、前記分割設定記憶部に記憶された分割粒度及び前記分割条件決定ステップにおいて取得された分割粒度に基づいて、前記ソフトウェアを部分ソースコードに分割する分割ステップと、
前記分割ステップにおいて生成された部分ソースコード毎に、前記バグ履歴記憶部に記憶されたバグの個数に基づいて、部分ソースコード全体におけるバグの割合を表す部分バグ密度と、ソフトウェア全体におけるバグの割合を表す全体バグ密度と、を算出するバグ密度算出ステップと、
前記バグ密度算出ステップにおいて算出された部分バグ密度及び全体バグ密度に基づいて、全体バグ密度に対して部分バグ密度に偏りがあるか否かを判定し、偏りがあると判定した部分バグ密度に対応する部分ソースコードを表す情報を出力する評価ステップと、
を備えることを特徴とするソフトウェア信頼性評価方法。 A software reliability evaluation method for evaluating the quality of software composed of a plurality of modules,
A development condition storage step of associating and storing in the development condition storage unit information representing a module and a development condition that can affect the quality of the module at the time of development of the module;
A division setting storage step for storing information indicating the development condition and the division granularity indicating the size of the division unit when dividing the plurality of elements constituting the development condition in the division setting storage unit;
A bug history storage step for storing information indicating the module and the number of bugs in the module in the bug history storage unit;
A division condition determining step for acquiring information indicating a development condition that is a condition to be divided and a division granularity of the development condition;
The module corresponding to the development condition acquired in the division condition determination step is identified from the development condition storage unit, and the division granularity stored in the division setting storage unit and the division granularity acquired in the division condition determination step Dividing step of dividing the software into partial source code,
For each partial source code generated in the dividing step, based on the number of bugs stored in the bug history storage unit, the partial bug density representing the percentage of bugs in the entire partial source code, and the percentage of bugs in the entire software A bug density calculating step for calculating an overall bug density representing
Based on the partial bug density and the total bug density calculated in the bug density calculating step, it is determined whether or not there is a bias in the partial bug density with respect to the total bug density. An evaluation step for outputting information representing the corresponding partial source code;
A software reliability evaluation method comprising:
モジュールと、当該モジュールの開発時におけるそのモジュールの品質に影響を与えうる開発条件と、を表す情報を対応付けて記憶する開発条件記憶手段、
開発条件と、当該開発条件を構成する複数の要素を分割する際の分割単位の大きさを表す分割粒度と、を表す情報を記憶する分割設定記憶手段、
モジュールと、当該モジュールにおけるバグの個数と、を表すバグ履歴記憶手段、
分割する条件である開発条件と、当該開発条件の分割粒度とを表す情報を取得する分割条件決定手段、
前記開発条件記憶手段から、前記分割条件決定手段により取得された開発条件に対応するモジュールを特定し、前記分割設定記憶手段に記憶された分割粒度及び前記分割条件決定手段により取得された分割粒度に基づいて、前記ソフトウェアを部分ソースコードに分割する分割手段、
前記分割手段により生成された部分ソースコード毎に、前記バグ履歴記憶手段に記憶されたバグの個数に基づいて、部分ソースコード全体におけるバグの割合を表す部分バグ密度と、ソフトウェア全体におけるバグの割合を表す全体バグ密度と、を算出するバグ密度算出手段、
前記バグ密度算出手段により算出された部分バグ密度及び全体バグ密度に基づいて、全体バグ密度に対して部分バグ密度に偏りがあるか否かを判定し、偏りがあると判定した部分バグ密度に対応する部分ソースコードを表す情報を出力する評価手段、
として機能させることを特徴とするプログラム。 A program executed by a software reliability evaluation apparatus for evaluating the quality of software composed of a plurality of modules, the software reliability evaluation apparatus,
Development condition storage means for storing information indicating a module and development conditions that can affect the quality of the module at the time of development of the module in association with each other;
Division setting storage means for storing information indicating development conditions and division granularity representing the size of a division unit when dividing a plurality of elements constituting the development conditions;
A bug history storage means representing a module and the number of bugs in the module;
A split condition determining means for acquiring information indicating a development condition that is a split condition and a split granularity of the development condition;
The module corresponding to the development condition acquired by the division condition determining unit is identified from the development condition storage unit, and the division granularity stored in the division setting storage unit and the division granularity acquired by the division condition determining unit are set. A dividing means for dividing the software into partial source code,
For each partial source code generated by the dividing means, based on the number of bugs stored in the bug history storage means, a partial bug density representing the percentage of bugs in the entire partial source code, and a percentage of bugs in the entire software A bug density calculation means for calculating an overall bug density representing
Based on the partial bug density and the total bug density calculated by the bug density calculating means, it is determined whether or not there is a bias in the partial bug density with respect to the total bug density, and the partial bug density determined as having the bias is determined. Evaluation means for outputting information representing the corresponding partial source code,
A program characterized by functioning as
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012279012A JP6016613B2 (en) | 2012-12-21 | 2012-12-21 | Software reliability evaluation apparatus, software reliability evaluation method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012279012A JP6016613B2 (en) | 2012-12-21 | 2012-12-21 | Software reliability evaluation apparatus, software reliability evaluation method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014123246A JP2014123246A (en) | 2014-07-03 |
JP6016613B2 true JP6016613B2 (en) | 2016-10-26 |
Family
ID=51403677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012279012A Expired - Fee Related JP6016613B2 (en) | 2012-12-21 | 2012-12-21 | Software reliability evaluation apparatus, software reliability evaluation method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6016613B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018213053A1 (en) * | 2018-08-03 | 2020-02-06 | Continental Teves Ag & Co. Ohg | Procedures for analyzing source texts |
CN116227999B (en) * | 2023-02-09 | 2024-04-05 | 江苏省工商行政管理局信息中心 | Quantitative measuring and calculating system and method for operation and maintenance service quality evaluation indexes of market supervision software |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05282178A (en) * | 1992-04-03 | 1993-10-29 | Hitachi Ltd | Software quality evaluating system |
JPH0744360A (en) * | 1993-06-29 | 1995-02-14 | Hitachi Inf Syst Ltd | Quality evaluating method for software |
JPH08234977A (en) * | 1995-02-24 | 1996-09-13 | Mitsubishi Electric Corp | Manifold progress management system for software project |
JP3088697B2 (en) * | 1998-02-06 | 2000-09-18 | 三菱電機株式会社 | Software quality evaluation system |
JP2006059276A (en) * | 2004-08-23 | 2006-03-02 | Hitachi Software Eng Co Ltd | Source code evaluating system |
US8032863B2 (en) * | 2004-11-18 | 2011-10-04 | Parasoft Corporation | System and method for global group reporting |
-
2012
- 2012-12-21 JP JP2012279012A patent/JP6016613B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014123246A (en) | 2014-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568286B2 (en) | Providing insights about a dynamic machine learning model | |
US20200073784A1 (en) | Time-weighted risky code prediction | |
US10031841B2 (en) | Method and system for incrementally updating a test suite utilizing run-time application executions | |
EP3667493B1 (en) | A method for a software development system | |
CN112148586A (en) | Machine-assisted quality assurance and software improvement | |
Borrajo et al. | Bandwidth selection for kernel density estimation with length-biased data | |
US20130145347A1 (en) | Automatic modularization of source code | |
AU2021205017A1 (en) | Processing data utilizing a corpus | |
CN107451112B (en) | Form tool data checking method, device, terminal equipment and storage medium | |
JP6016613B2 (en) | Software reliability evaluation apparatus, software reliability evaluation method, and program | |
Morrow et al. | Function point analysis using NESMA: simplifying the sizing without simplifying the size | |
CN106484389A (en) | Stream of action sectional management | |
Goretzko et al. | The comparison data forest: A new comparison data approach to determine the number of factors in exploratory factor analysis | |
US11487641B1 (en) | Micro services recommendation system for identifying code areas at risk | |
US11341197B2 (en) | Recommendation system based on adjustable virtual indicium | |
Alberti et al. | Improving reproducible deep learning workflows with deepdiva | |
JP4870956B2 (en) | Embedded program generation method, embedded program development system, and information table section | |
US20240220775A1 (en) | Information processing system and information processing method | |
JP5826099B2 (en) | Software evaluation support apparatus and program | |
US20230067057A1 (en) | Dark deployment of infrastructure cloud service components for improved safety | |
JP2013125466A (en) | Influence degree analyzer, influence degree analysis method and program | |
US20220405065A1 (en) | Model Document Creation in Source Code Development Environments using Semantic-aware Detectable Action Impacts | |
CN118159943A (en) | Artificial intelligence model learning introspection | |
US20170212755A1 (en) | System and method for computing a criticality metric of a unit of source code | |
WO2018163304A1 (en) | Source code improvement device, source code improvement method, and source code improvement program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151022 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160728 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160927 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6016613 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |