Временные диаграммы
После окончания средней школы и до того как начать свою компьютерную карьеру, я работал инженером-электронщиком. Поэтому я испытываю щемящее чувство узнавания, когда вижу, как язык UML определяет временные диаграммы в качестве своих стандартных диаграмм. Временные диаграммы существовали в электронной промышленности испокон веков, и никто не мог подумать, что потребуется помощь UML, чтобы понять их назначение. Но уж раз они появились в UML, то заслужили краткого упоминания.
Временные диаграммы - это еще одна форма диаграмм взаимодействия, которая акцентирована на временных ограничениях: либо для одиночного объекта, либо, что более полезно, для группы объектов. Давайте рассмотрим простой сценарий, основанный на использовании насоса (Pump) и нагревательного элемента (Hotplate) в кофеварке (coffee pot). Представим себе правило, которое гласит, что между включением насоса и включением нагревательного элемента должно пройти по крайней мере 10 секунд. Когда емкость с водой становится пустой (waterEmpty), насос выключается, а нагревательный элемент не может оставаться включенным более 15 минут.
На рис. 17.1 и 17.2 показаны альтернативные способы представления таких временных ограничений. Главное различие состоит в том, что на рис. 17.1 изменения состояния обозначаются переходом от одной горизонтальной линии к другой, а на рис. 17.2 горизонтальное расположение остается таким же, а изменения состояния обозначаются перекрещиванием горизонтальных линий. Стиль, представленный на рис. 17.1, следует предпочесть, когда состояний немного, а стиль, показанный на рис. 17.2, лучше подходит, когда имеешь дело с большим количеством состояний.
Пунктирные линии, при помощи которых я обозначил временные границы {>10s}, не обязательны. Если вы считаете, что они помогут точно определить, какие события вызывают временные ограничения, то нарисуйте их.