Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы и средства проектирования информационных систем и технологий. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
«Entity»
CardReader:
«Boundary»
ATM Screen:
«Entity»
CardReader:
Клиент:
«Boundary»
Cash Dispenser:
Задания к работе
1. Изучите возможности описания реализации вариантов ис-
пользования информационной системы с помощью диаграмм по­следовательности.
2. Познакомитесь с элементами диаграмм последовательности
и способами их размещения на диаграмме.
3. Изучите возможности совместного использования различ-
ных диаграмм UML между собой.

Методика выполнения работы

1. Откройте файл UML, созданный в работе 14.
2. В проводнике по модели UML щелкнув правой кнопкой
мыши по папке «Основной пакет», выберите команду меню «Со­здать» и далее «Схема последовательностей».
3. У рабочего листа MS Visio появится название «Последова-
тельность-1». Переименуйте созданный лист, дав ему имя ДП (со­кращенно от «Диаграмма последовательности»).
4. Разместите в правом верхнем углу рабочего листа элемент
«Линия жизни». Далее щелкните по нему дважды, вызвав окно свойств и в поле «Классификатор», выберите соответствующего актера, инициирующего рассматриваемый ВИ.
5. Разместите в верхней части рабочего листа в необходимом количестве остальные классы, участвующие в реализации данного ВИ и соотнести их с соответствующими классами. Если на диа­грамме размещено много объектов и они не умещаются по ширине можно использовать многоуровневое расположение объектов как показано на рис. 15.2.
Рис. 15.2. Многоуровневое расположение объектов
на диаграмме последовательности
131
6. Растяните вниз пунктир линии жизни. Соедините классы между собой с помощью элемента «Сообщение». При этом линия не всегда будет параллельна горизонтальной оси, так как соединя­ются фигуры через точки соединения, а они не всегда расположе­ны симметрично по отношению друг к другу. В этом нет ничего страшного, главное чтобы окончание линии находилось по уровню не выше ее начала.
7. Сопоставьте сообщение, которое получает объект для ис­полнения с одной из его операций, заданной в предыдущей лабо­раторной работе.
8. Для этого нужно вызвать окно свойств для ассоциации (дважды щелкнув по нему). В появившемся окне в поле «Опера­ция» выбрать из списка соответствующую операцию. Для того чтобы операция присутствовала в списке, она должна была быть задана для данного класса. Можно добавить для класса необходи­мую операцию прямо из этого окна, если нажать на кнопку «Со­здать».

Содержание отчета и его форма

В отчете по лабораторной работе 15 должен быть приведен
процесс поэтапного построения диаграммы последовательностей.

Контрольные вопросы

1. Каково назначение диаграмм последовательности? Почему они так называются?

