> Thanks for your reply! I will need more research to reflect on the examples you give.
Please note my sibling answer which shows I am opinionated.
I have memorized my own takes from such terms so researching about my answer may be time not used well.
Sorry.
Does indeed overlap.
I only read about contract-based programming; contract by design via API documentation in a java environment.
> and it seemed to me the main concern was program correctness/consistency
It is. There are multiple factors to deploying correct software though.
> Maybe I mix up different concerns and good interface design is more about satisfying use case?
Apparently your are on the right track. But I would strongly agree on the latter. Such formal correctness proves didn't cross my career yet. But I am assuming safety-critical systems or systems haed to update may benefit here the most.
Which would explain my lack of certainty.
I discovered the concept from books and documentations, for example:
- https://learn.adacore.com/courses/intro-to-ada/chapters/cont...
- https://www.eiffel.org/doc/solutions/Design_by_Contract_and_...
and it seemed to me the main concern was program correctness/consistency.
Maybe I mix up different concerns and good interface design is more about satisfying use case?