- •Сочинский государственный университет курортного дела и туризма
- •Назначение диаграммы
- •Создание заготовок классов
- •Создание StateСhart-диаграммы
- •Инструменты диаграммы Statechart
- •State (состояние)
- •Start State (начало)
- •End State (завершение)
- •State Transition (состояние перехода)
- •Transition To Self (переход на себя)
- •Первые шаги в создании диаграммы
- •Состояние тестирования датчиков
- •Вывод диаграммы из цикла
- •Добавление замечания
- •Настройка среды
- •Скрытие вложенных состояний
- •States History (история состояний)
- •Примерные вопросы для самопроверки и защиты
- •Литература
Сочинский государственный университет курортного дела и туризма
Факультет экономики и процессов управления
Кафедра информационных технологий
Дисциплина: Программная инженерия
Учебно-методическое пособие
к практическим занятиям по теме №6
Создание модели поведения системы при помощи диаграммы состояний (State Diagram)
Сочи, 2015
Учебно-методическое пособие к практическим занятиям по дисциплине Программная иниженерия, тема №6 Создание модели поведения системы при помощи диаграммы состояний (State Diagram), автор-составитель к.т.н., доц. кафедры ИТ Мацканюк А.А.
Утверждено на заседании кафедры информационных технологий “___” _______ 2015 г. (протокол № ____ ).
Оглавление
Назначение диаграммы 3
Создание заготовок классов 3
Создание StateСhart-диаграммы 4
Инструменты диаграммы Statechart 6
Первые шаги в создании диаграммы 8
Состояние тестирования датчиков 9
Вывод диаграммы из цикла 12
Добавление замечания 13
Настройка среды 13
Скрытие вложенных состояний 15
States History (история состояний) 16
Примерные вопросы для самопроверки и защиты 17
Литература 17
Назначение диаграммы
Создание модели поведения объектов позволяет полностью описать все состояния системы и переходы в эти состояния во время работы, а также некоторые алгоритмы взаимодействия между объектами.
Единственный недостаток — это то, что пока содержание данной диаграммы никак не отражается на получаемом коде программы. И это может создать у программиста ошибочное мнение, что без модели поведения можно обойтись. Но это не так. Модель поведения позволяет взглянуть на получаемый программный объект со стороны, ведь основное назначение объектно-ориентированного программирования - создавать объекты, наделенные определенным поведением, которые в дальнейшем и будут производить работу в программном коде. А данный тип диаграмм позволяет четко представить все поведение полученного программного объекта в виде графических значков состояний. Кто занимался теорией конечных автоматов — знает, что практически любую сложную машину можно разложить на простые автоматы, имеющие определенные состояния, а в программных системах этот подход действительно оправдан.
Создание заготовок классов
Для того чтобы начать создавать модель поведения, необходимо добавить в модель классы, на основе которых эти объекты впоследствии будут создаваться.
Исходя из рассмотренных в теме 5 устройств, получаем следующих кандидатов для создания классов:
EnvironmentalController — контроллер управления исполнительными устройствами;
TemperatureSensor — датчик температуры;
pHSensor — датчик кислотности;
Heater — нагреватель;
Cooler — вентилятор для снижения температуры;
Light — осветитель;
WaterTank — хранилище для воды;
NutrientTank — хранилище для удобрений.
Данные наименования используются в книге Г. Буча, и нет необходимости придумывать что-то иное. И к тому же, использование английских наименований позволяет не опасаться, что при генерации исходного кода на выбранном языке программирования процесс может окончиться неудачей в случае конфликта с русскими именами.
Однако не все созданные классы будут в точности повторять описанные в книге Г. Буча. Для создания работающей системы я изменил некоторые классы, которые в указанной книге приводились для иллюстрации различных приемов объектно-ориентированного проектирования.
Рис. 6.1. Создание нового класса в окне Browse
Для добавления класса в модель необходимо перейти в окно Browser и на строке Logical View проделать RClick=>New=>Class, как показано на рис. 6.1.
Измените название NewClass на EnvironmentalController, и первый класс готов. Аналогично добавьте остальные классы, и можно начинать создавать модель поведения.
