Элементы диаграммы активностей 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Элементы диаграммы активностей



Разберем основные элементы диаграммы активностей, используемые при описании бизнес-процессов. Прежде всего, любая диаграмма активностей начинается с начального состояния, обозначаемого жирной точкой, и заканчивается конечным состоянием, обозначаемым жирной точкой в окружности (рис. 41). Начальное состояние определяет точку входа в процесс, а конечное – точку выхода. На диаграмме допускается только одно начальное состояние; конечных состояний может быть несколько, но лучше, чтобы оно также было единственным. Если не получается построить диаграмму активностей с единственным конечным состоянием без пересечения линий, то лучше разбить ее на несколько диаграмм (например, одну крупную и несколько более детальных).

У любого бизнес-процесса всегда есть участники. Для каждого участника на диаграмме активностей создается так называемая плавательная дорожка – прямоугольная область диаграммы, в которой располагаются активности данного участника. Между собой плавательные дорожки разделяются пунктирными линиями (рис. 41).

Основным элементом диаграммы активностей является активность, которую иногда еще называют деятельностью. Дадим определение.

Определение. Активность – это состояние объекта (группы объектов), в котором он (они) выполняет некоторые действия.

Активность на диаграмме изображается в виде прямоугольника со скругленными углами и именем активности внутри. Переходы между активностями показываются при помощи стрелок (рис. 41).

При описании бизнес-процессов нередко встречаются ситуации, когда выбор активности, в которую следует перейти на следующем шаге, зависит от некоторого условия. Для отражения подобных особенностей процесса используется условный переход, который изображается в виде ромба (рис. 42). Альтернатив может быть 2 или больше, и они должны полностью покрывать все возможные варианты разрешения условия.

 

Рис. 42. Условный переход

 

Рис. 43. Сложные переходы

Кроме условных переходов существуют еще сложные переходы, которые разделяются на разветвители и синхронизаторы (рис. 43). Разветвители используются для разделения (распараллеливания) потока управления (на рисунке слева), а синхронизаторы – наоборот, для слияния нескольких потоков (на рисунке справа).

Наличие на диаграмме разветвителя означает, что при его срабатывании сразу два объекта переходят в активное состояние. Рассмотрим, например, предметную область «Гонки Формула-1» и процесс «Обслуживание машины на pit-стопе». В данном случае при заезде машины на pit-стоп в активное состояние переходят сразу две команды техников, одна из которых меняет резину, а вторая – заливает бензин. Для моделирования такой ситуации необходимо использовать разветвитель (рис. 44).

Рис. 44. Пример использования сложных переходов

Наличие на диаграмме синхронизатора означает, что данный переход срабатывает только в том случае, если завершились все его входящие активности. Например, очевидно, что машина может уехать с pit-стопа только в том случае, если обе команды техников закончили свою работу. Для моделирования такой ситуации необходимо использовать синхронизатор (рис. 44).

Необходимо четко понимать разницу между синхронизатором и состоянием с несколькими входами. Например, бизнес-процесс, изображенный на рис. 41, может прийти в конечное состояние либо в случае невозможности поставки товара, либо после отмены заказа, либо после отгрузки товара. Напротив, процесс, изображенный на рис. 44, может прийти в конечное состояние только после того, как завершится и смена резины, и дозаправка.

Диаграммы активностей обычно строят одновременно с диаграммами прецедентов. Эти два вида диаграмм дополняют друг друга. Диаграммы активностей позволяют понять бизнес-процесс заказчика, а прецеденты позволяют определить место разрабатываемой системы в этом бизнес-процессе.

Вопросы для самоконтроля

1. Что такое активность?

2. Для чего нужны «плавательные дорожки»?

3. В чем разница между моделью прецедентов и моделью бизнес-процессов?

Задания для самостоятельной работы

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

2. Постройте диаграммы активностей для учебного задания, приведенного в конце пособия.

Тема 6.4. Концептуальное моделирование и
диаграммы понятий

Тематический контекст

Краткое содержание

1. Понятия и их атрибуты.

2. Идентификация понятий.

3. Ассоциации, идентификация ассоциаций, роли.

4. Ограничения.

5. Отношение обобщения, правило «100%», правило «is_a», абстрактные понятия, многомерная множественная классификация.

6. Отношение агрегации, композитная и коллективная агрегация, идентификация отношений агрегации.

7. Порядок построения концептуальной модели.

Определение. Концептуальная модель предметной области – это модель, отражающая основные понятия предметной области, их структуру и взаимосвязи.

