JP2012128727A - Reliability evaluation method and apparatus for software component - Google Patents

Reliability evaluation method and apparatus for software component Download PDF

Info

Publication number
JP2012128727A
JP2012128727A JP2010280602A JP2010280602A JP2012128727A JP 2012128727 A JP2012128727 A JP 2012128727A JP 2010280602 A JP2010280602 A JP 2010280602A JP 2010280602 A JP2010280602 A JP 2010280602A JP 2012128727 A JP2012128727 A JP 2012128727A
Authority
JP
Japan
Prior art keywords
software component
input
specification information
value
output
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.)
Withdrawn
Application number
JP2010280602A
Other languages
Japanese (ja)
Inventor
Shinichi Shiraishi
真一 白石
Junichi Mizutani
淳一 水谷
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.)
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
Original Assignee
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
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 Toyota Motor Corp, Toyota InfoTechnology Center Co Ltd filed Critical Toyota Motor Corp
Priority to JP2010280602A priority Critical patent/JP2012128727A/en
Publication of JP2012128727A publication Critical patent/JP2012128727A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a technology for evaluating how a failure in a software component is propagated, from a specification of the software component.SOLUTION: A computer including a model form verifying function executes a specification information acquisition step of acquiring specification information including an input interface specification, an output interface specification and an internal specification of a software component, a verification step of verifying the software component through the form verifying function in accordance with specification information after the input interface specification in the specification information is modified other than a normal value, and failure propagation path storage step of correspondingly storing, in the case where an example which becomes an output value not meeting the output interface specification is discovered in the verification step, input which is changed other than the normal value, and output which does not meet the output interface specification.

Description

本発明は、ソフトウェアコンポーネントの信頼性を評価するための技術に関する。   The present invention relates to a technique for evaluating the reliability of software components.

大規模なシステム開発では、一般的にソフトウェアを適当なサイズに分割してコンポーネント(ソフトウェアコンポーネント)を構成し、これらの組合せとしてソフトウェア全体を構成する方法が取られる。開発対象のシステムが非常停止装置などの安全に関するシステムである場合には、ソフトウェアにも高い信頼性が求められる。従来、このような安全システムにおけるソフトウェア開発では、開発プロセスの改善による品質向上によって、信頼性を高める手法が取られてきた。また、ソフトウェアアーキテクチャを対象とした信頼性評価が行われる場合でも、評価者が経験に基づいて評価を行うのが一般的であり、コンポーネントの内部構造を詳細に分析して評価を行うことは難しい。これらは手作業のために作業量が多く、また、技術者の経験に強く依存するという問題点もある。   In large-scale system development, generally, a method is used in which software is divided into appropriate sizes to configure components (software components), and the entire software is configured as a combination thereof. When the system to be developed is a safety-related system such as an emergency stop device, the software is also required to have high reliability. Conventionally, in software development in such a safety system, a technique for improving reliability by improving quality by improving a development process has been taken. In addition, even when reliability evaluation is performed for software architecture, it is common for evaluators to evaluate based on experience, and it is difficult to evaluate by analyzing the internal structure of components in detail. . These have a problem of a large amount of work due to manual work and a strong dependence on the experience of engineers.

これに対して、近年は数学をベースにした、形式的検証と呼ばれるシステム開発手法が取られるようになってきている。形式的検証では、仕様を数学的に記述し、コンピュータを用いて全ての状態を網羅して矛盾が無いか検査を行う。これらを自動化する技術としては、自動定理証明やモデル検査といった技術が研究されている。これらの技術では、自動で全ての条件や状態を調べるので、モデルの完全性が保障されるという利点がある。例えば、形式的検証ツールの一つであるAlloy Analyzerでは、集合論と述語論理を理論基盤に持ち、与えられた仕様に対して指定されたプロパティを満たす例を探したり(述語の検証)や指定されたプロパティを満たさない判例を探したり(表明の検証)することができる。   On the other hand, in recent years, a system development method called formal verification based on mathematics has been adopted. In formal verification, specifications are described mathematically and all states are inspected using computers to check for inconsistencies. As techniques for automating these, techniques such as automatic theorem proving and model checking have been studied. These techniques have the advantage that model integrity is guaranteed because all conditions and states are automatically examined. For example, Alloy Analyzer, one of the formal verification tools, has a set theory and predicate logic as its theoretical basis, and searches for examples that satisfy specified properties for a given specification (predicate verification) or specification You can look for cases that do not satisfy the specified properties (verification of assertions).

特開2010−237855号公報JP 2010-237855 A

