Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Часть 9.doc
Скачиваний:
35
Добавлен:
02.05.2014
Размер:
5.57 Mб
Скачать

9.13. Спецификация интерфейса класса

В спецификации интерфейса класса определяется интерфейс скрывающего информацию класса, в том числе его операции. Спецификация должна включать:

– описание информации, скрываемой классом, например инкапсулированную структуру данных (если речь идет о классе абстрагирования данных) или интерфейс устройства;

– критерий, на основании которого был выделен данный класс;

– предположения, сделанные при специфицировании класса: могут разные за­дачи получать одновременный доступ к операциям объекта этого класса или доступ должен быть строго последовательным;

– предположительные модификации, побуждающие проектировать с учетом возможных изменений;

– суперкласс (если есть);

– унаследованные операции (если есть);

– операции класса. Для каждой операции необходимо определить:

выполняемую функцию;

предусловие (условие, которое должно выполняться перед вызовом опе­рации);

постусловие (условие, которое должно выполняться после вызова опе­рации);

инвариант (условие, которое должно выполняться всегда);

входные параметры;

выходные параметры;

вызываемые операции других классов.

Спецификацию интерфейса класса можно представить в описательной или табличной форме. Ниже приводится пример описательной документации.

9.13.1. Пример спецификации интерфейса класса. Для иллюстрации возьмем класс, абстрагирующий данные о датчиках и при­водах (рис.9.12).

Рис.9.12. Пример класса, для которого составляется спецификация интерфейса

Скрывающий информацию класс. Хранилище Показаний Датчиков и При­водов.

Скрываемая информация. Инкапсулирует структуры данных, связанных с датчи­ками и приводами. Хранит текущие показатели датчиков и приводов.

Критерий выделения класса. Класс абстрагирования данных.

Предположения. Операции могут вызываться одновременно несколькими зада­чами.

Предположительные модификации. Сейчас поддерживает только булевские датчики и приводы. Возможно расширение для работы с аналоговыми устрой­ствами.

Суперкласс. Нет.

Унаследованные операции. Нет.

Предоставляемые операции:

1. читатьДатчик (in идДатчика, out значениеДатчика)

Функция. Возвращает текущее значение указанного датчика.

Предусловие. Значение датчика ранее было обновлено.

Инвариант. Значение датчика не изменяется.

Постусловие. Прочитано значение датчика.

Входные параметры. идДатчика.

Выходные параметры. значениеДатчика.

Вызываемые операции. Нет.

2. обновитьПривод (in идПривода, in значениеПривода)

Функция. Обновляет значение указанного привода перед выводом.

Предусловие. Привод существует.

Постусловие. Значение привода обновлено.

Входные параметры. идПривода, значениеПривода.

Выходные параметры. Нет.

Вызываемые операции. Нет.

3. обновитьДатчик(in идДатчика,in значение Датчика)

Функция. Заменяет значение указанного датчика новым показанием, про­читанным с внешнего устройства.

Предусловие. Датчик существует.

Постусловие. Значение датчика обновлено.

224

Соседние файлы в предмете Системы реального времени