Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7780382B2 - Model checking device and model checking method - Google Patents
[go: Go Back, main page]

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

Model checking device and model checking method

Info

Publication number
JP7780382B2
JP7780382B2 JP2022067130A JP2022067130A JP7780382B2 JP 7780382 B2 JP7780382 B2 JP 7780382B2 JP 2022067130 A JP2022067130 A JP 2022067130A JP 2022067130 A JP2022067130 A JP 2022067130A JP 7780382 B2 JP7780382 B2 JP 7780382B2
Authority
JP
Japan
Prior art keywords
partial
specifications
service
verification
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.)
Active
Application number
JP2022067130A
Other languages
Japanese (ja)
Other versions
JP2023157310A5 (en
JP2023157310A (en
Inventor
遼 清水
秀行 鹿糠
広樹 高橋
俊司 木暮
淳平 西谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/JP7780382B2/en
Publication of JP2023157310A publication Critical patent/JP2023157310A/en
Publication of JP2023157310A5 publication Critical patent/JP2023157310A5/ja
Application granted granted Critical
Publication of JP7780382B2 publication Critical patent/JP7780382B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

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

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

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

特許文献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. When inspecting a specification model represented by the transitions of multiple function blocks, the inspection device verifies whether each of the multiple function blocks satisfies its target value. If a function block with a state transition that does not satisfy the target value is extracted, the inspection device resets the target value to match the state transition, and resets the target values of other function blocks according to the target values of the specification model. Furthermore, if the other function blocks satisfy the reset target values under constraints that cause the extracted function block to violate the target value, the inspection device determines that the specification model satisfies the target value.

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

近年、情報処理システムの開発の迅速化等を目的として、マイクロサービスアーキテクチャ(以下、「MSA」(Micro Service Architecture)と称する。)が注目されている。MSAにおいては、情報処理システムは、細粒度かつ独立してデプロイが可能なサービスの組合せとして開発される。これにより保守時や仕様変更時における影響範囲が限定され、高速なリリースや修正を実現することができる。 In recent years, microservice architecture (MSA) has been gaining attention as a way to speed 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 and specification changes, enabling rapid releases and modifications.

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

MSAによる情報処理システムのような分散処理システムの設計を支援する技術として、システムを特定の観点から形式的な仕様(以下、「形式仕様」と称する。)として表現し、与えられた要求(以下、「検証性質」と称する。)を上記形式仕様が満たすか否かを網羅的に検証する技術であるモデル検査(Model Checking)がある。 Model checking is a technology that supports the design of distributed processing systems, such as MSA-based information processing systems. It expresses the system from a specific perspective as a formal specification (hereafter referred to as "formal specification") and comprehensively verifies whether the formal specification satisfies given requirements (hereafter referred to as "verification properties").

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

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

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

また、特許文献2に記載のサービス検査システムは、複数の開発済みの第1のサービスモデルの検査コードが記録されたデータベースから、第2のサービスモデル(新規なサービスモデル)を検査する検査コードを取得し、第2のサービスモデルの検査条件を取得して検査条件コードに変換し、検査コード及び検査条件コードに基づき、第2のサービスモデルが検査条件に合致するか否かを検査する。しかし、同文献には、上記のような理由による検証時の探索空間の肥大化や不必要な再合成/再検証を抑制する仕組みについては記載されていない。 Furthermore, the service inspection system described in Patent Document 2 obtains an inspection code for inspecting a second service model (a new service model) from a database that records inspection codes for multiple developed first service models, obtains inspection conditions for the second service model and converts them into inspection condition codes, and inspects whether the second service model meets the inspection conditions based on the inspection code and inspection condition codes. However, this document does not describe a mechanism for preventing the search space from expanding during verification or unnecessary re-synthesis/re-verification due to the reasons mentioned above.

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

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

上記の目的を達成するための本発明の一つは、複数のサービスの連携により実現される情報処理システムについてモデル検査を行うモデル検査装置であって、プロセッサ及び記憶装置を有する情報処理装置を用いて構成され、前記サービスを連携させるオーケストレータの仕様を所定の記述形式で記述した部品合成定義と、前記オーケストレータの仕様に対する要求を所定の記述形式で記述した合成後検証性質と、前記複数のサービスの夫々の仕様を所定の記述形式で記述した形式仕様と、を記憶し、前記合成後検証性質に基づき、前記オーケストレータの仕様の検証に用いる前記サービスの形式仕様である部分仕様を抽出するための基準となる情報である部分仕様抽出基準を生成し、前記部分仕様抽出基準に基づき、前記サービスの前記形式仕様から、前記部品合成定義の検証に用いる前記サービスの前記部分仕様を抽出し、抽出した前記部分仕様に基づき前記部品合成定義を検証するためのコードである検証用コードを生成し、前記検証用コードをモデル検査ツールに入力することにより前記部品合成定義を検証し、前記部分仕様抽出基準を、前記合成後検証性質において論理の記述に用いられている変数又はイベントに基づき生成する。

One aspect of the present invention to achieve the above object is a model checking device that performs model checking on an information processing system realized by the coordination of a plurality of services, the model checking device being configured using an information processing device having a processor and a storage device, and storing: a component synthesis definition in which a specification of an orchestrator that coordinates the services is described in a predetermined description format; a post-synthesis verification property in which requirements for the orchestrator specification are described in the predetermined description format; and a formal specification in which the specifications of each of the plurality of services are described in the predetermined description format; the device generates partial specification extraction criteria, which are information that serves as a standard for extracting partial specifications, which are formal specifications of the services to be used in verifying the orchestrator specification, based on the post-synthesis verification property; extracts the partial specifications of the services to be used in verifying the component synthesis definition from the formal specifications of the services based on the partial specification extraction criteria; generates verification code, which is code for verifying the component synthesis definition, based on the extracted partial specifications ; verifies the component synthesis definition by inputting the verification code into a model checking tool; and generates the partial specification extraction criteria based on variables or events used in describing logic in the post-synthesis verification property.

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

本発明によれば、複数のサービスの連携により実現される情報処理システムのモデル検査を効率よく行うことができる。 This invention makes it possible to efficiently perform model checking of information processing systems that are realized through the collaboration of multiple services.

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

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

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

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

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

図1は、モデル検査を説明する図である。同図に示すように、モデル検査では、モデルの仕様を所定のモデル記述言語で記述した形式仕様32により表現し、形式仕様32がとり得る状態を列挙した状態空間33において検証性質31を満たすか否かを網羅的に検証する。 Figure 1 is a diagram explaining model checking. As shown in the figure, in model checking, the model specifications are expressed as a formal specification 32 written in a specified model description language, and a comprehensive verification is performed to determine whether verification properties 31 are satisfied in a state space 33 that lists all possible states that the formal specification 32 can take.

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

図2は、MSAに基づくモデルの「TLA+」によるモデル検査の一例である。本例において、モデル(オーケストレータが実現する業務)は、「口座間資金移動」を行う情報処理システムである。また、合成後検証性質は「いずれ、全口座残高合計が、システムの初期残高合計と一致(=取引過程で残高の喪失又は増加なし)」である。また、同図に部品合成定義として示すように、例示するモデルは、「Withdraw」及び「Deposit」という2
つのサービスを含む。この例では、サービス「Withdraw」の形式仕様と、サービス「Deposit」の形式仕様を取得し、これらを合成することにより合成済検証用コードを生成して
いる。
Figure 2 shows 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 "transfer of funds between accounts." The post-composition verification property is "Eventually, the total balance of all accounts will match the total initial balance of the system (= no loss or increase of balance during the transaction process)." As shown as a component composition definition in the figure, the model shown in the example consists of two components: "Withdraw" and "Deposit."
In this example, the formal specifications of the service "Withdraw" and the service "Deposit" are obtained, and then the synthesized verification code is generated by synthesizing them.

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

また、サービスの更新が高頻度で行われる場合、更新の都度、全ての形式仕様を単純に合成すると、合成後の形式仕様にオーケストレータの検証性質とは無関係の形式仕様が含まれてしまい、不必要な再合成や再検証が行われてしまうことがある。例えば、モデルが「口座間資金移動」であり合成後検証性質が「残高が負にならないこと」である場合に「手数料の加算処理」が追加された場合は口座残高の操作が関わるため再検証が必要である。しかし、例えば、「明細出力する情報」が追加され「過去明細を取得する」処理が更新された場合は、口座残高操作に関わらないため再合成や再検証は不要であるが、その場合でも再合成と再検証が行われてしまう。 Furthermore, when services are updated frequently, simply composing all formal specifications after each update may result in the composite formal specification including formal specifications unrelated to the orchestrator's verification properties, resulting in unnecessary re-composition and re-verification. For example, if the model is "Inter-account fund transfer" and the post-composition verification property is "Balance must not become negative," and a "Fee addition process" is added, re-verification is required because account balance manipulation is involved. However, if, for example, "Information to output details" is added and the "Retrieve past details" process is updated, re-composition and re-verification are unnecessary because they do not involve account balance manipulation, but re-composition and re-verification will still be required in this case.

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

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

また、モデル検査装置100は、サービスが更新された際、更新されたサービスの部分仕様を再抽出し、再抽出した部分仕様を過去に抽出した部分仕様と比較し、両者に差分がある場合にのみ、当該部分仕様を合成済検証用コードに含めるようにすることで、サービスの更新時における不必要な検証を抑制する。 In addition, 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 includes the re-extracted partial specifications in the synthesized verification code only if there is a difference between the two, thereby suppressing unnecessary verification when the service is updated.

図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 Figures 4A and 4B. Figure 4A shows a case where, for an updated service "Withdraw service specification ver.2," there is no difference between the partial specification "Withdraw service ver.1 partial specification" extracted in the past (before the update) and the partial specification "Withdraw service ver.2 partial specification" extracted after the update. 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, Figure 4B shows a case where, for an updated service "Withdraw service specification ver.2," there is a difference between the partial specification "Withdraw service ver.1 partial specification" extracted in the past (before the update) and the partial specification "Withdraw service ver.2 partial specification" extracted after the update. 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は、サービス更新時の部分仕様を再抽出した後、更新前後の部分仕様に差分がある場合、更新前の部分仕様を参照している他の部品合成定義に対して、部分仕様が更新されたこと及び当該部分仕様について再検証が必要なことを通知することにより検証漏れを防ぐ。 Furthermore, after re-extracting the partial specifications when a service is updated, if there are differences between the partial specifications before and after the update, the model checking device 100 notifies other component synthesis definitions that reference the partial specifications before the update that the partial specifications have been updated and that re-verification of those partial specifications is necessary, thereby preventing verification omissions.

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

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

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

合成後検証性質112は、前述した合成後検証性質であり、オーケストレータ固有の検証性質の記述を含む。 Post-composition verification properties 112 are the post-composition verification properties mentioned above, and include a description of verification properties specific to the orchestrator.

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

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

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

部分仕様抽出基準116は、部分仕様抽出基準生成部145が合成後検証性質112に基づき生成した、更新あり部品群114又は更新なし部品群115から合成済検証用コードの生成に用いる形式仕様(部分仕様)を抽出する際に用いる基準(抽出条件。以下、「部分仕様抽出基準」と称する。)を含む。 The partial specification extraction criteria 116 include criteria (extraction conditions; hereinafter referred to as "partial specification extraction criteria") used when extracting formal specifications (partial specifications) to be used in generating synthesized verification code from the updated component group 114 or the non-updated component group 115, which are generated by the partial specification extraction criteria generation unit 145 based on the post-synthesis verification properties 112.

合成用部分仕様117は、更新あり部品検証要否判定部150又は更新なし部品部分仕様抽出部155によって抽出された、検証用コード生成部160が合成済検証用コード119の生成に用いる部分仕様(以下、「合成用部分仕様」と称する。)を含む。 The synthesis partial specifications 117 include partial specifications (hereinafter referred to as "synthesis partial specifications") that are extracted by the updated component verification necessity determination unit 150 or the non-updated component partial specification extraction unit 155 and that are used by the verification code generation unit 160 to generate the synthesized verification code 119.

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

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

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

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

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

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

部分仕様抽出基準生成部145は、合成後検証性質112に基づき部分仕様抽出基準を生成する。生成した部分仕様抽出基準は、記憶部110が部分仕様抽出基準116として記憶する。 The partial specification extraction criteria generation unit 145 generates partial specification extraction criteria based on the post-synthesis verification properties 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, as partial specifications, formal specifications to be used in generating synthesized verification code from the updated component group 114 based on the partial specification extraction criteria 116. The extracted partial specifications are stored in the storage unit 110 as synthesis partial specifications 117 and previously extracted partial specifications 118.

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

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

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

他モデル検査実行要否判定部170は、更新あり部品検証要否判定部150が更新要と判定した部分仕様のソフトウェア部品について更新前の部分仕様を取得し、取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれているか否かを判定する。判定の結果、取得した更新前の部分仕様が他のモデルの部品合成定義に含まれている場合、他モデル検査実行要否判定部170は、当該他のモデルについて再検証が必要であることを示す情報を出力する。 The other model checking execution necessity determination unit 170 acquires the pre-update partial specifications for software components whose partial specifications the updated component verification necessity determination unit 150 has determined require updating, and determines whether the acquired pre-update partial specifications are included in the component synthesis definition of other models other than the target model. If the determination result shows that the acquired pre-update partial specifications are included in the component synthesis definition of other models, the other model checking execution necessity determination unit 170 outputs information indicating that re-verification of the other models is required.

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

同図に示すように、まず、更新あり部品抽出部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 since the previous model checking based on the update presence/absence information in the component synthesis definition 111, and extracts information (including formal specifications) of the identified software components from the software component group 113. The extracted information is stored in the storage unit 110 as the updated component group 114 (S711).

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

続いて、部分仕様抽出基準生成部145が、合成後検証性質112に基づき部分仕様抽
出基準を生成する。生成した部分仕様抽出基準は、記憶部110が部分仕様抽出基準116として記憶する(S713)。
Next, 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 (S713).

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

図8は、更新あり部品の検証要否判定処理S714の詳細を説明するフローチャートである。以下、同図とともに更新あり部品の検証要否判定処理S714について説明する。 Figure 8 is a flowchart explaining the details of the verification necessity determination process S714 for updated parts. Below, we will explain the verification necessity determination process S714 for updated parts using this figure.

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

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

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

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

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

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

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

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

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

図8に戻り、S816では、更新あり部品検証要否判定部150は、S812で抽出した部分仕様を「検証要」として合成用部分仕様117に格納する。また、更新あり部品検証要否判定部150は、当該部分仕様を過去抽出部分仕様118に新たに格納する。その後、処理はS817に進む。 Returning to FIG. 8 , in S816, the updated component verification necessity determination unit 150 stores the partial specification extracted in S812 as "verification required" in the partial specification for synthesis 117. The updated component verification necessity determination unit 150 also stores the partial specification in the previously extracted partial specification 118. Processing then proceeds 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 in the updated component group 114 have been selected in S811. If the updated component verification necessity determination unit 150 determines that not all software components have been selected (S817: NO), processing returns to S811. On the other hand, if the updated component verification necessity determination unit 150 determines that all software components have been selected (S817: YES), the updated component verification necessity determination process S714 ends and processing proceeds to S715 in Figure 7.

図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 or not a record exists in which "verification required" is stored in the verification necessity 1173 of the partial specification for synthesis 117. If a record in which "verification required" is stored in the verification necessity 1173 of the partial specification for synthesis 117 exists (S715: YES), the model checking device 100 executes a process of extracting partial specifications from the non-updated component group 115 (hereinafter referred to as "non-updated component partial specification extraction process S716"). On the other hand, if a record in which "verification required" is stored in the verification necessity 1173 of the partial specification for synthesis 117 exists (S715: NO), the model checking process S700 ends.

図11は、更新なし部品の部分仕様抽出処理S716の詳細を説明するフローチャートである。以下、同図とともに更新なし部品の部分仕様抽出処理S716について説明する。 Figure 11 is a flowchart explaining the details of the partial specification extraction process S716 for non-updated parts. Below, we will explain the partial specification extraction process S716 for non-updated parts using this 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に進む。 Next, 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 previously extracted component specification 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 previously extracted component specification 118 (S1112: YES), processing proceeds to S1113. On the other hand, if the non-updated component partial specification extraction unit 155 determines that data whose component ID and partial specification extraction criteria 116 match those of the currently selected software component does not exist in the previously extracted component specification 118 (S1112: NO), processing proceeds to S1114.

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

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

続いて、更新なし部品部分仕様抽出部155は、S1114で抽出した選択中のソフトウェア部品の部分仕様を、「検証要」として合成用部分仕様117に格納する。また、更新なし部品部分仕様抽出部155は、当該部分仕様を過去抽出部分仕様118に新たに格納する(S1115)。その後、処理はS1116に進む。 Next, the non-updated component partial specification extraction unit 155 stores the partial specification of the selected software component extracted in S1114 in the partial specification for synthesis 117 as "verification required." The non-updated component partial specification extraction unit 155 also stores this partial specification in the previously extracted partial specification 118 (S1115). Processing then proceeds 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 in the non-updated component group 115 have been selected in S1111. If the updated component verification necessity determination unit 150 determines that all software components have not been selected (S1116: NO), processing returns to S1111. On the other hand, if the updated component verification necessity determination unit 150 determines that all software components have been selected (S1116: YES), the non-updated component partial specification extraction process S716 ends, and processing proceeds to S717 in Figure 7.

図7に戻り、続いて、検証用コード生成部160が、部品合成定義111を参照して合成用部分仕様117に基づき合成済検証用コード119を生成する(S717)。検証用コード生成部160は、合成用部分仕様117に格納されている全ての部分仕様がモデル検査ツールによるモデル検査の対象となるように合成済検証用コード119を生成する。即ち、検証用コード生成部160は、合成用部分仕様117の検証要否1173に「検証要」が格納されている部分仕様が一つでも存在すれば(S715:YES)、合成用部分仕様117に格納されている全ての(検証要否1173の内容に拘わらず全ての)部分仕様がモデル検査ツールによるモデル検査の対象となるように、合成済検証用コード119を生成する(S717)。 Returning to FIG. 7 , the verification code generation unit 160 then references the component synthesis definition 111 and generates synthesized verification code 119 based on the synthesis partial specification 117 (S717). The verification code generation unit 160 generates synthesized verification code 119 so that all partial specifications stored in the synthesis partial specification 117 will be subject to model checking by a 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 synthesis partial specification 117 (S715: YES), the verification code generation unit 160 generates synthesized verification code 119 so that all partial specifications stored in the synthesis partial specification 117 (all partial specifications regardless of the content of verification necessity 1173) will be subject to model checking by a model checking tool (S717).

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

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

図12は、他モデル検査実行要否判定処理S719の詳細を説明するフローチャートである。また、図13は、他モデル検査実行要否判定処理S719の一例を示す図である。以下、これらの図とともに他モデル検査実行要否判定処理S719について説明する。 Figure 12 is a flowchart explaining the details of the other model testing execution necessity determination process S719. Figure 13 is a diagram showing an example of the other model testing execution necessity determination process S719. Below, we will explain the other model testing execution necessity determination process S719 using these figures.

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

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

続いて、他モデル検査実行要否判定部170は、部品合成定義111を参照し、取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれているか否かを判定する(図12のS1213、図13のS1312)。取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれていない場合(図12のS1213:NO)、処理はS1215に進む。一方、取得した更新前の部分仕様が対象モデル以外の他のモデルの部品合成定義に含まれている場合(図12のS1213:YES)、他モデル検査実行要否判定部170は、当該他のモデルについて再検証が必要であることを示す情報を出力(例えば、ユーザインタフェースを介してユーザに提示)する(図12のS1214、図13のS1313)。 Next, the other model checking execution necessity determination unit 170 references the component synthesis definition 111 and determines whether the acquired pre-update partial specification is included in the component synthesis definition of a model other than the target model (S1213 in FIG. 12, S1312 in FIG. 13). If the acquired pre-update partial specification is not included in the component synthesis definition of a model other than the target model (S1213 in FIG. 12: NO), processing proceeds to S1215. On the other hand, if the acquired pre-update partial specification is included in the component synthesis definition of a model other than the target model (S1213 in FIG. 12: YES), the other model checking execution necessity determination unit 170 outputs (e.g., presents to the user via a user interface) information indicating that re-verification of the other model is required (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 determination unit 170 determines whether all partial specifications set to require verification have been selected from the partial specifications to be synthesized 117. If the other model checking execution necessity determination unit 170 determines that there are partial specifications that have not been selected from the partial specifications to be synthesized 117 (S1215: NO), the processing returns to S1211. On the other hand, if the other model checking execution necessity determination unit 170 determines that all partial specifications set to require verification have been selected from the partial specifications to be synthesized 117 (S1215: YES), the processing returns to FIG. 7, and the model checking processing S700 ends.

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

また、モデル検査装置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 generates and verifies synthesized verification code only if there are differences between the two. Specifically, if the previously extracted partial specifications do not contain a partial specification that matches the updated partial specification of the service to be updated (updated component) (S816 in FIG. 8), or if the previously extracted partial specifications do not contain a partial specification of a service not to be updated (non-updated component) (S1115 in FIG. 11), that is, if the partial specifications to be synthesized contain at least one partial specification that "requires verification" (S715: YES), the model checking device 100 generates synthesized verification code (S717) and verifies the component synthesis definition (S718). On the other hand, if the previously extracted partial specifications contain a partial specification that matches the updated partial specification of the service (updated component) that is the target of the update (S815 in FIG. 8), and if the previously extracted partial specifications contain a partial specification of a software component that is not the target of the update (non-updated component) (S1113 in FIG. 11), that is, if the partial specifications to be synthesized do not contain any partial specifications that are marked as "verification required" (S715: NO), the model checking device 100 does not generate synthesized verification code or verify the component synthesis definition. Therefore, when a service is updated, if the partial specifications to be synthesized do not contain any partial specifications that are marked as "verification required," it is possible to prevent unnecessary re-synthesis and re-verification.

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

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

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

同図において、プロセッサ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 is, for example, a CPU (Central Processing Unit),
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 memory device 12 is a device for storing programs and data, and is, for example, a ROM (Read Only Memory).
Only Memory), RAM (Random Access Memory), and NVRAM (Non Volatile RAM).

補助記憶装置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, a solid state drive (SSD), a hard disk drive, an optical storage device (such as a compact disc (CD) or a digital versatile disc (DVD)), a storage system, an IC card, a read/write device for a recording medium such as an SD card or an optical recording 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 reader or a communication device 16. The programs and data stored in the auxiliary storage device 13 are read into the main storage device 12 as needed.

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

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

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

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

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

モデル検査装置100が備える各機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、モデル検査装置100を構成するハードウェア(FPGA、ASIC、AIチップ等)によって実現される。モデル検査装置100は、前述した各種の情報(データ)を、例えば、データベースのテーブルやファイルシステムが管理するファイルとして記憶する。 Each function of the model checking device 100 is realized by the processor 11 reading and executing a program stored in the main memory device 12, or by the hardware (FPGA, ASIC, AI chip, etc.) that constitutes the model checking device 100. The model checking device 100 stores the various pieces of information (data) described above, for example, as database tables 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 embodiment and can be modified in various ways without departing from the spirit of the present invention. For example, the above embodiment has been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to an embodiment having all of the described configurations. Furthermore, it is possible to add, delete, or replace part of the configuration of the above embodiment 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. 7 (model configuration, service formal specification, component synthesis definition, post-synthesis verification properties, software component group, updated component group, non-updated component group, partial specification extraction criteria, partial specifications for synthesis, previously extracted partial specifications, synthesized verification code, verification results, etc.) may be presented on a user interface, allowing the user to visually grasp the process of the model checking process S700. Furthermore, at each step, editing of the various pieces of information described above may be accepted from the user via the user interface.

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

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

また、前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。 In addition, the structure (schema, etc.) of the database that stores the various types of data mentioned above can be flexibly changed from the perspective of efficient resource utilization, improved processing efficiency, improved access efficiency, improved 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 Component synthesis definition, 112 Post-synthesis verification properties, 113 Software component group, 114 Updated component group, 115 Non-updated component group, 116 Partial specification extraction criteria, 117 Partial specifications for synthesis, 118 Previously extracted partial specifications, 119 Synthesized verification code, 120 Verification results, 130 Information acquisition and management unit, 135 Updated component extraction unit, 140 Non-updated component extraction unit, 145 Partial specification extraction criteria generation unit, 150 Updated component verification necessity determination unit, 155 Non-updated component partial specification extraction unit, 160 Verification code generation unit, 165 Model checking execution unit, 170 Other model checking execution necessity determination unit

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022067130A JP7780382B2 (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 JP7780382B2 (en) 2022-04-14 2022-04-14 Model checking device and model checking method

Publications (3)

Publication Number Publication Date
JP2023157310A JP2023157310A (en) 2023-10-26
JP2023157310A5 JP2023157310A5 (en) 2024-12-05
JP7780382B2 true JP7780382B2 (en) 2025-12-04

Family

ID=88469177

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP7780382B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250147864A1 (en) * 2023-11-02 2025-05-08 Woven By Toyota, Inc. System and method for performing validations of software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250547A (en) 2007-03-29 2008-10-16 Denso It Laboratory Inc Combined service design support system and combined service design support program
JP2014134965A (en) 2013-01-10 2014-07-24 Toshiba Corp Inspection model generation apparatus
JP2021089685A (en) 2019-12-06 2021-06-10 株式会社日立製作所 Security risk-reducing method and system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6002507B2 (en) * 2012-08-31 2016-10-05 日立オートモティブシステムズ株式会社 Software verification program and software verification system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250547A (en) 2007-03-29 2008-10-16 Denso It Laboratory Inc Combined service design support system and combined service design support program
JP2014134965A (en) 2013-01-10 2014-07-24 Toshiba Corp Inspection model generation apparatus
JP2021089685A (en) 2019-12-06 2021-06-10 株式会社日立製作所 Security risk-reducing method and system

Also Published As

Publication number Publication date
JP2023157310A (en) 2023-10-26

Similar Documents

Publication Publication Date Title
JP4396994B2 (en) Resource file translation verification method, apparatus, and program
JP5350428B2 (en) Automatic program generation apparatus, method and computer program
JP5629239B2 (en) Apparatus and method for testing operation of software
US10095699B2 (en) Computer-readable recording medium, execution control method, and information processing apparatus
CN107729423B (en) Big data processing method and device
US20150052157A1 (en) Data transfer content selection
CN105446952A (en) Method and system for processing semantic fragments
JP7780382B2 (en) Model checking device and model checking method
US11030162B2 (en) Distributed processing management method and distributed processing management apparatus
US12602221B2 (en) Software component update system, and software component update method
US20080294396A1 (en) System and method for validating design requirements
JP7760482B2 (en) Software configuration management data creation support device and software configuration management data creation support method
US10666255B1 (en) System and method for compacting X-pessimism fixes for gate-level logic simulation
JP7734529B2 (en) Design item management system
CN107025110B (en) Temporal modeling method based on software development elements and relations among elements
Chevallet X-IOTA: An Open XML Framework for IR Experimentation: Application on Multiple Weighting Scheme Tests in a Bilingual Corpus
JP6636873B2 (en) Specification extraction device from source code
WO2019142469A1 (en) Security design apparatus, security design method, and security design program
CN114691095B (en) Workflow augmentation method and related equipment
JP2016099726A (en) Specification generation method, specification generation device, and program
CN119167365B (en) Verification processing method, device, equipment and storage medium for enterprise product
KR20210114818A (en) Method and apparatus for generating hybrid blockchain
JP3345522B2 (en) Program development support device using data item parts
KR102754583B1 (en) SBOM document batch generation system and method using DB data connection method
JP2016153930A (en) Configuration information management device, configuration information management method and configuration information management program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251121

R150 Certificate of patent or registration of utility model

Ref document number: 7780382

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150