Министерство образования и науки Российской Федерации Саратовский государственный технический университет

advertisement
Министерство образования и науки Российской Федерации
Саратовский государственный технический университет
Балаковский институт техники, технологии и управления
РАЗРАБОТКА ДИАГРАММ СОСТОЯНИЙ В СРЕДЕ IBM
RATIONAL ROSE
Методические указания к выполнению лабораторной работы
по курсу «Теория информационных процессов и систем»
для студентов специальности 230201.65
очной формы обучения
Одобрено
редакционно-издательским советом
Балаковского института техники,
технологии и управления
Балаково 2011
Цель работы: получить навыки построения диаграмм состояний в
программе Rational Rose.
ОСНОВНЫЕ ПОНЯТИЯ
Диаграмма состояний (Statechart) предназначена для описания
состояний объекта и условий перехода между ними. Описание состояний
позволяет точно описать модель поведения объекта при получении
различных сообщений и взаимодействии с другими объектами.
Моделирование
поведения
объектов
и
системы
в
целом
основывается на понятии состояния.
Состояние (state) - условие или ситуация в ходе жизненного цикла
объекта, в течение которого он удовлетворяет логическому условию,
выполняет определенную деятельность или ожидает события.
Действие (action) - спецификация выполнимого утверждения,
которая образует абстракцию вычислительной процедуры.
Действие обычно приводит к изменению состояния системы, и
может быть реализовано посредством передачи сообщения объекту,
модификацией связи или значения атрибута. Для ряда состояний может
потребоваться дополнительно указать действия, которые должны быть
выполнены моделируемым элементом. Для этой цели служит добавочная
секция в обозначении состояния, содержащая перечень внутренних
действий или деятельность, которые производятся в процессе нахождения
моделируемого
элемента
в
данном
состоянии.
Каждое
действие
записывается в виде отдельной строки и имеет следующий формат:
<метка действия '/ ' выражение действия>
Метка действия указывает на обстоятельства или условия, при
которых будет выполняться деятельность, определенная выражением
действия. При этом выражение действия может использовать любые
атрибуты
и
связи,
принадлежащие
2
области
имен
или
контексту
моделируемого объекта. Если список выражений действия пустой, то
метка действия с разделителем в виде наклонной черты '/' не указывается.
Перечень меток действий в языке UML фиксирован, причем эти метки не
могут быть использованы в качестве имен событий:
Входное действие (entry action) - действие, которое выполняется в
момент перехода в данное состояние. Обозначается с помощью ключевого
слова - метки действия entry, которое указывает на то, что следующее за
ней выражение действия должно быть выполнено в момент входа в данное
состояние.
Действие выхода (exit action) - действие, производимое при выходе
из данного состояния. Обозначается с помощью ключевого слова - метки
действия exit, которое указывает на то, что следующее за ней выражение
действия должно быть выполнено в момент выхода из данного состояния.
Внутренняя деятельность (do activity) - выполнение объектом
операций или процедур, которые требуют определенного времени.
Обозначается с помощью ключевого слова - метки деятельности do,
которое специфицирует так называемую "ду-деятельность", выполняемую
в течение всего времени, пока объект находится в данном состоянии, или
до тех пор, пока не будет прервано внешним событием. При нормальном
завершении внутренней деятельности генерируется соответствующее
событие.
Кроме
обычных
состояний
на диаграмме
состояний
могут
размещаться псевдосостояния.
Псевдосостояние (pseudo-state) - вершина в конечном автомате,
которая имеет форму состояния, но не обладает поведением.
Примерами псевдосостояний, которые определены в языке UML,
являются начальное и конечное состояния.
Начальное состояние (start state) - разновидность псевдосостояния,
обозначающее
начало
выполнения
3
процесса
изменения
состояний
конечного автомата или нахождения моделируемого объекта в составном
состоянии. В этом состоянии находится объект по умолчанию в
начальный момент времени. Оно служит для указания на диаграмме
состояний
графической
области,
от
которой
начинается
процесс
изменения состояний. Графически начальное состояние в языке UML
обозначается в виде закрашенного кружка (рис. 1, а), из которого может
только выходить стрелка-переход.
Конечное состояние (final state) - разновидность псевдосостояния,
обозначающее прекращение процесса изменения состояний конечного
автомата или нахождения моделируемого объекта в составном состоянии.
В этом состоянии должен находиться моделируемый объект или система
по умолчанию после завершения работы конечного автомата. Оно служит
для указания на диаграмме состояний графической области, в которой
завершается процесс изменения состояний или жизненный цикл данного
объекта. Графически конечное состояние в языке UML обозначается в
виде закрашенного кружка, помещенного в окружность (рис.1, б), в
которую может только входить стрелка-переход. Каждая диаграмма
состояний или подсостояний может иметь несколько конечных состояний,
при этом все они считаются эквивалентными на одном уровне
вложенности состояний.
Рис. 1. Графическое изображение начального и конечного состояний
на диаграмме состояний
Пребывание моделируемого объекта или системы в первом
состоянии может сопровождаться выполнением некоторых внутренних
действий или деятельности. При этом изменение текущего состояния
4
объекта
будет
возможно
либо
после
завершения
этих
действий
(деятельности), либо при возникновении некоторых внешних событий. В
обоих случаях говорят, что происходит переход объекта из одного
состояния в другое.
Переход (transition) - отношение между двумя состояниями, которое
указывает на то, что объект в первом состоянии должен выполнить
определенные действия и перейти во второе состояние.
Переход осуществляется при наступлении некоторого события:
окончания выполнения деятельности (do activity), получении объектом
сообщения или приемом сигнала. На переходе указывается имя события, а
также действия, производимые объектом в ответ на внешние события при
переходе из одного состояния в другое.
Переход может быть направлен в то же состояние, из которого он
выходит. В этом случае его называют переходом в себя. При переходе в
себя объект покидает исходное состояние, а затем снова входит в него.
При
этом
всякий
раз
выполняются
внутренние
действия,
специфицированные метками entry и exit.
Срабатывание перехода (fire) - выполнение перехода из одного
состояния в другое.
В зависимости от вида происходящих событий - стимулов в языке
UML различают два типа переходов: триггерные и нетриггерные.
Переход называется триггерным, если его специфицирует событиетриггер,
связанное
с
внешними
условиями
по
отношению
к
рассматриваемому состоянию.
В этом случае рядом со стрелкой триггерного перехода обязательно
указывается имя события в форме строки текста, начинающейся со
строчной буквы. Наиболее часто в качестве имен триггерных переходов
задают имена операций, вызываемых у тех или иных объектов системы.
После имени такого события следуют круглые скобки для явного задания
5
параметров соответствующей операции. Если таких параметров нет, то
список параметров со скобками может отсутствовать.
Переход называется нетриггерным, если он происходит по
завершении выполнения ду-деятельности в данном состоянии.
Нетриггерные переходы часто называют переходами по завершении
ду-деятельности. Для них рядом со стрелкой перехода не указывается
никакого имени события, а в исходном состоянии должна быть описана
внутренняя ду-деятельность, по окончании которой произойдет тот или
иной нетриггерный переход.
Сторожевое условие (guard condition) - логическое условие,
записанное в прямых скобках и представляющее собой булевское
выражение.
Выражение действия (action expression) представляет собой вызов
операции или передачу сообщения, имеет атомарный характер и
выполняется сразу после срабатывания соответствующего перехода до
начала действий в целевом состоянии.
В качестве примера выражения действия перехода может служить
отображение сообщения на экране банкомата в том случае, когда
запрашиваемая клиентом сумма превосходит остаток на его счету. В
случае если кредит не превышен, то происходит переход в состояние
получения наличных.
Моделирование сложных объектов и систем, как правило, связано с
многоуровневым представлением их состояний. В этом случае возникает
необходимость
детализировать
отдельные
состояния,
сделав
их
составными.
Составное состояние (composite state) - сложное состояние, которое
состоит из других вложенных в него состояний.
Составное состояние называют также состоянием-композитом.
Вложенные состояния выступают по отношению к составному состоянию
6
как подсостояния (substate). И хотя между ними имеет место отношение
композиции, графически все вершины диаграммы, которые соответствуют
вложенным состояниям, изображаются внутри символа составного
состояния (рис. 2). В этом случае размеры графического символа
составного состояния увеличиваются, так чтобы вместить в себя все
подсостояния.
Рис. 2. Графическое представление составного состояния с двумя
вложенными в него последовательными подсостояниями
Последовательные
подсостояния
(sequential
substates)
-
вложенные состояния состояния-композита, в рамках которого в каждый
момент времени объект может находиться в одном и только одном
подсостоянии.
Параллельные подсостояния (concurrent substates) - вложенные
состояния, используемые для спецификации двух и более конечных
подавтоматов, которые могут выполняться параллельно внутри составного
состояния.
Обычный конечный автомат не позволяет учитывать предысторию в
процессе
моделирования
поведения
систем
и
объектов.
Однако
функционирование ряда систем основано на возможности выхода из
отдельного состояния-композита с последующим возвращением в это же
состояние. Может оказаться необходимым учесть ту часть деятельности,
которая была выполнена на момент выхода из этого состояния-композита,
7
чтобы не начинать ее выполнение сначала. Для этой цели в языке UML
существует историческое состояние.
Историческое
состояние
(history
state)
-
псевдосостояние,
используемое для запоминания того из последовательных подсостояний,
которое было текущим в момент выхода из составного состояния.
Историческое
составного
состояние
состояния.
При
применяется
этом
только
существует
две
в
контексте
разновидности
исторического состояния: неглубокое или недавнее и глубокое или давнее
(рис. 3).
Рис. 3. Графическое изображение недавнего (а) и давнего (б)
исторического состояния
ТРЕБОВАНИЯ БЕЗОПАСНОСТИ ТРУДА
При выполнении
лабораторной работы необходимо соблюдать
общие правила техники безопасности:

