Design by Contract
E347705
Design by Contract is a software development methodology that treats software components as parties to a formal agreement, specifying precise obligations, benefits, and invariants to improve correctness and reliability.
All labels observed (3)
| Label | Occurrences |
|---|---|
| Design by Contract canonical | 12 |
| C# code contracts | 1 |
| DbC | 1 |
Statements (50)
| Predicate | Object |
|---|---|
| instanceOf |
formal specification approach
ⓘ
software correctness technique ⓘ software development methodology ⓘ |
| aimsTo |
improve software correctness
ⓘ
improve software reliability ⓘ reduce software defects ⓘ |
| alsoKnownAs |
Design by Contract
ⓘ
surface form:
DbC
contract programming ⓘ programming by contract ⓘ |
| appliesTo |
classes
ⓘ
interfaces ⓘ methods ⓘ software components ⓘ |
| associatedWithLanguage | Eiffel ⓘ |
| basedOnConcept | formal agreement between software components ⓘ |
| canBe |
checked at runtime
ⓘ
used for static analysis ⓘ |
| defines |
benefits of software components
ⓘ
invariants of software components ⓘ obligations of software components ⓘ |
| emphasizes |
clear responsibilities of components
ⓘ
documented assumptions ⓘ documented guarantees ⓘ precise specification of behavior ⓘ |
| helpsWith |
clearer interface specifications
ⓘ
early detection of bugs ⓘ improved documentation of code behavior ⓘ |
| influenced |
.NET Code Contracts
ⓘ
Java Modeling Language ⓘ Spec# ⓘ design-by-contract libraries in multiple languages ⓘ |
| inspiredBy | legal contracts ⓘ |
| introducedBy | Bertrand Meyer ⓘ |
| originatedInContext | object-oriented programming ⓘ |
| relatedTo |
Hoare logic
ⓘ
assertion-based programming ⓘ formal methods ⓘ software specification ⓘ |
| requires |
explicit specification of invariants
ⓘ
explicit specification of postconditions ⓘ explicit specification of preconditions ⓘ |
| supports |
defensive programming
ⓘ
formal verification ⓘ modular reasoning ⓘ test case generation ⓘ |
| usesConcept |
assertions
ⓘ
class invariants ⓘ postconditions ⓘ preconditions ⓘ runtime checking ⓘ |
Referenced by (14)
Full triples — surface form annotated when it differs from this entity's canonical label.
subject surface form:
Eiffel (programming language)
subject surface form:
Eiffel (programming language)
this entity surface form:
C# code contracts
this entity surface form:
DbC
subject surface form:
Object-Oriented Software Construction
Touch of Class: Learning to Program Well with Objects and Contracts
→
mainSubject
→
Design by Contract
ⓘ
Touch of Class: Learning to Program Well with Objects and Contracts
→
usesMethodology
→
Design by Contract
ⓘ