上記のような形式的検証によるモデル検査は、設計されたモデルが仕様を満足するかどうかを検証することに力点が置かれている。すなわち、ソフトウェアコンポーネントに異常な入力が与えられた場合、すなわち故障(バグ)が与えられた場合にどのように振る舞うのかを明確にすることはできない。外来の故障に対してソフトウェアコンポーネントがどのように振る舞うかが分かれば、故障がどのように伝播するかが分かる。このような情報は、システム全体の評価に用いることができ、例えば、安全性を損なうイベントがどのソフトウェアコンポーネントの故障(バグ)によって引き起こされる可能性があるか等を分析できる。   Model checking by formal verification as described above is focused on verifying whether the designed model satisfies the specifications. That is, it is not clear how the software component behaves when an abnormal input is given, that is, when a fault (bug) is given. Knowing how software components behave in response to extraneous faults, you can see how faults propagate. Such information can be used to evaluate the entire system, for example, to analyze which software component failure (bug) may cause an event that compromises safety.

本発明は、ソフトウェアコンポーネントの仕様から、ソフトウェアコンポーネントにおいて故障がどのように伝播するかを評価することを目的とする。   An object of the present invention is to evaluate how a fault propagates in a software component from the specification of the software component.

本発明のソフトウェアコンポーネントの信頼性評価方法では、
モデルの形式検証機能を有するコンピュータが、
ソフトウェアコンポーネントの入力インタフェース仕様、出力インタフェース仕様、内部仕様を含む仕様情報を取得する仕様情報取得ステップと、
前記仕様情報中の入力インタフェース仕様を正常値以外に変更した仕様情報に従って、前記形式検証機能によって前記ソフトウェアコンポーネントを検証する検証ステップと、
前記検証ステップにおいて前記出力インタフェース仕様を満足しない出力値となる例が発見された場合には、前記正常値以外に変更した入力と、前記出力インタフェース仕様を満たさない出力とを、対応づけて記憶する故障伝播路記憶ステップと、
を実行する。
In the software component reliability evaluation method of the present invention,
A computer having a model formal verification function
A specification information acquisition step for acquiring specification information including input interface specifications, output interface specifications, and internal specifications of the software component;
A verification step of verifying the software component by the format verification function according to the specification information in which the input interface specification in the specification information is changed to a value other than a normal value;
When an example of an output value that does not satisfy the output interface specification is found in the verification step, the input changed to a value other than the normal value and the output that does not satisfy the output interface specification are stored in association with each other. A fault propagation path storing step;
Execute.

このように、入力インタフェース仕様を正常値以外に変更した仕様情報を用いて形式検証を行うことで、異常(故障)入力があった場合のソフトウェアコンポーネントの振る舞いを調べることができる。形式検証では、出力仕様を満たさない例(反例)を見つけることができる。ここで、どの出力から異常出力があるかを対応づけて記憶することで、異常値が入力された場合に、この異常がどの出力に伝播するかという情報を蓄積することができる。   As described above, by performing format verification using the specification information in which the input interface specification is changed to a value other than the normal value, it is possible to examine the behavior of the software component when there is an abnormal (failure) input. In formal verification, an example (counterexample) that does not satisfy the output specification can be found. Here, by associating and storing which output has an abnormal output, it is possible to accumulate information on which output the abnormality propagates to when an abnormal value is input.

本発明において、前記ソフトウェアコンポーネントは、複数の入力値をとるものであることが好ましく、
前記検証ステップでは、入力値のそれぞれについて、入力インタフェース仕様を正常値以外に変更した仕様情報に従って、ソフトウェアコンポーネントの検証を行うことが好ましい。
In the present invention, the software component preferably takes a plurality of input values,
In the verification step, it is preferable to verify the software component in accordance with the specification information in which the input interface specification is changed to a value other than the normal value for each input value.

複数ある入力を1つずつ正常値以外とすることで、個々の異常入力がどの出力に伝播するかを把握することができる。   By making a plurality of inputs one by one other than the normal value, it is possible to grasp to which output each abnormal input propagates.

また、本発明において、前記コンピュータが、前記仕様情報取得ステップで取得した仕様情報から、入力値ごとに入力インタフェース仕様を正常値以外にした異常仕様情報を作成するステップ、をさらに含むことも好ましい。   In the present invention, it is also preferable that the computer further includes a step of creating abnormal specification information in which the input interface specification is set to a value other than a normal value for each input value from the specification information acquired in the specification information acquisition step.

仕様情報は形式検証機能が読み取り可能な形式でコンピュータに提供される。ここで、入力値ごとに入力インタフェース仕様を正常値以外にした異常仕様情報をコンピュータが自動的に作成することで、ユーザの手間を省くことができる。   The specification information is provided to the computer in a format readable by the format verification function. Here, since the computer automatically creates abnormality specification information in which the input interface specification is set to a value other than the normal value for each input value, it is possible to save the user's trouble.

また、本発明において、前記コンピュータが、
複数のソフトウェアコンポーネントを含むシステムの各ソフトウェアコンポーネントに対して、前記仕様情報取得ステップ、検証ステップ、故障伝播路記憶ステップを実行し、
前記故障伝播路記憶ステップにおいて関連づけて記憶された入力と出力とに基づいて、前記システムの故障伝播路を表示する、ことが好ましい。
In the present invention, the computer includes:
For each software component of the system including a plurality of software components, execute the specification information acquisition step, the verification step, the failure propagation path storage step,
Preferably, the fault propagation path of the system is displayed based on the input and output stored in association with each other in the fault propagation path storing step.

