|
Software Verification
"During the past decade I was surprised to learn that the
writing of programs for TeX and Metafont proved to be much more difficult
than all the other things I had done (like proving theorems or writing
books). The creation of good software demands a significantly higher
standard of accuracy than those other things do, and it requires a longer
attention span than other intellectual tasks. "
-Donald Knuth, Winner of the Turing Award and the National Medal of
Technology.
Inventor of TeX, and author of The Art of Computer Programming
"The standard of correctness and completeness necessary to get a computer
program to work at all is a couple of orders of magnitude higher than the
mathematical communities standard of valid proofs. Nevertheless, large
computer programs, even when they have been very carefully written and very
carefully tested, always seem to have bugs."
- William P. Thurston, "On Proof and Progress in Mathematics,"
Bulletin of the American Math. Society
"... software verification, this has been the Holy Grail of computer science
for many decades but now in some very key areas, for example, driver
verification we're building tools that can do actual proof about the
software and how it works in order to guarantee the reliability."
-Bill Gates Keynote address at WinHec 2002, talking about the
SLAM
project
Many aspects of our lives depend critically on software systems. As a
result, research on tools, algorithms and methodologies for verifying the
correctness of or finding bugs in software has become a hot area from a
practical as well as theoretical standpoint. Software verification is the
application of mathematical and logic-based techniques to real-life
programs. Research in this area builds as much on analytical and
mathematical skills as it does on disciplined programming and algorithmic
skills.
Our current focus in this area is refinement
verification of concurrent systems, particularly by runtime checking. We are
applying our techniques on the
Boxwood project, whose goal is to explore the utility of data structures
and abstractions as storage infrastructure. |
This project is a collaborative effort with the
Boxwood project group at
Microsoft Research, Silicon Valley and the
Software
Productivity Tools group at
Microsoft Research,
Redmond, Washington.
Here is a link to
Tayfun Elmas's software verification page for further information about
techniques and recent research.
Recent work:
Serdar Tasiran,
Shaz Qadeer
Runtime Refinement Checking of Concurrent Data Structures (Presentation
slides)
In Proc. RV'04 - Fourth Workshop on Runtime Verification, April 3,
2004, Barcelona, Spain
The European Joint Conferences on Theory and Practice of Software (ETAPS
'04)
Return to the
Center for Advanced Design Technologies page |