WO2015040735A1 - ソフトウェア仕様の形式検証支援装置及びその方法 - Google Patents

ソフトウェア仕様の形式検証支援装置及びその方法 Download PDF

Info

Publication number
WO2015040735A1
WO2015040735A1 PCT/JP2013/075461 JP2013075461W WO2015040735A1 WO 2015040735 A1 WO2015040735 A1 WO 2015040735A1 JP 2013075461 W JP2013075461 W JP 2013075461W WO 2015040735 A1 WO2015040735 A1 WO 2015040735A1
Authority
WO
WIPO (PCT)
Prior art keywords
formal
component
formal language
language
skeleton
Prior art date
Application number
PCT/JP2013/075461
Other languages
English (en)
French (fr)
Inventor
佐藤 直人
伊藤 信治
宮崎 邦彦
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2013/075461 priority Critical patent/WO2015040735A1/ja
Publication of WO2015040735A1 publication Critical patent/WO2015040735A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Definitions

  • the present invention relates to technology for supporting software development, and more particularly to technology for supporting verification of software specifications.
  • Formal verification of the correctness of the software specification is described in a formal language having a mathematical meaning, and the correctness of the software specification described in this formal language (hereinafter referred to as a formal model) is expressed mathematically. This is done by proving based on the method. Therefore, it is a requirement for the designer of the software specifications to learn the formal language for the formal verification. For this reason, there is a problem that introduction of formal verification requires an introduction cost required to learn a formal language.
  • Patent Document 1 discloses a method of generating a software specification (hereinafter referred to as a natural language model) described in a natural language or a figure by converting it into a formal model.
  • a natural language model a software specification
  • software designers can obtain a formal model for verification from a natural language model described in natural language, diagrams, etc., so formal verification can be used without learning a formal language. it can. Therefore, there is an effect that the introduction cost for formal language acquisition can be reduced.
  • the above-mentioned refinement procedure is an element related to the level of abstraction of the degree of abstraction of specifications in the mathematical meaning of formal languages, and the details of how to refine the abstracted specifications. Contains elements about. Therefore, the refinement procedure can be determined only after a mathematical meaning is given to the target software specification, that is, after a formal model corresponding to the target software specification is obtained. In other words, it is difficult to determine the refinement procedure on the natural language model. For this reason, the conventional technique for converting a natural language model into a formal model has a problem that a formal model with a high automatic proof rate to which refinement is applied cannot be generated. In other words, it is difficult to obtain a formal model with a high automatic certification rate to which refinement is applied unless a formal language is acquired and a formal model is designed on the formal language.
  • An object of the present invention is to reduce the verification man-hour of software specifications by enabling generation of a formal model with high automatic proof rate to which refinement is applied from natural language input.
  • the present invention is preferably an apparatus that supports verification of a software specification by converting a software specification described in a format including a natural language into a formal language description, and is configured with a property that the software specification should satisfy.
  • a strategy editing means for editing a proof strategy of a software specification, a language conversion means for converting a component of the software specification and the property thereof into a formal language component which is a constituent element of a formal language description, the proof strategy and the proof strategy A skeleton generation unit that generates a formal language description skeleton including some components of the formal language description from the formal language component, and introducing the formal language component into the formal language description skeleton, thereby converting the formal language description into the formal language description skeleton.
  • It is configured as a format verification support apparatus for software specifications characterized by having a formal language component placement means for generating.
  • the present invention is also configured as a format verification support method for software specifications in the format verification support apparatus.
  • refinement is performed based on a refinement strategy diagram that is a diagram that can be described in a natural language. Generate a formal model to which This makes it possible to design a refinement strategy that determines the automatic certification rate of the formal model in natural language, so a formal model with a high automatic certification rate that applies refinement without learning the formal language. Can be obtained. As a result, the possibility that the correctness of the software specification can be proved is improved, and the introduction cost for the verification of the format of the software specification can be reduced, and the number of steps for verifying the format of the software specification can be reduced.
  • the figure which shows the example of a format model component The figure which shows the example of a format model component.
  • the present embodiment is applied as a software specification formal verification support apparatus that generates a formal model to which refinement is applied from a natural language model that can be described in a natural language and a refinement strategy diagram.
  • a software specification designer who is not familiar with a formal language can obtain a formal model with a high automatic certification rate to which refinement is applied by giving an appropriate refinement strategy diagram. .
  • the introduction cost of formal verification concerning acquisition of a formal language can be reduced.
  • by obtaining a formal model with a high automatic certification rate it is possible to reduce the work cost when manually certifying the formal model, and to improve the possibility of proving the correctness of the software specification.
  • FIG. 1 is a block diagram illustrating an example of a functional configuration of a format verification support apparatus targeting the format method Event-B.
  • the format verification support apparatus includes a natural language model editing unit 101, a natural language model holding unit 102, a strategy diagram editing unit 103, a strategy diagram holding unit 104, a language conversion unit 105, a format model component holding unit 106, a skeleton generation unit 107, and a skeleton.
  • a holding unit 108, a label information holding unit 109, an invariant generation information holding unit 110, a formal model component placement unit 111, a formal model holding unit 112, a formal model certification unit 113, and a correction location display unit 114 are configured. .
  • the natural language model editing unit 101 accepts creation / editing of a natural language model, which is a software specification described in natural language or diagrams, and registers the natural language model in the natural language model holding unit 102.
  • a natural language model which is a software specification described in natural language or diagrams
  • a label for uniquely identifying them is assigned to an element representing software processing.
  • the strategy diagram editing unit 103 receives creation / editing of a refinement strategy diagram in which a plurality of requirements to be satisfied by the software are connected in a tree structure, and registers the refinement strategy diagram in the strategy diagram holding unit 104.
  • the language conversion unit 105 acquires the natural language model from the natural language model holding unit 102 and the refinement strategy diagram from the strategy diagram holding unit 104, and converts the natural language model description into a formal language. Since the description of the formal language obtained by the conversion becomes a component of the formal model, it is registered in the formal model component holding unit 106 as a formal model component.
  • the skeleton generation unit 107 obtains a refinement strategy diagram from the strategy diagram holding unit 104 and a formal model part from the formal model component holding unit 106, respectively.
  • SEES context names
  • VARIABLES variables
  • invariants INVARIANTS
  • INITIALISATION initialization event
  • CONTEXT context names
  • CONSTANTS constants
  • AXIOMS axioms
  • the formal model component placement unit 111 obtains the formal model component from the formal model component holding unit 106 and the formal model skeleton from the skeleton generation unit 107, and places the formal model component on the formal model skeleton, thereby arranging the formal model component. Create At that time, the label information created when the formal model skeleton is generated is acquired from the label information holding unit 109, and the formal model parts are arranged based on the label information. The formal model obtained as a result is registered in the formal model holding unit 112. The formal model proving unit 113 acquires the formal model from the formal model holding unit 112 and certifies the formal model using an automatic theorem prover.
  • the correction location display unit 114 acquires the identifier of the invariant that has failed to be certified from the formal model certification unit 113, and then refers to the invariant generation information holding unit 110 to obtain the requirement identifier corresponding to the identifier. Then, the requirement indicated by the acquired requirement identifier is highlighted on the refinement strategy diagram displayed by the strategy diagram editing unit 103.
  • FIG. 2 shows a hardware configuration example of the format verification support apparatus.
  • the format verification support apparatus includes a CPU 202, a memory 203, an external storage device 204, a display device 205, an input device 206, and an external medium input / output device 207.
  • the CPU 202 executes various processes by executing programs stored in the memory 203.
  • the memory 203 functions as a work area for the CPU 202 and stores programs and data necessary for executing the programs. Specifically, as the program, the natural language model editing unit 101, the strategy diagram editing unit 103, the language conversion unit 105, the skeleton generation unit 107, the formal model component placement unit 111, the formal model certification unit 113, and the correction location display unit.
  • a program for realizing each function 114 is prepared in the memory 203.
  • the stored data is stored in the memory 203.
  • the external storage device 204 is a hard disk device, for example, and stores various data. Specifically, the natural language model holding unit 102, the strategy diagram holding unit 104, the formal model component holding unit 106, the skeleton holding unit 108, the label information holding unit 109, the invariant generation information holding unit 110, and the formal model holding unit 112. The data held in is stored.
  • each program that implements the natural language model editing unit 101, the strategy diagram editing unit 103, the language conversion unit 105, the skeleton generation unit 107, the formal model component placement unit 111, the formal model certification unit 113, and the correction location display unit 114 At least a part thereof may be stored in an external medium detachable from the external storage device 204 or the external medium input / output device 207.
  • the CPU 202 when realizing the above functions, the CPU 202 reads a program from the external storage device 204 or an external medium into the memory 203 and executes the program.
  • the display device 205 is a liquid crystal display, for example, and displays the processing result of the program.
  • the input device 206 is, for example, a keyboard and a mouse, and receives a process execution instruction and input of information necessary for the process from the user.
  • the external medium input / output device 207 inputs / outputs data stored in the external storage device 204 with the external medium.
  • the external medium is a portable storage medium that can be attached to and detached from the external medium input / output device 207, and the external medium output device 207 is a drive device that can read from and write to the external medium.
  • a signal system that controls the traffic of the car between the island and the land is used as a verification target.
  • a signal system that controls the display of a traffic light is a verification target.
  • the traffic light is controlled according to the number of vehicles.
  • an upper limit is set for the number of cars on the island and the number of cars that can exist on the bridge, and the signal system controls the traffic lights so that the upper limit is not exceeded.
  • FIG. 3 is an object diagram illustrating an example of a natural language model.
  • Object diagrams that are part of the natural language model define objects 302, 303, and 304.
  • An object 302 defines an object named “automobile”.
  • the object 302 has a variable 305 named “number of vehicles from land to island” represented by an identifier “v1”. This variable can be read from “NAT” meaning a natural number and “VAR” meaning a variable to be a variable having a natural number type. “Number of cars from the island to land” v2 and “Number of cars on the island” v3 can be defined in the same way.
  • the “vehicle number upper limit value” can be read as a natural number type constant from “CON” representing the constant.
  • identifiers “v4” and “v5” are defined for the “traffic light” of the object 303 and the “control device” of the object 304.
  • BOOL represents a Boolean type.
  • FIG. 4A and 4B are flowcharts showing examples of natural language models. (FIGS. 4A and 4B are sometimes collectively referred to as FIG. 4.)
  • the flowchart which is a part of the natural language model includes a target object name 402, steps 403 to 408, a cycle start 409, and a cycle end 410.
  • An object name 402 represents the name of an object for which processing is defined in this flowchart.
  • Decisions 403 to 408 represent decision conditions for determining the flow of processing. For example, the decision 403 represents the condition whether or not the variable “signal display from the island to the land” is TRUE. If this variable is TRUE, the process proceeds to decision 404, and if the variable is FALSE, the period ends 410. move on.
  • Cycle start 409 and cycle end 410 represent the start point and end point of this flowchart. However, when the cycle end 410 is reached, the processing is not ended and the processing returns to the cycle start 409 and the same processing is periodically executed.
  • the flowchart that is a part of the natural language model includes processing steps 502 to 505 and labels 506 to 509 in addition to the target object name 402 and the cycle end 410.
  • Processes 502 to 505 represent the contents of processes executed by the target object. When a plurality of processes are described, these processes are executed in parallel. For example, in the process 502, two processes of "increase the number of vehicles from the island to the land by 1" and “decrease the number of cars on the island by 1" are described. These processes are executed in parallel. .
  • Labels 506 to 509 that is, events EV1 to EV4) are identifiers of the processes 502 to 505, respectively.
  • the natural language model editing unit 101 displays object name candidates, variable name candidates, value candidates, and the like on the screen based on the definition of the object diagram, and accepts a selection from the user, whereby the flowchart of FIG. Can also be created.
  • FIG. 5 is a flowchart illustrating an example of a natural language model. This can also be interpreted in the same manner as in FIG.
  • the process 602 included in the flowchart can proceed to either the process 603 or the determination 604 when the determination result is YES. Whether to proceed to the processing 603 or the determination 604 is selected indefinitely at each execution.
  • This natural language model is composed of the above-described objects (FIG. 3) and the flowcharts shown in FIGS.
  • FIG. 6 shows an example of system requirements.
  • a system requirement 701 represents a requirement to be satisfied by a system defined by a natural language model.
  • the purpose of formal verification is to determine whether the natural language model satisfies the system requirement 701.
  • the system requirement 701 is determined by the user and input from the input device 206 and is held in the natural language model holding unit 102.
  • FIG. 7 shows an example of a refinement strategy diagram.
  • the refinement strategy diagram 801 includes a system requirement 701 and sub-requirements 802 to 806.
  • the system requirement 701 and the sub-requirements 802 to 806 are collectively referred to as requirements.
  • “REQ1” to “REQ6” appearing in the first line of the requirement are requirement identifiers.
  • Sub-requirements 802 to 806 are the results of dividing the system requirement 701 according to the tree structure. For example, if the sub requirement 802 is satisfied, the system requirement 701 is satisfied. If sub-requirement 803 and sub-requirement 804 are established, sub-requirement 802 is established. Furthermore, if the sub requirement 805 and the sub requirement 806 are satisfied, the sub requirement 803 is satisfied. In this way, requirements necessary to satisfy the higher requirements are described in the lower order.
  • the sub-requirement is given a label of a process that is a precondition for the sub-requirement to be established.
  • labels 506, 507, 606, and 607 that is, EVT 1, 2, 5, and 6) of the above processing are given to the sub-requirements 804, 805, and 806.
  • labels 506 and 606 that is, EVTs 2 and 5 are assigned to the sub-requirement 804, which indicates that the sub-requirement 804 is established based on the processing 502 and 603 corresponding to the label.
  • the refinement strategy diagram 801 is determined by the user, input from the input device 206, and held in the strategy diagram holding unit 104.
  • the formal model skeleton is composed of skeleton components 901, 906, 1001, and 1101.
  • Skeleton component 901 includes machine name 902, variables 903 and 904, invariants 905, 912, 913, and initialization event actions 914 and 913.
  • the skeleton component 901 is a skeleton of a component called a machine, and the machine name 902 represents the name of the machine.
  • the skeleton components 901, 906, 1001, and 1101 that are the skeletons of the machine will be referred to as machine skeletons.
  • Variables 903 and 904 represent declarations of variables used by the machine.
  • the invariant 905 is an invariant condition established in the machine, and has the meaning that the condition “the number of vehicles from the land to the island is 0 or the number of vehicles from the island to the land is always satisfied” is satisfied.
  • Invariants 912 and 913 are invariants that define the types of the variables 903 and 904.
  • actions 914 and 915 of the initialization event represent initialization actions for assigning initial values to the variables 903 and 904.
  • the machine skeleton 906 includes a machine name 907, a refinement source machine name 908, variables 909 and 910, and an invariant 911. Since the refinement source machine name 908 indicates the machine name 902, the machine created based on the machine skeleton 906 is a machine refined (detailed) from the machine created based on the machine skeleton 901. .
  • the configuration of the machine keltons 1001 and 1101 shown in FIGS. 8B and 8C can be understood in the same manner.
  • FIG. 9 shows an example of a formal model part.
  • the formal model component 1201 includes items of a natural language model type 1202, a natural language model identifier 1203, a formal model type 1204, and a formal model description content 1205.
  • the natural language model type 1202 and the natural language model identifier 1203 represent the elements of the natural language model that are the basis of the formal model. For example, “Variable” and “v1” of No1 indicate the variable 305 having the identifier v1.
  • the formal model type 1204 and the formal model description content 1205 represent the formal model type and description content obtained by conversion of the natural language model.
  • No. 1 “VARIABLES” and “Number of vehicles from land to island” represent declaration of a variable named “Number of vehicles from land to island”.
  • “INVARIANTS” and “number of vehicles from land to island ⁇ NAT” represent invariants of the type definition that “variable“ number of vehicles from land to island ”is a natural number type”.
  • FIG. 10 shows an example of a formal model part. Similar to the formal model component 1201 (FIG. 9), the formal model component 1301 includes items of a natural language model type 1202, a natural language model identifier 1203, a formal model type 1204, and a description content 1205 of the formal model. .
  • “requirement” and “REQ1” that are item values related to the natural language model of No. 7 indicate the requirement 701 having the identifier REQ1.
  • FIG. 11 shows an example of a formal model part. Similar to the formal model parts 1201 and 1301, the formal model part 1401 includes items of a natural language model type 1202, a natural language model identifier 1203, a formal model type 1204, and a formal model description content 1205.
  • Event and “EVT1” which are item values related to the natural language model No. 13 indicate the process 502 having the identifier EVT1.
  • the number of vehicles from ⁇ to + 1 act2: Number of vehicles on the island Number of vehicles on the island-1 END "represents the event (EVENTS) of the above content in the formal model.
  • FIG. 12 shows an example of label information.
  • the label information 1501 includes items of a machine name 1502 and a label 1503.
  • the machine name 1502 specifies a machine skeleton generated by the skeleton generation unit 107.
  • the label 1503 specifies a process to be introduced into the machine skeleton indicated by the machine name 1502.
  • the machine name “m2” of No1 indicates the machine skeleton 1001.
  • the label “EVT1, EVT5” of No1 means that the contents of the processes 502 and 603 need to be introduced into the machine skeleton 1001.
  • Processes 502 and 603 are converted into a formal model part by the language conversion unit 105 and registered in the item of the description content 1205 of the formal model of the formal model part 1401. That is, No. 1 in the label information 1501 means that the description contents of the formal model corresponding to the processes 502 and 603 that can be acquired from the formal model component 1401 need to be introduced into the machine skeleton 1001.
  • FIG. 13 shows an example of invariant generation information.
  • the invariant generation information 1601 includes items of an invariant identifier 1602 and a requirement identifier 1603.
  • the invariant identifier 1602 is an identifier for uniquely specifying an invariant included in a machine, and is composed of a machine name including the invariant and an invariant name capable of specifying the invariant in the machine.
  • the invariant identifier “inv1 @ m0” of No1 indicates the invariant 905 having the identifier “inv1” included in the machine skeleton 901 indicated by the machine name “m0”.
  • the requirement identifier 1603 represents an identifier of a requirement that is a source of generation of the invariant indicated by the invariant identifier 1602. For example, the requirement identifier “REQ1” of No1 indicates the requirement 701.
  • No1 of the invariant generation information 1601 indicates that the invariant 905 indicated by the invariant identifier “inv1 @ m0” is generated from the requirement 701 indicated by the requirement identifier “REQ1”.
  • FIG. 14 is a flowchart illustrating a processing procedure of the skeleton generation unit 107. This process is realized by the CPU 202 in the format verification support apparatus 201 executing a program held in the memory 203. And this program is comprised from the code
  • the CPU 202 executes the skeleton generation unit 107 to acquire a refinement strategy diagram from the strategy diagram holding unit 104, and selects a system requirement that is the highest requirement of the acquired refinement strategy diagram. Thereafter, step 1705 is executed (step 1701).
  • the skeleton generation unit 107 confirms whether there is an unselected requirement among the requirements included in the refinement strategy diagram. If there are unselected requirements, step 1703 is executed. If there are no unselected requirements, that is, if all requirements have been selected and processed, execution is terminated (step 1702).
  • the skeleton generation unit 107 selects the highest requirement among the unselected requirements (step 1703).
  • the skeleton generation unit 107 acquires a higher order requirement than the requirement selected in Step 1703. Among the lower requirements of the upper requirements, all the unselected requirements are selected (step 1704). For example, in the refinement strategy diagram 801, if the requirement 803 is selected in step 1703, the higher requirement of the requirement 803 is the requirement 802. Further, requirements 803 and 804 are subordinate requirements of requirement 802. If the requirement 803 is not selected and the requirement 804 is not selected, the requirement 803 and the requirement 804 are selected.
  • the skeleton generation unit 107 creates a new machine. If one or more machines have already been created, the lowest machine is refined (detailed) to create a new machine (step 1705).
  • the vertical relationship between machines is defined as follows. When a refinement machine obtained by refining a certain machine and that machine is given, the machine is defined as an upper machine and a refinement machine is defined as a lower machine. The same applies to a context. When a context and an extended context obtained by extending the context (EXTENDS) are given, the context is defined as an upper context, and the extended context is defined as a lower context.
  • the skeleton generation unit 107 refers to the formal model component holding unit 106 and acquires the formal model component corresponding to the selected requirement. If multiple requirements are selected, obtain each formal model part. As shown in the formal model part 1301, the formal model part corresponding to the requirement is invariant. Therefore, the formal model part is introduced into the newly created machine in step 1705. At that time, label information that is a correspondence relationship between the label given to the above requirement and the machine is created and registered in the label information holding unit 109. At the same time, invariant generation information that is a correspondence relationship between the requirement and the invariant is created and registered in the invariant generation information holding unit 110 (step 1706).
  • step 1705 For example, consider a case where the requirements 803 and 804 are selected in step 1704 and a new machine m2 is created in step 1705.
  • the skeleton generation unit 107 checks whether the invariant introduced in step 1706 includes an undeclared variable. If an undeclared variable is included, step 1708 is executed. If an undeclared variable is not included, step 1709 is executed (step 1707).
  • the skeleton generation unit 107 refers to the formal model component holding unit 106 and acquires a formal model component corresponding to an undeclared variable.
  • the formal model part corresponding to a variable is a declaration of a variable, an invariant that defines the type of the variable, and an initialization action of the variable. Therefore, the formal model part is introduced into the machine (step 1708).
  • the invariant 1006 introduced into the machine m2 includes an undeclared variable “signal display from island to land” (variable “number of vehicles from land to island” and variable “number of vehicles from island to land”. ”Is declared as m0, so it is not undeclared). Therefore, a variable declaration 1004, a type definition invariant 1007, and an initialization action 1008 are introduced into the machine m2 as formal model parts corresponding to the variables. As a result, a machine skeleton 1001 is obtained.
  • the skeleton generation unit 107 checks whether the invariant introduced in step 1706 includes an undeclared constant. If an undeclared constant is included, step 1710 is executed. If an undeclared variable is not included, the process returns to step 1702 (step 1709).
  • the skeleton generation unit 107 first creates a new context. If one or more contexts have already been created, the lowest context is extended (EXTENDS) to create a new context.
  • the formal model component holding unit 106 is referred to, and a formal model component corresponding to an undeclared constant is acquired. As shown in the formal model part 1201, the formal model part corresponding to the constant is a declaration of the constant and an axiom that defines the type of the variable.
  • the name of the newly created context is designated as the reference context name (SEES) of the machine.
  • SEES reference context name
  • the reference context name is a name of a context that can be referred to by the machine.
  • 15A and 15B are flowcharts showing the processing procedure of the formal model component placement unit 111, respectively. This process is realized by the CPU 202 in the format verification support apparatus 201 executing a program held in the memory 203. And this program is comprised from the code
  • the CPU 202 acquires the formal model skeleton from the skeleton generation unit 107 by executing the formal model component placement unit 111. Then, it is confirmed whether there is an unselected machine skeleton among the machine skeletons included in the acquired formal model skeleton (step 1801). As a result of the confirmation, if there is an unselected machine skeleton, step 1802 is executed, and if there is no unselected machine skeleton, step 1810 is executed.
  • the formal model component placement unit 111 selects the highest-level machine skeleton among the unselected machine skeletons (step 1802). For example, it is assumed that machine skeletons 901, 906, 1001, and 1101 are acquired as formal model skeletons. At this time, if all the machine skeletons are not selected, the highest-level machine skeleton is the machine skeleton 901 having the machine name “m0”.
  • the formal model component placement unit 111 refers to the label information holding unit 109 to check whether there is label information associated with the machine skeleton selected in Step 1802 (Step 1803). As a result of the confirmation, if there is label information, step 1804 is executed, and if there is no label information, step 1807 is executed.
  • the formal model component placement unit 111 refers to the formal model component holding unit 106 and acquires an event of the formal model corresponding to the process indicated by the label information. Then, the acquired event is introduced into the machine skeleton (step 1804). If an abstract event obtained by abstracting the event has been introduced in a machine higher than the machine skeleton, the name of the abstract event is designated as the refinement source event name (REFINES) in the event. If a parameter that is not used in the event is used in an abstract event, the value replaced with the parameter is specified in WITNESS. The abstract event will be described in step 1807.
  • EVT1 and EVT5 are associated with the machine skeleton 1001 having the name m2. Therefore, when the machine skeleton 1001 is selected, formal model parts corresponding to the processing of EVT1 and EVT5 are introduced. As an example, the introduction of formal model parts corresponding to the processing of EVT1 is described.
  • the event is introduced into the machine skeleton 1001.
  • machines with the names m0 and m1 have been completed. That is, the machines m0 and m1 are completed as shown in FIGS. 16 to 18, and the event abstract event 2101 is introduced. Therefore, an event is created by refinement (detailing) of an abstract event.
  • the result is an event 2301.
  • the formal model component placement unit 111 refers to the formal model component holding unit 106 and acquires a formal model component corresponding to an undeclared variable among the variables used by the event introduced in step 1804.
  • the formal model part 1201 the formal model part corresponding to a variable is a declaration of a variable, an invariant that defines the type of the variable, and an initialization action of the variable.
  • the formal model part is introduced into the machine skeleton (step 1805).
  • the formal model component placement unit 111 refers to the formal model component holding unit 106 and acquires a formal model component corresponding to an undeclared constant among the constants used by the event introduced in step 1804.
  • the formal model part corresponding to the constant is a declaration of the constant and an axiom that defines the type of the variable.
  • SEES reference context name
  • the formal model component placement unit 111 refers to the formal model component holding unit 106, and among the actions included in all events obtained from the formal model component 1401, has not yet been introduced into the machine skeleton and has been newly added in Step 1805 Get the action to assign to a variable. Then, the action is abstracted into “an action that nondeterministically substitutes a value that the variable can take for the variable” and introduced into the machine skeleton (step 1807). An event including the abstracted action is called an abstract event. For example, in the case of the machine skeleton 1001, the variable 2302 “the number of vehicles on the island” is introduced in Step 1805.
  • the formal model component placement unit 111 adds the weakest condition for establishing the invariant introduced in step 1706 to the guard of the event having the abstract action for performing nondeterministic substitution in the machine skeleton (step 1808).
  • the weakest condition is a condition that should be satisfied before the action is executed because the invariant is satisfied after the action is executed.
  • invariants 1005 and 1006 are introduced in step 1706.
  • the event “arriving from the land to the island” has abstract actions 2401 and 2405 for performing non-deterministic substitution.
  • the weakest conditions for establishing invariants 1005 and 1006 after execution of these actions 2401 and 2405 are guards 2403 and 2404. Therefore, these logical expressions are introduced as guards.
  • step 1706 In order to establish a higher invariant of the invariant introduced in step 1706 from the guard of the event having the abstract action that performs nondeterministic substitution in the machine skeleton (former machine part skeleton 111). ) Remove the weakest condition that was added from the guard of the event. In this step, the introduction of the formal model parts into the machine skeleton selected in step 1802 is completed, and a machine that is a component of the formal model is obtained (step 1809).
  • the top-bottom relationship of the invariant is equal to the top-bottom relationship of the requirement that it was based on.
  • the guard 2201 that is the weakest condition for establishing the invariant 911 is added to the machine m1 that is the upper machine of the machine skeleton 1001.
  • the invariant 911 is a higher invariant of the invariants 1005 and 1006. Therefore, the guard 2201 is deleted in the machine skeleton 1001 into which the invariants 1005 and 1006 are introduced.
  • the formal model component placement unit 111 refers to the formal model component holding unit 106 and confirms whether all events have been introduced into any machine (step 1810). Here, it is determined that the event introduced as an abstract event in step 1807 has not been introduced, and only the event introduced in step 1804 is determined to have been introduced. If all events have been introduced, the execution is terminated. If there is an unintroduced event, Step 1811 is executed. The formal model component placement unit 111 refines (details) the lowest machine to create a new machine (step 1811).
  • the formal model component placement unit 111 introduces an unintroduced event to a newly created machine. If an abstract event has already been introduced on a higher-level machine, specify the name of the abstract event in the refinement source event name (REFINES) in the event. If a parameter that is not used in the event is used in the abstract event, a value replaced with the parameter is designated in WITNESS (step 1812).
  • REFINES refinement source event name
  • the formal model component placement unit 111 refers to the formal model component holding unit 106, and acquires a formal model component corresponding to an undeclared variable among the variables used by the event introduced in step 1812. . Then, the formal model part is introduced into the newly created machine (step 1813).
  • the formal model component placement unit 111 refers to the formal model component holding unit 106, and acquires a formal model component corresponding to an undeclared constant among the constants used by the event introduced in step 1804. .
  • the formal model parts are then introduced into the context referenced by the newly created machine. If there is no context referenced by the machine, the lowest level context is expanded (EXTENDS) to create a new context, and a formal model part is introduced into the newly created context. Then, the name of the newly created context is designated as the machine reference context name (SEES) (step 1814).
  • Natural language model editing unit 102 Natural language model holding unit 103: Strategy diagram editing unit 104: Strategy diagram holding unit 105: Language conversion unit 106: Formal model part holding unit 107: Skeleton generation unit 108: Skeleton holding unit 109: Label information holding unit 110: Invariant generation information holding unit 111: Formal model component placement unit 112: Formal model holding unit 113: Formal model certification unit 114: Correction location display unit

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

 ソフトウェア仕様の検証において、リファイメントを適用した自動証明率の高い形式モデルを、自然言語の入力から生成する。 自然言語を含む形式で記述されるソフトウェア仕様を、形式言語記述へ変換することでソフトウェア仕様の検証を支援する装置は、ソフトウェア仕様が満たすべき性質で構成される仕様の証明戦略を編集する戦略編集手段と、仕様の構成要素および性質を、形式言語記述の構成要素となる形式言語部品に変換する言語変換手段と、証明戦略と形式言語部品から形式言語記述の一部の構成要素を含む形式言語記述スケルトンを生成するスケルトン生成手段と、形式言語記述スケルトンに対して形式言語部品を導入することで、形式言語記述を生成する形式言語部品配置手段を有する。