個々のソフトウェアコンポーネントについて異常の伝播路を格納しているので、複数のソフトウェアコンポーネントから構成されるシステム全体に対して故障伝播路を表示することができる。これにより、あるソフトウェアコンポーネントで検出された異常の原因が、どのソフトウェアコンポーネントにあるのかをユーザが容易に理解できるようになる。   Since an abnormal propagation path is stored for each software component, a failure propagation path can be displayed for the entire system composed of a plurality of software components. As a result, the user can easily understand which software component has the cause of the abnormality detected in a certain software component.

なお、本発明は、上記処理の少なくとも一部を行う信頼性評価方法、またはこの方法を実現するためのプログラムとして捉えることもできる。また、本発明は、上記処理を実行するための各手段を有する信頼性評価装置として捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。   Note that the present invention can also be understood as a reliability evaluation method for performing at least a part of the above processing, or a program for realizing the method. Further, the present invention can also be understood as a reliability evaluation apparatus having each means for executing the above processing. Each of the above means and processes can be combined with each other as much as possible to constitute the present invention.

本発明によれば、ソフトウェアコンポーネントの仕様から、ソフトウェアコンポーネントにおいて故障がどのように伝播するかを評価することができる。   According to the present invention, it is possible to evaluate how a fault propagates in a software component from the specification of the software component.

本実施形態によるソフトウェアコンポーネントの信頼評価手法の概要。The outline | summary of the reliability evaluation method of the software component by this embodiment. 本実施形態にかかるソフトウェアコンポーネントの信頼性評価装置の機能構成。The function structure of the reliability evaluation apparatus of the software component concerning this embodiment. 形式記述言語Alloyで記述された仕様情報の例。The example of the specification information described by the formal description language Alloy. 形式記述言語Alloyで記述された異常仕様の例であり、図3の仕様情報から入力仕様の一部が正常値以外に変更されている。This is an example of an abnormal specification described in the formal description language Alloy, and a part of the input specification is changed to a value other than the normal value from the specification information of FIG. 本実施形態にかかるソフトウェアコンポーネントの信頼性評価処理のフローチャート。5 is a flowchart of software component reliability evaluation processing according to the present embodiment.

以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。   Exemplary embodiments of the present invention will be described in detail below with reference to the drawings.

図1は、本実施形態にかかる信頼性評価技術の概要を示す図である。ここでは、xとyの2つを入力とし、a,bの2つを出力とするソフトウェアコンポーネント100の信頼性を評価する場合を例として説明している。ソフトウェアコンポーネント100の、インタフェース仕様および内部仕様を形式記述言語で記述し、まず第1段階としてこの仕様を基に、形式検証機能を用いて網羅的な検証を行う。これにより、ソフトウェアコンポーネント100にインタフェース仕様および内部仕様に矛盾が無いことが検証される。このような検証方法が、一般的な形式検証機能の利用方法である。   FIG. 1 is a diagram showing an outline of the reliability evaluation technique according to the present embodiment. Here, the case where the reliability of the software component 100 having two inputs x and y as inputs and two outputs a and b as outputs is described as an example. The interface specification and internal specification of the software component 100 are described in a formal description language. First, as a first step, comprehensive verification is performed using a formal verification function based on this specification. Thereby, it is verified that the software component 100 has no contradiction between the interface specification and the internal specification. Such a verification method is a method of using a general format verification function.

本実施形態では、次に、入力仕様を正常値以外に変更する。なお、「正常値」というのは取得したインタフェース仕様で指定された値のことを言う。ここでは、ソフトウェアコンポーネント100はxとyの2つの入力を取るが、いずれか1つの入力を正常値以外に変更する。このように変更した仕様情報に基づいて、形式検証機能を用いて網羅的な検証を行う。ここで、出力インタフェース仕様を満たさないようなインスタンス(反例)が見つかった場合には、仕様を変更した入力に対して異常(故障)が入力された場合に、上記の出力に故障が伝播しうることが分かる。図1では、入力yを正常値以外にした場合に、出力aにおいて出力仕様を満たさない反例が存在することが分かる。従って、入力yに対する故障入力が出力aに伝播することが分かる。   In the present embodiment, next, the input specification is changed to a value other than the normal value. The “normal value” means a value specified in the acquired interface specification. Here, the software component 100 takes two inputs x and y, but changes one of the inputs to a value other than the normal value. Based on the specification information thus changed, comprehensive verification is performed using the format verification function. Here, when an instance (counterexample) that does not satisfy the output interface specification is found, if an abnormality (failure) is input to the input whose specification has been changed, the failure can propagate to the above output. I understand that. In FIG. 1, it can be seen that there is a counterexample that does not satisfy the output specification in the output a when the input y is set to a value other than the normal value. Therefore, it can be seen that the fault input for input y propagates to output a.

