Главная->Інформатика та програмування->Содержание->Диаграмма состояний для программы ELEV

Р. ЛАФОРЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть13) онлайн

Диаграмма состояний для программы ELEV

В главе 10 «Указатели» мы представляли диаграмму состояний UML. Давайте теперь взглянем на диаграмму состояний для нашей программы моделирования лифтов. Для того чтобы немного упростить задачу, будем считать, что в здании находится только один человек и имеется только один лифт. Таким образом, в один момент времени может быть только один запрос этажа и один этаж назна- чения. Лифту не нужно следить за другими. Диаграмма состояний представлена на рис. 13.6.

Обозначения в диаграмме таковы: «cd» — этаж назначения, то есть кнопка, нажатая внутри лифта (грубо говоря, это соответствует массиву destination из нашей программы); «fr» — запрос с этажа, кнопка, нажатая снаружи лифта, гру- бо говоря, значение переменной floor_req.

Состояния лифта определяются по значениям переменной current_dir и со- стояниям loading_timer и unloading_timer. Поскольку все состояния переходят друг в друга с помощью слова «вдруг» (то есть по сигналам таймера), на диа- грамме показаны только контрольные состояния. Отображаются представления лифта о запросах с этажей и этажей назначения.

Рис. 13.6. Диаграмма состояний объекта elevator

 

 

23