Description

ソフトウェア仕様の形式検証支援装置及びその方法
 本発明は、ソフトウェア開発を支援する技術に関し、特に、ソフトウェア仕様の検証を支援する技術に関する。
 ソフトウェア仕様の正しさに関する形式検証は、ソフトウェアの仕様を、数学的意味を持つ形式言語によって記述し、この形式言語で記述されたソフトウェア仕様(以下、形式モデルと呼ぶ)の正しさを、数学的手法に基づいて証明することで行われる。よって、上記形式検証のためには、ソフトウェア仕様の設計者が形式言語を習得していることが要件となる。このため、形式検証の導入には形式言語習得に要する導入コストがかかるという課題がある。
 この課題に対処するため、特許文献1には、自然言語または図などによって記述したソフトウェア仕様(以下、自然言語モデルと呼ぶ)を、形式モデルに変換して生成する方法が開示されている。この生成方法によれば、ソフトウェアの設計者は、自然言語や図などによって記述した自然言語モデルから、検証のための形式モデルを得ることができるため、形式言語を習得せずとも形式検証を活用できる。よって形式言語習得にかかる導入コストを削減できるという効果がある。
 上記形式検証の手法のうち、Event-BやBメソッドなどの手法では、リファイメントと呼ばれる形式モデルの設計手法が採用されている。リファイメントとは、対象のソフトウェア仕様の一部を抽象的に記述した後、段階的に仕様を追加および詳細化していく設計手法である。このリファイメントを適用することで、自動証明器による形式モデルの証明率(以下、自動証明率と呼ぶ)を向上することができる。自動証明率が高いほど、手作業による証明作業を削減できるため、形式検証にかかる作業工数を削減できるという利点がある。逆に、生成した形式モデルの自動証明率が低い場合、多くの証明を手作業で行う必要がある。手作業での証明には、形式言語に関する専門的知識を要する場合もあるため、証明可能なソフトウェア仕様であるにも拘わらず、その証明を達成できない可能性もある。
