Добавлен: 25.10.2018
Просмотров: 975
Скачиваний: 7
РАБОТА 3. РАЗРАБОТКА ДИАГРАММЫ ПРЕЦЕДЕНТОВ
Диаграммы классов позволяют представлять внутреннее устройство модели предметной области проекта разрабатываемой системы [3]. Однако для построения диаграмм классов необходимо общее понимание возможных действий, выполняемых системой, также необходимо понимание того, какие исполнители и внешние системы взаимодействуют разрабатываемой системой. Кроме того, для выполнения грамотного моделирования предметной области проекта важно определить границы системы и действия, попадающие в эти границы.
-
Понятия актёра и прецедента
Язык UML предоставляет удобное средство для моделирования действий, взаимосвязей между ними, исполнителей и других важных элементов проектируемой системы с помощью диаграмм прецедентов [1]. Для понимания диаграмм прецедентов важно определить два понятия: исполнитель (actor, актёр) и прецедент.
В рамках диаграммы прецедентов исполнитель описывает один из двух объектов реального мира:
-
Пользователей системы, конкретнее роль, которую исполняет данный пользователь или пользователи по отношению к разрабатываемой системе.
-
Внешнюю систему или сущность, взаимодействующую с разрабатываемой системой, но располагающуюся за её пределами.
Графически исполнитель или актёр обозначается в виде схематичной фигуры человека, пример которой представлен на рис. 5.1. Каждый актёр обладает текстовым идентификатором, размещаемым на диаграмме непосредственно под фигурой. В качестве идентификатора актёра следует использовать имя роли, исполняемой данным актёром, но не конкретное имя человека, исполняющего эту роль. При этом важно помнить, что один и тот же человек (пользователь) по отношению к системе может исполнять разные роли в различные моменты времени.
о
Актер
1![]()
Рис. 5.1 Графическое обозначение актёра на диаграмме прецедентов.
Прецедент (use case) на диаграмме прецедентов определяет действие или набор действий, совершаемых исполнителем (актёром) в разрабатываемой системе. Прецедент описывает один вариант использования системы без привязки к её конкретной реализации. Иногда прецедент обозначают, как сценарий использования, однако такой перевод термина use case является не точным, поскольку прецедент объединяет внутри себя одно или несколько действий, в то время как сценарий использования подразумевает конкретную последовательность действий, что является иным по отношению к прецеденту понятием.
Графически прецедент обозначается в виде эллипса с идентификатором прецедента, размещённом внутри этого эллипса. Пример графического обозначения прецедента представлен на рис. 5.2.
Рис.
5.2. Графическое обозначение прецедента.![]()
Прецеденты и актёры тесно связаны между собой, поскольку актёры заставляют систему выполнять те или иные прецеденты. При этом несколько актёров могут быть заняты сразу в нескольких прецедентах.
Для получения диаграммы прецедентов необходимо графически связать актёров и прецеденты с помощью связи, обозначаемой, как ассоциация. Такая связь обозначается сплошной тонкой линией и связывает актёра и прецедент, в котором он участвует. Отношение ассоциации указывает, какую конкретную роль играет актёр при взаимодействии с экземпляром прецедента. Отношение ассоциации может иметь дополнительные условные обозначения, такие, как имя и кратность, применимые к каждому из концов линии ассоциации. Пример связи ассоциации между актёром и прецедентом представлен на рис. 5.3.
Рис.
5.3. Пример ассоциации актёра и прецедента
на диаграмме прецедентов.
Кратность ассоциации определяет возможное количество элементов, участвующих в данной связи с каждой из её сторон. Для кратности ассоциации в рамках диаграммы прецедентов применимы следующие значения:
1 - только один элемент.
-
- любое количество элементов от 0 до бесконечности.
-
.1 - от нуля до одного элементов.
-
1 - только один элемент.
-
* - любое количество элементов от 1 до бесконечности.
-
Отношения между прецедентами
Диаграмма прецедентов предназначена не только для выявления действий, выполняемых разрабатываемой системой, но и для упрощения формируемых прецедентов путём выделения общих действий различных прецедентов и выделения их в отдельные прецеденты с добавлением связей между прецедентами. Такое использование диаграммы прецедентов похоже на структурирование алгоритма за счёт разбиения его на подпрограммы.
Для оптимизации прецедентов в языке UML предусмотрены три связи между прецедентами: включение, расширение и наследование (обобщение).
Отношение включения используется в том случае, если один прецедент явно включает в себя ход действий другого прецедента. Это отношение в Microsoft Visio обозначается сплошной линией с треугольной стрелкой и стереотипом <<uses>>. При этом стрелка направляется к включаемому прецеденту от базового прецедента, т.е. прецедента, в который включается включаемый прецедент. Отношение включения предназначено для выделения поведения, наблюдаемого во множестве прецедентов.
Отношение расширения практически аналогично отношению включения, но отличается тем, что базовый прецедент неявно включает в себя поведение другого прецедента в одной или нескольких указанных точках, называемых точками расширения. Это отношение в Microsoft Visio обозначается сплошной линией с треугольной стрелкой и стереотипом <<extends>>. При этом стрелка направляется к включаемому прецеденту от базового прецедента, т.е. прецедента, в который включается включаемый прецедент. Отношения расширения часто используются для описания поведения системы при выполнении или не выполнении какого-либо условия.
Отношение наследования прецедентов полностью аналогично наследованию для классов. При этом прецедент-предок определяет поведение, наследуемое прецедентами-потомками. Графическое представление отношения обобщения прецедентов аналогично графическому представлению отношения обобщения для классов.
Следует отметить, что отношение обобщения (наследования) применимо не только для классов и прецедентов, но и для актёров.
-
Обозначение границ разрабатываемой системы
Современные информационные системы часто разрабатываются с целью замены существующих систем или тесной интеграции с ними. Поэтому на диаграмме прецедентов часто отображаются прецеденты и актёры, не относящиеся к разрабатываемой системе. При этом нет необходимости отображать все прецеденты и актёров, относящихся к системам, с которыми взаимодействует разрабатываемая система. Достаточно отобразить системы, с которыми осуществляется взаимодействие в минимальном объёме, необходимом для понимания назначения и работы разрабатываемой системы.
Для отделения прецедентов, относящихся к разрабатываемой системе, в UML предусмотрен элемент - система, обозначаемый прямоугольником [1]. Пример обозначения границ системы представлен на рис. 5.4. Здесь в состав разрабатываемой системы входят прецеденты «Сценарий выполнения 1-4», в то время как прецеденты «Сценарий выполнения 5-6» не входят в состав разрабатываемой системы. Кроме того, видно, что Актёр 1 взаимодействует с прецедентами «Сценарий выполнения 1» и «Сценарий выполнения 5».
Система
Рис.
5.4. Обозначение границ разрабатываемой
системы на диаграмме прецедентов.

