Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 35
Текст из файла (страница 35)
Состояния и события могут детализироваться по мере разработки модели, Вложенные события имеют общие переходы с композитньтми состояниями, к которым они относятся. Сигналы могут быть упорядочены в иерархии наследования. Сигналы-потомки переключают те же переходы, что и сигналы-предки. Библиографические замечания 155 Неотъемлемым свойством объектов является параллелизм. Каждый объект обладает своим собственным состоянием. На диаграммах состояний параллелизм изображается как агрегация параллельных состояний, каждое из которых выполняется независимо от других. Параллельные объекты взаимодействуют, обмениваясь событиями и проверяя состояние других объектов, в том числе и состояний. Помимо простых переходов существуют также разделения и слияния потока управления.
Деятельность при выходе и при входе относится ко всем входящим и исходящим переходам. Их использование позволяет применять замкнутые диаграммы состояний в различных контекстах. Внутренняя деятельность соответствует переходам, не выходящим из состояния. Подкласс наследует диаграммы состояний от своих предков и может определять свои собственные диаграммы. Унаследованная диаграмма состояний может быть уточнена разбиением состояний на вложенные состояния или параллельные поддиаграммы. Реалистичная модель программируемого термостата занимает три страницы и демонстрирует тонкости поведения, не показанные в руководстве по эксплуатации и не проявляющиеся в каждодневной работе.
Таблица б.1. Ключевые понятия главы составное состояние вложенные диаграммы состояний модель состояний область обобщение сигналов параллелизм управление синхронизация вложенный конечный автомат вложенное состояние агрегация состояний Библиографические замечания В этой главе мы в значительной мере следуем трудам Дэвида Хэрела (РаеЫ Наге!), который формализовал свои концепции в системе обозначений, названной им диаграммой состояний (згасе сЬагг) [Наге!-87~. Подход Хэрела на сегодняшний день является наиболее успешной попыткой структурировать конечные диаграммы состояний и избежать комбинаторного взрыва, который всегда создавал проблемы для разработчиков.
Хэрел описывает систему обозначений для диаграмм состояний, основанную на контурах, как частный случай обшей системы обозначений для диаграмм, которую он называет Ь18гарЬ 1Наге1-88]. В первом издании этой книги рассматривалась концепция обобщения состояний, однако в соответствии с 13М1.2 мы выкинули ее из второго издания.
Метамодель |3МЕ2 позволяет применять обобщения только к классификаторам, а состояние таковым не является. Обобщение классов имеет много общего с вложением состояний, но строго говоря обобщения состояний как такового в (ЗМ1.2 нет. В 13М1.2 имеется много тонкостей, касающихся моделирования состояний. Более подробно вы можете прочитать об этом в книге 1рхцшЪац8Ь-05~. Благодарим Майкла Берндтссона за предложенное им упражнение 6.12. 156 Глава б ° Углубленное моделирование состояний Ссылки [Сор[!еп-92] [авез О.
Сор!)еп. АсЬ апсес1 С++: Ргойгавпппй 5гу!ез апс[ 1йовз. Воз!оп: АсЫ!зоп-Жез!еу, 1992. [Наге!-87] Е)ач!с[ Наге!. 5сасесЬагсз; а ч[зпа1 Еогва!!зв Еог совр!ех зузсевз. 8с!епсе оЕ Соврпгег Ргойгавпппй 8 (1987), 231 — 274. [Наге!-88] Е)ач!с[ Наге!. Оп чсапа! Еогва![звз. Соппппвсасюпз оЕ АСМ 31, 5 (Мау 1988), 514 — 530. [КпвЬапйЬ-05] ]авез КпвЬапйЬ, 1чаг ]асоЬзоп, Стас[у ВоосЬ. ТЬе ()и!Е!ес[ Мск1е!в8 1.апйпайе Ве[егепсе Манна!, 5есопс[ Ей!!оп.
Возсов Ас[с[!зоп-'чч'ез1еу, 2005. Упражнения 6.1. (3) Управление направлением движения первых игрушечньсх электропоездов осуществлялось отключением питания поезда. Нарисуйте диаграммы состояний для прожектора и колес поезда в соответствии с перечисленными ниже последовательностями событий. и Питание выключено, поезд не движется. о Питание включается, поезд едет вперед, прожектор светится. о Питание выключается, поезд останавливается, прожектор гаснет. о Питание включается, прожектор загорается, поезд не едет. о Питание выключается, прожектор гаснет.
о Питание включается, поезд едет назад, прожектор светится. и Питание выключается, поезд останавливается, прожектор гаснет. о Питание включается, прожектор загорается, поезд не едет. о Питание выключается, прожектор гаснет. о Питание выключается, поезд едет вперед, прожектор светится. 6.2. (6) Измените диаграмму состояний из упражнения 5.2, добавив ускоренную установку времени длительным нажатием кнопки В. Если кнопка В нажимается и держится нажатой в течение 5 секунд в режиме установки времени, часы или минуты (в зависимости от подрежима) увеличиваются на единицу каждые полсекунды.
(Замечание преподавателю: вы можете предоставить студентам наш ответ к упражнению 5.2 в качестве отправной точки для этого упражнения.) 6.4. (5) Переделайте диаграмму состояний из упражнения 5.6 с учетом схожести стартового и рабочего режимов. При исчезновении сигнала ОАЕ из любого из этих состояний происходит переход в выключенное состояние. (Замечание преподавателю: вы можете предоставить студентам наш ответ к упражнению 5.6 в качестве отправной точки для этого упражнения.) 6.5.
(6) Трехфазный индукционный двигатель может вращаться либо по часовой стрелке, либо против часовой стрелки, в зависимости от подключения Упражнения 157 фаз. Если для устройства требуется, чтобы двигатель мог вращаться в обе стороны, его можно подключить через два реле (свое реле для каждого направления). Мощные двигатели часто подключаются через трансформаторы, уменьшающие влияние двигателя на сеть питания.
Трансформатор отключается от цепи через некоторое время после того, как двигатель разгонится до нужной скорости. Для этой цели используется третье — обходное — реле. Имеется три мгновенных управляющих входа: «вперед»„ «назад» и «выключить». Когда двигатель выключен, сигнал «вперед» или «назад» запускает двигатель в нужном направлении. Если двигатель уже' вращается в направлении «вперед»,сигнал «назад» игнорируется (и наоборот).
Сигнал «выключить» отключает двигатель независимо от его состояния. На рис. 6.1 приведена диаграмма состояний возможной реализации системы управления двигателем. Разбейте одну диаграмму состояний на две параллельные диаграммы, одна из которых будет управлять направлением двигателя, а другая — его запуском. 6.5. (3) Система управления из предыдущего упражнения не предусматривает защиты от перегрева. Измените диаграмму состояний с рис. У6.1 таким образом, чтобы в случае перегрева двигатель отключался. Измените параллельные диаграммы состояний, полученные в упражнении 6.4 так, чтобы в случае перегрева двигатель отключался.
1пбосз!опыозогсопгго! о/Г лгяоез! /олчал/ гв вез! оя'геяозз! Эпеои! Попо!п9 гогчгагб бо / еле!9!зв и/пп!п9 соп1ас1ог, епещ!ге !олчагб сопгасгог 81агбп9 гогчгагб епеу / з1аб бгпвг бо / епещпе 1олчагб соп1ас1ог 81агбп9 гечегзе впеу / згагг Вгпег бо / епещ!зе гечвгзе соп1ас1ог !/пмои! мопп!п9 гечегзе бо / епещ!зв гопп!п9 соп1зс10Г. епещ!зе гечегзе соп1асгог гвчвгзв гесввз! о// гвяовз! О//геяоез! Рис. У6.1. Диаграмма состояний системы управления индукционного двигателя 6.6. (2) Создайте иерархию обобщений для следующих сигналов: выбор, ввод символа, выбор линии, выбор окружности, выбор прямоугольника, выбор текста, входной сигнал. 158 Глава б ° Углубленное моделирование состояний 6.7. (7) Газовая система отопления с принудительным нагнетанием горячего воздуха поддерживает температуру и влажность в комнатах в зимних условиях.
Система снабжена распределенным интерфейсом. Условия в разных комнатах могут контролироваться независимо друг от друга. Тепло от нагревателя распределяется по комнатам в соответствии с текущим и заданным значениями температуры для каждой комнаты. Если по крайней мере одна комната нуждается в подаче теплого воздуха, нагреватель включается. Когда температура горелки поднимается достаточно высоко, включается вентилятор, который подает горячий воздух через воздуховоды. Когда температура нагревателя превышает верхнее ограничение, нагреватель отключается, а вентилятор продолжает работать. Заглушки в комнатах позволяют системе доставлять тепло только в те комнаты, где оно действительно нужно, в объеме, пропорциональном разности температур.
Когда обогрев перестает требоваться, горелка отключается, но вентилятор продолжает работать до тех пор, пока она не остынет. Влажность также поддерживается исходя из заданной влажности, текущего значения и температуры наружного воздуха. Влажность устанавливается пользователем для всего дома сразу. Измерения влажности проводятся на холодном воздухе, который возвращается к вентилятору. Когда система определяет, что влажность упала слишком низко, включается увлажннтель, встроенный в горелку. Увлажнитель, распыляюший воду в поток нагретого воздуха, включается только вместе с горелкой. Разбейте модель состояний системы на несколько параллельных диаграмм состояний. Опишите функционирование каждой из них, не вдаваясь в подробности, касающиеся состояний илн деятельности.
6.8. На рис. У6.2 изображена часть диаграммы состояний видеомагнитофона. Видеомагнитофон снабжен несколькими кнопками: зе1есг (выбор), оп/о// (вкл/выкл), зеГ (установка) — для установки часов и таймеров автоматического запуска и остановки, аиго (авто) — включает автоматическую запись, псг (обход видео), г(тег( (запись сегмента, кратного 15 мин). Часть событий на рис. У6.2 соответствуют нажатиям соответствующих клавиш.