JP2014241051A - Information processing apparatus, information processing method, and information processing program - Google Patents

Information processing apparatus, information processing method, and information processing program Download PDF

Info

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
Application number
JP2013123227A
Other languages
Japanese (ja)
Inventor
祐介 橋本
Yusuke Hashimoto
祐介 橋本
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2013123227A priority Critical patent/JP2014241051A/en
Publication of JP2014241051A publication Critical patent/JP2014241051A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform precise integrity verification on a design content of software based on a processing flow, an effective range of local post-conditions, and the like for each action node in a flowchart or an activity chart.SOLUTION: An information processing apparatus includes: an input processing unit reading design information, the design information including a class chart describing a static structure and restrictions of each data and an activity chart describing a software processing flow for consecutively processing the data and execution contents; and a local post-condition generation unit reading default identifier information describing data types or constants for use in software designing, and generating identifier information including names, types, and static restrictions of constants or variables necessary to create format description and local post-condition information indicating local post-conditions that are a logical formula representing a result of executing the execution contents described in the activity chart and an effective range of the local post-conditions from the design information read by the input processing unit and the default identifier information.

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 Document 1 describes the software design contents as a set or first-order predicate logic expression using Event-B, which is one of the formal methods, and there is a consistency among the plurality of expressions. A technique for guaranteeing that the description of Event-B is free of defects by mathematically proving that with the support of a tool is disclosed. And in (II) Event-B: Structure and Laws-P7, "2.6 Consistency Proofs for an Event System: Feasibility and Invariance Preservation," in Non-Patent Document 1, an invariant is expressed by the expression labeled "INV". Conservation laws are described.

C. Metayer, J.-R. Abrial, L. Voisin, "RODIN Deliverable 3.2 Event-B Language," RODIN(Rigorous Open Development Environment for Complex Systems), Project IST-511599, 31st May 2005C. Metayer, J.-R. Abrial, L. Voisin, "RODIN Deliverable 3.2 Event-B Language," RODIN (Rigorous Open Development Environment for Complex Systems), Project IST-511599, 31st May 2005

しかしながら、ソフトウェアの設計では、当該ソフトウェアが操作するデータを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.

本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on 1st Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る設計情報としてのクラス図およびアクティビティ図の構成を示す図である。It is a figure which shows the structure of the class diagram and activity diagram as design information which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る識別子情報生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the identifier information generation process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る生成された識別子情報の構成を示す図である。It is a figure which shows the structure of the produced | generated identifier information which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る既定識別子情報の構成を示す図である。It is a figure which shows the structure of the default identifier information which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る局所事後条件情報生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the local posterior condition information generation process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るノード番号割り当てを示す図である。It is a figure which shows the node number allocation which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るアクティビティ図を元に生成された局所事後条件情報の構成を示す図である。It is a figure which shows the structure of the local postcondition information produced | generated based on the activity diagram which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る条件追加ルールの構成を示す図である。It is a figure which shows the structure of the condition addition rule which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る条件追加後の局所事後条件情報の構成を示す図である。It is a figure which shows the structure of the local posterior condition information after the condition addition which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る有効範囲設定後の局所事後条件情報の構成を示す図である。It is a figure which shows the structure of the local postcondition information after the effective range setting which concerns on 2nd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る形式記述生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the format description production | generation process which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る形式記述としてのEvent-Bコンテキストの記述を示す図である。It is a figure which shows description of Event-B context as a format description which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る拡張したEvent-Bコンテキストの記述を示す図である。It is a figure which shows the description of the extended Event-B context which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係るノード番号および有効範囲の無い形式記述としてのEvent-Bマシンの記述を示す図である。It is a figure which shows the description of the Event-B machine as a format description without a node number and an effective range concerning 3rd Embodiment of this invention. 本発明の第3実施形態に係るノード番号追加後のEvent-Bマシンの記述を示す図である。It is a figure which shows the description of the Event-B machine after the node number addition which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る有効範囲のある局所事後条件設定後のEvent-Bマシンの記述を示す図である。It is a figure which shows the description of the Event-B machine after the setting of the local postcondition with the effective range which concerns on 3rd Embodiment of this invention.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。例えば、形式記述として以下では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 information processing apparatus 100 as a first embodiment of the present invention will be described with reference to FIG. The information processing apparatus 100 is an apparatus that supports design information format verification.

図1に示すように、情報処理装置100は、入力処理部101と、局所事後条件生成部102と、を含む。入力処理部101は、データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報111を読み込む。局所事後条件生成部102は、ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報121を込む。そして、局所事後条件生成部102は、入力処理部101により読み込まれた設計情報111および既定識別子情報121から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報122を生成する。さらに、局所事後条件生成部102は、アクティビティ図に記述された実行内容を実行した結果を示す論理式である局所事後条件および局所事後条件の有効範囲を示す局所事後条件情報123を生成する。   As illustrated in FIG. 1, the information processing apparatus 100 includes an input processing unit 101 and a local posterior condition generation unit 102. The input processing unit 101 reads design information 111 including a class diagram describing a static structure and constraints of data, and an activity diagram describing a processing flow and execution contents of software that sequentially processes data. . The local post-condition generation unit 102 includes default identifier information 121 that describes data types or constants used in software design. Then, the local post-condition generation unit 102, from the design information 111 and the default identifier information 121 read by the input processing unit 101, an identifier including the name, type, and static constraint of a constant or variable necessary for creating a format description Information 122 is generated. Furthermore, the local postcondition generation unit 102 generates local postconditions that are logical expressions indicating the results of executing the execution contents described in the activity diagram and local postcondition information 123 indicating the valid range of the local postconditions.

本実施形態によれば、フローチャートやアクティビティ図の各アクションノードごとに、ソフトウェアの設計内容の緻密な整合性検証をすることができる。   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 information processing apparatus 200 according to the present embodiment. Referring to FIG. 2A, the information processing apparatus 200 according to the present embodiment functionally includes an input processing unit 201 and a local The post-condition generation unit 202 and the output processing unit 203 are included.

入力処理部201は、設計情報を検索可能に格納する設計情報格納部270からクラス図とアクティビティ図とからなる設計情報を読み込む(図4参照)。   The input processing unit 201 reads design information including a class diagram and an activity diagram from a design information storage unit 270 that stores design information so as to be searchable (see FIG. 4).