特開2011-180850号公報
 上記リファイメントの手続きは、形式言語が持つ数学的意味において、どの程度仕様を抽象化するかという仕様抽象度に関する要素と、抽象した仕様をどのような手順で詳細化していくかという詳細化手順に関する要素を含む。よって、対象のソフトウェア仕様に対して数学的意味が与えられた後、すなわち、対象のソフトウェア仕様に対応する形式モデルを得た後でなければ、リファイメントの手続きは決定できない。つまり、自然言語モデル上でリファイメント手続きを決定することは困難である。このため、自然言語モデルを形式モデルに変換する従来技術では、リファイメントを適用した自動証明率の高い形式モデルを生成できないという問題がある。つまり、形式言語を習得し、形式言語上で形式モデルを設計しなければ、リファイメントを適用した自動証明率の高い形式モデルを得ることが困難である。
 上記のように、形式言語を習得しなくても、リファイメントを適用した自動証明率の高い形式モデルを得られるようにすることで、形式言語習得にかかる導入コストの削減と、形式モデルの証明にかかる作業コストの削減を両立することが課題となる。
 本発明の目的は、リファイメントを適用した自動証明率の高い形式モデルを自然言語の入力から生成可能にすることで、ソフトウェア仕様の検証工数を削減することにある。
 本発明は、好ましくは、自然言語を含む形式で記述されるソフトウェア仕様を、形式言語記述へ変換することで、該ソフトウェア仕様の検証を支援する装置であって、ソフトウェア仕様が満たすべき性質で構成される、ソフトウェア仕様の証明戦略を編集する戦略編集手段と、ソフトウェア仕様の構成要素および該性質を、形式言語記述の構成要素となる形式言語部品に変換する言語変換手段と、該証明戦略と該形式言語部品から形式言語記述の一部の構成要素を含む形式言語記述スケルトンを生成するスケルトン生成手段と、該形式言語記述スケルトンに対して該形式言語部品を導入することで、該形式言語記述を生成する形式言語部品配置手段を有する、ことを特徴とするソフトウェア仕様の形式検証支援装置として構成される。
