JP2023157310A - Model checking device and model checking method - Google Patents

Model checking device and model checking method Download PDF

Info

Publication number
JP2023157310A
JP2023157310A JP2022067130A JP2022067130A JP2023157310A JP 2023157310 A JP2023157310 A JP 2023157310A JP 2022067130 A JP2022067130 A JP 2022067130A JP 2022067130 A JP2022067130 A JP 2022067130A JP 2023157310 A JP2023157310 A JP 2023157310A
Authority
JP
Japan
Prior art keywords
partial
specifications
verification
service
model checking
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.)
Pending
Application number
JP2022067130A
Other languages
Japanese (ja)
Inventor
遼 清水
Ryo Shimizu
秀行 鹿糠
Hideyuki Kanuka
広樹 高橋
Hiroki Takahashi
俊司 木暮
Shunji Kogure
淳平 西谷
Junpei Nishitani
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022067130A priority Critical patent/JP2023157310A/en
Publication of JP2023157310A publication Critical patent/JP2023157310A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

To efficiently perform model checking of an information processing system achieved by linking multiple services.SOLUTION: A model checking device stores a component composition definition in which the specifications of an orchestrator that links services are prescribed in a predetermined prescribed format, post-synthesis verification properties prescribing the requirements for the orchestrator specifications in the predetermined prescribed format, and a formal specification prescribing the specifications of multiple services in the predetermined prescribed format. Based on the post-synthesis verification properties, a partial specification extraction criteria is generated, which is a standard for extracting partial specifications, which are formal specifications of services used for validating orchestrator specifications. Based on the partial specification extraction criteria, the partial specification of the service used to verify the component composition definition is extracted from the formal specification of the service. Based on the extracted partial specifications, a verification code as a code for verifying the component composition definition is generated. The component composition definition is verified by inputting the verification code to a model checking tool.SELECTED DRAWING: Figure 5

Description

本発明は、モデル検査装置、及びモデル検査方法に関する。 The present invention relates to a model checking device and a model checking method.

特許文献1には、コンポーネントがプログラムの要求仕様を満たすか否かを検証するプログラム検証生成装置が記載されている。プログラム検証生成装置は、動作を検証するための検証情報及び実装が記述されたコンポーネントと、あるプログラムに必要なコンポーネントに関する識別情報及びプログラムの満たすべき仕様を記述したプログラム仕様とを記憶し、プログラム仕様の識別情報に基づきコンポーネントを選択し、選択したコンポーネントの検証情報を用いて選択したコンポーネントがプログラムの仕様を満たすか否かを検証し、選択したコンポーネントがプログラムの仕様を満たすと検証した場合にプログラムの仕様を用いて選択したコンポーネントの実装を組み合わせてプログラムを生成する。 Patent Document 1 describes a program verification generation device that verifies whether a component satisfies the required specifications of a program. The program verification generation device stores components that describe verification information and implementation for verifying operations, and program specifications that describe identification information about components necessary for a certain program and specifications that the program should satisfy. selects a component based on the identification information of the selected component, verifies whether the selected component satisfies the program specifications using the verification information of the selected component, and executes the program if the selected component is verified to satisfy the program specifications. A program is generated by combining the implementations of the selected components using the specifications.

特許文献2には、開発済みのサービスモデルを複数組み合わせて新規なサービスモデルを開発する際、その新規なサービスモデルが要求仕様どおりに設計されているかを検査する組合せサービス検査システムについて記載されている。複数の開発済みの第1のサービスモデルを検査する検査コードが記録されたデータベースから、第2のサービスモデルを検査する検査コードを取得し、第2のサービスモデルの検査条件を取得し、取得した検査条件を検査条件コードに変換し、取得した検査コードと検査条件コードに基づき、第2のサービスモデルが検査条件に合致するか否かを検査する。 Patent Document 2 describes a combination service inspection system that, when a new service model is developed by combining multiple developed service models, inspects whether the new service model is designed in accordance with required specifications. . Obtain an inspection code for inspecting a second service model from a database in which inspection codes for inspecting a plurality of developed first service models are recorded, and obtain and obtain inspection conditions for the second service model. The test condition is converted into a test condition code, and based on the obtained test code and test condition code, it is checked whether the second service model matches the test condition.

特許文献3には、製品仕様を記述する仕様モデルに基づき、ソフトウェア処理の機能を記述した設計モデルの検査装置について記載されている。検査装置は、複数の機能ブロックの遷移で表わされる仕様モデルの検査において、複数の機能ブロックのそれぞれについてその目標値を満たすか否かを検証し、目標値を満たさない状態遷移を有する機能ブロックが抽出された場合には、その目標値を当該状態遷移にあわせて再設定するとともに、他の機能ブロックの目標値を仕様モデルの目標値に応じて再設定する。また、検査装置は、抽出された機能ブロックが目標値違反を生じる制約下において、他の機能ブロックが再設定された目標値を満足する場合には、仕様モデルが目標値を満たすと判定する。 Patent Document 3 describes an inspection device for a design model that describes software processing functions based on a specification model that describes product specifications. In testing a specification model represented by transitions of multiple functional blocks, the inspection device verifies whether each of the multiple functional blocks satisfies its target value, and identifies functional blocks that have state transitions that do not satisfy the target value. If extracted, the target value is reset according to the state transition, and the target values of other functional blocks are reset according to the target values of the specification model. Further, the inspection device determines that the specification model satisfies the target value when other functional blocks satisfy the reset target value under a constraint that causes the extracted functional block to violate the target value.

特開2004-326366号公報Japanese Patent Application Publication No. 2004-326366 特開2009-98770号公報JP2009-98770A 国際公開第2011/096037号International Publication No. 2011/096037

近年、情報処理システムの開発の迅速化等を目的として、マイクロサービスアーキテクチャ(以下、「MSA」(Micro Service Architecture)と称する。)が注目されている。MSAにおいては、情報処理システムは、細粒度かつ独立してデプロイが可能なサービスの組合せとして開発される。これにより保守時や仕様変更時における影響範囲が限定され、高速なリリースや修正を実現することができる。 In recent years, microservice architecture (hereinafter referred to as "MSA") has been attracting attention for the purpose of speeding up the development of information processing systems. In MSA, information processing systems are developed as a combination of fine-grained, independently deployable services. This limits the scope of impact during maintenance or specification changes, allowing for faster releases and modifications.

MSAによる情報処理システムの開発においては、ユーザ等からのリクエストに対する処理は、複数のサービスの連携による分散処理として実現される。しかし、分散処理は、個々のサービスや通信に障害が生じた場合にデータの整合性等の要件が担保されるように
設計する必要があり、モノリシックアーキテクチャ(モノリス)を前提とするシステム開発に比べて設計の難易度が高い。
In the development of an information processing system using MSA, processing for requests from users and the like is realized as distributed processing by cooperation of a plurality of services. However, distributed processing needs to be designed in such a way that requirements such as data integrity are guaranteed in the event of a failure in individual services or communications, and compared to system development based on monolithic architecture (monolith). Therefore, the design difficulty is high.

MSAによる情報処理システムのような分散処理システムの設計を支援する技術として、システムを特定の観点から形式的な仕様(以下、「形式仕様」と称する。)として表現し、与えられた要求(以下、「検証性質」と称する。)を上記形式仕様が満たすか否かを網羅的に検証する技術であるモデル検査(Model Checking)がある。 As a technology that supports the design of distributed processing systems such as information processing systems using MSA, systems are expressed as formal specifications (hereinafter referred to as "formal specifications") from a specific viewpoint, and given requirements (hereinafter referred to as "formal specifications") are There is model checking, which is a technique for comprehensively verifying whether the above formal specifications satisfy the above-mentioned formal specifications.

MSAによる情報処理システムについてモデル検査を行う場合には、まず、サービスの形式仕様についてサービス単体で検証性質の検証を行う。続いて、各サービスの形式仕様を合成することにより、サービスを連携させるオーケストレータの形式仕様を生成し、当該形式仕様に基づきオーケストレータ固有の検証性質を検証する。 When model checking is performed on an information processing system using MSA, first, the verification properties of the formal specifications of the service are verified for each service. Next, by composing the formal specifications of each service, a formal specification of an orchestrator that coordinates the services is generated, and verification properties specific to the orchestrator are verified based on the formal specification.

しかし、上記の方法で検証を行う場合、検証性質に無関係な部品の形式仕様が合成後のオーケストレータの形式仕様に含まれてしまうため、検証時の探索空間が肥大化し、検証時間が増大するという課題がある。また、サービスの更新が高頻度で行われる場合、更新の都度、全ての形式仕様を単純に合成してしまうと、合成後の形式仕様にオーケストレータの検証性質とは無関係の形式仕様が含まれてしまい、不必要な再合成/再検証が行われてしまう。 However, when performing verification using the above method, the formal specifications of components unrelated to the verification properties are included in the formal specifications of the orchestrator after synthesis, resulting in an enlarged search space during verification and an increase in verification time. There is a problem. In addition, if a service is updated frequently, if all formal specifications are simply synthesized each time there is an update, the synthesized formal specification will contain formal specifications that are unrelated to the orchestrator's verification properties. This results in unnecessary re-synthesis/re-verification.

特許文献1に記載のプログラム検証生成装置は、コンポーネントに動作を検証するための検証情報及び実装を記述しておき、プログラム仕様の識別情報に基づきコンポーネントを選択し、選択したコンポーネントの検証情報を用いて、コンポーネントの検証情報が生成しようとするプログラムの仕様を満たすか否かを検証する。しかし、同文献には、検証時の探索空間の肥大化や不必要な再合成/再検証を抑制する仕組みについては記載されていない。 The program verification generation device described in Patent Document 1 describes verification information and implementation for verifying operations in a component, selects a component based on identification information of a program specification, and uses the verification information of the selected component. Then, it is verified whether the verification information of the component satisfies the specifications of the program to be generated. However, this document does not describe a mechanism for suppressing expansion of the search space during verification or unnecessary resynthesis/re-verification.

また、特許文献2に記載のサービス検査システムは、複数の開発済みの第1のサービスモデルの検査コードが記録されたデータベースから、第2のサービスモデル(新規なサービスモデル)を検査する検査コードを取得し、第2のサービスモデルの検査条件を取得して検査条件コードに変換し、検査コード及び検査条件コードに基づき、第2のサービスモデルが検査条件に合致するか否かを検査する。しかし、同文献には、上記のような理由による検証時の探索空間の肥大化や不必要な再合成/再検証を抑制する仕組みについては記載されていない。 Furthermore, the service inspection system described in Patent Document 2 acquires a test code for testing a second service model (a new service model) from a database in which test codes for a plurality of developed first service models are recorded. The test condition of the second service model is acquired and converted into a test condition code, and based on the test code and the test condition code, it is checked whether the second service model matches the test condition. However, this document does not describe a mechanism for suppressing enlargement of the search space during verification or unnecessary resynthesis/reverification due to the reasons described above.