このようなソフトウェアコンポーネントに対する異常伝播解析を、システムを構成する複数ソフトウェアコンポーネントに対して実行して、故障伝播路を記憶部に記憶しておく。この解析結果から、ソフトウェアコンポーネント間での故障伝播路を計算可能である。すなわち、システム全体の信頼性も評価することが可能となる。   Such an abnormal propagation analysis for the software component is executed for a plurality of software components constituting the system, and the failure propagation path is stored in the storage unit. From this analysis result, a fault propagation path between software components can be calculated. That is, it is possible to evaluate the reliability of the entire system.

〈構成概要〉
図2は、本実施形態にかかる信頼性評価装置1の機能構成を示す図である。信頼性評価装置1は、ハードウェアとしては、CPU、RAMなどの主記憶装置、HDDやDVD−ROM等の補助記憶装置、キーボードやマウスなどの入力装置、ディスプレイなどの表示装置を含むコンピュータとして構成することができる。HDDなどに記憶されているオペレーティングシステム(OS)やアプリケーションプログラム(AP)がメモリ上に展開されてCPUが実行することで、図2に示す各機能部が実現される。ここでは、一台のコンピュータから信頼性評価装置1が構成される場合の例を説明したが、ネットワーク等を介して接続された複数のコンピュータが連動することで信頼性評価装置1が構成されても良い。また、各機能部の一部または全部を専用のハードウェアによって構成してもかまわない。
<Outline of configuration>
FIG. 2 is a diagram illustrating a functional configuration of the reliability evaluation apparatus 1 according to the present embodiment. The reliability evaluation apparatus 1 is configured as a computer including a main storage device such as a CPU and a RAM, an auxiliary storage device such as an HDD and a DVD-ROM, an input device such as a keyboard and a mouse, and a display device such as a display as hardware. can do. The operating units (OS) and application programs (AP) stored in the HDD or the like are expanded on the memory and executed by the CPU, thereby realizing each functional unit shown in FIG. Here, an example in which the reliability evaluation apparatus 1 is configured from one computer has been described. However, the reliability evaluation apparatus 1 is configured by a plurality of computers connected via a network or the like working together. Also good. Moreover, a part or all of each functional unit may be configured by dedicated hardware.

仕様情報取得部2は、形式記述言語で記述された仕様情報を信頼性評価装置1へ取り込
むための機能部である。図3に形式記述言語Alloyで記述された仕様情報の例を示している。仕様情報の取得方法は種々の態様が考えられる。例えば、HDDやDVD−ROMなどに格納されている仕様情報ファイルを読み込んで取得することが考えられるし、ネットワークを経由して仕様情報ファイルを取得することが考えられる。また、ユーザが入力装置から直接入力してもかまわない。また、アーキテクチャ記述言語(ADL)等で記述された設計情報を取得し、この設計情報から自動的に生成してもかまわない。ADLで記述された設計情報から形式記述言語で記述された仕様情報を作成することは、当業者であれば容易に理解できるであろう。
The specification information acquisition unit 2 is a functional unit for importing specification information described in a formal description language into the reliability evaluation apparatus 1. FIG. 3 shows an example of specification information described in the formal description language Alloy. There are various possible ways of acquiring the specification information. For example, it is conceivable to read and acquire a specification information file stored in an HDD or DVD-ROM, or to acquire a specification information file via a network. The user may input directly from the input device. Further, design information described in an architecture description language (ADL) or the like may be acquired and automatically generated from this design information. A person skilled in the art can easily understand that specification information described in a formal description language is created from design information described in ADL.

異常仕様作成部3は、仕様情報取得部2が取得した仕様情報のうち、いずれかの入力を正常値以外にした仕様情報(以下、異常仕様と呼ぶ)を作成する機能部である。図4に形式記述言語Alloyで記述された異常仕様の例を示している。異常仕様は、正常仕様における入力インタフェースの制約のうちの一つを反転する(論理否定演算)ことにより作成することができる。なお、入力が取り得る値の範囲が指定されていれば、正常な入力を反転することで一意の異常仕様が得られる。   The abnormal specification creation unit 3 is a functional unit that creates specification information (hereinafter, referred to as an abnormal specification) in which any input other than the normal value is included in the specification information acquired by the specification information acquisition unit 2. FIG. 4 shows an example of an abnormal specification described in the formal description language Alloy. The abnormal specification can be created by inverting one of the input interface restrictions in the normal specification (logical negation operation). If a range of values that can be input is specified, a unique abnormal specification can be obtained by inverting normal input.

モデル検査部4は、形式記述言語で記述された仕様(モデル)が満たされるかどうかを、数学的手法により網羅的に検証する機能部である。モデル検査部4としては、Alloy Analyzerなどの既知のモデル検査ツールを利用することができる。   The model checking unit 4 is a functional unit that comprehensively verifies whether a specification (model) described in a formal description language is satisfied by a mathematical method. As the model checking unit 4, a known model checking tool such as an Alloy Analyzer can be used.