また本発明は、上記形式検証支援装置におけるソフトウェア仕様の形式検証支援方法としても構成される。
 本発明の好ましい実施形態によれば、ソフトウェア仕様の正しさを形式的に検証するための形式モデルを作成する際において、自然言語にて記述可能な図であるリファイメント戦略図に基づいて、リファイメントを適用した形式モデルを生成する。これにより、形式モデルの自動証明率を左右するリファイメントの戦略を、自然言語上で設計できるようになるため、形式言語を習得しなくても、リファイメントを適用した自動証明率の高い形式モデルを得ることができる。これにより、ソフトウェア仕様の正しさを証明できる可能性が向上し、ソフトウェア仕様の形式検証のための導入コストの削減と、ソフトウェア仕様の形式検証工数を削減することが可能となる。
ソフトウェア仕様の形式検証支援装置の構成を示すブロック図。 ソフトウェア仕様の形式検証支援装置のハードウェア構成を示すブロック図。 自然言語モデルの例を示すオブジェクト図。 自然言語モデルの例を示すフローチャート。 自然言語モデルの例を示すフローチャート。 自然言語モデルの例を示すフローチャート。 システム要件の例を示す図。 リファイメント戦略図の例を示す図。 形式モデルスケルトンの例を示す図。 形式モデルスケルトンの例を示す図。 形式モデルスケルトンの例を示す図。 形式モデル部品の例を示す図。 形式モデル部品の例を示す図。 形式モデル部品の例を示す図。 ラベル情報の例を示す図。 インバリアント生成情報の例を示す図。 スケルトン生成部の処理手順を示すフローチャート。 形式モデル部品配置部の処理手順を示すフローチャート。 形式モデル部品配置部の処理手順を示すフローチャート。 形式モデルの例(1)を示す図。 形式モデルの例(2)を示す図。 形式モデルの例(2)を示す図。 形式モデルの例(3)を示す図。 形式モデルの例(3)を示す図。
 以下、本発明の好ましい実施形態を、図面を参照しながら詳細に説明する。本実施形態は、自然言語にて記述可能な自然言語モデルおよびリファイメント戦略図から、リファイメントを適用した形式モデルを生成する、ソフトウェア仕様の形式検証支援装置として適用される。
 本実施形態によれば、形式言語の未習熟なソフトウェア仕様設計者でも、適切なリファイメント戦略図を与えることで、リファイメントを適用した自動証明率の高い形式モデルを得ることができるようになる。これにより、形式言語の習得にかかる形式検証の導入コストを削減することができる。また、自動証明率の高い形式モデルを得ることで、形式モデルを手作業で証明した場合にかかる作業コストを削減できるとともに、ソフトウェア仕様の正しさを証明できる可能性が向上する。
 また本実施形態によれば、自動証明に失敗した場合に、その原因箇所を上記リファイメント戦略図上に表示するため、自動証明率の向上のためのリファイメント戦略図の修正効率を向上できる。これにより、リファイメントを適用した自動証明率の高い形式モデルを得るためのリファイメント戦略図の設計工数を削減できる。
 図1は、形式手法Event-Bを対象とした形式検証支援装置の機能構成の例を示すブロック図である。
