Добавлен: 25.10.2018
Просмотров: 723
Скачиваний: 5
РАБОТА 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», вызываемого из контекстного меню данной фигуры.
-
Создание новой диаграммы прецедентов. Добавьте в основной пакет новую диаграмму прецедентов и обозначьте страницу, соответствующую данной диаграмме «Прецеденты системы».
-
Выделение актёров. Проанализируйте вариант задания и выделите актёров, участвующих в описанных сценариях. Поместите фигуры актёров на диаграмме прецедентов и назначьте им наиболее подходящие имена. При необходимости используйте связи между актёрами.
-
Выделение прецедентов. Проанализируйте вариант задания и выделите прецеденты, участвующих в описанных сценариях. Поместите фигуры прецедентов на диаграмме прецедентов и назначьте им наиболее подходящие имена.
-
Оптимизация прецедентов. Выделите не менее трёх прецедентов, на которые можно разложить прецеденты, выделенные в предыдущем задании. Пометите новые прецеденты на диаграмме прецедентов, назначьте им наиболее подходящие имена и соедините их подходящими связями между собой и ранее размещёнными прецедентами.
-
Определение границ разрабатываемой системы. Поместите на диаграмме прецедентов фигуру границы системы и назначьте для этой границы наиболее подходящее название. Определите прецеденты, относящиеся к разрабатываемой системе и перенесите внутрь границы системы.