JP6016613B2 - Software reliability evaluation apparatus, software reliability evaluation method, and program - Google Patents

Software reliability evaluation apparatus, software reliability evaluation method, and program Download PDF

Info

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
Application number
JP2012279012A
Other languages
Japanese (ja)
Other versions
JP2014123246A (en
Inventor
山彦 伊藤
山彦 伊藤
繁樹 鈴木
繁樹 鈴木
太一 石阪
太一 石阪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012279012A priority Critical patent/JP6016613B2/en
Publication of JP2014123246A publication Critical patent/JP2014123246A/en
Application granted granted Critical
Publication of JP6016613B2 publication Critical patent/JP6016613B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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).

特開2000−122860号公報JP 2000-122860 A 特開2008−171307号公報JP 2008-171307 A

ところで、バグは、ソースコード中に一様に分布する訳ではなく、偏在する傾向がある。従って、従来の信頼性評価方法では、このバグの偏在性が考慮されていないため、算出された信頼性の精度としては、不十分であった。   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.

本発明の実施形態に係るソフトウェア信頼性評価装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the software reliability evaluation apparatus which concerns on embodiment of this invention. モジュール位置分割設定情報の一例を示す図である。It is a figure which shows an example of module position division | segmentation setting information. 開発者分割設定情報の一例を示す図である。It is a figure which shows an example of developer division | segmentation setting information. 開発条件DBの一例を示す図である。It is a figure which shows an example of development condition DB. バグ履歴DBの一例を示す図である。It is a figure which shows an example of bug log | history DB. 本発明の実施形態に係るソフトウェア信頼性評価装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the software reliability evaluation apparatus which concerns on embodiment of this invention. 信頼性評価処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of a reliability evaluation process. 分割条件調整処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of a division condition adjustment process. 開発時期条件調整処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of a development time condition adjustment process. モジュール位置条件調整処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of a module position condition adjustment process.

以下、本発明の実施形態を添付図面を参照しながら詳細に説明する。   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 control unit 140, a ROM (Read Only Memory) 150, a RAM (Random Access Memory) 160, and a storage unit 170.

入力部110は、ユーザがソフトウェア信頼性評価装置1を操作するためのマウスやキーボード等の入力装置2と接続されており、ユーザによって入力される各種の情報を受け付ける。   The input unit 110 is connected to an input device 2 such as a mouse or a keyboard for the user to operate the software reliability evaluation device 1 and accepts various types of information input by the user.

出力部120は、液晶ディスプレイ等の出力装置3に接続されている。出力部120は、制御部140により出力された各種の情報を出力する。   The output unit 120 is connected to the output device 3 such as a liquid crystal display. The output unit 120 outputs various information output by the control unit 140.

外部I/F部130は、CD(Compact Disc)等のリムーバブルディスクに対して読み書きするためのドライブ装置(図示せず)等に接続されている。また、外部のネットワーク(例えば、インターネット、LAN(Local Area Network)等)に接続するための装置や、制御部140が生成した情報を印字するためのプリンタに接続されていてもよい。   The external I / F unit 130 is connected to a drive device (not shown) or the like for reading from and writing to a removable disk such as a CD (Compact Disc). Further, it may be connected to a device for connecting to an external network (for example, the Internet, a LAN (Local Area Network), etc.) or a printer for printing information generated by the control unit 140.

制御部140は、例えば、CPU(Central Processing Unit)から構成されており、ソフトウェア信頼性評価装置1の全体の制御を行う。例えば、制御部140は、信頼性評価処理を実行する。信頼性評価処理の詳細については後述する。   The control unit 140 includes, for example, a CPU (Central Processing Unit), and performs overall control of the software reliability evaluation apparatus 1. For example, the control unit 140 executes a reliability evaluation process. Details of the reliability evaluation process will be described later.

