Пример использования DFD
Пусть разрабатывается несложная ИС для обеспечения работы пункта проката видеокассет. Назначение ИС: ведение БД постоянных клиентов, учет видеокассет, аренды видеокассет, поставщиков. ИС должна генерировать регламентированные отчеты по запросу руководства.
Особенности предметной области. Если арендатор просрочил сдачу видеокассеты, то новые ему не выдаются до погашения задолженности. Если арендатор является постоянным клиентом, то он имеет право на скидки. У постоянного клиента имеется членская карточка.
С учетом указанных сведений, контекстная диаграмма может иметь вид:
Диаграмма декомпозиции получается в результате разбиения системы «Библиотека» на подсистемы и детализации потоков данных. Следует обратить внимание, что одна и та же внешняя для системы сущность «Руководитель» показана дважды. Такой прием позволяет уменьшить число пересечений и длину стрелок.
Одновременно должна описываться структура данных, детализация потоков. Это может выполняться графически с помощью деревьев вида:
Итог. Диаграммы потоков данных обеспечивают удобный способ описания передаваемой информации как между отдельными компонентами системы, так и между системой и внешними объектами. DFD обеспечивает возможность одновременного моделирования функционального и информационного аспектов системы. Поэтому DFD активно используются при проектировании ИС, а также для создания моделей информационного обмена предприятия.
IDEF3
IDEF3 — это способ описания процесса как упорядоченной последовательности событий вместе с описанием объектов, имеющих отношение к этому процессу.
IDEF3 был специально разработан для закрытого проекта ВВС США. Метод ориентирован на получение описания деталей процесса от экспертов в предметной области и разработки схем таких процессов, для которых важно понять последовательность выполнения действий и взаимозависимости между ними. Метод может быть также использован при проектировании бизнес-процессов и анализе систем имитационными методами. IDEF3 получил широкое распространение как средство детализации схем IDEF0.
Метод достаточно прост, не имеет жестких ограничений по синтаксису и семантике.
IDEF3 позволяет описывать:
- объекты;
- роли, выполняемые объектами;
- отношения между объектами в ходе выполнения процесса;
- состояния объектов;
- изменения, которым подвергаются объекты;
- время выполнения работ, контрольные точки синхронизации работ;
- ресурсы, необходимые для выполнения работ.
В IDEF3 определены 2 типа взаимосвязанных схем (моделей):
1. Process Flow Description Diagrams — описание процесса как логической последовательности действий;
2. Object State Transition Network — сеть переходов состояний объекта.
На практике схемы первого типа используются значительно чаще. Именно это подмножество IDEF3 рассматривается ниже, и под моделью IDEF3 будет пониматься Process Flow Description Diagrams.
Элементы IDEF3
Диаграмма
Главной структурной единицей модели IDEF3 является диаграмма. Совокупность диаграмм образует модель. На диаграмме графически показывается исследуемый процесс или его фрагмент как набор взаимосвязанных компонентов.
Действие
Основным компонентом IDEF3 является действие, или, следуя терминологии IDEF3, единица поведения (Unit of Behavior, UOB). Смысл этого компонента соответствует смыслу функционального блока IDEF0 и процессу DFD, т.е. это отображение некоторой функции, переводящей входные параметры в выходные.
Действие обозначается посредством прямоугольника. Именуется с помощью глагола или отглагольного существительного. Каждое действие имеет уникальный в границах всей модели номер. Причем этот номер не используется вновь даже в том случае, когда действие исключается из схемы в процессе ее разработки или обновления. Обычно перед собственно номером действия указывается номер родительского действия, например: X.Y (X — уникальный номер родительского действия, Y — уникальный номер рассматриваемого действия; Y входит в декомпозицию X).
Обычно на действие с номером X.Y ссылаются как на действие AX.Y, где префикс 'A' указывает на то, что данный объект — действие. Например, A1.2 — это действие с уникальным номером 2, родительское действие которого имеет уникальный номер 1.
Связь
С помощью связи (link) показывается значимое взаимоотношение между действиями.
Все связи однонаправлены. Связь обозначается как стрелка.
Стрелка может начинаться и заканчиваться на любой стороне прямоугольника, символизирующего действие. Но обычно диаграмма строится так, что стрелка начинается на правой стороне исходного блока, а заканчивается на левой конечного блока. Связь обычно имеет наименование.
Основные типы связей:
1. Временное предшествование(temporal precedence) — показывает, что исходное действие должно завершиться до начала выполнения конечного действия; это связь типа «строгая зависимость»; обозначается как обычная стрелка ;
2. Нечеткое отношение(relational link) — вид взаимодействия, не укладывающийся в рамки первых двух; смысл такой связи обязательно должен быть раскрыт с помощью развернутого наименования, т.к. стрелка такого типа сама по себе говорит лишь о наличии некоторого отношения, никоим образом не указывая на его суть; объяснение смысла связи также может быть выполнено с помощью ссылки; обозначается как пунктирная стрелка .
В случае связи типа временное предшествование, изображенном на предыдущем рисунке, A1.2 должно завершиться до начала выполнения A1.3. Пример временных диаграмм выполнения процесса, соответствующих такой схеме:
Следует помнить, что практически всегда заданному фрагменту модели соответствует множестводопустимых реализаций процесса.
Чаще всего нечеткое отношение используется для описания особых случаев временного предшествования.
Например, схеме
может соответствовать следующая временная диаграмма выполнения действий:
т.е. A1.3 инициируется за 1 секунду до завершения выполнения A1.2 (выполнение соответствующего действия показано сплошной линией).
Использование нечеткого отношения предполагает, что точный характер связи описывается на диаграмме явным образом, обычно в виде отдельной ссылки.
Соединение (узел)
Завершение одного действия может вызывать выполнение нескольких других. Аналогично, начало выполнения одного действия может требовать завершение нескольких предыдущих. Такие ситуации ветвления процесса описываются с помощью соединений, или узлов (junction).
Типы соединений:
Обозначение | Название | Вид | Смысл |
Соединение «И» | Разворачивающее | Каждое последующее действие обязательно инициируется | |
Сворачивающее | Каждое предыдущее действие обязательно должно завершиться | ||
Соединение «ИЛИ» | Разворачивающее | Одно или несколько последующих действий инициируются | |
Сворачивающее | Одно или несколько предыдущих действий должны завершиться | ||
Соединение «исключающее ИЛИ» | Разворачивающее | Одно и только одно последующее действие инициируется | |
Сворачивающее | Одно и только одно предыдущее действие должно закончиться |
В полностью построенной модели все узлы должны быть иметь уникальное наименование. Наименование имеет вид Jx, где x — порядковый номер узла, например:
Соединение «И».
Пример:
Корректные диаграммы для данного фрагмента модели:
Главное, чтобы A1.3 и A1.4 начали выполняться после завершения выполнения A1.2, и чтобы A1.5 начало выполняться после окончания как A1.3, так и A1.4.
Соединение «ИЛИ».
Пример:
Корректные временные диаграммы:
Главное, чтобы после окончания A1.2 начали выполняться одно из действий A1.3 A1.4 или оба вместе, и чтобы перед началом выполнения A1.5 завершилось одно из действий A1.3, A1.4.
Обычно соединения типа «ИЛИ» явно описываются обычным текстом, при этом указывается, в каких ситуациях происходит инициация (завершения) некоторой совокупности действий.
Соединение «исключающее ИЛИ»
Вне зависимости от количества действий, связанных с соединением, инициировано будет одно и только одно в случае разворачивающего соединения, и только оно будет завершено перед тем, как любое действие, следующее за сворачивающим соединением, сможет начаться.
Пример:
Корректные временные диаграммы:
Главное, что после завершения A1.2 может начать выполняться либо только A1.3, либо только A1.4, а после завершения выполнения A1.3 либо A1.4 запускается A1.5.
Дата добавления: 2018-11-25; просмотров: 727;