Rigorous software engineering using design by contract: tutorial presentation
Michael Kart · Journal of computing sciences in colleges · 2011
An important aspect of any software system is correctness, that is, whether the system does what it is supposed to do. Despite this importance, it is frequently the case that either the software specification or code is flawed. In this session, we discuss a theory, known as Design by Contract, which can be used to improve this situation. This theory uses the business contract as metaphor for how software components interact with each other based on their mutual obligations and benefits. We introduce the fundamentals of this approach, explore how to integrate Design by Contract into the undergraduate computer science curriculum, and explain its distinct pedagogical and software engineering advantages.