ГЛАВА 3
К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36
СЛОВАРЬ ДАННЫХ
Диаграммы потоков данных обеспечивают удобное описание функционирования компонент системы, но не снабжают аналитика средствами описания деталей этих компонент, а именно, какая информация преобразуется процессами и как она преобразуется. Для решения первой из перечисленных задач предназначены текстовые средства моделирования, служащие для описания структуры преобразуемой информации и получившие название словарей данных.
Словарь данных представляет собой определенным образом организованный список всех элементов данных системы с их точными определениями, что дает возможность различным категориям пользователей (от системного аналитика до программиста) иметь общее понимание всех входных и выходных потоков и компонент хранилищ. Определения элементов данных в словаре осуществляются следующими видами описаний:
описанием значений потоков и хранилищ, изображенных на DFD;
описанием композиции агрегатов данных, движущихся вдоль потоков, т.е. комплексных данных, которые могут расчленяться на элементарные символы (например, АДРЕС ПОКУПАТЕЛЯ содержит ПОЧТОВЫЙ ИНДЕКС, ГОРОД, УЛИЦУ и т.д.);
описанием композиции групповых данных в хранилище;
специфицированием значений и областей действия элементарных фрагментов информации в потоках данных и хранилищах;
описанием деталей отношений между хранилищами.
3.1. Содержимое словаря данных
Для каждого потока данных в словаре необходимо хранить имя потока, его тип и атрибуты. Информация по каждому потоку состоит из ряда словарных статей, каждая из которых начинается с ключевого слова - заголовка соответствующей статьи, которому предшествует символ “@”.
По типу потока в словаре содержится информация, идентифицирующая:
простые (элементарные) или групповые (комплексные) потоки;
внутренние (существующие только внутри системы) или внешние (связывающие систему с другими системами) потоки;
потоки данных или потоки управления;
непрерывные (принимающие любые значения в пределах определенного диапазона) или дискретные (принимающие определенные значения) потоки.
Атрибуты потока данных включают:
имена-синонимы потока данных в соответствии с узлами изменения имени;
БНФ-определение в случае группового потока (см. 3.2);
единицы измерения потока;
диапазон значений для непрерывного потока, типичное его значение и информацию по обработке экстремальных значений;
список значений и их смысл для дискретного потока;
список номеров диаграмм различных типов, в которых поток встречается;
список потоков, в которые данный поток входит (как элемент БНФ-определения);
комментарий, включающий дополнительную информацию (например о цели введения данного потока).
3.2. БНФ - нотация
БНФ-нотация позволяет формально описать расщепление/ объединение потоков. Поток может расщепляться на собственные отдельные ветви, на компоненты потока-предка или на то и другое одновременно. При расщеплении/объединении потока существенно, чтобы каждый компонент потока-предка являлся именованным. Если поток расщепляется на подпотоки, необходимо, чтобы все подпотоки являлись компонентами потока-предка. И наоборот, при объединении потоков каждый компонент потока-предка должен по крайней мере однажды встречаться среди подпотоков. Отметим, что при объединении подпотоков нет необходимости осуществлять исключение общих компонент, а при расщеплении подпотоки могут иметь такие общие (одинаковые) компоненты.
Важно понимать, что точные определения потоков содержатся в словаре данных, а не на диаграммах. Например, на диаграмме может иметься групповой узел с входным потоком X и выходными подпотоками Y и Z. Однако это вовсе не означает, что соответствующее определение в словаре данных обязательно должно быть X=Y+Z. Это определение может быть следующим:
X=A+B+C; Y=A+B; Z=B+C
Такие определения хранятся в словаре данных в так называемой БНФ-статье. БНФ-статья используется для описания компонент данных в потоках данных и в хранилищах. Ее синтаксис имеет вид:
@БНФ = <простой оператор> ! <БНФ-выражение> ,
где <простой оператор> есть текстовое описание, заключенное в "/", а <БНФ-выражение> есть выражение в форме Бэкуса-Наура, допускающее следующие операции отношений:
= - означает "композиция из",
+ - означает "И",
[ ! ] - означает "ИЛИ",
( ) - означает, что компонент в скобках не обязателен,
{ } - означает итерацию компонента в скобках,
" " - означает литерал.
Итерационные скобки могут иметь нижний и верхний предел, например:
3{болт}7 - от 3 до 7 итераций
1{болт} - 1 и более итераций
{шайба}3 - не более 3 итераций
БНФ-выражение может содержать произвольные комбинации операций:
@БНФ = [ винт ! болт + 2{гайка}2 + (прокладка) ! клей ]
Ниже приведен пример описания потока данных с помощью БНФ:
@ИМЯ = ВОСЬМЕРИЧНАЯ ЦИФРА
@ТИП = дискретный поток
@БНФ = [ "0"!"1"!"2"!"3"!"4"!"5"!"6"!"7" ]
Посмотрим, как некоторые потоки, присутствующие на вышеприведенных диаграммах потоков данных, представляются в словаре данных.
@ИМЯ = ВВЕДЕННАЯ КРЕДИТНАЯ КАРТА
@ТИП = управляющий поток
@БНФ = /указывает, что кредитная карта введена/
@ИМЯ = ДАННЫЕ КРЕДИТНОЙ КАРТЫ
@ТИП = дискретный поток
@БНФ = ПАРОЛЬ + ДЕТАЛИ КЛИЕНТА + ЛИМИТ ДЕНЕГ
@ИМЯ = ДАННЫЕ ПО БАЛАНСУ
@ТИП = дискретный поток
@БНФ = /текущий баланс счета клиента/
@ЕДИНИЦА ИЗМЕРЕНИЯ = доллар
@ДИАПАЗОН = +/- 100000
@ТОЧНОСТЬ = .01
@ИМЯ = ДЕНЬГИ
@ТИП = дискретный поток
@БНФ = /деньги, выдаваемые клиенту/
@ЕДИНИЦА ИЗМЕРЕНИЯ = доллар
@НОРМА = 5..1000
@КОММЕНТАРИЙ Сумма выдаваемых денег должна делиться на 5
@ИМЯ = ПРОТОКОЛ ОБСЛУЖИВАНИЯ
@ТИП = дискретный поток
@БНФ = (ОБРАБОТАННАЯ ДОКУМЕНТАЦИЯ)
+ (ДЕНЕЖНАЯ СУММА)
+ (ДАННЫЕ ПО ИСТОРИИ ЗАПРОСА)
СЛОВАРЬ ДАННЫХ
Диаграммы потоков данных обеспечивают удобное описание функционирования компонент системы, но не снабжают аналитика средствами описания деталей этих компонент, а именно, какая информация преобразуется процессами и как она преобразуется. Для решения первой из перечисленных задач предназначены текстовые средства моделирования, служащие для описания структуры преобразуемой информации и получившие название словарей данных.
Словарь данных представляет собой определенным образом организованный список всех элементов данных системы с их точными определениями, что дает возможность различным категориям пользователей (от системного аналитика до программиста) иметь общее понимание всех входных и выходных потоков и компонент хранилищ. Определения элементов данных в словаре осуществляются следующими видами описаний:
описанием значений потоков и хранилищ, изображенных на DFD;
описанием композиции агрегатов данных, движущихся вдоль потоков, т.е. комплексных данных, которые могут расчленяться на элементарные символы (например, АДРЕС ПОКУПАТЕЛЯ содержит ПОЧТОВЫЙ ИНДЕКС, ГОРОД, УЛИЦУ и т.д.);
описанием композиции групповых данных в хранилище;
специфицированием значений и областей действия элементарных фрагментов информации в потоках данных и хранилищах;
описанием деталей отношений между хранилищами.
3.1. Содержимое словаря данных
Для каждого потока данных в словаре необходимо хранить имя потока, его тип и атрибуты. Информация по каждому потоку состоит из ряда словарных статей, каждая из которых начинается с ключевого слова - заголовка соответствующей статьи, которому предшествует символ “@”.
По типу потока в словаре содержится информация, идентифицирующая:
простые (элементарные) или групповые (комплексные) потоки;
внутренние (существующие только внутри системы) или внешние (связывающие систему с другими системами) потоки;
потоки данных или потоки управления;
непрерывные (принимающие любые значения в пределах определенного диапазона) или дискретные (принимающие определенные значения) потоки.
Атрибуты потока данных включают:
имена-синонимы потока данных в соответствии с узлами изменения имени;
БНФ-определение в случае группового потока (см. 3.2);
единицы измерения потока;
диапазон значений для непрерывного потока, типичное его значение и информацию по обработке экстремальных значений;
список значений и их смысл для дискретного потока;
список номеров диаграмм различных типов, в которых поток встречается;
список потоков, в которые данный поток входит (как элемент БНФ-определения);
комментарий, включающий дополнительную информацию (например о цели введения данного потока).
3.2. БНФ - нотация
БНФ-нотация позволяет формально описать расщепление/ объединение потоков. Поток может расщепляться на собственные отдельные ветви, на компоненты потока-предка или на то и другое одновременно. При расщеплении/объединении потока существенно, чтобы каждый компонент потока-предка являлся именованным. Если поток расщепляется на подпотоки, необходимо, чтобы все подпотоки являлись компонентами потока-предка. И наоборот, при объединении потоков каждый компонент потока-предка должен по крайней мере однажды встречаться среди подпотоков. Отметим, что при объединении подпотоков нет необходимости осуществлять исключение общих компонент, а при расщеплении подпотоки могут иметь такие общие (одинаковые) компоненты.
Важно понимать, что точные определения потоков содержатся в словаре данных, а не на диаграммах. Например, на диаграмме может иметься групповой узел с входным потоком X и выходными подпотоками Y и Z. Однако это вовсе не означает, что соответствующее определение в словаре данных обязательно должно быть X=Y+Z. Это определение может быть следующим:
X=A+B+C; Y=A+B; Z=B+C
Такие определения хранятся в словаре данных в так называемой БНФ-статье. БНФ-статья используется для описания компонент данных в потоках данных и в хранилищах. Ее синтаксис имеет вид:
@БНФ = <простой оператор> ! <БНФ-выражение> ,
где <простой оператор> есть текстовое описание, заключенное в "/", а <БНФ-выражение> есть выражение в форме Бэкуса-Наура, допускающее следующие операции отношений:
= - означает "композиция из",
+ - означает "И",
[ ! ] - означает "ИЛИ",
( ) - означает, что компонент в скобках не обязателен,
{ } - означает итерацию компонента в скобках,
" " - означает литерал.
Итерационные скобки могут иметь нижний и верхний предел, например:
3{болт}7 - от 3 до 7 итераций
1{болт} - 1 и более итераций
{шайба}3 - не более 3 итераций
БНФ-выражение может содержать произвольные комбинации операций:
@БНФ = [ винт ! болт + 2{гайка}2 + (прокладка) ! клей ]
Ниже приведен пример описания потока данных с помощью БНФ:
@ИМЯ = ВОСЬМЕРИЧНАЯ ЦИФРА
@ТИП = дискретный поток
@БНФ = [ "0"!"1"!"2"!"3"!"4"!"5"!"6"!"7" ]
Посмотрим, как некоторые потоки, присутствующие на вышеприведенных диаграммах потоков данных, представляются в словаре данных.
@ИМЯ = ВВЕДЕННАЯ КРЕДИТНАЯ КАРТА
@ТИП = управляющий поток
@БНФ = /указывает, что кредитная карта введена/
@ИМЯ = ДАННЫЕ КРЕДИТНОЙ КАРТЫ
@ТИП = дискретный поток
@БНФ = ПАРОЛЬ + ДЕТАЛИ КЛИЕНТА + ЛИМИТ ДЕНЕГ
@ИМЯ = ДАННЫЕ ПО БАЛАНСУ
@ТИП = дискретный поток
@БНФ = /текущий баланс счета клиента/
@ЕДИНИЦА ИЗМЕРЕНИЯ = доллар
@ДИАПАЗОН = +/- 100000
@ТОЧНОСТЬ = .01
@ИМЯ = ДЕНЬГИ
@ТИП = дискретный поток
@БНФ = /деньги, выдаваемые клиенту/
@ЕДИНИЦА ИЗМЕРЕНИЯ = доллар
@НОРМА = 5..1000
@КОММЕНТАРИЙ Сумма выдаваемых денег должна делиться на 5
@ИМЯ = ПРОТОКОЛ ОБСЛУЖИВАНИЯ
@ТИП = дискретный поток
@БНФ = (ОБРАБОТАННАЯ ДОКУМЕНТАЦИЯ)
+ (ДЕНЕЖНАЯ СУММА)
+ (ДАННЫЕ ПО ИСТОРИИ ЗАПРОСА)