Escher Technologies Escher Technologies
Home Products Services Support News Company Contact Associates Publications
Escher Technologies
More:
arrowAbout Perfect Developer
arrowWhat others say about PD
arrowBug-free software
arrowSafety-critical software
arrowTeaching computer science
arrowA step-by-step guide
arrowYour development process
arrowVerified Design-by-Contract
arrowCorrect by Construction
arrowModel-Driven Development
arrowHow it works
arrowThe technology behind it
arrowPerfect Developer editions
arrowProduct details
arrowScreen shots
arrowWhy use Perfect Developer?
arrowFAQs
 

Correct by Construction

What is Correct-by-Construction software development?

Traditional approaches to software development rely on specifications written in English or another natural language, and hand-written program code. Sometimes a graphical notation such as UML is used to model the structure of the system and how it is used; but such models capture very little of the required behaviour, so that any code generated from them must be substantially reworked by hand. Either way, great reliance is placed on testing to uncover bugs in the software.

Correct-by-construction approaches treat software development as a true form of engineering. A civil engineer charged to build a bridge would construct an accurate computer model the proposed solution before laying the foundations. Similarly, a true software engineer constructs a mathematical model of his design before any code is produced. The model is used to reason about the proposed solution, ensuring that all required functionality will be delivered and the correct behavior exhibited. Testing is still performed, but its role is to validate the correct-by-construction process rather than to find bugs.

Perfect Developer is a unique model driven development tool that uses the verified design-by-contract paradigm for correct-by-construction software development.

 


TOPTOP
Copyright © 1997-2008 Escher Technologies Limited. All rights reserved. Information in this document is subject to change without notice.