-
Создание диаграммы прецедентов
Диаграмма прецедентов в среде Microsoft Visio обозначается, как «Схема сценариев выполнения». Для создания такой диаграммы следует использовать пункт «Создать/Схема сценариев выполнения» контекстного меню пакетов и подсистем, отображаемых в окне «Проводник по моделям». В результате выбора этого пункта меню создаётся новая страница документа.
Добавление фигур, предназначенных для создания диаграмм прецедентов допустимо и на страницы структурных схем Microsoft Visio,
однако такие страницы предназначены для создания диаграмм классов. Поэтому использование этих страниц для создания диаграмм прецедентов является некорректным.
-
Используемые фигуры
Фигура «Актер» представляет одну или несколько
обобщённых ролей внешнего по отношению к проектируемой системе объекта. Таким образом, один физический объект может быть представлен несколькими актёрами.
Для присвоения актёру имени следует воспользоваться окном свойств его фигуры или в окне «Проводник по моделям». Для подключения актёра к прецедентам следует использовать фигуру «Сообщение».
Фигура «Актёр», как и класс, обладает атрибутами и операциями, а также поддерживает наследование. Иными словами, актёры могут наследовать друг друга. Атрибуты и операции актёра задаются в диалоговом окне его свойств или окне «Проводник по моделям».
Фигура «Прецедент» обозначает множество событий, происходящих при использовании той или иной системы актёром для достижения какой-либо цели. Как правило, прецедент представляет совокупность или последовательность выполняемых процедур. В среде Microsoft Visio фигура «Прецедент» обозначается, как фигура «Сценарий выполнения».
Прецеденты, как актёры и классы, обладает атрибутами и операциями, поддерживает наследование. Кроме того, прецедент обладает возможностью задания точек расширения, используемых для указания мест вхождения в данный прецедент других прецедентов, с которыми данный прецедент имеет отношения расширения и включения.
Атрибуты, операции и точки расширения прецедента задаются в диалоговом окне его свойств.
|_ Сообщение
Фигура «Связь ассоциации» предназначена для связывания актёра и прецедента. В среде Microsoft Visio фигура «Связь ассоциации» обозначается, как фигура «Сообщение».
Данная фигура, как линия, имеет два окончания, которые можно именовать и указывать рядом с ними кратность связи. Для настройки названий окончаний фигуры «Связь ассоциации» следует использовать её окно свойств.
Окончания фигуры «Связь ассоциации» можно скрыть, для этого следует в диалоговом окне «Параметры отображения фигуры UML», вызываемом с помощью контекстного меню данной фигуры, установить флажки «Первое окончание» и «Второе окончание» в разделе «Скрыть». В случае если оба окончания фигуры «Связь ассоциации» скрыты, данная фигура отображается в виде обычной линии.
. ^
Фигура «Связь включения» предназначена для ооо- значения связи между двумя прецедентами, при которой один прецедент (базовый) обязательно включает в себя поведение, определенное другим прецедентом. Стрелка фигуры «Связь включения» указывает на базовый прецедент. В среде Microsoft Visio фигура «Связь включения» обозначается, как фигура «Использование».
^
Фигура «Связь расширения» предназначена для ооо- значения связи между двумя прецедентами, при которой один прецедент (базовый) может включать в себя поведение, определенное другим прецедентом. Стрелка фигуры «Связь расширения» указывает на базовый прецедент. В среде Microsoft Visio фигура «Связь расширения» обозначается, как фигура «Расширение».
Фигура «Граница системы» обозначает прецеденты, реализуемые в рамках разрабатываемой системы. Данная фигура представляет собой прямоугольник, внутри которого размещены прецеденты, входящие в состав разрабатываемой системы. Для задания названия системы следует использовать двойной клик мыши по данной фигуре или клавишу F2.
Примечание Перемещение границы системы не приводит к одновременному перемещению прецедентов, размещённых внутри этой фигуры.
Фигура «Ограничение» определяет условия и высказывания, необходимые для выполнения для того, чтобы система была признана правильной. При использовании данной фигуры применяются ограничения, выражаемые в виде текста, заключенного в фигурные скобки ({ }).
Ограничение должно быть связано с одним или с несколькими элементами, например, с прецедентами. Для организации связи между ограничением и элементом перетащите мышью управляющий маркер фигуры «Ограничение» и присоедините его к точке соединения на другом элементе.
Для фигуры «Ограничение» в среде Microsoft Visio по умолчанию применимы следующие стереотипы, поясняющие назначение данного ограничения: invariant (инвариантное к началу или завершению выполнения), precondition (ограничение начала выполнения) и postcondition (ограничение завершения выполнения).
Стереотип, имя и тело ограничения задаются в диалоговом окне его свойств. Обозначение стереотипа, имени и внешней границы фигуры «Ограничение» может быть отключено в диалоговом окне «Свойства ограничения UML», вызываемого из контекстного меню данной фигуры.
-
Задание
-
Создание новой диаграммы прецедентов. Добавьте в основной пакет новую диаграмму прецедентов и обозначьте страницу, соответствующую данной диаграмме «Прецеденты системы».
-
Выделение актёров. Проанализируйте вариант задания и выделите актёров, участвующих в описанных сценариях. Поместите фигуры актёров на диаграмме прецедентов и назначьте им наиболее подходящие имена. При необходимости используйте связи между актёрами.
-
Выделение прецедентов. Проанализируйте вариант задания и выделите прецеденты, участвующих в описанных сценариях. Поместите фигуры прецедентов на диаграмме прецедентов и назначьте им наиболее подходящие имена.
-
Оптимизация прецедентов. Выделите не менее трёх прецедентов, на которые можно разложить прецеденты, выделенные в предыдущем задании. Пометите новые прецеденты на диаграмме прецедентов, назначьте им наиболее подходящие имена и соедините их подходящими связями между собой и ранее размещёнными прецедентами.
-
Определение границ разрабатываемой системы. Поместите на диаграмме прецедентов фигуру границы системы и назначьте для этой границы наиболее подходящее название. Определите прецеденты, относящиеся к разрабатываемой системе и перенесите внутрь границы системы.