Результат концептуального моделирования отображается на диаграмме понятий, которая является частным случаем диаграммы классов языка UML. На рис. 45 приведен пример диаграммы понятий, иллюстрирующей часть концептуальной модели предметной области «Система розничной торговли».

Рис. 45. Пример диаграммы понятий

На диаграммах понятий обычно отображаются следующие элементы: понятия и их атрибуты, отношения ассоциации и обобщения, а также ограничения. Разберем эти элементы подробно.

Понятие

Прежде всего, необходимо разобраться с понятием понятия. Говоря обще, понятие – это представление некоторой идеи или объекта в сознании человека. Формальное определение понятия дается ниже.

Определение. Понятие – это тройка: символ, содержание и расширение, где символ – это слово или образ, представляющий понятие; содержание – это определение понятия, а расширение – это множество примеров, к которым понятие применимо.

Рассмотрим в качестве примера понятие окружности. Символом в данном случае будет слово «окружность», определением – «геометрическое место точек, равноудаленных от данной», а расширением – множество всевозможных окружностей с разными радиусами.

Идентификация понятий. Для построения концептуальной модели необходимо прежде всего выделить понятия предметной области. Основным источником понятий являются текстовые описания предметной области (прецеденты). Точного метода выделения понятий нет. На практике можно использовать непосредственное выделение понятий из описания предметной области или поиск по списку стандартных категорий. Рассмотрим эти методы.

Суть непосредственного выделения понятий из текстовых описаний сводится к поиску имен существительных и их рассмотрению в качестве кандидатов на понятия. В данном случае надо понимать, что между именами существительными и понятиями нет однозначного соответствия, т.к. для естественного языка человека характерны такие явления, как синонимы и омонимы. Кроме того, имя существительное может соответствовать атрибуту (например, дата) или операции (например, завершение).

Богатый опыт моделирования позволил человечеству сформулировать список стандартных категорий понятий, которые обычно имеют значение (табл. 1). Данным списком можно воспользоваться для уточнения состава понятий концептуальной модели предметной области.

Для изображения понятий на диаграмме понятий используется нотация для класса без раздела операций (см. диаграмму классов). Если понятие не имеет атрибутов или они не важны в данном контексте, то раздел атрибутов может опускаться (рис. 46).

Рис. 46. Варианты графической нотации для
изображения понятий

Таблица 1. Примеры категория понятий

Категория понятия Пример
Физические или материальные объекты Самолет
Спецификации, элементы дизайна или описания объектов Описание полета, описание товара
Места Магазин, Аэропорт
Транзакции Продажа, Платеж, Бронирование
Элемент транзакции Товарная позиция
Роли людей Кассир, Пилот
Контейнеры других объектов Склад, Магазин, Самолет
Содержимое контейнеров Элемент, Пассажир, Товар
Другие компьютерные или электромеханические системы, внешние по отношению к данной системе Банк (для банкомата)
Абстрактные понятия Голод, Клаустрофобия
Организации Отдел продаж, Библиотека
События Продажа, Полет
Процессы (обычно не представляются в виде понятий) Продажа продукта, Бронирование места
Правила и политики Правила возврата товара, политика выдачи кредитов
Каталоги Каталог товаров, книг
Записи финансовой, трудовой, юридической и др. деятельности Чек, Трудовой контракт
Руководства, книги Должностная инструкция

Ассоциации

Ассоциации используются для связывания понятий между собой. В подавляющем большинстве случаев диаграмма понятий представляет собой граф, вершинами которого являются понятия, а дугами – ассоциации (рис. 47). Повторим определение ассоциации.

Рис. 47. Пример ассоциации

Определение. Ассоциация – это устойчивое структурное отношение между сущностями (в данном случае ­­– понятиями).

Основным способом выделения ассоциаций является выделение по определению. В данном случае можно предложить следующее правило. Если экземпляры некоторых двух понятий могут участвовать в устойчивых структурных связях друг с другом и есть необходимость в хранении информации об этих связях, то в концептуальную модель необходимо добавить ассоциацию между этими понятиями.

Другим способом является поиск по списку стандартных категорий ассоциаций (табл. 2). В этом случае берутся два понятия, между которыми подозревается наличие ассоциации, и проверяются по списку.

Таблица 2. Стандартные категории ассоциаций

