Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все лекции по системам реального времени.pdf
Скачиваний:
260
Добавлен:
02.05.2014
Размер:
8.11 Mб
Скачать

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

228

Масла должен предоставить сам. Для нее требуется указать расстоя- ние, после которого масло надо менять (скажем, каждые 5 000км), и сообщение, выводимое, когда пробег с момента последней замены превысил заданный порог. Нужно также задать операцию вывести- СообщениеО ЗаменеМасла, которая вызывается для объекта Интер- фейс Индикатора ТО. Помимо этого, операция проверить вызывает

операцию читать объекта Путь для получения текущего полного Пробега. Она вычитает из него значение начального Пробега, чтобы выяснить, не прошла ли машина 5 000 км и не пора ли, следова- тельно, менять масло.

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

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

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

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

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

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

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

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

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

лить:

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

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

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

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

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

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

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

229

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

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

9.13.1. Пример спецификации интерфейса класса. Для иллюст-

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

(рис.9.12).

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

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

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

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

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

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

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

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

1. читатьДатчик (in идДатчика, out значениеДатчика) Функция. Возвращает текущее значение указанного датчика.

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

230

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

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

2. обновитьПривод (in идПривода, in значениеПривода) Функция. Обновляет значение указанного привода перед выво-

дом.

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

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

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

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

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

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

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

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

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

Функция. Читает новое значение привода для вывода во внеш- нюю среду.

Предусловие. Значение привода ранее было обновлено. Инвариант. Значение привода не изменяется. Постусловие. Прочитано значение привода.

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

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

www.pdffactory.com