БНФ - нотація
БНФ – нотація дозволяє формально описати розщеплювання/об'єднання потоків [38]. Потік може розщеплюватися на власні окремі гілки, на компоненти потоку-предка або на те і інше одночасно. При розщеплюванні/об'єднанні потоку суттєво, щоб кожен компонент потоку-предка був іменованим. Якщо потік розщеплюється на підпотоки, необхідно, щоб всі підпотоки були компонентами потоку-предка. І навпаки, при об'єднанні потоків кожен компонент потоку-предка винен принаймні одного разу зустрічатися серед підпотоків. Відзначимо, що при об'єднанні підпотоків немає необхідності здійснювати включення загальних компонент, а при розщеплюванні підпотоки можуть мати такі загальні (однакові) компоненти. Важливо розуміти, що точні визначення потоків містяться в словнику даних, а не на діаграмах. Наприклад, на діаграмі може бути груповий вузол з вхідним потоком X і вихідними підпотоками Y і Z. Проте це зовсім не означає, що відповідне визначення в словнику даних обов'язково повинне бути X=Y+Z. Це визначення може бути наступним: Х=А+В+С; Y=A+B; Z=B+C Такі визначення зберігаються в словнику даних в так званій БНФ-статті. БНФ-стаття використовується для опису компонент даних в потоках даних і в сховищах. Її синтаксис має вигляд: @БНФ = < простиий оператор>! < БНФ-вираз> де < простий оператор> є текстовий опис, поміщений в " ", а < БНФ-вираз> є вираз у формі Бекуса-Наура, що допускає наступні операції відношень: = - означає " композиція з"; + - означає " І"; [! ] - означає " АБО"; () - означає, що компонент в дужках не обов'язковий; { } - означає ітерацію компоненту в дужках; " " - означає літерал. Ітераційні дужки можуть мати нижню і верхню межу, наприклад: 3{ болт} 7 - від 3 до 7 ітерацій 1 { болт} - 1 і більш за ітерації { шайба}3 - не більше 3 ітерацій БНФ-вираз може містити довільні комбінації операцій: @БНФ = [ гвинт! болт + 2 { гайка}2 + (прокладка)! клей ] Нижче приведений приклад опису потоку даних за допомогою БНФ: @ = ВІСІМКОВА ЦИФРА @ТИП= дискретный потік @БНФ=[" 0"! " 1"! " 2"! " 3"! " 4"! " 5"! " 6"! " 7" ] Розглянемо елементи словника даних для прикладу, в якому описаний процес " Складання іспиту". Розглянемо інформаційний потік " Запрошення тягнути квиток": @ІМ’Я = ЗАПРОШЕННЯ ТЯГНУТИ КВИТОК @ТИП = потік, що управляє @БНФ = /вказує, что студент допущений до екзамену/ Розглянемо ще один потік " Сформована думка про знання студента" @ІМ’Я = СФОРМОВАНА ДУМКА ПРО ЗНАННЯ СТУДЕНТА @ТИП = внутрішній потік @БНФ = /на підставі цього потоку формується оцінка студента/ Контрольні питання і завдання 1. У чому суть діаграми потоків даних? 2. У яких випадках доцільно використовувати діаграми потоків даних? 3. Які основні нотації використовуються для побудови діаграми потоків даних? 4. Поясніть для чого потрібно дотримуватися правила балансування при деталізації контекстної діаграми. 5. Побудуйте діаграму потоків управляючих даних для системи обліку успішності студентів. 6. Яка інформація знаходиться в словнику даних? 7. Що описує БНФ-нотація?
|