2. В чем сходство и в чем отличия диаграмм кооперации и по­следовательности?
3. Какие элементы располагаются на диаграмме последова­тельности?
4. С какими другими диаграммами в UML-модели связана диаграмма последовательности? Какие элементы из этих диаграмм также представлены на диаграмме кооперации?
5. Каким образом связываются между собой элементы на диа­грамме последовательности?
6. Какую роль играют на диаграммах последовательности иг­рают отношения между объектами?
132
Литература
Основная:1–4. Дополнительная: 1–4.
16. ДИАГРАММА СОСТОЯНИЙ
Цель – изучение основных возможностей создания и редакти-
рования диаграмм состояний в MS Visio.
Формируемые компетенции или их части: ПК-1; ПК-2; ПК-3;
ПК-4; ПК-30.
Теоретическая часть
Диаграммы состояний определяют все возможные состояния,
в которых может находиться конкретный объект, а также процесс смены состояний объекта в результате наступления некоторых со­бытий. Существует множество форм диаграмм состояний, незна­чительно отличающихся друг от друга семантикой.
На рис. 16.1 приводится пример диаграммы состояний для
банковского счета (account). Можно также наблюдать процесс пе­рехода счета из одного состояния в другое. Например, если клиент требует закрыть счет, он переходит в состояние «закрыт». Требо­вание клиента называется событием (event), именно такие события и вызывают переход из одного состояния в другое.
Если клиент снимает деньги со счета, он может перейти в со­стояние «Превышение кредита». Это происходит только в том слу­чае, если баланс по счету меньше нуля, что отражено условием [отрицательный баланс] на нашей диаграмме. Заключенное в квад­ратных скобках условие (guard condition) определяет, когда может произойти переход из одного состояния в другое.
На диаграмме имеются два специальных состояния – началь­ное (start) и конечное (stop). Начальное состояние выделено черной точкой, оно соответствует состоянию объекта, когда он только что был создан. Конечное состояние обозначается черной точкой в бе­лом кружке, оно соответствует состоянию объекта непосредствен­но перед его уничтожением. На диаграмме состояний может быть одно и только одно начальное состояние. В то же время может быть столько конечных состояний, сколько вам нужно, или их мо-
133
жет не быть вообще. Когда объект находится в каком-то конкрет- ном состоянии, могут выполняться различные процессы. В нашем примере при превышении кредита клиенту посылается соответ­ствующее сообщение. Процессы, происходящие в этот момент, ко­гда объект находится в определенном состоянии, называются дей-
ствиями (actions).
Рис. 16.1. Диаграмма состояний для класса Account
С состоянием можно связывать следующие данные: деятель­ность, входное действие, выходное действие и событие. Рассмот­рим каждый из них в контексте диаграммы состояний для класса Account банковской системы.
Деятельность (activity) – это поведение, реализуемое объек- том, пока он находится в данном состоянии. Например, когда счет находится в состоянии «Закрыт», происходит возврат кредитной карточки пользователю. Деятельность – это прерываемое поведе­ние. Оно может выполняться до своего завершения, пока объект находится в данном состоянии, или может быть прервано перехо­дом объекта в другое состояние. Деятельность изображают внутри самого состояния; ее обозначению должно предшествовать слово
do (делать) и двоеточие.
134
Входное действие (entry action) – это поведение, которое вы­полняется, когда объект переходит в данное состояние. Как только счет в банке переходит в состояние «Превышен счет» (см. рис.
16.1), выполняется действие «Временно заморозить счет» незави­симо от того, откуда объект перешел в это состояние. Таким обра­зом, данное действие осуществляется не после того, как объект пе­решел в это состояние, а скорее как часть этого перехода. В отли­чие от деятельности входное действие рассматривается как непре­рываемое.
Входное действие также показывают внутри состояния, его обозначению предшествуют слово entry (вход) и двоеточие.
Выходное действие (exit action) подобно входному действию. Однако оно осуществляется как составная часть процесса выхода из данного состояния. В нашем примере при выходе объекта ac­count из состояния «Превышен счет» выполняется действие «Раз­морозить счет». Оно является частью процесса такого перехода. Как и входное, выходное действие является непрерываемым.
Выходное действие изображают внутри состояния, его описа­нию предшествуют слово exit (выход) и двоеточие.
Поведение объекта во время деятельности, при входных и вы­ходных действиях, может включать отправку события другому объ­екту. Например, объект account (счет) может посылать событие объ­екту card reader (устройство чтения карты). В этом случае описанию деятельности, входного или выходного действия предшествует знак «^». Соответствующая строка на диаграмме выглядит как
Do: ^Цель. Событие (Аргументы).
Здесь Цель – это объект, получающий событие, Событие – это посылаемое сообщение, а Аргументы являются параметрами по­сылаемого сообщения.
Деятельность может также выполняться в результате получе­ния объектом некоторого события. Например, объект Account мо­жет быть в состоянии «Открыто». При получении некоторого со­бытия выполняется определенная деятельность.
Переходом (transition) называется перемещение объекта из од- ного состояния в другое. На диаграмме все переходы изображают в виде стрелки, начинающейся на первоначальном состоянии и за­канчивающейся последующим.
135
Переходы могут быть рефлексивными. Объект может перейти в то же состояние, в котором он в настоящий момент находится. Рефлексивные переходы изображают в виде стрелки, начинающей­ся и завершающейся на одном и том же состоянии.
У перехода существует несколько спецификаций. Они вклю­чают события, аргументы, ограждающие условия, действия и по­сылаемые события. Рассмотрим каждое из них в контексте приме­ра банковской системы.
Событие (event) – это то, что вызывает переход из одного со- стояния в другое. В нашем примере событие «Клиент требует за­крыть» вызывает переход счета из открытого в закрытое состоя­ние. Событие размещают на диаграмме вдоль линии перехода.
На диаграмме для отображения события можно использовать как имя операции, так и обычную фразу. В нашем примере собы­тия описаны обычными фразами. Если нужно использовать опера­ции, то событие «Клиент требует закрыть» можно было бы назвать
RequestClosure ( ).
У событий могут быть аргументы. Так, событие «Сделать вклад», вызывающее переход счета из состояния «Превышен счет» в состояние «Открыто», может иметь аргумент Amount (Количе­ство), описывающий сумму депозита.
Большинство переходов должны иметь события, так как имен­но они, прежде всего, заставляют переход осуществиться. Тем не менее, бывают и автоматические переходы, не имеющие событий. При этом объект сам перемещается из одного состояния в другое со скоростью, позволяющей осуществиться входным действиям, деятельности и выходным действиям.
Ограждающие условия (guard conditions) определяют, когда переход может или не может осуществиться. В нашем примере со­бытие «Сделать вклад» переведет счет из состояния «Превышение счета» в состояние «Открыто», но только при условии, если баланс будет больше нуля. В противном случае переход не осуществится.
Ограждающие условия изображают на диаграмме вдоль линии перехода после имени события, заключая их в квадратные скобки.
Ограждающие условия задавать необязательно. Однако если существуют несколько автоматических переходов из состояния, необходимо определить для них взаимно исключающие огражда-
136
ющие условия. Это поможет читателю диаграммы понять, какой путь перехода будет автоматически выбран.
Действие (action), как уже говорилось, является непрерывае­мым поведением, осуществляющимся как часть перехода. Входные и выходные действия показывают внутри состояний, поскольку они определяют, что происходит, когда объект входит или выходит из состояния. Большую часть действий, однако, изображают вдоль линии перехода, так как они не должны осуществляться при входе или выходе из состояния.
Например, при переходе счета из открытого в закрытое состо­яние выполняется действие «Сохранить дату закрытия счета». Это непрерываемое поведение осуществляется только во время пере­хода из состояния «Открыто» в состояние «Закрыто».
Действие рисуют вдоль линии перехода после имени события, его изображению предшествует косая черта.
Событие или действие может быть поведением внутри объек­та, а может представлять собой сообщение, посылаемое другому объекту. Если событие или действие посылается другому объекту, перед ним на диаграмме помещают знак «^».
Диаграммы состояний не надо создавать для каждого класса, они применяются только в сложных случаях. Если объект класса может существовать в нескольких состояниях и в каждом из них ведет себя по-разному, для него может потребоваться диаграмма состояний.