また、特許文献3に記載の検査装置は、抽出された機能ブロックが目標値違反を生じる制約下において、他の機能ブロックが再設定された目標値を満足する場合には、仕様モデルが目標値を満たすと判定する。しかし、同文献には、上記の理由による検証時の探索空間の肥大化や不必要な再合成/再検証を抑制する仕組みについては記載されていない。 Furthermore, in the inspection device described in Patent Document 3, when the extracted functional block satisfies the reset target value under a constraint that causes a violation of the target value, the specification model is set to the target value. It is determined that the following is satisfied. However, this document does not describe a mechanism for suppressing enlargement of the search space during verification or unnecessary re-synthesis/re-verification due to the above-mentioned reasons.

本発明は、このような背景に鑑みてなされたものであり、複数のサービスの連携により実現される情報処理システムのモデル検査を効率よく行うことが可能な、モデル検査装置、及びモデル検査方法を提供することを目的とする。 The present invention has been made in view of this background, and provides a model testing device and a model testing method that can efficiently perform model testing of an information processing system realized by cooperation of multiple services. The purpose is to provide.

上記の目的を達成するための本発明の一つは、複数のサービスの連携により実現される情報処理システムのモデルについてモデル検査を行うモデル検査装置であって、プロセッサ及び記憶装置を有する情報処理装置を用いて構成され、前記サービスを連携させるオーケストレータの仕様を所定の記述形式で記述した部品合成定義と、前記オーケストレータの仕様に対する要求を所定の記述形式で記述した合成後検証性質と、前記複数のサービス
の夫々の仕様を所定の記述形式で記述した形式仕様と、を記憶し、前記合成後検証性質に基づき、前記オーケストレータの仕様の検証に用いる前記サービスの形式仕様である部分仕様を抽出するための基準となる情報である部分仕様抽出基準を生成し、前記部分仕様抽出基準に基づき、前記部品合成定義の検証に用いる前記サービスの前記部分仕様を抽出し、 抽出した前記部分仕様に基づき前記部品合成定義を検証するためのコードである検証用コードを生成し、前記検証用コードをモデル検査ツールに入力することにより前記部品合成定義を検証する。
One aspect of the present invention to achieve the above object is a model checking device that performs model checking on a model of an information processing system realized by cooperation of a plurality of services, the information processing device having a processor and a storage device. a component synthesis definition that describes the specifications of an orchestrator that coordinates the services in a predetermined description format; a post-synthesis verification property that describes the requirements for the specifications of the orchestrator in a predetermined description format; a formal specification in which specifications of each of a plurality of services are described in a predetermined description format, and a partial specification that is a formal specification of the service used to verify the specification of the orchestrator based on the post-synthesis verification property. Generate a partial specification extraction standard that is information that serves as a standard for extraction, extract the partial specification of the service used for verifying the component composition definition based on the partial specification extraction standard, and apply the partial specification to the extracted partial specification. A verification code, which is a code for verifying the component composition definition, is generated based on the verification code, and the verification code is input into a model checking tool to verify the component composition definition.

その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。 Other problems disclosed in the present application and methods for solving the problems will be made clear by the detailed description section and the drawings.

本発明によれば、複数のサービスの連携により実現される情報処理システムのモデル検査を効率よく行うことができる。 According to the present invention, model testing of an information processing system realized by cooperation of a plurality of services can be efficiently performed.

モデル検査の一例を説明する図である。FIG. 2 is a diagram illustrating an example of model testing. MSAに基づくモデルのモデル検査の一例を示す図である。FIG. 3 is a diagram illustrating an example of model checking of a model based on MSA. モデル検査装置によるモデル検査の一例を示す図である。FIG. 2 is a diagram illustrating an example of model testing performed by a model testing device. モデル検査装置によるモデル検査の一例を示す図である。FIG. 2 is a diagram illustrating an example of model testing performed by a model testing device. モデル検査装置によるモデル検査の一例を示す図である。FIG. 2 is a diagram illustrating an example of model testing performed by a model testing device. モデル検査装置が備える主な機能の一例を示す図である。FIG. 2 is a diagram showing an example of main functions included in the model checking device. モデル検査装置の機能の一例を説明するシステムフロー図である。It is a system flow diagram explaining an example of the function of a model checking device. モデル検査処理の一例を説明するフローチャートである。3 is a flowchart illustrating an example of model checking processing. 更新あり部品の検証要否判定処理の一例を説明するフローチャートである。12 is a flowchart illustrating an example of a process for determining whether verification is necessary for updated components. 過去抽出部分仕様の一例である。This is an example of a past extraction partial specification. 合成用部分仕様の一例である。This is an example of a partial specification for synthesis. 更新なし部品の部分仕様抽出処理の一例を説明するフローチャートである。12 is a flowchart illustrating an example of a partial specification extraction process for a component that has not been updated. 他モデル検査実行要否判定処理の一例を説明するフローチャートである。12 is a flowchart illustrating an example of a process for determining whether or not to perform other model testing. 他モデル検査実行要否判定処理の一例を示す図である。FIG. 7 is a diagram illustrating an example of a process for determining whether or not other model testing is necessary. モデル検査装置の構成に用いる情報処理装置の一例である。This is an example of an information processing device used in the configuration of a model checking device.

以下、本発明の実施形態について適宜図面を参照しつつ詳細に説明する。以下の説明において、「情報」、「テーブル」等の表現にて各種データを説明することがあるが、各種データは例示するデータ構造以外の方法で表現もしくは管理してもよい。また、以下の説明において、符号の前に付した「S」の文字は処理ステップの意味である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings as appropriate. In the following description, various data may be explained using expressions such as "information" and "table," but various data may be expressed or managed using methods other than the illustrated data structure. Furthermore, in the following explanation, the letter "S" added in front of the reference numeral means a processing step.

以下、本発明の一実施形態にかかるモデル検査装置100について説明する。モデル検査装置100は、ハードウェアやソフトウェアの設計から導出される情報処理システム(以下、「モデル」と称する。)についてモデル検査(Model Checking)を行うことにより、ユーザ等からの要求を満たしているか否かを検証する。 Hereinafter, a model checking device 100 according to an embodiment of the present invention will be described. The model checking device 100 performs model checking on an information processing system (hereinafter referred to as a "model") derived from hardware and software design to check whether the requirements from users etc. are met. Verify whether or not.

モデル検査は、モデルが、ユーザ等からの要求を満たしているか否かを検証する技術である。モデル検査では、モデルの設計や要求を数学的に厳密に意味付けられた言語であるモデル記述言語を用いて記述し、対象モデルの仕様が要求を満たしているか否かを網羅的に検証する。 Model checking is a technique for verifying whether a model satisfies requests from users and the like. In model checking, model design and requirements are described using a model description language, which is a language with strict mathematical meanings, and it is comprehensively verified whether the specifications of the target model satisfy the requirements.

モデル検査のためのツール(以下、「モデル検査ツール」と称する。)として、例えば
、クラウド環境のようなサービス(マイクロサービス)の連携などの分散処理システムの設計の検証に用いられる「TLA+」や「SPIN(Simple Promela INterpreter)」がある。以下、モデルの仕様を所定のモデル記述言語で記述したものを「形式仕様」と称し、ユーザ等からのモデルに対する要求を所定の検査式(論理式)で記述したものを「検証性質」と称する。
Examples of tools for model checking (hereinafter referred to as "model checking tools") include "TLA+," which is used to verify the design of distributed processing systems such as the coordination of services (microservices) such as cloud environments. There is "SPIN (Simple Promela INterpreter)". Hereinafter, the specifications of a model written in a predetermined model description language will be referred to as "formal specifications", and the requirements for the model from users etc. described in predetermined verification formulas (logical formulas) will be referred to as "verification properties". .

図1は、モデル検査を説明する図である。同図に示すように、モデル検査では、モデルの仕様を所定のモデル記述言語で記述した形式仕様32により表現し、形式仕様32がとり得る状態を列挙した状態空間33において検証性質31を満たすか否かを網羅的に検証する。 FIG. 1 is a diagram illustrating model checking. As shown in the figure, in model checking, a model specification is expressed by a formal specification 32 written in a predetermined model description language, and whether a verification property 31 is satisfied in a state space 33 listing possible states of the formal specification 32? Comprehensively verify whether or not.

マイクロサービスアーキテクチャ(以下、「MSA」(Micro Service Architecture)と称する。)によるモデルのモデル検査においては、まず、独立して開発される各サービスの形式仕様について個別に検証性質を検証する。続いて、サービスを連携させるオーケストレータの仕様(以下、「部品合成定義」と称する。)に基づき各サービスの形式仕様を合成して検証用コード(以下、「合成済検証用コード」と称する。)を生成し、合成済検証用コードがオーケストレータの仕様についての検証性質(以下、「合成後検証性質」と称する。)を満たすか否かを検証する。 In model checking of a model using a microservice architecture (hereinafter referred to as "MSA"), first, the verification properties of the formal specifications of each independently developed service are individually verified. Next, the formal specifications of each service are synthesized based on the specifications of the orchestrator that links the services (hereinafter referred to as "component composition definition"), and a verification code (hereinafter referred to as "synthesized verification code"). ), and it is verified whether the synthesized verification code satisfies the verification properties (hereinafter referred to as "post-synthesis verification properties") regarding the specifications of the orchestrator.

図2は、MSAに基づくモデルの「TLA+」によるモデル検査の一例である。本例において、モデル(オーケストレータが実現する業務)は、「口座間資金移動」を行う情報処理システムである。また、合成後検証性質は「いずれ、全口座残高合計が、システムの初期残高合計と一致(=取引過程で残高の喪失又は増加なし)」である。また、同図に部品合成定義として示すように、例示するモデルは、「Withdraw」及び「Deposit」という2
つのサービスを含む。この例では、サービス「Withdraw」の形式仕様と、サービス「Deposit」の形式仕様を取得し、これらを合成することにより合成済検証用コードを生成して
いる。
FIG. 2 is an example of model checking using "TLA+" for a model based on MSA. In this example, the model (the business realized by the orchestrator) is an information processing system that performs "inter-account fund transfer." In addition, the post-synthesis verification property is ``eventually, the total balance of all accounts will match the total initial balance of the system (= no balance will be lost or increased during the transaction process)''. In addition, as shown in the figure as part composition definition, the example model has two parts called "Withdraw" and "Deposit".
Includes two services. In this example, the formal specifications of the service "Withdraw" and the formal specifications of the service "Deposit" are obtained, and a synthesized verification code is generated by synthesizing them.

尚、図2の例では、各サービスの部品(形式仕様を含む。(以下、「ソフトウェア部品」と称する。))を単純に結合して合成済検証用コードを生成しているため、合成後検証性質とは無関係なソフトウェア部品(形式仕様を含む)が合成済検証用コードに入り込んでしまい、検証の対象(以下、「探索空間」と称する。)が肥大化してしまう。例えば、モデルが「口座間資金移動」であり、合成後検証性質が「残高が負にならないこと」である場合、「取引明細の記録処理」は上記の合成後検証性質とは無関係であるが、取引明細で用いられている変数や当該変数がとり得る値(状態数)によって探索空間が肥大化してしまう。 In the example shown in Figure 2, the synthesized verification code is generated by simply combining the components of each service (including formal specifications (hereinafter referred to as "software components")), so the Software components (including formal specifications) that are unrelated to the verification properties are included in the synthesized verification code, and the verification target (hereinafter referred to as "search space") becomes enlarged. For example, if the model is "inter-account fund transfer" and the post-synthesis verification property is "balance does not become negative", then "recording transaction details" is unrelated to the above-mentioned post-synthesis verification property. , the search space becomes enlarged due to the variables used in the transaction details and the values (number of states) that the variables can take.