故障伝播路記憶部5には、異常仕様に基づいてモデル検査を行った場合に出力インタフェース仕様を満たさない出力を、異常な入力と関連づけて記憶する記憶部である。例えば、入力yと出力aを関連づけて記憶することで、入力yに異常な入力があった場合に出力aに故障が伝播する可能性があることが分かる。この情報は、システムの信頼性評価に用いることができる。   The fault propagation path storage unit 5 is a storage unit that stores an output that does not satisfy the output interface specification in association with an abnormal input when model checking is performed based on the abnormal specification. For example, by storing the input y and the output a in association with each other, it can be understood that a failure may propagate to the output a when there is an abnormal input to the input y. This information can be used for system reliability evaluation.

故障伝播路表示部6は、故障伝播路記憶部5に記憶されている各ソフトウェアコンポーネントの故障伝播路と、システムを構成するソフトウェアコンポーネント間の接続関係とから、システム全体にわたる故障伝播路を表示部に表示させるための機能部である。   The failure propagation path display unit 6 displays a failure propagation path over the entire system from the failure propagation path of each software component stored in the failure propagation path storage unit 5 and the connection relationship between the software components constituting the system. It is a functional part for making it display on.

〈仕様記述〉
図3は、図1に示してある入出力インタフェースおよび内部仕様を形式記述言語Alloyで記述したものである。ここでは、非常に単純な場合を例に採用しているが、より複雑な仕様も記述できる。例えば、複数の出力が同時に取るべき値の条件や、ある出力の時系列的な制約などを記述しても良いし、また、ソフトウェアコンポーネントの内部状態に依存して正常値の範囲が変わるようにしても良い。
<Specification description>
FIG. 3 describes the input / output interface and internal specifications shown in FIG. 1 in a formal description language Alloy. Here, a very simple case is used as an example, but more complicated specifications can be described. For example, you may describe the condition of the value that multiple outputs should take at the same time, the time series restrictions of a certain output, etc., and the normal value range will change depending on the internal state of the software component. May be.

図4は、図3に示す仕様を基に異常仕様作成部3が作成した異常仕様である。図4は、入力のうちy(InY)を正常値以外に変更した場合の異常仕様である。基本的に、正常な仕様のうち入力に関する制約に対して論理否定を作用させることで、異常仕様の作成ができる。   FIG. 4 shows an abnormal specification created by the abnormal specification creation unit 3 based on the specification shown in FIG. FIG. 4 shows an abnormal specification when y (InY) in the input is changed to a value other than the normal value. Basically, an abnormal specification can be created by applying a logical negation to the input-related constraints among normal specifications.

〈処理フロー〉
図5は、本実施形態におけるソフトウェアコンポーネントの信頼性評価処理方法の流れを示すフローチャートである。図5は、一つのソフトウェアコンポーネント、すなわち、一つの仕様記述に対する信頼性評価のフローである。
<Processing flow>
FIG. 5 is a flowchart showing the flow of the software component reliability evaluation processing method according to this embodiment. FIG. 5 is a flow of reliability evaluation for one software component, that is, one specification description.

ステップS2において、仕様情報取得部2が検査対象ソフトウェアコンポーネントのインタフェース仕様情報(正常仕様)を取得する。典型的には仕様記述ファイルの読み込みであるが、ADL等で記述された設計情報から自動的に仕様記述ファイルを作成してもか
まわない。
In step S2, the specification information acquisition unit 2 acquires the interface specification information (normal specification) of the inspection target software component. Typically, the specification description file is read. However, the specification description file may be automatically created from design information described in ADL or the like.

ステップS4では、取得した正常仕様情報に基づいて、モデル検査部4を用いて網羅的な検証によるモデル検査を行う。これにより、インタフェース仕様として記述された要件をソフトウェアコンポーネントが満足するか否かが検証される。これは、従来のモデル検査部(Alloy Analyzer等)の利用方法である。この時点で反例が発見された場合には、仕様を再考する。   In step S4, based on the acquired normal specification information, model checking is performed by exhaustive verification using the model checking unit 4. Thereby, it is verified whether or not the software component satisfies the requirements described as the interface specification. This is a method of using a conventional model checking unit (such as an Alloy Analyzer). If a counterexample is found at this point, revisit the specification.

