Диаграммы взаимодействия и кооперации. 


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



ЗНАЕТЕ ЛИ ВЫ?

Диаграммы взаимодействия и кооперации.



Диаграммы взаимодействия и кооперации отражают взаимодействие различных объектов в системе. С помощью этих диаграмм удобно выявлять, на какие внешние события будут реагировать объекты и находить последовательности этих событий. Таким образом, мы можем определить не только динамический аспект работы ПС, но и структурные связи между взаимодействующими объектами.

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

Действующее лицо

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

Объект

Объект изображается в виде прямоугольника. Сверху в прямоугольнике пишется имя объекта (обычно жирным шрифтом с подчёркиванием), под именем объекта может располагаться имя его класса.

События

 

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

В случае вложенных вызовов, то есть, если объект инициирует событие во время обработки другого события, то время обработки исходного события увеличивается на время обработки порождённого.

Свойства события указываются над его стрелкой. В случае, если происходит несколько последовательных вызовов, то ставится значок * и в квадратных скобках указывается число итераций. Если существует условие порождения события, то оно указывается в квадратных скобках, без каких-либо дополнительных значков. Можно так же указать имя обработчика события в объекте-получателе. Оно указывается после символа /. Далее в круглых скобках может идти перечисление параметров, и через двоеточие тип возвращаемого значения.

Линии синхронных событий заканчиваются сплошной стрелкой, а линии асинхронных имеют на конце только верхнюю половинку стрелки.

В случае, если объект посылает событие самому себе, то к временной линии обработки изначального события добавляется сбоку ещё одна толстая линия обработки нового события.

 

Диаграммы кооперации

Как говорилось выше, диаграммы кооперации являются, в некотором смысле, аналогом диаграмм взаимодействия. Главным отличием диаграмм кооперации является акцентирование внимания на структурном аспекте взаимодействия, а не на последовательности действий, как в диаграммах взаимодействия.

Элементы диаграммы кооперации можно располагать в произвольном месте поля. При этом у них нет линий жизни, как это было в диаграммах взаимодействия.

Действующее лицо

Как и в диаграммах взаимодействия, действующее лицо изображается в виде человечка.

Объект

Объект обозначается в виде прямоугольника, в котором указывается его имя и, через двоеточие, имя класса, которому он принадлежит.

Сообщение

Сообщения изображаются стрелками, идущими от создателя сообщения к его получателю.

Стрелки выходящие из объекта, первым пославшим сообщение, нумеруются цифрами 1,2,3 и т.д. Объект, уже получивший одно из сообщений, нумерует исходящие сообщения следующим образом: k.1,k.2,k.3 и т.д., где k-номер полученного сообщения.

Очень удобно использовать диаграммы «вариантов использования» или SADT в качестве отправной точки для построения данного вида диаграмм. Можно порекомендовать следующую последовательность действий:

 

· В качестве рассматриваемого процесса в системе берётся один из вариантов использования (процесс SADT).

· Выявляются участвующие во взаимодействии объекты и их классы. Для этого используются диаграммы классов.

· Взаимодействие начинается с «Действующего лица», и рассматривается последовательно от объекта к объекту. При этом недостающие методы добавляются в соответствующие диаграммы классов.

· При необходимости в диаграммы классов добавляются новые классы. Это вызвано тем, что невозможно сразу построить адекватную статическую модель системы без рассмотрения динамических аспектов.

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

Диаграммы состояний

 

Диаграммы состояний представляют из себя одну из разновидностей описания работы конечных автоматов. Моделируемая система рассматривается как единый объект с некоторым фиксированным множеством состояний, и набором условий, регулирующих переход из одного состояния в другое. Каждому состоянию приписывается определённое действие, которое выполняется при переходе системы в данное состояние. Считается, что объект может пребывать в некотором состоянии довольно продолжительное время, при этом переход из одного состояния в другое осуществляется мгновенно.

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

С помощью диаграмм состояний можно выделять методы и атрибуты объектов системы, а также определять алгоритмы реализации методов.

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

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

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

Состояния

 

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

 

Конечное состояние изображается на диаграмме в виде чёрного круга внутри белого. Переход в конечное состояние соответствует завершению жизненного цикла системы.

Промежуточные состояния системы изображаются в виде прямоугольников с закруглёнными краями. Прямоугольник может быть поделён на две части, тогда в верхней части указывается имя состояния, а в нижней - действие, ассоциируемое с состоянием. Если прямоугольник не поделен на части, то он содержит только имя состояния.

Переходы

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

Суперсостояния

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

Диаграммы деятельности

Диаграммы деятельности предназначены для моделирования временного аспекта поведения системы. Как и в диаграммах кооперации, объектами моделирования являются процессы в системе. В зависимости от уровня абстракции, это могут быть либо обобщённые процессы, либо их конкретные реализации на уровне объектов. Ключевой особенностью этих диаграмм является наличие средств, позволяющих визуализировать взаимодействие нескольких параллельных потоков управления, а именно точек ветвления и синхронизации.

При решении большого класса прикладных задач естественным образом возникают параллельные процессы. Например, можно с уверенностью сказать, что любая программа должна обладать, как минимум двумя потоками управления: один – для выполнения основных вычислительных функций, второй – для взаимодействия с пользователем, другими словами, для пользовательского интерфейса. При этом взаимодействие потоков может быть довольно таки нетривиальным. Большое количество подобных задач стало причиной появления средств поддержки многопоточности на уровне языков программирования. Использование диаграмм деятельности существенно упрощает процесс проектирования программ с взаимодействующими потоками. В основе данных диаграмм лежит известный механизм сетей Петри, уже давно применяемый при моделировании поведения технических, экономических и других систем.

 

