ГЛАВА 3

К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
17 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

@ИМЯ = ПРОТОКОЛ ОБСЛУЖИВАНИЯ

@ТИП = дискретный поток

@БНФ = (ОБРАБОТАННАЯ ДОКУМЕНТАЦИЯ)

+ (ДЕНЕЖНАЯ СУММА)

+ (ДАННЫЕ ПО ИСТОРИИ ЗАПРОСА)