ROM150は、制御部140がソフトウェア信頼性評価装置1の全体を制御するためのプログラム等を格納する不揮発性メモリである。例えば、ROM150は、信頼性評価処理を実行するためのプログラムを格納している。   The ROM 150 is a non-volatile memory that stores a program and the like for the control unit 140 to control the entire software reliability evaluation apparatus 1. For example, the ROM 150 stores a program for executing the reliability evaluation process.

RAM160は、制御部140が生成した情報や、当該情報を生成するために必要なデータを一時的に格納するための揮発性メモリである。   The RAM 160 is a volatile memory for temporarily storing information generated by the control unit 140 and data necessary for generating the information.

記憶部170は、ハードディスクドライブ等の記憶装置から構成される。具体的には、記憶部170は、分割設定DB(データベース)171と、開発条件DB172と、バグ履歴DB173と、を記憶する。   The storage unit 170 includes a storage device such as a hard disk drive. Specifically, the storage unit 170 stores a division setting DB (database) 171, a development condition DB 172, and a bug history DB 173.

分割設定DB171は、モジュールの開発時において該モジュールの品質に影響を与えうる開発条件毎に、その開発条件のソフトウェアの分割粒度を表す分割設定情報を記憶する。ここで、分割粒度とは、開発条件を構成する複数の要素を分割する際の、分割単位の大きさを表す。なお、本実施形態では、モジュールの開発時において該モジュールの品質に影響を与えうる開発条件の一例として、モジュール位置、開発者、及び開発時期を用いる場合について説明する。   The division setting DB 171 stores division setting information indicating the division granularity of the software under the development condition for each development condition that can affect the quality of the module at the time of module development. Here, the division granularity represents the size of a division unit when dividing a plurality of elements constituting the development condition. In the present embodiment, a case where the module position, the developer, and the development time are used as an example of a development condition that can affect the quality of the module during the development of the module will be described.

モジュール位置は、評価対象であるソフトウェアを構成する複数のモジュールの階層構造(ソースツリー)における位置を表す。モジュール位置が高いほど、そのモジュール内で生じたバグや、開発途中の使用変更の有無の影響範囲は広くなり、ソフトウェアの品質に影響を与えうる。分割設定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 division setting DB 171 stores module position division setting information 171a as division setting information using the module position as a development condition.

図2に、モジュール位置分割設定情報171aの一例を示す。図2に示すように、モジュール位置分割設定情報は、モジュールの階層構造と、その分割粒度とを表す。図2に示すモジュール位置分割設定情報は、具体的には、モジュールの階層に応じて、「大モジュール」、「中モジュール」、及び「小モジュール」の3つの分割粒度を有する。   FIG. 2 shows an example of the module position division setting information 171a. As shown in FIG. 2, the module position division setting information represents the hierarchical structure of modules and the division granularity thereof. Specifically, the module position division setting information illustrated in FIG. 2 has three division granularities of “large module”, “medium module”, and “small module” according to the module hierarchy.

開発者は、モジュールを開発した人を表す。開発者のスキルの程度により、その開発者が開発したモジュールの品質に影響を与えうる。分割設定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 division setting DB 171 stores developer division setting information 171b as division setting information with a developer as a development condition.

図3に、開発者分割設定情報171bの一例を示す。図3に示すように、開発者分割設定情報は、開発者のグループ構成と、その分割基準とを表す。図3に示す開発者分割設定情報は、具体的には、「開発者大」、及び「開発者小」の2つの分割粒度を有する。   FIG. 3 shows an example of the developer division setting information 171b. As shown in FIG. 3, the developer division setting information represents a developer group configuration and its division criteria. Specifically, the developer division setting information illustrated in FIG. 3 has two division granularities of “developer large” and “developer small”.

