10.1. Основные компоненты диаграмм

Основными компонентами диаграмм потоков данных являются:

- внешние сущности (External Reference);

- системы/подсистемы;

- процессы;

- накопители данных (Data store);

- потоки данных.

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

Внешняя сущность

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

Имя сущности должно содержать существительное, например, "ОС", "Файловая система", "Пользователь", "Внешний накопитель", "Поставщик(и)", "Клиент(ы)", "Склад".

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

Поэтому это не могут быть механизмы из модели в нотации IDEF0. Особый случай составляют механизмы модели в нотации IDEF0 такие, как "Пользователь".

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

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

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

Каждая внешняя сущность идентифицируется буквой "E" и произвольным числом (одним и тем же на разных копиях сущности). Каждой внешней сущности дается текстовое описание.

Примеры сущностей с возможными текстовыми описаниями приведены в табл. 10.1.

Таблица 10.1

Примеры внешних сущностей

Название сущности

Описание

Пользователь

Человек, использующий данную систему (данное ПО)

ОС

Операционная система (MS Windows), предоставляет: настройки интерфейса ОС, такие как параметры принтера, размер, стиль, цвет шрифта, цвет фона и т.д.; разрешения на действия с файлом; текущие дату и время

Логические и/или физические диски

Предоставляют (предоставляет) пользователю список файлов и папок, хранящихся на компьютере, а также дают (дает) возможность для записи и хранения новых данных

Файловая система

Файл

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

Внешний накопитель

Жесткий диск, дискета, CD-ROM, сетевой диск и т.д.

Система и подсистема

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

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

Процесс, действие (или работа)

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

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

В качестве имени процесса используется предложение с активным недвус­мы­сленным глаголом в неопределенной форме (вычислить, рассчитать, проверить, определить, создать, получить), за которым следует существительное в винительном падеже, например, "Изменить масштаб изображения", "Печатать документ", "Открыть документ", "Рисовать линию", "Перерисовать изображение".

Использование таких глаголов, как "обработать", "модернизировать" или "отредактировать" означает, как правило, недостаточно глубокое понимание данного процесса и требует дальнейшего анализа.

Системы, подсистемы, процессы, действия (или работы) изображаются одинаково: прямоугольниками со скругленными углами — функциональными блоками (рис. 10.2).

В общем случае смысл их совпадает со смыслом действий в нотациях IDEF0 и IDEF3. Идентифицируются на диаграммах аналогично функциональным блокам в нотации IDEF0 (префикс, номер диаграммы, номер объекта). Так же как действия в IDEF3, они имеют входы и выходы, но не поддерживают управления и механизмы, как функциональные блоки в IDEF0.

Каждому функциональному блоку дается текстовое описание.

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

Поток данных (стрелка)

Поток данных описывает движение объекта из одной части системы в другую.

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

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

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

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

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

В приложении к "Техническому заданию" приводятся имена и текстовые описания потоков данных в виде словаря данных.

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

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

Структура данных — поименованная, логически связанная группа элементов и подструктур данных, хранящаяся в накопителе или передаваемая в информационном потоке. Средство для задания состава и взаимосвязи отдельных элементов данных.

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

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

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

Накопитель (хранилище) данных

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

Накопитель изображает объект в покое в отличие от потока данных, описывающего объект в движении.

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

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

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

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

Каждому накопителю дается текстовое описание: "используется при выполнении такого-то процесса (действия, работы)", "предназначен для хранения таких-то данных". Примеры накопителей с возможными текстовыми описаниями приведены в табл. 10.2.

Таблица 10.2

Примеры накопителей

Название накопителя

Описание

Изображение в памяти

Накопитель предназначен для хранения информации о наборе пикселей, составляющих изображение

Открытый документ в ОП

Предназначен для хранения в ОП содержимого текстового документа и его полное имя (включая путь)

Параметры интерфейса в памяти

