Abstract

One of the major challenges in the formal verification of embedded system software is the complexity and substantially large size of the implementation. The problem becomes crucial when the embedded system is a complex medical device that is executing convoluted algorithms. In refinement-based verification, both specification and implementation are expressed as transition systems. Each behavior of the implementation transition system is matched to the specification transition system with the help of a refinement map. The refinement map can only project those values from the implementation which are responsible for labeling the current state of the system. When the refinement map is applied at the object code level, numerous instructions map to a single state in the specification transition system called stuttering instructions. We use the concept of Static Stuttering Abstraction (SSA) that filters the common multiple segments of stuttering instructions and replaces each segment with a merger. SSA algorithm reduces the implementation state space in embedded software, subsequently decreasing the efforts involved in manual verification with WEB refinement. The algorithm is formally proven for correctness. SSA is implemented on the pacemaker object code to evaluate the effectiveness of abstracted code in verification process. The results helped to establish the fact that, despite code size reduction, the bugs and errors can still be found. We implemented the SSA technique on two different platforms and it has been proven to be consistent in decreasing the code size significantly and hence the complexity of the implementation transition system. The results illustrate that there is considerable reduction in time and effort required for the verification of a complex software control, i.e., pacemaker when statically stuttering abstracted code is employed.

Highlights

  • Today, our lives are predominantly occupied by numerous real-time embedded systems

  • The implementation transition system MMI of pacemaker is obtained on an ARM Cortex-M3-based NXP LPC1768 microcontroller

  • Only the important safety-critical modules are nominated for object code verification because of the complexity involved. is practice may leave underlying loopholes that can lead to program failure in some cases and eventually lead to unwanted consequences

Read more

Summary

Introduction

Our lives are predominantly occupied by numerous real-time embedded systems. Such systems provide specific functionality and normally they are the element of a larger system [1]. e correctness of these systems depends on the logical functions as well as on the timely response. ey are used in automobiles, aircraft, implantable medical devices, cell phones, industrial robots, and many others. E abstraction technique is designed to reduce the time and effort involved in the verification process by minimizing the size of the object code. E required behavior of the system is defined in specification TS through states and transitions, while the software implementation at the object code level which is executed in the embedded system is represented by the implementation TS. (i) e induction-based correctness proof for the SSA algorithm (ii) Improving the efficiency of manual verification of complex medical software control based on WellFounded Equivalence Bisimulation (WEB) refinement (iii) Significant reduction in the state space of implementation object code for any platform (iv) e effectiveness of SSA algorithm for static verification of object code for nondeterministic systems where implementation can take different paths in real time (based on branches). If a pattern consists of 4 stuttering instructions and it occurs 50 times in the object code, the SSA will reduce 150 lines in the code, reducing the state space of MMI

Related Work
Automatic Static Stuttering Abstraction
X X X 11010
Case Study and Results
Verification of Pacemaker with SSA
Verification Effort Improvement
Conclusion and Future Work
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call