Задания к работе

1. Изучите возможности описания состояний классов с помо-
щью диаграмм состояний.
2. Познакомитесь с элементами диаграмм состояний и спосо-
бами их размещения на диаграмме.

Методика выполнения работы

1. Откройте файл UML, созданный в работе 12.
2. В Microsoft Visio 2010 диаграмма состояний единственная,
которая создается иначе, чем все остальные диаграммы. Для этого в проводнике по модели UML нужно выберите созданную ранее диаграмму классов и на ней класс, для которого необходимо со­здать Диаграмму состояний. Щелкнув правой кнопкой мыши по
137
значку данного класса, активизируйте команду меню «Создать» и далее «Схема состояний».
3. У рабочего листа MS Visio появится название «Схема со-
стояний-1». Переименуйте созданный лист, дав ему имя ДС (со­кращенно от «Диаграмма состояний»).
3. Разместите на схеме элементы «Начальное состояние» и «Конечное состояние», а также элементы «Состояние» в необхо­димом количестве. Если для некоторых состояний необходимо по­казать внутренние подсостояния, то в этом случае нужно разме­щать элемент «Составное состояние». При этом каждый раз при добавлении на схему данного элемента будет добавляться новый лист с именем «Схема состояний-N» (номер может отличаться). Эти листы также желательно переименовать, дав им названия ДС1, ДС2 и т. д. Дать всем состояниям (за исключением начального и конечного) соответствующие имена.
4. Соедините между собой состояния с помощью элементов переход (прямой и рефлексивный) там, где это необходимо.
5. Задайте для состояний внутренние действия – дважды щелкнуть правой кнопкой мыши по состоянию и в окне свойств в разделе «Категории» установить действия в соответствующем раз­деле: для входных действий – раздел «Вход»; для выходных дей­ствий – раздел «Выход»; для DO-действий – раздел «Внутренние переходы».
6. В случае необходимости постройте диаграмму состояний для подсостояний.