Категория ассоциации Пример
А является физической частью В Крыло – Самолет
А является логической частью В Товарная позиция – Продажа
А физически содержится в/на В Товар – Полка, Пассажир – Самолет
А логически содержится в В Описание товара – Каталог
А является описанием В Описание товара – Товар
А известен / зарегистрирован / записан / включен в отчет / содержится в В Продажа – Система розничной торговли
А является членом В Ученик – Класс, Игрок – Команда
А является организационной единицей В Отдел – Магазин
А использует или управляет В Кассир – Система розничной торговли, Пилот – Самолет
А взаимодействует с В Покупатель – Кассир
А связан с транзакцией В Покупатель – Платеж
А является транзакцией, которая связана с другой транзакцией В Платеж – Продажа
А следует за В Остановка – Остановка
А является собственностью В Самолет – Авиакомпания, Система розничной торговли – Магазин

Из приведенного выше списка особую важность имеют следующие категории ассоциаций:

– A является физической или логической частью B;

– A физически или логически содержится в B;

– A записан в B.

Как и у понятий, у ассоциаций есть имена. В языке UML есть определенный стандарт именования ассоциаций. Имя ассоциации должно содержать некоторую глагольную форму, причем при прочтении подряд имени одного понятия, имени ассоциации и имени другого понятия, должна получаться осмысленная фраза. По умолчанию, диаграмма понятий читается слева направо и сверху вниз. Если какую-то ассоциацию необходимо читать в противоположном направлении, то это отмечается при помощи закрашенной стрелки (рис. 48).

Рис. 48. Именование ассоциаций

Роли

Каждый конец ассоциации называется ролью. Роль имеет две базовые характеристики: имя и кратность. Имя определяет название роли, в которой выступает понятие в данной ассоциации. Если имя роли не указано, то считается, что оно совпадает с именем понятия. В примере на рис. 49 человек, выступая в роли классного руководителя, руководит классом. Данную ассоциацию следует читать следующим образом: «Классный руководитель руководит классом». Аналогичным образом читается и вторая ассоциация.

Рис. 49. Роли ассоциации

Кратность роли определяет, сколько экземпляров понятия, соответствующего данной роли, может быть одновременно связано с одним экземпляром понятия, соответствующего противоположной роли. Из примера на рис. 45 следует, что классом одновременно может руководить только один руководитель, но учиться в нем могут сразу несколько учеников (символ «*» означает «много»). Кратность роли может задаваться числом, промежутком (пример: 3..5), перечислением (пример: 2,5,7) или произвольной комбинацией указанных способов.

При поиске ассоциаций следует придерживаться следующих рекомендаций:

1. Гораздо важнее идентифицировать понятия, чем ассоциации.

2. Изучение ассоциаций не должно отнимать слишком много времени, но должно приносить максимальный эффект.

3. Избегайте использования избыточных ассоциаций.

Атрибуты

Перейдем теперь к рассмотрению атрибутов. При построении концептуальной модели иногда возникает вопрос: что считать атрибутом, а что считать понятием. Дадим определение атрибута.

а

б

Рис. 50. Варианты моделирования рейса

Определение. Атрибут – это именованная характеристика сущности.

У атрибута есть имя и тип. В большинстве случаев тип атрибута должен быть примитивным (строка, число, логический, дата, перечисление). Если оказывается, что тип атрибута не элементарен или есть сомнения, то лучше сделать этот атрибут отдельным понятием и использовать ассоциацию. Например, на рис. 50, а атрибут «Пункт назначения» в большинстве случаев будет иметь сложную структуру. В соответствии с требованием о примитивности типа атрибута более предпочтительным вариантом является второй (рис. 50, б).

Есть другой способ отличить понятие от атрибута: необходимо решить, важно ли выполнение требования уникальной тождественности (т.е. важно ли различать два одинаковых значения этого атрибута)? Если да, то это понятие, в противном случае – скорее всего атрибут. Например, в крупном мегаполисе названия некоторых улиц в различных районах могут совпадать. Следовательно, использование улицы в качестве атрибута понятия «Адрес» нежелательно, т.к. приведет к путанице адресов (рис. 51, а). В данном случае имеет смысл использовать отдельное понятие «Улица» (рис. 51, б).

а

б

Рис. 51. Варианты моделирования адреса

Тип, изначально считающийся примитивным, может быть представлен в виде не примитивного в следующих случаях:

– если он состоит из отдельных частей (например, адрес или ФИО);

– если с этим типом обычно ассоциируются операции, такие как синтаксический анализ и проверка (например, ИНН или номер кредитной карты);