局所事後条件生成部202は、入力処理部201により読み込まれた設計情報から識別子を抽出し、既定識別子情報格納部204から読み込んだ既定識別子情報と合わせて、識別子情報とする。識別子情報は、識別子と基本型と分類と静的制約を含む。クラス図においては、クラスおよび属性の名称が識別子となる。アクティビティ図においては、その名称がクラス図に出現しない変数の名称が識別子となる。   The local posterior condition generation unit 202 extracts an identifier from the design information read by the input processing unit 201, and uses it as identifier information together with the default identifier information read from the default identifier information storage unit 204. The identifier information includes an identifier, a basic type, a classification, and a static constraint. In the class diagram, the names of classes and attributes are identifiers. In an activity diagram, the name of a variable whose name does not appear in the class diagram is an identifier.

また、局所事後条件生成部202は、入力処理部201により読み込まれたアクティビティ図から、アクティビティ図の各アクションノードの実行後に成立すべき局所事後条件を抽出し、局所事後条件情報として保持する。アクションノードに記載された論理式は、そのまま局所事後条件とする。代入式は、例えば、代入演算子「:=」を等価演算子「=」で置換することにより、局所事後条件とする。また、局所事後条件生成部202が、抽出した局所事後条件が条件追加ルール格納部205から読み込んだ条件追加ルールの入力条件に合致すれば、追加条件ルールから新たな局所事後条件を導出し、局所事後条件情報に追加する。さらに、本実施形態においては、局所事後条件生成部202が、局所事後条件情報を調べて、各局所事後条件の有効範囲を特定する。   In addition, the local post-condition generation unit 202 extracts a local post-condition that should be satisfied after the execution of each action node in the activity diagram from the activity diagram read by the input processing unit 201, and holds it as local post-condition information. The logical expression described in the action node is used as the local postcondition. For example, an assignment expression uses a local postcondition by replacing the assignment operator “: =” with an equality operator “=”. Further, if the extracted local postcondition matches the input condition of the condition addition rule read from the condition addition rule storage unit 205, the local postcondition generation unit 202 derives a new local postcondition from the additional condition rule, Add to post-condition information. Further, in the present embodiment, the local post-condition generation unit 202 examines the local post-condition information and identifies the effective range of each local post-condition.

出力処理部203は、局所事後条件生成部202により作成された識別子情報と局所事後条件情報とをそれぞれ、関連付けて検索可能に識別子情報格納部280と局所事後条件情報格納部290とに書き出す。   The output processing unit 203 writes the identifier information and the local post-condition information generated by the local post-condition generation unit 202 to the identifier information storage unit 280 and the local post-condition information storage unit 290 so that they can be searched in association with each other.

《情報処理装置のハードウェア構成》
図2B、本実施形態に係る情報処理装置200のハードウェア構成を示すブロック図である。
<< Hardware configuration of information processing equipment >>
FIG. 2B is a block diagram illustrating a hardware configuration of the information processing apparatus 200 according to the present embodiment.

図2Bで、CPU210は演算制御用のプロセッサであり、CPU210がRAM240を使用しながらストレージ250に格納されたプログラムおよびモジュールを実行することで、図2Aに示された情報処理装置200の各機能構成部の機能が実現される。ROM220は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部230は、ネットワークを介して外部装置と通信する。なお、CPU210は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。   2B, the CPU 210 is a processor for arithmetic control, and the CPU 210 executes programs and modules stored in the storage 250 while using the RAM 240, whereby each functional configuration of the information processing apparatus 200 shown in FIG. The function of the part is realized. The ROM 220 stores fixed data and programs such as initial data and programs. The communication control unit 230 communicates with an external device via a network. Note that the number of CPUs 210 is not limited to one, and may be a plurality of CPUs or may include a GPU for image processing.

RAM240は、CPU210が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM240には、本実施形態の実現に必要なデータを記憶する領域が確保されている。クラス図データ241は、設計情報におけるソフトウェアの静的な構造や制約を表すクラス図のデータである(図4参照)。アクティビティ図データ242は、設計情報におけるソフトウェアが行う処理の流れを表すアクティビティ図のデータである(図4参照)。アクティビティ図データ(ノード番号)243は、本実施形態により一意のノード番号が割り当てされたアクティビティ図のデータである(図9参照)。識別子情報244は、本実施形態により生成される情報である(図6参照)。局所事後条件情報245は、本実施形態により生成される情報である(図10、図12および図13参照)。入出力データ246は、入出力インタフェース260を介して入出力される入出力データを示す。送受信データ247は、通信制御部230を介して送受信される送受信データを示す。   The RAM 240 is a random access memory that the CPU 210 uses as a work area for temporary storage. In the RAM 240, an area for storing data necessary for realizing the present embodiment is secured. The class diagram data 241 is class diagram data representing the static structure and constraints of the software in the design information (see FIG. 4). The activity diagram data 242 is activity diagram data representing the flow of processing performed by the software in the design information (see FIG. 4). The activity diagram data (node number) 243 is data of an activity diagram to which a unique node number is assigned according to the present embodiment (see FIG. 9). The identifier information 244 is information generated by the present embodiment (see FIG. 6). The local post-condition information 245 is information generated by the present embodiment (see FIGS. 10, 12, and 13). The input / output data 246 indicates input / output data input / output via the input / output interface 260. Transmission / reception data 247 indicates transmission / reception data transmitted / received via the communication control unit 230.

ストレージ250には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。既定識別子情報格納部204は、処理対象のソフトウェアにおける規定の識別子を示す情報を格納する(図7参照)。条件追加ルール格納部205は、局所事後条件を追加するためのルールを格納する(図11参照)。識別子情報生成アルゴリズム251は、本実施形態における識別子情報を生成するために使用されるアルゴリズムである。ノード番号割当アルゴリズム252は、本実施形態におけるアクティビティ図のアクションノードに一意のノード番号を割り当てるために使用されるアルゴリズムである。局所事後条件情報生成アルゴリズム253は、本実施形態における有効範囲を有する局所事後条件情報を生成するために使用されるアルゴリズムである。   The storage 250 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment. The default identifier information storage unit 204 stores information indicating a predetermined identifier in the software to be processed (see FIG. 7). The condition addition rule storage unit 205 stores a rule for adding a local postcondition (see FIG. 11). The identifier information generation algorithm 251 is an algorithm used for generating identifier information in the present embodiment. The node number assignment algorithm 252 is an algorithm used for assigning a unique node number to an action node of the activity diagram in this embodiment. The local post-condition information generation algorithm 253 is an algorithm used to generate local post-condition information having an effective range in the present embodiment.

