Имя: Timer
Ответственность: Осуществление прерываний и диспетчеризация функций обратного вызова.
Операции: setCallback() - установка функции обратного вызова
Сценарии
Определив в рамках нашей системы основные абстракции, продолжим анализ задачи и рассмотрим некоторые сценарии работы системы. Начнем с составления списка ситуаций. С точки зрения пользователя список будет выглядеть примерно следующим образом:
Мониторинг первичных измеряемых параметров: скорости и направления ветра, температуры, барометрического давления и влажности.
Мониторинг производных параметров: коэффициента жесткости погоды, точки образования росы, трендов температуры и барометрического давления.
Показ максимальных и минимальных значений выбранных параметров.
Установка времени и даты.
Калибровка выбранных датчиков.
Включение системы.
Добавим еще две дополнительные ситуации:
Отказ питания.
Отказ датчика.
Исследуем вышеприведенные сценарии для того, чтобы понять поведение (именно поведение, а не внутреннюю структуру) системы.
Главной задачей системы является мониторинг основных измеряемых параметров. Одним из ограничений является невозможность обрабатывать информацию с частотой, превышающей 60 измерений в секунду. К счастью, наиболее интересные для нас погодные параметры меняются с гораздо меньшей скоростью. Дополнительный анализ показывает, что для своевременной регистрации изменений различных погодных параметров достаточно обеспечить следующие частоты снятия информации:
каждые 0.1 секунды направление ветра
каждые 0.5 секунды скорость ветра
каждые 5 минут температура, барометрическое давление и влажность
Ранее мы приняли решение о том, что классы датчиков не должны отвечать за организацию периодических измерений. Эта работа лежит в сфере ответственности внешнего агента, взаимодействующего с датчиками. Отложим пока описание поведения данного агента (оно определяется в большей степени особенностями реализации системы и будет рассмотрено на этапе проектирования). Диаграмма взаимодействий, приведенная на рис. 8-7, иллюстрирует в некоторой степени сценарий его работы.