Диаграмма потока данных — это способ представления потока данных через процесс или систему (обычно информационную систему ). DFD также предоставляет информацию о выходных и входных данных каждого объекта и самого процесса. Диаграмма потока данных не имеет потока управления — здесь нет правил принятия решений и циклов. Конкретные операции, основанные на данных, могут быть представлены блок-схемой . [1]
Существует несколько обозначений для отображения диаграмм потоков данных. Представленные выше обозначения были описаны в 1979 году Томом ДеМарко как часть структурного анализа .
Для каждого потока данных в процессе должна существовать хотя бы одна из конечных точек (источник и/или назначение). Уточненное представление процесса может быть выполнено в другой диаграмме потока данных, которая подразделяет этот процесс на подпроцессы.
Диаграмма потоков данных — это инструмент, который является частью структурированного анализа и моделирования данных . При использовании UML диаграмма деятельности обычно берет на себя роль диаграммы потока данных. Особой формой плана потока данных является план потока данных, ориентированный на сайт.
Диаграммы потоков данных можно рассматривать как инвертированные сети Петри , поскольку места в таких сетях соответствуют семантике памяти данных. Аналогично, семантику переходов из сетей Петри и потоков данных и функций из диаграмм потоков данных следует считать эквивалентными.
Обозначение DFD основано на теории графов , первоначально использовавшейся в операционных исследованиях для моделирования рабочих процессов в организациях и в информатике для моделирования потока входных и выходных данных в ходе вычислений. [2] [3] DFD возник на основе методологии структурного анализа и проектирования в середине 1970-х годов. [3] Впервые он был предложен Ларри Константином, [4] и популяризирован Эдвардом Юрдоном, Томом ДеМарко, [5] Крисом Гейном и Триш Сарсон, [6] [7] , которые обогатили технику построения диаграмм различными обозначениями, практиками словаря данных. [5] и руководство по иерархической декомпозиции процессов. [6]
Основная цель диаграмм потоков данных в контексте структурированного проектирования заключалась в создании сложных модульных систем, рационализирующих взаимозависимости между различными модулями. [3] Диаграммы потоков данных (DFD) быстро стали популярным способом визуализации основных шагов и данных, участвующих в процессах программной системы. DFD обычно использовались для отображения потока данных в компьютерной системе, хотя теоретически их также можно было применять для моделирования бизнес-процессов . [8] DFD были полезны для документирования основных потоков данных или для изучения нового высокоуровневого дизайна с точки зрения потока данных. [9]
DFD состоит из процессов, потоков, складов и терминаторов. Существует несколько способов просмотра этих компонентов DFD. [10]
Процесс
Процесс (функция, преобразование) — часть системы, преобразующей входы в выходы. Обозначением процесса является круг, овал, прямоугольник или прямоугольник со скругленными углами (в зависимости от типа обозначения). Процесс называют одним словом, коротким предложением или фразой, которая должна четко выражать его суть. [7]
Поток данных
Поток данных (flow, dataflow) показывает передачу информации (иногда также материальной) из одной части системы в другую. Символ потока – стрелка. Поток должен иметь имя, определяющее, какая информация (или какой материал) перемещается. Исключением являются потоки, в которых ясно, какая информация передается через сущности, связанные с этими потоками. Существенные сдвиги моделируются в системах, которые не просто информативны. Поток должен передавать только один тип информации (материал). Стрелка показывает направление потока (оно также может быть двунаправленным, если информация, поступающая к объекту или от него, логически зависима — например, вопрос и ответ). Потоки связывают процессы, склады и терминаторы. [7]
Склад
Хранилище (хранилище данных, хранилище данных, файл, база данных) используется для хранения данных для последующего использования. Символ магазина — две горизонтальные линии, другой вид представлен в нотации DFD. Название склада представляет собой существительное во множественном числе (например, заказы) — оно происходит от потоков ввода и вывода склада. Склад не обязательно должен быть просто файлом данных, это может быть, например, папка с документами, картотека или набор оптических дисков. Таким образом, просмотр склада в DFD не зависит от реализации. Поток из хранилища обычно представляет собой чтение данных, хранящихся в хранилище, а поток в хранилище обычно выражает ввод или обновление данных (иногда также удаление данных). Склад представлен двумя параллельными линиями, между которыми расположено имя памяти (его можно смоделировать как узел буфера UML). [7]
Терминатор
Терминатор — это внешняя сущность, которая взаимодействует с системой и находится вне системы. Это могут быть, например, различные организации (например, банк), группы людей (например, клиенты), органы власти (например, налоговая служба) или отдел (например, отдел кадров) одной и той же организации, не принадлежащий в модельную систему. Терминатором может быть другая система, с которой взаимодействует моделируемая система. [7]
Имена сущностей должны быть понятны без дополнительных комментариев. DFD — система, созданная аналитиками на основе интервью с пользователями системы. Оно определяется для разработчиков системы, с одной стороны, и подрядчика проекта, с другой, поэтому имена объектов должны быть адаптированы для предметной области модели, пользователей-любителей или профессионалов. Названия организаций должны быть общими (независимыми, например, конкретные лица, осуществляющие деятельность), но должны четко указывать сущность. Процессы должны быть пронумерованы для облегчения картирования и ссылки на конкретные процессы. Нумерация является случайной, однако необходимо поддерживать единообразие на всех уровнях DFD (см. Иерархию DFD). DFD должен быть понятным, так как максимальное количество процессов в одном DFD рекомендуется составлять от 6 до 9, минимальное — 3 процесса в одном DFD. [1] [7] Исключением является так называемая контекстная диаграмма, где единственный процесс символизирует модель системы и все терминаторы, с которыми система общается.
DFD должен быть согласован с другими моделями системы — диаграммой отношений сущностей , диаграммой перехода состояний , словарем данных и моделями спецификации процесса . Каждый процесс должен иметь свое имя, входы и выходы. Каждый поток должен иметь свое имя (исключение см. Поток). Каждое хранилище данных должно иметь входной и выходной поток. Потоки ввода и вывода не обязательно должны отображаться в одном DFD, но они должны существовать в другом DFD, описывающем ту же систему. Исключением является склад, находящийся вне системы (внешнее хранилище), с которым система взаимодействует. [7]
Чтобы сделать DFD более прозрачным (т.е. не слишком много процессов), можно создавать многоуровневые DFD. DFD, находящиеся на более высоком уровне, менее детализированы (агрегируют более подробные DFD на более низких уровнях). Контекстный DFD является самым высоким в иерархии (см. Правила создания DFD). За так называемым нулевым уровнем следует DFD 0, начиная с нумерации процессов (например, процесс 1, процесс 2). На следующем, так называемом первом уровне — DFD 1 — нумерация продолжается. Например, процесс 1 делится на первые три уровня DFD, которые имеют номера 1.1, 1.2 и 1.3. Аналогично, процессы второго уровня (DFD 2) имеют номера 2.1.1, 2.1.2, 2.1.3 и 2.1.4. Количество уровней зависит от размера модельной системы. Процессы DFD 0 могут иметь разное количество уровней декомпозиции. DFD 0 содержит наиболее важные (агрегированные) функции системы. Самый нижний уровень должен включать процессы, позволяющие создать спецификацию процесса примерно на одну страницу формата А4. Если мини-спецификация должна быть длиннее, целесообразно создать для процесса дополнительный уровень, на котором он будет декомпозирован на несколько процессов. Для четкого обзора всей иерархии DFD можно создать вертикальную (поперечную) диаграмму. Склад отображается на самом высоком уровне, где он впервые используется, а также на каждом более низком уровне. [7]
{{cite book}}
: CS1 maint: дата и год ( ссылка )