Функциональная методика потоков данных (DFD)
Целью методики является построение модели рассматриваемой системы в виде диаграммы потоков данных (Data Flow Diagram — DFD), обеспечивающей правильное описание выходов (отклика системы в виде данных) при заданном воздействии на вход системы (подаче сигналов через внешние интерфейсы). Диаграммы потоков данных являются основным средством моделирования функциональных требований к проектируемой системе. Основные понятия: 1. Потоки данных – это элементы, использующиеся для моделирования передачи информации (или физических компонент) из одной части системы в другую. Потоки на диаграммах изображаются именованными стрелками, ориентация которых указывает направление движения информации. 2. Процесс (работа) – это элемент, который преобразует входные потоки в выходные в соответствии с действием, задаваемым именем процесса. Имя процесса должно содержать глагол в неопределенной форме (например, «получить документы по отгрузке продукции»). Каждый процесс имеет уникальный номер для ссылок на него. 3. Хранилище (накопитель) данных позволяет на указанных участках определять данные, которые будут сохраняться в памяти между процессами. Информация, которую оно содержит, может использоваться в любое время после ее получения, при этом данные могут выбираться в любом порядке. Имя хранилища должно определять его содержимое и быть существительным. 4. Внешняя сущность представляет собой материальный объект вне контекста системы, являющейся источником или приемником системных данных. Ее имя должно содержать существительное, например, «склад товаров». Предполагается, что объекты, представленные как внешние сущности, не должны участвовать ни в какой обработке.
1 этап. Процесс построения DFD начинается с создания основной диаграммы типа «звезда», на которой представлен моделируемый процесс и все внешние сущности, с которыми он взаимодействует. Внешние сущности выделяются по отношению к основному процессу. Для их определения необходимо выделить поставщиков и потребителей основного процесса, т.е. все объекты, которые взаимодействуют с основным процессом. Описание взаимодействия заключается в выборе глагола, дающего представление о том, как внешняя сущность использует основной процесс или используется им. Например, основной процесс – «учет обращений граждан», внешняя сущность – «граждане», описание взаимодействия – «подает заявления и получает ответы».. Для всех внешних сущностей строится таблица событий, описывающая их взаимодействие с основным потоком, которая включает в себя наименование внешней сущности, событие, его тип (типичный для системы или исключительный, реализующийся при определенных условиях) и реакцию системы. 2 этап. Далее происходит декомпозиция основного процесса на набор взаимосвязанных процессов, обменивающихся потоками данных. Сами потоки не конкретизируются, определяется лишь характер взаимодействия. Декомпозиция завершается, когда процесс становится простым, т.е.: 1. процесс имеет два-три входных и выходных потока; 2. процесс может быть описан в виде преобразования входных данных в выходные; 3. процесс может быть описан в виде последовательного алгоритма.
Для простых процессов строится миниспецификация – формальное описание алгоритма преобразования входных данных в выходные. После декомпозиции основного процесса для каждого подпроцесса строится аналогичная таблица внутренних событий.
3 этап. Выделяются потоки данных, которыми обмениваются процессы и внешние сущности. Для этого анализируется таблица событий и строятся входные и выходные потоки, а затем выделяются внутренние потоки. После построения потоков данных диаграмма должна быть проверена на полноту и непротиворечивость. Полнота диаграммы обеспечивается, если в системе нет «повисших» процессов, не используемых в процессе преобразования входных потоков в выходные. Непротиворечивость системы обеспечивается выполнением наборов формальных правил о возможных типах процессов: ü на диаграмме не может быть потока, связывающего две внешние сущности – это взаимодействие удаляется из рассмотрения; ü ни одна сущность не может непосредственно получать или отдавать информацию в хранилище данных – хранилище данных является пассивным элементом, управляемым с помощью интерфейсного процесса; ü два хранилища данных не могут непосредственно обмениваться информацией – эти хранилища должны быть объединены.
Преимущества: · возможность однозначно определить внешние сущности, анализируя потоки информации внутри и вне системы; · возможность проектирования сверху вниз, что облегчает построение модели «как должно быть».
Недостатки: необходимость искусственного ввода управляющих процессов; отсутствие понятия времени, т.е. отсутствие анализа временных промежутков при преобразовании данных (все ограничения по времени должны быть введены в спецификациях процессов).
|