ストレージ250には、以下のプログラムが格納される。情報処理装置制御プログラム254は、本情報処理装置200の全体を制御する制御プログラムである。識別子情報生成モジュール255は、情報処理装置制御プログラム254において、識別子情報生成アルゴリズム251を使用して識別子情報を生成するモジュールである。局所事後条件情報生成モジュール256は、情報処理装置制御プログラム254において、ノード番号割当アルゴリズム252に従いアクションノードに一意のノード番号を割り当てる。そして、局所事後条件情報生成アルゴリズム253に従い有効範囲を有する局所事後条件情報を生成するモジュールである。生成情報出力処理モジュール257は、情報処理装置制御プログラム254において、生成された識別子情報を識別子情報格納部280に出力し、生成された有効範囲を有する局所事後条件情報を局所事後条件情報格納部290に出力するモジュールである。   The storage 250 stores the following programs. The information processing device control program 254 is a control program that controls the entire information processing device 200. The identifier information generation module 255 is a module that generates identifier information using the identifier information generation algorithm 251 in the information processing device control program 254. The local post-condition information generation module 256 assigns a unique node number to the action node according to the node number assignment algorithm 252 in the information processing apparatus control program 254. And it is a module which produces | generates the local postcondition information which has an effective range according to the local postcondition information generation algorithm 253. In the information processing apparatus control program 254, the generation information output processing module 257 outputs the generated identifier information to the identifier information storage unit 280, and generates the local post-condition information having the generated effective range as the local post-condition information storage unit 290. Is a module that outputs to

入出力インタフェース260は、入出力機器との入出力データをインタフェースする。入出力インタフェース260には、表示部261、キーボード、タッチパネル、ポインティンデバイスなどの操作部262が接続される。また、設計情報であるクラス図とアクティビティ図とを検索可能に格納する設計情報格納部270が接続される。さらに、識別子情報を検索可能に格納する識別子情報格納部280と、有効範囲を有する局所事後条件情報を識別子情報と関連付けて検索可能に格納する局所事後条件情報格納部290と、が接続される。なお、上記格納部27、280、290は、通信制御部230によりネットワークを介して接続されていてもよい。   The input / output interface 260 interfaces input / output data with input / output devices. The input / output interface 260 is connected to a display unit 261 and an operation unit 262 such as a keyboard, a touch panel, and a pointing device. In addition, a design information storage unit 270 that stores searchable class diagrams and activity diagrams as design information is connected. Further, an identifier information storage unit 280 that stores identifier information so as to be searchable and a local postcondition information storage unit 290 that stores local postcondition information having an effective range in association with the identifier information so as to be searchable are connected. Note that the storage units 27, 280, and 290 may be connected by the communication control unit 230 via a network.

なお、図2BのRAM240やストレージ250には、情報処理装置200が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。   2B does not show programs and data related to general-purpose functions and other realizable functions of the information processing apparatus 200.

《情報処理装置の処理手順》
図3は、本実施形態に係る情報処理装置200の処理手順を示すフローチャートである。このフローチャートは、図2BのCPU210がRAM240を使用して実行し、図2Aの機能構成部を実現する。
<< Processing procedure of information processing device >>
FIG. 3 is a flowchart illustrating a processing procedure of the information processing apparatus 200 according to the present embodiment. This flowchart is executed by the CPU 210 of FIG. 2B using the RAM 240, and implements the functional component of FIG. 2A.

最初に、情報処理装置200は、設計情報格納部270からクラス図とアクティビティ図とから成る設計情報を読み込む(ステップS301)。次に、情報処理装置200は、ステップS301で読み込まれた設計情報から、識別子情報を生成する(ステップS303:詳細は図5参照)。次に、情報処理装置200は、ステップS301で読み込まれた設計情報から、有効範囲を有する局所事後条件情報を生成する(ステップS305:詳細は図8参照)。そして、情報処理装置200は、ステップS303において生成された識別子情報と、ステップS305において生成された有効範囲を有する局所事後条件情報とをそれぞれ、識別子情報格納部280と局所事後条件情報格納部290とに書き出す(ステップS307)。   First, the information processing apparatus 200 reads design information including a class diagram and an activity diagram from the design information storage unit 270 (step S301). Next, the information processing apparatus 200 generates identifier information from the design information read in step S301 (step S303: see FIG. 5 for details). Next, the information processing apparatus 200 generates local posterior condition information having an effective range from the design information read in step S301 (step S305: see FIG. 8 for details). Then, the information processing apparatus 200 receives the identifier information generated in step S303 and the local posterior condition information having the valid range generated in step S305, respectively, as an identifier information storage unit 280 and a local posterior condition information storage unit 290. (Step S307).

以下、上記ステップ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 information storage unit 270 and read into the information processing apparatus 200 of the present embodiment. When UML is used for designing software that performs sequential processing, the structure and restrictions of data handled by software can be expressed by a class diagram, and the processing performed by software can be expressed by an activity diagram. For data, the entire data is represented as one class diagram, each data is represented as a class in the class diagram, and data items are represented as member attributes of the corresponding class. Regarding processing, the entire processing is a single activity diagram, and a series of processing steps constituting the processing is an action node. Then, the relationship between the processing step executed first and the subsequent processing step is described as a directed line segment (control flow) between corresponding action nodes, and an action that should be checked or executed in the processing step. It will be described in the label of the node.

