DBC Design By Contract Jackson Oliveira Software Architect @cyber_jso
DBCDesign By Contract
Jackson OliveiraSoftware Architect@cyber_jso
Jackson OliveiraSoftware Architect@cyber_jso
Jackson OliveiraSoftware Architect@cyber_jso
So DBC -> Design by Contract
● Define formal, precise, and verifiable interfaces
● Specifications for software components● Connection with automatic software
documentation
Bads
● Some pre and post conditions may be complicated to express
● Tracking Invariants -> Tracking Side effects
Gods
● Enforces requirements analysis accuracy● God for internal APIs/Impl.● Contract rules compliance!
I stay with the principles
● Expressiveness● Explicit constraints● Contract driven● Decouple contracts from its
implementations● TDD and DBC aren’t mutually exclusive