形式検証支援装置は、自然言語モデル編集部101、自然言語モデル保持部102、戦略図編集部103、戦略図保持部104、言語変換部105、形式モデル部品保持部106、スケルトン生成部107、スケルトン保持部108、ラベル情報保持部109、インバリアント生成情報保持部110、形式モデル部品配置部111、形式モデル保持部112、形式モデル証明部113、及び修正箇所表示部114を有して構成される。
 自然言語モデル編集部101は、自然言語または図などで記述したソフトウェア仕様である自然言語モデルの作成・編集を受け付け、自然言語モデルを自然言語モデル保持部102に登録する。自然言語モデルに含まれる要素のうち、ソフトウェアの処理を表す要素には、それらを一意に識別するためのラベルを付与する。
 戦略図編集部103は、ソフトウェアが満たすべき複数の要件を木構造で接続したリファイメント戦略図の作成・編集を受け付け、リファイメント戦略図を戦略図保持部104に登録する。
 言語変換部105は、自然言語モデル保持部102から自然言語モデルを、戦略図保持部104からリファイメント戦略図をそれぞれ取得して、自然言語のモデル記述を形式言語に変換する。変換によって得られた形式言語の記述は形式モデルの構成要素となるため、形式モデル部品として形式モデル部品保持部106に登録する。
 スケルトン生成部107は、戦略図保持部104からリファイメント戦略図を、形式モデル部品保持部106から形式モデル部品をそれぞれ取得して、マシン名(MACHINE)、詳細化元マシン名(REFINES)、参照コンテクスト名(SEES)、変数(VARIABLES)、インバリアント(INVARIANTS)、初期化イベント(INITIALISATION)のアクション、コンテクスト名(CONTEXT)、定数(CONSTANTS)、及び公理(AXIOMS)など、形式モデルの一部の構成要素からなる形式モデルスケルトン(以下単にスケルトンと呼ぶことがある)を生成し、スケルトン保持部108に登録する。また、形式モデルスケルトン生成の際に、形式モデルの構成要素であるマシン名と、そのマシンに導入されるべき処理を特定するラベルとの対応関係を作成し、対応関係をラベル情報としてラベル情報保持部109に登録する。また同じく、形式モデルスケルトン生成の際に、リファイメント戦略図を構成する要件の識別子と、当該要件から生成したインバリアントの識別子との対応関係を作成し、インバリアント生成情報としてインバリアント生成情報保持部110に登録する。
 形式モデル部品配置部111は、形式モデル部品保持部106から形式モデル部品を、スケルトン生成部107から形式モデルスケルトンをそれぞれ取得して、形式モデルスケルトンに形式モデル部品を配置していくことで形式モデルを作成する。その際、ラベル情報保持部109から当該形式モデルスケルトンを生成する際に作成したラベル情報を取得し、そのラベル情報に基づいて形式モデル部品の配置を行う。その結果得られた形式モデルは、形式モデル保持部112に登録する。
形式モデル証明部113は、形式モデル保持部112から形式モデルを取得して、自動定理証明器を用いて形式モデルの証明を行う。
 修正箇所表示部114は、形式モデル証明部113から証明に失敗したインバリアントの識別子を取得した後、インバリアント生成情報保持部110を参照して、上記識別子に対応する要件識別子を取得する。そして、取得した要件識別子の示す要件を、戦略図編集部103が表示するリファイメント戦略図上に強調表示する。
 図2は、形式検証支援装置のハードウェア構成例を示す。
形式検証支援装置は、CPU202、メモリ203、外部記憶装置204、表示装置205、入力装置206、及び外部媒体入出力装置207を有する。
 CPU202は、メモリ203に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ203は、CPU202のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。具体的には、プログラムとして、上記自然言語モデル編集部101、戦略図編集部103、言語変換部105、スケルトン生成部107、形式モデル部品配置部111、形式モデル証明部113、及び修正箇所表示部114の各機能を実現するプログラムがメモリ203に用意される。併せて、自然言語モデル保持部102、戦略図保持部104、形式モデル部品保持部106、スケルトン保持部108、ラベル情報保持部109、インバリアント生成情報保持部110、及び形式モデル保持部112に保持されるデータがメモリ203に記憶される。
 外部記憶装置204は例えばハードディスク装置であり、種々のデータを格納する。具体的には、自然言語モデル保持部102、戦略図保持部104、形式モデル部品保持部106、スケルトン保持部108、ラベル情報保持部109、インバリアント生成情報保持部110、及び形式モデル保持部112に保持されるデータが格納される。
 なお、自然言語モデル編集部101、戦略図編集部103、言語変換部105、スケルトン生成部107、形式モデル部品配置部111、形式モデル証明部113、及び修正箇所表示部114を実現する各プログラム又は少なくともその一部は外部記憶装置204又は外部媒体入出力装置207に着脱可能な外部媒体に格納されてもよい。その場合、上記各機能を実現するに際して、CPU202は、外部記憶装置204又は外部媒体からプログラムをメモリ203に読み出して、そのプログラムを実行する。
 表示装置205は例えば液晶ディスプレイであり、プログラムの処理結果などを表示する。入力装置206は例えばキーボード及びマウスであり、処理の実行指示及び処理に必要な情報の入力などを利用者から受け付ける。
 外部媒体入出力装置207は、外部媒体と、外部記憶装置204に格納されているデータの入出力を行う。外部媒体は、外部媒体入出力装置207に着脱可能で可搬性のある記憶媒体であり、外部媒体出力装置207は、外部媒体に読み書き可能なドライブ装置などである。
 本実施形態では、島と陸の間の車の往来を制御する信号システムを検証対象として使用する。島と陸の間には、一方通行の橋が架かっており、車は陸から島へ又は島から陸へ橋上を往来する。車は全て陸からやってくるものとし、島上で急に車が出現することはない。また、橋の幅は一車線分しかないため、橋上の通行は一方通行である。そのため、島から橋、あるいは陸から橋への進入地点にそれぞれ信号機が設置されており、橋上で車が正面衝突することのないように、車の往来を制御している。本実施形態では、信号機の現示を制御する信号システムを検証対象とする。この信号システムは、島上の車数および橋上の車数とその向きを認識できるため、車数に従って信号機を制御する。また、島上の車の数と、橋上に合わせて存在できる車数には上限値が設定されており、信号システムは上限値を超えないように、信号機を制御する。
 図3は、自然言語モデルの例を示すオブジェクト図である。
自然言語モデルの一部であるオブジェクト図は、オブジェクト302、303、304を定義する。
オブジェクト302は「自動車」という名称のオブジェクトを定義する。オブジェクト302は、識別子「v1」で表される「陸から島への車数」という名称の変数305を持つ。この変数は、自然数の型を持つ変数であることが、それぞれ自然数を意味する「NAT」、および変数を意味する「VAR」から読み取れる。「島から陸への車数」v2、「島上の車数」v3も同様に定義できる。一方、「車数上限値」は、定数を表す「CON」より、自然数型の定数であることが読み取れる。
また、オブジェクト303の「信号機」及びオブジェクト304の「制御装置」についても同様に識別子「v4」「v5」が定義される。BOOLはブール型を表す。
 図4A,図4Bは、自然言語モデルの例を示すフローチャートである。(図4A,図4Bは総じて図4ということがある。)
自然言語モデルの一部であるフローチャートは、対象のオブジェクト名称402と、判断403~408、周期開始409、周期終了410の各ステップを含む。
 オブジェクト名称402は、このフローチャートで処理を定義する対象のオブジェクト名称を表す。
判断403~408は、処理の流れを決定する判断条件を表す。例えば、判断403は「島から陸への信号現示」という変数がTRUEかどうかという条件を表しており、この変数がTRUEであれば判断404に進み、変数がFALSEであれば周期終了410に進む。
 周期開始409および周期終了410は、このフローチャートの開始点および終了点を表す。ただし、周期終了410に到達した場合は、処理を終了せずに、周期開始409に戻って同様の処理を周期実行する。
 図4Bに示すように、自然言語モデルの一部であるフローチャートは、対象のオブジェクト名称402と周期終了410に加え、処理ステップ502~505、ラベル506~509を含む。処理502~505は、対象のオブジェクトが実行する処理の内容を表す。複数の処理が記載されている場合は、それらの処理は並行的実行されるものとする。例えば、処理502には、「島から陸への車数を1増加」と「島上の車数を1減少」の2つの処理が記載されているが、これらの処理は並行的に実行される。ラベル506~509(即ちイベントEV1~EV4)は、それぞれ処理502~505の識別子である。
 図4Aでは、オブジェクトの名称や、変数の名称および変数の値を下線付きで示している。オブジェクトの名称、変数の名称、および変数の値は、オブジェクト図(図3)の定義と一致する必要がある。そこで、自然言語モデル編集部101は、オブジェクト図の定義に基づいてオブジェクト名称の候補、変数名称の候補、および値の候補などを画面表示し、ユーザからの選択を受け付けることで、図4Aのフローチャートを作成することもできる。以下に示す、図4B、図5、図6、図7においても同様である。
 図5は、自然言語モデルの例を示すフローチャートである。これも図4と同様に解釈できる。
フローチャートに含まれる処理602は、判断結果がYESの場合に、処理603あるいは判断604のどちらか一方に進むことができる。処理603あるいは判断604のどちらに進むかは、実行の度に非決定的に選択される。
この自然言語モデルは、上記したオブジェクト(図3)、図4~図5に示すフローチャートによって構成される。
 図6は、システム要件の例を示す。
システム要件701は、自然言語モデルによって定義されるシステムが満たすべき要件を表す。つまり、自然言語モデルがシステム要件701を満たすかを判定することが、形式検証の目的である。システム要件701はユーザが決めて入力装置206より入力され、自然語モデル保持部102に保持される。
 図7は、リファイメント戦略図の例を示す。
リファイメント戦略図801は、システム要件701、サブ要件802~806を含んで構成される。以下、システム要件701とサブ要件802~806を合わせて、要件と総称する。要件の先頭行に表れる「REQ1」~「REQ6」は、要件の識別子である。
 サブ要件802~806は、システム要件701を木構造に従って分割した結果である。例えば、サブ要件802が成立するならば、システム要件701は成立する。そして、サブ要件803およびサブ要件804が成立するならば、サブ要件802は成立する。さらに、サブ要件805およびサブ要件806が成立するならば、サブ要件803は成立する。このように、上位の要件を満たすために必要な要件を下位に記述する。
 サブ要件には、サブ要件が成立するための前提となる処理のラベルを付与する。図7では、サブ要件804、805及び806に、上記処理のラベル506、507、606、及び607(即ちEVT1、2、5、6)が付与されている。例えば、サブ要件804には、ラベル506および606(即ちEVT2、5)が付与されており、上記ラベルに対応する処理502および603に基づいて、サブ要件804が成立することを表している。
リファイメント戦略図801はユーザが決めて入力装置206より入力され、戦略図保持部104に保持される。
 図8A~8Cは、形式モデルスケルトンの例を示す。(総じて図8ということがある。)
