The Power of Design by Contract™
Plagued by bugs, crashes and so-so quality?
“Software always had bugs and always will”. Tired of this defeatist attitude? With Design by Contract, invented by Eiffel Software and one of the most widely recognized breakthroughs in the history of software engineering, you can write complex software and not wake up at night fearing that something, somewhere will go wrong. Design by Contract brings science to the construction of correct and robust software.
The engine for successful software
Design by Contract is based on a powerful metaphor of how elements of a software system interact with each other, the same way businesses collaborate: on the basis of mutual obligations and benefits. The “client” and the “supplier” agree on a “contract” that:
- The supplier must provide a certain result (obligation) and is entitled to expect that the client has satisfied the requisite conditions (benefit).
- The client must satisfy these conditions (obligation) and is entitled to get the result (benefit).
- Both parties must satisfy certain general laws and regulations, applying to all contracts.
Design by Contract turns these elements into integral components of the software text: preconditions (client obligations, supplier benefits); postconditions (client benefits, supplier obligations); and invariants (general rules). These concepts exist at all levels: requirements, design, implementation, testing.
Scientific software construction for everyone
Applying it is a simple and straightforward process that hundreds of thousands of programmers from all walks of IT have applied for the greater benefit of their projects. Design by Contract revolutionizes software construction by weeding out bugs before they get the opportunity to harm the software. Design by Contract gives you:
- automatic, high-quality documentation.
- built-in framework for focused and effective testing.
- the ability to communicate your design without having to describe the details of the implementation.
- a clear, simple guide throughout the entire software development process.
- (for managers) a direct handle on the state of their projects.
Widely praised and imitated, Design by Contract only works if closely integrated in the method, language and tool. Only in Eiffel does this integration exist. Design by Contract is not an artificial addition but pervades the entire approach, language constructs and EiffelStudio IDE.
Is Design by Contract for me?
“It simply changed my life as a developer”. That’s what countless people tell us. Will you too? Find out the facts by consulting the following resources:
- Introduction to Design by Contract or the Design by Contract section in the Eiffel Documentation.
- Design by Contract™ presentation series.
- The classic: Object-Oriented Software Construction, 2nd Edition by Bertrand Meyer, the reference on object technology and modern software engineering practice often referred to as “the O-O Bible.”
- The textbook: Touch of Class: Learning to Program Well with Objects and Contracts, by Bertrand Meyer, that makes learning programming fun and rewarding.
- Downloading EiffelStudio.