Используется для хранения информации о размере рабочего окна и состоянии вспомогательных окон

Атрибуты изображения в памяти

Используется для хранения ширины, высоты изображения, единиц измерения, вида палитры

Данные, которые хранятся в накопителе — это объекты предметной области и при построении модели данных они будут моделироваться в виде "сущностей" (не путать с сущностями нотации DFD).

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

Табл. 10.3 — 10.5 являются примерами таких таблиц для модели "Графический редактор (Paint)" в нотации DFD, показанной на рис. 10.4 – 10.7.

Таблица 10.3

Содержимое накопителя данных "Изображение в памяти"

Название поля

Тип

Размер

Описание

Имя файла

Текстовый

255 байт

Полное имя файла (включая путь)

Кодировка цвета

Числовой, целый

3 байта

Код кодировки

Содержимое

Текстовый

27 Гб

Содержимое графического файла — информация о наборе пикселей, составляющих изображение

Размер изображения в памяти зависит от ширины и высоты рисунка. Максимальный размер изображения: 99999*99999 пикселей

Таблица 10.4

Содержимое накопителя данных "Атрибуты изображения в памяти"

Название полей

Тип

Размер

Описание

Ширина картинки

Числовой, целый

4 байта

Поле хранит ширину картинки в пикселях (max 99999)

Высота картинки

Числовой, целый

4 байта

Поле хранит высоту картинки в пикселях (max 99999)

Вид палитры

Логический

1 бит

Цветная  или черно-белая (1/0)

Единицы измерения

Логический

2 бита

Сантиметр, дюйм, точка

Таблица 10.5

Содержимое накопителя данных "Параметры интерфейса в памяти"

Название полей

Тип

Размер

Описание

Ширина рабочего окна

Числовой, целый

2 байта

Поле хранит ширину рабочего окна в пикселях (max 1600)

Высота рабочего окна

Числовой, целый

2 байта

Поле хранит высоту рабочего окна в пикселях (max 1200)

Набор инструментов

Логический

1 бит

Показать/Скрыть (1/0)

Палитра

Логический

1 бит

Показать/Скрыть (1/0)

Строка состояния

Логический

1 бит

Показать/Скрыть (1/0)

Панель атрибутов текста

Логический

1 бит

Показать/Скрыть (1/0)

Для ПО "Текстовый редактор (Блокнот из группы Стандартные ОС Windows)", в котором ведется работа с текстовым файлом и в ОП хранится содержимое текстового файла, содержимое накопителя "Открытый документ в ОП" может быть таким, как показано в табл. 10.6.

Таблица 10.6

Содержимое накопителя данных "Открытый документ в ОП"

Название поля

Тип

Размер

Описание

Имя файла

Текстовый

255 байт

Полное имя файла (включая путь)

Кодировка

Текстовый

10 байт

Название кодировки (список поддерживаемых кодировок зависит от ОС)

Содержимое

Текстовый

64 Кб

Содержимое документа — информация о наборе символов, составляющих текстовый документ

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

Таблица 10.7

Содержимое накопителя данных "Текущий формат отображения"

Название поля

Тип

Размер

Описание

Название шрифта

Текстовый

30 байт

Название одного из возможных шрифтов, например, Times New Roman

Начертание шрифта

Текстовый

15 байт

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

Размер шрифта

Числовой, целый

2 байта

Значение, соответствующее одному из возможных размеров шрифта

Перенос текста

Логический

1 бит

1 — перенос включен, 0 — отключен

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

Таблица 10.8

Содержимое накопителя данных "Варианты параметров настройки программы"

Название полей

Тип

Размер

Описание

Название параметра

Текстовый

256 байт

Поле хранит название параметра

Список возможных значений этого параметра

Массив числовой, целый (или Массив логический, или Массив строк)

4 байта (или 1 бит, или размер одной строки)  * кол-во вариантов значений

Поле хранит список значений параметра

И так по каждому параметру, хранимому в накопителе данных