Права и обязательства

Права и обязательства

Связывая с программой r предложения require pre и ensure post, класс говорит своим клиентам:

"Если вы обещаете вызвать r в состоянии, удовлетворяющем pre, то я обещаю в заключительном состоянии выполнить post".

В отношениях между людьми и компаниями контракт - это письменный документ, фиксирующий отношения. Удивительно, что в программной индустрии, где точность так важна и двусмысленность так рискованна, эта идея так долго не появлялась. Любой хороший контракт устанавливает для обоих участников как обязательства, так и приобретаемую выгоду; обычно обязательства одного оборачиваются выгодой для другого участника, и это взаимно. Все это верно и для контрактов между классами.

[x]. Предусловие связывает клиента: определяются условия, при которых вызов программы клиентом легитимен. Обязательства клиента приносят пользу поставщику.

[x]. Постусловие связывает класс: программа обязана обеспечить условия по ее завершению. Здесь польза клиента оборачивается обязательствами поставщика класса.

Вот пример контракта для одной из программ нашего примера:

put Обязательства Преимущества
Клиент

(Выполнить предусловие:)

Вызывать put(x) только для непустого стека.

(Из постусловия:)

Получить обновленный стек: не пустой, x на вершине, (item дает x, count увеличилось на единицу).

Поставщик

(Выполнить постусловие:)

Обновить представление стека: иметь x на вершине (item возвращает x), count увеличить на единицу, стек не пуст.

(Из предусловия:)

Упрощающее обработку предположение о том, что стек не пуст.

Таблица 11.1.Контракт программы: программа put класса стек

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Обязательства

Из книги автора

Обязательства Обязательство – нечто такое, что вы обязаны сделать. Если вы обязуетесь сделать что-то к определенной дате, то к этой дате «что-то» должно быть готово. Если для этого вам придется работать по 12 часов в сутки и по выходным, пропускать семейные праздники – так


Подразумеваемые обязательства

Из книги автора

Подразумеваемые обязательства Майк сталкивается с проблемой. Он не уверен в том, сколько времени потребуется Питеру для выполнения работы. Чтобы свести к минимуму неопределенность, он может попробовать добиться от Питера обязательства. Питер не в состоянии что-либо


Обязательства

Из книги автора

Обязательства Как мы узнали в главе 10, важно избегать принятия обязательств на сроки, в соблюдении которых вы не уверены. Бизнес всегда будет стараться добиться от вас таких обязательств, потому что он хочет полностью исключить риск. А мы должны позаботиться о том, чтобы


Обязательства по выполнению

Из книги автора

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


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1 Проект следует документу организационной политики управления системными требованиями, отнесенными к ПО.В рамках этих практик системные требования, отнесенные к ПО, называются «установленными требованиями».Установленные


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления производственным субподрядом.Эта политика обычно состоит из следующих положений:1. При выборе субподрядчиков и управлении договорами по субподряду


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике по обеспечению качества ПО.Эта политика обычно состоит из следующих положений.1. Группа обеспечения качества контролирует работу по всем проектам разработки в


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Организация следует документированной политике координирования общекорпоративных мероприятий по разработке и усовершенствованию производственного процесса.Эта политика обычно состоит из следующих указаний:1. Создается


Обязательства по выполнению

Из книги автора

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


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Организация следует документированной политике предоставления необходимого обучения.Эта политика обычно состоит из следующих положений:1. Должны быть определены навыки и знания, необходимые для каждой руководящей или


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике, согласно которой планирование проекта и управление им должно проводиться с использованием СППО и связанных с ним основных средств.Практики, касающиеся СППО и


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике выполнения операций по разработке ПО.Эта политика обычно состоит из следующих положений:1. Операции разработки ПО выполняются в соответствии с производственным


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике по созданию междисциплинарных инженерных групп.Эта политика обычно состоит из следующих положений:1. Системные требования к проекту и цели проектного уровня


Обязательства по выполнению

Из книги автора

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