Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Проектирование и разработка информационных систем. Учебное пособие для СПО
.pdf
71
Прецедент — это набор действий, совершаемых в системе,
для достижения определенной цели. Прецедент должен описывать вариант использования системы без ориентации на определенное проектное решение или реализацию. Другими словами,
прецедент описывает, что должна делать система, не определяя,
как она это делает. Обозначается прецедент эллипсом и кратким
именем. Имя прецедента (см. рис. 2.9) может находиться как
внутри эллипса, так и под ним.
Исполнители и прецеденты изображаются на диаграммах
прецедентов. Исполнитель, инициирующий определенный прецедент, обычно изображается на диаграмме слева.
– Прецеденты помещаются в центре.
– Все остальные исполнители, задействованные в данных
прецедентах, изображаются в правой части диаграммы.
– Стрелки указывают на то, какие исполнители заняты в
каких прецедентах.
На рис. 2.10 показано, как исполнители и прецеденты
изображаются на диаграмме прецедентов UML. Из рисунка также видно, что Исполнитель 1 занят во всех трех прецедентах,
Исполнитель 3 активно участвует в Прецеденте 3, а Исполнитель 2 просто получает результаты Прецедента 2.
Рис. 2.10. Диаграмма прецедентов

72
2.4.3. Диаграмма последовательностей
Объекты взаимодействуют друг с другом посредством обмена сообщениями. Сообщение — это связь между двумя объектами или в пределах одного объекта, означающая какой-либо
вид деятельности. Обычно вид деятельности состоит из одного
или нескольких действий (исполняемых выражений), которые
приводят к изменению одного или нескольких атрибутов объекта или к возврату некоторого значения (значений) объекту, отправившему сообщение.
Действия бывают пяти разных типов.
1. Действие вызова — это вызов метода объекта. Действие
вызова синхронно, что означает: отправитель предполагает, что
получатель готов принять сообщение, он отправляет сообщение
и ожидает ответа от получателя до выполнения других действий.
Обозначается стрелкой, направленной к вызываемому объекту.
2. Действие возврата — это возврат значения в ответ на
действие вызова. Действие возврата обозначается пунктирной
линией со стрелкой, ведущей от объекта, который отправляет
значение, к объекту, который его получает (другими словами, от
вызываемого объекта к вызывавшему). Обозначается пунктирной стрелкой.
3. Действие создания создает объект. Другими словами,
оно отправляет запрос классу на создание его экземпляра.
4. Действие уничтожения уничтожает объект. Если быть
точным, то оно дает объекту команду уничтожить себя. Обозначается перечеркиванием линии жизни объекта.
5. Действие отправки сигнала объекту. Сигнал — это ме-
тод синхронной коммуникации между объектами: один объект
«генерирует» сигнал другому объекту, который его «перехватывает», но в отличие от отправки сообщений отправитель сигнала
не ожидает ответа от получателя. Обозначается половинной
стрелкой. Обычно типом сигналов являются исключения, то есть
ошибочный вариант развития сценария.
Диаграмма последовательностей в UML отображает временной порядок сообщений, передаваемых между объектами.
Основные понятия, используемые в этой диаграмме:

73
– Верхняя строка диаграммы содержит перечень объектов,
участвующих, например, в каком-то прецеденте. Их можно
представить в виде прямоугольников, или в виде пиктограмм.
– У каждого объекта есть линия жизни — вертикальная
пунктирная линия, обозначающая период существования объекта. (Если на линии жизни объекта нет символа «уничтожения»,
можно считать, что объект является долгоживущим.)
– Сообщения иллюстрируют действия, совершаемые объектами по отношению друг к другу и по отношению к самим
себе (горизонтальные стрелки).
– Фокус управления — это длинный узкий прямоугольник, находящийся на линии жизни объекта. Прямоугольник
представляет период времени, в течение которого объект контролирует поток событий, например, когда объект вызывает метод или создает объект (указывать его необязательно).
Пример диаграммы последовательностей приведен на
рис. 2.11. Слева даны пояснения к диаграмме, которые не входят
в диаграмму.
Рис. 2.11. Диаграмма последовательностей прецедента «Регистрация»