– если тип используется для задания количества с единицами измерения (например, цена за шт./кг/литр).

Ограничения

С любым элементом диаграммы понятий (или любой другой диаграммы языка UML) может быть связано одно или несколько ограничений. Ограничения дополняют семантику стандартных элементов и могут задаваться как в произвольной форме, так и формально. В качестве формального языка чаще всего используется целевой язык программирования или специальный язык OCL (Object Constraint Language – язык объектных ограничений), который входит в семейство стандартов OMG. На диаграмме ограничения заключаются в фигурные скобки и связываются с другими элементами при помощи пунктирных линий. Примеры ограничений можно найти на рис. 45.

Обобщение

Отношение обобщения уже рассматривалось для модели прецедентов, где оно использовалось между акторами и между прецедентами. В концептуальной модели обобщение используется между понятиями. Далее вместо термина «понятие» будет использоваться термин «тип», т.к. он более удобен. Повторим определение обобщения.

Определение. Обобщение – это отношение между элементом-родителем и элементом-потомком, при котором потомок является частным случаем родителя и наследует его структуру, поведение и семантику.

Элемент-родитель обычно называется супертипом, а элемент-потомок – подтипом. Движение от подтипа к супертипу называется обобщением, а от супертипа к подтипу – специализацией (рис. 52).

Рис. 52. Обобщение и специализация

Для проверки правильности использования отношения обобщения существует два правила: правило «100%» и правило «is_a». Отношение обобщения считается правильным, если выполняются оба эти правила. Рассмотрим их подробно.

Правило «100%». 100% определения супертипа должны быть применимы к подтипу. Подтип должен удовлетворять 100% определения своего супертипа. Это касается как атрибутов, так и ассоциаций.

Модель, приведенная на рис. 53, удовлетворяет сформулированному выше правилу, т.к. каждый конкретный платеж также характеризуется датой, суммой и ассоциацией с продажей.

Рис. 53. Модель платежа

Правило «is_a». Все элементы множества (расширения) подтипа должны быть элементами множества (расширения) его супертипа, т.е. подтип – это (is-a) супертип.

На рис. 54 проиллюстрированы множества типов для модели платежа. Действительно, каждый конкретный платеж является платежом. Следовательно, любой экземпляр (элемент множества), например безналичного платежа, будет также и экземпляром (элементом множества) платежа. Таким образом, модель платежа на рис. 53 удовлетворяет обоим правилам и, следовательно, является корректной.

Рис. 54. Множества типов для модели платежа

Покажем, что выполнения только одного правила недостаточно. Рассмотрим, например, два понятия: окружность и эллипс. Для простоты будем считать, что оси эллипса расположены параллельно осям координат. Использование только правила «100%» может привести к варианту, показанному на рис. 55, а. Данная модель является ошибочной, т.к. эллипс не является частным случаем окружности. Использование только правила «is_a» может привести к варианту, показанному на рис. 55, б, который также является неправильным, т.к. подтип не наследует структуру супертипа. Использование обоих правил исключает первые два варианта и приводит к правильной модели, представленной на рис. 55, в.

А б в

Рис. 55. Способы моделирования окружности и эллипса

Правила «100%» и «is_a» определяют, когда можно использовать обобщение, но ничего не говорят о том, когда его нужно использовать. Например, на рис. 56 представлена формально правильная, но в большинстве случаев бесполезная иерархия понятий. Ниже приводятся рекомендации, когда следует выделять подтипы (специализация) и супертипы (обобщение).

Рис. 56. Модель клиента

Тип следует разбивать на подтипы, если:

– подтип имеет дополнительные атрибуты, интересные с точки зрения задачи (рис. 57, а);

– подтип имеет дополнительные ассоциации, интересные с точки зрения задачи (рис. 57, а);

– подтипу соответствует понятие, управляемое, обрабатываемое, реагирующее или используемое способом, отличным от способа, определяемого супертипом или другим подтипом (рис. 57, б).

А б

Рис. 57. Примеры использования обобщения

Для группы типов следует вводить супертип, если:

– потенциальные подтипы будут удовлетворять правилам «100%» и «is_a»;

– все подтипы имеют один и тот же атрибут, который можно вынести в супертип;

– все подтипы имеют одну и ту же ассоциацию, которую можно выделить и связать с супертипом.



Поделиться:


Последнее изменение этой страницы: 2016-12-15; просмотров: 1437; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.152.26 (0.073 с.)