形式モデルスケルトンは、スケルトンの構成要素901、906、1001、および1101から構成される。
スケルトンの構成要素901は、マシン名902、変数903および904、インバリアント905、912、913、初期化イベントのアクション914および913を含む。
 スケルトンの構成要素901は、マシンと呼ばれる構成要素のスケルトンであり、マシン名902は、当該マシンの名称を表している。そこで以降、マシンのスケルトンであるスケルトンの構成要素901、906、1001、および1101を、マシンスケルトンと呼ぶことにする。変数903および904は、当該マシンが使用する変数の宣言を表す。インバリアント905は、当該マシンにて成立する不変条件であり、「陸から島への車数が0あるいは島から陸への車数は0、という条件が常に成立する」という意味を持つ。またインバリアント912および913は、変数903および904の型を定義するインバリアントである。さらに、初期化イベントのアクション914および915は、変数903および904に初期値を代入する初期化アクションを表す。
 同様に、マシンスケルトン906は、マシン名907、詳細化元マシン名908、変数909および910、インバリアント911を含む。詳細化元マシン名908は、マシン名902を指しているため、マシンスケルトン906に基づいて作成されるマシンは、マシンスケルトン901に基づいて作成されるマシンをリファイメント(詳細化)したマシンである。
図8B,8Cに示す、マシンケルトン1001、1101の構成も同様にして理解できるであろう。
 図9は、形式モデル部品の例を示す。
形式モデル部品1201は、自然言語モデルの種別1202、自然言語モデルの識別子1203、形式モデルの種別1204、形式モデルの記述内容1205の項目から構成される。
自然言語モデルの種別1202および自然言語モデルの識別子1203は、形式モデルのもとになった自然言語モデルの要素を表す。例えば、No1の「変数」および「v1」は、識別子v1を持つ変数305を指している。
 形式モデルの種別1204、および形式モデルの記述内容1205は、自然言語モデルの変換によって得た形式モデルの種別と記述内容を表す。例えば、No1の「VARIABLES」、「陸から島への車数」は、「陸から島への車数」という名称の変数の宣言を表す.同様に、「INVARIANTS」、「陸から島への車数 ∈ NAT」は、「変数“陸から島への車数”は自然数型である」という型定義のインバリアントを表す。さらに「INITIALISATION」、「陸から島への車数 := 0」は、「変数“陸から島への車数”は、0に初期化する」という、初期化イベントにおける変数の初期化アクションを表す。
 結局、上記例では、識別子v1を持つ変数305から、「陸から島への車数」という変数の宣言、「陸から島への車数 ∈ NAT」という型定義のインバリアント、及び「陸から島への車数 := 0」という初期化アクションが得られたことになる。
 図10は、形式モデル部品の例を示す。
形式モデル部品1301は、形式モデル部品1201(図9)と同様に、自然言語モデルの種別1202、自然言語モデルの識別子1203、形式モデルの種別1204、形式モデルの記述内容1205の項目から構成される。
 例えば、No7の自然言語モデルに関する項目値である「要件」および「REQ1」は、識別子REQ1を持つ要件701を指している。そして、No7の形式モデルに関する項目値である「INVARIANTS」および「陸から島への車数 = 0 ∨ 島から陸への車数 = 0」は、「陸から島への車数 = 0 ∨ 島から陸への車数 = 0」という内容のインバリアントを表す。
 図11は、形式モデル部品の例を示す。
形式モデル部品1401は、形式モデル部品1201および1301と同様に、自然言語モデルの種別1202、自然言語モデルの識別子1203、形式モデルの種別1204、形式モデルの記述内容1205の項目から構成される。
 例えば、No13の自然言語モデルに関する項目値である「イベント」および「EVT1」は、識別子EVT1を持つ処理502を指している。そして、No13の形式モデルに関する項目値である「EVENTS」および「WHERE grd1:島から陸への信号現示 = TRUE grd2:島上の車数 ≧ 1 THEN act1:島から陸への車数 := 島から陸への車数 + 1 act2:島上の車数 := 島上の車数 - 1 END」は、形式モデルにおける上記内容のイベント(EVENTS)を表す。
 図12は、ラベル情報の例を示す。
ラベル情報1501は、マシン名1502と、ラベル1503の項目から構成される。
マシン名1502は、スケルトン生成部107が生成するマシンスケルトンを特定する。
 ラベル1503は、マシン名1502が示すマシンスケルトンに導入されるべき処理を特定する。例えば、No1のマシン名「m2」は、マシンスケルトン1001を指す。さらにNo1のラベル「EVT1、EVT5」は、処理502および603の内容を、マシンスケルトン1001に導入する必要があることを意味する。処理502および603は、言語変換部105によって形式モデル部品に変換され、形式モデル部品1401の形式モデルの記述内容1205の項目に登録される。つまりラベル情報1501のNo1は、形式モデル部品1401から取得可能な処理502および603に対応する形式モデルの記述内容を、マシンスケルトン1001に導入する必要があるという意味である。
 図13は、インバリアント生成情報の例を示す。
インバリアント生成情報1601は、インバリアント識別子1602と、要件識別子1603の項目から構成される。
 インバリアント識別子1602は、マシンに含まれるインバリアントを一意に特定するための識別子で、当該インバリアントが含まれるマシン名と、当該マシン内でインバリアントを特定可能なインバリアント名から構成される。例えば、No1のインバリアント識別子「inv1@m0」は、マシン名「m0」が示すマシンスケルトン901に含まれる「inv1」の識別子を持つインバリアント905を示す。
 要件識別子1603は、インバリアント識別子1602が示すインバリアントの生成もとになった要件の識別子を表す。例えば、No1の要件識別子「REQ1」は、要件701を指している。
 以上より、インバリアント生成情報1601のNo1は、インバリアント識別子「inv1@m0」によって示されるインバリアント905が、要件識別子「REQ1」によって示される要件701から生成されたことを表している。
 図14は、スケルトン生成部107の処理手順を示すフローチャートである。
この処理は、形式検証支援装置201内のCPU202が、メモリ203に保持されたプログラムを実行することで実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
 CPU202は、スケルトン生成部107を実行することによって、戦略図保持部104からリファイメント戦略図を取得し、取得したリファイメント戦略図の最上位の要件であるシステム要件を選択する。その後ステップ1705を実行する(ステップ1701)。
 スケルトン生成部107は、リファイメント戦略図に含まれる要件のうち、未選択の要件があるかを確認する。未選択の要件がある場合はステップ1703を実行する。未選択の要件がない場合、つまり全ての要件を選択し、処理した場合は、実行を終了する(ステップ1702)。
 スケルトン生成部107は、未選択の要件のうち、最上位の要件を選択する(ステップ1703)。
 スケルトン生成部107は、ステップ1703で選択した要件の上位の要件を取得する。上記上位要件の下位要件のうち、未選択の全ての要件を選択する(ステップ1704)。例えば、リファイメント戦略図801において、要件803がステップ1703で選択されたとすると、要件803の上位要件は要件802である。さらに、要件802の下位要件は要件803および要件804である。要件803は未選択であり、要件804も未選択であるとすると、要件803および要件804が選択される。
 スケルトン生成部107は、マシンを新規作成する。既に1つ以上のマシンを作成済みの場合、最下位のマシンをリファイメント(詳細化)してマシンを新規作成する(ステップ1705)。マシン間における上下関係は、次のように定義する。あるマシンとそのマシンをリファイメントすることで得られる詳細化マシンが与えられた場合、当該マシンを上位のマシン、詳細化マシンを下位のマシンと定義する。コンテクストについても同様で、あるコンテクストとそのコンテクストを拡張(EXTENDS)した拡張コンテクストが与えられた場合、当該コンテクストを上位のコンテクスト、拡張コンテクストを下位のコンテクストと定義する。
 スケルトン生成部107は、形式モデル部品保持部106を参照し、選択した要件に対応する形式モデル部品を取得する。複数の要件を選択している場合、それぞれの形式モデル部品を取得する。形式モデル部品1301に示した通り、要件に対応する形式モデル部品はインバリアントである。そこで、形式モデル部品を、ステップ1705で新規作成したマシンに導入する。その際、上記要件に付与されているラベルとマシンとの対応関係であるラベル情報を作成し、ラベル情報保持部109に登録する。同時に、上記要件とインバリアントとの対応関係であるインバリアント生成情報を作成し、インバリアント生成情報保持部110に登録する(ステップ1706)。
 例えば、ステップ1704で要件803と要件804が選択され、ステップ1705でマシンm2が新規作成された場合を考える。この場合、形式モデル部品1301より、インバリアント「陸から島への車数 ≧ 1 ⇒ 島から陸への信号現示 = FALSE」および「島から陸への信号現示 = FALSE ⇒ 島から陸への車数 = 0」を取得する。そして、これらのインバリアントをマシンm2のインバリアント1005および1006として導入する。
 スケルトン生成部107は、ステップ1706で導入したインバリアントに、未宣言の変数が含まれるかを確認する。未宣言の変数が含まれる場合はステップ1708を実行する。未宣言の変数が含まれない場合は、ステップ1709を実行する(ステップ1707)。
 スケルトン生成部107は、形式モデル部品保持部106を参照し、未宣言の変数に対応する形式モデル部品を取得する。形式モデル部品1201に示す通り、変数に対応する形式モデル部品は、変数の宣言、変数の型を定義するインバリアント、及び変数の初期化アクションである。そこで、形式モデル部品をマシンに導入する(ステップ1708)。例えば、マシンm2に導入したインバリアント1006は、「島から陸への信号現示」という未宣言の変数を含む(変数「陸から島への車数」と変数「島から陸への車数」はm0にて宣言しているため、未宣言ではない)。そこで、上記変数に対応する形式モデル部品として、変数の宣言1004、型定義のインバリアント1007、及び初期化アクション1008をマシンm2に導入する。その結果、マシンスケルトン1001が得られる。
 スケルトン生成部107は、ステップ1706で導入したインバリアントに、未宣言の定数が含まれるかを確認する。未宣言の定数が含まれる場合はステップ1710を実行する。未宣言の変数が含まれない場合は、ステップ1702に戻る(ステップ1709)。スケルトン生成部107はまず、コンテクストを新規作成する。既に1つ以上のコンテクストを作成済みの場合、最下位のコンテクストを拡張(EXTENDS)してコンテクストを新規作成する。次に形式モデル部品保持部106を参照し、未宣言の定数に対応する形式モデル部品を取得する。形式モデル部品1201に示す通り、定数に対応する形式モデル部品は、定数の宣言、および変数の型を定義する公理である。そこで、形式モデル部品を新規作成したコンテクストに導入する。さらに、上記マシンの参照コンテクスト名(SEES)に、新規作成したコンテクストの名称を指定する。参照コンテクスト名とは、マシンが参照可能なコンテクストの名称である。その後ステップ1702に戻る(ステップ1710)。
