JP5201068B2 - Risk determination program, risk determination device and method - Google Patents
Risk determination program, risk determination device and method Download PDFInfo
- Publication number
- JP5201068B2 JP5201068B2 JP2009104626A JP2009104626A JP5201068B2 JP 5201068 B2 JP5201068 B2 JP 5201068B2 JP 2009104626 A JP2009104626 A JP 2009104626A JP 2009104626 A JP2009104626 A JP 2009104626A JP 5201068 B2 JP5201068 B2 JP 5201068B2
- Authority
- JP
- Japan
- Prior art keywords
- software
- api
- influence
- risk
- program
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
本発明は、危険度判定プログラム、危険度判定装置及び方法に関する。特に、本発明は、ソフトウェア開発において、開発作業の効率化、リスク低減や品質向上を図る技術に関する。 The present invention relates to a risk determination program, a risk determination device, and a method. In particular, the present invention relates to technology for improving the efficiency of development work, reducing risk, and improving quality in software development.
ソフトウェア開発において、潜在的に障害が入りやすい箇所や、作業の難易度の高い箇所を評価する技術が提案されている。例えば、特許文献1では、開発されたアプリケーションがAPI(Application Program Interface)を正しく使用しているか否かをアプリケーションから渡されたAPIの使用方法に関する情報を使用して検査する装置が提案されている。また、特許文献2には、ソフトウェアシステムの試験のための効率的な試験項目の設計を支援するシステムが提案されている。
In software development, a technique for evaluating a place where a failure is likely to occur or a place where work is difficult is proposed. For example,
障害の原因には様々なものがある。特に問題なのがソフトウェア内部の様々な箇所が複雑に絡み合って相互作用を起こして発生する障害である。この障害は、障害が発生した箇所と、障害発生の原因となった箇所が常に同じとは限らず、また原因となる箇所が複数ある場合も多い。例えば、あるAPIが原因となって発生する障害の発生箇所は、このAPIを使用した箇所にだけ出現するとは限らない。このような障害を以下ではソフトウェアの構造的な障害と呼ぶ。このようなソフトウェアの構造的な障害が発生する危険度の高い箇所を予測することができれば、開発作業の効率化、リスク低減や品質向上に役立つ。特許文献1及び2にもAPIの使用により発生するソフトウェアの構造的な障害の発生箇所を予測する技術の開示はない。
There are various causes of failure. Particularly problematic is the failure that occurs when various parts of the software are intricately intertwined and interact. In this failure, the location where the failure has occurred and the location that caused the failure are not always the same, and there are many cases where there are a plurality of causes. For example, a location where a fault occurs due to an API does not always appear only at a location where the API is used. Such a failure is hereinafter referred to as a software structural failure. If it is possible to predict a high-risk location where such a structural failure of software occurs, it is useful for improving the efficiency of development work, reducing risk, and improving quality.
本発明は上記事情に鑑みてなされたものであり、ソフトウェアの構造的な障害の発生箇所を予測することができる危険度判定プログラム、危険度判定装置及び方法を提供することを目的とする。 The present invention has been made in view of the above circumstances, and an object thereof is to provide a risk determination program, a risk determination device, and a method capable of predicting a location where a structural failure of software occurs.
本明細書に開示の危険度判定プログラムは、コンピュータを、ソフトウェアを解析して、前記ソフトウェア内のプログラムの実行と該プログラムが扱うデータによる影響が前記ソフトウェア内の他のプログラムや他のデータに波及していくモデルを、プログラムとデータの依存関係に基づいて求めるモデル構築手段と、前記モデルを利用して、前記ソフトウェアが使用するAPIの使用によって、前記ソフトウェアにおいて過去に発生した障害の発生箇所が受ける影響の度合いを求める影響度合い算出手段と、前記影響の度合いを使用して、前記APIの使用が障害発生の遠因となった確率を推定し、前記APIの使用による危険度として求める推定手段として機能させることを特徴としている。 The risk determination program disclosed in the present specification analyzes a computer, and the influence of the execution of the program in the software and the data handled by the program affects other programs and other data in the software. The model construction means for obtaining the model to be performed based on the dependency relationship between the program and the data, and the use of the API used by the software by using the model, the location where the fault has occurred in the software in the past As an influence degree calculating means for obtaining the degree of influence to be affected, and using the degree of influence, an estimation means for estimating the probability that the use of the API has caused a distant cause of the failure and obtaining the degree of risk due to the use of the API. It is characterized by functioning.
本明細書に開示の危険度判定プログラムによれば、ソフトウェアの構造的な障害の発生箇所を予測することができる。 According to the risk determination program disclosed in this specification, it is possible to predict the location where a structural failure of the software occurs.
以下、添付図面を参照しながら本発明の好適な実施例を説明する。 Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
図1に、本発明を適用した危険度判定装置1の構成を示す。
危険度判定装置1は、制御部2と、記憶装置6と、操作部8と、入力インタフェース7と、表示部10と、グラフィックインタフェース9とを備えている。また、制御部2は、CPU(Central Processing Unit)3と、ROM(Read Only Memory)4と、RAM(Read Only Memory)5とを備えている。
FIG. 1 shows a configuration of a
The
まず、制御部2について説明する。ROM4には、CPU3が制御に使用するプログラムが記録されている。CPU3は、ROM4に記録されたプログラムを読み込んで、読み込んだプログラムに従った制御を行う。RAM5には、CPU3が演算に使用するデータや、演算結果のデータが記録される。CPU3、RAM5などのハードウェアと、ROM4に格納されたプログラムとの協働によって実現される制御部2の機能ブロックについては後ほど説明する。
First, the
記憶装置6には、制御部2が制御に使用するデータが格納される。制御部2の制御によって記憶装置6内には後述するデータベース(以下、データベースをDBと略記する場合もある)が構築され、制御部2の制御によってデータベースとして記憶装置6内に記憶されたデータが取り出し可能となる。データベースには、ソースコードDB15、APIリストDB16、サンプルソフトウェアの障害履歴DB17、API危険度DB18、データエンティティリストDB19、コードエンティティリストDB20、関係リストDB21、ソフトウェアモデルDB22、影響波及モデルDB23、波及行列DB24等が含まれる。これらのデータベースの詳細については後述する。
The
操作部8は、ユーザの操作入力を受け付ける受付部であり、操作部8によって受け付けられた入力情報は、入力インタフェース7を介して制御部2に出力される。ユーザは、例えば、操作部8を使用してソフトウェア開発に使用するAPIの設定等を入力する。
The operation unit 8 is a reception unit that receives a user operation input, and the input information received by the operation unit 8 is output to the
表示部10には、制御部2の判定結果がグラフィックインタフェース9を介して表示される。例えばリスクポイントの算出結果や、リスクポイントに基づいて補正した工数の見積もり等が表示される(これらの詳細については、後述する)。
The determination result of the
次に、CPU3、RAM4等のハードウェアと、ROM4に記録されたプログラムとの協働によって実現される制御部2の機能ブロックについて、図2を参照しながら説明する。
制御部2は、ソースコード解析部11と、ソフトウェアモデル構築部12と、波及行列計算部13と、API危険度計算部14とを実行可能な機能ブロックとして備えている。
制御部2は、過去に作成したソフトウェア(以後、サンプルソフトウェアと呼ぶ)からプログラムを入力する。なお、プログラムには、コンピュータが実際に処理命令に従って処理を行う、機械語翻訳されたプログラムだけではなく、機械語に翻訳されていないソースコードも含まれる。以下では、プログラムとしてソースコードを入力した場合を例に説明する。また、制御部2は、各サンプルソフトウェアで使用されているAPIのリスト(以下、APIリストと呼ぶ)と、各サンプルソフトウェアで発生した障害のリスト(以後、障害履歴と呼ぶ)とを入力する。制御部2は、これらの情報を入力して、図2に示す各機能ブロックで後述する処理を施すことにより、各APIのAPI危険度を算出する。算出したAPI危険度は、API危険度DB18に記憶される。
Next, functional blocks of the
The
The
各機能ブロックについて説明する。
ソースコード解析部11は、API危険度の算出を行うためのサンプルソフトウェアのソースコードを入力とし、静的解析などにより制御依存情報やデータ依存情報などの情報の抽出を行う。
Each functional block will be described.
The source
ソフトウェアモデル構築部12は、ソースコード解析部11で抽出した情報を用い、サンプルソフトウェアのモデル(以後、ソフトウェアモデルと呼ぶ)を構築する。
The software
波及行列計算部13は、ソフトウェアモデル構築部12で構築したソフトウェアモデルと、危険度の判定を行う対象のAPIリストと、サンプルソフトウェアの障害履歴を入力する。波及行列計算部13は、入力した情報に基づいて影響波及モデルを構築する。また、波及行列計算部13は、構築した影響波及モデルに基づいてAPIと障害発生箇所との関係を表す波及行列を計算する。
The propagation
API危険度計算部14は、波及行列とサンプルソフトウェアの障害履歴から、APIの危険度を求める。
The API risk
次に、図3を参照しながらソースコード解析部11の詳細について説明する。いて詳細に述べる。図3はソースコード解析部11の構成図である。ソースコード解析部11は、構文解析部111とモデル要素抽出部112とを備えている。
Next, details of the source
構文解析部111は、外部からサンプルソフトウェアのソースコードを入力し、構文解析を行って構文解析情報を得る。構文解析部111は、ソースコードを解析して、構文情報を出力する。構文解析部111には、コンパイラなどで利用されている既存技術を用いる。 The syntax analysis unit 111 receives the source code of the sample software from the outside and performs syntax analysis to obtain syntax analysis information. The syntax analysis unit 111 analyzes the source code and outputs syntax information. The syntax analysis unit 111 uses an existing technology used by a compiler or the like.
モデル要素抽出部112は、構文解析部111から出力される構文解析情報を入力して、後述のソフトウェアモデルを構成する各要素である、コードエンティティ、データエンティティ、「関係」のリストを抽出する。
コードエンティティは、ソースコードのある一部分に該当する。「ソースコードの一部分」の粒度としては、ソースファイル、クラス、メソッド(または関数、サブルーチン)、またはブロックなどの多様な範囲を取り得る。
APIとは、ライブラリやフレームワークがアプリケーションソフトウェアのために提供する公開されたインタフェースである。多くの場合、メソッド(または関数、サブルーチン)の呼び出しとなる。APIはコードエンティティである。
データエンティティは、ソフトウェアが扱うデータを示す。データベース、ファイル、フィールドまたは変数の多様な範囲を取り得る。以下では、コードエンティティとデータエンティティをまとめて単にエンティティと呼ぶ。
The model
A code entity corresponds to a certain part of source code. The granularity of the “part of the source code” can take various ranges such as a source file, a class, a method (or a function, a subroutine), or a block.
An API is a public interface provided by a library or framework for application software. In many cases, this is a method (or function, subroutine) call. An API is a code entity.
The data entity indicates data handled by software. Can take a diverse range of databases, files, fields or variables. Hereinafter, the code entity and the data entity are collectively referred to as an entity.
あるエンティティとあるエンティティの間には何らかの関係がある場合がある。そのとき、「関係」とは、どのエンティティとどのエンティティの間にどんな種類の関係があるかを示す。
図4にコードエンティティの構造の一例を示す。エンティティ名とエンティティタイプの二項目からなる。エンティティ名は、ソフトウェア全体でこのコードエンティティの指す範囲を一意に特定できる情報である。エンティティタイプはこのコードエンティティの種類を保持する。
また、データエンティティの構造も図4に示す通りであり、エンティティ名とエンティティタイプの二項目からなる。エンティティ名は、ソフトウェア全体でこのデータエンティティの指す範囲を一意に特定できる情報である。エンティティタイプはこのデータエンティティの種類を保持する。
There may be some relationship between an entity and an entity. At this time, the “relationship” indicates what kind of relationship exists between which entity and which entity.
FIG. 4 shows an example of the structure of the code entity. It consists of two items: entity name and entity type. The entity name is information that can uniquely identify the range indicated by the code entity in the entire software. The entity type holds the type of this code entity.
Also, the structure of the data entity is as shown in FIG. 4 and consists of two items, an entity name and an entity type. The entity name is information that can uniquely identify the range indicated by the data entity in the entire software. The entity type holds the type of this data entity.
図5に「関係」の構造の一例を示す。始点エンティティ名と終点エンティティ名と関係タイプの三項目からなる。始点エンティティ名と終点エンティティ名はある関係を持つ二つのエンティティのエンティティ名である。関係タイプはその関係の種類を保持する。「AはBに対してXという関係を持つ」という場合、始点エンティティ名はA、終点エンティティ名はB、関係タイプはXとなる。このAとBを入れ替えると意味が変わってしまう場合、始点エンティティ名と終点エンティティ名の順序は本質的に重要である。
また、「CとDはYという関係を持つ」という場合、始点エンティティ名はC、終点エンティティ名はD、関係タイプはYとなる。このCとDを入れ替えても意味が変わらない場合、始点エンティティ名と終点エンティティ名の順序は本質的ではなく可換である。関係タイプごとに可換か否かは自ずと決まっている。
FIG. 5 shows an example of the “relation” structure. It consists of three items: the start entity name, the end entity name, and the relationship type. The start entity name and the end entity name are the entity names of two entities having a certain relationship. The relationship type holds the type of the relationship. When “A has a relationship of X to B”, the start entity name is A, the end entity name is B, and the relationship type is X. If the meaning changes when A and B are interchanged, the order of the start entity name and the end entity name is essentially important.
Further, when “C and D have a relationship of Y”, the start entity name is C, the end entity name is D, and the relationship type is Y. If the meaning does not change even if C and D are interchanged, the order of the start entity name and the end entity name is not essential and is interchangeable. Whether each type of exchange is commutative or not is determined automatically.
図6はあるソフトウェアのソースコードの一部である。なお、本実施例の動作の説明に不要な部分は省略し簡略化している。また、行頭には説明の便を図るために4桁の行番号を付している。
構文解析部111は、図6に示すソースコードを解析し、字句要素を切り分け、構文的な意味づけを判別し、判別結果として解析情報をモデル要素抽出部112に出力する。モデル要素抽出部112は、解析情報に基づいてコードエンティティとデータエンティティに該当するものを抽出する。また、モデル要素抽出部112は、予め定義された「関係」に該当する構文構造を「関係」として抽出する。ここでは、「関係」の種類として「呼び出し関係」、「リード関係」、「ライト関係」の3つが定義されているものとする。ただし、このほかにも「委譲関係」など3種類を超えて関係の種類を増やすことが可能である。
FIG. 6 is a part of source code of software. It should be noted that parts unnecessary for the description of the operation of this embodiment are omitted and simplified. In addition, a four-digit line number is attached to the beginning of the line for convenience of explanation.
The parsing unit 111 analyzes the source code shown in FIG. 6, cuts out lexical elements, discriminates syntactic meaning, and outputs analysis information to the model
図7に、図6のソースコードから抽出されたコードエンティティのリストを示す。同様に、図8にデータエンティティのリスト、図9に「関係」のリストを示す。
図6にはコードエンティティがA,B,C,D,E,F,API1,API2の8つ存在し、データエンティティがQの1つ存在する。図6の0400行から0420行までは関数Cであり、0410行で関数API1が呼ばれている。そのため、コードエンティティCがコードエンティティAPI1を「呼び出し」ているという「関係」がある。また、同じく0410行では、変数Qに代入が行われている。そのため、コードエンティティCがデータエンティティQに「ライト」しているという「関係」がある。
FIG. 7 shows a list of code entities extracted from the source code of FIG. Similarly, FIG. 8 shows a data entity list, and FIG. 9 shows a “relation” list.
In FIG. 6, there are eight code entities A, B, C, D, E, F, API1, and API2, and one data entity Q. The
次に、ソフトウェアモデル構築部12について詳細に説明する。図10はソフトウェアモデル構築部12の構成図である。
ソフトウェアモデル構築部12は、コードエンティティ、データエンティティ、「関係」のリストを入力し、ソフトウェアモデルを構築する。ソフトウェアモデル構築部12は、構築したソフトウェアモデルをソフトウェアモデルDB22に記憶させる。図11に、ソフトウェアモデルの一例を示す。ソフトウェアモデル構築部12は、図7に示すコードエンティティのリスト、図8に示すデータエンティティのリスト、図9に示す「関係」のリストを参照して、図11に示すソフトウェアモデルを構築する。ソフトウェアモデルは有向グラフで表現される。グラフの頂点はコードエンティティまたはデータエンティティであり、グラフの有向辺は関係である。ソフトウェアモデル構築部12は、入力されたリストからこのソフトウェアモデルを構築し、ソフトウェアモデルDB22に記憶させる。
Next, the software
The software
次に、波及行列計算部13について詳細に説明する。図12に、波及行列計算部13の構成を示す。波及行列計算部13は、影響波及モデル構築部131と波及行列構築部132とを備えている。
影響波及モデル構築部131は、ソフトウェアモデル構築部12から、ソフトウェアモデルを入力し、後述する手続きに従って影響波及モデルを構築する。
波及行列構築部132は、構築された影響波及モデルを影響波及モデル構築部131から受け取る。また、波及行列構築部132は、外部からAPIリストと、サンプルソフトウェアで発生した障害のリスト(障害履歴)とを入力する。波及行列構築部132は、入力したこれらの情報から、後述する手続きに従って波及行列を構築して出力する。
Next, the propagation
The influence spread
The propagation
影響波及モデル構築部131が影響波及モデルを構築する処理について説明する。
図13に、影響波及モデルの一例を示す。この影響波及モデルは、図11のソフトウェアモデルをもとに構築されたものである。影響波及モデルはソフトウェアモデルと同様にグラフ構造を取る。頂点はソフトウェアモデルのエンティティと同じものであり、ソフトウェアモデルに含まれるエンティティ全体か、又はその一部が影響波及モデルに含まれる。有向辺はソフトウェアモデルの「関係」とは異なり、影響波及関係と呼ばれ、図14に示す構造を持つ。影響波及関係において、始点エンティティは「関係」の始点エンティティと同じものである。同様に終点エンティティは「関係」の終点エンティティと同じものである。減衰係数は、始点エンティティから終点エンティティへの影響波及において、影響波及がどれだけ衰えるかを示す乗数である。図13には、減衰係数を有向辺に付して示している。ソフトウェアモデルに含まれる「関係」全体か、又はその一部に対応する(=始点エンティティと終点エンティティを同じくする)影響波及関係が影響波及モデルに含まれる。ただし、場合によっては、影響波及関係では始点と終点が反転したものに置き換わったり、始点と終点が反転したものが追加される場合がある。
The process in which the influence spread
FIG. 13 shows an example of the influence propagation model. This influence propagation model is constructed based on the software model of FIG. The influence propagation model takes a graph structure like the software model. The vertex is the same as the entity of the software model, and the entire entity included in the software model or a part thereof is included in the influence propagation model. Unlike the “relationship” of the software model, the directed side is called an influence spillover relationship and has a structure shown in FIG. In the influence propagation relationship, the start entity is the same as the start entity of the “relation”. Similarly, the end entity is the same as the “relation” end entity. The attenuation coefficient is a multiplier that indicates how much the influence spread attenuates in the influence spread from the start point entity to the end point entity. In FIG. 13, the attenuation coefficient is shown with the directed side. An influence propagation model corresponding to the whole or part of the “relationship” included in the software model (= same start entity and end entity) is included in the influence propagation model. However, in some cases, the influence spread relationship may be replaced with one in which the start point and the end point are inverted, or one in which the start point and the end point are inverted may be added.
ソフトウェアモデルのある「関係」について、予め変換ルールを用意する。
例えば、図11から図13への変換の場合には、以下のルール1、2、3が用意されており、影響波及モデル構築部131は、図11のすべての「関係」についてルール1、2、3を適用して、図13の影響波及モデルを構築する。なお、影響波及モデルではコードエンティティとデータエンティティを区別しないため、図13に示す例でもこれら二種を区別していない。
Conversion rules are prepared in advance for “relationships” with software models.
For example, in the case of conversion from FIG. 11 to FIG. 13, the following
(ルール1)
ルール1は、始点エンティティ名で指定されるエンティティのエンティティタイプが「関数」で、かつ、終点エンティティ名で指定されるエンティティのエンティティタイプが「関数」で、かつ、関係タイプが「呼び出し」の場合に適用される。この場合、始点エンティティ名に終点エンティティ名を持ち、終点エンティティ名に始点エンティティ名を持ち(つまり、向きが反転する)、減衰係数に0.5を持つ影響波及関係を生成する。
(ルール2)
ルール2は、始点エンティティ名で指定されるエンティティのエンティティタイプが「関数」で、かつ、終点エンティティ名で指定されるエンティティのエンティティタイプが「変数」で、かつ、関係タイプが「リード」の場合に適用される。この場合、始点エンティティ名に終点エンティティ名を持ち、終点エンティティ名に始点エンティティ名を持ち(つまり、向きが反転する)、減衰係数に0.1を持つ影響波及関係を生成する。
(ルール3)
ルール3は、始点エンティティ名で指定されるエンティティのエンティティタイプが「関数」で、かつ、終点エンティティ名で指定されるエンティティのエンティティタイプが「変数」で、かつ、関係タイプが「ライト」である場合に適用される。この場合、始点エンティティ名に始点エンティティ名を持ち、終点エンティティ名に終点エンティティ名を持ち(つまり、向きはそのまま)、減衰係数に0.5を持つ影響波及関係を生成する。
このようなルールに従って、影響波及モデル構築部131では影響波及モデルを構築する。
(Rule 1)
(Rule 2)
(Rule 3)
In accordance with such rules, the influence propagation
次に、波及行列構築部132が波及行列を構築する処理について説明する。
APIリストDB16から入力したAPIリストは、APIであるコードエンティティのエンティティ名のリストである。図15にAPIリストの例を示す。ソフトウェアの障害履歴は、過去に障害が発生した箇所を示すエンティティ名のリストである。図16にソフトウェアの障害履歴の例を示す。
図17に、図13に示す影響波及モデル、図15に示すAPIリスト、図16に示すソフトウェアの障害履歴に対応して構築された波及行列の例を示す。波及行列の行は各APIを意味し、列は各エンティティを意味する。行の並び順、および列の並び順は任意であり、順序が変わっても構わない。
Next, processing in which the propagation
The API list input from the
FIG. 17 shows an example of a propagation matrix constructed corresponding to the influence propagation model shown in FIG. 13, the API list shown in FIG. 15, and the software fault history shown in FIG. The row of the propagation matrix means each API, and the column means each entity. The order of rows and the order of columns are arbitrary, and the order may be changed.
波及行列構築部132は、以下の手順で波及行列を構築する。
(1)各APIについて、APIを起点として以下の(2)、(3)、(4)の手順を繰り返す。
(2)各エンティティについて、エンティティを目標として(3)、(4)の手順を繰り返す
(3)起点となったAPIエンティティから、影響波及モデル上でグラフ探索を行い、起点から目標のエンティティへの最短経路を求める。経路の距離を計算する際の有向辺ごとの距離は、さまざまに定めることができる。この例では「減衰係数の逆数の対数」を選ぶが、単純に定数1としてもよい。
(4)求められた最短経路に沿って、各有向辺の減衰係数をすべて掛け合わせたものを、波及行列の起点APIの行と目標エンティティの列の交差する項の値とする。起点APIから目標エンティティまでの経路が無い場合、該当する項の値は0とする。起点APIと目標エンティティが同じ場合、該当する項の値は1とする。
The propagation
(1) For each API, the following steps (2), (3), and (4) are repeated starting from the API.
(2) For each entity, repeat the steps (3) and (4) with the entity as the target. (3) Perform a graph search on the influence propagation model from the API entity that is the starting point, and change from the starting point to the target entity. Find the shortest path. The distance for each directed edge when calculating the distance of the route can be variously determined. In this example, “logarithm of the reciprocal of the attenuation coefficient” is selected, but a constant 1 may be simply used.
(4) A value obtained by multiplying all the directed side attenuation coefficients along the determined shortest path is a value of a term that intersects the row of the starting API of the propagation matrix and the column of the target entity. When there is no route from the origin API to the target entity, the value of the corresponding term is set to 0. When the starting API and the target entity are the same, the value of the corresponding term is 1.
例えば、図17におけるAPI1の行とDの列の項の値は0.025であるが、これは、図13においてAPI1からDまでの最短経路がAPI1→C→Q→Dであるから、各有向辺の減衰係数を乗じて0.5×0.5×0.1=0.025 と求められる。この項の値のことを波及係数と呼ぶ。例えば、行がAPI1、列がDの場合はAPI1からDへの波及係数と呼ぶ。このようにして、波及行列構築部132では波及行列を構築する。
For example, the value of the API1 row and D column term in FIG. 17 is 0.025. This is because the shortest path from API1 to D is API1 → C → Q → D in FIG. Multiply by the attenuation coefficient of the directed side to obtain 0.5 × 0.5 × 0.1 = 0.025. The value of this term is called the ripple coefficient. For example, when the row is API1 and the column is D, it is called a ripple coefficient from API1 to D. In this way, the propagation
なお、上記の波及行列計算部13の説明では、影響波及モデル構築部131と波及行列構築部132との二つのフェーズに分けて波及行列を計算する例を示したが、先に述べた変換ルールが複雑なものになると、APIごとに影響波及モデルが別のものになる場合がある。そのような場合は、各APIごとに影響波及モデルを構築して波及行列の行の各値を計算する必要があるため、影響波及モデル構築部131と波及行列構築部132とに分けずに一つのフェーズで構築するとよい。
In the description of the propagation
次に、API危険度計算部14について詳細に説明する。図18に、API危険度計算部14の構成を示す。API危険度計算部14は、波及行列とソフトウェアの障害履歴を入力し、API危険度を計算する。API危険度計算部14は、計算したAPI危険度をAPI危険度DB18に記憶させる。
Next, the API risk
API危険度とは、APIを使用したときの障害の起こり易さの度合いである。先に求めた波及行列は、各APIから各エンティティへ直接または間接的に影響が波及していくことによる影響波及の程度の大きさを示している。あるAPIを使用したときの障害の起こり易さが高ければ、このAPIから受ける影響波及の程度が大きいエンティティでは障害が発生する可能性が高くなる。しかし、APIを使用したときの障害の起こり易さを直接知ることはできないため、得られている情報から推定を行うほか無い。 The API risk level is a degree of ease of failure when using the API. The propagation matrix obtained previously indicates the magnitude of the influence spread caused by direct or indirect influence from each API to each entity. If the probability of occurrence of a failure when using a certain API is high, there is a high possibility that a failure will occur in an entity having a large influence spread from this API. However, since it is not possible to directly know the probability of failure when using the API, there is no other way than to estimate from the obtained information.
推定の方法としては、ここでは最尤推定法を用いる。最尤推定法とは、「観測された事象は、発生確率が最も高い事象にちがいない」ということを根拠にする推定法である。この発生確率は尤度と呼ばれる。尤度は推定対象となる変数(この場合はAPIを使用したときの障害の起こり易さ)をパラメータとして持つため尤度関数とも呼ばれる。尤度関数を最大化するパラメータを求めれば、そのパラメータが「最も尤もらしい」推定値となる。最尤推定法については、例えば、東京大学教養学部統計学教室編「自然科学の統計学」などに詳細が記載されている。 Here, the maximum likelihood estimation method is used as the estimation method. The maximum likelihood estimation method is an estimation method based on the fact that “the observed event must be the event having the highest occurrence probability”. This probability of occurrence is called likelihood. Likelihood is also called a likelihood function because it has as a parameter a variable to be estimated (in this case, the likelihood of failure when an API is used). If a parameter that maximizes the likelihood function is found, that parameter becomes the “most likely” estimate. Details of the maximum likelihood estimation method are described in, for example, “Natural Science Statistics” edited by the Department of Statistics, Faculty of Liberal Arts, the University of Tokyo.
最尤推定法を用いた推定の具体的な手順について説明する。
まず、記号を以下の通り定義する。
APIリストの中のAPIの数をNとする。APIリスト中のi番目のAPIをAPIiとする。当然、1≦i≦Nである。APIiは波及行列の第i行に対応する。
また、ソフトウェアのエンティティの数をMとする。j番目のエンティティをXjとする。当然、1≦j≦Mである。Xjは波及行列の第j列に対応する。
また、APIiからXjへの波及係数をEijとする。Eijは波及行列の各項に対応する。
また、エンティティXjで障害が発生したかどうかをFjで表す。Fj=1なら障害が発生し、Fj=0なら障害が発生していなかったことを意味する。この情報はソフトウェアの障害履歴から定まる。
また、AiをAPIiを使用したときの障害の起こり易さの度合いとする。Aiは1未満0以上の範囲である。θをAiの集合、すなわち{A1,A2,・・・AN}とする。このθを推定することが目的である。
ここで、APIiを使用したことによってXjで障害が発生する確率はEij・Aiで表せると仮定をおく。エンティティXjで障害が発生しない確率をQ(Xj)と書くと、Q(Xj)は、以下に示す式(1)となる。
A specific procedure for estimation using the maximum likelihood estimation method will be described.
First, the symbols are defined as follows.
Let N be the number of APIs in the API list. The i-th API in the API list is APIi. Naturally, 1 ≦ i ≦ N. APIi corresponds to the i-th row of the propagation matrix.
Also, let M be the number of software entities. Let the jth entity be Xj. Naturally, 1 ≦ j ≦ M. Xj corresponds to the j-th column of the propagation matrix.
Further, the propagation coefficient from APIi to Xj is assumed to be Eij. Eij corresponds to each term of the propagation matrix.
Further, Fj represents whether or not a failure has occurred in the entity Xj. If Fj = 1, a failure has occurred. If Fj = 0, this means that no failure has occurred. This information is determined from the software failure history.
Also, let Ai be the degree of ease of failure when APIi is used. Ai is in the range of less than 1 and 0 or more. Let θ be a set of Ai, ie {A1, A2,... AN}. The purpose is to estimate this θ.
Here, it is assumed that the probability that a failure occurs in Xj due to the use of APIi can be expressed as Eij · Ai. When the probability that a failure does not occur in the entity Xj is written as Q (Xj), Q (Xj) becomes the following expression (1).
また、エンティティXjで障害が発生する確率をP(Xj)と書くと、P(Xj)は、以下に示す式(2)となる。 Further, if the probability that a failure occurs in the entity Xj is written as P (Xj), P (Xj) is expressed by the following equation (2).
また、入力したサンプルソフトウェアで障害(障害履歴)が発生する確率(尤度)を関数L(θ)とすると、尤度関数L(θ)は次の式(3)で表せる。 If the probability (likelihood) that a failure (failure history) occurs in the input sample software is a function L (θ), the likelihood function L (θ) can be expressed by the following equation (3).
この式(3)を最大にするθを求めるには、適切な数値解法、例えばNelder-Mead法などを用いればよい。Nelder-Mead法については、J.A.Nelder and R.Mead "A simplex method for function minimization"Computer Journal, vol.7, pp.308-313 (1965)を参照のこと。 In order to obtain θ that maximizes the expression (3), an appropriate numerical solution method such as the Nelder-Mead method may be used. For the Nelder-Mead method, see J.A.Nelder and R.Mead "A simplex method for function minimization" Computer Journal, vol.7, pp.308-313 (1965).
図17の波及行列、図16のソフトウェアの障害履歴の例から、実際に尤度関数を求める例を示す。API1の障害の起こり易さの度合いをA1、API2の障害の起こり易さの度合いをA2としてθ={A1,A2}とすると、尤度関数L(θ)は、以下に示す式(4)の通りになる。 An example in which a likelihood function is actually obtained from the example of the propagation matrix in FIG. 17 and the fault history of the software in FIG. The likelihood function L (θ) is expressed by the following equation (4), where θ1 is A1 and the degree of failure of API2 is A2, and the degree of failure of API2 is A2 and θ = {A1, A2}. It becomes as follows.
このL(θ)を最大化するθをNelder-Mead法を用いて数値的に解くと、A1=0.669、A2=0.118が得られる。
API危険度計算部14は、この得られたθ={A1,A2,・・・、AN}をAPIの危険度として出力する。図19には、前述の例に従ったAPIの危険度の出力の実例を示す。なお、API危険度の値は相対値として意味があるが、絶対値としての意味は定義されない。すなわち、A1とA2を比べてA1の方が大きい場合はA1の方が危険であるが、A1の値が0.3だからといって、障害発生率やその期待値が常に0.3というわけではない。
When θ that maximizes L (θ) is numerically solved using the Nelder-Mead method, A1 = 0.669 and A2 = 0.118 are obtained.
The API risk
図20に示すフローチャートを参照しながら制御部2の処理手順を説明する。
まず、制御部2は、API危険度を算出するためのサンプルソフトウェアのソースコードを入力し、静的解析によりソースコードの構文的な意味を解析する(ステップS1)。次に、制御部2は、解析結果に基づいて、コードエンティティ、データエンティティに該当するものを抽出し、さらに、予め定義された関係を満たす構文構造を抽出する(ステップS2)。制御部2は、抽出したデータエンティティをデータエンティティリストDB19に、コードエンティティをコードエンティティリストDB20、関係を満たす構文構造を関係リストDB21に記憶させる。
The processing procedure of the
First, the
次に、制御部2は、コードエンティティ、データエンティティ、関係のリストを入力して、ソフトウェアモデルを構築する(ステップ3)。制御部2が構築したソフトウェアモデルの一例を図11に示す。制御部2は、構築したソフトウェアモデルをソフトウェアモデルDB22に記憶させる。さらに、制御部2は、ソフトウェアモデルをソフトウェアモデルDB22から入力して、影響波及モデルを構築する(ステップS4)。制御部2が構築した影響波及モデルの一例を図13に示す。制御部2は、構築した影響波及モデルを影響波及モデルDB23に記憶させる。
Next, the
次に、制御部2は、APIリストと、サンプルソフトウェアで発生した障害のリスト(障害履歴)とを入力して、波及行列を構築する(ステップS5)。構築した波及行列の一例を、図17に示す。制御部2は、構築した波及行列を波及行列DB24に記憶させる。
次に、制御部2は、、波及行列とソフトウェアの障害履歴を入力し、API危険度を計算する(ステップS6)。制御部2は、計算したAPI危険度をAPI危険度DB18に記憶させる。
Next, the
Next, the
このように本実施例は、データの依存関係や、ソースコードの制御依存関係に基づくグラフ構造(ソフトウェアモデル)を構築して、APIの使用によって、ソフトウェアにおいて過去に発生した障害の発生箇所が受ける影響の度合いを求めている。そして、この影響の度合いに基づいてAPIの使用が障害発生の遠因となった確率を推定している。従って、初期段階で取り除けるような表層的な問題点ではなく、ソフトウェアの構造的な障害の発生箇所を予測することが可能となる。 As described above, in this embodiment, a graph structure (software model) based on data dependency and source code control dependency is constructed, and the occurrence of a fault that has occurred in the past is received by using the API. The degree of influence is being sought. Based on the degree of this influence, the probability that the use of the API has become a cause of the failure occurrence is estimated. Therefore, it is possible to predict the occurrence of a structural failure of the software, not the surface problem that can be removed in the initial stage.
上述した実施例1では、最尤推定法を用いて、影響波及モデルからAPIの危険度を求めた。本実施例では、別の方法を用いてAPIの危険度を求める方法を示す。なお、実施例1と多くの処理が同一であるので、その同一の箇所の説明は省略する。 In the first embodiment described above, the API risk level is obtained from the influence spread model using the maximum likelihood estimation method. In the present embodiment, a method of obtaining the API risk using another method will be described. In addition, since many processes are the same as Example 1, description of the same location is abbreviate | omitted.
本実施例は上述した実施例1とAPI危険度計算部14における処理が異なる。このため、API危険度計算部14の処理について詳細に説明する。本実施例では、API危険度計算部14は、障害の起こり易さの度合いAiを次式(5)に従って求める。
The present embodiment is different from the above-described first embodiment in the processing in the API risk
上述した実施例1では、Eijは、APIiからエンティティXjへの波及係数であるが、これをエンティティXjからAPIiへの影響波及の度合いの代用として用いる。すなわち、本実施例では、APIの使用によって障害発生箇所が受ける影響度合いを、障害発生箇所がAPIに及ぼす影響度合いとして使用し、ソフトウェアで過去に発生したすべての障害の発生箇所の影響度合いを加算してソフトウェアが使用するAPIの危険度を算出している。 In the first embodiment described above, Eij is a ripple coefficient from APIi to entity Xj, but this is used as a substitute for the degree of influence ripple from entity Xj to APIi. In other words, in this embodiment, the degree of influence that the fault occurrence location is affected by the use of the API is used as the degree of influence of the fault occurrence location on the API, and the degree of influence of all fault occurrence locations that have occurred in the past is added. Thus, the risk level of the API used by the software is calculated.
図17に示す波及行列と、図16に示すソフトウェア障害履歴の例から、{A1,A2}を計算すると、A1=0.775、A2=0.500となる。API危険度計算部14は、このようにして得られた{A1,A2,・・・,AN}をAPIの危険度として出力する。APIの危険度の出力形式は、図19に示す実施例1と同一である。
When {A1, A2} is calculated from the propagation matrix shown in FIG. 17 and the example of the software failure history shown in FIG. 16, A1 = 0.775 and A2 = 0.500. The API risk
なお、API危険度の値は相対値として意味があるが、絶対値としての意味は定義されない。すなわち、A1とA2を比べてA1の方が大きい場合はA1の方が危険であるが、A1の値が0.3だからといって、障害発生率やその期待値が常に0.3というわけではない。本実施理においては、上述した実施例1と同様の効果を得ることができると共に、API危険度の算出が容易になるという効果を有している。 The API risk value is meaningful as a relative value, but the meaning as an absolute value is not defined. That is, when A1 is larger than A1 when A1 is larger, A1 is more dangerous, but just because A1 is 0.3, the failure rate and its expected value are not always 0.3. In this embodiment, it is possible to obtain the same effects as those of the first embodiment described above, and it is possible to easily calculate the API risk level.
上述した実施例1、実施例2では、APIの危険度を求めて出力する方式について述べた。本実施例では、出力したAPIの危険度を実際のソフトウェア開発プロジェクトに適用する方法について述べる。
本実施例の運用形態は、図21に示すように準備段階と運用段階の二つに分かれる。準備段階では、サンプルソフトウェアとその障害履歴を入力として、各APIの危険度を求め、データベースに蓄えておく。実施例1、実施例2でその具体的な内容について説明した。
運用段階では、準備段階で参照したサンプルソフトウェアとは異なる、別のソフトウェアを開発する開発プロジェクトが対象となる。ソフトウェア開発プロジェクトの中では、ソフトウェア全体はいくらかの部分に分けられ、作業もそれに応じて細かい作業に分割される。分割された作業をここではタスクと呼ぶ。タスクに必要な作業量はそれぞれのタスクで変化し、当初の見積もった作業量と一致することは少ない。タスクの難易度が高ければ想定以上の工数を必要とし、タスクの潜在リスクが高ければ、トラブルによる工程遅延が発生する。そこで、最終的にタスクに必要な作業量を正しく見積もる技術、またはできるだけ高い精度で見積もる技術が必要となる。本実施例はAPI危険度を用いて作業工数を見積もる。
In the first embodiment and the second embodiment described above, the method of obtaining and outputting the API risk level has been described. In this embodiment, a method for applying the output API risk level to an actual software development project will be described.
The operation mode of the present embodiment is divided into a preparation stage and an operation stage as shown in FIG. In the preparation stage, the sample software and its failure history are input, and the risk level of each API is obtained and stored in the database. The specific contents have been described in the first and second embodiments.
In the operation stage, development projects that develop different software different from the sample software referenced in the preparation stage are targeted. In a software development project, the entire software is divided into several parts, and the work is divided into fine work accordingly. Here, the divided work is called a task. The amount of work required for a task varies with each task and rarely matches the amount of work originally estimated. If the task difficulty level is high, more man-hours than expected are required, and if the potential risk of the task is high, a process delay due to a trouble occurs. Therefore, it is necessary to have a technique for accurately estimating the amount of work required for the task or a technique for estimating with the highest possible accuracy. In the present embodiment, the work man-hour is estimated using the API risk.
本実施例の構成を図22に示す。本実施例は、図22に示すようにリスクポイント算出部25と、見積もり補正部26とをさらに備えている。リスクポイント算出部25は、API危険度DB18からAPIの危険度を取得して、ソフトウェア全体又はタスクにおけるリスクポイントを算出する。見積もり補正部26は、リスクポイント算出部25によって算出されたリスクポイントに基づいて作業工数の見積もりを補正する。
The configuration of this example is shown in FIG. This embodiment further includes a risk
あるタスクTiにおいて、使用するAPIが決まる段階に設計が進んだ時にリスクポイント算出部25は、API危険度によりリスクポイントを算出する。使用されるAPIの集合を{API1,API2,・・・,APIM}とする。API危険度DB18を参照すれば、各APIのAPI危険度が判る。APIjのAPI危険度をAjとする。リスクポイントRiは、以下に示す式(6)で求められる。
In a certain task Ti, the risk
式(6)中の関数fと関数gは開発プロセスに応じて設定される。特別な意図の無い標準的な場合には以下に示す式(7)(つまり恒等変換)とする。他の有力な代替候補は以下に示す式(8)である。 Function f and function g in equation (6) are set according to the development process. In a standard case without special intention, the following equation (7) (that is, identity transformation) is used. Another promising alternative candidate is Equation (8) shown below.
見積もり補正部26は、得られたリスクポイントを元に、当初の見積もりを補正する。これにより工数見積もりやリスク判定の精度の向上が実現される。図23には、リスクポイントから工数見積もりの補正値を得る表の一例を示す。この表はプロジェクトに事前に与えられ、例えば、記憶装置6に記憶しておくとよい。
The
ソフトウェアにはウェブアプリケーションや機器制御用組み込みアプリケーションなどのように、さまざまなタイプがあり、ソフトウェアの性質もタイプによって変化しうる。そこで、開発するソフトウェアのタイプごとに、「APIの危険度」のデータベースを事前に別々に用意しておけば、プロジェクトの開始時に開発対象となるソフトウェアのタイプに応じて最適なデータベースを選択することができ、より精度の向上が見込める。開発するソフトウェアのタイプとして、例えば、ウェブアプリケーションや機器制御用の組み込みアプリケーションなどが挙げられる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
There are various types of software, such as a web application and a built-in application for device control, and the nature of the software can vary depending on the type. Therefore, if a database of “API risk” is prepared separately for each type of software to be developed, the optimal database can be selected according to the type of software to be developed at the start of the project. It is possible to improve accuracy. Examples of the type of software to be developed include a web application and an embedded application for device control.
The above processing functions can be realized by a computer. In that case, a program describing the processing contents of the functions that the processing apparatus should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium.
When distributing the program, for example, portable recording media such as a DVD (Digital Versatile Disc) and a CD-ROM (Compact Disc Read Only Memory) on which the program is recorded are sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.
上述した実施例は、本発明の好適な実施例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。 The embodiment described above is a preferred embodiment of the present invention. However, the present invention is not limited to this, and various modifications can be made without departing from the scope of the present invention.
1 危険度判定装置
2 制御部
11 ソースコード
12 ソフトウェアモデル構築部
13 波及行列計算部
14 API危険度計算部
15 ソースコードDB
16 APIリストDB
17 サンプルソフトウェアの障害履歴DB
18 API危険度DB
19 データエンティティリストDB
20 コードエンティティリストDB
21 関係リストDB
22 ソフトウェアモデルDB
23 影響波及モデルDB
24 波及行列DB
111 構文解析部
112 モデル要素抽出部
131 影響波及モデル構築部
132 波及行列構築部
DESCRIPTION OF
16 API list DB
17 Sample software failure history DB
18 API risk DB
19 Data entity list DB
20 Code entity list DB
21 Relation list DB
22 Software Model DB
23 Influence propagation model DB
24 Ripple matrix DB
111
Claims (7)
ソフトウェアを解析して、前記ソフトウェア内のプログラムの実行と該プログラムが扱うデータによる影響が前記ソフトウェア内の他のプログラムや他のデータに波及していくモデルを、プログラムとデータの依存関係に基づいて求めるモデル構築手段と、
前記モデルを利用して、前記ソフトウェアが使用するAPIの使用によって、前記ソフトウェアにおいて過去に発生した障害の発生箇所が受ける影響の度合いを求める影響度合い算出手段と、
前記影響の度合いを使用して、前記APIの使用が障害発生の遠因となった確率を推定し、前記APIの使用による危険度として求める推定手段と
して機能させる危険度判定プログラム。 Computer
Analyzing the software, a model in which the execution of the program in the software and the influence of the data handled by the program spread to other programs and other data in the software is based on the dependency relationship between the program and the data. The model building means we want,
Using the model, an influence degree calculating means for obtaining a degree of influence of an occurrence location of a fault that has occurred in the software in the past by using an API used by the software;
A risk determination program that uses the degree of influence to estimate the probability that the use of the API has become a cause of failure, and functions as an estimation means that obtains the risk by using the API.
前記算出手段で算出された危険度に応じて前記ソフトウェア又は該ソフトウェアの一部分の開発工数を補正する補正手段とを有する、請求項1から4のいずれか一項記載の危険度判定プログラム。 The risk level of the API used in the software or a part of the software is calculated by using each means, and the risk level included in the software or a part of the software is calculated based on the calculated risk level of each API. Calculating means for
The risk determination program according to any one of claims 1 to 4, further comprising correction means for correcting a development man-hour of the software or a part of the software according to the risk calculated by the calculation means.
前記モデルを利用して、前記ソフトウェアが使用するAPIの使用によって、前記ソフトウェアにおいて過去に発生した障害の発生箇所が受ける影響の度合いを求める影響度合い算出手段と、
前記影響の度合いを使用して、前記APIの使用が障害発生の遠因となった確率を推定し、前記APIの使用による危険度として求める推定手段と、
を有する危険度判定装置。 Analyzing the software, a model in which the execution of the program in the software and the influence of the data handled by the program spread to other programs and other data in the software is based on the dependency relationship between the program and the data. The model building means we want,
Using the model, an influence degree calculating means for obtaining a degree of influence of an occurrence location of a fault that has occurred in the software in the past by using an API used by the software;
Estimating means that estimates the probability that the use of the API has caused a distant cause of the occurrence of failure using the degree of influence, and obtains the degree of risk due to the use of the API;
A risk determination device having
ソフトウェアを解析して、前記ソフトウェア内のプログラムの実行と該プログラムが扱うデータによる影響が前記ソフトウェア内の他のプログラムや他のデータに波及していくモデルを、プログラムとデータの依存関係に基づいて求めるステップと、
前記モデルを利用して、前記ソフトウェアが使用するAPIの使用によって、前記ソフトウェアにおいて過去に発生した障害の発生箇所が受ける影響の度合いを求めるステップと、
前記影響の度合いを使用して、前記APIの使用が障害発生の遠因となった確率を推定し、前記APIの使用による危険度として求めるステップと、
を有する危険度判定方法。 A risk determination method executed by a risk determination device,
Analyzing the software, a model in which the execution of the program in the software and the influence of the data handled by the program spread to other programs and other data in the software is based on the dependency relationship between the program and the data. Seeking steps,
Using the model to determine the degree of influence of the location of the fault that has occurred in the software in the past by using the API used by the software;
Using the degree of influence to estimate the probability that the use of the API has become a distant cause of the occurrence of a failure, and determining as a risk due to the use of the API;
A risk determination method having
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009104626A JP5201068B2 (en) | 2009-04-23 | 2009-04-23 | Risk determination program, risk determination device and method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009104626A JP5201068B2 (en) | 2009-04-23 | 2009-04-23 | Risk determination program, risk determination device and method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010257091A JP2010257091A (en) | 2010-11-11 |
| JP5201068B2 true JP5201068B2 (en) | 2013-06-05 |
Family
ID=43317951
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009104626A Active JP5201068B2 (en) | 2009-04-23 | 2009-04-23 | Risk determination program, risk determination device and method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5201068B2 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2013114911A1 (en) * | 2012-02-01 | 2015-05-11 | 日本電気株式会社 | Risk assessment system, risk assessment method, and program |
| US10496704B2 (en) * | 2017-03-16 | 2019-12-03 | Raytheon Company | Quantifying consistency of a system architecture by comparing analyses of property graph data models representing different versions of the system architecture |
| CN107977505A (en) * | 2017-11-28 | 2018-05-01 | 兰州大学 | The new method that a kind of antecedent precipitation decline coefficient k determines |
| WO2021079496A1 (en) | 2019-10-25 | 2021-04-29 | 日本電気株式会社 | Evaluation device, evaluation method, and program |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001325100A (en) * | 2000-05-15 | 2001-11-22 | Mitsubishi Electric Corp | Program analyzer |
| JP3842592B2 (en) * | 2001-07-26 | 2006-11-08 | 株式会社東芝 | Change risk measurement system, change risk measurement method, and change risk measurement program |
| JP2006178511A (en) * | 2004-12-20 | 2006-07-06 | Fujitsu Ltd | Software change traceability management device |
-
2009
- 2009-04-23 JP JP2009104626A patent/JP5201068B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2010257091A (en) | 2010-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8966486B2 (en) | Distributed multi-phase batch job processing | |
| US8352237B2 (en) | System and method for system integration test (SIT) planning | |
| Aranha et al. | An estimation model for test execution effort | |
| CN111104335B (en) | A C language defect detection method and device based on multi-level analysis | |
| CN111966718B (en) | System and method for data dissemination tracking of application systems | |
| JP5201068B2 (en) | Risk determination program, risk determination device and method | |
| Dang et al. | Configuring irace using surrogate configuration benchmarks | |
| Budde et al. | The dynamic fault tree rare event simulator | |
| JP5803469B2 (en) | Prediction method and prediction program | |
| KR20190020363A (en) | Method and apparatus for analyzing program by associating dynamic analysis with static analysis | |
| US20100030732A1 (en) | System and method to create process reference maps from links described in a business process model | |
| WO2019163915A1 (en) | Project analysis device and program | |
| CN113238967A (en) | Test case generation method and device | |
| Nijhawan et al. | An SRGM for multi-release open source software system | |
| JP7601986B1 (en) | Prompt input support system, prompt input support method, and prompt input support program | |
| JP5304972B1 (en) | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM | |
| JP5508933B2 (en) | Software specification proof support apparatus and proof support method | |
| JP6677068B2 (en) | Execution time estimation device, execution time estimation method, and program | |
| JP4983238B2 (en) | Simulated source program generation program and apparatus, and information processing method | |
| Robles Luna et al. | Improving the scalability of web applications with runtime transformations | |
| CN113590114A (en) | Assembly line arranging method and device and computer equipment | |
| JP6369102B2 (en) | Software test support system | |
| CN118626402B (en) | AI framework test method, apparatus, device and storage medium | |
| JP5906844B2 (en) | Computer parameter tuning program, method, and apparatus | |
| JP2006277083A (en) | Simulation device and method, and computer program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111205 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121228 |
|
| 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: 20130115 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130128 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5201068 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160222 Year of fee payment: 3 |