開発時期は、そのモジュールが開発された時期を表す。開発時期が、どのような時期か、例えば、開発の最終段階なのか初期段階なのかによって開発者の疲労度や精神的余裕が変わるため、開発時期はソフトウェアの品質に影響を与えうる。開発時期を開発条件とする場合、その分割粒度は、例えば、月や週といった一般的な時期の区切りの他、ユーザ等により予め設定された所定の期間を用いることができる。   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 development condition DB 172 stores information representing the development condition of the module for each of a plurality of modules constituting the software. FIG. 4 shows an example of data stored in the development condition DB 172. As shown in FIG. 4, the development condition DB 172 specifically stores information representing the developer of the module and the development time of the module for each module.

バグ履歴DB173は、ソフトウェアを構成する複数のモジュール毎に、バグの個数を表す情報を記憶する。図5に、バグ履歴DB173に格納されるデータの一例を示す。バグの個数は、例えば、そのモジュールに対して行われた試験項目のうち、正常な出力が得られなかった試験項目の個数として取得される。   The bug history DB 173 stores information representing the number of bugs for each of a plurality of modules constituting the software. FIG. 5 shows an example of data stored in the bug history DB 173. The number of bugs is acquired as, for example, the number of test items for which normal output is not obtained among the test items performed on the module.

次に、ソフトウェア信頼性評価装置1の制御部140の機能的構成について説明する。図6に示すように、制御部140は、分割条件決定部141、分割部142、バグ密度算出部143、評価部144として機能する。   Next, a functional configuration of the control unit 140 of the software reliability evaluation apparatus 1 will be described. As illustrated in FIG. 6, the control unit 140 functions as a division condition determination unit 141, a division unit 142, a bug density calculation unit 143, and an evaluation unit 144.

分割条件決定部141は、評価対象であるソフトウェアを分割する際の分割条件を決定する。具体的には、分割条件決定部141は、入力部110を介して、ユーザから開発条件及びその分割粒度を表す情報を取得する。また、分割条件決定部141は、ユーザから開発条件及びその分割粒度を表す情報を取得しない場合等においては、開発条件と分割粒度の全ての組み合わせについて、分割するよう決定してもよい。   The division condition determination unit 141 determines a division condition for dividing the software to be evaluated. Specifically, the division condition determination unit 141 acquires information representing the development conditions and the division granularity from the user via the input unit 110. In addition, the division condition determination unit 141 may determine to divide all combinations of the development conditions and the division granularity when the development condition and the information indicating the division granularity are not acquired from the user.

また、分割条件決定部141は、評価部144により、部分バグ密度に偏りがあると判定された場合に、偏りがあると判定された部分ソースコードについて、再度分割するための分割条件を決定する。   In addition, when the evaluation unit 144 determines that the partial bug density is biased, the partitioning condition determination unit 141 determines a partitioning condition for re-partitioning the partial source code determined to be biased. .

分割部142は、分割条件決定部141により決定された分割条件に応じて、評価対象であるソフトウェアを分割し、部分ソースコード情報を生成する。部分ソースコード情報は、分割条件に応じて評価対象であるソフトウェアが分割された際の、その分割された各部分に属するモジュールを表す情報である。   The dividing unit 142 divides the software to be evaluated according to the dividing condition determined by the dividing condition determining unit 141, and generates partial source code information. The partial source code information is information representing a module belonging to each divided part when the software to be evaluated is divided according to the division condition.

バグ密度算出部143は、評価対象であるソフトウェア全体に対するバグの割合を表す全体バグ密度と、分割部142により生成された各部分ソースコード情報が表すモジュール全体に対するバグの割合を表す部分バグ密度と、を算出する。   The bug density calculation unit 143 includes an overall bug density that represents the ratio of bugs to the entire software to be evaluated, and a partial bug density that represents the ratio of bugs to the entire module represented by each partial source code information generated by the division unit 142. , Is calculated.

具体的には、全体バグ密度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 bug history DB 173 as the total number of bugs of all the modules constituting the software to be evaluated. The number of unknown bugs Ua can be calculated by, for example, a known method for predicting the number of bugs such as a Gompertz curve model or a logistic curve model. Further, the development step number Sa can be calculated from the total number of steps of all modules constituting the software to be evaluated.

