Дизайн по контракту


Проектирование по контракту ( DbC ), также известное как контрактное программирование , программирование по контракту и программирование по контракту , представляет собой подход к проектированию программного обеспечения .

Он предписывает разработчикам программного обеспечения определять формальные , точные и проверяемые спецификации интерфейса для компонентов программного обеспечения , которые расширяют обычное определение абстрактных типов данных с предусловиями , постусловиями и инвариантами . Эти спецификации называются «контрактами» в соответствии с концептуальной метафорой условий и обязательств деловых контрактов.

Подход DbC предполагает , что все клиентские компоненты , которые вызывают операцию на серверном компоненте , будут соответствовать предварительным условиям, указанным в соответствии с требованиями для этой операции.

Там, где это предположение считается слишком рискованным (например, в многоканальных или распределенных вычислениях ), используется обратный подход , означающий, что серверный компонент проверяет, выполняются ли все соответствующие предварительные условия (до или во время обработки запроса клиентского компонента ). и отвечает подходящим сообщением об ошибке, если нет.

Этот термин был придуман Бертраном Мейером в связи с его разработкой языка программирования Eiffel и впервые описан в различных статьях, начиная с 1986 г. Ориентированное конструирование программного обеспечения . Компания Eiffel Software подала заявку на регистрацию товарного знака Design by Contract в декабре 2003 г., и она была предоставлена ​​в декабре 2004 г. [4] [5] В настоящее время владельцем этого товарного знака является Eiffel Software. [6] [7]

Проектирование по контракту уходит своими корнями в работу над формальной верификацией , формальной спецификацией и логикой Хоара . Первоначальные взносы включают:


Схема проектирования по контракту