Содержание отчета и его форма

В отчете по лабораторной работе 16 должен быть приведен
процесс поэтапного построения диаграммы состояний.

Контрольные вопросы

1. Какова роль диаграмм состояния в проектировании инфор­мационных систем?
2. Для каких элементов системы создаются диаграммы состо­яний в UML?
3. Что описывает состояние класса на диаграмме состояний?
4. Может ли объект одновременно находиться в двух или бо­лее состояний или не находиться ни в одном состоянии?
5. Что такое псевдосостояния на диаграмме состояний?
138
6. Как описывается поведение класса, находящегося в опреде­ленном состоянии?
7. Что такое переход на диаграмме состояний? Какие виды пе­реходов на диаграмме используются? В чем их отличие?
8. Каковы правила перехода класса из одного состояния в другое?
9. Каким образом задается условие перехода класса из одного состояния в другое?

10. Что такое рефлексивный переход? Когда он используется?

Литература
Основная:1–4. Дополнительная: 1–4.
17. ДИАГРАММА ДЕЯТЕЛЬНОСТИ
Цель – изучение основных возможностей создания и редакти-
рования диаграмм деятельности в MS Visio.
Формируемые компетенции или их части: ПК-1; ПК-2; ПК-3;
ПК-4; ПК-30.
Теоретическая часть
Диаграммы деятельностей особенно полезны в описании по-
ведения, включающего большое количество параллельных процес­сов. Самым большим достоинством диаграмм деятельностей явля­ется поддержка параллелизма. Благодаря этому они являются мощным средством моделирования потоков работ и, по существу, параллельного программирования. Самый большой их недостаток заключается в том, что связи между действиями и объектами про­сматриваются не слишком четко.
Эти связи можно попытаться определить, используя для деятель­ностей метки с именами объектов, но этот способ не обладает такой же простотой, как у диаграмм взаимодействия. Диаграммы деятель­ностей предпочтительнее использовать в следующих ситуациях:
а) анализ варианта использования. На этой стадии нас не ин­тересует связь между действиями и объектами, а нужно только по­нять, какие действия должны иметь место и каковы зависимости в поведении системы. Связывание методов и объектов выполняется позднее с помощью диаграмм взаимодействия;
139
б) анализ потоков работ (workflow) в различных вариантах использования. Когда варианты использования взаимодействуют друг с другом, диаграммы деятельностей являются мощным сред­ством представления и анализа их поведения.

Задания к работе

1. Изучите возможности описания бизнес-процесса с исполь-
зованием ИС с помощью диаграмм деятельности.
2. Познакомитесь с элементами диаграмм деятельности и спо-
собами их размещения на диаграмме.

Методика выполнения работы

1. Открыть файл UML, созданный в работе 12.
2. В проводнике по модели UML щелкнув правой кнопкой
мыши по папке «Основной пакет», выберите команду меню «Со­здать» и далее «Схема деятельности».
3. У рабочего листа MS Visio появится название «Деятель-
ность-1». Переименовать созданный лист, дав ему имя ДД (сокра­щенно от «Диаграмма деятельности»).
4. Разместите на рабочем листе элементы «Дорожка» в необ-
ходимом количестве. Присвойте дорожкам названия в соответ­ствии с распределением ответственности.
5. Разместите на схеме элементы «Начальное состояние» и «Конечное состояние», а также элементы «Состояние» в необхо­димом количестве. Задайте всем состояниям (за исключением начального и конечного) соответствующие имена.
6. Для соединения состояний между собой следует использо­вать элемент «Поток управления».
7. В случае необходимости представления разветвляющихся и сливающихся потоков разместите в необходимом количестве эле­менты «Переход (разветвление)» и «Переход (объединение)».
8. При отображении альтернативных действий используйте элемент «Решение». Причем для каждой альтернативной ветви нужно дать осмысленное название. При слиянии потоков исполь­зуйте этот же элемент, только подписывать потоки уже не нужно.
9. Для отображения на ДД изменения состояния объектов необходимо использовать элемент «Состояние объекта». Для сопо­ставления этого элемента с конкретным классом и его состоянием
140
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]