Деятельности

Начальные и конечные состояния системы изображаются точно так же, как и в диаграммах состояний. Вместо блоков обычных состояний здесь используются блоки деятельности или, по-другому, активности. Активности изображаются в виде прямоугольника с закруглёнными краями. Внутри прямоугольника пишется имя активности в глагольной форме. Таким образом, в отличие от диаграмм состояний, мы делаем акцент не на состояниях в которых пребывает система, а на действиях осуществляемых в заданных состояниях.

Активности соединяются между собой переходами. В каждой активности может начинаться несколько переходов, изображаемых стрелками. Над каждой стрелкой подписывается имя перехода и, в квадратных скобках, условие его возникновения.

Ветвления

 

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

Синхронизация

 

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

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

 

 

Возможна ситуация, когда точка ветвления одновременно является и точкой синхронизации.

 

 

Диаграммы размещения

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

Узел

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

Компонент

 

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

Интерфейс

 

Интерфейс компонента изображается на диаграмме в виде круга. Имя интерфейса подписывается под кругом. Один компонент может реализовывать несколько интерфейсов. То, что компонент реализует некоторый интерфейс, указывается на диаграмме соединением компонента и интерфейса сплошной линией.

 

 

Диаграммы пакетов

Диаграммы пакетов применяются как средство, позволяющее объединять диаграммы классов в иерархические множества и проиллюстрировать зависимости между ними. Это означает, что мы может разбить нашу диаграмму классов на смысловые группы, установив между ними отношения зависимости. Например, мы можем отделить классы, отвечающие за пользовательский интерфейс, от классов, выполняющих основную вычислительную работу, разделив их на два разных пакета. При этом мы можем показать на диаграмме, что пользовательский интерфейс зависит от функциональности. Это, в частности, отражает тот факт, что классы, отвечающие за интерфейс должны так или иначе ссылаться на «функциональные» классы.

 

Пакеты

Пакет изображается на диаграмме в виде «папки», разделённой на три части. В верхней части папки указывается имя пакета. В средней части в столбик перечисляются имена подпакетов, входящих в состав данного пакета. В нижней части перечисляются имена классов, входящих в состав данного пакета (за исключением классов, входящих в состав подпакетов).

Зависимости

Зависимости между пакетами изображаются в виде пунктирной стрелки, направленной от зависимого пакета (как и на предыдущих диаграммах).


 

Приложение A. Создание SADT-моделей с помощью программы BPWin 4.0

 

Распространенным средством автоматизации функционального моделирования является программная система BPWin фирмы PLATINUM. BPWin поддерживает не только входящий в SADT стандарт IDEF0, но и другие методологии описания потоков данных – IDEF3 (ProcessFlow) и DFD (DataFlow). Мы будем рассматривать только работу с SADT диаграммами. Работа с BPWin подробно описана в [11].

 

Для создания новой модели следует выбрать пункт меню File/New (значок ) и указать имя модели в открывшемся диалоговом окне. После этого BPWin предлагает ввести имя автора и задать другие свойства модели. Мы рекомендуем сначала ограничиться указанием автора, а другие свойства определить позднее.

На рисунке изображено главное окно системы BPWin, на котором расположены:

 

1. заголовок окна с названиями модели и диаграммы.

2. панель меню

3. стандартная панель инструментов BPWin

4. панель инструментов для работы с диаграммами IDEF0 (SADT)

5. окно управления моделью (Model Explorer)

6. окно активной диаграммы

7. строка состояния

 

 

Основные инструменты BPWin

 

Перечислим основные команды BPWin, используемые при разработке SADT-моделей

 

Команда Значок на панели инструментов
Создать модель
Открыть существующую модель
Сохранить модель
Распечатать модель
Выбрать элемент на диаграмме
Добавить блок
Добавить дугу
Добавить выноску
Добавить текст
Отобразить редактор модели
Перейти к диаграмме, ассоциированной с текущей
Перейти к родительской диаграмме
Перейти к декомпозирующей блок диаграмме, если она есть или создать ее шаблон, если она отсутствует

 

При создании новой модели BPWin автоматически открывает в окне диаграмм шаблон контекстной диаграммы А-0. В соответствии с методологией SADT, построение модели следует начинать с создания диаграммы A0. Для этого необходимо декомпозировать контекстную диаграмму, используя инструмент . В момент создания новой диаграммы BPWin запрашивает количество размещаемых на ней блоков. Впоследствии блоки можно будет добавить () или удалить. Чтобы удалить блок или любой другой элемент диаграммы, его следует выбрать () и нажать клавишу Del. Для соединения блоков дугами используется инструмент . Подсоединение дуг к блокам и краям диаграммы, а также разветвление и слияние дуг легко производится щелчками мыши.

Имена и другие атрибуты дуг, блоков и диаграмм удобно задавать и модифицировать с помощью контекстного меню, вызываемого правой кнопкой мыши. Иногда случается, что надписи на диаграммах отображаются нерусифицированными шрифтами и их невозможно прочитать. Подбор и задание по умолчанию нужных шрифтов для различных текстовых элементов диаграмм осуществляется в пунктах меню Model/Default Fonts (Модель/Шрифты по умолчанию). Флажок Change all occurences of this font in model позволяет заменить изменить предыдущий шрифт на новый во всех надписях модели.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 501; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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