Design for verification for concurrent and distributed programs

  • Authors:
  • Aysu Betin-Can;Tevfik Bultan

  • Affiliations:
  • University of California, Santa Barbara;University of California, Santa Barbara

  • Venue:
  • Design for verification for concurrent and distributed programs
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this dissertation we present a design for verification (DFV) approach that embeds intentions of developers into software and makes software systems amenable to automated verification; hence, making the automated verification techniques scalable to large systems. In this DFV approach, we use (1) behavioral interfaces that isolate the behavior and enable modular verification, (2) an assume-guarantee style verification strategy that separates verification of the behavior from the verification of the conformance to the interface specifications, (3) a general model checking technique for interface verification, and (4) domain specific and specialized verification techniques for behavior verification. We realize our DFV approach for concurrent programming by introducing the concurrency controller pattern. We aim to eliminate synchronization errors in concurrent Java programs. We use the Action Language Verifier to verify the concurrency controller behaviors by an automated translation from their Java implementations. We have applied this framework to two software systems: a concurrent text editor and a safety critical air traffic control software called TSAFE. To demonstrate the applicability of our DFV approach to another application domain, we introduce the peer controller pattern for asynchronously communicating web services. Our goal is both to analyze properties of interactions among the participating peers and to validate the conformance of peer implementations to their behavioral specifications. We use the SPIN model checker to verify the interaction properties. We adapt synchronizability analysis to enable behavior verification with respect to unbounded asynchronous communication queues. We extend this approach with an hierarchical interface model for compact representation of peer interfaces. We use the Java PathFinder for interface verification in both application domains. We present techniques for thread isolation which improve the efficiency of interface verification.