Файл: Задание 1 построение диаграммы классов и диаграммы объектов в нотации uml краткие теоретические сведения.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.01.2024
Просмотров: 30
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ЗАДАНИЕ № 3
ПОСТРОЕНИЕ ДИАГРАММЫ СОСТОЯНИЙ В НОТАЦИИ
UML
Краткие теоретические сведения
Рассмотрим новую категорию элементов, которая позволяет описать поведение системы и показать, как части модели UML изменяются во времени. К одной из таких категорий относятся элементы диаграммы состояний.
Изменение в системе можно охарактеризовать так: объекты изменяют свое состояние в ответ на происходящие события и с течением времени. Например, при щелчке на кнопке пульта дистанционного управления, телевизор изменяет свое состояние и показывает передачи другого канала и т.д.
Поэтому Диаграмма состояний UML, охватывая приведенный выше тип изменения, представляет состояния объекта и переходы между ними, а также показывает начальное и конечное состояние объекта.
Данная диаграмма значительно отличается от диаграммы классов, диаграммы объектов или диаграммы прецедентов. Диаграмма состояний показывает состояния одного объекта.
Представление диаграммы состояний.
Состояние изображается прямоугольником со скругленными углами, переход – сплошной линией со стрелкой. Закрашенный круг соответствует начальной точке последовательности состояний, а обведенный круг («глазок») представляет конечную точку.
Рис.13. Модель состояний
Причем, прямоугольник разделен на две части. Верхняя содержит имя состояния (которое нужно присвоить независимо от того, будут ли присутствовать другие элементы обозначения), а нижняя предназначена для размещения видов деятельности.
Также необходимо уточнить, что переход зачастую происходит в ответ на переключающее событие и может вызывать выполнение некоторых действий.
Например, можно указать событие, которое привело к переходу
(переключающее событие) и выполняемые вычисления (действия), которые приводят к изменению состояния.
Иногда событие вызывает переход баз всякого действия, иногда же переход происходит из-за того, что в текущем состоянии выполнены все действия (не из-за события). Такой тип перехода называется безусловным переходом.
Необходимость создания диаграммы состояний
На диаграмме состояний отображаются все переходы между состояниями одного объекта системы. Если информация слишком детализирована, то диаграмма вскоре слишком усложнится (и это необходимо).
Диаграммы состояния используются аналитиками, проектировщиками и разработчиками для исследования поведения объектов в системе. Диаграмма классов и диаграмма объектов отображают только статическое состояние системы. На них представлены иерархии и ассоциации, и из них можно узнать о возможном перечне действий системы, но ничего нельзя узнать о деталях динамического поведения.
Однако разработчики должны понимать поведение объектов, поскольку их задачей является реализация этого поведения в программном обеспечении.
Просто разработать объект недостаточно: специалисты должны добиваться того, чтобы объект выполнял свои функции. Диаграммы состояний дают полную информацию о желаемом поведении. Ясное представление о поведении объекта повышает вероятность того, что группа разработчиков создаст систему, удовлетворяющую выдвинутым требованиям.
Построение в PowerDesigner
Рассмотрим построение диаграммы состояний в PowerDesigner на примере графического пользовательского интерфейса (GUI) компьютера.
Предположим, что упрощенный интерфейс может находиться в одном из трех состояний:
Инициализация
Работа
Завершение работы
Причем, при включении компьютера происходит загрузка. Поэтому включение компьютера является переключающим событием, которое приводит к переходу интерфейса в состояние
Инициализация, а загрузка – действие, происходящее во время
перехода. Результатом выполнения действия в состоянии
Инициализации является выработка переключающего события, которое вызывает переход в состояние Работа. При щелчке на кнопке завершения работы, осуществляется переход в состояние
Завершение работы, и в конечном итоге компьютер выключается.
Итак, создадим новую диаграмму: нажать правой кнопкой мыши в пустом месте рабочей области. Выбрать Диаграмма (Diagram) ->
Новая Диаграмма (New Diagram) -> Диаграмма состояний
(StateChart Diagram).
Введите название диаграммы (в поле Name): «Диаграмма состояний
GUI», а в Code укажите название диаграммы так, чтобы было понятно разработчикам, когда они будут реализовывать проект на определенном языке программирования, например, так:
«StateChart_Digram_GUI». Чтобы название в поле Code не было таким же, как и в Name, отожмите кнопку «равно» справа от поля
Code.
Создайте 3 объекта с помощью инструмента State, который расположен на панели инструментов «Pallete». А также одно начальное (Start) и одно конечное состояние (End).
Теперь, в свойствах переименуйте объекты состояний в соответствии с таблицей 3.
Таблица 3 –Виды состояний
Объекты состояний Название в поле
Name
Название в поле
Code
State_1
Инициализация
Initialization
State_2
Работа
Work
State_3
Завершение работы
EndOfWork
Далее, необходимо добавить состояния и переходы, для этого: откройте свойства объекта Инициализация и во вкладке Действия
(Actions) с помощью кнопки Add a row
, добавьте новое действие.
В столбце Trigger Event выберите состояние выполнение (do), в столбце Name введите название действия Loading. Нажмите кнопку
Применить для сохранения внесенных изменений.
Соедините последовательно все объекты с помощью инструмента
Transition и дайте названия переходам, как показано на рисунке.
Для этого зайдите в свойства объекта Transition и во вкладке Trigger
Инициализации является выработка переключающего события, которое вызывает переход в состояние Работа. При щелчке на кнопке завершения работы, осуществляется переход в состояние
Завершение работы, и в конечном итоге компьютер выключается.
Итак, создадим новую диаграмму: нажать правой кнопкой мыши в пустом месте рабочей области. Выбрать Диаграмма (Diagram) ->
Новая Диаграмма (New Diagram) -> Диаграмма состояний
(StateChart Diagram).
Введите название диаграммы (в поле Name): «Диаграмма состояний
GUI», а в Code укажите название диаграммы так, чтобы было понятно разработчикам, когда они будут реализовывать проект на определенном языке программирования, например, так:
«StateChart_Digram_GUI». Чтобы название в поле Code не было таким же, как и в Name, отожмите кнопку «равно» справа от поля
Code.
Создайте 3 объекта с помощью инструмента State, который расположен на панели инструментов «Pallete». А также одно начальное (Start) и одно конечное состояние (End).
Теперь, в свойствах переименуйте объекты состояний в соответствии с таблицей 3.
Таблица 3 –Виды состояний
Объекты состояний Название в поле
Name
Название в поле
Code
State_1
Инициализация
Initialization
State_2
Работа
Work
State_3
Завершение работы
EndOfWork
Далее, необходимо добавить состояния и переходы, для этого: откройте свойства объекта Инициализация и во вкладке Действия
(Actions) с помощью кнопки Add a row
, добавьте новое действие.
В столбце Trigger Event выберите состояние выполнение (do), в столбце Name введите название действия Loading. Нажмите кнопку
Применить для сохранения внесенных изменений.
Соедините последовательно все объекты с помощью инструмента
Transition и дайте названия переходам, как показано на рисунке.
Для этого зайдите в свойства объекта Transition и во вкладке Trigger
в поле Trigger Event создайте новое действие (кнопка Create ). В результате должна получится диаграмма, представленная ниже:
Рис.14. Модель состояний
Переход может происходить в случае специальных условий – так называемых условий перехода. Рассмотрим и дополним пример, приведенный выше: если на компьютере не выполняется никаких действий (в течение 15 минут), активизируется экранная заставка, т.е. пользовательский интерфейс переходит из состояния Работа в состояние отображение заставки. 15-минутный интервал в данном случае является условием перехода.
Дополним нарисованную выше диаграмму: создадим еще одно состояние с названием «Отображение заставки» и два перехода.
Переход от состояния «Отображение заставки» к «Работа» назовем
«Нажатие клавиши или перемещение указателя».
Для перехода от состояния Работа к состоянию Отображение заставки зададим условие, для этого откроем окно со свойствами перехода, перейдем на вкладку «Условие» (Condition) и в поле Alias введем условие: время истекло. Условие отображается на диаграмме в квадратных скобках. После сохранения должно получиться следующее:
Рис.15. Модель состояний
Практические задания
Создайте диаграмму состояний, описывающую работу пользовательского интерфейса для резервирования мест в ресторане.
Чтобы пойти в ресторан, клиент резервирует себе стол на определенную дату и время, используя специальный интерфейс.
Клиент входит в систему, с помощью карты постоянного клиента, если данные неверны, то выход. Если все нормально, клиент выбирает дату и время, указывает стол, где хотел бы сидеть, система сохраняет введенные данные, печатает чек клиенту с информацией
Рис.14. Модель состояний
Переход может происходить в случае специальных условий – так называемых условий перехода. Рассмотрим и дополним пример, приведенный выше: если на компьютере не выполняется никаких действий (в течение 15 минут), активизируется экранная заставка, т.е. пользовательский интерфейс переходит из состояния Работа в состояние отображение заставки. 15-минутный интервал в данном случае является условием перехода.
Дополним нарисованную выше диаграмму: создадим еще одно состояние с названием «Отображение заставки» и два перехода.
Переход от состояния «Отображение заставки» к «Работа» назовем
«Нажатие клавиши или перемещение указателя».
Для перехода от состояния Работа к состоянию Отображение заставки зададим условие, для этого откроем окно со свойствами перехода, перейдем на вкладку «Условие» (Condition) и в поле Alias введем условие: время истекло. Условие отображается на диаграмме в квадратных скобках. После сохранения должно получиться следующее:
Рис.15. Модель состояний
Практические задания
Создайте диаграмму состояний, описывающую работу пользовательского интерфейса для резервирования мест в ресторане.
Чтобы пойти в ресторан, клиент резервирует себе стол на определенную дату и время, используя специальный интерфейс.
Клиент входит в систему, с помощью карты постоянного клиента, если данные неверны, то выход. Если все нормально, клиент выбирает дату и время, указывает стол, где хотел бы сидеть, система сохраняет введенные данные, печатает чек клиенту с информацией
о забронированном месте, закрывает сеанс (выход пользователя из системы) и отправляет информацию управляющему, который дает всем необходимые указания.