また、サービスの更新が高頻度で行われる場合、更新の都度、全ての形式仕様を単純に合成すると、合成後の形式仕様にオーケストレータの検証性質とは無関係の形式仕様が含まれてしまい、不必要な再合成や再検証が行われてしまうことがある。例えば、モデルが「口座間資金移動」であり合成後検証性質が「残高が負にならないこと」である場合に「手数料の加算処理」が追加された場合は口座残高の操作が関わるため再検証が必要である。しかし、例えば、「明細出力する情報」が追加され「過去明細を取得する」処理が更新された場合は、口座残高操作に関わらないため再合成や再検証は不要であるが、その場合でも再合成と再検証が行われてしまう。 Furthermore, if a service is updated frequently, if all formal specifications are simply synthesized each time there is an update, the synthesized formal specification will contain formal specifications unrelated to the orchestrator's verification properties. Unnecessary resynthesis and reverification may occur. For example, if the model is "Inter-account fund transfer" and the post-synthesis verification property is "balance does not become negative", if "fee addition processing" is added, re-verification is required because account balance manipulation is involved. is necessary. However, for example, if "information to output details" is added and the "obtain past statements" process is updated, there is no need to resynthesize or reverify as it is not related to account balance operations, but even in that case, resynthesis or reverification is not necessary. Synthesis and re-verification will be performed.

そこで、本実施形態のモデル検査装置100は、合成後検証性質のうち、形式検証に特有な検証性質の情報(論理式の変数やイベント)に着目して形式仕様の抽出基準(以下、「部分仕様抽出基準」と称する。)を生成する。そして、モデル検査装置100は、各サービスの形式仕様から、部分仕様抽出基準に基づき合成後の検証に用いる形式仕様(以下、
「部分仕様」と称する。)を抽出し、抽出した部分仕様を合成して合成済検証用コードを生成することにより、合成済検証用コードのサイズを低減して探索空間の肥大化の抑制を図る。
Therefore, the model checking device 100 of this embodiment focuses on information on verification properties (variables and events of logical expressions) specific to formal verification among the post-synthesis verification properties, and extracts formal specification extraction criteria (hereinafter referred to as "partial (referred to as "specification extraction criteria"). Then, the model checking device 100 extracts the formal specifications (hereinafter referred to as
This is called a "partial specification." ) and synthesize the extracted partial specifications to generate a synthesized verification code, thereby reducing the size of the synthesized verification code and suppressing the enlargement of the search space.

図3に一例を示す。この例では、モデル検査装置100は、合成後検証性質「EventuallyConsistentAccount == []<>(Sum(accounts) = total)」に基づき「変数: accounts, total」に着目した部分仕様抽出基準として生成している。また、モデル検査装置100は
、生成した部分仕様抽出基準を用いて、各サービスの形式仕様から「Withdrawサービス」や「Depositサービス」を部分仕様として抽出し、部品合成定義に基づきこれらを合成し
て合成済検証用コードを生成している。
An example is shown in FIG. In this example, the model checking device 100 generates a partial specification extraction criterion focusing on "variables: accounts, total" based on the post-synthesis verification property "EventuallyConsistentAccount == []<>(Sum(accounts) = total)". ing. In addition, the model checking device 100 extracts "Withdraw service" and "Deposit service" as partial specifications from the formal specifications of each service using the generated partial specification extraction criteria, and synthesizes them based on the component composition definition. Generates synthesized verification code.

また、モデル検査装置100は、サービスが更新された際、更新されたサービスの部分仕様を再抽出し、再抽出した部分仕様を過去に抽出した部分仕様と比較し、両者に差分がある場合にのみ、当該部分仕様を合成済検証用コードに含めるようにすることで、サービスの更新時における不必要な検証を抑制する。 Furthermore, when a service is updated, the model checking device 100 re-extracts the partial specifications of the updated service, compares the re-extracted partial specifications with previously extracted partial specifications, and determines if there is a difference between the two. By including only the relevant partial specifications in the synthesized verification code, unnecessary verification at the time of updating the service is suppressed.

図4A、図4Bにこの場合の例を示す。図4Aは、更新されたサービス「Withdrawサービス仕様 ver.2」について、当該サービスについて過去(更新前)に抽出した部分仕様「Withdrawサービス ver.1 部分仕様」と更新後に抽出した部分仕様「Withdrawサービス ver.2 部分仕様」について差分がない場合である。この場合、モデル検査装置100は、更新後に抽出した部分仕様「Withdrawサービス ver.2 部分仕様」を合成済検証用コードに
含めないようにする。一方、図4Bは、更新されたサービス「Withdrawサービス仕様 ver.2」について、当該サービスについて過去(更新前)に抽出した部分仕様「Withdrawサービス ver.1 部分仕様」と更新後に抽出した部分仕様「Withdrawサービス ver.2 部分仕様」について差分がある場合である。この場合、モデル検査装置100は、更新後に抽出した部分仕様「Withdrawサービス ver.2 部分仕様」を合成済検証用コードに含めるように
する。
Examples of this case are shown in FIGS. 4A and 4B. Figure 4A shows the updated service "Withdraw service specification ver. 2", the partial specification "Withdraw service ver. 1 partial specification" extracted in the past (before update), and the partial specification "Withdraw service ver. This is a case where there are no differences regarding "ver.2 partial specifications". In this case, the model checking device 100 does not include the partial specification "Withdraw service ver. 2 partial specification" extracted after the update in the synthesized verification code. On the other hand, FIG. 4B shows the updated service "Withdraw service specification ver. 2" with the partial specification "Withdraw service ver. 1 partial specification" extracted in the past (before update) and the partial specification extracted after the update " This is a case where there are differences regarding the "Withdraw Service ver.2 Partial Specifications". In this case, the model checking device 100 includes the partial specification "Withdraw service ver. 2 partial specification" extracted after the update in the synthesized verification code.

また、モデル検査装置100は、サービス更新時の部分仕様を再抽出した後、更新前後の部分仕様に差分がある場合、更新前の部分仕様を参照している他の部品合成定義に対して、部分仕様が更新されたこと及び当該部分仕様について再検証が必要なことを通知することにより検証漏れを防ぐ。 In addition, after re-extracting the partial specification at the time of service update, the model checking device 100 performs the following operations on other component composition definitions that refer to the partial specification before the update, if there is a difference between the partial specification before and after the update. Missing verification is prevented by notifying that a partial specification has been updated and that re-verification is required for the partial specification.

<詳細構成>
図5にモデル検査装置100が備える主な機能を示すブロック図を、また、図6に、モデル検査装置100の機能を説明するシステムフロー図を示す。これらの図に示すように、モデル検査装置100は、記憶部110、情報取得管理部130、更新あり部品抽出部135、更新なし部品抽出部140、部分仕様抽出基準生成部145、更新あり部品検証要否判定部150、更新なし部品部分仕様抽出部155、検証用コード生成部160、モデル検査実行部165、及び他モデル検査実行要否判定部170の各機能を備える。
<Detailed configuration>
FIG. 5 shows a block diagram showing the main functions of the model checking device 100, and FIG. 6 shows a system flow diagram explaining the functions of the model checking device 100. As shown in these figures, the model checking device 100 includes a storage unit 110, an information acquisition management unit 130, an updated parts extraction unit 135, an unupdated parts extraction unit 140, a partial specification extraction standard generation unit 145, and an updated parts verification unit. It includes the following functions: a necessity determination section 150, a non-update component partial specification extraction section 155, a verification code generation section 160, a model test execution section 165, and an other model test execution necessity determination section 170.

上記機能のうち、記憶部110は、部品合成定義111、合成後検証性質112、ソフトウェア部品群113、更新あり部品群114、更新なし部品群115、過去抽出部分仕様118、部分仕様抽出基準116、合成用部分仕様117、合成済検証用コード119、及び検証結果120の各情報(データ)を記憶する。 Among the above functions, the storage unit 110 includes a component synthesis definition 111, a post-synthesis verification property 112, a software component group 113, an updated component group 114, a non-updated component group 115, a past extracted partial specification 118, a partial specification extraction standard 116, Each information (data) of the synthesis partial specification 117, the synthesized verification code 119, and the verification result 120 is stored.

このうち部品合成定義111は、前述した部品合成定義であり、サービスを連携させて業務を実現するオーケストレータの形式仕様の記述を含む。また、部品合成定義111は、モデル検査の対象となるモデル(以下、「対象モデル」と称する。)のサービスごとに独立して開発されるソフトウェア部品が前回実施されたモデル検査の後に更新されている
か否かを示す情報(以下、「更新有無情報」と称する。)を含む。また、部品合成定義111は、対象モデルや対象モデル以外の他のモデルの部品合成定義も含む。
Among these, the component composition definition 111 is the component composition definition described above, and includes a description of the formal specifications of an orchestrator that realizes business by coordinating services. The component synthesis definition 111 also specifies that software components that are independently developed for each service of a model that is a target of model checking (hereinafter referred to as "target model") have been updated after the previous model check. includes information indicating whether or not there is an update (hereinafter referred to as "update information"). The component composition definition 111 also includes component composition definitions of the target model and other models other than the target model.

合成後検証性質112は、前述した合成後検証性質であり、オーケストレータ固有の検証性質の記述を含む。 The post-synthesis verification property 112 is the post-synthesis verification property described above, and includes a description of the verification property specific to the orchestrator.

ソフトウェア部品群113は、対象モデルや対象モデル以外のモデルのサービスを実現するソフトウェア部品に関する情報(ソフトウェアの実体(コード等)、ソフトウェア部品の更新前後におけるサービスの形式仕様等)を含む。ソフトウェア部品群113におけるソフトウェア部品に関する情報は、ソフトウェア部品の識別子(以下、「部品ID」と称する。)により識別されて管理されている。 The software component group 113 includes information regarding software components that realize services of the target model and models other than the target model (software entities (codes, etc.), service format specifications before and after software component updates, etc.). Information regarding software components in the software component group 113 is managed by being identified by a software component identifier (hereinafter referred to as "component ID").

更新あり部品群114は、更新あり部品抽出部135がソフトウェア部品群113から抽出した、前回実施されたモデル検査の後にソフトウェア部品の更新が行われたソフトウェア部品の情報を含む。 The updated parts group 114 includes information about software components that have been extracted from the software parts group 113 by the updated parts extraction unit 135 and are updated after the previous model check.

更新なし部品群115は、更新なし部品抽出部140がソフトウェア部品群113から抽出した、前回実施されたモデル検査の後にソフトウェア部品の更新が行われていないソフトウェア部品の情報を含む。 The unupdated parts group 115 includes information about software parts that have not been updated after the previous model check, which is extracted from the unupdated parts extraction unit 140 from the software parts group 113.