また、部分バグ密度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 unit 142, respectively, Kp and Up, and the number of development steps of the entire module. Sp is calculated as follows.
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 bug history DB 173 as the total number of bugs of the entire module represented by each partial source code information. Further, the number of unknown bugs Up can be calculated by, for example, a known method for predicting the number of bugs such as a Gompertz curve model or a logistic curve model. Further, the development step number Sp can be calculated from the total number of steps of the entire module represented by each partial source code information generated by the dividing unit 142.

評価部144は、バグ密度算出部143により算出された全体バグ密度及び部分バグ密度に基づいて、全体バグ密度に対して部分バグ密度に偏りがあるか否かを判定する。具体的には、評価部144は、バグ密度算出部143において算出された部分バグ密度毎に、部分バグ密度が全体バグ密度よりも所定値以上大きいか否かを判定し、所定値以上大きい場合に部分バグ密度に偏りがあると判定する。   The evaluation unit 144 determines whether the partial bug density is biased with respect to the total bug density based on the total bug density and the partial bug density calculated by the bug density calculation unit 143. Specifically, the evaluation unit 144 determines, for each partial bug density calculated by the bug density calculation unit 143, whether or not the partial bug density is greater than a predetermined value by a predetermined value or more. It is determined that the partial bug density is biased.

次に、ソフトウェア信頼性評価装置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 input device 2. Further, the data stored in the division setting DB 171, the development condition DB 172, and the bug history DB 173 is extracted in advance from the software to be evaluated or input by the user via the input device 2. It is assumed that it is stored in the storage unit 170.

まず、バグ密度算出部143は、全体バグ密度を算出する(ステップS11)。具体的には、バグ密度算出部143は、評価対象のソフトウェア全体について、(1)式を用いて全体バグ密度を算出する。   First, the bug density calculation unit 143 calculates the overall bug density (step S11). Specifically, the bug density calculation unit 143 calculates the overall bug density for the entire software to be evaluated using equation (1).

次に、分割条件決定部141は、入力部110を介してユーザから分割条件として、開発条件と、その分割粒度を表す情報を取得する(ステップS12)。   Next, the division condition determination unit 141 acquires development conditions and information indicating the division granularity as a division condition from the user via the input unit 110 (step S12).

次に、分割部142は、ステップS12において取得された開発条件と、その分割粒度とに基づいて、部分ソースコード情報を生成する(ステップS13)。   Next, the dividing unit 142 generates partial source code information based on the development conditions acquired in step S12 and the division granularity (step S13).

部分ソースコード情報の生成について、以下具体的に説明する。例えば、ステップ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 condition determination unit 141 acquires “module position” as the development condition and “in module” as the division granularity. In this case, the division unit 142 refers to the module position division setting information 171a stored in the division setting DB 171 and divides the software to be evaluated with the division granularity corresponding to the module to configure the partial source code. Partial source code information representing all modules to be generated is generated.

具体的には、図2に示すモジュール位置分割設定情報171aにおいて、分割部142は、モジュール中を分割粒度として分割することにより、「AA」、「AA」の下位のモジュールである「AAa」及び「AAb」を表す部分ソースコード情報と、「AB」、「AB」の下位のモジュールである「ABa」、「ABb」及び「ABc」を表す部分ソースコード情報と、の2つの部分ソースコード情報を生成する。   Specifically, in the module position division setting information 171a shown in FIG. 2, the dividing unit 142 divides the module as the division granularity, so that “AAa” and “AAa” which are lower modules of “AA” and Two pieces of partial source code information including partial source code information representing “AAb” and partial source code information representing “ABa”, “ABb”, and “ABc”, which are lower modules of “AB” and “AB” Is generated.

