Диаграммы классов позволяют представлять внутреннее устройство модели предметной области проекта разрабатываемой системы. Однако для построения диаграмм классов необходимо общее понимание возможных действий, выполняемых системой, также необходимо понимание того, какие исполнители и внешние системы взаимодействуют разрабатываемой системой. Кроме того, для выполнения грамотного моделирования предметной области проекта важно определить границы системы и действия, попадающие в эти границы.
Язык UML предоставляет удобное средство для моделирования действий, взаимосвязей между ними, исполнителей и других важных элементов проектируемой системы с помощью диаграмм прецедентов. Для понимания диаграмм прецедентов важно определить два понятия: исполнитель (actor, актёр) и прецедент.
В рамках диаграммы прецедентов исполнитель описывает один из двух объектов реального мира:
1. Пользователей системы, конкретнее роль, которую исполняет данный пользователь или пользователи по отношению к разрабатываемой системе.
2. Внешнюю систему или сущность, взаимодействующую с разрабатываемой системой, но располагающуюся за её пределами.
Графически исполнитель или актёр обозначается в виде схематичной фигуры человека, пример которой представлен на рис. 5.1. Каждый актёр обладает текстовым идентификатором, размещаемым на диаграмме непосредственно под фигурой. В качестве идентификатора актёра следует использовать имя роли, исполняемой данным актёром, но не конкретное имя человека, исполняющего эту роль. При этом важно помнить, что один и тот же человек (пользователь) по отношению к системе может исполнять разные роли в различные моменты времени.
Рис. 5.1 Графическое обозначение актёра на диаграмме прецедентов.
Прецедент (use case) на диаграмме прецедентов определяет действие или набор действий, совершаемых исполнителем (актёром) в разрабатываемой системе. Прецедент описывает один вариант использования системы без привязки к её конкретной реализации. Иногда прецедент обозначают, как сценарий использования, однако такой перевод термина use case является не точным, поскольку прецедент объединяет внутри себя одно или несколько действий, в то время как сценарий использования подразумевает конкретную последовательность действий, что является иным по отношению к прецеденту понятием.
Графически прецедент обозначается в виде эллипса с идентификатором прецедента, размещённом внутри этого эллипса. Пример графического обозначения прецедента представлен на рис. 5.2.
Рис. 5.2. Графическое обозначение прецедента.
Прецеденты и актёры тесно связаны между собой, поскольку актёры заставляют систему выполнять те или иные прецеденты. При этом несколько актёров могут быть заняты сразу в нескольких прецедентах.
Для получения диаграммы прецедентов необходимо графически связать актёров и прецеденты с помощью связи, обозначаемой, как ассоциация. Такая связь обозначается сплошной тонкой линией и связывает актёра и прецедент, в котором он участвует. Отношение ассоциации указывает, какую конкретную роль играет актёр при взаимодействии с экземпляром прецедента. Отношение ассоциации может иметь дополнительные условные обозначения, такие, как имя и кратность, применимые к каждому из концов линии ассоциации. Пример связи ассоциации между актёром и прецедентом представлен на рис. 5.3.
Рис. 5.3. Пример ассоциации актёра и прецедента на диаграмме прецедентов.
Кратность ассоциации определяет возможное количество элементов, участвующих в данной связи с каждой из её сторон. Для кратности ассоциации в рамках диаграммы прецедентов применимы следующие значения:
· 1 – только один элемент.
· * – любое количество элементов от 0 до бесконечности.
· 0..1 – от нуля до одного элементов.
· 1..1 – только один элемент.
· 1..* – любое количество элементов от 1 до бесконечности
Диаграмма прецедентов предназначена не только для выявления действий, выполняемых разрабатываемой системой, но и для упрощения формируемых прецедентов путём выделения общих действий различных прецедентов и выделения их в отдельные прецеденты с добавлением связей между прецедентами. Такое использование диаграммы прецедентов похоже на структурирование алгоритма за счёт разбиения его на подпрограммы.
Для оптимизации прецедентов в языке UML предусмотрены три связи между прецедентами: включение, расширение и наследование (обобщение).
Отношение включения используется в том случае, если один прецедент явно включает в себя ход действий другого прецедента. Это отношение в Microsoft Visio обозначается сплошной линией с треугольной стрелкой и стереотипом <<uses>>. При этом стрелка направляется к включаемому прецеденту от базового прецедента, т.е. прецедента, в который включается включаемый прецедент. Отношение включения предназначено для выделения поведения, наблюдаемого во множестве прецедентов.
Отношение расширения практически аналогично отношению включения, но отличается тем, что базовый прецедент неявно включает в себя поведение другого прецедента в одной или нескольких указанных точках, называемых точками расширения. Это отношение в Microsoft Visio обозначается сплошной линией с треугольной стрелкой и стереотипом <<extends>>. При этом стрелка направляется к включаемому прецеденту от базового прецедента, т.е. прецедента, в который включается включаемый прецедент. Отношения расширения часто используются для описания поведения системы при выполнении или не выполнении какого-либо условия.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.