ステップS6においてソフトウェアコンポーネントの入力のうち1つを選択し、ステップS8において選択した入力の仕様を正常値以外を示すように変更した異常仕様を異常仕様作成部3が作成する。ステップS10で、作成した異常仕様を用いてモデル検査を行う。このモデル検査の結果として、反例が見つかったか場合(S12−YES)は、ステップS14で、正常値以外にした入力と仕様を満たさない出力とを関連づけて、故障伝播路記憶部5に記憶する。例えば、入力yと出力aとを関連づけて記憶する。   In step S6, one of the software component inputs is selected, and the abnormal specification creation unit 3 creates an abnormal specification in which the specification of the input selected in step S8 is changed to indicate a value other than the normal value. In step S10, model checking is performed using the created abnormal specification. If a counterexample is found as a result of this model check (S12-YES), in step S14, the input other than the normal value is associated with the output that does not satisfy the specifications and stored in the fault propagation path storage unit 5. For example, the input y and the output a are stored in association with each other.

ステップS16で、このソフトウェアコンポーネントについて、全ての入力について入力仕様を正常値以外にしたか判断し、まだ正常値以外にしていない入力がある場合にはステップS6に戻る。次回の検査では、新たな入力だけを正常値以外にした異常仕様を作成する。例えば、入力xのみを正常値以外にしてモデル検査を行った後は、入力yのみを正常値以外にして、入力xについては正常な仕様にしてモデル検査を行う。全ての入力について正常値以外にしたモデル検査を実行した後は、このソフトウェアコンポーネントについての信頼性評価を終了する。   In step S16, it is determined whether or not the input specification is set to a value other than the normal value for all inputs for this software component. If there is an input that has not been set to a value other than the normal value, the process returns to step S6. In the next inspection, an abnormal specification in which only a new input is set to a non-normal value is created. For example, after the model check is performed with only the input x other than the normal value, the model check is performed with only the input y other than the normal value and with the input x having a normal specification. After executing model checking for all inputs other than normal values, the reliability evaluation for this software component is terminated.

このソフトウェアコンポーネントの信頼性評価は、一つのみのコンポーネントに対して行うだけでなく、システムを構成する複数のコンポーネントに対して順次行うことも好ましい。すなわち、各ソフトウェアコンポーネントに対して、図5のフローチャートに示す処理、具体的には、仕様情報の取得、異常仕様の作成、異常仕様に基づくモデル検査、および故障伝播路の記憶を実行する。その結果、各ソフトウェアコンポーネントについて、故障伝播路となる入力と出力の組合せが故障伝播路記憶部5に格納される。   The reliability evaluation of the software component is preferably performed not only on one component but also sequentially on a plurality of components constituting the system. That is, for each software component, processing shown in the flowchart of FIG. 5, specifically, acquisition of specification information, creation of abnormal specifications, model checking based on abnormal specifications, and storage of fault propagation paths are executed. As a result, for each software component, a combination of input and output that becomes a failure propagation path is stored in the failure propagation path storage unit 5.

このようにして各ソフトウェアコンポーネントに対して異常の伝播路が算出されると、故障伝播路記憶部5に関連づけて記憶された入力と出力に基づいて、システム全体における故障伝播路を把握することができる。例えば、故障伝播路表示部6は、ある個所で発生した故障がどのように伝播するかを表示することができる。また、故障伝播路表示部6は、ある個所で検出された故障の真の原因となり得る個所を表示することもできる。このように、故障に対してシステム全体がどのように振る舞うかを明確にすることができるので、複数のソフトウェアコンポーネントから構成されるシステム(ソフトウェア)全体の評価にも用いることができる。例えば、安全性を損なうようなイベントが、どのソフトウェアコンポーネントの故障(バグ)によって引き起こされる可能性があるか等を分析できる。   When an abnormal propagation path is calculated for each software component in this way, the failure propagation path in the entire system can be grasped based on the input and output stored in association with the failure propagation path storage unit 5. it can. For example, the failure propagation path display unit 6 can display how a failure occurring at a certain point propagates. Further, the failure propagation path display unit 6 can also display a location that can be a true cause of a failure detected at a certain location. In this way, since it is possible to clarify how the entire system behaves in response to a failure, it can also be used for evaluation of the entire system (software) composed of a plurality of software components. For example, it is possible to analyze which software component failure (bug) may cause an event that impairs safety.

〈変形〉
ここでは、形式記述言語としてAlloy、モデル検査ツールとしてAlloy Analyzerを例として説明したが、入力仕様、内部仕様、出力仕様を記述可能であり、数学的手法によって上記の仕様が満足するかどうかを検証可能なツールであれば、任意の手法を採用することができる。たとえば、SPIN、Promela、SMV,LTSAなどを利用可能である。
<Deformation>
In this example, Alloy is used as the formal description language, and Alloy Analyzer is used as the model checking tool. However, input specifications, internal specifications, and output specifications can be described, and it is verified whether the above specifications are satisfied by mathematical methods. Any technique can be used as long as it is possible. For example, SPIN, Promela, SMV, LTSA, etc. can be used.