部分仕様抽出基準116は、部分仕様抽出基準生成部145が合成後検証性質112に基づき生成した、更新あり部品群114又は更新なし部品群115から合成済検証用コードの生成に用いる形式仕様(部分仕様)を抽出する際に用いる基準(抽出条件。以下、「部分仕様抽出基準」と称する。)を含む。 The partial specification extraction criterion 116 is a formal specification (partial It includes criteria (extraction conditions; hereinafter referred to as "partial specification extraction criteria") used when extracting specifications).

合成用部分仕様117は、更新あり部品検証要否判定部150又は更新なし部品部分仕様抽出部155によって抽出された、検証用コード生成部160が合成済検証用コード119の生成に用いる部分仕様(以下、「合成用部分仕様」と称する。)を含む。 The synthesis partial specification 117 is a partial specification (partial specification ( (hereinafter referred to as "synthesis partial specifications").

過去抽出部分仕様118は、更新あり部品検証要否判定部150又は更新なし部品部分仕様抽出部155によって過去に抽出された部分仕様(以下、「過去抽出部分仕様」と称する。)を含む。 The past extracted partial specifications 118 include partial specifications (hereinafter referred to as "past extracted partial specifications") extracted in the past by the updated component verification necessity determination section 150 or the unupdated component partial specifications extraction section 155.

合成済検証用コード119は、検証用コード生成部160が、合成用部分仕様117によって生成した合成済検証用コードを含む。 The synthesized verification code 119 includes a synthesized verification code generated by the verification code generation unit 160 based on the synthesis partial specification 117.

検証結果120は、モデル検査実行部165が、合成済検証用コード119が合成後検証性質112を満たす否かをモデル検査により検証した結果に関する情報を含む。 The verification result 120 includes information regarding the result of the model checking execution unit 165 verifying whether the synthesized verification code 119 satisfies the post-synthesis verification property 112 by model checking.

情報取得管理部130は、ユーザインタフェースや通信ネットワーク等を介してモデル検査に必要な各種の情報(部品合成定義111、合成後検証性質112、ソフトウェア部品群113等)を取得し、取得した情報を記憶部110に管理する。 The information acquisition management unit 130 acquires various types of information (component synthesis definition 111, post-synthesis verification properties 112, software component group 113, etc.) necessary for model checking via a user interface, communication network, etc., and uses the acquired information to The information is managed in the storage unit 110.

更新あり部品抽出部135は、前回実施されたモデル検査の後に更新が行われたソフトウェア部品を部品合成定義111の更新有無情報に基づき特定し、特定したソフトウェア部品の情報(形式仕様を含む)をソフトウェア部品群113から抽出する。抽出した情報は、記憶部110が更新あり部品群114として記憶する。 The updated component extraction unit 135 identifies software components that have been updated after the previous model check based on the update presence information of the component synthesis definition 111, and extracts information (including format specifications) of the identified software components. It is extracted from the software component group 113. The extracted information is stored in the storage unit 110 as an updated parts group 114.

更新なし部品抽出部140は、前回実施されたモデル検査の後に更新が行われていないソフトウェア部品を部品合成定義111の更新有無情報に基づき特定し、特定したソフト
ウェア部品の情報(形式仕様を含む)をソフトウェア部品群113から抽出する。抽出した情報は、記憶部110が更新なし部品群115として記憶する。
The unupdated component extraction unit 140 identifies software components that have not been updated since the previous model check based on the update presence information of the component synthesis definition 111, and extracts information (including format specifications) on the identified software components. is extracted from the software component group 113. The extracted information is stored in the storage unit 110 as an unupdated parts group 115.

部分仕様抽出基準生成部145は、合成後検証性質112に基づき部分仕様抽出基準を生成する。生成した部分仕様抽出基準は、記憶部110が部分仕様抽出基準116として記憶する。 The partial specification extraction criterion generation unit 145 generates partial specification extraction criteria based on the post-synthesis verification property 112. The generated partial specification extraction criteria are stored in the storage unit 110 as partial specification extraction criteria 116.

更新あり部品検証要否判定部150は、部分仕様抽出基準116に基づき、合成済検証用コードの生成に用いる形式仕様を部分仕様として更新あり部品群114から抽出する。抽出した部分仕様は、記憶部110が、合成用部分仕様117や過去抽出部分仕様118として記憶する。 The updated component verification necessity determination unit 150 extracts the formal specification used for generating the synthesized verification code from the updated component group 114 as a partial specification based on the partial specification extraction criteria 116 . The extracted partial specifications are stored in the storage unit 110 as a synthesis partial specification 117 and a past extracted partial specification 118.

更新なし部品部分仕様抽出部155は、部分仕様抽出基準116に基づき、合成済検証用コードの生成に用いる形式仕様を部分仕様として更新なし部品群115から抽出する。抽出した部分仕様は、記憶部110が、合成用部分仕様117や過去抽出部分仕様118として記憶する。 The unupdated component partial specification extraction unit 155 extracts the formal specification used for generating the synthesized verification code from the unupdated component group 115 as a partial specification based on the partial specification extraction criteria 116 . The extracted partial specifications are stored in the storage unit 110 as a synthesis partial specification 117 and a past extracted partial specification 118.

検証用コード生成部160は、部品合成定義111を参照し、合成用部分仕様117に基づき合成済検証用コードを生成する。生成した合成済検証用コードは、記憶部110が、合成済検証用コード119として記憶する。 The verification code generation unit 160 refers to the component synthesis definition 111 and generates a synthesized verification code based on the synthesis partial specification 117. The generated synthesized verification code is stored in the storage unit 110 as a synthesized verification code 119.

モデル検査実行部165は、合成済検証用コード119をモデル検査ツールに与えることにより対象モデルのモデル検査を行い、結果を検証結果120として出力する。 The model checking execution unit 165 performs a model check on the target model by providing the synthesized verification code 119 to the model checking tool, and outputs the result as a verification result 120.

他モデル検査実行要否判定部170は、更新あり部品検証要否判定部150が更新要と判定した部分仕様のソフトウェア部品について更新前の部分仕様を取得し、取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれているか否かを判定する。判定の結果、取得した更新前の部分仕様が他のモデルの部品合成定義に含まれている場合、他モデル検査実行要否判定部170は、当該他のモデルについて再検証が必要であることを示す情報を出力する。 The other model test execution necessity determination unit 170 acquires the partial specification before update for the software component of the partial specification that the updated component verification necessity determination unit 150 has determined needs to be updated, and targets the acquired partial specification before update. Determine whether it is included in the component composition definition of a model other than the model. As a result of the determination, if the obtained partial specification before update is included in the component composition definition of another model, the other model checking execution necessity determination unit 170 determines that re-verification is necessary for the other model. Outputs the information shown.

図7は、以上の構成からなるモデル検査装置100が対象モデルの検査に際して行う処理(以下、「モデル検査処理S700」と称する。)を説明するフローチャートである。以下、同図とともにモデル検査処理S700について説明する。尚、モデル検査処理S700の開始時において、記憶部110は、モデル検査処理S700の実行に必要な情報(部品合成定義111、合成後検証性質122、ソフトウェア部品群113等)を記憶しているものとする。 FIG. 7 is a flowchart illustrating a process (hereinafter referred to as "model testing process S700") performed by the model testing apparatus 100 having the above configuration when testing a target model. The model checking process S700 will be described below with reference to the same figure. Note that at the start of the model checking process S700, the storage unit 110 stores information necessary for executing the model checking process S700 (component synthesis definition 111, post-synthesis verification property 122, software component group 113, etc.). shall be.

同図に示すように、まず、更新あり部品抽出部135が、前回実施されたモデル検査の後に更新が行われたソフトウェア部品を部品合成定義111の更新有無情報に基づき特定し、特定したソフトウェア部品の情報(形式仕様を含む)をソフトウェア部品群113から抽出する。抽出した情報は、記憶部110が更新あり部品群114として記憶する(S711)。 As shown in the figure, first, the updated component extraction unit 135 identifies software components that have been updated after the previous model check based on the update presence information of the component synthesis definition 111, and identifies the identified software components. information (including format specifications) is extracted from the software component group 113. The extracted information is stored in the storage unit 110 as the updated parts group 114 (S711).

続いて、更新なし部品抽出部140が、前回実施されたモデル検査の後に更新が行われていないソフトウェア部品を部品合成定義111の更新有無情報に基づき特定し、特定したソフトウェア部品の情報(形式仕様を含む)をソフトウェア部品群113から抽出する。抽出した情報は、記憶部110が更新なし部品群115として記憶する(S712)。 Subsequently, the unupdated component extraction unit 140 identifies software components that have not been updated since the previous model check based on the update presence/absence information of the component synthesis definition 111, and extracts the information (format specification) of the identified software components. ) are extracted from the software component group 113. The extracted information is stored in the storage unit 110 as the unupdated parts group 115 (S712).

続いて、部分仕様抽出基準生成部145が、合成後検証性質112に基づき部分仕様抽
出基準を生成する。生成した部分仕様抽出基準は、記憶部110が部分仕様抽出基準116として記憶する(S713)。
Subsequently, the partial specification extraction criteria generation unit 145 generates partial specification extraction criteria based on the post-synthesis verification property 112. The generated partial specification extraction criteria are stored in the storage unit 110 as the partial specification extraction criteria 116 (S713).

続いて、更新あり部品検証要否判定部150が、部分仕様抽出基準116に基づき、合成済検証用コードの生成に用いる部分仕様を更新あり部品群114から抽出する処理(以下、「更新あり部品の検証要否判定処理S714」と称する。)を行う。 Next, the updated component verification necessity determination unit 150 extracts the partial specifications used for generating the synthesized verification code from the updated parts group 114 based on the partial specification extraction criteria 116 (hereinafter referred to as "updated parts"). (referred to as "Verification necessity determination process S714").

図8は、更新あり部品の検証要否判定処理S714の詳細を説明するフローチャートである。以下、同図とともに更新あり部品の検証要否判定処理S714について説明する。 FIG. 8 is a flowchart illustrating the details of the updated component verification necessity determination process S714. The verification necessity determination process S714 for updated components will be described below with reference to FIG.

まず、更新あり部品検証要否判定部150は、更新あり部品群114からソフトウェア部品を一つ選択する(S811)。 First, the updated component verification necessity determining unit 150 selects one software component from the updated component group 114 (S811).

続いて、更新あり部品検証要否判定部150は、選択したソフトウェア部品から部分仕様抽出基準116に基づき部分仕様を抽出する(S812)。 Subsequently, the updated component verification necessity determining unit 150 extracts partial specifications from the selected software component based on the partial specification extraction criteria 116 (S812).

続いて、更新あり部品検証要否判定部150は、選択中のソフトウェア部品と、部品ID(後述の部品ID1181)及び部分仕様抽出基準(後述の部分仕様抽出基準1182)が一致するデータが過去抽出部分仕様118に存在するか否かを判定する(S813)。 Next, the updated component verification necessity determination unit 150 extracts past data that matches the selected software component with the component ID (component ID 1181 described later) and partial specification extraction criteria (partial specification extraction criterion 1182 described later). It is determined whether it exists in the partial specification 118 (S813).

図9に過去抽出部分仕様118の一例を示す。同図に示すように、例示する過去抽出部分仕様118は、部品ID1181、部分仕様抽出基準1182、及び部分仕様1183の各項目を有する一つ以上のレコードで構成される。過去抽出部分仕様118の一つのレコードは一つの部分仕様に対応している。上記項目のうち、部品ID1181には、ソフトウェア部品の識別子(以下、「部品ID」と称する。)が格納される。部分仕様抽出基準1182には、当該部分仕様の抽出に用いた部分仕様抽出基準が格納される。部分仕様1183には、当該部分仕様の内容が格納される。 FIG. 9 shows an example of the past extraction partial specification 118. As shown in the figure, the illustrated past extracted partial specification 118 is composed of one or more records having each item of a part ID 1181, a partial specification extraction criterion 1182, and a partial specification 1183. One record of the past extracted partial specifications 118 corresponds to one partial specification. Among the above items, the component ID 1181 stores a software component identifier (hereinafter referred to as "component ID"). The partial specification extraction standard 1182 stores the partial specification extraction standard used to extract the partial specification. The partial specification 1183 stores the contents of the partial specification.

図8に戻り、選択中のソフトウェア部品と、部品ID及び部分仕様抽出基準が一致するデータが過去抽出部分仕様118に存在する場合(S813:YES)、処理はS814に進む。一方、選択中のソフトウェア部品と、部品ID及び部分仕様抽出基準が一致するデータが過去抽出部分仕様118に存在しない場合(S813:NO)、処理はS816に進む。 Returning to FIG. 8, if data whose component ID and partial specification extraction criteria match the selected software component exists in the past extracted partial specifications 118 (S813: YES), the process advances to S814. On the other hand, if there is no data in the past extracted partial specifications 118 whose component ID and partial specification extraction criteria match those of the currently selected software component (S813: NO), the process proceeds to S816.

S814では、更新あり部品検証要否判定部150は、S812で抽出した部分仕様と、S813で一致した過去抽出部分仕様118の部分仕様との間に差分があるか否かを判定する。差分がない場合(S814:NO)、処理はS815に進む。一方、差分がある場合(S814:YES)、処理はS816に進む。 In S814, the updated component verification necessity determining unit 150 determines whether there is a difference between the partial specification extracted in S812 and the partial specification of the past extracted partial specification 118 that matched in S813. If there is no difference (S814: NO), the process advances to S815. On the other hand, if there is a difference (S814: YES), the process advances to S816.

S815では、更新あり部品検証要否判定部150は、S812で抽出した部分仕様を、「検証不要」として合成用部分仕様117に格納する。その後、処理はS817に進む。 In S815, the update component verification necessity determination unit 150 stores the partial specification extracted in S812 in the synthesis partial specification 117 as "no verification required." After that, the process advances to S817.

図10に合成用部分仕様117の一例を示す。同図に示すように、例示する合成用部分仕様117は、部品合成定義1171、部分仕様1172、及び検証要否1173の各項目を有する一つ以上のレコードで構成される。合成用部分仕様117の一つのレコードは一つの部分仕様に対応している。 FIG. 10 shows an example of the synthesis partial specification 117. As shown in the figure, the illustrated partial specification for synthesis 117 is composed of one or more records having each item of a component synthesis definition 1171, a partial specification 1172, and a verification necessity 1173. One record of the synthesis partial specification 117 corresponds to one partial specification.

上記項目のうち、部品合成定義1171には、部品合成定義の識別子(サービスの名称
等)が格納される。部分仕様1172には部分仕様が格納される。検証要否1173には、当該部分仕様の検証要否を示す情報(「検証要」又は「検証不要」)が格納される。
Among the above items, the component composition definition 1171 stores an identifier (service name, etc.) of the component composition definition. A partial specification is stored in the partial specification 1172. The verification necessity 1173 stores information indicating whether verification of the partial specification is necessary (“verification required” or “verification not required”).

図8に戻り、S816では、更新あり部品検証要否判定部150は、S812で抽出した部分仕様を「検証要」として合成用部分仕様117に格納する。また、更新あり部品検証要否判定部150は、当該部分仕様を過去抽出部分仕様118に新たに格納する。その後、処理はS817に進む。 Returning to FIG. 8, in S816, the updated component verification necessity determining unit 150 stores the partial specification extracted in S812 in the synthesis partial specification 117 as “verification required”. In addition, the updated component verification necessity determining unit 150 newly stores the partial specification in the past extracted partial specification 118. After that, the process advances to S817.

S817では、更新あり部品検証要否判定部150は、S811で更新あり部品群114のソフトウェア部品を全て選択済か否かを判定する。更新あり部品検証要否判定部150が全てのソフトウェア部品を選択済でないと判定した場合(S817:NO)、処理はS811に戻る。一方、更新あり部品検証要否判定部150が全てのソフトウェア部品を選択済であると判定した場合(S817:YES)、更新あり部品の検証要否判定処理S714は終了して処理は図7のS715に進む。 In S817, the updated component verification necessity determination unit 150 determines whether all software components of the updated component group 114 have been selected in S811. If the updated component verification necessity determining unit 150 determines that all software components have not been selected (S817: NO), the process returns to S811. On the other hand, if the update component verification necessity determination unit 150 determines that all software components have been selected (S817: YES), the update component verification necessity determination process S714 ends and the process of FIG. Proceed to S715.

図7に戻り、S715では、モデル検査装置100は、合成用部分仕様117の検証要否1173に「検証要」が格納されているレコードが存在するか否かを判定する。合成用部分仕様117の検証要否1173に「検証要」が格納されているレコードが存在する場合(S715:YES)、モデル検査装置100は、更新なし部品群115から部分仕様を抽出する処理(以下、「更新なし部品の部分仕様抽出処理S716」と称する。)を実行する。一方、合成用部分仕様117の検証要否1173に「検証要」が格納されているレコードが存在しない場合(S715:NO)、モデル検査処理S700は終了する。 Returning to FIG. 7, in S715, the model checking device 100 determines whether there is a record in which “verification required” is stored in the verification necessity 1173 of the synthesis partial specification 117. If there is a record in which “verification required” is stored in the verification necessity 1173 of the synthesis partial specification 117 (S715: YES), the model checking device 100 performs a process ( Hereinafter, it will be referred to as "partial specification extraction process S716 for non-updated parts"). On the other hand, if there is no record in which “verification required” is stored in the verification necessity 1173 of the synthesis partial specification 117 (S715: NO), the model checking process S700 ends.

図11は、更新なし部品の部分仕様抽出処理S716の詳細を説明するフローチャートである。以下、同図とともに更新なし部品の部分仕様抽出処理S716について説明する。 FIG. 11 is a flowchart illustrating details of the partial specification extraction process S716 for parts that will not be updated. Hereinafter, the partial specification extraction process S716 for parts that will not be updated will be explained with reference to the same figure.

まず、更新なし部品部分仕様抽出部155は、更新なし部品群115からソフトウェア部品を一つ選択する(S1111)。 First, the non-updated component partial specification extraction unit 155 selects one software component from the non-updated component group 115 (S1111).

続いて、更新なし部品部分仕様抽出部155は、選択中のソフトウェア部品と、部品ID及び部分仕様抽出基準が一致するデータが過去抽出部分仕様118に存在するか否かを判定する(S1112)。更新なし部品部分仕様抽出部155が、選択中のソフトウェア部品と部品ID及び部分仕様抽出基準が一致するデータが過去抽出部分仕様118に存在すると判定した場合(S1112:YES)、処理はS1113に進む。一方、更新なし部品部分仕様抽出部155が、選択中のソフトウェア部品と部品ID及び部分仕様抽出基準116が一致するデータが過去抽出部分仕様118に存在しないと判定した場合(S1112:NO)、処理はS1114に進む。 Subsequently, the non-updated component partial specification extraction unit 155 determines whether data whose component ID and partial specification extraction criteria match those of the currently selected software component exists in the past extracted partial specifications 118 (S1112). If the non-updated component partial specification extraction unit 155 determines that data whose component ID and partial specification extraction criteria match those of the currently selected software component exists in the past extracted partial specifications 118 (S1112: YES), the process proceeds to S1113. . On the other hand, if the non-updated component partial specification extraction unit 155 determines that there is no data in the past extracted partial specifications 118 that matches the currently selected software component and the component ID and partial specification extraction criteria 116 (S1112: NO), process The process advances to S1114.

S1113では、更新なし部品部分仕様抽出部155は、S1112で一致した過去抽出部分仕様118のデータの部分仕様を、「検証不要」として合成用部分仕様117に格納する。その後、処理はS1116に進む。 In S1113, the non-updated component partial specification extraction unit 155 stores the partial specification of the data of the past extracted partial specification 118 that matched in S1112 in the synthesis partial specification 117 as "no verification required." After that, the process advances to S1116.

S1114では、更新なし部品部分仕様抽出部155は、S1111で選択したソフトウェア部品から部分仕様抽出基準116に基づき部分仕様を抽出する。 In S1114, the unupdated component partial specification extraction unit 155 extracts partial specifications from the software component selected in S1111 based on the partial specification extraction criteria 116.

続いて、更新なし部品部分仕様抽出部155は、S1114で抽出した選択中のソフトウェア部品の部分仕様を、「検証要」として合成用部分仕様117に格納する。また、更新なし部品部分仕様抽出部155は、当該部分仕様を過去抽出部分仕様118に新たに格納する(S1115)。その後、処理はS1116に進む。 Subsequently, the unupdated component partial specification extraction unit 155 stores the partial specification of the selected software component extracted in S1114 in the synthesis partial specification 117 as "Verification Required". Further, the non-updated component partial specification extraction unit 155 newly stores the partial specification in the past extracted partial specification 118 (S1115). After that, the process advances to S1116.

S1116では、更新なし部品部分仕様抽出部155は、S1111で更新なし部品群115の全てのソフトウェア部品を選択済か否かを判定する。更新あり部品検証要否判定部150が全てのソフトウェア部品を選択済でないと判定した場合(S1116:NO)、処理はS1111に戻る。一方、更新あり部品検証要否判定部150が全てのソフトウェア部品を選択済であると判定した場合(S1116:YES)、更新なし部品の部分仕様抽出処理S716は終了し、図7のS717の処理に進む。 In S1116, the non-updated component partial specification extraction unit 155 determines whether all software components of the non-updated component group 115 have been selected in S1111. If the updated component verification necessity determining unit 150 determines that not all software components have been selected (S1116: NO), the process returns to S1111. On the other hand, if the update component verification necessity determination unit 150 determines that all software components have been selected (S1116: YES), the partial specification extraction process S716 for the non-update component ends, and the process in S717 in FIG. Proceed to.

図7に戻り、続いて、検証用コード生成部160が、部品合成定義111を参照して合成用部分仕様117に基づき合成済検証用コード119を生成する(S717)。検証用コード生成部160は、合成用部分仕様117に格納されている全ての部分仕様がモデル検査ツールによるモデル検査の対象となるように合成済検証用コード119を生成する。即ち、検証用コード生成部160は、合成用部分仕様117の検証要否1173に「検証要」が格納されている部分仕様が一つでも存在すれば(S715:YES)、合成用部分仕様117に格納されている全ての(検証要否1173の内容に拘わらず全ての)部分仕様がモデル検査ツールによるモデル検査の対象となるように、合成済検証用コード119を生成する(S717)。 Returning to FIG. 7, next, the verification code generation unit 160 generates the synthesized verification code 119 based on the synthesis partial specification 117 with reference to the component synthesis definition 111 (S717). The verification code generation unit 160 generates the synthesized verification code 119 so that all the partial specifications stored in the synthesis partial specification 117 are subject to model checking by the model checking tool. That is, if there is even one partial specification in which “verification required” is stored in the verification necessity 1173 of the partial specification for synthesis 117 (S715: YES), the verification code generation unit 160 generates the partial specification for synthesis 117. The synthesized verification code 119 is generated so that all the partial specifications (regardless of the contents of the verification necessity 1173) stored in the database are subjected to model checking by the model checking tool (S717).

続いて、モデル検査実行部165が、合成済検証用コード119をモデル検査ツールに入力することにより対象モデルのモデル検査を行い、結果を検証結果120として出力する(S718)。尚、検証結果120の内容は、例えば、ユーザインタフェースを介してユーザに提供される。 Next, the model checking execution unit 165 performs a model check on the target model by inputting the synthesized verification code 119 into the model checking tool, and outputs the result as the verification result 120 (S718). Note that the contents of the verification result 120 are provided to the user via, for example, a user interface.

続いて、他モデル検査実行要否判定部170が、他のモデルについて再検証が必要か否かを判定する処理(以下、「他モデル検査実行要否判定処理S719」と称する。)を実行する。 Subsequently, the other model test execution necessity determination unit 170 executes a process (hereinafter referred to as "other model test execution necessity determination process S719") for determining whether re-verification is necessary for other models. .

図12は、他モデル検査実行要否判定処理S719の詳細を説明するフローチャートである。また、図13は、他モデル検査実行要否判定処理S719の一例を示す図である。以下、これらの図とともに他モデル検査実行要否判定処理S719について説明する。 FIG. 12 is a flowchart illustrating details of the other model test execution necessity determination process S719. Further, FIG. 13 is a diagram illustrating an example of the other model test execution necessity determination process S719. The other model test execution necessity determination process S719 will be described below with reference to these figures.

まず、他モデル検査実行要否判定部170は、合成用部分仕様117から、更新あり部品検証要否判定部150が「検証要」と判定した部分仕様(検証要否1173に「検証要」が格納されている部分仕様)を一つ選択する(図12のS1211)。 First, the other model test execution necessity determination unit 170 extracts from the synthesis partial specification 117 the partial specification that the updated component verification necessity determination unit 150 has determined as “verification required” (the verification necessity 1173 indicates “verification required”). One of the stored partial specifications is selected (S1211 in FIG. 12).

続いて、他モデル検査実行要否判定部170は、選択中の部分仕様のソフトウェア部品について、過去抽出部分仕様118から更新前の部分仕様を取得する(図12のS1212、図13のS1311)。 Next, the other model test execution necessity determination unit 170 obtains the partial specification before update from the past extracted partial specification 118 for the software component of the currently selected partial specification (S1212 in FIG. 12, S1311 in FIG. 13).

続いて、他モデル検査実行要否判定部170は、部品合成定義111を参照し、取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれているか否かを判定する(図12のS1213、図13のS1312)。取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれていない場合(図12のS1213:NO)、処理はS1215に進む。一方、取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれている場合(図12のS1213:YES)、他モデル検査実行要否判定部170は、当該他のモデルについて再検証が必要であることを示す情報を出力(例えば、ユーザインタフェースを介してユーザに提示)する(図12のS1214、図13のS1313)。 Next, the other model inspection execution necessity determining unit 170 refers to the component composition definition 111 and determines whether the obtained partial specification before update is included in the component composition definition of a model other than the target model. (S1213 in FIG. 12, S1312 in FIG. 13). If the acquired partial specification before update is not included in the component composition definition of a model other than the target model (S1213: NO in FIG. 12), the process advances to S1215. On the other hand, if the acquired partial specification before update is included in the component composition definition of a model other than the target model (S1213: YES in FIG. 12), the other model check execution necessity determination unit 170 Information indicating that the model requires re-verification is output (for example, presented to the user via the user interface) (S1214 in FIG. 12, S1313 in FIG. 13).

S1215では、他モデル検査実行要否判定部170は、検証要が設定されている部分
仕様を合成用部分仕様117から全て選択済か否かを判定する。他モデル検査実行要否判定部170が、合成用部分仕様117から未選択の部分仕様があると判定した場合(S1215:NO)、処理はS1211に戻る。一方、他モデル検査実行要否判定部170が、検証要が設定されている部分仕様を合成用部分仕様117から全て選択済であると判定した場合(S1215:YES)、処理は図7に戻り、モデル検査処理S700は終了する。
In S1215, the other model checking execution necessity determining unit 170 determines whether all partial specifications for which verification is required have been selected from the synthesis partial specifications 117. If the other model test execution necessity determining unit 170 determines that there is an unselected partial specification from the synthesis partial specifications 117 (S1215: NO), the process returns to S1211. On the other hand, if the other model checking execution necessity determining unit 170 determines that all partial specifications for which verification is required have been selected from the synthesis partial specifications 117 (S1215: YES), the process returns to FIG. , the model checking process S700 ends.

以上に説明したように、本実施形態のモデル検査装置100は、合成後検証性質のうち、形式検証に特有な検証性質の情報(論理式の変数やイベント)に着目して部分仕様抽出基準を生成し、各サービスの形式仕様から、部分仕様抽出基準に基づき合成後の検証に用いる形式仕様である部分仕様を抽出し、抽出した部分仕様を合成して合成済検証用コードを生成する。そのため、合成済検証用コードのサイズを低減して探索空間の肥大化を抑制することができる。 As explained above, the model checking device 100 of this embodiment focuses on the information on the verification properties (variables and events of logical formulas) specific to formal verification among the post-synthesis verification properties, and determines the partial specification extraction criteria. A partial specification, which is a formal specification used for verification after synthesis, is extracted from the formal specification of each service based on the partial specification extraction criteria, and the extracted partial specifications are synthesized to generate a synthesized verification code. Therefore, it is possible to reduce the size of the synthesized verification code and prevent the search space from becoming enlarged.

また、モデル検査装置100は、サービスが更新された際、更新されたサービスの部分仕様を再抽出し、再抽出した部分仕様を過去に抽出した部分仕様と比較し、両者に差分がある場合にのみ、合成済検証用コードの生成や検証を行う。具体的には、モデル検査装置100は、更新の対象になったサービス(更新あり部品)の更新後の部分仕様と一致する部分仕様が過去抽出部分仕様に存在しない場合(図8のS816)、もしくは、更新の対象になっていないサービス(更新なし部品)の部分仕様が過去抽出部分仕様に存在しない場合(図11のS1115)、即ち、合成用部分仕様に「検証要」とされる部分仕様が一つでも存在する場合は(S715:YES)、合成済検証用コードを生成し(S717)、部品合成定義の検証を行う(S718)。一方、モデル検査装置100は、更新の対象になったサービス(更新あり部品)の更新後の部分仕様と一致する部分仕様が過去抽出部分仕様に存在し(図8のS815)、かつ、更新の対象になっていないソフトウェア部品(更新なし部品)の部分仕様が過去抽出部分仕様に存在する場合(図11のS1113)、即ち、合成用部分仕様に「検証要」とされる部分仕様が一つも存在しない場合は(S715:NO)、合成済検証用コードを生成せず、部品合成定義の検証も行わない。このため、サービスの更新時において、合成用部分仕様に「検証要」とされる部分仕様が一つも存在しない場合には、不必要に再合成や再検証が行われてしまうのを抑制することができる。 Furthermore, when a service is updated, the model checking device 100 re-extracts the partial specifications of the updated service, compares the re-extracted partial specifications with previously extracted partial specifications, and determines if there is a difference between the two. Only generates and verifies synthesized verification code. Specifically, if the partial specification that matches the updated partial specification of the updated service (updated part) does not exist in the past extracted partial specifications (S816 in FIG. 8), the model checking device 100 Alternatively, if the partial specification of a service that is not subject to update (part without update) does not exist in the past extracted partial specifications (S1115 in FIG. 11), that is, the partial specification is marked as "verification required" in the synthesis partial specification. If even one exists (S715: YES), a synthesized verification code is generated (S717), and the component synthesis definition is verified (S718). On the other hand, the model checking device 100 determines that there is a partial specification in the past extracted partial specifications that matches the updated partial specification of the service targeted for update (updated part) (S815 in FIG. 8), and If there is a partial specification of a software component that is not the target (part without update) in the past extracted partial specifications (S1113 in Figure 11), that is, there is no partial specification that is "required verification" in the partial specification for synthesis. If it does not exist (S715: NO), the synthesized verification code is not generated and the component synthesis definition is not verified. Therefore, when updating a service, if there is no partial specification that is "required verification" in the synthesis partial specifications, it is possible to prevent unnecessary resynthesis and reverification. I can do it.

また、モデル検査装置100は、サービス更新時の部分仕様を再抽出した後、更新前後の部分仕様に差分がある場合、即ち、合成用部分仕様に「検証要」とされる部分仕様が一つでも存在する場合は(S715:YES)、更新前の部分仕様を参照している他の部品合成定義に対して、部分仕様が更新されたこと及び当該部分仕様について再検証が必要なことを通知する(S719)ので、検証漏れを確実に防ぐことができる。 In addition, after re-extracting the partial specifications at the time of service update, the model checking device 100 detects that if there is a difference between the partial specifications before and after the update, that is, there is one partial specification that is deemed to be “verification required” in the synthesis partial specifications. However, if it exists (S715: YES), other component composition definitions that refer to the partial specification before update will be notified that the partial specification has been updated and that re-verification is required for the partial specification. (S719), it is possible to reliably prevent verification omissions.

このように、本実施形態のモデル検査装置100によれば、複数のサービスの連携により実現される情報処理システムのモデル検査を効率よく行うことができる。 In this way, according to the model checking device 100 of this embodiment, model checking of an information processing system realized by cooperation of a plurality of services can be efficiently performed.

図14は、モデル検査装置100を構成する情報処理装置の構成例を示す。例示する情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備える。尚、例示する情報処理装置10は、その全部又は一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10によって提供される機能の全部又は一部は、例えば、クラウドシステムがAPI(Application Program Interface)等を介
して提供するサービスによって実現してもよい。また、モデル検査装置100は、通信可能に接続された複数の情報処理装置10を用いて構成してもよい。
FIG. 14 shows a configuration example of an information processing device that constitutes the model checking device 100. The illustrated information processing device 10 includes a processor 11 , a main storage device 12 , an auxiliary storage device 13 , an input device 14 , an output device 15 , and a communication device 16 . Note that the illustrated information processing apparatus 10 is based on virtual information provided using virtualization technology, process space separation technology, etc., such as a virtual server provided by a cloud system, in whole or in part. It may also be realized using processing resources. Further, all or part of the functions provided by the information processing device 10 may be realized by, for example, a service provided by a cloud system via an API (Application Program Interface) or the like. Furthermore, the model checking device 100 may be configured using a plurality of information processing devices 10 that are communicably connected.

同図において、プロセッサ11は、例えば、CPU(Central Processing Unit)、M
PU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit
)、AI(Artificial Intelligence)チップ等を用いて構成されている。
In the figure, the processor 11 includes, for example, a CPU (Central Processing Unit), an M
PU (Micro Processing Unit), GPU (Graphics Processing Unit), FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit)
), AI (Artificial Intelligence) chips, etc.