上記の手順にて、図8に示す形式モデルスケルトンが得られる。
 図15A,15Bは、それぞれ形式モデル部品配置部111の処理手順を示すフローチャートである。
この処理は、形式検証支援装置201内のCPU202が、メモリ203に保持されたプログラムを実行することで実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
 CPU202は、形式モデル部品配置部111を実行することによって、スケルトン生成部107から形式モデルスケルトンを取得する。そして、取得した形式モデルスケルトンに含まれるマシンスケルトンのうち、未選択のマシンスケルトンがあるかを確認する(ステップ1801)。確認の結果、未選択のマシンスケルトンが有ればステップ1802を実行し、未選択のマシンスケルトンが無ければステップ1810を実行する。
 形式モデル部品配置部111は、未選択のマシンスケルトンのうち、最上位のマシンスケルトンを選択する(ステップ1802)。例えば、形式モデルスケルトンとして、マシンスケルトン901、906、1001、および1101を取得したとする。この時、全てのマシンスケルトンが未選択であれば、最上位のマシンスケルトンは、マシン名「m0」を持つマシンスケルトン901となる。
 形式モデル部品配置部111は、ラベル情報保持部109を参照し、ステップ1802で選択したマシンスケルトンに関連づけられたラベル情報があるかを確認する(ステップ1803)。確認の結果、ラベル情報があればステップ1804を実行し、ラベル情報が無ければステップ1807を実行する。
 形式モデル部品配置部111は、形式モデル部品保持部106を参照し、ラベル情報が示す処理に対応する形式モデルのイベントを取得する。そして、取得したイベントをマシンスケルトンに導入する(ステップ1804)。当該マシンスケルトンよりも上位のマシンにおいて、当該イベントを抽象化した抽象イベントを導入済みの場合は、抽象イベントの名称を、当該イベントにおける詳細化元イベント名(REFINES)に指定する。また当該イベントでは使用しないパラメータを抽象イベントにおいて使用していた場合は、ウィットネス(WITNESS)にて、パラメータに置き換えられた値を指定する。抽象イベントについては、ステップ1807で説明する。
 例えば、ラベル情報1501のNo1では、m2の名称を持つマシンスケルトン1001に対してEVT1およびEVT5が対応付けられている。よって、マシンスケルトン1001を選択した場合は、EVT1およびEVT5の処理に対応する形式モデル部品を導入する。例として、EVT1の処理に対応する形式モデル部品の導入について述べる。EVT1の処理502に対応する形式モデル部品は、形式モデル部品1401のNo13に示したイベント「WHERE grd1:島から陸への信号現示 = TRUE grd2:島上の車数 ≧ 1 THEN act1:島から陸への車数:=島から陸への車数 + 1 act2:島上の車数:=島上の車数 - 1 END」である。よって、上記イベントを、マシンスケルトン1001に導入する。ここで、m2の名称を持つマシンスケルトンを選択するまでに、m0およびm1の名称を持つマシンが完成していることに注意する。つまり、m0およびm1のマシンは図16~図18に示す通り完成しており、イベントの抽象イベント2101が導入されている。よって、イベントは、抽象イベントのリファイメント(詳細化)によって作成する。その結果が、イベント2301である。イベント2301では、イベント2101のパラメータprm1を使用しないため、ウィットネスにて、「prm1 = 島から陸への車数 + 1 」を指定している。
 形式モデル部品配置部111は、形式モデル部品保持部106を参照し、ステップ1804で導入したイベントが使用する変数のうち、未宣言の変数に対応する形式モデル部品を取得する。形式モデル部品1201に示す通り、変数に対応する形式モデル部品は、変数の宣言、変数の型を定義するインバリアント、及び変数の初期化アクションである。上記形式モデル部品をマシンスケルトンに導入する(ステップ1805)。
 形式モデル部品配置部111は、形式モデル部品保持部106を参照し、ステップ1804で導入したイベントが使用する定数のうち、未宣言の定数に対応する形式モデル部品を取得する。形式モデル部品1201に示す通り、定数に対応する形式モデル部品は、定数の宣言、および変数の型を定義する公理である。形式モデル部品をマシンスケルトンが参照するコンテクストに導入する。マシンスケルトンが参照するコンテクストが存在しない場合は、最下位のコンテクストを拡張(EXTENDS)してコンテクストを新規作成し、新規作成したコンテクストに形式モデル部品を導入する。そして、マシンスケルトンの参照コンテクスト名(SEES)に、新規作成したコンテクストの名称を指定する(ステップ1806)。
 形式モデル部品配置部111は、形式モデル部品保持部106を参照し、形式モデル部品1401から得られる全てのイベントに含まれるアクションのうち、マシンスケルトンに未導入で、かつステップ1805で新たに追加した変数に代入を行うアクションを取得する。そして、上記アクションを、「上記変数に対して、上記変数が取り得る値を非決定的に代入するアクション」に抽象化して、上記マシンスケルトンに導入する(ステップ1807)。上記抽象化したアクションを含むイベントを抽象イベントと呼ぶ。例えば、マシンスケルトン1001の場合、ステップ1805によって、変数2302「島上の車数」が導入される。この変数に代入を行う未導入のアクションとして、アクション1206「act2:島上の車数:=島上の車数 + 1」がある。そこで、アクション1206を、上記の通り抽象化し、抽象化アクション2401「島上の車数:=prm2(ガード2402より、prm2は任意の自然数)」を得る。
 形式モデル部品配置部111は、マシンスケルトンにおいて、非決定的代入を行う抽象化アクションを持つイベントのガードに、ステップ1706にて導入したインバリアントが成立するための最弱条件を追加する(ステップ1808)。ここで、最弱条件とはアクションの実行後にインバリアントが成立するために、アクションの実行前に成立すべき条件である。例えば、マシンスケルトン1001の場合、ステップ1706にてインバリアント1005および1006が導入される。そして、イベント「陸から島に到着」は、非決定的代入を行う抽象化アクション2401および2405を持つ。これらのアクション2401および2405の実行後にインバリアント1005および1006が成立するための最弱条件は、ガード2403および2404である。よって、これらの論理式をガードとして導入する。
 形式モデル部品配置部111は、マシンスケルトンにおいて、非決定的代入を行う抽象化アクションを持つイベントのガードから、ステップ1706にて導入したインバリアントの上位インバリアントを成立させるために(上位のマシンにて)追加してあった最弱条件を、当該イベントのガードから削除する。本ステップにて、ステップ1802で選択したマシンスケルトンへの形式モデル部品の導入は完了し、形式モデルの構成要素となるマシンを得る(ステップ1809)。インバリアントの上下関係は、その元になった要件の上下関係と等しい。例えば、マシンスケルトン1001のイベント「陸から島に到着」の場合、マシンスケルトン1001の上位マシンであるm1のマシンにおいて、インバリアント911を成立させるための最弱条件であるガード2201を追加する。インバリアント911は、インバリアント1005および1006の上位インバリアントである。よって、インバリアント1005および1006を導入したマシンスケルトン1001において、ガード2201を削除する。
 形式モデル部品配置部111は、形式モデル部品保持部106を参照し、全てのイベントが何れかのマシンに導入済みかどうかを確認する(ステップ1810)。ここでは、ステップ1807において抽象イベントとして導入されたイベントは未導入と判定し、ステップ1804によって導入されたイベントのみを導入済みと判定する。全てのイベントが導入済みの場合、実行を終了する。未導入のイベントがある場合、ステップ1811を実行する。
形式モデル部品配置部111は、最下位のマシンをリファイメント(詳細化)してマシンを新規作成する(ステップ1811)。
 形式モデル部品配置部111は、未導入のイベントを、新規作成したマシンに導入する。上位のマシンにて抽象イベントを導入済みの場合は、抽象イベントの名称を、当該イベントにおける詳細化元イベント名(REFINES)に指定する。また当該イベントでは使用しないパラメータを抽象イベントにおいて使用していた場合は、ウィットネス(WITNESS)にて、パラメータに置き換えられた値を指定する(ステップ1812)。
 形式モデル部品配置部111は、ステップ1805と同様に、形式モデル部品保持部106を参照し、ステップ1812で導入したイベントが使用する変数のうち、未宣言の変数に対応する形式モデル部品を取得する。そして上記形式モデル部品を、新規作成した上記マシンに導入する(ステップ1813)。
 形式モデル部品配置部111は、ステップ1806と同様に、形式モデル部品保持部106を参照し、ステップ1804で導入したイベントが使用する定数のうち、未宣言の定数に対応する形式モデル部品を取得する。そして形式モデル部品を、新規作成したマシンが参照するコンテクストに導入する。マシンが参照するコンテクストが存在しない場合は、最下位のコンテクストを拡張(EXTENDS)してコンテクストを新規作成し、新規作成したコンテクストに形式モデル部品を導入する。そして、マシンの参照コンテクスト名(SEES)に、新規作成したコンテクストの名称を指定する(ステップ1814)。
 上記の処理手順にて、図8A~8Cに示す形式モデルスケルトンから、図16~図18に示す形式モデルが得られる。
 101:自然言語モデル編集部
 102:自然言語モデル保持部
 103:戦略図編集部
 104:戦略図保持部
 105:言語変換部
 106:形式モデル部品保持部
 107:スケルトン生成部
 108:スケルトン保持部
 109:ラベル情報保持部
 110:インバリアント生成情報保持部
 111:形式モデル部品配置部
 112:形式モデル保持部
 113:形式モデル証明部
 114:修正箇所表示部

