When Abstraction Fails
Andreas Zeller

Software Engineering Chair (Prof. Zeller)
Saarland University – Computer Science
Campus E1 1
66123 Saarbrücken, Germany
E-mail: zeller @ cs.uni-saarland.de
Phone: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en français English home page
   Andreas Zeller. When Abstraction Fails. Saarland University, January 2005. Invited paper, Proc. 14th International Conference on Compiler Construction (CC 2005), Edinburgh, Scotland, April 2005. Lecture Notes in Computer Science, © Springer-Verlag.
In a world where software systems become more and more complex, we must be prepared for surprises. And a surprise is exactly what happens when the given abstraction fails, or where there simply is no abstraction that could tell what's right and what's wrong. (Conclusion)

Get the paper in PDF format (8 pages, 176k).

Abstract

Reasoning about programs is mostly deduction: the reasoning from the abstract model to the concrete run. Deduction is useful because it allows us to predict properties of future runs—up to the point that a program will never fail its specification. However, even such a 100% correct program may still show a problem: the specification itself may be problematic, or deduction required us to abstract away some relevant property. To handle such problems, deduction is not the right answer—especially in a world where programs reach a complexity that makes them indistinguishable from natural phenomena. Instead, we should enrich our portfolio by methods proven in natural sciences, such as observation, induction, and in particular experimentation. In my talk, I will show how systematic experimentation automatically reveals the causes of program failures—in the input, in the program state, or in the program code.

Contents

  1. Introduction
  2. Errors are easy to detect, but generally impossible to locate
  3. Causes need not be errors, but can easily be located
  4. Isolating failure causes with automatic experiments
  5. Locating the statements that cause the failure---automatically
  6. Conclusion: Prevent errors and prepare for surprises

Download

See Also...

<webmaster@st.cs.uni-saarland.de> · http://www.st.cs.uni-saarland.de/papers/cc2005/ · Updated: 2010-01-28 15:24