主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read
Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。
The main storage device 12 is a device that stores programs and data, and is, for example, a ROM (Read
RAM (Random Access Memory), nonvolatile memory (NVRAM (Non Volatile RAM)), etc.

補助記憶装置13は、例えば、SSD(Solid State Drive)、ハードディスクドライ
ブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の記録媒体の読取/書込装置、クラウドサーバの記憶領域等である。補助記憶装置13には、記録媒体の読取装置や通信装置16を介してプログラムやデータを読み込むことができる。補助記憶装置13に格納(記憶)されているプログラムやデータは主記憶装置12に随時読み込まれる。
The auxiliary storage device 13 is, for example, an SSD (Solid State Drive), a hard disk drive, an optical storage device (CD (Compact Disc), DVD (Digital Versatile Disc), etc.), a storage system, an IC card, an SD card, or an optical recording device. These are a reading/writing device for a recording medium such as a medium, a storage area of a cloud server, etc. Programs and data can be read into the auxiliary storage device 13 via a recording medium reading device or a communication device 16. Programs and data stored in the auxiliary storage device 13 are read into the main storage device 12 at any time.

入力装置14は、外部からの入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、ペン入力方式のタブレット、音声入力装置等である。 The input device 14 is an interface that accepts input from the outside, and includes, for example, a keyboard, a mouse, a touch panel, a card reader, a pen-input tablet, a voice input device, and the like.

出力装置15は、処理経過や処理結果等の各種情報を出力するインタフェースである。出力装置15は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。尚、例えば、情報処理装置10が通信装置16を介して他の装置との間で情報の入力や出力を行う構成としてもよい。 The output device 15 is an interface that outputs various information such as processing progress and processing results. The output device 15 is, for example, a display device that visualizes the above various information (liquid crystal monitor, LCD (Liquid Crystal Display), graphic card, etc.), a device that converts the above various information into audio (sound output device (speaker, etc.)) , a device (printing device, etc.) that converts the above various information into characters. Note that, for example, a configuration may be adopted in which the information processing device 10 inputs and outputs information to and from other devices via the communication device 16.

入力装置14及び出力装置15は、ユーザとの間で情報の受け付けや情報の提示を行うユーザインタフェースを構成する。 The input device 14 and the output device 15 constitute a user interface that receives information from and presents information to the user.

通信装置16は、他の装置との間の通信を実現する装置である。通信装置16は、通信ネットワーク等の通信媒体を介して他の装置との間の通信を実現する、有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USBモジュール等である。 The communication device 16 is a device that realizes communication with other devices. The communication device 16 is a wired or wireless communication interface that realizes communication with other devices via a communication medium such as a communication network, and includes, for example, an NIC (Network Interface Card), a wireless communication module, Such as a USB module.

情報処理装置10には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)(リレーショナルデータベース、NoSQL等)、KVS(Key-Value Store)等が導入されていてもよい。 For example, an operating system, a file system, a DBMS (DataBase Management System) (relational database, NoSQL, etc.), a KVS (Key-Value Store), etc. may be installed in the information processing device 10.

