Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
проект ис / Методичка по КИС.docx
Скачиваний:
158
Добавлен:
12.04.2015
Размер:
621.04 Кб
Скачать

Лабораторная работа №3. Диаграммы состояний (StateChart diagram)

Общее описание

Рассмотрим новую категорию элементов, которая позволяет описать поведение системы и показать, как части модели UMLизменяются во времени. К одной из таких категорий относятся элементы диаграммы состояний.

Изменение в системе можно охарактеризовать так: объекты изменяют свое состояние в ответ на происходящие события и с течением времени. Например, при щелчке на кнопке пульта дистанционного управления, телевизор изменяет свое состояние и показывает передачи другого канала и т.д.

Поэтому Диаграмма состояний UML, охватывая приведенный выше тип изменения, представляет состояния объекта и переходы между ними, а также показывает начальное и конечное состояние объекта.

Данная диаграмма значительно отличается от диаграммы классов, диаграммы объектов или диаграммы прецедентов. Диаграмма состояний показывает состояния одного объекта.

Представление диаграммы состояний.

Состояние изображается прямоугольником со скругленными углами, переход – сплошной линией со стрелкой. Закрашенный круг соответствует начальной точке последовательности состояний, а обведенный круг («глазок») представляет конечную точку.

рис.3.14.

Причем, прямоугольник разделен на две части. Верхняя содержит имя состояния (которое нужно присвоить независимо от того, будут ли присутствовать другие элементы обозначения), а нижняя предназначена для размещения видов деятельности.

Также необходимо уточнить, что переход зачастую происходит в ответ на переключающее событие и может вызывать выполнение некоторых действий.

Например, можно указать событие, которое привело к переходу (переключающее событие) и выполняемые вычисления (действия), которые приводят к изменению состояния.

Иногда событие вызывает переход баз всякого действия, иногда же переход происходит из-за того, что в текущем состоянии выполнены все действия (не из-за события). Такой тип перехода называется безусловным переходом.

Необходимость создания диаграммы состояний

На диаграмме состояний отображаются все переходы между состояниями одного объекта системы. Если информация слишком детализирована, то диаграмма вскоре слишком усложнится (и это необходимо).

Диаграммы состояния используются аналитиками, проектировщиками и разработчиками для исследования поведения объектов в системе. Диаграмма классов и диаграмма объектов отображают только статическое состояние системы. На них представлены иерархии и ассоциации, и из них можно узнать о возможном перечне действий системы, но ничего нельзя узнать о деталях динамического поведения.

Однако разработчики должны понимать поведение объектов, поскольку их задачей является реализация этого поведения в программном обеспечении. Просто разработать объект недостаточно: специалисты должны добиваться того, чтобы объект выполнял свои функции. Диаграммы состояний дают полную информацию о желаемом поведении. Ясное представление о поведении объекта повышает вероятность того, что группа разработчиков создаст систему, удовлетворяющую выдвинутым требованиям.

Построение в PowerDesigner

Рассмотрим построение диаграммы состояний в PowerDesignerна примере графического пользовательского интерфейса (GUI) компьютера.

Предположим, что упрощенный интерфейс может находиться в одном из трех состояний:

  • Инициализация

  • Работа

  • Завершение работы

Причем, при включении компьютера происходит загрузка. Поэтому включение компьютера является переключающим событием, которое приводит к переходу интерфейса в состояние Инициализация, а загрузка – действие, происходящее во время перехода. Результатом выполнения действия в состоянии Инициализации является выработка переключающего события, которое вызывает переход в состояние Работа. При щелчке на кнопке завершения работы, осуществляется переход в состояние Завершение работы, и в конечном итоге компьютер выключается.

Итак, создадим новую диаграмму: нажать правой кнопкой мыши в пустом месте рабочей области. Выбрать Диаграмма (Diagram) -> Новая Диаграмма (NewDiagram) -> Диаграмма состояний (StateChartDiagram).

Введите название диаграммы (в поле Name): «Диаграмма состоянийGUI», а вCodeукажите название диаграммы так, чтобы было понятно разработчикам, когда они будут реализовывать проект на определенном языке программирования, например, так: «StateChart_Digram_GUI». Чтобы название в полеCodeне было таким же, как и вName, отожмите кнопку «равно» справа от поляCode.

Создайте 3 объекта с помощью инструмента State, который расположен на панели инструментов«Pallete». А также одно начальное (Start) и одно конечное состояние (End).

Теперь, в свойствах переименуйте объекты состояний в соответствии с таблицей:

Объекты состояний

Название в поле Name

Название в поле Code

State_1

Инициализация

Initialization

State_2

Работа

Work

State_3

Завершение работы

EndOfWork

Далее, необходимо добавить состояния и переходы, для этого: откройте свойства объекта Инициализация и во вкладке Действия (Actions) с помощью кнопкиAddarow, добавьте новое действие. В столбцеTriggerEventвыберите состояниевыполнение (do)2,в столбцеNameвведите название действияLoading3. Нажмите кнопкуПрименитьдля сохранения внесенных изменений.

Соедините последовательно все объекты с помощью инструмента Transitionи дайте названия переходам, как показано на рисунке. Для этого зайдите в свойства объектаTransitionи во вкладкеTriggerв полеTriggerEventсоздайте новое действие (кнопкаCreate). В результате должна получится диаграмма, представленная ниже:

рис.3.15.

Переход может происходить в случае специальных условий – так называемых условий перехода. Рассмотрим и дополним пример, приведенный выше: если на компьютере не выполняется никаких действий (в течение 15 минут), активизируется экранная заставка, т.е. пользовательский интерфейс переходит из состояния Работа в состояние отображение заставки. 15-минутный интервал в данном случае является условием перехода.

Дополним нарисованную выше диаграмму: создадим еще одно состояние с названием «Отображение заставки» и два перехода.

Переход от состояния «Отображение заставки» к «Работа» назовем «Нажатие клавиши или перемещение указателя».

Для перехода от состояния Работа к состоянию Отображение заставки зададим условие, для этого откроем окно со свойствами перехода, перейдем на вкладку «Условие» (Condition) и в полеAliasвведем условие: время истекло. Условие отображается на диаграмме в квадратных скобках. После сохранения должно получиться следующее:

рис.3.16.

Задание для самостоятельной работы:

Создайте диаграмму состояний, описывающую работу пользовательского интерфейса для резервирования мест в ресторане. Чтобы пойти в ресторан, клиент резервирует себе стол на определенную дату и время, используя специальный интерфейс. Клиент входит в систему, с помощью карты постоянного клиента, если данные неверны, то выход. Если все нормально, клиент выбирает дату и время, указывает стол, где хотел бы сидеть, система сохраняет введенные данные, печатает чек клиенту с информацией о забронированном месте, закрывает сеанс (выход пользователя из системы) и отправляет информацию управляющему, который дает всем необходимые указания.

Соседние файлы в папке проект ис