Developing a software protocol stack is a complex task with many parties and products involved over multiple years. There are many issues that have to be resolved in the process, and it is incredibly hard to get all of them correct for all platforms and all possible states of a system. Hence, there are numerous examples of serious errors that ended up in production, where the cost of fixing them is high. Software protocol stacks are widely used in many domains, and rigorous methods to improve their reliability would have a very broad impact.

The project develops a more rigorous approach to developing and maintaining such complex software protocol stacks.In particular, formal methods are used to find errors early through rigorous verification and testing, as well as to assist the analysis in locating reported errors. The approach is based on automatically learning abstract and succinct protocol models at different layers of the target software stack. Compositional reasoning is then applied to find errors effectively and precisely. The generated models are leveraged to help with error localization and diagnosis. The usability of the approach is assessed through a real-life case study on the Android Bluetooth software stack.

Project Start
Project End
Budget Start
2014-07-01
Budget End
2017-12-31
Support Year
Fiscal Year
2014
Total Cost
$268,996
Indirect Cost
Name
University of Utah
Department
Type
DUNS #
City
Salt Lake City
State
UT
Country
United States
Zip Code
84112