クラス図(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 information processing apparatus 200 reads the default identifier information (see FIG. 7) from the default identifier information storage unit 204 (step S501). Then, the information processing apparatus 200 transcribes the read default identifier information into the identifier information 244 (step S503: see FIG. 6A). At this time, “true” is set in the default column.

次に、情報処理装置200は、クラス図(401)から識別子を抽出し、識別子情報244に登録する(ステップS505:図6の(b)参照)。クラスごとに2つの識別子を抽出し、クラスのメンバ属性ごとに1つの識別子を抽出する。   Next, the information processing apparatus 200 extracts an identifier from the class diagram (401) and registers it in the identifier information 244 (step S505: see FIG. 6B). Two identifiers are extracted for each class, and one identifier is extracted for each member attribute of the class.

次に、情報処理装置200は、アクティビティ図(402)から、まだ識別子情報244に登録されていない変数を抽出し、識別子情報244に登録する(ステップS507:図6の(c)参照)。   Next, the information processing apparatus 200 extracts variables that have not been registered in the identifier information 244 from the activity diagram (402) and registers them in the identifier information 244 (step S507: see FIG. 6C).

さらに、情報処理装置200は、アクティビティ図(402)において、代入式の両辺に出現する変数について、代入実行前の変数の値を保持する変数(以降、事前変数と称す)を導入し、識別子情報244に登録する(ステップS509:図6の(d)参照)。   Furthermore, in the activity diagram (402), the information processing apparatus 200 introduces a variable (hereinafter referred to as a prior variable) that holds the value of the variable before execution of substitution for variables appearing on both sides of the substitution expression, and identifier information Registered in H.244 (step S509: see FIG. 6D).

(識別子情報)
図6は、本実施形態に係る生成された識別子情報244の構成を示す図である。ステップS303において生成された識別子情報244は、識別子情報格納部280に検索可能に格納される。
(Identifier information)
FIG. 6 is a diagram showing a configuration of the generated identifier information 244 according to the present embodiment. The identifier information 244 generated in step S303 is stored in the identifier information storage unit 280 so as to be searchable.

識別子情報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 basic type 602, a classification 603, a static constraint 604, and a definition 605 in association with the identifier 601. The identifier 601 includes all class names, method names, variable names, constant names, and the like included in the class diagram and activity diagram. The basic type 602 determines a value that can be described or assigned as the identifier 601. The classification 603 indicates whether the identifier 601 represents a set or an element. A static constraint 604 is an invariant condition of the identifier 601. The rule 605 indicates whether or not the identifier 601 is a default identifier (default identifier = true / non-default identifier = faise).

そして、図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 information processing apparatus 200 reads the default identifier information from the default identifier information storage unit 204 (step S501), and transcribes the read default identifier information to the identifier information 244 ((a) of FIG. 6) (step S503). At this time, “true” is set in the default column.

(既定識別子情報)
図7は、本実施形態に係る既定識別子情報格納部204の既定識別情報の構成を示す図である。
(Default identifier information)
FIG. 7 is a diagram showing a configuration of default identification information in the default identifier information storage unit 204 according to the present embodiment.

既定識別子情報は、ソフトウェアの設計で必要となる典型的な定数と、定数が属する基本的な型(以降、基本型)と、集合か要素であるかの分類と、識別子間に常に成り立つ制約(以降、静的制約)と、を含む。静的制約は、ソフトウェアが行う処理の影響を受けずに、常に成り立つべき条件である。   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 information processing apparatus 200 extracts the identifier from the class diagram (401) and registers it in the identifier information ((b) of FIG. 6) (step S505). Two identifiers are extracted for each class, and one identifier is extracted for each member attribute of the class.

クラスの名称が「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 information processing apparatus 200 extracts variables that are not yet registered in the identifier information from the activity diagram (402) and registers them in the identifier information ((c) in FIG. 6) (step S507).

変数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 post-condition generation unit 202 introduces a variable (hereinafter referred to as a pre-variable) that holds the value of the variable before execution of substitution for variables appearing on both sides of the substitution expression in the activity diagram (402). (Step S507).

変数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 information processing apparatus 200 searches for a node by following the control flow from the start node of the activity diagram (402), and assigns a number (hereinafter, node number) to the node (step S801). Then, following the node number assignment, the information processing apparatus 200 generates local post-condition information 245A based on the action node formula (step S803: see FIG. 10).

次に、情報処理装置200は、条件追加ルール格納部205から条件追加ルール(図11参照)を読み込む。そして、情報処理装置200は、前述の局所事後条件情報245A(図10)の各局所事後条件が追加ルール格納部の照合条件と合致すれば、対応する追加条件を追加して局所事後条件情報245Bを生成する(図12参照)。このとき、開始番号欄と枝番欄は合致した局所事後条件と同じ値とし、区分欄は「追加」とする。   Next, the information processing apparatus 200 reads the condition addition rule (see FIG. 11) from the condition addition rule storage unit 205. Then, the information processing apparatus 200 adds a corresponding additional condition and adds the local post-condition information 245B if each local post-condition in the above-described local post-condition information 245A (FIG. 10) matches the matching condition in the additional rule storage unit. Is generated (see FIG. 12). At this time, the start number field and the branch number field are set to the same value as the matched local posterior condition, and the classification field is set to “add”.

そして、情報処理装置200は、追加後の局所事後条件情報245B(図12)を調べて、局所事後条件の有効範囲を特定し、終了番号を追記した局所事後条件情報245Cを得る(ステップS807:図13参照)。この終了番号を追記した局所事後条件情報245Cが、局所事後条件情報格納部290に格納される。   Then, the information processing apparatus 200 checks the post-addition local post-condition information 245B (FIG. 12), identifies the effective range of the local post-condition, and obtains the local post-condition information 245C with the end number added (step S807: (See FIG. 13). The local postcondition information 245C with the end number added is stored in the local postcondition information storage 290.

以下、上記図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 information processing apparatus 200 searches for a node by following the control flow from the start node in the activity diagram (402), and assigns a node number (step S801).

ノード番号割り当ては、次のアルゴリズムに従う。
(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 post-condition information 245A generated based on the activity diagram according to the present embodiment. The local post-condition information 245A is temporarily stored in the local post-condition information 245 in the RAM 240.

局所事後条件情報245Aにおいて、各局所事後条件1005は、有効範囲の開始となるノード番号である開始番号1001と、論理式か代入式かを示す枝番1002と、有効範囲の終了となるノード番号である終了番号1003と、有効/無効/新規などの区分1004とを有する。   In the local post-condition information 245A, each local post-condition 1005 includes a start number 1001 that is a node number that is the start of an effective range, a branch number 1002 that indicates whether it is a logical expression or an assignment expression, and a node number that is the end of the effective range. And an end number 1003 and a category 1004 such as valid / invalid / new.

アクションノードの式が論理式である場合は、その論理式をそのまま局所事後条件とする。   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 node number 1 becomes the local postcondition as it is, and in the local postcondition information 245A of FIG. It is registered as the third line.

ノード番号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 node number 2, first, the equation “pre_product = product” with the prior variable is locally The post-condition is registered in the local post-condition information (line 4 in FIG. 10). Subsequently, an assignment expression “product: = pre_product∪ {new product}” is obtained by replacing the variable on the right side with a prior variable from the original assignment expression. Furthermore, the logical expression “product = pre_product∪ {new product}” obtained by replacing the assignment operator “: =” with the equality operator “=” is registered in the local post-condition information as a local post-condition (see FIG. 10 line 5).

(局所事後条件追加:S805)
情報処理装置200は、条件追加ルール格納部205から条件追加ルール(図11)を読み込み、図10の局所事後条件情報245Aの各局所事後条件が追加ルール格納部の照合条件と合致すれば、対応する追加条件を追加した局所事後条件情報245B(図12)を生成する。このとき、開始番号欄と枝番欄は合致した局所事後条件と同じ値とし、区分欄は「追加」とする。
(Addition of local post-conditions: S805)
The information processing apparatus 200 reads the condition addition rule (FIG. 11) from the condition addition rule storage unit 205, and responds if each local postcondition in the local postcondition information 245A in FIG. 10 matches the matching condition of the additional rule storage unit. The local post-condition information 245B (FIG. 12) to which the additional condition is added is generated. At this time, the start number field and the branch number field are set to the same value as the matched local posterior condition, and the classification field is set to “add”.

(条件追加ルール)
図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 rule storage unit 205.

条件追加ルールは、パラメータ1101に対応付けて、追加するか否かの照合条件1102と、照合した場合に追加する追加条件1103とを格納する。   The condition addition rule stores a matching condition 1102 indicating whether or not to add in association with the parameter 1101, and an additional condition 1103 to be added when matching is performed.

(条件追加後の局所事後条件情報)
図12は、本実施形態に係る条件追加後の局所事後条件情報245Bの構成を示す図である。
(Local post-condition information after adding conditions)
FIG. 12 is a diagram showing a configuration of local post-condition information 245B after the addition of conditions according to the present embodiment.

図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 post condition information 245A in FIG. 10, the local post condition “new CD ≠ null character string” on the first line in FIG. 10 is the collation condition “e ≠ null string” on the condition addition rule on the first line in FIG. For, the parameter “e” matches the formula considered as “new CD”. Therefore, the local posterior is obtained using the expression “new CD∈ non-empty character string” obtained by replacing the parameter “e” of the additional condition “e∈ non-empty character string” corresponding to the matching condition with “new CD” as a new local posterior condition. It adds to condition information (2nd line of FIG. 12). In the local post-condition information 245B (FIG. 12) obtained in this way, the local post-condition 1210 is included in the second, seventh, tenth, and eleventh lines surrounded by a broken line in the “addition” column. Have been added.

(有効範囲生成:S807)
情報処理装置200は、局所事後条件情報245B(図12)を調べて、局所事後条件の有効範囲を特定し、終了番号を追記した局所事後条件情報245C(図13)を得る(ステップS807)。
(Effective range generation: S807)
The information processing apparatus 200 checks the local post-condition information 245B (FIG. 12), identifies the effective range of the local post-condition, and obtains the local post-condition information 245C (FIG. 13) with the end number added (step S807).

局所事後条件の有効範囲は、局所事後条件情報の開始番号と終了番号で示す。局所事後条件は、前記開始番号をノード番号とするアクションノードの実行直後から終了番号をノード番号とするアクションノードの実行直前まで成立する。終了番号が無い場合には、局所事後条件は、開始番号をノード番号とするアクションノードの実行直後から逐次処理全体の終了まで成立する。情報処理装置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 post-condition information 245B, the information processing apparatus 200 checks the local post-condition of the row having the same start number and the same branch number as that row and the branch number larger than that row, and the variable of the row If the first line in which is found is found, the process repeats setting the start number of the line to the end number of the line. Furthermore, if there is a line having the same end number as the start number in each line of the local post-condition information, the information processing apparatus 200 sets “invalid” in the section field of that line.

(有効範囲設定後の局所事後条件情報)
図13は、本実施形態に係る有効範囲設定後の局所事後条件情報245Cの構成を示す図である。
(Local post-condition information after setting effective range)
FIG. 13 is a diagram showing a configuration of the local posterior condition information 245C after setting the effective range according to the present embodiment.

図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 post-condition information 245B in FIG. 12, the start number of the local post-condition “new product ε / product” on the fourth line in FIG. 12 is “2”, and the branch number is “0”. Therefore, examine the line with the start number “2” and the branch number greater than “0” (from the fifth line to the end in FIG. 12) and the line with the start number greater than “2” (none in FIG. 12). The start number “2” on the seventh line where the variable “new product” appearing in the local post-condition on the fourth line first appears is set as the end number on the fourth line. As a result, the fourth line has the same start number and end number “2”, and therefore, “invalid” is set in the classification column (fourth line in FIG. 13). In the local post-condition information 245C (FIG. 13) obtained in this way, “2” indicating the end of the effective range is set in the end number column from the first line to the fourth line (1310). “Invalid” is set in the category column.

本実施形態によれば、フローチャートやアクティビティ図の各アクションノードに対して一意のノード番号を割り振るので、各アクションノードごとに処理の流れや局所事後条件の有効範囲などに基づくソフトウェアの設計内容の緻密な整合性検証をすることができる。   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 information processing apparatus 1400 according to the present embodiment. In FIG. 14A, the same functional components as those in FIG. 2A are denoted by the same reference numerals, and description thereof is omitted.

図14Aの情報処理装置1400は、図2Aと同じ入力処理部201を有する。局所事後条件生成部1402は、生成した識別子情報と局所事後条件情報とをそのまま、情報処理装置1400内部の識別子情報格納部1408と局所事後条件情報格納部1409とに格納する。図14Aの情報処理装置1400は、入力処理部201によって読み込まれた設計情報と局所事後条件生成部1402によって生成された識別子情報と局所事後条件とを用いて形式記述を生成する形式記述生成部1406を有する。また、情報処理装置1400は、形式記述生成部1406によって生成された形式記述を形式記述格納部1490に出力する形式記述出力処理部1407を有する。   The information processing apparatus 1400 in FIG. 14A includes the same input processing unit 201 as in FIG. 2A. The local postcondition generation unit 1402 stores the generated identifier information and local postcondition information in the identifier information storage unit 1408 and the local postcondition information storage unit 1409 inside the information processing apparatus 1400 as they are. The information processing apparatus 1400 in FIG. 14A generates a format description by using the design information read by the input processing unit 201, the identifier information generated by the local postcondition generation unit 1402, and the local postconditions. Have The information processing apparatus 1400 also includes a format description output processing unit 1407 that outputs the format description generated by the format description generation unit 1406 to the format description storage unit 1490.

《情報処理装置のハードウェア構成》
図14Bは、本実施形態に係る情報処理装置1400のハードウェア構成を示すブロック図である。図14Bにおいて、図2Bと同様の構成要素には同じ参照番号を付して、説明を省略する。
<< Hardware configuration of information processing equipment >>
FIG. 14B is a block diagram illustrating a hardware configuration of the information processing apparatus 1400 according to the present embodiment. In FIG. 14B, the same components as those in FIG. 2B are denoted by the same reference numerals, and description thereof is omitted.

情報処理装置1400は、RAM1440に、生成されEvent-Bコンテキスト1448と、生成されたEvent-Bマシン1449と、を記憶する。   The information processing apparatus 1400 stores the generated Event-B context 1448 and the generated Event-B machine 1449 in the RAM 1440.

また、情報処理装置1400は、ストレージ1450に、識別子情報格納部1408と、局所事後条件情報格納部1409と、を有する。また、ストレージ1450に、形式記述を生成するために使用される形式記述生成アルゴリズム1451を記憶する。また、情報処理装置1400を制御する情報処理装置制御プログラム1454は、以下のモジュールを有する。1つは、形式記述生成アルゴリズム1451に従って、識別子情報格納部1408の識別子情報と局所事後条件情報格納部1409の有効範囲を有する局所事後条件情報とから形式記述(本例では、Event-B)を生成する形式記述生成モジュール1457である。もう1つは、情報処理装置制御プログラム1454は、生成された形式記述を形式記述格納部1490に格納する形式記述出力処理モジュール1458である。   In addition, the information processing apparatus 1400 includes an identifier information storage unit 1408 and a local post-condition information storage unit 1409 in the storage 1450. In addition, the storage 1450 stores a format description generation algorithm 1451 used for generating a format description. The information processing device control program 1454 for controlling the information processing device 1400 includes the following modules. One is to create a format description (Event-B in this example) from the identifier information in the identifier information storage unit 1408 and the local postcondition information having the effective range of the local postcondition information storage unit 1409 according to the format description generation algorithm 1451. A format description generation module 1457 is generated. The other is the format description output processing module 1458 that stores the generated format description in the format description storage unit 1490.

また、入出力インタフェース1460には、生成した形式記述を格納する形式記述格納部1490が接続される。   The input / output interface 1460 is connected to a format description storage unit 1490 that stores the generated format description.

なお、図14BのRAM1440やストレージ1450には、情報処理装置1400が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。   Note that the RAM 1440 and the storage 1450 in FIG. 14B do not show programs and data related to general-purpose functions and other realizable functions of the information processing apparatus 1400.

《情報処理装置の処理手順》
図15は、本実施形態に係る情報処理装置1400の処理手順を示すフローチャートである。このフローチャートは、図14BのCPU210がRAM1440を使用して実行し、図14Aの機能構成部を実現する。
<< Processing procedure of information processing device >>
FIG. 15 is a flowchart illustrating a processing procedure of the information processing apparatus 1400 according to the present embodiment. This flowchart is executed by the CPU 210 in FIG. 14B using the RAM 1440, and implements the functional configuration unit in FIG. 14A.

設計情報の読み込み(ステップ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 information processing apparatus 1400 examines the identifier information, extracts an identifier that should be a constant in Event-B, and generates an Event-B description (Event-B context) (step S1601).

次に、情報処理装置1400は、定数に関する記述の生成に続いて、識別子情報を調べてEvent-Bにおける変数とすべき識別子を抽出して、Event-B記述(Event-Bマシン)を生成する(ステップS1603)。   Next, the information processing apparatus 1400 generates an Event-B description (Event-B machine) by examining identifier information and extracting an identifier that should be a variable in Event-B following generation of a description related to a constant. (Step S1603).

次に、情報処理装置1400は、変数に関する記述の生成に続いて、アクティビティ図を調べてEvent-Bにおけるイベントを抽出して、ステップS1603で生成したEvent-Bマシンに追記する(ステップS1605)。   Next, following the generation of the description about the variable, the information processing apparatus 1400 examines the activity diagram, extracts events in Event-B, and adds the events to the Event-B machine generated in step S1603 (step S1605).

そして、情報処理装置1400は、イベントに関する記述の生成に続いて、局所事後条件情報を調べてEvent-Bにおける不変条件を抽出して、ステップS1605で追記されたEvent-Bマシンに不変条件をさらに追記する(ステップS1607)。   Then, after generating the description about the event, the information processing apparatus 1400 examines the local post-condition information, extracts the invariant condition in Event-B, and further adds the invariant condition to the Event-B machine added in step S1605. An additional entry is made (step S1607).

以下、図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 information processing apparatus 1400 examines the identifier information, extracts an identifier that should be a constant in Event-B, and generates an Event-B description (context) (step S1601).

ステップ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 information processing apparatus 1400 describes a line in which the default column is “true” in the identifier information in the context C0. If the values in the identifier field and the basic type field are the same, the information processing device 1400 describes the identifier in the sets section of the context C0. The information processing apparatus 1400 describes the identifier in the constants clause of the context C0 if the identifier column and the basic type column have different values. For the identifier described in the constants clause, the information processing apparatus 1400 describes the logical expression “identifier⊆basic type” that the identifier is a subset of the basic type if the classification field is “set”. Also, the information processing apparatus 1400 describes the logical expression “identifier ∈ basic type” in the axiom clause that the identifier is a basic type element if the classification field is “element”. If there is a description in the static constraint column, the information processing apparatus 1400 also describes it in the axiom section.

(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-B context 1448A is stored in the format description storage unit 1490 so as to be searchable in association with the Event-B context 1448B and the Event-B machine 1449C. FIG. 17 shows a context C0 generated based on the first to third lines in which the default column is “true” in the identifier information of FIG.

また、情報処理装置1400は、識別子情報において既定欄が“false”であり、かつ識別子欄と基本型欄の値が同じ行を、コンテキストCに記述する。コンテキストCのsets節に識別子を記述する。   Further, the information processing apparatus 1400 describes, in the context C, a line in which the default column in the identifier information is “false” and the identifier column and the basic type column have the same value. An identifier is described in the sets clause of context C.

(拡張した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-B context 1448B is stored in the format description storage unit 1490 so as to be searchable in association with the Event-B context 1448A and the Event-B machine 1449C. FIG. 18 shows a context C generated based on the fourth line in which the default column in the identifier information of FIG. 6 is “false” and the values of the identifier column and the basic type column are both “product type”. The description “extends C0” on the first line of the context C indicates that the context C extends the context C0.

(変数に関する記述の生成:S1603)
定数に関する記述の生成に続いて、情報処理装置1400は、識別子情報を調べてEvent-Bにおける変数とすべき識別子を抽出して、Event-B記述(マシン)を生成する(ステップS1603)。
(Generation of variable description: S1603)
Following the generation of the description regarding the constant, the information processing apparatus 1400 examines the identifier information, extracts the identifier to be a variable in Event-B, and generates the Event-B description (machine) (step S1603).

情報処理装置1400は、識別子情報において既定欄が“false”であり、かつ識別子欄と基本型欄の値が異なる行を、マシンMに記述する。Mのvariables節には、識別子を記述する。情報処理装置1400は、variables節に続くinvariants節には、識別子情報の静的制約欄に記述がなく、かつ分類欄が「集合」であれば、識別子が基本型の部分集合であるという論理式「識別子⊆基本型」を記述する。また、情報処理装置1400は、識別子情報の静的制約欄に記述がなく、分類欄が「要素」であれば、識別子が基本型の要素であるという論理式「識別子∈基本型」をinvariants節に記述する。一方、静的制約欄に記述があれば、それを記述する。情報処理装置1400は、invariants節に続く、events節のinitializationイベントには、識別子情報の分類欄が「集合」であれば、識別子の初期値を空集合とする代入式「識別子:=Φ」(記号Φおよび図面の類似表示は空集合を表わす)を記述する。一方、情報処理装置1400は、分類欄が「要素」であれば、識別子の初期値を基本型から任意に選んだ要素とする代入式「識別子:∈基本型」を記述する。   The information processing apparatus 1400 describes, in the machine M, a line in which the default column is “false” in the identifier information and the identifier column and the basic type column have different values. An identifier is described in the variables section of M. The information processing apparatus 1400 uses the logical expression that the identifier is a subset of the basic type if the invariants clause following the variables clause has no description in the static constraint column of the identifier information and the classification column is “set”. Describe "identifier ⊆ basic type". Further, the information processing apparatus 1400 sets the logical expression “identifier ∈ basic type” that the identifier is an element of the basic type if there is no description in the static constraint column of the identifier information and the classification column is “element”. Describe in. On the other hand, if there is a description in the static constraint column, describe it. In the initialization event of the events clause following the invariants clause, the information processing apparatus 1400 has an assignment expression “identifier: = Φ” (when the identifier information classification field is “set” and the initial value of the identifier is an empty set (identifier: = Φ) ( The symbol Φ and similar representations of the drawings represent empty sets). On the other hand, if the classification field is “element”, the information processing apparatus 1400 describes an assignment expression “identifier: ∈ basic type” in which the initial value of the identifier is an element arbitrarily selected from the basic type.

(ノード番号および有効範囲の無い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-B machine 1449A as a format description without a node number and valid range according to the present embodiment. The Event-B machine 1449A is temporarily stored in the Event-B machine 1449 of the RAM 1440. Note that the blank line numbers in FIG. 19 are descriptions that have not yet been generated in step S1603, and the effective range of the local precondition of the preceding node by the node number assignment or the local postcondition as in this embodiment. If there is no setting, only the format description of FIG. 19 is generated.

(イベントに関する記述の生成:S1605)
変数に関する記述の生成に続いて、情報処理装置1400は、アクティビティ図を調べてEvent-Bにおけるイベントを抽出して、ステップS1603で生成したEvent-Bマシンに追記する(ステップS1605)。
(Generation of event description: S1605)
Following the generation of the description about the variable, the information processing apparatus 1400 examines the activity diagram, extracts the event in Event-B, and adds it to the Event-B machine generated in step S1603 (step S1605).

(ノード番号追加後の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-B machine 1449 of the RAM 1440. Note that the blank line number in FIG. 20 is a description area of local post-condition information having an effective range generated in step S1607 described later.

まず、情報処理装置1400は、直前に実行されたノードのノード番号を保持する変数sc(step counter)を導入して、マシンのvariables節にsc2001を追記する。また、情報処理装置1400は、invariants節にscが整数であることを示す論理式「sc∈INT」2002を追記する。そして、情報処理装置1400は、initializationイベントにscの初期値が“0”であることを示す代入式「sc:=0」2003を追記する。   First, the information processing apparatus 1400 introduces a variable sc (step counter) that holds the node number of the node executed immediately before, and adds sc2001 to the variables section of the machine. Further, the information processing apparatus 1400 adds a logical expression “scεINT” 2002 indicating that sc is an integer in the invariants clause. Then, the information processing apparatus 1400 adds an assignment expression “sc: = 0” 2003 indicating that the initial value of sc is “0” to the initialization event.

次に、情報処理装置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 information processing apparatus 1400 adds an Event-B event “step node number” 2011 to each node that arrives through the control flow starting from the start node. In addition, the information processing apparatus 1400 includes “sc = node number of the node executed immediately before the relevant node” as an event-B guard (Guard) of the Event-B event “step node number” as the local precondition addition processing. 2012 is described. Further, the information processing apparatus 1400 describes “sc: = node number of the node” 2013 in the Event-B action. The description of these Event-B guards and Event-B actions ensures that each Event-B event is executed according to the control flow in the activity diagram.

さらに、情報処理装置1400は、当該ノードに記述された論理式を当該ノードに対応するEvent-BイベントのEvent-Bガードに追記し、当該ノードに記述された代入式をEvent-Bアクションに追記する。情報処理装置1400は、代入式の両辺に同じ変数が出現する場合には、「pre_変数:=変数」という代入式をEvent-Bアクションに追記する。   Further, the information processing apparatus 1400 adds the logical expression described in the node to the Event-B guard of the Event-B event corresponding to the node, and adds the substitution expression described in the node to the Event-B action. To do. When the same variable appears on both sides of the assignment expression, the information processing apparatus 1400 adds the assignment expression “pre_variable: = variable” to the Event-B action.

なお、本実施形態のようにノード番号割り当てによる先行ノードの局所事前条件、あるいは、局所事後条件の有効範囲設定がなければ、図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 information processing apparatus 1400 examines the local post-condition information, extracts the invariant condition in Event-B, and appends the invariant condition to the Event-B machine added in step S1605 ( Step S1607).

情報処理装置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 information processing apparatus 1400 changes the logical expression “start number ≦ sc ⇒ (local post-condition)” to Event-B. Add to the invariant section of the machine. In addition, if there is a description in the end number, the information processing apparatus 1400 adds the logical expression “start number ≦ sc ∧ sc <end number ⇒ (local posterior condition)” to the invariant clause of the Event-B machine. Here, ⇒ represents a logical implication (if it is ~), and ∧ represents a logical product. Note that, in the above example, the line with the classification field “valid” is described as the local post-condition, but a line with the other classification field “addition” in FIG. 12 can be substituted.

(有効範囲のある局所事後条件設定後の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-B machine 1449C after setting a local post-condition having an effective range according to the present embodiment. The Event-B machine 1449C is stored in the format description storage unit 1490 so as to be searchable in association with the Event-B context 1448A and the Event-B context 1448B. FIG. 21 shows a machine M generated based on the activity diagram (402) in FIG. 4 and the local post-condition information 245C in FIG. The description “sees C” on the first line of M indicates that M refers to context C.

本実施形態によれば、生成した形式記述において、アクティビティ図でのアクションノードの実行順序どおりに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 supplementary note 1 including:
(Appendix 3)
The information processing apparatus according to appendix 2, wherein the valid range generation unit invalidates the local posterior condition when the node start number and the node end number indicating the valid range are equal in the local posterior condition.
(Appendix 4)
Any one of appendices 1 to 3, further comprising: a format description generating means for generating a format description in which the software specification is expressed in a format method notation using the design information, the identifier information, and the local postcondition information. The information processing apparatus according to item.
(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 4, including
(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 5, in which the local post-condition including the start number and end number of the node as the effective range is described in an invariants section in the Event-B machine. apparatus.
(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 7, further comprising: a format description generating step of generating a format description in which the software specification is expressed in a format method notation using the design information, the identifier information, and the local postcondition information .
(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:
前記有効範囲生成手段は、前記局所事後条件において有効範囲を示すノードの開始番号とノードの終了番号が等しい場合に、当該局所事後条件を無効とする請求項2に記載の情報処理装置。   The information processing apparatus according to claim 2, wherein the valid range generation unit invalidates the local posterior condition when the start number of the node indicating the valid range and the end number of the node are equal in the local posterior condition. 前記設計情報、前記識別子情報および前記局所事後条件情報を用いて、前記ソフトウェアの仕様を形式手法の記法で表現した形式記述を生成する形式記述生成手段、をさらに備える請求項1乃至3のいずれか1項に記載の情報処理装置。   4. A format description generating means for generating a format description in which the software specifications are expressed in a format method notation using the design information, the identifier information, and the local postcondition information. The information processing apparatus according to item 1. 前記形式記述生成手段は、
前記形式記述に対して、前記アクティビティ図に含まれる先行ノードに割り当てられたノード番号を局所事前条件として追加する局所事前条件追加手段と、
前記形式記述に対して、前記有効範囲を記述した局所事後条件を追加する局所事後条件追加手段と、
を含む請求項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の形式手法により形式記述を行ない、
前記局所事前条件追加手段は、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:
前記設計情報、前記識別子情報および前記局所事後条件情報を用いて、前記ソフトウェアの仕様を形式手法の記法で表現した形式記述を生成する形式記述生成ステップ、をさらに含む請求項7に記載の情報処理方法。   The information processing according to claim 7, further comprising: a format description generating step of generating a format description expressing the software specification in a format method notation using the design information, the identifier information, and the local posterior condition information. Method. データの静的な構造および制約を記述したクラス図と、データを逐次的に処理するソフトウェアの処理の流れおよび実行内容を記述したアクティビティ図と、からなる設計情報を読み込む入力処理ステップと、
ソフトウェアの設計で用いるデータの型または定数を記述した既定識別子情報を読み込み、前記入力処理ステップにおいて読み込まれた前記設計情報および前記既定識別子情報から、形式記述の作成に必要となる定数または変数の名称、型および静的制約からなる識別子情報と、前記アクティビティ図に記述された前記実行内容を実行した結果を示す論理式である局所事後条件および該局所事後条件の有効範囲を示す局所事後条件情報と、を生成する局所事後条件生成ステップと、
をコンピュータに実行させる情報処理プログラム。
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.
前記設計情報、前記識別子情報および前記局所事後条件情報を用いて、前記ソフトウェアの仕様を形式手法の記法で表現した形式記述を生成する形式記述生成ステップ、をさらにコンピュータに実行させる請求項9に記載の情報処理プログラム。   The computer further executes a 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. Information processing program.
JP2013123227A 2013-06-11 2013-06-11 Information processing apparatus, information processing method, and information processing program Pending JP2014241051A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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