использовать ПК только в соответствии с их назначением;

не размещать на корпусе ПК посторонние предметы (тетради,
книги, карандаши и т.п.);

оберегать ПК от толчков, ударов, сотрясений;

немедленно поставить в известность оператора ИВЦ об
обнаружении задымления, загорания, пожара;

немедленно
сообщить
оператору
ИВЦ
обо
всех
неисправностях в работе ПК.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Разработаем диаграмму состояний для класса Order информационной
системы обработки заказов.
1.
Запуск программы Rational Rose.
8
Для этого выполните команды Пуск -> Программы -> Rational Rose
Enterprise Edition -> Rational Rose Enterprise Edition.
Откройте модель, созданную на предыдущей лабораторной работе.
2.
Создание диаграммы. Найдите в браузере класс Order.
Щелкните на классе правой кнопкой мыши и в открывшемся меню
укажите пункт Open State Diagram.
3.
Добавление начального и конечного состояний. На панели
инструментов
нажмите
кнопку
Start
State
(Начальное
состояние).
Поместите это состояние на диаграмму. На панели инструментов нажмите
кнопку End State (Конечное состояние). Поместите это состояние на
диаграмму.
4.
Добавление суперсостояния.
На панели инструментов
нажмите кнопку State (Состояние). Поместите это состояние на диаграмму.
5.
Добавление оставшихся состояний. На панели инструментов
нажмите кнопку State (Состояние). Поместите это состояние на диаграмму.
Назовите состояние Cancelled (Отменен).
На панели инструментов нажмите кнопку State (Состояние).
Поместите это состояние на диаграмму. Назовите состояние Filled
(Выполнен).
На панели инструментов нажмите кнопку State (Состояние).
Поместите это состояние на диаграмму внутрь суперсостояния. Назовите
состояние Initialization (Инициализация).
На панели инструментов нажмите кнопку State (Состояние).
Поместите это состояние на диаграмму внутрь суперсостояния. Назовите
состояние Pending (Выполнение заказа приостановлено).
6.
Подробное описание состояний.
Дважды щелкните на
состоянии Initialization (Инициализация). Щелкните правой кнопкой мыши
на окне Actions (Действия). В открывшемся меню выберите пункт Insert
(Вставить). Дважды щелкните мышью на новом действии. Назовите его
9
Store Order Date (Сохранить дату заказа). Убедитесь, что в окне When
(Когда) указан пункт On Entry (На входе).
Добавьте следующие действия:
Collect Customer Info (Собрать клиентскую информацию), в окне
When указать пункт Do
Add Order Items (Добавить к заказу новые графы), в окне When
указать Do
Нажмите на кнопки ОК два раза, чтобы закрыть спецификацию.
Дважды щелкните на состоянии Cancelled (Отменен). Добавьте
действие Store Cancellation Data (Сохранить дату отмены), указать пункт
On Exit (на выходе) Нажмите на кнопки ОК два раза, чтобы закрыть
спецификацию.
Дважды щелкните на состоянии Filled (Выполнен). Добавьте
действие Bill Customer (Выписать счет), указать пункт Do. Нажмите на
кнопки ОК два раза, чтобы закрыть спецификацию.
7.
Добавление переходов.
На панели инструментов нажмите
кнопку Transition (Переход). Щелкните мышью на начальном состоянии.
Проведите линию перехода к состоянию Initialization (Инициализация).
Создайте следующие переходы:
От состояния Initialization (Инициализация) к состоянию Pending
(Выполнение заказа приостановлено)
От состояния Pending (Выполнение заказа приостановлено) к
состоянию Filled (Выполнен)
От суперсостояния к состоянию Cancelled (Отменен)
От состояния Cancelled (Отменен) к конечному состоянию
От состояния Filled (Выполнен) к конечному состоянию.
На панели инструментов нажмите кнопку Transition to Self (Переход
к
себе).
Щелкните
на
состоянии
приостановлено).
10
Pending
(Выполнение
заказа
8.
переходе
Pending
Подробное описание переходов.
от
Дважды
состояния Initialization (Инициализация)
(Выполнение
заказа
приостановлено),
щелкните
к
открыв
на
состоянию
окно
его
спецификации. В поле Event (Событие) введите фразу Finalize order
(Выполнить заказ). Щелкните на кнопке ОК, закрыв окно спецификации.
Добавьте событие Cancel Order (Отменить заказ) к переходу между
суперсостоянием и состоянием Cancelled (Отменен).
Дважды щелкните на переходе от состояния Pending (Выполнение
заказа приостановлено) к состоянию Filled (Выполнен), открыв окно его
спецификации. В поле Event (Событие) введите фразу Add Order Item
(Добавить к заказу новую позицию). Перейдите на вкладку Detail
(Подробно). В поле Condition (Условие) введите No unfilled items remaining
(Не осталось незаполненных позиций). Щелкните на кнопке ОК, закрыв
окно спецификации.
Дважды щелкните мышью на рефлексивном переходе (Transition
to Self) состояния Pending (Выполнение заказа приостановлено). В поле
Event (Событие) введите фразу Add Order Item (Добавить к заказу новую
позицию). Перейдите на вкладку Detail (Подробно). В поле Condition
(Условие) введите Unfilled items remaining (Остаются незаполненные
позиции). Щелкните на кнопке ОК, закрыв окно спецификации.
Полученная диаграмма состояний приведена на рис. 4.
11
Рис. 4. Диаграмма состояний для класса Order.
ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ
Разработайте диаграммы состояний с использованием программного
продукта IBM Raional Rose по одной из предметных областей из таблицы 3
в соответствии с вариантом.
Таблица 3
№
варианта
1
2
3
4
5
6
7
8
Предметная область
Гостиница
Школа
Больница
Поликлиника
Фирма, оказывающая
услуги связи
Отдел кадров
Турфирма
Кредитная организация
№
варианта
16
17
18
19
20
21
22
23
12
Предметная область
ГИБДД
Паспортный стол
Интернет-провайдеры
ВУЗ
Расчет заработной платы
на предприятии
Рекламное агентство
Почтовое отделение
Букмекерская контора
9
10
11
12
13
14
15
Прокат
Центр занятости населения
Библиотека
Магазин
Склад
Авиакасса
Справочная ЖД
вокзала
24
25
26
27
28
29
30
Налоговая инспекция
Строительная
организация
Кинотеатр
Метеослужба
Страховая компания
ЖКХ
Аптека
СОДЕРЖАНИЕ ОТЧЕТА
Отчет по лабораторной работе должен содержать следующие
разделы:
1. Титульный лист.
2. Цель работы.
3. Задание.
4. Порядок выполнения работы.
5. Вывод.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1. Опишите назначение диаграмм состояния.
2. Дайте определение состояния.
3. Дайте определение действия.
4. Дайте определение входного действия.
5. Дайте определение действие выхода.
6. Дайте определение внутренней деятельности.
7. Дайте определение псевдосостояния.
8. Дайте определение начального состояния.
9. Дайте определение конечного состояния.
10. Дайте определение перехода.
11. Какой переход называется триггерным?
13
12. Какой переход называется нетриггерным?
13. Дайте определение сторожевого условия?
14. Дайте определение составного состояния.
15. Дайте определение последовательных подсостояний.
16. Дайте определение параллельных подсостояний.
17. Дайте определение исторического состояния.
ВРЕМЯ, ОТВЕДЕННОЕ НА ВЫПОЛНЕНИЕ
ЛАБОРАТОРНОЙ РАБОТЫ
Подготовка к работе – 0,5 акад. часа
Выполнение работы – 5 акад. часов
Оформление работы – 0,5 акад. часа
ЛИТЕРАТУРА
1. Подчукаев
В.А.Теория информационных процессов и систем:
учебное пособие. / В.А.Подчукаев. – М.: Гардарика, 2007.
2. Боггс У. UML и Rational Rose./ У. Боггс, М. Боггс. - М.: Лори, 2004.
3. Трофимов С. А. CASE-технологии. Практическая работа в Rational
Rose./ С. А. Трофимов. - М.: Бином-Пресс, 2002.
4. Фаулер
М.
UML.
Основы.
Краткое
руководство
унифицированному языку моделирования./ М. Фаулер, К.Скотт.
Питер, 2002.
14
по
- СПб.:
СОДЕРЖАНИЕ
Основные понятия……………………………………………………………...2
Требования безопасности труда……………………………………………….8
Порядок выполнения работы…………………………...………………….….8
Индивидуальные задания…………………………………………………….12
Содержание отчета……………………………………………………………13
Вопросы для самоконтроля…………………………………………………..13
Время, отведенное на выполнение лабораторной работы…………………14
Литература…………………………………………………………………….14
15
РАЗРАБОТКА ДИАГРАММ СОСТОЯНИЙ В СРЕДЕ IBM
RATIONAL ROSE
Методические указания к выполнению лабораторной работы
по курсу «Теория информационных процессов и систем»
для студентов специальности 230201.65
очной формы обучения
Составила: Штырова Ирина Анатольевна
Рецензент С.Н. Грицюк
Редактор
Л.В. Максимова
Подписано в печать
Формат 60х84 1/16
Бумага тип.
Усл.печ.л. 1
Уч.- изд.л. 1
Тираж 100 экз.
Заказ
Бесплатно
Саратовский государственный технический университет
410054, г. Саратов, ул. Политехническая, 77
Копипринтер БИТТиУ, 413840, г. Балаково, ул. Чапаева, 140
16
Download