74
2.4.4. Диаграммы состояний
Используются для описания поведения сложных систем,
они определяют все возможные состояния, в которых может
находиться объект, а также процесс смены состояния объекта в
результате некоторых событий. Эти диаграммы используются
для описания поведения одного объекта в нескольких прецедентах и отражает его жизненный цикл (ЖЦ) в реальном или абстрактном мире. Диаграмма состоит из множества:
– состояний объекта;
– событий, сообщающих о перемещении объекта в новое
состояние;
– правил переходов, определяющих новое состояние объекта при возникновении тех или иных событий;
– действий, которые должны быть выполнены объектом,
когда он переходит в новое состояние.
Состояние — условие или ситуация в ходе ЖЦ объекта, в
течение которого он либо выполняет определенную деятельность, либо ожидает событие. Состояние объекта характеризуется определенными значениями его атрибутов. На диаграмме состояния обозначается скругленными прямоугольниками, которые представляют состояния, через которые проходит объект в
течение своего жизненного цикла. Существует также два вида
псевдосостояний: начальное, в котором находится объект сразу
после его создания (обозначается сплошным кружком), и конеч-
ное, которое объект не может покинуть, если перешел в него
(обозначается кружком, обведенным окружностью).
Переход (transition) в следующее состояние возможен либо
по окончании выполнения действий, которые он выполнил в
этом состоянии, либо при возникновении внешних событий (получении объектом сообщения или приеме сигнала), либо при
сочетании и первого, и второго.
Пребывание моделируемого объекта или системы в первом состоянии может сопровождаться выполнением некоторых
внутренних действий или деятельности (см. рис. 2.12).

75
Рис. 2.12. Пример состояния
При этом изменение текущего состояния объекта будет
возможно либо после завершения этих действий (деятельности),
либо при возникновении некоторых внешних событий. В обоих
случаях говорят, что происходит переход объекта из одного со-
стояния в другое. На диаграммах состояния можно на переходе
указать имя события и действия, производимые объектом в ответ на внешние события при переходе из одного состояния в
другое. Переходы имеют метки, которые состоят из трех необязательных частей, — это события, условия, действия:
<событие> <[условие]> </действие>
На диаграммах также отображаются функции, которые
выполняются объектом в определенном состоянии.
На рис. 2.13 показаны триггерный переход (для ИС охранной системы) и нетриггерный (для вывода отчета). Триггерный
переход означает, что что-то случилось, и объект перешел в другое состояние. Нетриггерный переход — выполнение всех действий, запланированных на текущее состояние.
Диаграмма состояний может выглядеть так, как представлена на рис. 2.14.

76
Рис. 2.13. Переходы на диаграмме состояний: а — триггерный;
б — нетриггерный
Рис. 2.14. Диаграмма состояний для объекта ― прохождение курса
2.4.5. Диаграммы деятельности
Диаграмма деятельности — это, по существу, блок-схема,
которая показывает, как поток управления переходит от одной
деятельности к другой.
Как правило, они применяются, чтобы промоделировать
последовательные (а иногда и параллельные) шаги вычисли-

77
тельного процесса. С их помощью можно также моделировать
жизнь объекта, когда он переходит из одного состояния в другое
в разных точках потока управления, но они пригодны и для моделирования потока управления при выполнении некоторой
операции. Если в диаграммах последовательностей акцент делается на переходах потока управления от объекта к объекту, то
диаграммы деятельности описывают переходы от одной деятельности к другой.
Деятельность (Activity) это некоторый относительно продолжительный этап выполнения в автомате. В конечном итоге
деятельность сводится к некоторому действию. Действие может
заключаться в вызове другой операции, посылке сигнала, создании или уничтожении объекта либо в простом вычислении, скажем, значения выражения.
Диаграмма деятельности моделирует поток управления, в
котором происходят различные события. Можно вычислить выражение, в результате чего изменяется значение некоторого атрибута или возвращается некоторое значение. Можно выполнить
операцию над объектом, послать ему сигнал или даже создать
его или уничтожить. Все эти выполняемые атомарные вычисления называются состояниями действия и изображаются прямоугольниками с закругленными краями (рис. 2.15).
Рис. 2.15. Состояния действия
Когда действие или деятельность в некотором состоянии
завершается, поток управления сразу переходит в следующее
состояние действия или деятельности. Для описания этого потока используются переходы, показывающие путь из одного состояния действия или деятельности в другое. В UML переход
представляется простой линией со стрелкой.

