WO2015040736A1 - プログラム検証装置及びプログラム検証方法及びプログラム - Google Patents

プログラム検証装置及びプログラム検証方法及びプログラム Download PDF

Info

Publication number
WO2015040736A1
WO2015040736A1 PCT/JP2013/075463 JP2013075463W WO2015040736A1 WO 2015040736 A1 WO2015040736 A1 WO 2015040736A1 JP 2013075463 W JP2013075463 W JP 2013075463W WO 2015040736 A1 WO2015040736 A1 WO 2015040736A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
program
defect
data
variable
Prior art date
Application number
PCT/JP2013/075463
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 JP2015537521A priority Critical patent/JP5992107B2/ja
Priority to PCT/JP2013/075463 priority patent/WO2015040736A1/ja
Publication of WO2015040736A1 publication Critical patent/WO2015040736A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Definitions

  • the present invention relates to a technique for verifying a program (hereinafter also referred to as software).
  • Control S / W which is a kind of embedded software (hereinafter also referred to as S / W), is rapidly increasing in scale and complexity in order to meet the demand for multi-function and high added value.
  • functional safety standards for functionally ensuring the safety of products have been formulated in various fields due to the increasing safety orientation of users.
  • a functional safety standard ISO26262 for automobiles was formulated in November 2011, and in product development, it is required to comply with a standard that does not involve an increase in cost.
  • an I / O device in a finite time is obtained by manually replacing a value acquired from an I / O device by a mounting code with an abnormal value. It is possible to verify the implementation code by simulating the abnormal operation. Also, in the implementation code analysis by model checking (for example, Non-Patent Document 1), after the implementation code is converted into a dedicated description of SMT (Satfiability Modulo Theories) format, the value that the implementation code acquires from the I / O device is nondeterministic. By selecting this, the mounting code can be verified by simulating the abnormal operation of the I / O device in a finite time.
  • SMT Statfiability Modulo Theories
  • the conventional program verification technology has the following problems.
  • the present invention has been made in view of the above circumstances, and has as its main object to verify the operation of a program against an abnormal operation of an I / O device without correcting the program to be verified.
  • the program verification apparatus includes: Analyzing a program in which a variable whose value is to be updated is described, the initial value and the updated value of the variable are described in time series, and at least one of the initial value and the updated value of the variable may hinder the execution of the program.
  • a data generation unit that generates defect value data that is a defect value that causes
  • a program execution unit that executes the program using the initial value and the updated value of the variable in the order of time series described in the defect value data
  • a reset counting unit for counting the number of times the program is reset during execution of the program by the program execution unit;
  • a verification unit that verifies the program based on the number of resets counted by the reset counting unit.
  • the operation of the program against the abnormal operation of the I / O device can be verified without correcting the program to be verified.
  • FIG. 3 is a diagram illustrating a configuration example of a simulator device according to the first embodiment. The figure which shows the relationship between the simulator apparatus which concerns on Embodiment 1, an installation code, and an I / O device simulation program.
  • FIG. 3 is a diagram showing an S / W architecture of an implementation code according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation example of the simulator device according to the first embodiment.
  • FIG. 6 shows an example of a verification scenario generation procedure according to the first embodiment.
  • FIG. 4 shows an example of input sequence information according to the first embodiment.
  • FIG. 4 is a diagram illustrating an example of interrupt point information according to the first embodiment.
  • FIG. 6 is a diagram for explaining input / output variables according to the first embodiment.
  • FIG. 4 is a diagram illustrating an example of an I / O abnormal operation according to the first embodiment.
  • FIG. 3 is a diagram showing a method for creating I / O abnormal operation information according to the first embodiment.
  • FIG. FIG. 6 is a diagram illustrating an example of scheduler setting according to the first embodiment.
  • FIG. 4 is a diagram showing an example of I / O device state information (interrupt) according to the first embodiment.
  • FIG. 4 is a diagram showing an example of I / O device state information (timer) according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of reset number information according to the first embodiment.
  • FIG. 5 is a diagram showing an example of reset number upper limit information according to the first embodiment.
  • FIG. 10 is a diagram showing a method for creating I / O abnormal operation information according to the second embodiment.
  • FIG. 10 is a diagram showing an example of pattern of I / O abnormal operation information according to the second embodiment.
  • FIG. 5 is a diagram showing an example of I / O abnormal operation information corresponding to no response according to the first embodiment.
  • FIG. 6 shows an example of I / O abnormal operation information corresponding to a missing response according to the first embodiment. 6 is a diagram showing an example of I / O abnormal operation information corresponding to a duplicate response according to Embodiment 1.
  • FIG. 6 shows an example of I / O abnormal operation information corresponding to an abnormal response according to the first embodiment.
  • FIG. 6 shows an example of I / O abnormal operation information corresponding to a reverse rotation response according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a simulator device according to the first and second embodiments.
  • Embodiment 1 FIG.
  • the operation of the implementation code for the normal operation of the I / O device and the operation of the implementation code for the abnormal operation of the I / O device are performed without correcting the implementation code that is the program to be verified as much as possible.
  • a simulator device that can be verified at an indeterminate stage where no real I / O device to be connected to the mounting code is prepared will be described. More specifically, a simulator that can efficiently improve coverage by automatically generating an abnormal operation path and an abnormal response value by combining the analysis result of the mounting code and the abnormal operation pattern of the I / O device. The apparatus will be described.
  • the simulator device generates a verification scenario including input sequence information in which input values to the implementation code are shown in time series and I / O abnormal operation information in which abnormal operation of the I / O device is indicated. .
  • the simulator apparatus executes a program that simulates the operation of the I / O device (hereinafter referred to as an I / O device simulation program) according to the verification scenario, and supplies an input value to the implementation code. Execute the implementation code.
  • the simulator device according to the present embodiment monitors the implementation code for the abnormal operation of the I / O device by monitoring whether the number of resets of the implementation code that has occurred during execution of the implementation code does not exceed the upper limit value. Verify the tolerance of the.
  • the simulator device resets the mounting code and hardware even when the I / O device is operating abnormally (when the input value from the I / O device is abnormal). It is verified whether the operation can be continued without causing it.
  • the simulator device according to the present embodiment verifies the mounting code in the unit test process. After the verification by the simulator device, the operation of the mounting code is checked with a microcomputer emulator that has acquired ISO 26262 certification, so that the mounting code can be easily adapted to the ISO 26262 standard.
  • FIG. 2 shows the relationship between the simulator apparatus 100 according to the present embodiment, the mounting code 500 to be verified, and the I / O device simulation program 600 that simulates an I / O device.
  • the simulator device 100 corresponds to an example of a program verification device.
  • the implementation code 500 is a program in which an operation algorithm of the control device 200 is described.
  • the mounting code 500 is mounted on the control device 200 and executed by the control device 200 after a test including verification using the simulator device 100.
  • the mounting code 500 is a program to be verified by the simulator device 100.
  • the control device 200 controls the sensor device 300 and the drive device 400 that are control targets.
  • the control device 200 includes an I / O port 204, an I / O port 205, an interrupt 206, and a timer 207 as hardware.
  • the control device 200 is equipped with a CPU (Central Processing Unit), hardware such as a microcomputer, and memory.
  • the control device 200 is connected to a control target such as the sensor device 300 or the drive device 400 via I / O ports 204 and 205 for transmitting and receiving digital signals or analog signals, and via the I / O ports 204 and 205.
  • the sensor device 300 and the driving device 400 are controlled.
  • FIG. 1 Central Processing Unit
  • the I / O device simulation program 600 is a program that simulates the sensor device 300, the drive device 400, the I / O port 204, the I / O port 205, the interrupt 206, and the timer 207.
  • the simulator apparatus 100 executes the mounting code 500 and the I / O device simulation program 600 to simulate the operation of the control device 200.
  • the S / W included in the mounting code 500 includes a control process A 201, a control process B 202, and a hardware driver 203.
  • the control process A201 and the control process B202 realize a control logic for applying physical control to the control target.
  • the hardware driver 203 is a program that mediates between the control process A 201 and the control process B 202 and the H / W (I / O port 204, I / O port 205, interrupt 206, timer 207).
  • the I / O process 2031 mediates register access to the I / O ports 204 and 205 of the control process A 201 and the control process B 202.
  • the interrupt process 2032 functions as a handler for occurrence of an interrupt from the H / W.
  • the timer process 2033 functions as a handler for occurrence of timeout from the H / W.
  • control device 200 and the device connected to the control device 200 shown in FIG. 2 are examples, and the scope of application of the present embodiment is not limited to the example of FIG.
  • the simulator apparatus 100 executes the mounting code 500 together with the I / O device simulation program 600 to verify the mounting code 500.
  • the simulator apparatus 100 includes a scheduler 101, a verification scenario creation unit 102, a reset monitoring unit 103, a verification item analysis unit 104, an interrupt simulation unit 105, and a timer simulation unit 106. Details of each element will be described later with reference to FIG.
  • FIG. 3 shows the S / W architecture of the implementation code 500.
  • the scheduler 101 periodically activates each process in the control process A 201, the control process B 202, and the hardware driver 203. Data is transmitted and received between these processes via a shared variable called a control signal, and a control operation is executed.
  • a control signal a shared variable
  • FIG. 3 shows the relationship between the processing and the signal shown in FIG. 3 is an exemplification, and the application range of the present embodiment is not limited to the example of FIG. The control operation and the control signal will be described below.
  • the control operation includes a cooperative operation between control processes, an I / O operation performed on the hardware driver from the control process, an interrupt operation, and a timer operation.
  • the cooperative operation includes a request operation in which a certain control process (for example, control process A201) requests a predetermined calculation from another control process (for example, control process B202), and a control process in which the calculation is requested (for example, control process B202).
  • a response operation of responding to the calculation result is included in the control process (for example, control process A201) of the request source.
  • the I / O operation includes an operation in which the control process reads data from the I / O device and an operation in which the control process writes data to the I / O device.
  • the interrupt operation includes an operation in which the control process sets interrupt permission and an operation in which the control process sets interrupt prohibition.
  • the timer operation includes an operation in which the control process notifies the timer start, an operation in which the control process notifies the timer end, and an operation in which the control process receives a timeout notification.
  • the control signal includes a cooperation signal 251 transmitted / received between the control processes and an I / O signal transmitted / received between the control process and the hardware driver.
  • the I / O signal includes an I / O port signal 252 for information transmission between the control processing and the I / O processing 2031, a state variable 253 for information transmission between the control processing and the interrupt processing 2032, A counter signal 254 for information transmission between the control process and the timer process 2033 is included. Note that a signal not shown in FIG. 3 may be added as the I / O signal.
  • the hardware driver 203 controls the I / O processing 2031, the interrupt processing 2032, and the timer processing 2033 in order to process I / O port register access, H / W interrupt generation, and H / W timeout generation. Operates in parallel with processing.
  • the scheduler 101 manages execution of control processing A 201, control processing B 202, I / O processing 2031, interrupt processing 2032, and timer processing 2033. For example, if the execution priority of the hardware driver 203 is higher than that of the control process, the scheduler 101 interrupts the execution of the control process and starts the execution of the hardware driver 203, and after the execution of the hardware driver 203 ends. Resume execution of control processing.
  • the control process and the hardware driver 203 change the contents of each process based on the value of the control signal.
  • the verification scenario creation unit 102 reads the implementation code 500 from the program storage unit 108, reads the input / output variable from the input / output variable storage unit 107, analyzes the implementation code 500 and the input / output variable, and creates a verification scenario.
  • the verification scenario includes input sequence information, interrupt point information, and I / O abnormal operation information.
  • the input sequence information is information indicating a plurality of input values input to the mounting code 500 in time series.
  • the interrupt point information is information indicating an interrupt point that is a timing for simulating the occurrence of an H / W interrupt.
  • the I / O abnormal operation information is information for simulating the abnormal operation of the I / O device, and a plurality of input values are shown in time series.
  • the input values described in the I / O abnormal operation information include values (defect values) that hinder the execution of the mounting code 500.
  • the input sequence information is information indicating normal input values in time series, and corresponds to an example of normal value data.
  • the I / O abnormal operation information is information indicating input values in time series, but includes defect values, and corresponds to an example of defect value data.
  • the verification scenario creation unit 102 corresponds to an example of a data generation unit.
  • the input sequence creation unit 1021 in the verification scenario creation unit 102 generates input sequence information.
  • the interrupt point creation unit 1022 generates interrupt point information.
  • the I / O abnormal operation creating unit 1023 generates I / O abnormal operation information.
  • the verification scenario generated by the verification scenario creation unit 102 is stored in the verification scenario storage unit 110.
  • the implementation code execution unit 1011 reads the implementation code 500 from the program storage unit 108, reads the scheduler setting from the scheduler setting storage unit 109, and executes the implementation code 500 according to the scheduler setting.
  • the scheduler setting is information indicating the activation code and the activation sequence of the implementation code 500 and the I / O device simulation program 600.
  • the implementation code execution unit 1011 corresponds to an example of a program execution unit.
  • the I / O device simulation program execution unit 1012 reads the I / O device simulation program 600 from the program storage unit 108, reads the verification scenario from the verification scenario storage unit 110, and reads the scheduler setting from the scheduler setting storage unit 109. Then, the I / O device simulation program execution unit 1012 executes the I / O device simulation program 600 according to the verification scenario and the scheduler setting. The I / O device simulation program execution unit 1012 also uses the timer notification from the timer simulation unit 106 when executing the I / O device simulation program 600. Also, the I / O device simulation program execution unit 1012 simulates the interrupt 206 based on the H / W interrupt from the interrupt simulation unit 105 and requests an interrupt to the interrupt processing 2032 in the hardware driver 203.
  • the implementation code execution unit 1011 and the I / O device simulation program execution unit 1012 are details of the scheduler 101 shown in FIG.
  • the interrupt simulation unit 105 reads the verification scenario from the verification scenario storage unit 110 and reads I / O device state information (interrupt) from the I / O device state storage unit 111.
  • the interrupt simulation unit 105 simulates the operation of the H / W interrupt according to the verification scenario and the I / O device status information (interrupt).
  • the timer simulation unit 106 reads I / O device state information (timer) from the I / O device state storage unit 111 and simulates the operation of the H / W timer according to the I / O device state information (timer).
  • the I / O device status information (timer) shows details of timer setting.
  • the reset monitoring unit 103 monitors the occurrence of a reset that occurs when the mounting code 500 cannot continue to operate, and counts the number of occurrences of the reset.
  • the number of reset occurrences counted by the reset monitoring unit 103 is stored in the reset number storage unit 112.
  • the reset monitoring unit 103 corresponds to an example of a reset counting unit.
  • the verification item analysis unit 104 reads the reset count in the reset count storage unit 112 and verifies the tolerance of the mounting code 500 against the I / O abnormal operation based on the reset count. Then, the verification item analysis unit 104 creates a verification report indicating the verification result, and stores the created verification report in the verification report storage unit 113.
  • the verification item analysis unit 104 corresponds to an example of a verification unit.
  • the input of the flowchart of FIG. 4 is information for identifying the mounting code 500 and input / output variables.
  • the output of the flowchart of FIG. 4 is a verification report that is a result of verification of the execution result of the mounting code 500 by the verification item analysis unit 104.
  • the I / O device simulation program 600 needs to be executed in a short cycle different from the mounting code 500.
  • each step of the flowchart of FIG. 4 will be described in order, but each step is not executed in the description order.
  • Each step from the execution of the mounting code 500 (S104) to the execution of the interrupt process (S105) is sequentially executed, and each step from the execution of the I / O device simulation program (S106) to the increment of the reset count (S109) is sequentially executed. Executed, and these two flows are executed in parallel.
  • the verification scenario creation unit 102 analyzes the mounting code 500 and input / output variables to create a verification scenario (S101 to S103). Specifically, the input sequence creation unit 1021 generates input sequence information (S101), the interrupt point creation unit 1022 generates interrupt point information (S102), and the I / O abnormal operation creation unit 1023 generates I / O. Abnormal operation information is generated (S103).
  • the input sequence information is information in which input values to be given to the implementation code 500 via the hardware driver 203 are arranged in time series.
  • the interrupt point information is information for designating a timing (interrupt point) for simulating the occurrence of an interrupt at H / W.
  • the input sequence creation unit 1021 inputs, for example, using an existing method based on an input product for creating an implementation code 500 such as a customer specification, a control specification, and a function specification. Create sequence information.
  • the input sequence creation unit 1021 uses, for example, an existing method to input the input sequence information based on the coverage standard of the implementation code 500 (for example, C0, C1, C2, MC / DC (Modified Condition / Decision Coverage), etc.).
  • the interrupt point creating unit 1022 accesses the same control signal (variable) in a plurality of processes (multiple control processes, control processes and processes in the hardware driver) in the implementation code 500.
  • a control signal (variable) accessed by a plurality of processes is extracted as a competition control signal (competition variable). Then, the interrupt point creation unit 1022 designates before and after the access to the contention control signal as an interrupt point.
  • FIG. 6 An example of input sequence information is shown in FIG. 6, and an example of interrupt point information is shown in FIG.
  • the input variables of the mounting code 500 are i and j, and the values to be substituted for the input variables i and j are shown in time series.
  • the variable value shown in the column of the initial state is the initial value
  • the variable value shown in the column after step 1 is the updated value.
  • Each row in FIG. 6 shows a pattern of input values in one test.
  • the simulator device 100 since the simulator device 100 simulates a finite time operation, the maximum number of steps is specified in the input sequence information.
  • the maximum number of steps is the maximum value of the number of activations, that is, the number of activations for determining the operation end point.
  • the timing before and after the access to the state variables 1 to 3 is the interrupt point.
  • the interrupt simulation unit 105 generates an H / W interrupt when the implementation code 500 is executed, unless an interrupt is prohibited at the interrupt point shown in FIG.
  • the I / O abnormal operation creation unit 1023 changes the input sequence information to generate I / O abnormal operation information.
  • FIG. 8 shows input / output variables used for verification of the mounting code 500.
  • the I / O processing, interrupt processing, and timer processing shown in FIGS. 2 and 3 are described in the classification column. That is, input / output variables used in each of the I / O processing, interrupt processing, and timer processing are to be verified.
  • the item column indicates the type of I / O operation.
  • input / output variable column input / output variables to be verified are shown.
  • a procedure for processing input / output variables is shown.
  • the I / O abnormal operation creation unit 1023 generates I / O abnormal operation information for the input / output variables shown in FIG.
  • I / O abnormal operation included in the I / O abnormal operation information is shown in FIG.
  • the type of an abnormal operation / definition column (defect pattern) is shown in the column of the abnormal operation and definition column.
  • the realization method column shows a procedure for adding an I / O abnormal operation to the input sequence information.
  • FIG. 10 shows a specific example of the I / O abnormal operation shown in FIG. 10 shows the No. of the input sequence information shown in FIG. 3 shows the I / O abnormal operation when the three input variables i and j are regarded as the flag and data of FIG. 8, respectively.
  • “No response” and “duplicate response” are abnormalities in which the same value is continuously input a plurality of times.
  • the I / O abnormal operation creation unit 1023 receives the input sequence information No. 1 in FIG.
  • the step 1 and step 2 having the same values as in the initial state are added to the time series sequence 3 to generate the I / O abnormal operation information of FIG. 20 in which the values of the steps 1 and 2 are defective.
  • FIG. 21 shows No. of the input sequence information in FIG. 4 shows an example of I / O abnormal operation information corresponding to “missing response” generated based on the time series sequence of FIG.
  • FIG. 22 shows the No. of the input sequence information in FIG. This is I / O abnormal operation information corresponding to the “duplicate response” generated based on the time series sequence of No. 3.
  • FIG. 23 shows No. of the input sequence information in FIG. This is I / O abnormal operation information corresponding to the “abnormal response” generated based on the time series sequence of No. 3.
  • the value of step n is an abnormal value. That is, the I / O abnormal operation creation unit 1023 receives the input sequence information No. 1 in FIG. 23 is replaced with an abnormal value, and the I / O abnormal operation information of FIG. 23 having a defect in step n is generated.
  • I / O abnormal operation information corresponding to the “reverse response” generated based on the time series sequence of No. 3.
  • the / O abnormal operation creation unit 1023 includes n C m “missing response” I / O abnormal operation information, n C m “duplicate response” I / O abnormal operation information, and n C m “reverse rotation”. Response / I / O abnormal operation information is created.
  • the I / O abnormal operation creation unit 1023 displays n “missing response” I / O abnormal operation information and n “duplicate responses”. I / O abnormal operation information and n “reverse rotation response” I / O abnormal operation information are created.
  • the user can arbitrarily specify a value of m between 1 and n.
  • the input sequence creation unit 1021 generates input sequence information for each of the I / O processing, interrupt processing, and timer processing in FIG.
  • the I / O abnormal operation creation unit 1023 also generates I / O abnormal operation information by changing the input sequence information for each of the I / O processing, interrupt processing, and timer processing in FIG.
  • the I / O abnormal operation creating unit 1023 provides at least I / O abnormal operation information corresponding to “no response”, “abnormal response” to each of the I / O processing, interrupt processing, and timer processing in FIG. "I / O abnormal operation information corresponding to" missing response ", I / O abnormal operation information corresponding to" duplicate response ", I / O abnormal operation information corresponding to" reverse response " Generate motion information.
  • the I / O abnormal operation creating unit 1023 includes an I / O abnormal operation including any combination of “no response”, “abnormal response”, “missing response”, “duplicate response”, and “reverse response”. Information may be generated.
  • the “no response”, “abnormal response”, “missing response”, “duplicate response”, and “reverse response” shown in FIGS. 9 and 10 are the failure analysis methods HAZOP (Hazard and It corresponds to a failure mode defined in (operability study).
  • HAZOP Hazard and It corresponds to a failure mode defined in (operability study).
  • I / O abnormal operation is made to correspond to the failure mode of HAZOP, the completeness of verification is ensured.
  • verification coverage is based on information used in failure analysis methods, such as failure databases used in FMEA (Failure Modes and Effects Analysis) and failure case lists extracted from past model development experience. You may make it secure sex.
  • the input sequence creating unit 1021 generates input sequence information
  • the I / O abnormal operation creating unit 1023 performs the abnormal operation “for I / O reading” of the category “I / O processing” shown in FIG.
  • a procedure for generating I / O abnormal operation information of “no response” and “abnormal response” will be described with reference to FIG.
  • step (C) the input sequence creation unit 1021 analyzes the normal operation location extracted in step (B) and creates input sequence information.
  • step (D) the I / O abnormal operation creation unit 1023 adds a “no response” transition that remains in the initial state as an I / O abnormal operation to the input sequence information created in step (C). "No response” I / O abnormal operation information is generated.
  • I / O abnormal operation information of “abnormal response” is generated.
  • the I / O abnormal operation creating unit 1023 creates I / O abnormal operation information obtained by adding an I / O abnormal operation to the input sequence information corresponding to the normal operation of the I / O device.
  • the I / O device simulation program execution unit 1012 executes the I / O device simulation program 600 according to the activation cycle and the activation order specified by the scheduler setting (S106).
  • the I / O device simulation program execution unit 1012 reads the input value of the corresponding step from the input sequence information of the verification scenario or the I / O abnormal operation information, and uses the read input value as the input variable of the implementation code 500.
  • the scheduler settings are shown in FIG. FIG. 13 shows scheduler settings when two types of I / O device simulation program 600 are executed in the simulator apparatus 100, two types of I / O processing are executed, and two types of control processing are executed.
  • the activation order represents an execution priority when there are a plurality of processes having the same activation cycle. The process with the activation order “1” is executed with priority.
  • the implementation code execution unit 1011 executes the implementation code 500 in accordance with the activation cycle and activation order designated by the scheduler setting (S104).
  • the mounting code execution unit 1011 executes control processing and I / O processing in the mounting code 500. That is, in S104, the implementation code execution unit 1011 reads the input value, reads / writes each control signal, and executes the control operation according to the control logic described in the implementation code 500, and outputs the operation result. Write value to output variable.
  • permission of interrupt or prohibition of interrupt is set by the control process. Specifically, permission of interrupt or prohibition of interrupt is set in the I / O device status information (interrupt) in the I / O device status storage unit 111.
  • FIG. 14 shows an example of I / O device status information (interrupt).
  • FIG. 14 shows I / O device state information (interrupt) when two interrupts 206 of X and Y are arranged. Further, when timer start or timer end occurs in the control process, information for timer management is described in I / O device status information (timer) in the I / O device status storage unit 111.
  • FIG. 15 shows an example of I / O device status information (timer).
  • FIG. 15 shows I / O device state information (timer) when two timers 207 of X and Y are arranged.
  • the timer type is one-shot (the timer is automatically terminated when it times out once) or continues (timeout occurs repeatedly until the timer is terminated), or the timer status is started or End is set.
  • a timer value and a counter are also set.
  • the control signal accessed during the execution of the implementation code 500 matches the interrupt point shown in FIG. 6, and the interrupt status corresponding to the interrupt name of the interrupt point is “permitted” in the I / O device status information (interrupt).
  • the interrupt simulation unit 105 executes an interrupt process (S105).
  • timer simulation unit 106 counts up the timer whose timer state of the I / O device state information (timer) is “start”.
  • the timer simulation unit 106 executes timer processing when the timer counter expires and the timer expires (S107).
  • the reset monitoring unit 103 monitors whether a reset occurs during the execution of the implementation code 500 (S108). If the reset monitoring unit 103 detects the occurrence of a reset, the reset monitoring unit 103 increments the number of resets (S109).
  • FIG. 16 shows reset number information for counting the number of resets. The reset count information is stored in the reset count storage unit 112.
  • the watchdog reset is a mechanism in which the H / W detects and resets that the S / W continues to operate for a very long time like an infinite loop.
  • Spontaneous reset is a mechanism in which the S / W itself determines that the operation cannot be continued and requests the H / W to reset.
  • the exception reset is a mechanism in which the H / W detects and resets illegal processing such as illegal memory access by S / W and division by zero.
  • the reset monitoring unit 103 increments the number of resets for each reset category shown in FIG.
  • the cause of the occurrence of reset is not limited to that shown in FIG.
  • the verification item analysis unit 104 resets the number of resets indicated in the reset number information shown in FIG. Use to verify. Specifically, the verification item analysis unit 104 determines that the reset counts of all categories shown in the reset count information of FIG. 16 do not exceed the reset count upper limit value of the reset count upper limit information illustrated in FIG. It is determined that the mounting code 500 is appropriate. On the other hand, if the reset count of any category exceeds the upper limit value, the verification item analysis unit 104 determines that the mounting code 500 needs to be modified. Then, the verification item analysis unit 104 generates a verification report indicating the verification result.
  • the implementation code execution unit 1011 executes S105
  • the I / O device simulation program execution unit 1012 executes S106
  • the reset monitoring unit 103 executes S108. And S109.
  • the I / O device simulation program execution unit 1012 is, for example, No. of the input sequence information in FIG. 3 are sequentially output to the implementation code execution unit 1011, and the implementation code execution unit 1011 executes the implementation code 500 using the input value from the I / O device simulation program execution unit 1012, and the reset monitoring unit 103. Counts the number of resets during execution of the implementation code 500. And the verification item analysis part 104 is No. of the input sequence information of FIG. Whether the number of resets during execution of the implementation code 500 using the input value 3 exceeds the upper limit value is verified, and a verification report is generated.
  • the I / O device simulation program execution unit 1012 sequentially outputs, for example, input values of “no response” I / O abnormal operation information in FIG. 20 to the implementation code execution unit 1011, and the implementation code execution unit 1011
  • the mounting code 500 is executed using the input value from the I / O device simulation program execution unit 1012, and the reset monitoring unit 103 counts the number of resets during the execution of the mounting code 500.
  • the verification item analysis unit 104 verifies whether the number of resets during execution of the implementation code 500 using the input value of the “no response” I / O abnormal operation information in FIG. 20 exceeds the upper limit value. To generate a verification report.
  • the I / O device simulation program execution unit 1012 sequentially outputs, for example, the input values of the I / O abnormal operation information of “missing response” in FIG. 21 to the implementation code execution unit 1011, and the implementation code execution unit 1011
  • the mounting code 500 is executed using the input value from the I / O device simulation program execution unit 1012, and the reset monitoring unit 103 counts the number of resets during the execution of the mounting code 500.
  • the verification item analysis unit 104 verifies whether or not the number of resets during the execution of the implementation code 500 using the input value of the “missing response” I / O abnormal operation information in FIG. 21 exceeds the upper limit value. To generate a verification report.
  • the I / O device simulation program execution unit 1012 sequentially outputs, for example, input values of I / O abnormal operation information of “duplicate response” in FIG. 22 to the implementation code execution unit 1011, and the implementation code execution unit 1011
  • the mounting code 500 is executed using the input value from the I / O device simulation program execution unit 1012, and the reset monitoring unit 103 counts the number of resets during the execution of the mounting code 500.
  • the verification item analysis unit 104 verifies whether or not the number of resets during execution of the mounting code 500 using the input value of the I / O abnormal operation information of “duplicate response” in FIG. 22 exceeds the upper limit value. To generate a verification report.
  • the I / O device simulation program execution unit 1012 sequentially outputs, for example, input values of I / O abnormal operation information of “abnormal response” in FIG. 23 to the implementation code execution unit 1011, and the implementation code execution unit 1011
  • the mounting code 500 is executed using the input value from the I / O device simulation program execution unit 1012, and the reset monitoring unit 103 counts the number of resets during the execution of the mounting code 500.
  • the verification item analysis unit 104 verifies whether or not the number of resets during execution of the mounting code 500 using the input value of the I / O abnormal operation information of “abnormal response” in FIG. 23 exceeds the upper limit value. To generate a verification report.
  • the I / O device simulation program execution unit 1012 sequentially outputs, for example, the input values of the I / O abnormal operation information of “reverse response” in FIG. 24 to the implementation code execution unit 1011, and the implementation code execution unit 1011
  • the mounting code 500 is executed using the input value from the I / O device simulation program execution unit 1012, and the reset monitoring unit 103 counts the number of resets during the execution of the mounting code 500.
  • the verification item analysis unit 104 verifies whether or not the number of resets during execution of the mounting code 500 using the input value of the I / O abnormal operation information of “reverse rotation response” in FIG. 24 exceeds the upper limit value. To generate a verification report.
  • simulator device 100 According to simulator device 100 according to the present embodiment, the following effects can be obtained. Since the implementation code is operated and verified on the computer, it is easy to guarantee the correctness of the verification result. By executing the I / O device simulation program to comprehensively execute the input sequence to the S / W and abnormal I / O operation, the implementation code can be executed even when the normal operation and abnormal operation of the I / O device are not yet confirmed. Can be verified. By detecting defects related to the H / W-S / W interface in the unit test, it is possible to reduce the number of reworking steps after the S / W coupling test.
  • Embodiment 2 a method of creating a new I / O abnormal operation information by connecting a plurality of time-series sequences of I / O abnormal operation information of the first embodiment will be described.
  • the number of steps included in the I / O abnormal operation information is n. Further, it is assumed that the implementation code 500 can be executed even after returning to any step (here, step m) from the initial state to step n ⁇ 1 after step n. In this case, a time series sequence in which a plurality of partial time series sequences from step m to step n are connected after the entire time series sequence (step n from the initial state) of one I / O abnormal operation information. Is also effective as a verification scenario.
  • the I / O abnormal operation creating unit 1023 performs partial processing from step m to step n after the entire time series sequence of I / O abnormal operation information (step n from the initial state).
  • a time series sequence in which a plurality of time series sequences are concatenated (hereinafter referred to as a concatenated time series sequence) is created.
  • the simulator device 100 uses the linked time series sequence created in this way as new I / O abnormal operation information.
  • FIG. 18 shows an example of generating a linked time series sequence including “abnormal response”, but the I / O abnormal operation creation unit 1023 also performs “missing response”, “duplicate response”, and “reverse response”. Similarly, a connected time series sequence can be created.
  • the I / O abnormal operation creation unit 1023 may generate a linked time series sequence corresponding to the pattern shown in FIG. FIG. 19 shows a plurality of patterns in which step n-1 in FIG. 18 is repeated.
  • n-1 (x) represents the repetition of step n-1
  • x in parentheses represents the number of repetitions of step n-1.
  • n-1 (2) means the second step n-1
  • n-1 (11) means the eleventh step n-1.
  • An arrow indicated with n ⁇ 1 (x) means that an abnormal value is described in the I / O abnormal response information. For example, in the “restricted” pattern, arrows are shown for n ⁇ 1 (1), n ⁇ 1 (2), n ⁇ 1 (12), and n ⁇ 1 (13).
  • the abnormal value is described as the value of the input variable in the first, second, twelfth, and thirteenth steps n ⁇ 1. This indicates that a normal value is described as the value of the input variable in step n-1 for the third to eleventh times and the fourteenth and subsequent times.
  • step n ⁇ 1 in which the value of the input variable is an abnormal value appears periodically. That is, in the connected time series sequence according to the “period” pattern, the partial time series sequence from step m to step n is repeated a plurality of times after the time series sequence from step n to the initial state. The value is an abnormal value.
  • an extension period and jitter are specified.
  • the extended period is the appearance interval of the abnormal value step n-1. Jitter indicates the deviation from the extended period.
  • the partial time series sequence from step m to step n is repeated a plurality of times after the time series sequence from step n to the initial state.
  • the expansion period is 10 for example, after the value of the first step n ⁇ 1 is set to an abnormal value, the second to tenth steps n ⁇ 1 Is set to a normal value, and the value of the 11th step n ⁇ 1 is set to an abnormal value.
  • the extension period is 10
  • the next abnormal value is set in step n-1 for the 21st time, but if jitter is 1, the timing at which the abnormal value is set is 1.
  • the abnormal value is set in step 20 of the 20th time.
  • a minimum interval and a maximum interval are designated. That is, in the “restricted” pattern, there are two types of appearance intervals of the abnormal value step n ⁇ 1. Even in the connected time series sequence according to the “restricted” pattern, the partial time series sequence from step m to step n is repeated a plurality of times after the time series sequence from step n to the initial state.
  • a connected time-series sequence according to the “restricted” pattern for example, after the value of the first step n ⁇ 1 is set to an abnormal value, the value of the second step n ⁇ 1 becomes an abnormal value according to the minimum interval: 1. Then, according to the maximum interval: 10, the value of the third to eleventh step n-1 is set to a normal value, and the value of the twelfth step n-1n is set to an abnormal value.
  • the partial time series sequence from step m to step n is repeated a plurality of times after the time series sequence from step n to the initial state.
  • the value of the first step to the tenth step n ⁇ 1 is set to an abnormal value
  • the value of the step n ⁇ 1 after the eleventh time is set to a normal value.
  • an internal period is an appearance interval of the abnormal value step n-1.
  • the number of repetitions is the number of repetitions of the abnormal value step n-1.
  • the external period is an appearance interval of repetition of the abnormal value step n-1.
  • the value of the first to third steps n ⁇ 1 is set to an abnormal value, and then according to the external cycle: 10.
  • the values of the fourth to tenth steps n ⁇ 1 are set to normal values, and then the eleventh to thirteenth step n ⁇ 1 values are set to abnormal values.
  • the 14th to 20th step n-1 values are set to normal values
  • the 21st to 23rd step n-1 values are set to abnormal values
  • the 24th to 30th step n-1 values are set.
  • the value of ⁇ 1 is set to a normal value
  • the value of step n ⁇ 1 for the 31st to 33rd times is set to an abnormal value.
  • I / O abnormal operation creation unit 1023 may generate a linked time series sequence by combining the patterns shown in FIG.
  • various patterns of I / O abnormal operation information can be generated, and the mounted code can be verified in detail.
  • the simulator device 100 is a computer, and each element of the simulator device 100 can be realized by a program.
  • an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input / output device 905 are connected to the bus.
  • the arithmetic device 901 is a CPU that executes a program.
  • the external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
  • the main storage device 903 is a RAM (Random Access Memory). 1 is implemented by the external storage device 902 or the main storage device 903.
  • the communication device 904 is, for example, a NIC (Network Interface Card).
  • the input / output device 905 is, for example, a mouse, a keyboard, or a display device.
  • the program is normally stored in the external storage device 902, and is loaded into the main storage device 903 and sequentially read into the arithmetic device 901 and executed.
  • the program is a program that realizes the functions described as “ ⁇ unit” (excluding “ ⁇ storage unit” shown in FIG. 1; the same applies hereinafter).
  • an operating system (OS) is also stored in the external storage device 902. At least a part of the OS is loaded into the main storage device 903, and the arithmetic device 901 executes “OS” shown in FIG. ”Is executed.
  • Information, data, signal values, and variable values indicating the results of processing are stored in the main storage device 903 as files.
  • the encryption key / decryption key, random number value, and parameter may be stored in the main storage device 903 as a file.
  • FIG. 25 is merely an example of the hardware configuration of the simulator apparatus 100, and the hardware configuration of the simulator apparatus 100 is not limited to the configuration illustrated in FIG. .
  • program verification method according to the present invention can be realized by the procedure shown in the first and second embodiments.
  • 100 simulator device 101 scheduler, 102 verification scenario creation unit, 103 reset monitoring unit, 104 verification item analysis unit, 105 interrupt simulation unit, 106 timer simulation unit, 107 input / output variable storage unit, 108 program storage unit, 109 scheduler setting storage 110, verification scenario storage unit, 111 I / O device status storage unit, 112 reset count storage unit, 113 verification report storage unit, 1011 implementation code execution unit, 1012 I / O device simulation program execution unit, 1021 input sequence creation unit 1022 Interrupt point creation unit, 1023 I / O abnormal operation creation unit, 200 control device, 201 control process A, 202 control process B, 203 hardware driver, 204 I / O port, 205 I / O Port, 206 interrupt, 207 timer, 2031 I / O processing, 2032 interrupt processing, 2033 timer processing, 251 linkage signal, 252 I / O port signal, 253 state variable, 254 counter signal, 300 sensor device, 400 drive device, 500 Implementation code, 600 I / O device simulation program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

 I/O異常動作作成部1023が、値が更新される変数が記述されている実装コードを解析し、前記変数の初期値及び更新値が時系列に記述され、前記変数の初期値及び更新値の少なくともいずれかが実装コードの実行に支障をきたす欠陥値であるI/O異常動作情報を生成する。実装コード実行部1011は、I/O異常動作情報に記述されている時系列の順に、前記変数の初期値及び更新値を用いて実装コードを実行する。リセット監視部103は、実装コードの実行中に実装コードがリセットされた回数を計数する。検証項目解析部104は、計数されたリセットの回数に基づき、実装コードを検証する。

Description

プログラム検証装置及びプログラム検証方法及びプログラム
 本発明は、プログラム(以下、ソフトウェアともいう)を検証する技術に関する。
 組込みソフトウェア(以下、S/Wとも表記する)の一種である制御S/Wは、多機能化・高付加価値化の要望に応えるために、大規模化・複雑化が急速に進んでいる。
 また、ユーザの安全志向の高まりにより、製品の安全性を機能的に担保するための機能安全規格が様々な分野で策定されている。
 一例として、自動車向けの機能安全規格ISO26262が2011年11月に策定され、製品開発において、コストアップを伴わない規格への対応が要求されている。
 ISO26262では、ハードウェア(以下、H/Wとも表記する)のランダム故障だけではなくS/Wの系統故障のリスクの増加に対応すべく、安全性を達成するための開発プロセスと作業項目、各作業項目の成果物と推奨技法を規定している。
 ISO26262に適合させながら製品を開発するためには、安全要求を実現するのに必要十分な作業項目と推奨技法を取捨選択して成果物を作成し、ISO26262認証を取得している各種ツールを活用して成果物の妥当性を検証することが、品質・コスト面から必要である。
 また、近年の制御S/Wの開発プロジェクトでは、多機能化・高付加価値化の要望に応えるために、制御S/Wが制御対象とするI/O(Input/Output)デバイスの点数及び種類が増加している。
 I/Oデバイスの点数及び種類の増加により、処理順序や実行タイミングの全てを網羅した試験を行うことが困難になっている。
 このため、S/W結合試験以降の実機動作時(制御S/Wが制御機器に実装されて実行される際)に、試験では想定されなかった特殊な条件下で制御S/Wが実行され、H/W-S/Wインタフェースに関する不具合が発生することが問題になっている。
 制御S/Wの単体試験で実施するH/W-S/Wインタフェース検証では、試験後の実機動作時にまれにしか起こらない条件を全て想定し、全ての条件に対応させた試験をもれなく行うことが要求される。
 具体的には、以下の要求事項を実現することが求められる。
(1)検証結果を保証するため、可能な限り、検証対象のプログラムである実装コードを修正しないこと。
(2)I/Oデバイスの正常動作に対する実装コードの動作と、I/Oデバイスの異常動作(以下、I/O異常動作ともいう)に対する実装コードの動作が、実装コードに接続する実物のI/Oデバイスが用意されていない未確定の段階で検証可能なこと。
(3)実装コードの有限時間動作を模擬可能なこと。
 一般に、機器を止めずに無限時間動作を続ける状況は考えにくいため、有限時間動作の模擬でよい。
 H/W-S/Wインタフェース検証のための従来のプログラム検証技術としては、I/Oデバイスの異常動作を模擬する方法(例えば特許文献1)と、モデル検査による実装コード解析(例えば非特許文献1)とが用いられることが多い。
 I/Oデバイスの異常動作を模擬する方法(例えば特許文献1)では、実装コードがI/Oデバイスから取得する値を、手作業で異常値に差し替えることで、有限時間でのI/Oデバイスの異常動作を模擬して、実装コードを検証することができる。
 また、モデル検査による実装コード解析(例えば非特許文献1)では、実装コードがSMT(Satisfiability Modulo Theories)形式という専用記述に変換された後に、実装コードがI/Oデバイスから取得する値を非決定的に選択することで、有限時間でのI/Oデバイスの異常動作を模擬して、実装コードを検証することができる。
特開2007-233675号公報
 従来のプログラム検証技術には以下に示す課題がある。
 I/Oデバイスの異常動作を模擬する方法では、実装コードを修正せずに有限時間でのI/O異常動作に対する実装コードの耐性を検証可能である(要求事項(1)および(3)を達成可能)。
 しかし、試験実施者が手作業により異常値を設定すると、試験実施者が異常値の設定をミスした場合に、I/O異常動作に対する実装コードの耐性を検証できるとは限らない(要求事項(2)を達成できない)。
 モデル検査による実装コード解析では、有限時間でのI/Oデバイスの異常動作を模擬して、実装コードの動作の検証が可能である(要求事項(2)および(3)を達成可能)。
 しかし、実装コードと専用記述とが一致していることの保証が困難であり、実装コードと専用記述との間の一致性を保証するための追加工数が発生してしまう(要求事項(1)を達成できない)。
 この発明は、上記のような事情に鑑みたものであり、検証対象のプログラムを修正することなく、I/Oデバイスの異常動作に対するプログラムの動作の検証を行うことを主な目的とする。
 本発明に係るプログラム検証装置は、
 値が更新される変数が記述されているプログラムを解析し、前記変数の初期値及び更新値が時系列に記述され、前記変数の初期値及び更新値の少なくともいずれかが前記プログラムの実行に支障をきたす欠陥値である欠陥値データを生成するデータ生成部と、
 前記欠陥値データに記述されている時系列の順に、前記変数の初期値及び更新値を用いて前記プログラムを実行するプログラム実行部と、
 前記プログラム実行部による前記プログラムの実行中に前記プログラムがリセットされた回数を計数するリセット計数部と、
 前記リセット計数部により計数されたリセットの回数に基づき、前記プログラムを検証する検証部とを有することを特徴とする。
 本発明では、欠陥値が含まれる変数の値をプログラムに入力するため、検証対象のプログラムを修正することなく、I/Oデバイスの異常動作に対するプログラムの動作の検証を行うことができる。
実施の形態1に係るシミュレータ装置の構成例を示す図。 実施の形態1に係るシミュレータ装置と実装コードとI/Oデバイス模擬プログラムとの関係を示す図。 実施の形態1に係る実装コードのS/Wアーキテクチャを示す図。 実施の形態1に係るシミュレータ装置の動作例を示すフローチャート図。 実施の形態1に係る検証シナリオの生成手順の例を示す図。 実施の形態1に係る入力シーケンス情報の例を示す図。 実施の形態1に係る割込みポイントの情報の例を示す図。 実施の形態1に係る入出力変数を説明する図。 実施の形態1に係るI/O異常動作の例を示す図。 実施の形態1に係るI/O異常動作情報の作成方法を示す図。 実施の形態1に係るI/O異常動作と故障モードとの関係を示す図。 実施の形態1に係るI/O読込みで無応答と異常応答を追加する方法を示す図。 実施の形態1に係るスケジューラ設定の例を示す図。 実施の形態1に係るI/Oデバイス状態情報(割込み)の例を示す図。 実施の形態1に係るI/Oデバイス状態情報(タイマ)の例を示す図。 実施の形態1に係るリセット回数情報の例を示す図。 実施の形態1に係るリセット回数上限値情報の例を示す図。 実施の形態2に係るI/O異常動作情報の作成方法を示す図。 実施の形態2に係るI/O異常動作情報のパターン例を示す図。 実施の形態1に係る無応答に対応するI/O異常動作情報の例を示す図。 実施の形態1に係る欠落応答に対応するI/O異常動作情報の例を示す図。 実施の形態1に係る重複応答に対応するI/O異常動作情報の例を示す図。 実施の形態1に係る異常応答に対応するI/O異常動作情報の例を示す図。 実施の形態1に係る逆転応答に対応するI/O異常動作情報の例を示す図。 実施の形態1及び2に係るシミュレータ装置のハードウェア構成例を示す図。
 実施の形態1.
 本実施の形態では、検証対象のプログラムである実装コードを可能な限り修正せずに、I/Oデバイスの正常動作に対する実装コードの動作と、I/Oデバイスの異常動作に対する実装コードの動作が、実装コードに接続する実物のI/Oデバイスが用意されていない未確定の段階で検証可能なシミュレータ装置を説明する。
 より具体的には、実装コードの解析結果とI/Oデバイスの異常動作のパターンを組み合わせて、異常動作パスと異常応答値を自動生成することで、効率的にカバレッジを向上させることができるシミュレータ装置を説明する。
 本実施の形態に係るシミュレータ装置は、実装コードへの入力値が時系列に示される入力シーケンス情報とI/Oデバイスの異常動作が示されるI/O異常動作情報が含まれる検証シナリオを生成する。
 そして、本実施の形態に係るシミュレータ装置は、検証シナリオに従って、I/Oデバイスの動作を模擬するプログラム(以降、I/Oデバイス模擬プログラムと呼ぶ)を実行し、実装コードに入力値を供給し、実装コードを実行する。
 更に、本実施の形態に係るシミュレータ装置は、実装コードの実行中に発生した、実装コードのリセットの回数が上限値を超えないかを監視することで、I/Oデバイスの異常動作に対する実装コードの耐性を検証する。
 つまり、本実施の形態に係るシミュレータ装置は、I/Oデバイスが異常に動作している場合(I/Oデバイスからの入力値に異常がある場合)にも、実装コード及びハードウェアがリセットを生じさせずに動作を継続できるか否かを検証する。
 本実施の形態に係るシミュレータ装置は、単体試験工程で実装コードを検証する。
 シミュレータ装置による検証後に、ISO26262認証取得のマイクロコンピュータエミュレータで実装コードの動作確認を行うことで、実装コードをISO26262規格に適合させることが容易になる。
 図2は、本実施の形態に係るシミュレータ装置100と、検証の対象となる実装コード500と、I/Oデバイスを模擬するI/Oデバイス模擬プログラム600との関係を示す。
 なお、シミュレータ装置100は、プログラム検証装置の例に相当する。
 実装コード500は、制御機器200の動作アルゴリズムが記述されたプログラムである。
 実装コード500は、シミュレータ装置100を用いた検証を含む試験後に、制御機器200に実装され、制御機器200で実行される。
 実装コード500は、シミュレータ装置100による検証の対象となるプログラムである。
 制御機器200は、図2に示すように、制御対象であるセンサデバイス300及び駆動デバイス400を制御する。
 制御機器200には、ハードウェアとして、I/Oポート204、I/Oポート205、割込み206、タイマ207が含まれる。
 また、図2には図示を省略しているが、制御機器200にはCPU(Central Processing Unit)又はマイクロコンピュータ、メモリといったハードウェアが搭載される。
 制御機器200は、センサデバイス300や駆動デバイス400などの制御対象に、デジタル信号またはアナログ信号を送受信するためのI/Oポート204、205を介して接続され、I/Oポート204、205を介してセンサデバイス300及び駆動デバイス400を制御する。
 I/Oデバイス模擬プログラム600は、図2に示すように、センサデバイス300、駆動デバイス400、I/Oポート204、I/Oポート205、割込み206及びタイマ207を模擬するプログラムである。
 シミュレータ装置100は、実装コード500及びI/Oデバイス模擬プログラム600を実行して、制御機器200の動作を模擬する。
 実装コード500に含まれるS/Wには、制御処理A201、制御処理B202及びハードウェアドライバ203がある。
 制御処理A201及び制御処理B202は、制御対象に物理的な制御をかけるための制御ロジックを実現する。
 ハードウェアドライバ203は、制御処理A201及び制御処理B202とH/W(I/Oポート204、I/Oポート205、割込み206、タイマ207)との間を仲介するプログラムである。
 ハードウェアドライバ203において、I/O処理2031は、制御処理A201、制御処理B202のI/Oポート204、205へのレジスタアクセスを仲介する。
 割込み処理2032は、H/Wからの割込み発生に対するハンドラとして機能する。
 タイマ処理2033は、H/Wからのタイムアウト発生に対するハンドラとして機能する。
 なお、図2に示した制御機器200の構成及び制御機器200に接続されるデバイスは一例であり、本実施の形態の適用範囲を図2の例に限定するものではない。
 シミュレータ装置100は、実装コード500を、I/Oデバイス模擬プログラム600とともに実行して、実装コード500の検証を行う。
 シミュレータ装置100には、スケジューラ101、検証シナリオ作成部102、リセット監視部103、検証項目解析部104、割込み模擬部105、タイマ模擬部106が含まれる。
 各要素の詳細は、図1を参照して後述する。
 図3は、実装コード500のS/Wアーキテクチャを示す。
 スケジューラ101は、制御処理A201及び制御処理B202とハードウェアドライバ203内の各処理を周期的に起動する。
 これらの処理間で制御信号と呼ぶ共有変数を介してデータが送受信され、また、制御操作が実行される。
 なお、図3に示した処理と信号の関係は例示であり、本実施の形態の適用範囲を図3の例に限定するものではない。
 制御操作と制御信号に関する説明を以下にて行う。
 制御操作には、制御処理間での連携操作と、制御処理からハードウェアドライバに対して行われるI/O操作、割込み操作、タイマ操作が含まれる。
 連携操作には、ある制御処理(例えば制御処理A201)が他の制御処理(例えば制御処理B202)に所定の演算を要求する要求操作と、演算を要求された制御処理(例えば制御処理B202)が要求元の制御処理(例えば制御処理A201)に演算結果を応答する応答操作が含まれる。
 I/O操作には、制御処理がI/Oデバイスからデータを読み込む操作、制御処理がI/Oデバイスへデータを書き出す操作が含まれる。
 割込み操作には、制御処理が割込み許可を設定する操作、制御処理が割込み禁止を設定する操作が含まれる。
 タイマ操作には、制御処理がタイマ開始を通知する操作、制御処理がタイマ終了を通知する操作、制御処理がタイムアウトの通知を受け付ける操作が含まれる。
 制御信号には、制御処理間で送受信する連携信号251と、制御処理とハードウェアドライバとの間で送受信するI/O信号が含まれる。
 I/O信号には、制御処理とI/O処理2031との間の情報伝達のためのI/Oポート信号252、制御処理と割込み処理2032との間の情報伝達のための状態変数253、制御処理とタイマ処理2033との間の情報伝達のためのカウンタ信号254が含まれる。
 なお、I/O信号として、図3に示していない信号を追加してもよい。
 ハードウェアドライバ203では、I/Oポートのレジスタアクセス、H/Wでの割込み発生、およびH/Wでのタイムアウト発生を処理するため、I/O処理2031、割込み処理2032、タイマ処理2033が制御処理と並行に動作する。
 スケジューラ101は、制御処理A201、制御処理B202、I/O処理2031、割込み処理2032、タイマ処理2033の実行を管理する。
 例えば、スケジューラ101は、ハードウェアドライバ203の実行優先度が制御処理よりも高ければ、制御処理の実行を中断してハードウェアドライバ203の実行を開始し、ハードウェアドライバ203の実行が終了した後に制御処理の実行を再開する。
 制御処理とハードウェアドライバ203は、制御信号の値に基づいて、それぞれの処理内容を変更する。
 次に、本実施の形態に係るシミュレータ装置100の構成を、図1を用いて説明する。
 検証シナリオ作成部102は、プログラム記憶部108から実装コード500を読み出し、また、入出力変数記憶部107から入出力変数を読み出し、実装コード500と入出力変数を解析して検証シナリオを作成する。
 検証シナリオは、入力シーケンス情報と割込みポイント情報とI/O異常動作情報とで構成される。
 入力シーケンス情報は、実装コード500に入力される複数の入力値が時系列に示される情報である。
 割込みポイント情報は、H/W割込みの発生を模擬するタイミングである割込みポイントが示される情報である。
 I/O異常動作情報は、I/Oデバイスの異常動作をシミュレートするための情報であり、複数の入力値が時系列に示される。
 I/O異常動作情報に記述されている入力値には、実装コード500の実行に支障をきたすような値(欠陥値)が含まれる。
 入力シーケンス情報は、正常な入力値が時系列に示される情報であり、正常値データの例に相当する。
 一方、I/O異常動作情報は、入力値が時系列に示される情報であるが、欠陥値が含まれており、欠陥値データの例に相当する。
 検証シナリオ作成部102は、データ生成部の例に相当する。
 検証シナリオ作成部102内の入力シーケンス作成部1021は、入力シーケンス情報を生成する。
 また、割込みポイント作成部1022は、割込みポイント情報を生成する。
 また、I/O異常動作作成部1023は、I/O異常動作情報を生成する。
 なお、検証シナリオ作成部102により生成された検証シナリオは、検証シナリオ記憶部110に格納される。
 実装コード実行部1011は、プログラム記憶部108から実装コード500を読み出し、また、スケジューラ設定記憶部109からスケジューラ設定を読み出し、スケジューラ設定に従って実装コード500を実行する。
 スケジューラ設定は、実装コード500とI/Oデバイス模擬プログラム600の起動周期及び起動順序が示されている情報である。
 実装コード実行部1011は、プログラム実行部の例に相当する。
 I/Oデバイス模擬プログラム実行部1012は、プログラム記憶部108からI/Oデバイス模擬プログラム600を読み出し、検証シナリオ記憶部110から検証シナリオを読み出し、スケジューラ設定記憶部109からスケジューラ設定を読み出す。
 そして、I/Oデバイス模擬プログラム実行部1012は、検証シナリオ及びスケジューラ設定に従って、I/Oデバイス模擬プログラム600を実行する。
 I/Oデバイス模擬プログラム実行部1012は、I/Oデバイス模擬プログラム600の実行にあたって、タイマ模擬部106からのタイマ通知も利用する。
 また、I/Oデバイス模擬プログラム実行部1012は、割込み模擬部105からのH/W割込みに基づき、割込み206を模擬して、ハードウェアドライバ203内の割込み処理2032に対して割込みを要求する。
 なお、実装コード実行部1011とI/Oデバイス模擬プログラム実行部1012は、図2に示したスケジューラ101を詳細化したものである。
 割込み模擬部105は、検証シナリオ記憶部110から検証シナリオを読み出し、I/Oデバイス状態記憶部111からI/Oデバイス状態情報(割込み)を読み出す。
 そして、割込み模擬部105は、検証シナリオとI/Oデバイス状態情報(割込み)に従ってH/W割込みの動作を模擬する。
 タイマ模擬部106は、I/Oデバイス状態記憶部111からI/Oデバイス状態情報(タイマ)を読み出し、I/Oデバイス状態情報(タイマ)に従ってH/Wタイマの動作を模擬する。
 I/Oデバイス状態情報(タイマ)には、タイマ設定の詳細が示される。
 リセット監視部103は、実装コード500が継続して動作できなくなった際に発生するリセットの発生状況を監視し、リセットの発生回数を計数する。
 リセット監視部103が計数したリセットの発生回数はリセット回数記憶部112に記憶される。
 リセット監視部103は、リセット計数部の例に相当する。
 検証項目解析部104は、リセット回数記憶部112のリセット回数を読み出し、リセット回数に基づいてI/O異常動作に対する実装コード500の耐性を検証する。
 そして、検証項目解析部104は、検証結果を示す検証レポートを作成し、作成した検証レポートを検証レポート記憶部113に格納する。
 検証項目解析部104は、検証部の例に相当する。
 次に、本実施の形態に係るシミュレータ装置100の動作例を図4のフローチャートを用いて説明する。
 図4のフローチャートの入力は、実装コード500と入出力変数を識別する情報である。
 図4のフローチャートの出力は、実装コード500の実行結果を検証項目解析部104が検証した結果である検証レポートである。
 センサデバイス300及び駆動デバイス400といったI/Oデバイスの動作を模擬するには、I/Oデバイス模擬プログラム600を実装コード500とは異なる短い周期で実行する必要がある。
 以降では、図4のフローチャートの各ステップを順に説明していくが、各ステップが説明順に実行されるわけではない。
 実装コード500の実行(S104)から割込み処理の実行(S105)までの各ステップが逐次実行され、I/Oデバイス模擬プログラムの実行(S106)からリセット回数のインクリメント(S109)までの各ステップが逐次実行され、これら2つのフローが並行に実行される。
 まず、検証シナリオ作成部102が、実装コード500と入出力変数を解析して、検証シナリオを作成する(S101~S103)。
 具体的には、入力シーケンス作成部1021が、入力シーケンス情報を生成し(S101)、割込みポイント作成部1022が割込みポイント情報を生成し(S102)、I/O異常動作作成部1023がI/O異常動作情報を生成する(S103)。
 前述したように、入力シーケンス情報は、ハードウェアドライバ203を介して実装コード500に与える入力値を時系列に並べた情報である。
 また、割込みポイント情報は、H/Wでの割込み発生を模擬するタイミング(割込みポイント)を指定する情報である。
 図5に示すように、入力シーケンス作成部1021は、客先仕様書、制御仕様書、関数仕様書など実装コード500を作成するための入力成果物に基づいて、例えば既存の方法を用いて入力シーケンス情報を作成する。
 または、入力シーケンス作成部1021は、実装コード500のカバレッジ基準(例えばC0、C1、C2、MC/DC(Modified Condition/Decision Coverage)など)に基づいて、例えば既存の方法を用いて入力シーケンス情報を作成してもよい。
 または、これら2つの方法を組み合わせて作成してもよい。
 割込みポイント情報の作成では、割込みポイント作成部1022は、実装コード500内で、複数の処理(複数の制御処理、制御処理とハードウェアドライバ内の処理)が同一の制御信号(変数)にアクセスしている箇所を特定し、複数の処理がアクセスする制御信号(変数)を競合制御信号(競合変数)として抽出する。
 そして、割込みポイント作成部1022は、競合制御信号へのアクセスの前後をそれぞれ割込みポイントとして指定する。
 入力シーケンス情報の例を図6に示し、割込みポイント情報の例を図7に示す。
 図6の入力シーケンス情報では、実装コード500の入力変数をi、jとし、入力変数i、jに代入される値を時系列に示している。
 初期状態の欄に示される変数値が初期値であり、ステップ1以降の欄に示される変数値が更新値である。
 図6の各行は、1つの試験での入力値のパターンを示している。
 本実施の形態では、シミュレータ装置100は有限時間動作を模擬するため、入力シーケンス情報では、最大ステップ数が指定されている。
 最大ステップ数は、起動回数の最大値、すなわち動作終了時点を判定するための起動回数である。
 また、図7の割込みポイント情報では、状態変数1~3へのアクセスの前後のタイミングが割込みポイントである。
 割込み模擬部105は、実装コード500の実行時に、図7に示す割込みポイントにて割込みが禁止されていなければ、H/W割込みを発生させる。
 また、I/O異常動作作成部1023は、入力シーケンス情報を変更してI/O異常動作情報を生成する。
 実装コード500の検証のために使用する入出力変数を図8に示す。
 図8において、分類欄には、図2及び図3に示したI/O処理、割込み処理、タイマ処理が記述されている。
 つまり、I/O処理、割込み処理、タイマ処理のそれぞれで用いられる入出力変数が検証の対象である。
 項目欄には、I/O操作の種類が示される。
 入出力変数欄には、検証対象の入出力変数が示される。
 説明欄には、入出力変数を処理する手順が示される。
 I/O異常動作作成部1023は、図8に示される入出力変数についてのI/O異常動作情報を生成する。
 次に、I/O異常動作情報に含まれるI/O異常動作を図9に示す。
 図9において、異常動作及び定義欄の欄には、I/O異常動作の類型(欠陥パターン)が示される。
 実現方法の欄には、I/O異常動作を入力シーケンス情報に追加する手順を示す。
 図10に、図9に示すI/O異常動作の具体例を示す。
 図10は、図6に示した入力シーケンス情報のNo.3の入力変数i、jを、それぞれ図8のフラグ、データとみなした場合のI/O異常動作を示す。
 「無応答」及び「重複応答」は、同じ値が複数回連続して入力される異常である。
 「無応答」は、初期値(図10では、i=0、j=0)が複数回連続して入力される異常であり、「重複応答」は、初期値以外の値(図10では、i=33、j=303)が複数回連続して入力される異常である。
 「欠落応答」は、特定の値(図10では、i=32、j=302)の入力が欠落する異常である。
 「異常応答」は、異常値(図10では、i=異常値、j=異常値)が入力される異常である。
 「逆転応答」は、値の順序が逆転する異常である(図10では、i=32、j=302と、i=33、j=303の順序が逆転している)。
 図20は、図6の入力シーケンス情報のNo.3の時系列シーケンスに基づいて生成された、「無応答」に対応するI/O異常動作情報の例を示す。
 図20のI/O異常動作情報の時系列シーケンスでは、ステップ1及びステップ2においても、初期値(i=0、j=0)が繰り返されている。
 つまり、I/O異常動作作成部1023は、図6の入力シーケンス情報のNo.3の時系列シーケンスに、初期状態と同じ値のステップ1及びステップ2を追加して、ステップ1及びステップ2の値に欠陥がある図20のI/O異常動作情報を生成している。
 図21は、図6の入力シーケンス情報のNo.3の時系列シーケンスに基づいて生成された、「欠落応答」に対応するI/O異常動作情報の例を示す。
 図21のI/O異常動作情報の時系列シーケンスでは、ステップ1の値(i=31、j=301)とステップ2の値(i=33、j=303)の間に存在すべき値(i=32、j=302)が欠落している。
 つまり、I/O異常動作作成部1023は、図6の入力シーケンス情報のNo.3の時系列シーケンスからステップ2を欠落させて、ステップ1からステップ2への遷移において欠陥のある図21のI/O異常動作情報を生成している。
 図22は、図6の入力シーケンス情報のNo.3の時系列シーケンスに基づいて生成された、「重複応答」に対応するI/O異常動作情報である。
 図22のI/O異常動作情報の時系列シーケンスでは、ステップ3の値(i=33、j=303)がステップ4でも繰り返されている。
 つまり、I/O異常動作作成部1023は、図6の入力シーケンス情報のNo.3に、ステップ3と同じ値のステップ4を追加して、ステップ4において欠陥のある図22のI/O異常動作情報を生成している。
 図23は、図6の入力シーケンス情報のNo.3の時系列シーケンスに基づいて生成された、「異常応答」に対応するI/O異常動作情報である。
 図23のI/O異常動作情報の時系列シーケンスでは、ステップnの値が異常値である。
 つまり、I/O異常動作作成部1023は、図6の入力シーケンス情報のNo.3のステップnの値を異常値に置き換えて、ステップnに欠陥のある図23のI/O異常動作情報を生成している。
 図24は、図6の入力シーケンス情報のNo.3の時系列シーケンスに基づいて生成された、「逆転応答」に対応するI/O異常動作情報である。
 図24のI/O異常動作情報の時系列シーケンスでは、ステップ2の値(i=33、j=303)とステップ3の値(i=32、j=302)が本来の順序の逆になっている。
 つまり、I/O異常動作作成部1023は、図6の入力シーケンス情報のNo.3のステップ2の値とステップ3の値を入れ替えて、ステップ2の値とステップ3の値に欠陥がある図23のI/O異常動作情報を生成している。
 図9の脚注にあるように、入力シーケンス情報のステップ数がn(n≧3)である場合に、シミュレータ装置100のユーザが欠陥を生じさせるステップ数としてm(≦n)を指定すると、I/O異常動作作成部1023は、通りの「欠落応答」のI/O異常動作情報、通りの「重複応答」のI/O異常動作情報、通りの「逆転応答」のI/O異常動作情報を作成する。
 図10の例において、ユーザがm=1を指定した場合は、I/O異常動作作成部1023は、n通りの「欠落応答」のI/O異常動作情報、n通りの「重複応答」のI/O異常動作情報、n通りの「逆転応答」のI/O異常動作情報を作成する。
 ユーザは、1~nの間で、任意にmの値を指定することができる。
 入力シーケンス作成部1021は、図8のI/O処理、割込み処理、タイマ処理の各々に対して入力シーケンス情報を生成する。
 I/O異常動作作成部1023も、図8のI/O処理、割込み処理、タイマ処理の各々に対して、入力シーケンス情報を変更して、I/O異常動作情報を生成する。
 また、I/O異常動作作成部1023は、図8のI/O処理、割込み処理、タイマ処理の各々に対して、少なくとも、「無応答」に対応するI/O異常動作情報、「異常応答」に対応するI/O異常動作情報、「欠落応答」に対応するI/O異常動作情報、「重複応答」に対応するI/O異常動作情報、「逆転応答」に対応するI/O異常動作情報を生成する。
 更に、I/O異常動作作成部1023は、「無応答」、「異常応答」、「欠落応答」、「重複応答」及び「逆転応答」のうちの任意の組合せが含まれるI/O異常動作情報を生成してもよい。
 なお、図9及び図10に示した「無応答」、「異常応答」、「欠落応答」、「重複応答」及び「逆転応答」は、図11に示すように、故障解析手法HAZOP(Hazard and operability study)で定義されている故障モードに対応させている。
 このように、本実施の形態では、I/O異常動作を、HAZOPの故障モードに対応させているので、検証の網羅性が担保されている。
 なお、HAZOPに限らず、FMEA(Failure Modes and Effects Analysis)で用いる故障データベースや、過去の機種開発時の経験から抽出した不具合事例リストなど、故障解析手法で用いられる情報に基づいて、検証の網羅性を担保するようにしてもよい。
 次に、入力シーケンス作成部1021が入力シーケンス情報を生成し、I/O異常動作作成部1023が、図8に示した分類「I/O処理」の項目「I/O読込み」に対する異常動作「無応答」及び「異常応答」のI/O異常動作情報を生成する手順を、図12を用いて説明する。
 手順(A)では、例えば、ユーザが、読込み許可フラグが変数「flag」であり、読込みデータが変数「read」であることを指定する。
 手順(B)では、入力シーケンス作成部1021が、周期実行される実装コード500中で解析対象とする正常動作箇所を抽出する。
 この例では、毎周期で正常応答値を想定している判定条件「if(5<=read<=10)」を正常動作箇所として抽出している。
 また、繰り返し文「while(flag==OFF)」では、1周期中で「flag」が必ず「ON」になると想定している。
 手順(C)では、入力シーケンス作成部1021が、手順(B)で抽出した正常動作箇所を解析して入力シーケンス情報を作成する。
 手順(D)では、I/O異常動作作成部1023が、手順(C)で作成された入力シーケンス情報にI/O異常動作として初期状態に留まる「無応答」の遷移を追加して、「無応答」のI/O異常動作情報を生成する。
 また、I/O異常動作作成部1023は、判定条件「if(5<=read<=10)」に違反する異常応答値の一つとして「read=3」を返す「異常応答」の状態を入力シーケンス情報に追加して、「異常応答」のI/O異常動作情報を生成する。
 以上の動作により、I/O異常動作作成部1023は、I/Oデバイスの正常動作に対応する入力シーケンス情報に対してI/O異常動作を追加したI/O異常動作情報を作成する。
 説明を図4のフローチャートに戻す。
 スケジューラ設定で指定する起動周期と起動順序に従って、I/Oデバイス模擬プログラム実行部1012が、I/Oデバイス模擬プログラム600を実行する(S106)。
 S106では、I/Oデバイス模擬プログラム実行部1012は、検証シナリオの入力シーケンス情報又はI/O異常動作情報から該当ステップの入力値を読み取って、読み取った入力値を、実装コード500の入力変数に設定する。
 スケジューラ設定を図13に示す。
 図13では、シミュレータ装置100において二種類のI/Oデバイス模擬プログラム600が実行され、二種類のI/O処理が実行され、二種類の制御処理が実行される場合のスケジューラ設定を示している。
 また、起動順序は、同じ起動周期を持つ処理が複数ある場合の実行優先度を表す。
 起動順序が「1」の処理が優先して実行される。
 また、スケジューラ設定で指定する起動周期と起動順序に従って、実装コード実行部1011が実装コード500を実行する(S104)。
 S104では、実装コード実行部1011は、実装コード500中の制御処理とI/O処理を実行する。
 つまり、S104では、実装コード実行部1011が、実装コード500に記述されている制御ロジックのとおりに、入力値の読込み、各制御信号の読込み・書出し、制御演算を実行し、演算結果である出力値を出力変数に書出す。
 実装コード500の実行中に、制御処理により割込みの許可又は割込みの禁止が設定される。
 具体的には、I/Oデバイス状態記憶部111内のI/Oデバイス状態情報(割込み)に、割込みの許可又は割込みの禁止が設定される。
 図14は、I/Oデバイス状態情報(割込み)の例を示す。
 図14では、X及びYという2つの割込み206が配置される場合のI/Oデバイス状態情報(割込み)が示されている。
 また、制御処理の中でタイマ開始又はタイマ終了が発生すると、I/Oデバイス状態記憶部111内のI/Oデバイス状態情報(タイマ)にタイマ管理のための情報が記述される。
 図15は、I/Oデバイス状態情報(タイマ)の例を示す。
 図15では、X及びYという2つのタイマ207が配置される場合のI/Oデバイス状態情報(タイマ)が示されている。
 I/Oデバイス状態情報(タイマ)では、タイマ種別としてワンショット(1回タイムアウトしたらタイマが自動的に終了)又は継続(タイマ終了操作をするまで何度でもタイムアウトが発生)、タイマ状態として開始又は終了が設定される。
 また、I/Oデバイス状態情報(タイマ)では、タイマ値やカウンタも設定される。
 そして、実装コード500の実行中にアクセスした制御信号が図6に示した割込みポイントに合致し、かつI/Oデバイス状態情報(割込み)に、当該割込みポイントの割込み名に対する割込み状態が「許可」の場合、割込み模擬部105が、割込み処理を実行する(S105)。
 また、タイマ模擬部106が、I/Oデバイス状態情報(タイマ)のタイマ状態が「開始」になっているタイマをカウントアップする。
 また、タイマ模擬部106は、タイマのカウンタがタイマ値以上になってタイマが満了したら、タイマ処理を実行する(S107)。
 リセット監視部103は、実装コード500の実行中にリセットが発生するかどうかを監視する(S108)。
 リセット監視部103は、リセットの発生を検出した場合は、リセット回数をインクリメントする(S109)。
 リセット回数を計数するためのリセット回数情報を図16に示す。
 リセット回数情報は、リセット回数記憶部112で記憶されている。
 図16において、ウォッチドッグリセットは、S/Wが無限ループのような非常に長時間の動作を続けていることをH/Wが検出してリセットする仕組みである。
 自発リセットは、S/W自身が動作を継続できないと判断してH/Wにリセットを要求する仕組みである。
 例外リセットは、S/Wによる不正メモリアクセスやゼロ除算などの不正処理をH/Wが検出してリセットする仕組みである。
 リセット監視部103は、図16に示すリセットのカテゴリーごとに、リセット回数をインクリメントする。
 なお、リセット発生の要因は図16に示すものに限るものではない。
 図4のフローにおいて、実装コード500とI/Oデバイス模擬プログラム600の起動回数が最大ステップ数に到達したら、検証項目解析部104は、図16に示したリセット回数情報に示されているリセット回数を用いて、検証を行う。
 具体的には、検証項目解析部104は、図16のリセット回数情報に示される全てカテゴリーのリセット回数が、図17に例示するリセット回数上限値情報のリセット回数の上限値を超えていなければ、実装コード500が適正であると判定する。
 一方、いずれかのカテゴリーのリセット回数が、上限値を超えている場合は、検証項目解析部104は、実装コード500の改修が必要であると判断する。
 そして、検証項目解析部104は、検証結果が示される検証レポートを生成する。
 入力シーケンス情報、複数のI/O異常動作情報の各々に対して、実装コード実行部1011はS105を実行し、I/Oデバイス模擬プログラム実行部1012はS106を実行し、リセット監視部103はS108及びS109を実行する。
 I/Oデバイス模擬プログラム実行部1012は、例えば、図6の入力シーケンス情報のNo.3の入力値を順次、実装コード実行部1011に出力し、実装コード実行部1011は、I/Oデバイス模擬プログラム実行部1012からの入力値を用いて実装コード500を実行し、リセット監視部103は、実装コード500の実行中のリセット回数を計数する。
 そして、検証項目解析部104は、図6の入力シーケンス情報のNo.3の入力値を用いた実装コード500の実行中のリセット回数が上限値を超えているか否かを検証して、検証レポートを生成する。
 また、I/Oデバイス模擬プログラム実行部1012は、例えば、図20の「無応答」のI/O異常動作情報の入力値を順次、実装コード実行部1011に出力し、実装コード実行部1011は、I/Oデバイス模擬プログラム実行部1012からの入力値を用いて実装コード500を実行し、リセット監視部103は、実装コード500の実行中のリセット回数を計数する。
 そして、検証項目解析部104は、図20の「無応答」のI/O異常動作情報の入力値を用いた実装コード500の実行中のリセット回数が上限値を超えているか否かを検証して、検証レポートを生成する。
 また、I/Oデバイス模擬プログラム実行部1012は、例えば、図21の「欠落応答」のI/O異常動作情報の入力値を順次、実装コード実行部1011に出力し、実装コード実行部1011は、I/Oデバイス模擬プログラム実行部1012からの入力値を用いて実装コード500を実行し、リセット監視部103は、実装コード500の実行中のリセット回数を計数する。
 そして、検証項目解析部104は、図21の「欠落応答」のI/O異常動作情報の入力値を用いた実装コード500の実行中のリセット回数が上限値を超えているか否かを検証して、検証レポートを生成する。
 また、I/Oデバイス模擬プログラム実行部1012は、例えば、図22の「重複応答」のI/O異常動作情報の入力値を順次、実装コード実行部1011に出力し、実装コード実行部1011は、I/Oデバイス模擬プログラム実行部1012からの入力値を用いて実装コード500を実行し、リセット監視部103は、実装コード500の実行中のリセット回数を計数する。
 そして、検証項目解析部104は、図22の「重複応答」のI/O異常動作情報の入力値を用いた実装コード500の実行中のリセット回数が上限値を超えているか否かを検証して、検証レポートを生成する。
 また、I/Oデバイス模擬プログラム実行部1012は、例えば、図23の「異常応答」のI/O異常動作情報の入力値を順次、実装コード実行部1011に出力し、実装コード実行部1011は、I/Oデバイス模擬プログラム実行部1012からの入力値を用いて実装コード500を実行し、リセット監視部103は、実装コード500の実行中のリセット回数を計数する。
 そして、検証項目解析部104は、図23の「異常応答」のI/O異常動作情報の入力値を用いた実装コード500の実行中のリセット回数が上限値を超えているか否かを検証して、検証レポートを生成する。
 また、I/Oデバイス模擬プログラム実行部1012は、例えば、図24の「逆転応答」のI/O異常動作情報の入力値を順次、実装コード実行部1011に出力し、実装コード実行部1011は、I/Oデバイス模擬プログラム実行部1012からの入力値を用いて実装コード500を実行し、リセット監視部103は、実装コード500の実行中のリセット回数を計数する。
 そして、検証項目解析部104は、図24の「逆転応答」のI/O異常動作情報の入力値を用いた実装コード500の実行中のリセット回数が上限値を超えているか否かを検証して、検証レポートを生成する。
 本実施の形態に係るシミュレータ装置100によれば、以下の効果を得ることができる。
 実装コードを計算機上で動作させて検証するため、検証結果の正しさの保証が容易である。
 I/Oデバイス模擬プログラムの実行によりS/Wへの入力シーケンスとI/O異常動作を網羅的に実行することで、I/Oデバイスの正常動作および異常動作が未確定の段階でも実装コードを検証することができる。
 H/W-S/Wインタフェースに関する不具合を単体試験で検出することで、S/W結合試験以降からの手戻り工数を削減できる。
 実施の形態2.
 本実施の形態では、実施の形態1のI/O異常動作情報の時系列シーケンスを複数個連結させて、新たなI/O異常動作情報を作成する方法を説明する。
 I/O異常動作情報に含まれるステップ数をnと仮定する。
 また、ステップnの後に初期状態からステップn-1までの間のいずれかのステップ(ここではステップmとする)に戻っても実装コード500が実行可能であると仮定する。
 この場合には、1つのI/O異常動作情報の全体の時系列シーケンス(初期状態からステップn)の後に、ステップmからステップnまでの部分的な時系列シーケンスを複数個連結した時系列シーケンスも、検証シナリオとして有効である。
 そこで、図18に示すように、I/O異常動作作成部1023は、I/O異常動作情報の全体の時系列シーケンス(初期状態からステップn)の後にステップmからステップnまでの部分的な時系列シーケンスを複数個連結した時系列シーケンス(以降、連結時系列シーケンスと呼ぶ)を作成する。
 本実施の形態に係るシミュレータ装置100は、このようにして作成された連結時系列シーケンスを新たなI/O異常動作情報として用いる。
 図18では、「異常応答」が含まれる連結時系列シーケンスの生成例を示しているが、I/O異常動作作成部1023は、「欠落応答」、「重複応答」、「逆転応答」についても同様にして連結時系列シーケンスを作成することができる。
 また、I/O異常動作作成部1023は、図19に示すパターンに対応させて、連結時系列シーケンスを生成するようにしてもよい。
 図19は、図18のステップn-1が繰り返されるパターンを複数示している。
 図19において、n-1(x)は、ステップn-1の繰り返しを表しており、かっこ内のxは、ステップn-1の繰り返し回数を表している。
 n-1(2)は、2回目のステップn-1を意味し、n-1(11)は11回目のステップn-1を意味している。
 また、n-1(x)とともに示される矢印は、I/O異常応答情報に異常値が記述されることを意味している。
 例えば、「制限」パターンでは、n-1(1)、n-1(2)、n-1(12)、n-1(13)に対して矢印が示されている。
 つまり、図19の「制限」パターンに従って生成されたI/O異常応答情報では、1回目、2回目、12回目、13回目のステップn-1の入力変数の値として異常値が記述され、一方、3回目~11回目、14回目以降のステップn-1の入力変数の値として正常値が記述されていることを表している。
 図19の「周期」パターンでは、入力変数の値が異常値になっているステップn-1が周期的に出現する。
 つまり、「周期」パターンに従う連結時系列シーケンスでは、初期状態からステップnの時系列シーケンスの後に、ステップmからステップnの部分的な時系列シーケンスが複数回繰り返され、毎回のステップn-1の値は異常値である。
 図19の「不規則」パターンでは、拡張周期、ジッタが指定される。
 拡張周期は、異常値のステップn-1の出現間隔である。
 ジッタは、拡張周期からのずれ幅を示す。
 「不規則」パターンに従う連結時系列シーケンスでも、初期状態からステップnの時系列シーケンスの後に、ステップmからステップnの部分的な時系列シーケンスが複数回繰り返される。
 「不規則」パターンに従う連結時系列シーケンスでは、拡張周期:10であれば、例えば、1回目のステップn-1の値が異常値に設定された後、2回目~10回目のステップn-1の値が正常値に設定され、11回目のステップn-1の値が異常値に設定される。
 また、拡張周期:10なので、本来であれば、次に異常値が設定されるのは21回目のステップn-1であるが、ジッタ:1であれば、異常値が設定されるタイミングが1つずれ、20回目のステップn-1において異常値が設定される。
 図19の「制限」パターンでは、最小間隔、最大間隔が指定される。
 つまり、「制限」パターンでは、異常値のステップn-1の出現間隔が2種類ある。
 「制限」パターンに従う連結時系列シーケンスでも、初期状態からステップnの時系列シーケンスの後に、ステップmからステップnの部分的な時系列シーケンスが複数回繰り返される。
 「制限」パターンに従う連結時系列シーケンスでは、例えば、1回目のステップn-1の値が異常値に設定された後、最小間隔:1に従って、2回目のステップn-1の値が異常値に設定され、次に、最大間隔:10に従って、3回目~11回目のステップn-1の値が正常値に設定され、12回目のステップn-1nの値が異常値に設定される。
 「バースト」パターンに従う連結時系列シーケンスでも、初期状態からステップnの時系列シーケンスの後に、ステップmからステップnの部分的な時系列シーケンスが複数回繰り返される。
 「バースト」パターンに従う連結時系列シーケンスでは、例えば、1回目~10回目のステップn-1の値が異常値に設定され、11回目以降のステップn-1の値は正常値に設定される。
 図19の「散発」パターンでは、内部周期、繰り返し回数、外部周期が指定される。
 内部周期は、異常値のステップn-1の出現間隔である。
 繰り返し回数は、異常値のステップn-1を繰り返す回数である。
 外部周期は、異常値のステップn-1の繰り返しの出現間隔である。
 「散発」パターンに従う連結時系列シーケンスでも、初期状態からステップnの時系列シーケンスの後に、ステップmからステップnの部分的な時系列シーケンスが複数回繰り返される。
 「散発」パターンに従う連結時系列シーケンスでは、例えば、内部周期:1及び繰り返し回数:3に従い、1回目~3回目のステップn-1の値が異常値に設定された後、外部周期:10に従って、4回目~10回目のステップn-1の値が正常値に設定され、次に、11回目~13回目のステップn-1の値が異常値に設定される。
 同様にして、14回目~20回目のステップn-1の値が正常値に設定され、21回目~23回目のステップn-1の値が異常値に設定され、24回目~30回目のステップn-1の値が正常値に設定され、31回目~33回目のステップn-1の値が異常値に設定される。
 なお、I/O異常動作作成部1023は、図19に示す各パターンを組み合わせて連結時系列シーケンスを生成してもよい。
 以上のように本実施の形態によれば、様々なパターンのI/O異常動作情報を生成することができ、実装コードをきめ細かく検証することができる。
 最後に、実施の形態1、2に示したシミュレータ装置100のハードウェア構成例を図25を参照して説明する。
 シミュレータ装置100はコンピュータであり、シミュレータ装置100の各要素をプログラムで実現することができる。
 シミュレータ装置100のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
 演算装置901は、プログラムを実行するCPUである。
 外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
 主記憶装置903は、RAM(Random Access Memory)である。
 図1に示す「~記憶部」は、外部記憶装置902又は主記憶装置903で実現される。
 通信装置904は、例えばNIC(Network Interface Card)である。
 入出力装置905は、例えばマウス、キーボード、ディスプレイ装置である。
 プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
 プログラムは、図1に示す「~部」(「~記憶部」を除く。以下でも同様)として説明している機能を実現するプログラムである。
 更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1に示す「~部」の機能を実現するプログラムを実行する。
 また、実施の形態1、2の説明において、「~の判断」、「~の判定」、「~の検証」、「~の抽出」、「~の検出」、「~の指定」、「~の設定」、「~の計数」、「~の模擬」、「~の実行」、「~の選択」、「~の生成」、「~の入力」、「~の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
 また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置903にファイルとして記憶されてもよい。
 なお、図25の構成は、あくまでもシミュレータ装置100のハードウェア構成の一例を示すものであり、シミュレータ装置100のハードウェア構成は図25に記載の構成に限らず、他の構成であってもよい。
 また、実施の形態1、2に示す手順により、本発明に係るプログラム検証方法を実現可能である。
 以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
 あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
 あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
 なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
 100 シミュレータ装置、101 スケジューラ、102 検証シナリオ作成部、103 リセット監視部、104 検証項目解析部、105 割込み模擬部、106 タイマ模擬部、107 入出力変数記憶部、108 プログラム記憶部、109 スケジューラ設定記憶部、110 検証シナリオ記憶部、111 I/Oデバイス状態記憶部、112 リセット回数記憶部、113  検証レポート記憶部、1011 実装コード実行部、1012 I/Oデバイス模擬プログラム実行部、1021 入力シーケンス作成部、1022 割込みポイント作成部、1023 I/O異常動作作成部、200 制御機器、201 制御処理A、202 制御処理B、203 ハードウェアドライバ、204 I/Oポート、205 I/Oポート、206 割込み、207 タイマ、2031 I/O処理、2032 割込み処理、2033 タイマ処理、251 連携信号、252 I/Oポート信号、253 状態変数、254 カウンタ信号、300 センサデバイス、400 駆動デバイス、500 実装コード、600 I/Oデバイス模擬プログラム。

Claims (15)

  1.  値が更新される変数が記述されているプログラムを解析し、前記変数の初期値及び更新値が時系列に記述され、前記変数の初期値及び更新値の少なくともいずれかが前記プログラムの実行に支障をきたす欠陥値である欠陥値データを生成するデータ生成部と、
     前記欠陥値データに記述されている時系列の順に、前記変数の初期値及び更新値を用いて前記プログラムを実行するプログラム実行部と、
     前記プログラム実行部による前記プログラムの実行中に前記プログラムがリセットされた回数を計数するリセット計数部と、
     前記リセット計数部により計数されたリセットの回数に基づき、前記プログラムを検証する検証部とを有することを特徴とするプログラム検証装置。
  2.  前記データ生成部は、
     前記プログラムを解析し、前記変数の初期値及び更新値が時系列に記述され、前記変数の初期値及び更新値のいずれもが正常値である正常値データを生成し、
     前記正常値データの少なくとも一部を変更して前記変数の初期値及び更新値の少なくともいずれかを前記欠陥値に変換して、前記欠陥値データを生成することを特徴とする請求項1に記載のプログラム検証装置。
  3.  前記データ生成部は、
     欠陥の類型である欠陥パターンごとに、前記正常値データの少なくとも一部を変更して、複数の欠陥パターンに対応する複数の欠陥値データを生成し、
     前記プログラム実行部は、
     欠陥値データごとに、欠陥値データに記述されている時系列の順に、前記変数の初期値及び更新値を用いて前記プログラムを実行し、
     前記リセット計数部は、
     欠陥値データごとに、前記プログラム実行部による前記プログラムの実行中に前記プログラムがリセットされた回数を計数し、
     前記検証部は、
     欠陥値データごとに、前記リセット計数部により計数されたリセットの回数に基づき、前記プログラムを検証することを特徴とする請求項2に記載のプログラム検証装置。
  4.  前記データ生成部は、
     それぞれが欠陥の類型である2つ以上の欠陥パターンに対応させて、前記正常値データの少なくとも一部を変更して、前記2つ以上の欠陥パターンを反映させた欠陥値データを生成することを特徴とする請求項2に記載のプログラム検証装置。
  5.  前記データ生成部は、
     前記変数の初期値が複数回連続して記述されている欠陥値データを生成することを特徴とする請求項2に記載のプログラム検証装置。
  6.  前記データ生成部は、
     同じ値が複数回連続して記述されている欠陥値データを生成することを特徴とする請求項2に記載のプログラム検証装置。
  7.  前記データ生成部は、
     前記正常値データに記述されている特定の値の記述が欠落している欠陥値データを生成することを特徴とする請求項2に記載のプログラム検証装置。
  8.  前記データ生成部は、
     前記正常値データに記述されている順序通りに値が記述されていない欠陥値データを生成することを特徴とする請求項2に記載のプログラム検証装置。
  9.  前記データ生成部は、
     異常値が記述されている欠陥値データを生成することを特徴とする請求項2に記載のプログラム検証装置。
  10.  前記データ生成部は、
     前記欠陥値が間隔をあけて複数回出現する欠陥値データを生成することを特徴とする請求項1に記載のプログラム検証装置。
  11.  前記データ生成部は、
     前記欠陥値が一定間隔で出現する欠陥値データを生成することを特徴とする請求項10に記載のプログラム検証装置。
  12.  前記データ生成部は、
     前記欠陥値がランダムな間隔で出現する欠陥値データを生成することを特徴とする請求項10に記載のプログラム検証装置。
  13.  前記データ生成部は、
     前記欠陥値が一定間隔で出現する区間と前記欠陥値がランダムな間隔で出現する区間とが混在する欠陥値データを生成することを特徴とする請求項10に記載のプログラム検証装置。
  14.  コンピュータが、値が更新される変数が記述されているプログラムを解析し、前記変数の初期値及び更新値が時系列に記述され、前記変数の初期値及び更新値の少なくともいずれかが前記プログラムの実行に支障をきたす欠陥値である欠陥値データを生成し、
     前記コンピュータが、前記欠陥値データに記述されている時系列の順に、前記変数の初期値及び更新値を用いて前記プログラムを実行し、
     前記コンピュータが、前記プログラムの実行中に前記プログラムがリセットされた回数を計数し、計数したリセットの回数に基づき、前記プログラムを検証することを特徴とするプログラム検証方法。
  15.  値が更新される変数が記述されているプログラムを解析し、前記変数の初期値及び更新値が時系列に記述され、前記変数の初期値及び更新値の少なくともいずれかが前記プログラムの実行に支障をきたす欠陥値である欠陥値データを生成するデータ生成処理と、
     前記欠陥値データに記述されている時系列の順に、前記変数の初期値及び更新値を用いて前記プログラムを実行するプログラム実行処理と、
     前記プログラム実行処理による前記プログラムの実行中に前記プログラムがリセットされた回数を計数するリセット計数処理と、
     前記リセット計数処理により計数されたリセットの回数に基づき、前記プログラムを検証する検証処理とをコンピュータに実行させることを特徴とするプログラム。
PCT/JP2013/075463 2013-09-20 2013-09-20 プログラム検証装置及びプログラム検証方法及びプログラム WO2015040736A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015537521A JP5992107B2 (ja) 2013-09-20 2013-09-20 プログラム検証装置及びプログラム検証方法及びプログラム
PCT/JP2013/075463 WO2015040736A1 (ja) 2013-09-20 2013-09-20 プログラム検証装置及びプログラム検証方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075463 WO2015040736A1 (ja) 2013-09-20 2013-09-20 プログラム検証装置及びプログラム検証方法及びプログラム

Publications (1)

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

Family

ID=52688418

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/075463 WO2015040736A1 (ja) 2013-09-20 2013-09-20 プログラム検証装置及びプログラム検証方法及びプログラム

Country Status (2)

Country Link
JP (1) JP5992107B2 (ja)
WO (1) WO2015040736A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017173483A (ja) * 2016-03-23 2017-09-28 株式会社Subaru 訓練用データ生成装置、訓練用データ生成方法及び訓練用データ生成プログラム
CN111176262A (zh) * 2020-01-20 2020-05-19 东风小康汽车有限公司重庆分公司 一种车辆故障的检测方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210275A (ja) * 2007-02-27 2008-09-11 Mitsubishi Electric Corp 試験仕様生成装置及び試験システム及び試験仕様生成方法及びプログラム
JP2011221772A (ja) * 2010-04-08 2011-11-04 Baybig Co Ltd デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210275A (ja) * 2007-02-27 2008-09-11 Mitsubishi Electric Corp 試験仕様生成装置及び試験システム及び試験仕様生成方法及びプログラム
JP2011221772A (ja) * 2010-04-08 2011-11-04 Baybig Co Ltd デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017173483A (ja) * 2016-03-23 2017-09-28 株式会社Subaru 訓練用データ生成装置、訓練用データ生成方法及び訓練用データ生成プログラム
CN111176262A (zh) * 2020-01-20 2020-05-19 东风小康汽车有限公司重庆分公司 一种车辆故障的检测方法和系统

Also Published As

Publication number Publication date
JP5992107B2 (ja) 2016-09-14
JPWO2015040736A1 (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
Boulé et al. Adding debug enhancements to assertion checkers for hardware emulation and silicon debug
US9075911B2 (en) System and method for usage pattern analysis and simulation
US9519495B2 (en) Timed API rules for runtime verification
US10997344B2 (en) ECU simulation device
Peleska et al. Model-based testing for avionic systems proven benefits and further challenges
CN106980576B (zh) 一种基于运行时验证技术的嵌入式系统软件调试系统
US10592623B2 (en) Assertion statement check and debug
Sinha et al. Survey of combined hardware–software reliability prediction approaches from architectural and system failure viewpoint
JP5992107B2 (ja) プログラム検証装置及びプログラム検証方法及びプログラム
JP5680514B2 (ja) 自己診断機能を備えたコンピュータ、ソフトウェア作成方法、およびソフトウェア作成装置
Li et al. Formalizing hardware/software interface specifications
Pop et al. Methods and tools for reducing certification costs of mixed-criticality applications on multi-core platforms: the RECOMP approach
Björkman et al. Verification of safety logic designs by model checking
JP5951130B2 (ja) プログラム検証装置及びプログラム検証方法及びプログラム
US7155378B2 (en) Method for providing cycle-by-cycle ad HOC verification in a hardware-accelerated environment
JP5625942B2 (ja) 設計検証プログラム,設計検証装置,設計検証方法
Kolan et al. Post-Silicon Validation of the IBM POWER8 Processor
WO2017013783A1 (ja) 論理回路の検証方法
Streitferdt et al. Component-wise software certification for safety-critical embedded devices
Mitra et al. Proof of Concept on Application of Formal Methods at different phases of development cycle of Avionics Software A Landscaping
Ozmen et al. Simulation-based testing for instrumentation and control systems
Schmerl et al. Architecture-based Simulation for Security and Performance
Chakravarthi SOC Design Verification
Philip et al. Safety Validation of an Embedded Real-Time System at Hardware-Software Integration Test Environment
Benso et al. Automating the IEEE std. 1500 compliance verification for embedded cores

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: 13893880

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015537521

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13893880

Country of ref document: EP

Kind code of ref document: A1