上記の説明では、取得した仕様に基づくモデル検査(図5のステップS4)と、入力を正常値以外に変更した仕様に基づくモデル検査(図5のステップS10)の両方を行って
いるが、前者は必ずしも行わなくてもかまわない。すなわち、作成した仕様が無矛盾であることが保障されているならば、異常仕様に基づくモデル検査のみを行って故障がどのように伝播するかだけを調べてもかまわない。
In the above description, both model checking based on the acquired specification (step S4 in FIG. 5) and model checking based on the specification whose input is changed to a value other than the normal value (step S10 in FIG. 5) are performed. Does not necessarily have to be done. In other words, if it is guaranteed that the created specifications are consistent, only the model check based on the abnormal specifications may be performed to examine only how the fault propagates.

また、上記では入力を一つずつ異常に設定する場合のみを説明したが、複数の入力を同時に異常に設定してモデル検査を行ってもかまわない。   In the above description, only the case where inputs are set abnormally one by one has been described. However, it is also possible to perform model checking with a plurality of inputs set to abnormal simultaneously.

1 信頼性評価装置
2 仕様情報取得部
3 異常仕様作成部
4 モデル検査部
5 故障伝播路記憶部
6 故障伝播路表示部
DESCRIPTION OF SYMBOLS 1 Reliability evaluation apparatus 2 Specification information acquisition part 3 Abnormal specification preparation part 4 Model check part 5 Fault propagation path memory | storage part 6 Fault propagation path display part

Claims (8)

モデルの形式検証機能を有するコンピュータが、
ソフトウェアコンポーネントの入力インタフェース仕様、出力インタフェース仕様、内部仕様を含む仕様情報を取得する仕様情報取得ステップと、
前記仕様情報中の入力インタフェース仕様を正常値以外に変更した仕様情報に従って、前記形式検証機能によって前記ソフトウェアコンポーネントを検証する検証ステップと、
前記検証ステップにおいて前記出力インタフェース仕様を満足しない出力値となる例が発見された場合には、前記正常値以外に変更した入力と、前記出力インタフェース仕様を満たさない出力とを、対応づけて記憶する故障伝播路記憶ステップと、
を実行する、ソフトウェアコンポーネントの信頼性評価方法。
A computer having a model formal verification function
A specification information acquisition step for acquiring specification information including input interface specifications, output interface specifications, and internal specifications of the software component;
A verification step of verifying the software component by the format verification function according to the specification information in which the input interface specification in the specification information is changed to a value other than a normal value;
When an example of an output value that does not satisfy the output interface specification is found in the verification step, the input changed to a value other than the normal value and the output that does not satisfy the output interface specification are stored in association with each other. A fault propagation path storing step;
A method for evaluating the reliability of software components.
前記ソフトウェアコンポーネントは、複数の入力値をとるものであり、
前記検証ステップでは、入力値のそれぞれについて、入力インタフェース仕様を正常値以外に変更した仕様情報に従って、ソフトウェアコンポーネントの検証を行う、
請求項1に記載のソフトウェアコンポーネントの信頼性評価方法。
The software component takes a plurality of input values,
In the verification step, for each input value, the software component is verified according to the specification information in which the input interface specification is changed to a value other than the normal value.
The software component reliability evaluation method according to claim 1.
前記コンピュータが、前記仕様情報取得ステップで取得した仕様情報から、入力値ごとに入力インタフェース仕様を正常値以外にした異常仕様情報を作成するステップ、をさらに実行する、
請求項2に記載のソフトウェアコンポーネントの信頼性評価方法。
The computer further creates, from the specification information acquired in the specification information acquisition step, abnormal specification information in which the input interface specification is other than a normal value for each input value,
The software component reliability evaluation method according to claim 2.
前記コンピュータが、
複数のソフトウェアコンポーネントを含むシステムの各ソフトウェアコンポーネントに対して、前記仕様情報取得ステップ、検証ステップ、故障伝播路記憶ステップを実行し、
前記故障伝播路記憶ステップにおいて関連づけて記憶された入力と出力とに基づいて、前記システムの故障伝播路を表示する、
請求項1〜3のいずれかに記載のソフトウェアコンポーネントの信頼性評価方法。
The computer is
For each software component of the system including a plurality of software components, execute the specification information acquisition step, the verification step, the failure propagation path storage step,
Displaying the fault propagation path of the system based on the input and output stored in association with each other in the fault propagation path storing step;
The software component reliability evaluation method according to claim 1.
記憶手段と、
ソフトウェアコンポーネントの入力インタフェース仕様、出力インタフェース仕様、内部仕様を含む仕様情報を取得する仕様情報取得手段と、
前記仕様情報中の入力インタフェース仕様を正常値以外に変更した仕様情報に従って、前記ソフトウェアコンポーネントを形式的検証によって検証し、該検証において前記出力インタフェース仕様を満足しない出力値となる例が発見された場合には、前記正常値以外に変更した入力と、前記出力インタフェース仕様を満たさない出力とを、対応づけて前記記憶手段に記憶する検証手段と、
を備える、ソフトウェアコンポーネントの信頼性評価装置。
Storage means;
Specification information acquisition means for acquiring specification information including software interface input interface specifications, output interface specifications, and internal specifications;
When the software component is verified by formal verification according to the specification information obtained by changing the input interface specification in the specification information to a value other than a normal value, and an example in which the output value does not satisfy the output interface specification is found in the verification The verification means for storing the input changed to other than the normal value and the output not satisfying the output interface specification in the storage means in association with each other,
A software component reliability evaluation apparatus comprising:
前記ソフトウェアコンポーネントは、複数の入力値をとるものであり、
前記検証手段は、入力値のそれぞれについて、入力インタフェース仕様を正常値以外に変更した仕様情報に従って、ソフトウェアコンポーネントの検証を行う、
請求項5に記載のソフトウェアコンポーネントの信頼性評価装置。
The software component takes a plurality of input values,
The verification means, for each of the input values, to verify the software component according to the specification information that has changed the input interface specification other than the normal value,
The software component reliability evaluation apparatus according to claim 5.
前記仕様情報取得手段が取得した仕様情報から、入力値ごとに入力インタフェース仕様を正常値以外にした異常仕様情報を作成する異常仕様情報作成手段をさらに備える、
請求項6に記載のソフトウェアコンポーネントの信頼性評価装置。
From the specification information acquired by the specification information acquisition means, further comprising abnormal specification information creating means for creating abnormal specification information in which the input interface specification is other than the normal value for each input value,
The software component reliability evaluation apparatus according to claim 6.
複数のソフトウェアコンポーネントを含むシステムの各ソフトウェアコンポーネントに対して、前記検証手段による検証を行い、
前記記憶手段において関連づけて記憶された入力と出力とに基づいて、前記システムの故障伝播路を表示する、
請求項5〜7のいずれかに記載のソフトウェアコンポーネントの信頼性評価装置。
For each software component of the system including a plurality of software components, verify by the verification means,
Displaying a fault propagation path of the system based on the input and output stored in association with each other in the storage means;
The reliability evaluation apparatus of the software component in any one of Claims 5-7.
JP2010280602A 2010-12-16 2010-12-16 Reliability evaluation method and apparatus for software component Withdrawn JP2012128727A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010280602A JP2012128727A (en) 2010-12-16 2010-12-16 Reliability evaluation method and apparatus for software component

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010280602A JP2012128727A (en) 2010-12-16 2010-12-16 Reliability evaluation method and apparatus for software component