モデル検査装置100が備える各機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、モデル検査装置100を構成するハードウェア(FPGA、ASIC、AIチップ等)によって実現される。モデル検査装置100は、前述した各種の情報(データ)を、例えば、データベースのテーブルやファイルシステムが管理するファイルとして記憶する。 Each function provided in the model checking device 100 is executed by the processor 11 reading and executing a program stored in the main storage device 12, or by the hardware (FPGA, ASIC, AI chip, etc.) that constitutes the model checking device 100. etc.). The model checking device 100 stores the various types of information (data) described above, for example, as tables in a database or files managed by a file system.

以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実
施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
Although one embodiment of the present invention has been described above, it goes without saying that the present invention is not limited to the above-described embodiment and can be modified in various ways without departing from the gist thereof. For example, the above embodiments have been described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described. Furthermore, it is possible to add, delete, or replace some of the configurations of the above embodiments with other configurations.

例えば、図7に示したモデル検査処理S700の各ステップにおいて抽出もしくは生成される情報(モデルの構成、サービスの形式仕様、部品合成定義、合成後検証性質、ソフトウェア部品群、更新あり部品群、更新なし部品群、部分仕様抽出基準、合成用部分仕様、過去抽出部分仕様、合成済検証用コード、検証結果等)をユーザインタフェースに提示し、ユーザが視覚的にモデル検査処理S700の過程を把握できるようにしてもよい。また、各ステップにおいて、ユーザインタフェースを介して上記の各種情報の編集をユーザから受け付けるようにしてもよい。 For example, the information extracted or generated in each step of the model checking process S700 shown in FIG. parts group, partial specification extraction criteria, partial specifications for synthesis, past extracted partial specifications, synthesized verification code, verification results, etc.) are presented on the user interface, allowing the user to visually understand the process of model checking processing S700. You can do it like this. Further, in each step, editing of the above various information may be accepted from the user via the user interface.

