Диаграммы потоков данных.

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

В основе модели лежат понятия внешней сущности, процесса, хранили­ща (накопителя) данных и потока данных.

Внешняя сущность — материальный объект или физическое лицо, вы­ступающие в качестве источников или приемников информации, например, заказчики, персонал, поставщики, клиенты, банк и т. п.

Процесс - преобразование входных потоков данных в выходные в соот­ветствии с определенным алгоритмом. Каждый процесс в системе имеет свой номер и связан с исполнителем, который осуществляет данное преобра­зование. Физически преобразова­ние может осуществляться компьютерами, вручную или специальными уст­ройствами. На верхних уровнях иерархии, когда процессы еще не определе­ны, вместо понятия «процесс» используют понятия «система» и «подсисте­ма», которые обозначают соответственно систему в целом или ее функцио­нально законченную часть.

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

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

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

Для изображения диаграмм потоков данных традиционно используют два вида нотаций: нотации Иордана и Гейна-Сарсона (табл. 4.1).

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

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

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

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

• процесс взаимодействует с 2-3-мя потоками данных;

• возможно описание процесса последовательным алгоритмом;

• процесс выполняет единственную логическую функцию преобразова­ния входной информации в выходную.

На недетализируемые процессы составляют спецификации, которые должны содержать описание логики (функций) данного процесса. Такое описание может выполняться: на естественном языке, с применением структурированного естественного языка (псевдокодов), с применением таблиц и деревьев решений, в виде схем алгоритмов, в том числе flow-форм и диаграмм Насси-Шнейдермана.

Для облегчения восприятия процессы детализируемой подсистемы ну­меруют, соблюдая иерархию номеров: так процессы, полученные при дета­лизации процесса или подсистемы «1», должны нумероваться «1.1», «1.2» и т. д. Кроме этого желательно размещать на каждой диаграмме от 3-х до 6-7-ми процессов и не загромождать диаграммы деталями, не существенны­
ми на данном уровне.