Лекция: БНФ-Нотация.

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

Важно понимать, что точные определения потоков содержатся в словаре данных, а не в диаграммах. Например, на диаграмме может иметься групповой узел с входным потоком X и выходными потоками Y и Z. Однако это вовсе не означает, что соответствующее определение в словаре данных обязательно должно быть X = Y + Z. Это определение может быть следующим:

Х = А+В + С; Y = A+B; Z = В + С.

Такие определения хранятся в словаре данных в так называемой БНФ-статье. БНФ-статья используется для описания компонентов данных в потоках данных и в хранилищах. Ее синтаксис имеет вид:

@БНФ= < простой оператор >! < БНФ-выражение >, где <простои оператор> есть текстовое описание, заключенное в "/", а <БНФ-выражениё> есть выражение в форме Бэкуса-Наура, допускающее следующие операции отношений:

= означает «композиция из»

+ означает «и»

[!] означает «или»

( ) означает, что компонент в скобках необязателен

{ } означает итерацию компонента в скобках

“” означает литерал

Итерационные скобки могут иметь нижний и верхний предел, например:

3 {болт} 7 — от 3 до 7 итераций

1 {болт} — 1 и более итераций

{шайба} 3 — не более 3 итерации

БНФ-выражение может содержать произвольные комбинации операций:

@БНФ[винт! болт + 2{гайка}2 + (прокладка)! клей ]

Ниже приведен пример описания потока данных с помощью БНФ:

@ИМЯ = восьмеричная цифра

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

@БНФ= [«0»!«1»!«2»!«3»!«4»!«5»!«6»!«7»]

Посмотрим, как некоторые потоки, присутствующие на приведенных диаграммах потоков данных, представляются в словаре данных.

@ИМЯ= ВВЕДЕННАЯ КРЕДИТНАЯ КАРТА

@ТИП= управляющий поток

@БНФ= /указывает, что кредитная карта введена/

@ИМЯ= ДАННЫЕ КРЕДИТНОЙ КАРТЫ

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

@БНФ= ПАРОЛЬ + ДЕТАЛИ КЛИЕНТА + ЛИМИТ ДЕНЕГ

@ИМЯ= ДАННЫЕ ПО БАЛАНСУ

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

@БНФ= /текущий баланс счета клиента/

@ЕДИНИЦА ИЗМЕРЕНИЯ= доллар

@ДИАПАЗОН= +/- 100000

@ТОЧНОСТЬ= .01

@ИМЯ= ДЕНЬГИ

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

@БНФ= /деньги, выдаваемые клиенту/

@ЕДИНИЦА ИЗМЕРЕНИЯ= доллар

@НОРМА= 5..1000

@КОММЕНТАРИЙ = Сумма выдаваемых денег должна делится на 5

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

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

@БНФ= (ОБРАБОТАННАЯ ДОКУМЕНТАЦИЯ) + (ДЕНЕЖНАЯ СУММА) + (ДАННЫЕ ПО ИСТОРИИ ЗАПРОСА)

еще рефераты
Еще работы по истории