また、分割条件決定部141が、複数の開発条件と、それぞれの開発条件の分割粒度を取得した場合は、分割部142は、その開発条件と分割粒度との組み合わせにより、評価対象のソフトウェアを分割し、部分ソースコード情報を生成する。   In addition, when the division condition determination unit 141 acquires a plurality of development conditions and the division granularity of each development condition, the division unit 142 divides the evaluation target software according to the combination of the development conditions and the division granularity. And partial source code information is generated.

例えば、ステップS12において、分割条件決定部141は、開発条件として「モジュール位置」、その分割粒度として「モジュール中」の他、さらに開発条件として「開発時期」、その分割粒度として「月」を取得したとする。この場合、分割部141は、分割設定DB171に格納されたモジュール位置分割設定情報171aを参照して、モジュール中に対応する分割粒度で、評価対象であるソフトウェアを分割する。そしてさらに、分割部142は、その分割された各部分ソースコード毎に、開発条件DB172を参照して、その部分ソースコードの開発時期を特定する。そして、分割部142は、特定された開発時期の月毎に、さらに部分ソースコードを分割することにより、部分ソースコード情報を生成する。   For example, in step S12, the division condition determination unit 141 acquires “module position” as the development condition, “in module” as the division granularity, “development time” as the development condition, and “month” as the division granularity. Suppose that In this case, the division unit 141 refers to the module position division setting information 171a stored in the division setting DB 171 and divides the software to be evaluated with the division granularity corresponding to the module. Further, the dividing unit 142 refers to the development condition DB 172 for each divided partial source code, and specifies the development time of the partial source code. Then, the dividing unit 142 generates partial source code information by further dividing the partial source code for each month of the specified development period.

次に、バグ密度算出部143は、ステップS13において生成された部分ソースコード情報毎に、部分バグ密度を算出する(ステップS14)。具体的には、バグ密度算出部143は、ステップS13において生成された部分ソースコード情報毎に、その部分ソースコード情報が表すモジュール全体について、(2)式を用いて部分バグ密度を算出する。   Next, the bug density calculation unit 143 calculates a partial bug density for each partial source code information generated in step S13 (step S14). Specifically, the bug density calculation unit 143 calculates a partial bug density for each partial source code information generated in step S13, using the equation (2), for the entire module represented by the partial source code information.

次に、評価部144は、部分ソースコード情報毎に、ステップS11において算出された全体バグ密度に対して、ステップS14において算出された部分バグ密度に偏りがあるか否かを判定する(ステップS15)。具体的には、評価部144は、部分バグ密度が、全体バグ密度よりも所定値以上である場合、部分バグ密度に偏りがあると判定する。   Next, the evaluation unit 144 determines, for each partial source code information, whether or not the partial bug density calculated in step S14 is biased with respect to the overall bug density calculated in step S11 (step S15). ). Specifically, the evaluation unit 144 determines that the partial bug density is biased when the partial bug density is a predetermined value or more than the entire bug density.

そして、評価部144は、部分バグ密度に偏りがあると判定した場合(ステップS15;Yes)、分割条件調整処理を実行する(ステップS16)。また、評価部144は、部分バグ密度に偏りがないと判定した場合(ステップS15;No)、ステップS17に処理を進める。   If the evaluation unit 144 determines that the partial bug density is biased (step S15; Yes), the evaluation unit 144 executes a division condition adjustment process (step S16). If the evaluation unit 144 determines that the partial bug density is not biased (step S15; No), the process proceeds to step S17.

図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 condition determining unit 141 determines whether or not the development condition is included in the development conditions acquired in step S12 of FIG. 7 (step S21).

開発時期を含むと判定した場合(ステップ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 condition determination unit 141 sets, as an initial period, a period corresponding to the division granularity of the development time for the partial source code information determined to have partial bug density bias in step S15 of FIG. S31). Also, n representing the number of days shifted from the initial period is set to 0.