Publications (1)

Publication Number Publication Date
JP2012128727A true JP2012128727A (en) 2012-07-05

Family

ID=46645653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010280602A Withdrawn JP2012128727A (en) 2010-12-16 2010-12-16 Reliability evaluation method and apparatus for software component

Country Status (1)

Country Link
JP (1) JP2012128727A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019211947A (en) * 2018-06-04 2019-12-12 矢崎総業株式会社 Vulnerability evaluation device
EP4120085A1 (en) 2021-07-12 2023-01-18 Hitachi, Ltd. Failure analysis support device and failure analysis support method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019211947A (en) * 2018-06-04 2019-12-12 矢崎総業株式会社 Vulnerability evaluation device
EP4120085A1 (en) 2021-07-12 2023-01-18 Hitachi, Ltd. Failure analysis support device and failure analysis support method

Similar Documents

Publication Publication Date Title
Mao et al. Slice-based statistical fault localization
US20080256393A1 (en) Detecting unexpected impact of software changes using coverage analysis
Henard et al. Towards automated testing and fixing of re-engineered feature models
US20030110474A1 (en) System for coverability analysis
JP2012008744A (en) Risk quantitative assessment method by computer supported top logic for nuclear power plant
Aho et al. Murphy tools: Utilizing extracted gui models for industrial software testing
Post et al. Linking functional requirements and software verification
Singh et al. Software reliability early prediction in architectural design phase: Overview and Limitations
US9043746B2 (en) Conducting verification in event processing applications using formal methods
Brown et al. Guidance for using formal methods in a certification context
JP6723483B2 (en) Test case generation device, test case generation method, and test case generation program
Behnam et al. In-circuit mutation-based automatic correction of certain design errors using SAT mechanisms
JP2012128727A (en) Reliability evaluation method and apparatus for software component
JP5463226B2 (en) Source code inspection method and source code inspection apparatus
Murugesan et al. Are we there yet? determining the adequacy of formalized requirements and test suites
JPWO2016151710A1 (en) Specification configuration apparatus and method
US7448004B1 (en) Method and management tool for assessing an electronic design validation process
CN116802640A (en) Structural analysis for determining fault type in safety-related logic
Ray et al. Validating automotive control software using instrumentation-based verification
Abraham Verification and validation spanning models to code
Trivedi et al. Modelling and analysing of software defect prevention using ODC
JP5573287B2 (en) Automatic program generator
Saifan et al. Using formal methods for test case generation according to transition-based coverage criteria
Chou Metrics in evaluating software defects
Singh et al. The review: Lifecycle of object-oriented software testing

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140304