1 / 1

2007 Science of Design (SoD) PI Meeting – Project Nuggets

2007 Science of Design (SoD) PI Meeting – Project Nuggets. Interface Grammars for Modular Verification. Project Description and Outcomes:

kassia
Download Presentation

2007 Science of Design (SoD) PI Meeting – Project Nuggets

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2007 Science of Design (SoD) PI Meeting – Project Nuggets Interface Grammars for Modular Verification Project Description and Outcomes: Goal(s) of the project: Developing dependable software is one of the most important challenges in computer science and a scientific approach to design has to address this problem. There has been significant progress in automated verification techniques in recent years, however, scalable software verification remains out of reach. A design for verification approach, which enables software developers to document the design decisions that can be useful during verification, can improve scalability and applicability of automated verification techniques significantly. The goal in this project is to develop behavioral interface specification mechanisms that support abstraction and modularity in order to achieve scalable verification. This Work is notable because (potential contributions to the Science of Design): Abstraction and modularity provide the key to both successful designs and also to scalable verification techniques. The question is: How can modularity and abstraction at the design level be better integrated with the verification techniques which depend on these principles? This project will explore the ways to achieve this integration. There are two aspects of design for verification. The first one is to enable the software designers to structure the software systems in ways that make them easier to verify. This requires identifying the design principles for developing verifiable systems. The second aspect of design for verification is to elicit extra information from the software designers that would be helpful during automated verification. This requires identification of mechanisms for passing this design level information to the verification phase. Progress so far: We developed an interface specification language based on grammars for modular software model checking.  In our interface specification language, component interfaces are specified as context free grammars.  An interface grammar for a component specifies the sequences of method invocations that are allowed by that component.  Using interface grammars one can specify nested call sequences that cannot be specified using finite state machines.  We built an interface compiler which takes the interface grammar for a component as input and generates a stub which is a table-driven top-down parser that checks for interface violations in incoming method calls.  We conducted a case study by writing an interface grammar for the Enterprise JavaBeans (EJB) persistence interface.  We used the JPF model checker to check EJB clients using an automatically generated EJB stub.  Our results show that EJB clients can be verified efficiently using this approach.

More Related