Table of Contents

Why Eiffel?


Specifications and Design by Contract (DbC)

The following two videos discuss the importance of Specifications (and thus DbC) for rigorous Engineering Design. Recall that licensed engineers must demonstrate2) that their products are safe and fit for use.3) See here for the role of specifications in industry for mission critical systems.

In the following two short introductory videos, our examples need to be very simple to grasp the underlying theory. We need to start with the simplest component before we start with the design and construction of more complex components. Although our examples must perforce be very simple for the purpose of illustration, Eiffel the language, the method and the tool – scale up to the design of very large industrial strength systems.


01 What is Design?

Video is about 25 minutes.

01-What-Is-Design.pdf. And why DbC?

.


02 Specification Mystery

Video is about 25 minutes.

This video is a very basic introduction to Design By Contract (DbC). We present some simple “mystery code” and then show how a Specification (via DbC) is essential to unravel the mystery.

02-Specification-Mystery.pdf.Slides.



Out of Service Software Errors encountered during the 2020-21 Coronavirus Pandemic

Even non-mission critical software might be improved with more rigorous techniques beyond testing.

1)
See the video Leslie Lamport: Thinking Above the Code for the importance of specifications. Leslie Lamport is the winner of the Turing Award in 2013. He writes: Engineers and Architects draw detailed blueprints before a brick is laid or a nail is hammered. Programmers and software engineers seldom do. A blueprint for software is called a specification. The need for extremely rigorous specifications before coding complex or critical systems should be obvious—especially for concurrent and distributed systems. This talk explains why some sort of specification should be written for any software.
2)
It is not possible to formally prove correctness in real products using real compilers on real hardware; what we are looking for is evidence beyond that of testing.
3)
Design by Contract was developed by Bertrand Meyer.