分割条件決定部141は、nに1をインクリメントする(ステップS32)。   The division condition determining unit 141 increments n by 1 (step S32).

次に、分割条件決定部141は、nが、ステップS12において取得した開発時期の分割粒度よりも小さいか否かを判定する(ステップS33)。   Next, the division condition determination unit 141 determines whether n is smaller than the division granularity at the development time acquired in step S12 (step S33).

nが分割粒度よりも小さいと判定した場合(ステップS33;Yes)、分割部142は、開発条件DB172を参照し、開発時期が、初期期間からn日前にずらした期間内であるモジュールについて部分モジュール情報を生成し、バグ密度算出部143は、その部分モジュール情報について、部分バグ密度を算出する(ステップS34)。   When it is determined that n is smaller than the division granularity (step S33; Yes), the division unit 142 refers to the development condition DB 172 and refers to the development condition DB 172. The information is generated, and the bug density calculation unit 143 calculates a partial bug density for the partial module information (step S34).

また、分割部142は、開発条件DB172を参照し、開発時期が、初期期間からn日後にずらした期間内であるモジュールについて部分モジュール情報を生成し、バグ密度算出部143は、その部分モジュール情報について、部分バグ密度を算出する(ステップS35)。そして、処理をステップS32に戻す。   The dividing unit 142 refers to the development condition DB 172, generates partial module information for a module whose development time is within a period shifted n days from the initial period, and the bug density calculating unit 143 generates the partial module information. The partial bug density is calculated for (Step S35). Then, the process returns to step S32.

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 evaluation unit 144 sets the period with the highest bug density as the high bug density period among the partial bug densities calculated in step S34 and step S35. Store (step S36). Then, the process proceeds to step S23 in FIG.

図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 condition determination unit 141 determines whether the development condition acquired in step S12 of FIG. 7 includes the module position. Is determined (step S23).

