JP2014241051A - Information processing apparatus, information processing method, and information processing program - Google Patents
Information processing apparatus, information processing method, and information processing program Download PDFInfo
- Publication number
- JP2014241051A JP2014241051A JP2013123227A JP2013123227A JP2014241051A JP 2014241051 A JP2014241051 A JP 2014241051A JP 2013123227 A JP2013123227 A JP 2013123227A JP 2013123227 A JP2013123227 A JP 2013123227A JP 2014241051 A JP2014241051 A JP 2014241051A
- Authority
- JP
- Japan
- Prior art keywords
- information
- local
- condition
- node
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、設計情報の形式検証を支援する技術に関する。 The present invention relates to a technique for supporting format verification of design information.
上記技術分野において、非特許文献1には、形式手法の1つであるEvent-Bによって、ソフトウェアの設計内容を集合や一階述語論理の式で記述し、複数の式の間に整合があることをツールの支援を受けながら数学的に証明することにより、Event-Bの記述に欠陥がないことを保証する技術が開示されている。そして、非特許文献1の(II) Event-B: Structure and Laws - P7, "2.6 Consistency Proofs for an Event System: Feasibility and Invariance Preservation,"には、"INV"とラベル付けされた式で不変条件保存則が記載されている。
In the above technical field, Non-Patent
しかしながら、ソフトウェアの設計では、当該ソフトウェアが操作するデータをER図(Entity Relationship Diagram)やUML(Unified Modeling Language)のクラス図で表現し、当該ソフトウェアが行う処理の流れをフローチャートやUMLのアクティビティ図で表現する。上記文献に記載の技術において、クラス図およびアクティビティ図などから生成された情報に基づいてEvent-BコンテキストおよびEvent-Bマシンを生成するが、フローチャートやアクティビティ図の各アクションノードごとに、ソフトウェアの設計内容の緻密な整合性検証ができなかった。 However, in software design, the data operated by the software is represented by an ER diagram (Entity Relationship Diagram) or UML (Unified Modeling Language) class diagram, and the flow of processing performed by the software is represented by a flowchart or UML activity diagram. Express. In the technology described in the above document, an Event-B context and Event-B machine are generated based on information generated from class diagrams and activity diagrams. Software design is performed for each action node in flowcharts and activity diagrams. It was not possible to verify the integrity of the contents.
本発明の目的は、上述の課題を解決する技術を提供することにある。 The objective of this invention is providing the technique which solves the above-mentioned subject.
上記目的を達成するため、本発明に係る情報処理装置は、
データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理手段と、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理手段により読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成手段と、
を備える。
In order to achieve the above object, an information processing apparatus according to the present invention provides:
An input processing means for reading design information consisting of a class diagram describing the static structure and constraints of data, an activity diagram describing the flow and execution contents of software processing data sequentially,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read by the input processing means by reading predetermined identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; , A local post-condition generation means for generating
Is provided.
上記目的を達成するため、本発明に係る情報処理方法は、
データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理ステップと、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
を含む。
In order to achieve the above object, an information processing method according to the present invention includes:
An input processing step for reading design information consisting of a class diagram that describes the static structure and constraints of data, an activity diagram that describes the flow and execution contents of software that sequentially processes data,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read in the input processing step by reading default identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; Generating a local post condition,
including.
上記目的を達成するため、本発明に係る情報処理プログラムは、
データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理ステップと、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
をコンピュータに実行させる。
In order to achieve the above object, an information processing program according to the present invention provides:
An input processing step for reading design information consisting of a class diagram that describes the static structure and constraints of data, an activity diagram that describes the flow and execution contents of software that sequentially processes data,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read in the input processing step by reading default identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; Generating a local post condition,
Is executed on the computer.
本発明によれば、フローチャートやアクティビティ図の各アクションノードごとに、ソフトウェアの設計内容の緻密な整合性検証をすることができる。 According to the present invention, it is possible to perform precise consistency verification of software design contents for each action node in a flowchart or activity diagram.
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。例えば、形式記述として以下ではEvent-Bについて示すが、本発明により生成された情報は、Event-Bに限定されず他の形式記述によるソフトウェア設計の整合性判定にも同様の効果を奏する。 Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the constituent elements described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them. For example, Event-B is shown below as a formal description, but the information generated by the present invention is not limited to Event-B, and has the same effect for determining the consistency of software design based on other formal descriptions.
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、設計情報の形式検証を支援する装置である。
[First Embodiment]
An
図1に示すように、情報処理装置100は、入力処理部101と、局所事後条件生成部102と、を含む。入力処理部101は、データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報111を読み込む。局所事後条件生成部102は、ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報121を込む。そして、局所事後条件生成部102は、入力処理部101により読み込まれた設計情報111および既定識別子情報121から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報122を生成する。さらに、局所事後条件生成部102は、アクティビティ図に記述された実行内容を実行した結果を示す論理式である局所事後条件および局所事後条件の有効範囲を示す局所事後条件情報123を生成する。
As illustrated in FIG. 1, the
本実施形態によれば、フローチャートやアクティビティ図の各アクションノードごとに、ソフトウェアの設計内容の緻密な整合性検証をすることができる。 According to the present embodiment, it is possible to perform precise consistency verification of software design contents for each action node in the flowchart and activity diagram.
[第2実施形態]
次に、本発明の第2実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、クラス図とアクティビティ図とから、形式記述生成に使用される、識別子情報と、有効範囲を有する局所事後条件とを生成する。
[Second Embodiment]
Next, an information processing apparatus according to the second embodiment of the present invention will be described. The information processing apparatus according to the present embodiment generates identifier information and a local posterior condition having an effective range, which are used for generating a format description, from a class diagram and an activity diagram.
最初に、本実施形態に係る技術分野における背景を簡単に説明する。 First, the background in the technical field according to the present embodiment will be briefly described.
《背景》
ソフトウェア開発では、ソフトウェアの品質を確保するために、その設計内容が正しいことを検証する必要がある。そのため、ソフトウェア開発において、設計情報をUMLで記述したり、形式手法で検証することが多くなってきている。ここで、UMLは、ソフトウェアの静的な構造や制約を表すクラス図や、ソフトウェアが行う処理の流れを表すアクティビティ図といったグラフィカルな図式の記法である。形式手法とは、集合や論理といった数学的な概念に基づいて、対象システムを正確で曖昧さのない記法で表現し、記述に不整合がないことを検証する手法である。すなわち、逐次処理を行うソフトウェアの設計では、当該ソフトウェアが操作するデータをER図やUMLのクラス図で表現し、当該ソフトウェアが行う処理の流れをフローチャートやUMLのアクティビティ図で表現する。逐次処理を表すアクティビティ図では、処理の各ステップを図上のアクションノードとして表現する。先行するステップに対応するアクションノードから後続のステップに対応するアクションノードへ有向線分を引くことによって、複数の処理ステップが連続して行われることを表現する。各アクションノードには、データが正しい状態あることをチェックするか、データに新しい値を設定するか、あるいは両方を行うことを記述する(図4参照)。
"background"
In software development, it is necessary to verify that the design content is correct in order to ensure the quality of the software. Therefore, in software development, design information is often described in UML or verified by a formal method. Here, UML is a graphical graphical notation such as a class diagram representing a static structure and constraints of software and an activity diagram representing a flow of processing performed by software. The formal method is a method of verifying that there is no inconsistency in the description by expressing the target system in an accurate and unambiguous notation based on mathematical concepts such as sets and logic. That is, in designing software that performs sequential processing, data operated by the software is represented by an ER diagram or a UML class diagram, and a flow of processing performed by the software is represented by a flowchart or a UML activity diagram. In an activity diagram representing sequential processing, each step of the processing is expressed as an action node on the diagram. By drawing a directed line segment from the action node corresponding to the preceding step to the action node corresponding to the subsequent step, it is expressed that a plurality of processing steps are continuously performed. Each action node describes checking whether the data is in a correct state, setting a new value for the data, or both (see FIG. 4).
従来は、これらの図式で表現された設計内容が正しいかどうかは人間がレビューで検証してきた。レビューは目視による確認作業であり、レビューを行う人間のスキルが低ければ、欠陥の多くを見逃すことになる。そこで、例えば、形式手法の1つであるEvent-Bでは、ソフトウェアの設計内容を集合や一階述語論理の式で記述し、複数の式の間に整合があることをツールの支援を受けながら数学的に証明することにより、Event-Bの記述に欠陥がないことを保証する。Event-Bでは、データを定数や変数として、データに関する制約を不変条件として、データを操作する処理をイベント(以降、Event-Bイベントと称す)として表す。イベントはガード節とアクション節から成り、ガード節に記述された全ての論理式(以降、Event-Bガードと称す)が真となる場合のみ、アクション節に記述された全ての代入式(以降、Event-Bアクションと称す)が実行される。重要な整合性の1つに不変条件保存則があり、Event-Bイベントと不変条件の一組ごとに、当該不変条件が成り立っている任意の状態から、当該Event-Bイベントを実行した後の状態では再び当該不変条件が成り立たねばならない(非特許文献1参照)。 Conventionally, humans have verified whether the design contents expressed in these diagrams are correct by review. The review is a visual confirmation, and if the human skill of the review is low, many of the defects will be missed. Therefore, for example, in Event-B, one of the formal methods, software design contents are described in sets and first-order predicate logic expressions, and with the support of the tool that there is a consistency between multiple expressions. Mathematical proof ensures that the Event-B description is flawless. In Event-B, data manipulation is represented as an event (hereinafter referred to as an Event-B event), with data as constants and variables, data-related constraints as invariant conditions. An event consists of a guard clause and an action clause, and all assignment expressions (hereinafter referred to as “event-B guards”) described in the action clause are true only when all logical expressions (hereinafter referred to as Event-B guards) described in the guard clause are true. Event-B action) is executed. One of the important consistency is the invariant conservation law, and for each pair of Event-B event and invariant, after executing the Event-B event from any state where the invariant holds. In the state, the invariant condition must be satisfied again (see Non-Patent Document 1).
アクティビティ図で表された逐次処理とクラス図で表されたデータとの間に不整合がないことをEvent-Bを用いて検証するには、アクティビティ図の各アクションノード、すなわち逐次処理の各処理ステップをEvent-Bイベントと見なすことが考えられる。しかし、この素朴な考え方には次の2つの問題がある。 In order to verify that there is no inconsistency between the sequential process represented by the activity diagram and the data represented by the class diagram, using Event-B, each action node of the activity diagram, that is, each process of the sequential process It can be considered that a step is considered an Event-B event. However, this simple concept has the following two problems.
1番目の問題は、アクティビティ図では有向線分に沿ってアクションノードを辿ることで実行順序が決まるが、Event-Bでは一般にEvent-Bイベントの実行順序は決まらないことである。Event-Bでは複数のEvent-Bイベントについて、それぞれのEvent-Bガードが真となるときに、どのEvent-Bイベントが実行されるかは一意には決まらない。Event-Bガードが真となるEvent-Bイベントのうち任意の1つだけ非決定的に選ばれて、そのEvent-Bアクションが他のEvent-Bイベントからの割り込みなしに実行される。その結果、アクティビティ図でのアクションノードの実行順序どおりにEvent-Bイベントを実行することが保証されないことである。 The first problem is that in the activity diagram, the execution order is determined by following the action nodes along the directed line segment, but in Event-B, the execution order of Event-B events is generally not determined. In Event-B, when multiple Event-B guards are true for each Event-B event, which Event-B event is executed is not uniquely determined. Only one of the Event-B events for which the Event-B guard is true is chosen nondeterministically, and its Event-B action is executed without interruption from other Event-B events. As a result, it is not guaranteed that Event-B events will be executed according to the execution order of action nodes in the activity diagram.
2番目の問題は、アクティビティ図では各アクションノードを実行した結果として、どのような条件がいつまで成立するのかを明示しないが、Event-Bでは論理式として明示する必要があることである。例えば、3個の連続した処理ステップがあり、1番目のステップでは変数xに“0”を代入し、2番目のステップでは変数xと関係のない処理を行い、3番目のステップでは変数xに“1”を代入することを考える。アクティビティ図では、1番目と3番目のアクションノードに変数xへの代入式が記述される。この記述によって暗黙のうちに、1番目の処理ステップの直後から1番目の処理ステップの直前まで「変数xの値は“0”である」という条件が成り立ち、3番目の処理ステップの直後からは「変数xの値は“1”である」という条件が成り立つと解釈される。Event-Bではこれらの暗黙に解釈される条件を明示的に記述する必要がある。すなわち、アクティビティ図のアクションノードの実行結果は暗黙に後続のアクションノードを実行する際の前提条件となる。さらに、先行するアクションノードでの変数への値の代入結果が、後続のアクションノードにおける同じ変数への別の値の代入によって無効となるようにアクションノードの実行結果には有効範囲がある。しかし、アクションノードの記述内容を素朴にEvent-Bイベントとして記述すると、暗黙の実行結果は記述されず、その有効範囲も記述されないことである。 The second problem is that in the activity diagram, it is not clearly shown as to what condition will be satisfied as a result of executing each action node, but in Event-B, it is necessary to specify it as a logical expression. For example, there are three consecutive processing steps. In the first step, “0” is substituted for the variable x. In the second step, processing unrelated to the variable x is performed. In the third step, the variable x is set. Consider substituting “1”. In the activity diagram, substitution expressions for variable x are described in the first and third action nodes. By this description, the condition that “the value of the variable x is“ 0 ”” is satisfied from immediately after the first processing step to immediately before the first processing step, and immediately after the third processing step. It is interpreted that the condition that “the value of the variable x is“ 1 ”is satisfied. Event-B must explicitly describe these implicitly interpreted conditions. In other words, the execution result of the action node in the activity diagram is a prerequisite for executing the subsequent action node implicitly. Further, the execution result of the action node has a valid range so that the result of assigning the value to the variable at the preceding action node becomes invalid due to the assignment of another value to the same variable at the subsequent action node. However, if the description content of the action node is simply described as an Event-B event, the implicit execution result is not described, and its effective range is not described.
本実施形態においては、逐次処理を行うソフトウェアの設計内容を示すUMLのアクティビティ図とクラス図をEvent-Bで記述した場合に、アクティビティ図の制御フローどおりにEvent-Bイベントが実行される。そして、アクティビティ図に記載された逐次処理がクラス図に記載のデータ構造と制約を守っていることを検証できるようなEvent-Bの記述を可能とする、識別子情報と局所事後条件情報とを提供する。なお、実施形態の先頭にも記載の通り、本実施形態により生成された識別子情報と有効範囲を有する局所事後条件情報とは、他の形式手法にも効果的に適用される。 In this embodiment, when a UML activity diagram and a class diagram indicating design contents of software for performing sequential processing are described in Event-B, an Event-B event is executed according to the control flow of the activity diagram. Provide identifier information and local post-condition information that enable the description of Event-B to verify that the sequential processing described in the activity diagram follows the data structure and restrictions described in the class diagram To do. Note that, as described at the beginning of the embodiment, the identifier information generated by the present embodiment and the local post-condition information having an effective range are also effectively applied to other formal methods.
《情報処理装置の機能構成》
図2Aは、本実施形態に係る情報処理装置200の機能構成を示すブロック図である図2Aを参照すると、本実施形態における情報処理装置200は、機能的には、入力処理部201と、局所事後条件生成部202と、出力処理部203と、を有する。
<< Functional configuration of information processing device >>
FIG. 2A is a block diagram illustrating a functional configuration of the
入力処理部201は、設計情報を検索可能に格納する設計情報格納部270からクラス図とアクティビティ図とからなる設計情報を読み込む(図4参照)。
The
局所事後条件生成部202は、入力処理部201により読み込まれた設計情報から識別子を抽出し、既定識別子情報格納部204から読み込んだ既定識別子情報と合わせて、識別子情報とする。識別子情報は、識別子と基本型と分類と静的制約を含む。クラス図においては、クラスおよび属性の名称が識別子となる。アクティビティ図においては、その名称がクラス図に出現しない変数の名称が識別子となる。
The local posterior
また、局所事後条件生成部202は、入力処理部201により読み込まれたアクティビティ図から、アクティビティ図の各アクションノードの実行後に成立すべき局所事後条件を抽出し、局所事後条件情報として保持する。アクションノードに記載された論理式は、そのまま局所事後条件とする。代入式は、例えば、代入演算子「:=」を等価演算子「=」で置換することにより、局所事後条件とする。また、局所事後条件生成部202が、抽出した局所事後条件が条件追加ルール格納部205から読み込んだ条件追加ルールの入力条件に合致すれば、追加条件ルールから新たな局所事後条件を導出し、局所事後条件情報に追加する。さらに、本実施形態においては、局所事後条件生成部202が、局所事後条件情報を調べて、各局所事後条件の有効範囲を特定する。
In addition, the local
出力処理部203は、局所事後条件生成部202により作成された識別子情報と局所事後条件情報とをそれぞれ、関連付けて検索可能に識別子情報格納部280と局所事後条件情報格納部290とに書き出す。
The
《情報処理装置のハードウェア構成》
図2B、本実施形態に係る情報処理装置200のハードウェア構成を示すブロック図である。
<< Hardware configuration of information processing equipment >>
FIG. 2B is a block diagram illustrating a hardware configuration of the
図2Bで、CPU210は演算制御用のプロセッサであり、CPU210がRAM240を使用しながらストレージ250に格納されたプログラムおよびモジュールを実行することで、図2Aに示された情報処理装置200の各機能構成部の機能が実現される。ROM220は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部230は、ネットワークを介して外部装置と通信する。なお、CPU210は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。
2B, the
RAM240は、CPU210が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM240には、本実施形態の実現に必要なデータを記憶する領域が確保されている。クラス図データ241は、設計情報におけるソフトウェアの静的な構造や制約を表すクラス図のデータである(図4参照)。アクティビティ図データ242は、設計情報におけるソフトウェアが行う処理の流れを表すアクティビティ図のデータである(図4参照)。アクティビティ図データ(ノード番号)243は、本実施形態により一意のノード番号が割り当てされたアクティビティ図のデータである(図9参照)。識別子情報244は、本実施形態により生成される情報である(図6参照)。局所事後条件情報245は、本実施形態により生成される情報である(図10、図12および図13参照)。入出力データ246は、入出力インタフェース260を介して入出力される入出力データを示す。送受信データ247は、通信制御部230を介して送受信される送受信データを示す。
The
ストレージ250には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。既定識別子情報格納部204は、処理対象のソフトウェアにおける規定の識別子を示す情報を格納する(図7参照)。条件追加ルール格納部205は、局所事後条件を追加するためのルールを格納する(図11参照)。識別子情報生成アルゴリズム251は、本実施形態における識別子情報を生成するために使用されるアルゴリズムである。ノード番号割当アルゴリズム252は、本実施形態におけるアクティビティ図のアクションノードに一意のノード番号を割り当てるために使用されるアルゴリズムである。局所事後条件情報生成アルゴリズム253は、本実施形態における有効範囲を有する局所事後条件情報を生成するために使用されるアルゴリズムである。
The
ストレージ250には、以下のプログラムが格納される。情報処理装置制御プログラム254は、本情報処理装置200の全体を制御する制御プログラムである。識別子情報生成モジュール255は、情報処理装置制御プログラム254において、識別子情報生成アルゴリズム251を使用して識別子情報を生成するモジュールである。局所事後条件情報生成モジュール256は、情報処理装置制御プログラム254において、ノード番号割当アルゴリズム252に従いアクションノードに一意のノード番号を割り当てる。そして、局所事後条件情報生成アルゴリズム253に従い有効範囲を有する局所事後条件情報を生成するモジュールである。生成情報出力処理モジュール257は、情報処理装置制御プログラム254において、生成された識別子情報を識別子情報格納部280に出力し、生成された有効範囲を有する局所事後条件情報を局所事後条件情報格納部290に出力するモジュールである。
The
入出力インタフェース260は、入出力機器との入出力データをインタフェースする。入出力インタフェース260には、表示部261、キーボード、タッチパネル、ポインティンデバイスなどの操作部262が接続される。また、設計情報であるクラス図とアクティビティ図とを検索可能に格納する設計情報格納部270が接続される。さらに、識別子情報を検索可能に格納する識別子情報格納部280と、有効範囲を有する局所事後条件情報を識別子情報と関連付けて検索可能に格納する局所事後条件情報格納部290と、が接続される。なお、上記格納部27、280、290は、通信制御部230によりネットワークを介して接続されていてもよい。
The input /
なお、図2BのRAM240やストレージ250には、情報処理装置200が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
2B does not show programs and data related to general-purpose functions and other realizable functions of the
《情報処理装置の処理手順》
図3は、本実施形態に係る情報処理装置200の処理手順を示すフローチャートである。このフローチャートは、図2BのCPU210がRAM240を使用して実行し、図2Aの機能構成部を実現する。
<< Processing procedure of information processing device >>
FIG. 3 is a flowchart illustrating a processing procedure of the
最初に、情報処理装置200は、設計情報格納部270からクラス図とアクティビティ図とから成る設計情報を読み込む(ステップS301)。次に、情報処理装置200は、ステップS301で読み込まれた設計情報から、識別子情報を生成する(ステップS303:詳細は図5参照)。次に、情報処理装置200は、ステップS301で読み込まれた設計情報から、有効範囲を有する局所事後条件情報を生成する(ステップS305:詳細は図8参照)。そして、情報処理装置200は、ステップS303において生成された識別子情報と、ステップS305において生成された有効範囲を有する局所事後条件情報とをそれぞれ、識別子情報格納部280と局所事後条件情報格納部290とに書き出す(ステップS307)。
First, the
以下、上記ステップS301〜S307における処理について、詳細に説明する。 Hereinafter, the processing in steps S301 to S307 will be described in detail.
《設計情報の読み込み:S301》
図4は、本実施形態に係る設計情報としてのクラス図(401)およびアクティビティ図(402)の構成を示す図である。かかる設計情報は、設計情報格納部270に格納されており、本実施形態の情報処理装置200に読み込まれる。逐次処理を行うを行うソフトウェアの設計にUMLを用いる場合、ソフトウェアが扱うデータの構造や制約をクラス図で表現し、ソフトウェアが行う処理をアクティビティ図で表現することができる。データについては、データ全体を1つのクラス図とし、個々のデータはクラス図のクラスに、データ項目は対応するクラスのメンバ属性として表現する。処理については、処理全体を1つのアクティビティ図とし、処理を構成する一連の処理ステップをアクションノードとする。そして、先に実行される処理ステップと後続の処理ステップとの関係を対応するアクションノード間の有向線分(制御フロー)として記述し、処理ステップでチェックすべきことや実行すべきことをアクションノードのラベルに記述することになる。
<< Reading design information: S301 >>
FIG. 4 is a diagram showing a configuration of a class diagram (401) and an activity diagram (402) as design information according to the present embodiment. Such design information is stored in the design
クラス図(401)は、クラスの情報を含む。クラスの情報は、名称と複数のメンバ属性の情報を含む。メンバ属性の情報は、名称と型を含む。また、メンバ属性には、ステレオタイプ(ギムレット“<<”と“>>”とで囲まれた文字列)や、制約の内容(例えば、“{”と“}”とで囲まれた論理式)を記載したコメントによって、制約を与えることができる。 The class diagram (401) includes class information. The class information includes a name and information on a plurality of member attributes. The member attribute information includes a name and a type. The member attributes include stereotypes (character strings surrounded by gimlet “<<” and “>>”), and constraints (for example, logical expressions surrounded by “{” and “}”). ) Can be constrained by comments.
アクティビティ図(402)は、開始ノードと、1つまたは複数のアクションノードと、終了ノードと、これらのノード間をつなぐ有向線分である制御フローとを含む。アクティビティ図(402)は、ソフトウェアが行う処理の流れを示すものであり、開始ノードから制御フローをたどり、アクションノードに記載されたアクションの内容を実行し、終了ノードに至れば一連の処理全体が終わったものとする。アクションノードには、そのノードの箇所で行う処理内容を記す。ここで、論理式(真偽値をとる式)が記されていれば、そのアクションノードでは当該論理式が真であることを調べ、代入式(変数に値を設定する式)が記されていれば、そのアクションノードでは当該代入式どおりに変数に値を設定する、ものとする。 The activity diagram (402) includes a start node, one or more action nodes, an end node, and a control flow that is a directed line segment connecting these nodes. The activity diagram (402) shows the flow of processing performed by the software. The control flow is traced from the start node, the content of the action described in the action node is executed, and if the end node is reached, the entire series of processing is completed. Suppose it is over. In the action node, the processing content to be performed at the node is described. Here, if a logical expression (an expression that takes a true / false value) is described, the action node checks that the logical expression is true, and an assignment expression (an expression that sets a value in a variable) is described. Then, in the action node, the value is set to the variable according to the assignment expression.
(本実施形態で使用するクラス図とアクティビティ図)
以降の具体的説明においては、図4のクラス図(401)とアクティビティ図(402)とを読み込んだものとして説明する。
(Class diagram and activity diagram used in this embodiment)
In the following specific description, it is assumed that the class diagram (401) and the activity diagram (402) in FIG. 4 have been read.
図4のクラス図(401)は、データベースの表「商品」を表す。表「商品」は、列「商品CD」を持つ。列「商品CD」の型は、「非空文字列」である。ここで、全ての文字列が属する型を「文字列」とし、文字列の長さが“0”である文字列を「空文字列」とし、「空文字列」を除いた全ての文字列が属する型を「非空文字列」とする。また、列「商品CD」は、表「商品」の行を一意に識別する値を持つ。すなわち、表「商品」から任意に選んだ2個の行について、それぞれの行の列「商品CD」の値が同じであれば2個の行は同じ行であり、列「商品CD」の値が異なれば2個の行は異なる行である。 The class diagram (401) in FIG. 4 represents the table “product” in the database. The table “product” has a column “product CD”. The type of the column “product CD” is “non-null character string”. Here, the type to which all character strings belong is “character string”, the character string whose length is “0” is “empty character string”, and all character strings except “empty character string” belong to it. The type is “non-empty string”. Further, the column “product CD” has a value for uniquely identifying a row of the table “product”. That is, for two rows arbitrarily selected from the table “product”, if the value of the column “product CD” in each row is the same, the two rows are the same row, and the value of the column “product CD” If they are different, the two rows are different.
図4のクラス図(401)では、表「商品」をクラス「商品」とし、列「商品CD」をメンバ属性「商品CD」としている。「商品CD」の型は「非空文字列」である。「商品CD」の前に付されたステレオタイプ“<<pk>>”(primary key:主キー)は、そのメンバ属性には必ず値が設定されねばならず、かつそのメンバ属性の値によってクラスのインスタンスが一意に識別される、ことを表す。 In the class diagram (401) of FIG. 4, the table “product” is the class “product”, and the column “product CD” is the member attribute “product CD”. The type of “product CD” is “non-null character string”. The stereotype “<< pk>” (primary key) attached to the front of “Product CD” must have a value set for its member attribute, and the class depends on the value of the member attribute. Indicates that an instance of is uniquely identified.
図4のアクティビティ図(402)は、変数「新規CD」の値を列「商品CD」の値としてもつような新しい行「新規商品」を、データベースの表「商品」に追加する逐次処理を表す。行「新規商品」を表「商品」に登録する逐次処理では、まず、変数「新規CD」の値が、空文字列ではないことと、表「商品」の列「商品CD」にまだ登録されていないことと、を確認する。次に、行「新規商品」が表「商品」には登録されていないことを確認し、表「商品」に行「新規商品」を追加し、行「新規商品」の列「商品CD」の値として、変数「新規CD」の値を設定する。 The activity diagram (402) of FIG. 4 represents a sequential process of adding a new row “new product” having the value of the variable “new CD” as the value of the column “product CD” to the table “product” of the database. . In the sequential process of registering the row “new product” in the table “product”, first, the value of the variable “new CD” is not a null character string, and is still registered in the column “product CD” of the table “product”. Confirm that there is not. Next, it is confirmed that the row “new product” is not registered in the table “product”, the row “new product” is added to the table “product”, and the column “product CD” in the row “new product” is added. As the value, the value of the variable “new CD” is set.
図4のアクティビティ図(402)で、開始ノードは、逐次処理を開始することを表す。アクティビティ図(402)で、開始ノードから制御フローを1回たどって到達するアクションノードS401は、2個の論理式を持ち、これらの論理式が真であることを確認する。論理式「新規CD≠空文字列」は、変数「新規CD」の値が「空文字列」でないことを意味し、論理式「新規CD∈/ran(商品_商品CD)」は、変数「新規CD」の値がクラス「商品」の属性「商品CD」の値の集合に含まれていないことを意味する。ここで、クラスCの属性Fを、Cのインスタンスの集合「C」からFの型に属する値の集合への関数「C_F」と表現し、Cの全てのインスタンスのFの値の集合をran(C_F)と表現している。関数「C_F」は、CインスタンスとFの型に属する値の組の集合である。なお、記号“∈/”および図面の類似表示は、∈の否定を表わす。 In the activity diagram (402) of FIG. 4, the start node represents starting sequential processing. In the activity diagram (402), the action node S401 that reaches the control flow once from the start node has two logical expressions, and confirms that these logical expressions are true. The logical expression “new CD ≠ empty character string” means that the value of the variable “new CD” is not “empty character string”, and the logical expression “new CD∈ / ran (product_product CD)” is the variable “new CD”. "Is not included in the set of values of the attribute" product CD "of the class" product ". Here, the attribute F of the class C is expressed as a function “C_F” from a set of C instances “C” to a set of values belonging to the type of F, and the set of F values of all instances of C is ran. It is expressed as (C_F). The function “C_F” is a set of value pairs belonging to the C instance and the type of F. The symbol “∈ /” and the similar display in the drawing indicate negation of ∈.
アクティビティ図(402)で、さらに制御フローを1回たどって到達するアクションノードS402は、1個の論理式と2個の代入式を持ち、論理式が真であることを確認した後に、各代入式を実行する。論理式「新規商品∈/商品」は、変数「新規商品」がクラス「商品」のインスタンスの集合に含まれないことを意味する。代入式「商品:=商品∪{新規商品}」は、「商品」インスタンスの集合と「新規商品」からなる集合の集合和を新たな「商品」インスタンスの集合とすることを意味する。これは、データベースの表「商品」に行「新規商品」を追加したことを表している。代入式「商品_商品CD:=商品_商品CD∪{新規商品|→新規CD}」は、「商品」インスタンスと非空文字列の組の集合である「商品_商品CD」と、「新規商品」と「新規CD」の組からなる集合との集合和を、新たな「商品_商品CD」とすることを意味する。これは、データベースの表「商品」に追加された行「新規商品」の列「商品CD」の値として変数「新規CD」の値を設定することを表している。なお、記号“|→”および図面の類似表示は、元の対応を表わす。 In the activity diagram (402), the action node S402 that arrives by following the control flow once further has one logical expression and two assignment expressions, and after confirming that the logical expression is true, each assignment node S402 Execute the expression. The logical expression “new product ∈ / product” means that the variable “new product” is not included in the set of instances of the class “product”. The substitution expression “product: = product∪ {new product}” means that a set sum of a set of “product” instances and a set of “new products” is used as a new set of “product” instances. This indicates that the row “new product” has been added to the table “product” of the database. The substitution expression “product_product CD: = product_product CD∪ {new product | → new CD}” is a combination of “product” product and non-empty character string “product_product CD” and “new product”. ”And a set made up of a set of“ new CD ”means a new“ product_product CD ”. This indicates that the value of the variable “new CD” is set as the value of the column “product CD” in the row “new product” added to the table “product” of the database. The symbol “| →” and the similar display of the drawings represent the original correspondence.
アクティビティ図(402)で、さらに制御フローを1回たどって到達する終了ノードは、逐次処理を終了することを表す。 In the activity diagram (402), an end node that arrives by following the control flow once represents that the sequential processing ends.
なお、図4のアクションノードS401およびS402における、“check”は、これに続く式が論理式であることを意味し、“do”は、これに続く式が代入式であることを意味する。“check”と“do”は、読みやすさのために付与したものであり、省略可能である。 In the action nodes S401 and S402 in FIG. 4, “check” means that the following expression is a logical expression, and “do” means that the following expression is an assignment expression. “Check” and “do” are given for readability and can be omitted.
《識別子情報生成処理:S303》
図5は、本実施形態に係る識別子情報生成処理(S303)の手順を示すフローチャートである。
<< Identifier information generation processing: S303 >>
FIG. 5 is a flowchart showing a procedure of identifier information generation processing (S303) according to the present embodiment.
情報処理装置200は、既定識別子情報格納部204から既定識別子情報(図7参照)を読み込む(ステップS501)。そして、情報処理装置200は、読み込んだ既定識別子情報を識別子情報244に転記する(ステップS503:図6の(a)参照)。このとき、既定欄に“true”を設定する。
The
次に、情報処理装置200は、クラス図(401)から識別子を抽出し、識別子情報244に登録する(ステップS505:図6の(b)参照)。クラスごとに2つの識別子を抽出し、クラスのメンバ属性ごとに1つの識別子を抽出する。
Next, the
次に、情報処理装置200は、アクティビティ図(402)から、まだ識別子情報244に登録されていない変数を抽出し、識別子情報244に登録する(ステップS507:図6の(c)参照)。
Next, the
さらに、情報処理装置200は、アクティビティ図(402)において、代入式の両辺に出現する変数について、代入実行前の変数の値を保持する変数(以降、事前変数と称す)を導入し、識別子情報244に登録する(ステップS509:図6の(d)参照)。
Furthermore, in the activity diagram (402), the
(識別子情報)
図6は、本実施形態に係る生成された識別子情報244の構成を示す図である。ステップS303において生成された識別子情報244は、識別子情報格納部280に検索可能に格納される。
(Identifier information)
FIG. 6 is a diagram showing a configuration of the generated
識別子情報244(280)は、識別子601に対応付けて、基本型602と、分類603と、静的制約604と、規定605と、を記憶する。識別子601は、クラス図およびアクティビティ図が含む全てのクラス名、メソッド名、変数名、定数名などである。基本型602は、識別子601として記述可能なあるいは代入可能な値を決めるものである。分類603は、識別子601が集合を表わすか、要素を表わすかを示す。静的制約604は、識別子601の不変条件である。規定605は、識別子601が既定識別子か否かを表わす(既定識別子=true/非既定識別子=faise)。
The identifier information 244 (280) stores a
そして、図6の右端には、上記図5の各ステップで生成された識別子情報が示されている。以下、上記図5の各ステップにおける識別子情報の生成を詳細に説明する。 And the identifier information produced | generated at each step of the said FIG. 5 is shown by the right end of FIG. Hereinafter, the generation of the identifier information in each step of FIG. 5 will be described in detail.
(識別子情報の(a)生成:S501、S503)
情報処理装置200は、既定識別子情報格納部204から既定識別子情報を読み込み(ステップS501)、読み込んだ既定識別子情報を識別子情報244(図6の(a))に転記する(ステップS503)。このとき、既定欄に“true”を設定する。
((A) generation of identifier information: S501, S503)
The
(既定識別子情報)
図7は、本実施形態に係る既定識別子情報格納部204の既定識別情報の構成を示す図である。
(Default identifier information)
FIG. 7 is a diagram showing a configuration of default identification information in the default identifier
既定識別子情報は、ソフトウェアの設計で必要となる典型的な定数と、定数が属する基本的な型(以降、基本型)と、集合か要素であるかの分類と、識別子間に常に成り立つ制約(以降、静的制約)と、を含む。静的制約は、ソフトウェアが行う処理の影響を受けずに、常に成り立つべき条件である。 The default identifier information includes typical constants necessary for software design, basic types to which the constants belong (hereinafter referred to as basic types), classifications of sets or elements, and constraints that always hold between identifiers ( Hereinafter, static constraints) are included. Static constraints are conditions that should always hold without being affected by processing performed by software.
図4の具体例によれば、識別子「文字列」は、基本型が「文字列」自体であり、集合に分類され、静的制約を持たない。識別子「空文字列」は、基本型が「文字列」であり、要素に分類され、「空文字列は文字列の要素である(空文字列∈文字列)」という静的制約を持つ。識別子「非空文字列」は、基本型が「文字列」であり、集合に分類され、「非空文字列は文字列から空文字列を除いた集合である(非空文字列=文字列\{空文字列})」(記号“\”および図面の類似表示は差集合を表わす)という静的制約を持つ。 According to the specific example of FIG. 4, the identifier “character string” has the basic type “character string” itself, is classified into a set, and has no static constraints. The identifier “empty character string” has a basic type of “character string”, is classified into elements, and has a static constraint “an empty character string is an element of a character string (empty character string ∈ character string)”. The identifier "Non-empty string" has the basic type "Character string" and is classified into a set. "Non-empty string is a set obtained by removing an empty string from a character string (non-empty string = character string \ {empty character string" }) ”(The symbol“ \ ”and the similar display in the drawing represent a difference set).
(識別子情報の(b)生成:S505)
情報処理装置200は、クラス図(401)から識別子を抽出し、識別子情報(図6の(b))に登録する(ステップS505)。クラスごとに2つの識別子を抽出し、クラスのメンバ属性ごとに1つの識別子を抽出する。
((B) generation of identifier information: S505)
The
クラスの名称が「C」のとき、1つ目の識別子として「C型」を導入する。「C型」の識別子情報は、基本型を「C型」、分類を「集合」、静的制約を持たず、既定を“false”とする。2つ目の識別子「C」の識別子情報は、基本型を「C型」、分類を「集合」、静的制約を持たず、既定欄を“false”とする。 When the name of the class is “C”, “C type” is introduced as the first identifier. In the identifier information of “C type”, the basic type is “C type”, the classification is “set”, no static constraints, and the default is “false”. In the identifier information of the second identifier “C”, the basic type is “C type”, the classification is “set”, no static constraints, and the default column is “false”.
メンバ属性の名称が「M」のとき、識別子として「C_M」を導入する。「C_M」の識別子情報は、基本型を「C型」から「M」の型の基本型への半関数(C型+->Mの型の基本型)、分類を「集合」、特別な制約がなければ「CからMの型への半関数である(C+->Mの型)」という静的制約を持ち、既定欄を“false”とする。 When the member attribute name is “M”, “C_M” is introduced as an identifier. The identifier information of “C_M” is a semi-function from the basic type “C type” to the basic type of “M” type (C type +-> M type basic type), classification “set”, special If there is no constraint, a static constraint “half function from C to M type (C +-> M type)” is set, and the default column is “false”.
図4のクラス図(401)によれば、「商品」クラスの「商品CD」メンバ属性には、ステレオタイプ「<<pk>>」によって、「商品CD」によって「商品」クラスのオブジェクトが一意に識別できる、という制約が付与されている。したがって、図6の識別子「商品_商品CD」は、「商品」から「商品CD」の型である「非空文字列」への全域単射関数である(商品_商品CD∈商品|→非空文字列)、という静的制約をもつ。 According to the class diagram (401) in FIG. 4, the “product CD” member attribute of the “product” class has a unique “product” class object by “product CD” by the stereotype “<< pk>”. The restriction that it can be identified is given. Accordingly, the identifier “product_product CD” in FIG. 6 is a global injection function from “product” to “non-empty character string” which is the type of “product CD” (product_product CD∈product | → non-empty character). Column)).
(識別子情報の(c)生成:507)
情報処理装置200は、アクティビティ図(402)から、まだ識別子情報に登録されていない変数を抽出し、識別子情報(図6の(c))に登録する(ステップS507)。
((C) generation of identifier information: 507)
The
変数vの識別子情報において、vの基本型は、その変数が初めて出現する論理式あるいは代入式において、vと比較あるいは代入される定数や変数の基本型とする。また、vの分類は、前記式において、vと比較あるいは代入される定数や変数の分類と、比較演算子あるいは代入演算子の種類と、によって決める。 In the identifier information of the variable v, the basic type of v is a basic type of a constant or variable that is compared or assigned to v in a logical expression or assignment expression in which the variable first appears. Further, the classification of v is determined by the classification of constants and variables to be compared or substituted with v and the type of comparison operator or assignment operator in the above formula.
図4のアクティビティ図(402)で、変数「商品CD」は、論理式「商品CD≠空文字列」において、「空文字列」と比較されており、「空文字列」の基本型は「文字列」なので(図8の(a)参照)、「商品CD」の基本型は「文字列」とする。また、「空文字列」の分類は「要素」であり、上述の式では「商品CD」を要素とは同じではない(≠)としているので、「商品CD」の分類は「要素」とする。 In the activity diagram (402) of FIG. 4, the variable “product CD” is compared with “null character string” in the logical expression “product CD ≠ null character string”, and the basic type of “null string” is “string”. Therefore (see (a) of FIG. 8), the basic type of “product CD” is “character string”. Further, the classification of “empty character string” is “element”, and “product CD” is not the same as the element (≠) in the above formula, so the classification of “product CD” is “element”.
変数「新規商品」は、論理式「新規商品∈/商品」において、「商品」と比較されており、「商品」の基本型は「商品型」なので(図8の(b)参照)、「新規商品」の基本型は「商品型」となる。また、「商品」の分類は「集合」であり、上述の式では「新規商品」を集合の要素ではない(∈/)としているので、「新規商品」の分類も「要素」とする。 The variable “new product” is compared with “product” in the logical expression “new product ∈ / product”, and the basic type of “product” is “product type” (see FIG. 8B). The basic type of “new product” is “product type”. The classification of “product” is “set”, and in the above formula, “new product” is not an element of the set (∈ /), so the classification of “new product” is also “element”.
(識別子情報の(d)生成:S509)
さらに、局所事後条件生成部202は、アクティビティ図(402)において、代入式の両辺に出現する変数について、代入実行前の変数の値を保持する変数(以降、事前変数)を導入し、識別子情報(図6の(d))に登録する(ステップS507)。
((D) generation of identifier information: S509)
Further, the local
変数vに対応する事前変数は、識別子をpre_v、基本型をvの基本型、分類をvの基本型とし、vに静的制約があれば、そこに出現する変数のうち対応する事前変数があるものを全て事前変数で置換した式をpre_vの静的変数とする。 The pre-variable corresponding to the variable v has an identifier pre_v, a basic type v basic type, a classification v basic type, and if v has a static constraint, the corresponding pre-variable among the variables appearing there is An expression that replaces all of them with a prior variable is defined as a pre_v static variable.
図4のアクティビティ図(402)によれば、代入式「商品:=商品∪{新規商品}」の両辺に「商品」が、代入式「商品_商品CD:=商品_商品CD∪{新規商品|→商品CD}」の両辺に「商品.商品CD」が出現するので、それぞれについて事前変数「pre_商品」と「pre_商品_商品CD」を導入する。識別子「商品_商品CD」は静的制約「商品_商品CD∈商品|→非空文字列」を持つので、対応する事前変数「pre_商品_商品CD」は静的制約「pre_商品_商品CD∈pre_商品|→非空文字列」を持つこととする。 According to the activity diagram (402) in FIG. 4, “product” is placed on both sides of the substitution formula “product: = product∪ {new product}”, and the substitution formula “product_product CD: = product_product CD∪ {new product”. | → Product CD} ”appears on both sides, so the pre-variables“ pre_product ”and“ pre_product_product CD ”are introduced for each. Since the identifier “product_product CD” has a static constraint “product_product CD∈product | → non-empty character string”, the corresponding pre-variable “pre_product_product CD” is a static constraint “pre_product_product CD”. CD ∈ pre_product | → non-empty character string ”.
《局所事後条件情報生成処理:S305》
図8は、本実施形態に係る局所事後条件情報生成処理(S305)の手順を示すフローチャートである。
<< Local post-condition information generation processing: S305 >>
FIG. 8 is a flowchart showing a procedure of local post-condition information generation processing (S305) according to the present embodiment.
情報処理装置200は、アクティビティ図(402)の開始ノードから制御フローをたどってノードを探索して、ノードに番号(以降、ノード番号)を割り当てる(ステップS801)。そして、ノード番号の割り当てに続いて、情報処理装置200は、アクションノードの式をもとに、局所事後条件情報245Aを生成する(ステップS803:図10参照)。
The
次に、情報処理装置200は、条件追加ルール格納部205から条件追加ルール(図11参照)を読み込む。そして、情報処理装置200は、前述の局所事後条件情報245A(図10)の各局所事後条件が追加ルール格納部の照合条件と合致すれば、対応する追加条件を追加して局所事後条件情報245Bを生成する(図12参照)。このとき、開始番号欄と枝番欄は合致した局所事後条件と同じ値とし、区分欄は「追加」とする。
Next, the
そして、情報処理装置200は、追加後の局所事後条件情報245B(図12)を調べて、局所事後条件の有効範囲を特定し、終了番号を追記した局所事後条件情報245Cを得る(ステップS807:図13参照)。この終了番号を追記した局所事後条件情報245Cが、局所事後条件情報格納部290に格納される。
Then, the
以下、上記図8の各ステップにおける局所事後条件情報の生成を詳細に説明する。 Hereinafter, the generation of the local postcondition information in each step of FIG. 8 will be described in detail.
(ノード番号割り当て:S801)
図9は、本実施形態に係るノード番号割り当てを示す図である。情報処理装置200は、アクティビティ図(402)の開始ノードから制御フローをたどってノードを探索して、ノード番号を割り当てる(ステップS801)。
(Node number assignment: S801)
FIG. 9 is a diagram showing node number assignment according to the present embodiment. The
ノード番号割り当ては、次のアルゴリズムに従う。
(1) 開始ノードのノード番号を“0”とする。
(2) 先行するノードから制御フローを1回たどって到達するノードのノード番号は、先行ノードのノード番号に“1”を加えた値とする。
(3) すでにノード番号を割り当て済みのノードに到達した場合、そのノードが開始ノードから直前にノード番号を割り当てたノードまでの経路上に出現しているか、経路上には出現していないが新たに割り当てようとしたノード番号よりも割り当て済みのノード番号が大きければ、探索をやめる。そして、制御フローを逆向きにたどり、まだ辿ったことのない制御フローが見つかれば、その制御フローに沿ってノード番号を割り当てるための探索を行う。
(4) 到達したノード(到達ノード)のノード番号が割り当て済みで、かつそのノードが前述の経路上に出現しておらず、かつ新たに割り当てようとした値よりも割り当て済みのノード番号が小さければ、新たな値でノード番号を上書きする。そして、新たな値と割り当て済みのノード番号との差分を、到達ノードの後続の全てのノードのノード番号に加える。さらに、到達ノードから制御フローを逆にたどり、まだ辿ったことのない制御フローが見つかれば、その制御フローに沿ってノード番号を割り当てるための探索を行う。
(5) 全てのノードにノード番号を割り当てれば、アクティビティ図(402)の探索を終える。
Node number assignment follows the following algorithm.
(1) The node number of the start node is set to “0”.
(2) The node number of the node that arrives by following the control flow once from the preceding node is a value obtained by adding “1” to the node number of the preceding node.
(3) When a node to which a node number has already been assigned is reached, the node has appeared on the route from the start node to the node to which the node number was assigned immediately before, or has not appeared on the route but is newly If the assigned node number is larger than the node number to be assigned to, the search is stopped. Then, following the control flow in the reverse direction, if a control flow that has not been traced is found, a search for assigning a node number along the control flow is performed.
(4) The node number of the reached node (reached node) has already been assigned, the node does not appear on the above-mentioned route, and the assigned node number is smaller than the value to be newly assigned. For example, the node number is overwritten with a new value. Then, the difference between the new value and the assigned node number is added to the node numbers of all subsequent nodes of the reaching node. Furthermore, the control flow is traced backward from the reaching node, and if a control flow that has not been traced is found, a search for assigning a node number along the control flow is performed.
(5) When node numbers are assigned to all nodes, the search of the activity diagram (402) is completed.
図9には、上記アルゴリズムに従って、アクティビティ図(402)について、ノード番号を割り当てたアクティビティ図(902)を示す。 FIG. 9 shows an activity diagram (902) in which node numbers are assigned to the activity diagram (402) according to the above algorithm.
(アクティビティ図を元に局所事後条件情報生成:S803)
図10は、本実施形態に係るアクティビティ図を元に生成された局所事後条件情報245Aの構成を示す図である。局所事後条件情報245Aは、RAM240の局所事後条件情報245に一時記憶される。
(Local post-condition information generation based on activity diagram: S803)
FIG. 10 is a diagram showing a configuration of local
局所事後条件情報245Aにおいて、各局所事後条件1005は、有効範囲の開始となるノード番号である開始番号1001と、論理式か代入式かを示す枝番1002と、有効範囲の終了となるノード番号である終了番号1003と、有効/無効/新規などの区分1004とを有する。
In the local
アクションノードの式が論理式である場合は、その論理式をそのまま局所事後条件とする。 If the action node expression is a logical expression, the logical expression is used as a local postcondition.
また、アクションノードの式が代入式であり、代入式の両辺に同じ変数が出現しない場合は、代入式の代入演算子を等価演算子などに置き換えて得られる論理式を、局所事後条件とする。例えば、右辺の値を左辺に代入する代入演算子「:=」は等価演算子「=」に、右辺の集合から任意に選んだ要素を左辺に代入する代入演算子「:∈」は左辺の要素が右辺の集合に属することを意味する演算子「∈」に置き換える。 If the action node expression is an assignment expression and the same variable does not appear on both sides of the assignment expression, the logical expression obtained by replacing the assignment operator of the assignment expression with an equality operator, etc. is used as the local postcondition. . For example, the assignment operator “: =” that assigns the value on the right side to the left side is the equality operator “=”, and the assignment operator “: ∈” that assigns an element arbitrarily selected from the set on the right side to the left side is Replace with the operator “∈” which means that the element belongs to the set on the right side.
また、アクションノードの式が代入式であり、代入式の両辺に同じ変数が出現する場合は、その変数に対応する事前変数とその変数との等式を1つめの局所事後条件とする。そして、右辺に出現する変数のうち対応する事前変数がある変数を全て事前変数に置き換えた代入式について、代入式の代入演算子を等価演算子などに置き換えて得られる論理式を2つめの局所事後条件とする。 Further, when the action node expression is an assignment expression and the same variable appears on both sides of the assignment expression, the equality between the pre-variable corresponding to the variable and the variable is set as the first local postcondition. For the assignment expression in which all the variables with corresponding pre-variables appearing on the right-hand side are replaced with pre-variables, the logical expression obtained by substituting the assignment operator of the assignment expression with an equality operator, etc. Post-conditions.
局所事後条件情報の開始番号欄にはアクションノードのノード番号を設定し、枝番欄にはアクションノードの式が論理式であれば“0”を設定し、代入式であれば“1”を設定する。また、区分欄には、事前変数と変数との等式の場合は「追加」を設定し、それ以外の場合は「有効」を設定し、局所事後条件欄には上記で生成した局所事後条件を設定する。 The node number of the action node is set in the start number column of the local post-condition information, and “0” is set in the branch number column if the action node expression is a logical expression, and “1” if it is an assignment expression. Set. In addition, “Addition” is set in the case of the equation of the pre-variable and the variable in the classification column, “Valid” is set in other cases, and the local postcondition generated above is set in the local postcondition column. Set.
例えば、図9のアクティビティ図(902)で、ノード番号1のアクションノードS401における論理式「新規CD≠空文字列」は、そのまま局所事後条件となり、図10の局所事後条件情報245Aでは、1行目〜3行目として登録されている。
For example, in the activity diagram (902) of FIG. 9, the logical expression “new CD ≠ empty character string” in the action node S401 with the
ノード番号2のアクションノードS402における代入式「商品:=商品∪{新規商品}」は、両辺に「商品」が出現するので、まず、事前変数との等式「pre_商品=商品」を局所事後条件として、局所事後条件情報に登録する(図10の4行目)。続いて、もとの代入式から右辺の変数を事前変数で置き換えた代入式「商品:=pre_商品∪{新規商品}」を得る。さらに、代入演算子「:=」を等価演算子「=」に置き換えて得られる論理式「商品=pre_商品∪{新規商品}」を局所事後条件として、局所事後条件情報に登録する(図10の5行目)。
Since “product” appears on both sides of the substitution expression “product: = product∪ {new product}” in the action node S402 of
(局所事後条件追加:S805)
情報処理装置200は、条件追加ルール格納部205から条件追加ルール(図11)を読み込み、図10の局所事後条件情報245Aの各局所事後条件が追加ルール格納部の照合条件と合致すれば、対応する追加条件を追加した局所事後条件情報245B(図12)を生成する。このとき、開始番号欄と枝番欄は合致した局所事後条件と同じ値とし、区分欄は「追加」とする。
(Addition of local post-conditions: S805)
The
(条件追加ルール)
図11は、本実施形態に係る条件追加ルールの構成を示す図である。条件追加ルールは、条件追加ルール格納部205に格納されている。
(Condition addition rule)
FIG. 11 is a diagram showing a configuration of a condition addition rule according to this embodiment. The condition addition rule is stored in the condition addition
条件追加ルールは、パラメータ1101に対応付けて、追加するか否かの照合条件1102と、照合した場合に追加する追加条件1103とを格納する。
The condition addition rule stores a
(条件追加後の局所事後条件情報)
図12は、本実施形態に係る条件追加後の局所事後条件情報245Bの構成を示す図である。
(Local post-condition information after adding conditions)
FIG. 12 is a diagram showing a configuration of local
図10の局所事後条件情報245Aによれば、図10の1行目の局所事後条件「新規CD≠空文字列」は、図11の1行目の条件追加ルールの照合条件「e≠空文字列」について、パラメータ「e」を「新規CD」と見なした式に合致する。したがって、照合条件に対応する追加条件「e∈非空文字列」のパラメータ「e」を「新規CD」で置き換えて得られる式「新規CD∈非空文字列」を新たな局所事後条件として、局所事後条件情報に追加する(図12の2行目)。このようにして得られる局所事後条件情報245B(図12)では、区分欄の「追加」を破線で囲んだ2行目と7行目と10行目と11行目とに局所事後条件1210が追加されている。
According to the local
(有効範囲生成:S807)
情報処理装置200は、局所事後条件情報245B(図12)を調べて、局所事後条件の有効範囲を特定し、終了番号を追記した局所事後条件情報245C(図13)を得る(ステップS807)。
(Effective range generation: S807)
The
局所事後条件の有効範囲は、局所事後条件情報の開始番号と終了番号で示す。局所事後条件は、前記開始番号をノード番号とするアクションノードの実行直後から終了番号をノード番号とするアクションノードの実行直前まで成立する。終了番号が無い場合には、局所事後条件は、開始番号をノード番号とするアクションノードの実行直後から逐次処理全体の終了まで成立する。情報処理装置200は、局所事後条件情報245Bの各行について、当該行と開始番号が同じで枝番が大きい行および当該行よりも開始番号が大きい行の局所事後条件を調べて、当該行の変数が出現する最初の行が見つかれば、その行の開始番号を当該行の終了番号に設定することを繰り返す。さらに、情報処理装置200は、局所事後条件情報の各行において、終了番号が開始番号と同じ行があれば、その行の区分欄に「無効」を設定する。
The effective range of the local postcondition is indicated by the start number and end number of the local postcondition information. The local post-condition is satisfied immediately after execution of the action node having the start number as the node number and immediately before execution of the action node having the end number as the node number. When there is no end number, the local posterior condition is satisfied immediately after the execution of the action node having the start number as the node number until the end of the entire sequential processing. For each row of the local
(有効範囲設定後の局所事後条件情報)
図13は、本実施形態に係る有効範囲設定後の局所事後条件情報245Cの構成を示す図である。
(Local post-condition information after setting effective range)
FIG. 13 is a diagram showing a configuration of the local
図12の局所事後条件情報245Bによれば、図12の4行目の局所事後条件「新規商品∈/商品」の開始番号は“2”、枝番は“0”である。したがって、開始番号が“2”で枝番が“0”より大きい行(図12の5行目から最後まで)と、開始番号が“2”よりも大きい行(図12にはなし)とを調べ、4行目の局所事後条件に出現する変数「新規商品」が最初に出現する7行目の開始番号“2”を4行目の終了番号に設定する。これにより、4行目は、開始番号と終了番号が同じ“2”となるので、その区分欄に「無効」を設定する(図13の4行目)。このようにして得られる局所事後条件情報245C(図13)では、1行目から4行目までの終了番号欄に有効範囲の終了を示す“2”が設定され(1310)、4行目の区分欄に「無効」が設定されている。
According to the local
本実施形態によれば、フローチャートやアクティビティ図の各アクションノードに対して一意のノード番号を割り振るので、各アクションノードごとに処理の流れや局所事後条件の有効範囲などに基づくソフトウェアの設計内容の緻密な整合性検証をすることができる。 According to the present embodiment, a unique node number is assigned to each action node in the flowchart and the activity diagram. Therefore, the software design details based on the processing flow, the effective range of the local postconditions, etc. are detailed for each action node. Consistency verification can be performed.
例えば、本実施形態によれば、アクティビティ図でのアクションノードの実行順序どおりにEvent-Bイベントを実行することを保証できる。その理由は、アクティビティ図のノードにノード番号を付与し、アクティビティ図の有向線分に沿った順序で、開始ノードを“0”とし後続の未割当てのノードに連番を割り当てる。これにより、番号Xのアクションノードの後続のアクションノードでは、その前提条件として「直前に実行されたノード番号がXであること」という条件を明示できるからである。 For example, according to the present embodiment, it can be ensured that Event-B events are executed according to the execution order of action nodes in the activity diagram. The reason is that node numbers are assigned to the nodes in the activity diagram, and the start node is set to “0” in the order along the directed line segment in the activity diagram, and serial numbers are allocated to subsequent unassigned nodes. This is because, in the action node subsequent to the action node of number X, the condition that “the node number executed immediately before is X” can be specified as its precondition.
また、本実施形態によれば、アクティビティ図の各アクションノードの実行結果をEvent-Bの不変条件として明示できる。その際に、局所事後条件の有効範囲も明示できる。その理由は、アクティビティ図のアクションノードにある条件(論理式)をチェックすべきことが記述されていれば、その条件をそのまま局所事後条件とし、データに値を代入することが記述されていれば代入式における代入演算子を等価演算子に置換した論理式を局所事後条件とするからである。また、局所事後条件全体を調べて、ある変数についてノードXと後続のノードYで局所事後条件があれば、ノードXにおける局所事後条件はXの直後からYの直前までである。したがって、ノードYにおける局所事後条件はYの直後から(逐次処理の終了まで)であることを特定し、ノード番号を用いて有効範囲の開始と終了を示すからである。 Further, according to the present embodiment, the execution result of each action node in the activity diagram can be specified as an invariant condition of Event-B. At that time, the effective range of local postconditions can be specified. The reason is that if it is described that the condition (logical expression) in the action node of the activity diagram should be checked, if that condition is used as a local postcondition and it is described that a value is assigned to the data This is because a logical expression obtained by replacing an assignment operator in an assignment expression with an equality operator is used as a local postcondition. Further, if the entire local posterior condition is examined and there is a local posterior condition at a node X and a subsequent node Y for a certain variable, the local posterior condition at the node X is from immediately after X to immediately before Y. Therefore, it is specified that the local posterior condition at the node Y is immediately after Y (until the end of the sequential processing), and indicates the start and end of the effective range using the node number.
[第3実施形態]
次に、本発明の第3実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、生成した識別子情報と有効範囲を有する局所事後条件情報とに基づいてソフトウェア処理の形式記述を生成する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Third Embodiment]
Next, an information processing apparatus according to the third embodiment of the present invention will be described. The information processing apparatus according to the present embodiment is different from the second embodiment in that a format description of software processing is generated based on the generated identifier information and local posterior condition information having a valid range. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
なお、本実施形態では、形式手法の1つであるEvent-Bに生成した識別子情報と有効範囲を有する局所事後条件情報とを適用するが、形式手法はEvent-Bに限定されない。Event-Bでは、対象システムが扱うデータをEvent-Bにおける定数や変数として宣言し、データ構造やデータに関する制約を集合や一階述語論理に基づく論理式である不変条件として記述する。また、対象システムが行う処理を、その処理を実行すべきことを論理式で表したEvent-Bガードと、その処理が実行することを代入式で表したEvent-BアクションからなるEvent-Bイベントとして記述する。 In this embodiment, the identifier information generated in Event-B, which is one of the formal methods, and the local post-condition information having an effective range are applied. However, the formal method is not limited to Event-B. In Event-B, data handled by the target system is declared as constants and variables in Event-B, and data structure and data constraints are described as invariants that are logical expressions based on sets and first-order predicate logic. In addition, an Event-B event consisting of an Event-B guard that expresses the process to be executed by the target system as a logical expression and an Event-B action that expresses that the process should be executed as an assignment expression. Describe as
《情報処理装置の機能構成》
図14Aは、本実施形態に係る情報処理装置1400の機能構成を示すブロック図である。なお、図14Aにおいて、図2Aと同様の機能構成部には同じ参照番号を付して、説明を省略する。
<< Functional configuration of information processing device >>
FIG. 14A is a block diagram illustrating a functional configuration of the
図14Aの情報処理装置1400は、図2Aと同じ入力処理部201を有する。局所事後条件生成部1402は、生成した識別子情報と局所事後条件情報とをそのまま、情報処理装置1400内部の識別子情報格納部1408と局所事後条件情報格納部1409とに格納する。図14Aの情報処理装置1400は、入力処理部201によって読み込まれた設計情報と局所事後条件生成部1402によって生成された識別子情報と局所事後条件とを用いて形式記述を生成する形式記述生成部1406を有する。また、情報処理装置1400は、形式記述生成部1406によって生成された形式記述を形式記述格納部1490に出力する形式記述出力処理部1407を有する。
The
《情報処理装置のハードウェア構成》
図14Bは、本実施形態に係る情報処理装置1400のハードウェア構成を示すブロック図である。図14Bにおいて、図2Bと同様の構成要素には同じ参照番号を付して、説明を省略する。
<< Hardware configuration of information processing equipment >>
FIG. 14B is a block diagram illustrating a hardware configuration of the
情報処理装置1400は、RAM1440に、生成されEvent-Bコンテキスト1448と、生成されたEvent-Bマシン1449と、を記憶する。
The
また、情報処理装置1400は、ストレージ1450に、識別子情報格納部1408と、局所事後条件情報格納部1409と、を有する。また、ストレージ1450に、形式記述を生成するために使用される形式記述生成アルゴリズム1451を記憶する。また、情報処理装置1400を制御する情報処理装置制御プログラム1454は、以下のモジュールを有する。1つは、形式記述生成アルゴリズム1451に従って、識別子情報格納部1408の識別子情報と局所事後条件情報格納部1409の有効範囲を有する局所事後条件情報とから形式記述(本例では、Event-B)を生成する形式記述生成モジュール1457である。もう1つは、情報処理装置制御プログラム1454は、生成された形式記述を形式記述格納部1490に格納する形式記述出力処理モジュール1458である。
In addition, the
また、入出力インタフェース1460には、生成した形式記述を格納する形式記述格納部1490が接続される。
The input /
なお、図14BのRAM1440やストレージ1450には、情報処理装置1400が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
Note that the
《情報処理装置の処理手順》
図15は、本実施形態に係る情報処理装置1400の処理手順を示すフローチャートである。このフローチャートは、図14BのCPU210がRAM1440を使用して実行し、図14Aの機能構成部を実現する。
<< Processing procedure of information processing device >>
FIG. 15 is a flowchart illustrating a processing procedure of the
設計情報の読み込み(ステップS301)から局所事後条件情報の生成(ステップS305)までは、図3と同様の処理を行うので、説明を省く。続く、形式記述の生成(ステップS1507)と形式記述の書き出し(ステップS1509)は、図15で追加された動作である。なお、ステップS1509は単なる生成したデータの書き出し処理なので、説明を省き、図16のフローチャートを用いてステップS1507の動作を詳細に説明する。 The process from reading design information (step S301) to generating local post-condition information (step S305) is the same as that shown in FIG. The subsequent generation of the format description (step S1507) and writing of the format description (step S1509) are the operations added in FIG. Since step S1509 is simply a process of writing the generated data, description thereof will be omitted, and the operation of step S1507 will be described in detail using the flowchart of FIG.
なお、形式記述とは、ソフトウェアの仕様や設計内容を形式手法の記法を用いて表現した情報を指す。ここでは具体的な形式手法としてEvent-Bを用いて説明し、Event-Bの記法による形式記述をEvent-B記述と呼ぶこととする。Event-B記述は、基本的な集合や定数の集まりからなるコンテキストと、変数と変数に関する制約と変数の値を更新するイベントの集まりからなるマシンと、からなる。コンテキストは他のコンテキストを拡張できる。マシンはコンテキストを参照する。参照されるコンテキストが他のコンテキストを拡張したものであれば、マシンは拡張元のコンテキストも参照することになる。ここでは、コンテキストC0に文字列といった基本的な型や定数を記述する。また、コンテキストC0を拡張したコンテキストCにクラス図(401)から得られる基本的な型と定数を記述する。そして、コンテキストCを参照するマシンMにクラス図(401)から得られる変数とアクティビティ図(402)から得られるアクションノードの処理内容を記述することとする。 The formal description refers to information that expresses software specifications and design contents using a formal method notation. Here, Event-B will be described as a specific formal method, and the formal description based on Event-B notation will be referred to as an Event-B description. The Event-B description consists of a context that consists of a basic set and a set of constants, and a machine that consists of a set of events that update variables, variable constraints, and variable values. A context can extend other contexts. The machine refers to the context. If the referenced context is an extension of another context, the machine will also reference the original context. Here, a basic type such as a character string or a constant is described in the context C0. In addition, the basic type and constant obtained from the class diagram (401) are described in the context C that is an extension of the context C0. Then, the variable obtained from the class diagram (401) and the processing contents of the action node obtained from the activity diagram (402) are described in the machine M that refers to the context C.
《形式記述生成処理》
図16は、本実施形態に係る形式記述生成処理(S1507)の手順を示すフローチャートである。
<< Form description generation process >>
FIG. 16 is a flowchart showing the procedure of format description generation processing (S1507) according to this embodiment.
まず、情報処理装置1400は、識別子情報を調べてEvent-Bにおける定数とすべき識別子を抽出して、Event-B記述(Event-Bコンテキスト)を生成する(ステップS1601)。
First, the
次に、情報処理装置1400は、定数に関する記述の生成に続いて、識別子情報を調べてEvent-Bにおける変数とすべき識別子を抽出して、Event-B記述(Event-Bマシン)を生成する(ステップS1603)。
Next, the
次に、情報処理装置1400は、変数に関する記述の生成に続いて、アクティビティ図を調べてEvent-Bにおけるイベントを抽出して、ステップS1603で生成したEvent-Bマシンに追記する(ステップS1605)。
Next, following the generation of the description about the variable, the
そして、情報処理装置1400は、イベントに関する記述の生成に続いて、局所事後条件情報を調べてEvent-Bにおける不変条件を抽出して、ステップS1605で追記されたEvent-Bマシンに不変条件をさらに追記する(ステップS1607)。
Then, after generating the description about the event, the
以下、図16の各ステップの処理を詳細に説明する。 Hereinafter, the process of each step of FIG. 16 will be described in detail.
(定数に関する記述の生成:S1601)
まず、情報処理装置1400は、識別子情報を調べてEvent-Bにおける定数とすべき識別子を抽出して、Event-B記述(コンテキスト)を生成する(ステップS1601)。
(Generation of description about constant: S1601)
First, the
ステップS1601では、まずコンテキストC0を生成し、次にコンテキストCを生成する。情報処理装置1400は、識別子情報において既定欄が“true”である行を、コンテキストC0に記述する。情報処理装置1400は、識別子欄と基本型欄の値が同じであれば、コンテキストC0のsets節に識別子を記述する。情報処理装置1400は、識別子欄と基本型欄の値が異なれば、コンテキストC0のconstants節に識別子を記述する。情報処理装置1400は、constants節に記述された識別子については、分類欄が「集合」であれば、識別子が基本型の部分集合であるという論理式「識別子⊆基本型」を記述する。また、情報処理装置1400は、分類欄が「要素」であれば、識別子が基本型の要素であるという論理式「識別子∈基本型」をaxiom節に記述する。情報処理装置1400は、さらに静的制約欄に記述があれば、それもaxiom節に記述する。
In step S1601, the context C0 is first generated, and then the context C is generated. The
(Event-Bコンテキスト)
図17は、本実施形態に係る形式記述としてのEvent-BコンテキストC0(1448A)の記述を示す図である。Event-Bコンテキスト1448Aは、Event-Bコンテキスト1448BおよびEvent-Bマシン1449Cと関連付けて検索可能に形式記述格納部1490に格納される。図17は、図6の識別子情報において既定欄が“true”である1行目から3行目を元に生成されたコンテキストC0を示す。
(Event-B context)
FIG. 17 is a diagram showing a description of the Event-B context C0 (1448A) as a format description according to the present embodiment. The Event-
また、情報処理装置1400は、識別子情報において既定欄が“false”であり、かつ識別子欄と基本型欄の値が同じ行を、コンテキストCに記述する。コンテキストCのsets節に識別子を記述する。
Further, the
(拡張したEvent-Bコンテキス)
図18は、本実施形態に係る拡張したEvent-BコンテキストC(1448B)の記述を示す図である。Event-Bコンテキスト1448Bは、Event-Bコンテキスト1448AおよびEvent-Bマシン1449Cと関連付けて検索可能に形式記述格納部1490に格納される。図18は、図6の識別子情報において既定欄が“false”であり、識別子欄と基本型欄の値がともに「商品型」である4行目を元に生成されたコンテキストCを示す。コンテキストCの1行目の記述「extends C0」は、コンテキストCがコンテキストC0を拡張することを示す。
(Extended Event-B context)
FIG. 18 is a diagram showing a description of the extended Event-B context C (1448B) according to the present embodiment. The Event-
(変数に関する記述の生成:S1603)
定数に関する記述の生成に続いて、情報処理装置1400は、識別子情報を調べてEvent-Bにおける変数とすべき識別子を抽出して、Event-B記述(マシン)を生成する(ステップS1603)。
(Generation of variable description: S1603)
Following the generation of the description regarding the constant, the
情報処理装置1400は、識別子情報において既定欄が“false”であり、かつ識別子欄と基本型欄の値が異なる行を、マシンMに記述する。Mのvariables節には、識別子を記述する。情報処理装置1400は、variables節に続くinvariants節には、識別子情報の静的制約欄に記述がなく、かつ分類欄が「集合」であれば、識別子が基本型の部分集合であるという論理式「識別子⊆基本型」を記述する。また、情報処理装置1400は、識別子情報の静的制約欄に記述がなく、分類欄が「要素」であれば、識別子が基本型の要素であるという論理式「識別子∈基本型」をinvariants節に記述する。一方、静的制約欄に記述があれば、それを記述する。情報処理装置1400は、invariants節に続く、events節のinitializationイベントには、識別子情報の分類欄が「集合」であれば、識別子の初期値を空集合とする代入式「識別子:=Φ」(記号Φおよび図面の類似表示は空集合を表わす)を記述する。一方、情報処理装置1400は、分類欄が「要素」であれば、識別子の初期値を基本型から任意に選んだ要素とする代入式「識別子:∈基本型」を記述する。
The
(ノード番号および有効範囲の無いEvent-Bマシン)
図19は、本実施形態に係るノード番号および有効範囲の無い形式記述としてのEvent-Bマシン1449Aの記述を示す図である。Event-Bマシン1449Aは、RAM1440のEvent-Bマシン1449に一時記憶される。なお、図19で空白のライン番号は、ステップS1603においては、まだ生成していない記述であり、本実施形態のようにノード番号割り当てによる先行ノードの局所事前条件、あるいは、局所事後条件の有効範囲設定がなければ、図19の形式記述が生成されるのみである。
(Event-B machine without node number and valid range)
FIG. 19 is a diagram showing a description of the Event-
(イベントに関する記述の生成:S1605)
変数に関する記述の生成に続いて、情報処理装置1400は、アクティビティ図を調べてEvent-Bにおけるイベントを抽出して、ステップS1603で生成したEvent-Bマシンに追記する(ステップS1605)。
(Generation of event description: S1605)
Following the generation of the description about the variable, the
(ノード番号追加後のEvent-Bマシン)
図20は、本実施形態に係るノード番号追加後のEvent-Bマシン1449Bの記述を示す図である。Event-Bマシン1449Bは、RAM1440のEvent-Bマシン1449に一時記憶される。なお、図20で空白のライン番号は、後述のステップS1607において生成される有効範囲を有する局所事後条件情報の記述領域である。
(Event-B machine after adding node number)
FIG. 20 is a diagram showing a description of the Event-B machine 1449B after adding the node number according to the present embodiment. The Event-B machine 1449B is temporarily stored in the Event-
まず、情報処理装置1400は、直前に実行されたノードのノード番号を保持する変数sc(step counter)を導入して、マシンのvariables節にsc2001を追記する。また、情報処理装置1400は、invariants節にscが整数であることを示す論理式「sc∈INT」2002を追記する。そして、情報処理装置1400は、initializationイベントにscの初期値が“0”であることを示す代入式「sc:=0」2003を追記する。
First, the
次に、情報処理装置1400は、開始ノードを起点として制御フローをたどって到達するノードごとに、Event-Bイベント「stepノード番号」2011を追記する。また、情報処理装置1400は、局所事前条件追加処理として、Event-Bイベント「stepノード番号」のEvent-Bガード(Guard)には「sc=当該ノードの直前に実行されたノードのノード番号」2012を記述する。さらに、情報処理装置1400は、Event-Bアクションには「sc:=当該ノードのノード番号」2013を記述する。これらのEvent-BガードとEvent-Bアクションの記述によって、アクティビティ図における制御フローのどおりに、各Event-Bイベントが実行されることが保証される。
Next, the
さらに、情報処理装置1400は、当該ノードに記述された論理式を当該ノードに対応するEvent-BイベントのEvent-Bガードに追記し、当該ノードに記述された代入式をEvent-Bアクションに追記する。情報処理装置1400は、代入式の両辺に同じ変数が出現する場合には、「pre_変数:=変数」という代入式をEvent-Bアクションに追記する。
Further, the
なお、本実施形態のようにノード番号割り当てによる先行ノードの局所事前条件、あるいは、局所事後条件の有効範囲設定がなければ、図20の形式記述のEvent-bマシンには変数scは導入されない。その結果、Event-Bイベントには、「stepノード番号」2011も、Event-Bガードの「sc=当該ノードの直前に実行されたノードのノード番号」2012も、Event-Bアクションの「sc:=当該ノードのノード番号」2013も記述されない。 Note that the variable sc is not introduced into the event-b machine in the format description of FIG. 20 if there is no local precondition of the preceding node by node number assignment or effective range setting of the local postcondition as in this embodiment. As a result, in the Event-B event, the “step node number” 2011 and the “sc = node number of the node executed immediately before the relevant node” 2012 of the Event-B guard are both “sc: = "Node number of the node" 2013 is also not described.
(局所事後条件に関する記述の生成:S1607)
イベントに関する記述の生成に続いて、情報処理装置1400は、局所事後条件情報を調べてEvent-Bにおける不変条件を抽出して、ステップS1605で追記されたEvent-Bマシンに不変条件を追記する(ステップS1607)。
(Generation of description about local posterior condition: S1607)
Following the generation of the description about the event, the
情報処理装置1400は、局所事後条件情報のうち区分欄が「有効」である行について、終了番号に記述がなければ、論理式「開始番号≦sc ⇒ ( 局所事後条件 )」を、Event-Bマシンのinvariant節に追記する。また、情報処理装置1400は、終了番号に記述があれば、論理式「開始番号≦sc ∧ sc<終了番号 ⇒ ( 局所事後条件 )」を、Event-Bマシンのinvariant節に追記する。ここで、⇒は論理の含意(〜ならば)、∧は論理積を表す。なお、上記例では、区分欄が「有効」である行について局所事後条件として記述したが、図12の他の区分欄が「追加」である行により代用することもできる。
If there is no description in the end number for the line whose classification field is “valid” in the local post-condition information, the
(有効範囲のある局所事後条件設定後のEvent-Bマシン)
図21は、本実施形態に係る有効範囲のある局所事後条件設定後のEvent-Bマシン1449Cの記述を示す図である。Event-Bマシン1449Cは、Event-Bコンテキスト1448AおよびEvent-Bコンテキスト1448Bと関連付けて検索可能に形式記述格納部1490に格納される。図21は、図4のアクティビティ図(402)と図13の局所事後条件情報245Cを元に生成されたマシンMを示す。Mの1行目の記述「sees C」は、MがコンテキストCを参照することを示す。
(Event-B machine after setting local post-conditions with effective range)
FIG. 21 is a diagram showing a description of the Event-
本実施形態によれば、生成した形式記述において、アクティビティ図でのアクションノードの実行順序どおりにEvent-Bイベントを実行できる。また、生成した形式記述において、アクティビティ図の各アクションノードの実行結果をEvent-Bの不変条件にできる。 According to the present embodiment, Event-B events can be executed in the generated format description according to the execution order of action nodes in the activity diagram. In addition, in the generated format description, the execution result of each action node in the activity diagram can be an invariant condition of Event-B.
[他の実施形態]
以上、実施形態を参照して発明を説明したが、発明は上記実施形態に限定されるものではない。発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other Embodiments]
While the invention has been described with reference to the embodiments, the invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the invention within the scope of the present invention. In addition, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the scope of the present invention.
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。 In addition, the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed in the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.
[実施形態の他の表現]
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理手段と、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理手段により読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成手段と、
を備える情報処理装置。
(付記2)
前記局所事後条件生成手段は、
前記アクティビティ図に含まれる各ノードに前記ソフトウェアの処理の流れにしたがって一意のノード番号を割り当てるノード番号割当手段と、
前記アクティビティ図に含まれる各ノードの実行内容と前記ノード番号とに基づいて、前記局所事後条件の有効範囲を生成する有効範囲生成手段と、
を含む付記1に記載の情報処理装置。
(付記3)
前記有効範囲生成手段は、前記局所事後条件において有効範囲を示すノードの開始番号とノードの終了番号が等しい場合に、当該局所事後条件を無効とする付記2に記載の情報処理装置。
(付記4)
前記設計情報、前記識別子情報および前記局所事後条件情報を用いて、前記ソフトウェアの仕様を形式手法の記法で表現した形式記述を生成する形式記述生成手段、をさらに備える付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記形式記述生成手段は、
前記形式記述に対して、前記アクティビティ図に含まれる先行ノードに割り当てられたノード番号を局所事前条件として追加する局所事前条件追加手段と、
前記形式記述に対して、前記有効範囲を記述した局所事後条件を追加する局所事後条件追加手段と、
を含む付記4に記載の情報処理装置。
(付記6)
前記形式記述生成手段は、Event−Bの形式手法により形式記述を行ない、
前記局所事前条件追加手段は、Event−Bマシンにおいて、前記ノード番号を変数として追加して、前記ノード番号のアクションノードのガード(Guard)節として先行ノードのノード番号を記述し、
前記局所事後条件追加手段は、Event−Bマシンにおいて、前記有効範囲としてのノードの開始番号と終了番号とを含んだ局所事後条件を不変条件(Invariants)節に記述する付記5に記載の情報処理装置。
(付記7)
データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理ステップと、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
を含む情報処理方法。
(付記8)
前記設計情報、前記識別子情報および前記局所事後条件情報を用いて、前記ソフトウェアの仕様を形式手法の記法で表現した形式記述を生成する形式記述生成ステップ、をさらに含む付記7に記載の情報処理方法。
(付記9)
データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理ステップと、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
をコンピュータに実行させる情報処理プログラム。
(付記10)
前記設計情報、前記識別子情報および前記局所事後条件情報を用いて、前記ソフトウェアの仕様を形式手法の記法で表現した形式記述を生成する形式記述生成ステップ、をさらにコンピュータに実行させる付記9に記載の情報処理プログラム。
[Other expressions of embodiment]
A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(Appendix 1)
An input processing means for reading design information consisting of a class diagram describing the static structure and constraints of data, an activity diagram describing the flow and execution contents of software processing data sequentially,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read by the input processing means by reading predetermined identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; , A local post-condition generation means for generating
An information processing apparatus comprising:
(Appendix 2)
The local posterior condition generating means is
Node number assigning means for assigning a unique node number to each node included in the activity diagram according to the processing flow of the software;
Based on the execution contents of each node included in the activity diagram and the node number, effective range generating means for generating an effective range of the local post condition,
The information processing apparatus according to
(Appendix 3)
The information processing apparatus according to
(Appendix 4)
Any one of
(Appendix 5)
The format description generating means includes:
A local precondition adding means for adding a node number assigned to a preceding node included in the activity diagram as a local precondition to the format description;
A local postcondition adding means for adding a local postcondition describing the effective range to the format description;
The information processing apparatus according to
(Appendix 6)
The format description generation means performs format description by an Event-B format method,
The local precondition adding means adds the node number as a variable in the Event-B machine, and describes the node number of the preceding node as a guard section of the action node of the node number,
The local post-condition adding means is the information processing according to
(Appendix 7)
An input processing step for reading design information consisting of a class diagram that describes the static structure and constraints of data, an activity diagram that describes the flow and execution contents of software that sequentially processes data,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read in the input processing step by reading default identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; Generating a local post condition,
An information processing method including:
(Appendix 8)
The information processing method according to
(Appendix 9)
An input processing step for reading design information consisting of a class diagram that describes the static structure and constraints of data, an activity diagram that describes the flow and execution contents of software that sequentially processes data,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read in the input processing step by reading default identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; Generating a local post condition,
An information processing program that causes a computer to execute.
(Appendix 10)
The format description generating step of generating a format description in which the software specification is expressed by a format method notation using the design information, the identifier information, and the local postcondition information is further executed by the computer. Information processing program.
Claims (10)
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理手段により読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成手段と、
を備える情報処理装置。 An input processing means for reading design information consisting of a class diagram describing the static structure and constraints of data, an activity diagram describing the flow and execution contents of software processing data sequentially,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read by the input processing means by reading predetermined identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; , A local post-condition generation means for generating
An information processing apparatus comprising:
前記アクティビティ図に含まれる各ノードに前記ソフトウェアの処理の流れにしたがって一意のノード番号を割り当てるノード番号割当手段と、
前記アクティビティ図に含まれる各ノードの実行内容と前記ノード番号とに基づいて、前記局所事後条件の有効範囲を生成する有効範囲生成手段と、
を含む請求項1に記載の情報処理装置。 The local posterior condition generating means is
Node number assigning means for assigning a unique node number to each node included in the activity diagram according to the processing flow of the software;
Based on the execution contents of each node included in the activity diagram and the node number, effective range generating means for generating an effective range of the local post condition,
The information processing apparatus according to claim 1, comprising:
前記形式記述に対して、前記アクティビティ図に含まれる先行ノードに割り当てられたノード番号を局所事前条件として追加する局所事前条件追加手段と、
前記形式記述に対して、前記有効範囲を記述した局所事後条件を追加する局所事後条件追加手段と、
を含む請求項4に記載の情報処理装置。 The format description generating means includes:
A local precondition adding means for adding a node number assigned to a preceding node included in the activity diagram as a local precondition to the format description;
A local postcondition adding means for adding a local postcondition describing the effective range to the format description;
The information processing apparatus according to claim 4 including:
前記局所事前条件追加手段は、Event−Bマシンにおいて、前記ノード番号を変数として追加して、前記ノード番号のアクションノードのガード(Guard)節として先行ノードのノード番号を記述し、
前記局所事後条件追加手段は、Event−Bマシンにおいて、前記有効範囲としてのノードの開始番号と終了番号とを含んだ局所事後条件を不変条件(Invariants)節に記述する請求項5に記載の情報処理装置。 The format description generation means performs format description by an Event-B format method,
The local precondition adding means adds the node number as a variable in the Event-B machine, and describes the node number of the preceding node as a guard section of the action node of the node number,
6. The information according to claim 5, wherein the local post-condition adding means describes, in the Event-B machine, a local post-condition including a start number and an end number of the node as the effective range in an invariants section. Processing equipment.
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
を含む情報処理方法。 An input processing step for reading design information consisting of a class diagram that describes the static structure and constraints of data, an activity diagram that describes the flow and execution contents of software that sequentially processes data,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read in the input processing step by reading default identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; Generating a local post condition,
An information processing method including:
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
をコンピュータに実行させる情報処理プログラム。 An input processing step for reading design information consisting of a class diagram that describes the static structure and constraints of data, an activity diagram that describes the flow and execution contents of software that sequentially processes data,
Names of constants or variables necessary for creating a format description from the design information and the default identifier information read in the input processing step by reading default identifier information describing data types or constants used in software design Identifier information comprising a type and a static constraint, a local post condition that is a logical expression indicating a result of executing the execution content described in the activity diagram, and local post condition information indicating an effective range of the local post condition; Generating a local post condition,
An information processing program that causes a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013123227A JP2014241051A (en) | 2013-06-11 | 2013-06-11 | Information processing apparatus, information processing method, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013123227A JP2014241051A (en) | 2013-06-11 | 2013-06-11 | Information processing apparatus, information processing method, and information processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014241051A true JP2014241051A (en) | 2014-12-25 |
Family
ID=52140263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013123227A Pending JP2014241051A (en) | 2013-06-11 | 2013-06-11 | Information processing apparatus, information processing method, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014241051A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017204035A (en) * | 2016-05-09 | 2017-11-16 | 日本電信電話株式会社 | Functional unit singulation system, functional unit singulation method, and functional unit singulation program |
JP2018124828A (en) * | 2017-02-01 | 2018-08-09 | 日本電信電話株式会社 | Table data analysis program |
-
2013
- 2013-06-11 JP JP2013123227A patent/JP2014241051A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017204035A (en) * | 2016-05-09 | 2017-11-16 | 日本電信電話株式会社 | Functional unit singulation system, functional unit singulation method, and functional unit singulation program |
JP2018124828A (en) * | 2017-02-01 | 2018-08-09 | 日本電信電話株式会社 | Table data analysis program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nevliudov et al. | Development of a cyber design modeling declarative Language for cyber physical production systems | |
Gosain et al. | Static analysis: A survey of techniques and tools | |
JP5379711B2 (en) | Computer-implemented method, system, and computer program for verifying correctness of execution history, including multiple operations executed in parallel on data structure | |
JP5652326B2 (en) | Software module testing method and system | |
EP2420931B1 (en) | Solving hybrid constraints to generate test cases for validating a software module | |
JP5786512B2 (en) | Solve hybrid constraints to verify security software modules for detecting injection attacks | |
Szárnyas et al. | IncQuery-D: A distributed incremental model query framework in the cloud | |
JP5786511B2 (en) | Solve hybrid constraints to verify software module specification requirements | |
Hooimeijer et al. | StrSolve: solving string constraints lazily | |
Blahoudek et al. | Complementing semi-deterministic Büchi automata | |
Van Hee et al. | Soundness of resource-constrained workflow nets | |
US20190303266A1 (en) | String transformation based trace classification and analysis | |
US9304893B1 (en) | Integrated software development and test case management system | |
Khanda et al. | A parallel algorithm template for updating single-source shortest paths in large-scale dynamic networks | |
JP6137175B2 (en) | Hierarchical probability model generation system, hierarchical probability model generation method, and program | |
Iftikhar et al. | A model interpreter for timed automata | |
JP2014241051A (en) | Information processing apparatus, information processing method, and information processing program | |
Stoilkovska et al. | Eliminating message counters in threshold automata | |
JP5365182B2 (en) | Temporal formula creation support system, temporal formula creation support method, and temporal formula creation support program | |
Ajila et al. | Aspectualization of code clones—an algorithmic approach | |
Ba-Brahem et al. | The proposal of improved inexact isomorphic graph algorithm to detect design patterns | |
Calvo et al. | Conformance relations for fuzzy automata | |
Jnanamurthy et al. | Multi-level analysis of IEC 61131-3 languages to detect clones | |
Pira et al. | Verification of confliction and unreachability in rule-based expert systems with model checking | |
Zhang et al. | Invariant-preserved transformation of state machines from equations into rewrite rules |