Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
БНФ-нотация позволяет формально описать расщепление/объединение потоков. Поток может расщепляться на собственные отдельные ветви, на компоненты потока-предка или на то и другое одновременно. При расщеплении/объединении потока существенно, чтобы каждый компонент потока-предка являлся именованным. Если поток расщепляется на подпотоки, необходимо, чтобы все подпотоки являлись компонентами потока-предка. И, наоборот, при объединении потоков каждый компонент потока-предка должен, по крайней мере, встречаться среди подпотоков. Отметим, что при объединении подпотоков нет необходимости осуществлять исключение общих компонентов, а при расщеплении подпотоки могут иметь такие общие (одинаковые) компоненты
Важно понимать, что точные определения потоков содержатся в словаре данных, а не в диаграммах. Например, на диаграмме может иметься групповой узел с входным потоком 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
@ИМЯ = ПРОТОКОЛ ОБСЛУЖИВАНИЯ
@ТИП = дискретный поток
@БНФ = (ОБРАБОТАННАЯ ДОКУМЕНТАЦИЯ) + (ДЕНЕЖНАЯ СУММА) + (ДАННЫЕ ПО ИСТОРИИ ЗАПРОСА)
Дата публикования: 2015-01-25; Прочитано: 1393 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!