また、上記の各構成、機能部、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、I
Cカード、SDカード、DVD等の記録媒体に置くことができる。
Further, each of the above-mentioned configurations, functional units, processing units, processing means, etc. may be partially or entirely realized by hardware, for example, by designing an integrated circuit. Furthermore, each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function. Information such as programs, tables, files, etc. that realize each function is stored in memory, hard disks, storage devices such as SSDs (Solid State Drives), and I/O.
It can be placed on a recording medium such as a C card, an SD card, or a DVD.

また、以上に説明した各情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。 Furthermore, the arrangement of the various functional units, various processing units, and various databases of each information processing device described above is only an example. The layout of the various functional units, the various processing units, and the various databases can be changed to an optimal layout from the viewpoint of the performance, processing efficiency, communication efficiency, etc. of the hardware and software included in these devices.

また、前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。 Furthermore, the configuration of the database (schema, etc.) that stores the various data described above can be flexibly changed from the viewpoints of efficient resource utilization, improvement in processing efficiency, improvement in access efficiency, improvement in search efficiency, etc.

100 モデル検査装置、110 記憶部、111 部品合成定義、112 合成後検証性質、113 ソフトウェア部品群、114 更新あり部品群、115 更新なし部品群、116 部分仕様抽出基準、117 合成用部分仕様、118 過去抽出部分仕様、119 合成済検証用コード、120 検証結果、130 情報取得管理部、135 更新あり部品抽出部、140 更新なし部品抽出部、145 部分仕様抽出基準生成部、150 更新あり部品検証要否判定部、155 更新なし部品部分仕様抽出部、160 検証用コード生成部、165 モデル検査実行部、170 他モデル検査実行要否判定部 100 Model checking device, 110 Storage unit, 111 Parts synthesis definition, 112 Post-synthesis verification properties, 113 Software parts group, 114 Parts group with updates, 115 Parts group without updates, 116 Partial specification extraction criteria, 117 Partial specifications for synthesis, 118 Past extracted partial specifications, 119 Synthesized verification code, 120 Verification results, 130 Information acquisition management section, 135 Updated parts extraction section, 140 No-updated parts extraction section, 145 Partial specification extraction standard generation section, 150 Updated parts verification required Rejection determination unit, 155 Unupdated component partial specification extraction unit, 160 Verification code generation unit, 165 Model check execution unit, 170 Other model check execution necessity determination unit

Claims (10)