開発条件にモジュール位置を含むと判定した場合(ステップ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 condition determining unit 141 determines the development condition as the module position and the division granularity obtained in step S12 of FIG. 7 as the division condition (step S41).

次に、分割部142は、図7のステップS13と同様に、ステップS41において決定された分割条件に基づいて、部分ソースコード情報を生成する(ステップS42)。   Next, the dividing unit 142 generates partial source code information based on the dividing condition determined in step S41 as in step S13 of FIG. 7 (step S42).

次に、バグ密度算出部143は、図7のステップS14と同様に、ステップS42において生成された部分ソースコード情報毎に、部分バグ密度を算出する(ステップS43)。   Next, the bug density calculation unit 143 calculates a partial bug density for each partial source code information generated in step S42, similarly to step S14 in FIG. 7 (step S43).

次に、評価部144は、部分バグ密度が、所定値以上のものがあるか否かを判定する(ステップS44)。評価部144は、所定値以上のものがないと判定した場合(ステップS44;No)、図8のステップS25に処理を進める。   Next, the evaluation unit 144 determines whether or not there is a partial bug density equal to or higher than a predetermined value (step S44). If the evaluation unit 144 determines that there is no value equal to or greater than the predetermined value (step S44; No), the process proceeds to step S25 in FIG.

部分バグ密度が所定値以上のものがあると判定した場合(ステップ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 evaluation unit 144 selects one adjacent module (step S45). Specifically, information on adjacent modules is acquired with reference to the module position division setting information 171a.

そして、評価部144は、隣接するモジュールについて、部分バグ密度が所定値以上か否かを判定する(ステップS46)。評価部144は、所定値よりも小さいと判定した場合(ステップS46;No)、ステップS48に処理を進める。   And the evaluation part 144 determines whether a partial bug density is more than predetermined value about an adjacent module (step S46). When it is determined that the evaluation unit 144 is smaller than the predetermined value (step S46; No), the process proceeds to step S48.

部分バグ密度が所定値以上であると判定した場合(ステップ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 evaluation unit 144 stores the module as a high bug density module (step S47).

次に、評価部144は、未評価の隣接モジュールがあるか否かを判定する(ステップS48)。未評価の隣接モジュールがあると判定した場合(ステップS48;Yes)、ステップS45に処理を戻す。また、未評価の隣接モジュールがないと判定した場合(ステップS48;No)、図8のステップS25に進む。   Next, the evaluation unit 144 determines whether there is an unevaluated adjacent module (step S48). If it is determined that there is an unevaluated adjacent module (step S48; Yes), the process returns to step S45. If it is determined that there is no unevaluated adjacent module (step S48; No), the process proceeds to step S25 in FIG.

図8に戻って、評価部144は、評価結果として、記憶された高バグ密度期間及び高バグ密度モジュールを表示する(ステップS25)。   Returning to FIG. 8, the evaluation unit 144 displays the stored high bug density period and the high bug density module as the evaluation result (step S25).

図7に戻って、評価部144は、ステップS12において取得した分割条件とは異なる分割条件において再度評価するか否かを判定する(ステップS17)。具体的には、評価部144は、入力部110を介してユーザから再度評価する指示を表す入力を受け付けたか否かを判定する。そして、再度評価すると判定した場合(ステップS17;Yes)、処理をステップS12に戻し、再度評価しないと判定した場合(ステップS17;No)、信頼性評価処理を終了する。   Returning to FIG. 7, the evaluation unit 144 determines whether to evaluate again under a division condition different from the division condition acquired in Step S12 (Step S17). Specifically, the evaluation unit 144 determines whether an input representing an instruction to evaluate again from the user is received via the input unit 110. And when it determines with evaluating again (step S17; Yes), a process is returned to step S12, and when it determines with not evaluating again (step S17; No), a reliability evaluation process is complete | finished.

以上説明したように、本実施形態に係るソフトウェア信頼性評価装置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 division setting information 171a in FIG. However, the way of expressing the module position is not limited to this. For example, the module position and the division granularity may be used as the module position division setting information 171a using the calling relationship between modules.

また、本実施形態において、全体バグ密度及び部分バグ密度に代えて、全体残存バグ密度及び部分残存バグ密度を用いて評価してもよい。ここで、残存バグ密度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 evaluation unit 144 has been described as displaying the module determined to have a high bug density to the user, but the output mode of the result to the user is not limited to this. For example, when the correspondence relationship between the module in the module position division setting information 171a and the module described in the specification is set in advance, the module is output to indicate the module determined to have a high bug density together with the specification. May be.

また、本発明に係るソフトウェア信頼性評価装置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つである、
ことを特徴とする請求項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
JP2012279012A 2012-12-21 2012-12-21 Software reliability evaluation apparatus, software reliability evaluation method, and program Expired - Fee Related JP6016613B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
JP2014123246A (en) 2014-07-03

Similar Documents

Publication Publication Date Title
US11645581B2 (en) Meaningfully explaining black-box machine learning models
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
CN112148586A (en) Machine-assisted quality assurance and software improvement
US20130145347A1 (en) Automatic modularization of source code
AU2021205017A1 (en) Processing data utilizing a corpus
CN102067106A (en) Data quality tracking by determining metric values for child nodes and a parent node
EP3667493B1 (en) A method for a software development system
JP6213552B2 (en) Non-functional evaluation project management system, non-functional evaluation project management method, and non-functional evaluation project management program
JP6016613B2 (en) Software reliability evaluation apparatus, software reliability evaluation method, and program
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
US11947938B2 (en) Application development platform
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
WO2018163304A1 (en) Source code improvement device, source code improvement method, and source code improvement program
JP2007080049A (en) Built-in program generation method, built-in program development system and information table section
JP2007226526A (en) Information processor, information processing method, program and storage medium
US11068333B2 (en) Defect analysis and remediation tool

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