78
Наряду с простыми последовательными переходами
встречается ветвление, которое описывает различные пути выполнения в зависимости от значения условия (Булевского выражения). Точка ветвления представляется ромбом. В точку ветвления может входить ровно один переход, а выходить два или
более. Для каждого исходящего перехода задается булевское
выражение, которое вычисляется только один раз при входе в
точку ветвления (см. рис. 2.16).
В диаграммах деятельности можно встретить и параллельные потоки, и это особенно характерно для моделирования бизнес-процессов. Для их обозначения используется синхронизационная черта жирная вертикальная или горизонтальная линия.
Она может означать как разделение параллельных процессов,
так и их слияние.
Рис. 2.16. Ветвление
Итак, диаграмма деятельности может быть ассоциирована
с потоком управления, но в ней могут участвовать объекты. Рассмотрим последовательность операций по обработке заказа.
Словарь проблемной области включает такие классы, как «заказ» и «счет». Некоторые виды деятельности будут порождать
объекты-экземпляры этих классов (например, команда «Обработать заказ» создаст объект «заказ»), или модифицировать эти
объекты (например, команда «Отгрузить заказ» может изменить
состояние объекта «заказ» на «Не выполнен»).

79
Диаграммы деятельности особенно часто используются
для иллюстрации бизнес-процессов. Иногда бывает полезно разбить состояния деятельности на диаграммах деятельности на
группы, каждая из которых представляет отдел компании, отвечающий за ту или иную работу. В UML такие группы называются дорожками (Swimlanes), поскольку визуально каждая группа
отделяется от соседних вертикальной чертой, как плавательные
дорожки в бассейне (рис. 2.17).
Каждой дорожке присваивается уникальное имя. Никакой
глубокой семантики дорожка не несет, это просто сфера ответственности за часть всей работы, изображенной на диаграмме.
Каждая деятельность (прямоугольник) принадлежит ровно одной дорожке, но переходы могут пересекать границы дорожек.
Рис. 2.17. Дорожки на диаграмме деятельностей

80
Вопросы и задания для самопроверки
1. Разрабатывается система ПО для автоматизации биб-
лиотечного каталога. Эта система будет содержать информацию
о всех книгах в библиотеке и будет полезна библиотечному персоналу, абонентам и читателям. Система должна иметь средства
просмотра каталога, средства создания запросов и средства, позволяющие пользователям резервировать книги, находящиеся в
данный момент на руках. Определите основные опорные точки
зрения, которые необходимо учесть при выявлении требований.
Постройте диаграммы классов и объектов UNL, необходимые
для разработки этой системы.
2. Для трех точек зрения, определенных в системе библио-
течного каталога, составьте диаграммы нескольких прецедентов.
3. Для сервисов, определенных в упражнении 1, укажите
наиболее важные нефункциональные ограничения.
4. Что является принципиально различным в функцио-
нально-структурной и объектно-ориентированной методиках?
5. Постройте диаграммы IDEF0 для библиотечной систе-
мы (упражнение 1).
6. Постройте диаграммы состояний UNL для некоторых
объектов библиотечной системы (упражнение 1).
7. В чем отличие функционально-структурного подхода к
проектированию от объектно-ориентированного? Это отличие
первично для описания структуры или динамики проекта?
8. Какие диаграммы UNL служат для описания структуры
проекта?
9. Чем отличаются классы и объекты?
10. Какие диаграммы UNL служат для описания динамики
проекта?
11. Что такое прецедент и какие моменты прецедента от-
ражаются на диаграмме прецедентов?
12. Что именно описывают диаграммы состояний и дея-
тельностей?
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