複数のサービスの連携により実現される情報処理システムについてモデル検査を行うモデル検査装置であって、
プロセッサ及び記憶装置を有する情報処理装置を用いて構成され、
前記サービスを連携させるオーケストレータの仕様を所定の記述形式で記述した部品合成定義と、
前記オーケストレータの仕様に対する要求を所定の記述形式で記述した合成後検証性質と、
前記複数のサービスの夫々の仕様を所定の記述形式で記述した形式仕様と、
を記憶し、
前記合成後検証性質に基づき、前記オーケストレータの仕様の検証に用いる前記サービスの形式仕様である部分仕様を抽出するための基準となる情報である部分仕様抽出基準を生成し、
前記部分仕様抽出基準に基づき、前記サービスの前記形式仕様から、前記部品合成定義の検証に用いる前記サービスの前記部分仕様を抽出し、
抽出した前記部分仕様に基づき前記部品合成定義を検証するためのコードである検証用コードを生成し、
前記検証用コードをモデル検査ツールに入力することにより前記部品合成定義を検証する、
モデル検査装置。
A model checking device that performs model checking on an information processing system realized by cooperation of multiple services,
Constructed using an information processing device having a processor and a storage device,
a component composition definition that describes the specifications of an orchestrator that coordinates the services in a predetermined description format;
post-synthesis verification properties that describe requirements for the specifications of the orchestrator in a predetermined description format;
a format specification that describes the specifications of each of the plurality of services in a predetermined description format;
remember,
Based on the post-synthesis verification property, generate partial specification extraction criteria that is information serving as a reference for extracting a partial specification that is a formal specification of the service used to verify the specification of the orchestrator;
extracting the partial specification of the service used for verification of the component composition definition from the formal specification of the service based on the partial specification extraction criteria;
Generating a verification code that is a code for verifying the component composition definition based on the extracted partial specification,
verifying the component composition definition by inputting the verification code into a model checking tool;
Model checking equipment.
請求項1に記載のモデル検査装置であって、
前記部分仕様抽出基準を、前記合成後検証性質において論理の記述に用いられている変数又はイベントに基づき生成する、
モデル検査装置。
The model checking device according to claim 1,
generating the partial specification extraction criteria based on variables or events used in the description of logic in the post-synthesis verification property;
Model checking equipment.
請求項1に記載のモデル検査装置であって、
前記部分仕様抽出基準に基づき前記サービスの前記形式仕様から過去に抽出した前記部分仕様を過去抽出部分仕様として記憶し、
前記サービスが更新された場合に、前記部分仕様抽出基準に基づき、前記更新の対象となった前記サービスの更新後の前記部分仕様と、前記更新の対象となっていない前記サービスの前記部分仕様を抽出し、
前記更新の対象になった前記サービスの更新後の前記部分仕様と一致する前記部分仕様が前記過去抽出部分仕様に存在しない場合、もしくは、前記更新の対象になっていない前記サービスの前記部分仕様が前記過去抽出部分仕様に存在しない場合は、前記検証用コードを生成して前記部品合成定義の前記検証を行い、
前記更新の対象になった前記サービスの更新後の前記部分仕様と一致する前記部分仕様が前記過去抽出部分仕様に存在し、かつ、前記更新の対象になっていない前記サービスの前記部分仕様が前記過去抽出部分仕様に存在する場合は、前記検証用コードを生成せず、前記部品合成定義の前記検証を行わない、
モデル検査装置。
The model checking device according to claim 1,
storing the partial specifications extracted in the past from the formal specifications of the service based on the partial specification extraction criteria as past extracted partial specifications;
When the service is updated, based on the partial specification extraction criteria, the updated partial specifications of the service that was the target of the update and the partial specifications of the service that was not the target of the update are extracted. extract,
If the partial specification that matches the updated partial specification of the service that is the target of the update does not exist in the past extracted partial specifications, or the partial specification of the service that is not the target of the update is If it does not exist in the past extracted partial specifications, generate the verification code and perform the verification of the component synthesis definition;
The partial specification that matches the updated partial specification of the service that is the target of the update is present in the past extracted partial specifications, and the partial specification of the service that is not the target of the update is the If it exists in the past extracted partial specifications, the verification code is not generated and the verification of the component composition definition is not performed;
Model checking equipment.
請求項3に記載のモデル検査装置であって、
前記オーケストレータが異なる複数の前記部品合成定義と、
前記部分仕様抽出基準に基づき複数の前記部品合成定義について抽出した前記部分仕様と、
を記憶し、
前記更新の対象になった前記サービスの更新後の前記部分仕様と一致する前記部分仕様が前記過去抽出部分仕様に存在しない場合、もしくは、前記更新の対象になっていない前
記サービスの前記部分仕様が前記過去抽出部分仕様に存在しない場合に、前記更新前の部分仕様を含む他の前記部品合成定義を抽出し、
抽出した前記他の部品合成定義について再検証が必要であることを示す情報を出力する、
モデル検査装置。
The model checking device according to claim 3,
a plurality of component composition definitions in which the orchestrator is different;
the partial specifications extracted for the plurality of component composition definitions based on the partial specification extraction criteria;
remember,
If the partial specification that matches the updated partial specification of the service that is the target of the update does not exist in the past extracted partial specifications, or the partial specification of the service that is not the target of the update is If it does not exist in the past extracted partial specifications, extracting another component composition definition that includes the partial specifications before the update;
outputting information indicating that re-verification is required for the extracted other component composition definition;
Model checking equipment.
請求項1に記載のモデル検査装置であって、
前記情報処理システムは、マイクロサービスアーキテクチャ(MSA:Micro Service Architecture)により構成され、前記サービスはマイクロサービスである、
モデル検査装置。
The model checking device according to claim 1,
The information processing system is configured by a micro service architecture (MSA), and the service is a micro service.
Model checking equipment.
請求項1に記載のモデル検査装置であって、
検査の対象となるモデル、前記サービスの形式仕様、前記部品合成定義、前記合成後検証性質、前記部分仕様抽出基準、前記部分仕様、前記検証用コード、及び、前記部品合成定義の検証結果の各情報の少なくともいずれかをユーザに提示し、又は前記情報についての編集を受け付けるユーザインタフェースを供える、
モデル検査装置。
The model checking device according to claim 1,
each of the model to be inspected, the formal specification of the service, the component composition definition, the post-synthesis verification property, the partial specification extraction criteria, the partial specification, the verification code, and the verification result of the component composition definition; providing a user interface that presents at least one of the information to the user or accepts editing of the information;
Model checking equipment.
複数のサービスの連携により実現される情報処理システムについてモデル検査を行う、プロセッサ及び記憶装置を有する情報処理装置を用いて構成されるモデル検査装置が、
前記サービスを連携させるオーケストレータの仕様を所定の記述形式で記述した部品合成定義と、
前記オーケストレータの仕様に対する要求を所定の記述形式で記述した合成後検証性質と、
前記複数のサービスの夫々の仕様を所定の記述形式で記述した形式仕様と、
を記憶するステップ、
前記合成後検証性質に基づき、前記オーケストレータの仕様の検証に用いる前記サービスの形式仕様である部分仕様を抽出するための基準となる情報である部分仕様抽出基準を生成するステップ、
前記部分仕様抽出基準に基づき、前記サービスの前記形式仕様から、前記部品合成定義の検証に用いる前記サービスの前記部分仕様を抽出するステップ、
抽出した前記部分仕様に基づき前記部品合成定義を検証するためのコードである検証用コードを生成するステップ、及び、
前記検証用コードをモデル検査ツールに入力することにより前記部品合成定義を検証するステップ、
を実行する、モデル検査方法。
A model checking device configured using an information processing device having a processor and a storage device that performs model checking on an information processing system realized by cooperation of multiple services,
a component composition definition that describes the specifications of an orchestrator that coordinates the services in a predetermined description format;
post-synthesis verification properties that describe requirements for the specifications of the orchestrator in a predetermined description format;
a format specification that describes the specifications of each of the plurality of services in a predetermined description format;
step of memorizing,
Based on the post-synthesis verification property, generating partial specification extraction criteria that is information serving as a reference for extracting a partial specification that is a formal specification of the service used to verify the specification of the orchestrator;
extracting the partial specification of the service to be used for verifying the component composition definition from the formal specification of the service based on the partial specification extraction criteria;
generating a verification code that is a code for verifying the component composition definition based on the extracted partial specification; and
verifying the component composition definition by inputting the verification code into a model verification tool;
A model checking method that performs
請求項7に記載のモデル検査方法であって、
前記モデル検査装置が、前記部分仕様抽出基準を、前記合成後検証性質において論理の記述に用いられている変数又はイベントに基づき生成するステップ、
を更に実行する、モデル検査方法。
8. The model checking method according to claim 7,
a step in which the model checking device generates the partial specification extraction criteria based on variables or events used in the description of logic in the post-synthesis verification property;
A model checking method that further executes .
請求項7に記載のモデル検査方法であって、
前記モデル検査装置が、
前記部分仕様抽出基準に基づき前記サービスの前記形式仕様から過去に抽出した前記部分仕様を過去抽出部分仕様として記憶するステップ、
前記サービスが更新された場合に、前記部分仕様抽出基準に基づき、前記更新の対象となった前記サービスの更新後の前記部分仕様と、前記更新の対象となっていない前記サービスの前記部分仕様を抽出するステップ、
前記更新の対象になった前記サービスの更新後の前記部分仕様と一致する前記部分仕様
が前記過去抽出部分仕様に存在しない場合、もしくは、前記更新の対象になっていない前記サービスの前記部分仕様が前記過去抽出部分仕様に存在しない場合は、前記検証用コードを生成して前記部品合成定義の前記検証を行うステップ、及び、
前記更新の対象になった前記サービスの更新後の前記部分仕様と一致する前記部分仕様が前記過去抽出部分仕様に存在し、かつ、前記更新の対象になっていない前記サービスの前記部分仕様が前記過去抽出部分仕様に存在する場合は、前記検証用コードを生成せず、前記部品合成定義の前記検証を行わないステップ、
を更に実行する、モデル検査方法。
8. The model checking method according to claim 7,
The model checking device includes:
storing the partial specifications extracted in the past from the formal specifications of the service based on the partial specification extraction criteria as past extracted partial specifications;
When the service is updated, based on the partial specification extraction criteria, the updated partial specifications of the service that was the target of the update and the partial specifications of the service that was not the target of the update are extracted. step of extracting,
If the partial specification that matches the updated partial specification of the service that is the target of the update does not exist in the past extracted partial specifications, or the partial specification of the service that is not the target of the update is If it does not exist in the past extracted partial specifications, generating the verification code and performing the verification of the component synthesis definition;
The partial specification that matches the updated partial specification of the service that is the target of the update is present in the past extracted partial specifications, and the partial specification of the service that is not the target of the update is the If it exists in the past extracted partial specifications, not generating the verification code and not performing the verification of the component synthesis definition;
A model checking method that further executes .
請求項9に記載のモデル検査方法であって、
前記モデル検査装置が、
前記オーケストレータが異なる複数の前記部品合成定義と、
前記部分仕様抽出基準に基づき複数の前記部品合成定義について抽出した前記部分仕様と、
を記憶するステップ、
前記更新の対象になった前記サービスの更新後の前記部分仕様と一致する前記部分仕様が前記過去抽出部分仕様に存在しない場合、もしくは、前記更新の対象になっていない前記サービスの前記部分仕様が前記過去抽出部分仕様に存在しない場合に、前記更新前の部分仕様を含む他の前記部品合成定義を抽出するステップ、及び、
抽出した前記他の部品合成定義について再検証が必要であることを示す情報を出力するステップ、
を更に実行する、モデル検査方法。
The model checking method according to claim 9,
The model checking device includes:
a plurality of component composition definitions in which the orchestrator is different;
the partial specifications extracted for the plurality of component composition definitions based on the partial specification extraction criteria;
step of memorizing,
If the partial specification that matches the updated partial specification of the service that is the target of the update does not exist in the past extracted partial specifications, or the partial specification of the service that is not the target of the update is extracting another component composition definition including the partial specification before the update if it does not exist in the past extracted partial specification; and
outputting information indicating that re-verification is required for the extracted other component composition definition;
A model checking method that further executes .
JP2022067130A 2022-04-14 2022-04-14 Model checking device and model checking method Pending JP2023157310A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022067130A JP2023157310A (en) 2022-04-14 2022-04-14 Model checking device and model checking method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022067130A JP2023157310A (en) 2022-04-14 2022-04-14 Model checking device and model checking method

Publications (1)

Publication Number Publication Date
JP2023157310A true JP2023157310A (en) 2023-10-26

Family

ID=88469177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022067130A Pending JP2023157310A (en) 2022-04-14 2022-04-14 Model checking device and model checking method

Country Status (1)

Country Link
JP (1) JP2023157310A (en)

Similar Documents

Publication Publication Date Title
CN110309071B (en) Test code generation method and module, and test method and system
JP5629239B2 (en) Apparatus and method for testing operation of software
JP5350428B2 (en) Automatic program generation apparatus, method and computer program
JP2012059026A (en) Source code conversion method and source code conversion program
US9064063B1 (en) Methods, systems, and articles of manufacture for implementing interactive, real-time checking or verification of complex constraints
JP2017041171A (en) Test scenario generation support device and test scenario generation support method
JP2007334627A (en) Service base software design support method, and device therefor
CN115952758A (en) Chip verification method and device, electronic equipment and storage medium
CN105446952A (en) Method and system for processing semantic fragments
JP6419667B2 (en) Test DB data generation method and apparatus
US7885985B2 (en) System and method for building a datastore for storing and retrieving regression testing data for a complex application
US20220269820A1 (en) Artificial intelligence based data redaction of documents
JP2023553220A (en) Process mining for multi-instance processes
JP2018018323A (en) Distributed processing management method, distributed processing management program, and distributed processing management device
CN102707938A (en) Table-form software specification manufacturing and supporting method and device
US20080294396A1 (en) System and method for validating design requirements
CN112597718A (en) Verification method, verification device and storage medium for integrated circuit design
JP2015118562A (en) Script management program, script management apparatus, and script management method
JP2023157310A (en) Model checking device and model checking method
JP2021056570A (en) Database division system, database division method, and database division program
US10666255B1 (en) System and method for compacting X-pessimism fixes for gate-level logic simulation
CN111221690A (en) Model determination method and device for integrated circuit design and terminal
JP6588988B2 (en) Business program generation support system and business program generation support method
KR101534493B1 (en) Source code security weakness detection apparatus and method based on structure conversion
CN112925523A (en) Object comparison method, device, equipment and computer readable medium