Claims (8)

  1.  自然言語を含む形式で記述されるソフトウェア仕様を、形式言語記述へ変換することで、該ソフトウェア仕様の検証を支援する装置であって、
     ソフトウェア仕様が満たすべき性質で構成される、ソフトウェア仕様の証明戦略を編集する戦略編集手段と、
     ソフトウェア仕様の構成要素および該性質を、形式言語記述の構成要素となる形式言語部品に変換する言語変換手段と、
     該証明戦略と該形式言語部品から形式言語記述の一部の構成要素を含む形式言語記述スケルトンを生成するスケルトン生成手段と、
     該形式言語記述スケルトンに対して該形式言語部品を導入することで、該形式言語記述を生成する形式言語部品配置手段を有する、
    ことを特徴とするソフトウェア仕様の形式検証支援装置。
  2.  該形式言語記述は、複数の構成要素をまとめた複数のコンポーネントから構成され、
     該コンポーネントは、常に成立すべき条件を表す不変条件を含み、
     該戦略編集手段にて編集可能な証明戦略は、該性質を木構造で接続した形式であり、
     該証明戦略は、木構造の葉の部分に記述した性質が成立する場合、木構造の根の部分に記述した性質が成立するという関係を持ち、
     該言語変換手段は、少なくとも該性質を該不変条件に変換する手段を備え、
     該形式言語記述スケルトンは、少なくとも該不変条件とコンポーネント間の構造定義を含み、
     該スケルトン生成手段は、該証明戦略の木構造に基づいてコンポーネント間の構造を定義し、該不変条件をコンポーネントに導入する
    請求項1に記載のソフトウェア仕様の形式検証支援装置。
  3.  前記証明戦略に含まれる性質にはソフトウェア仕様の構成要素を特定する仕様識別子が付与され、
     前記スケルトン生成手段は、不変条件をコンポーネントに導入する際に、該不変条件の変換もとになった性質に付与された仕様識別子と、コンポーネントとの対応関係を記録しておき、
     前記形式言語部品配置手段は、該対応関係を参照して、該仕様識別子が示すソフトウェア仕様の構成要素を特定し、該構成要素を該言語変換手段によって変換することで得られた形式言語部品を、該不変条件が導入されたコンポーネントに導入する
    請求項1又は2に記載のソフトウェア仕様の形式検証支援装置。
  4.  前記形式言語部品配置手段は、形式言語部品をコンポーネントに導入したことでコンポーネントに追加された変数に対し、
     該変数に対する代入処理を含む形式言語部品を抽出し、
     該形式言語部品が含む該代入処理を、該変数に対して該変数の取り得る値を非決定的に代入する処理に抽象化し、
     該抽象化した形式言語部品をコンポーネントに代入する、
    請求項1乃至3のいずれかの項に記載のソフトウェア仕様の形式検証支援装置。
  5.  前記形式言語部品配置手段は、抽象化した形式言語部品をコンポーネントに代入した後に、コンポーネントに導入した不変条件が、形式言語部品が含む代入処理後にも成立するための最弱の条件を、代入処理のガード条件として導入する請求項4に記載のソフトウェア仕様の形式検証支援装置。
  6. 入力装置から入力される、自然言語または図などで記述したソフトウェア仕様である自然言語モデルの編集を行う自然言語モデル編集手段を有し、
    更に前記戦略編集手段は、入力装置から入力されるリファイメント戦略図について編集を行い、
    前記言語変換手段は、該自然語モデル編集手段で編集された自然言語モデルを形式言語に変換する
    請求項1乃至5のいずれかの項に記載のソフトウェア仕様の形式検証支援装置。
  7.  前記形式言語記述の証明における前提と結論から構成される証明責務を受け付けて推論による証明を行う証明手段と、
     前記証明手段による証明に失敗した場合に、前記証明戦略上において、修正が必要な性質を特定できるように表示する修正箇所表示手段をさらに備え、
     前記スケルトン生成手段は、不変条件を前記コンポーネントに導入する際に、不変条件の変換もとになった性質を特定する性質識別子と、不変条件を特定する不変条件識別子との対応関係を記録しておき、
     前記修正箇所表示手段は、前記証明手段による証明に失敗した不変条件の不変条件識別子を取得し、該対応関係を参照して不変条件の変換元になった性質を特定する性質識別子を取得し、該証明戦略上において該性質識別子が示す性質を特定できるように表示する
    請求項1乃至6の何れかの項記載のソフトウェア仕様の形式検証支援装置。
  8.  自然言語を含む形式で記述されるソフトウェア仕様を、形式言語記述へ変換することで、該ソフトウェア仕様の検証を支援するソフトウェア仕様の形式検証支援方法であって、
     ソフトウェア仕様が満たすべき性質で構成される、ソフトウェア仕様の証明戦略を編集する戦略編集ステップと、
     ソフトウェア仕様の構成要素および該性質を、形式言語記述の構成要素となる形式言語部品に変換する言語変換ステップと、
     該証明戦略と該形式言語部品から形式言語記述の一部の構成要素を含む形式言語記述スケルトンを生成するスケルトン生成ステップと、
     該形式言語記述スケルトンに対して該形式言語部品を導入することで、該形式言語記述を生成する形式言語部品配置ステップを有する、
    ことを特徴とするソフトウェア仕様の形式検証支援方法。
PCT/JP2013/075461 2013-09-20 2013-09-20 ソフトウェア仕様の形式検証支援装置及びその方法 WO2015040735A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075461 WO2015040735A1 (ja) 2013-09-20 2013-09-20 ソフトウェア仕様の形式検証支援装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075461 WO2015040735A1 (ja) 2013-09-20 2013-09-20 ソフトウェア仕様の形式検証支援装置及びその方法

Publications (1)

Publication Number Publication Date
WO2015040735A1 true WO2015040735A1 (ja) 2015-03-26

Family

ID=52688417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/075461 WO2015040735A1 (ja) 2013-09-20 2013-09-20 ソフトウェア仕様の形式検証支援装置及びその方法

Country Status (1)

Country Link
WO (1) WO2015040735A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017033562A (ja) * 2015-08-05 2017-02-09 ゼネラル・エレクトリック・カンパニイ 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728630A (ja) * 1993-06-25 1995-01-31 Toshiba Corp プログラム生成装置
JP2007257291A (ja) * 2006-03-23 2007-10-04 Fujitsu Ltd シナリオ生成方法、シナリオ生成プログラム、シナリオ生成装置
JP2013084023A (ja) * 2011-10-06 2013-05-09 Hitachi Ltd 仕様作成支援装置、及び、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728630A (ja) * 1993-06-25 1995-01-31 Toshiba Corp プログラム生成装置
JP2007257291A (ja) * 2006-03-23 2007-10-04 Fujitsu Ltd シナリオ生成方法、シナリオ生成プログラム、シナリオ生成装置
JP2013084023A (ja) * 2011-10-06 2013-05-09 Hitachi Ltd 仕様作成支援装置、及び、プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017033562A (ja) * 2015-08-05 2017-02-09 ゼネラル・エレクトリック・カンパニイ 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
US10346140B2 (en) 2015-08-05 2019-07-09 General Electric Company System and method for model based technology and process for safety-critical software development

Similar Documents

Publication Publication Date Title
Moreira et al. A pattern-based approach for GUI modeling and testing
KR100871563B1 (ko) 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법
US20060161414A1 (en) Event-driven model generated from an ordered natural language interface
Ahmed et al. Model-based user interface engineering with design patterns
US20040064805A1 (en) Enterprise scoped software factory
EP1890235A1 (en) Test case management
JP2013506895A (ja) ランタイム挙動に基づくアプリケーションの自動修正
WO2007037310A1 (ja) コンピュータプログラムのプログラミング方法及びプログラミング用プログラム
CN103761103A (zh) 云计算平台服务定义及实例化的方法和系统
US20190179624A1 (en) Software upgrade impact analysis by cognitive services
US20110106515A1 (en) System and method for resource identification
WO2015040735A1 (ja) ソフトウェア仕様の形式検証支援装置及びその方法
JP3562435B2 (ja) コンポーネントの自動生成装置
Bucaioni et al. Model-based automation of test script generation across product variants: a railway perspective
KR20070058943A (ko) 소프트웨어 아키텍처 평가 장치 및 방법
Guissouma et al. Virtual test environment for efficient verification of software updates for variant-rich automotive systems
Liu et al. Model-driven design of tools for multi-domain systems with loosely coupled metamodels
Chamas et al. Modeling of requirement-based effect chains of mechatronic systems in conceptual stage
JP2002014845A (ja) テスト・スクリプト部品の自動生成方法および装置
Wichmann et al. Model-driven development of UML-based domain-specific languages for system architecture variants
Wettinger et al. Deployment aggregates-a generic deployment automation approach for applications operated in the cloud
WO2012049816A1 (ja) モデル検査装置、方法及びプログラム
Panach et al. Capturing Interaction Requirements in a Model Transformation Technology Based on MDA.
US20220180211A1 (en) Training decision tree-based predictive models
US20120137212A1 (en) Programmatic conversion of support documentation into executable programs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13893981

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13893981

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP