- •Лекція 1. Тема: ядра знань swebok
- •1.1. Аналіз і характеристика областей знань swebok
- •1.1.1 Основи програмних вимог (Software Requirements)
- •1.1.2. Проектування пз (Software design)
- •1.1.3. Конструювання пз (Software Construction)
- •1.1.4 Тестування пз (Software Testing)
- •1.1.5 Супровід пз (Software maintenance)
- •1.1.6. Управління конфігурацією пз (Software Configuration Management– scm)
- •1.1.7. Управління інженерією пз (Software Engineering Management)
- •1.1.8. Процес інженерії пз (Software Engineering Process)
- •1.1.9. Методи і засоби інженерії пз (Software Engineering Tools and Methods)
- •Лекція 2. Тема: життєвий цикл і етапи розробки програмного забезпечення
- •Лекція 3. Тема: еволюція моделей життєвого циклу програмного забезпечення
- •1.6. Прискорення розробки пз.
- •Лекція 4. Тема: оцінка якості процесів створення програмного забезпечення
- •Лекція 5. Тема: визначення вихідних даних для проектування програмного забезпечення
- •5.1 Визначення вимог до пз
- •5.2 Формування і аналіз вимог
- •5.2.1 Опорні точки зору
- •5.2.2 Сценарії
- •5.2.3 Етнографічний метод
- •5.3 Специфікація вимог
- •5.4 Атестація вимог
- •5.5 Класифікація програмних продуктів за функціональною ознакою
- •5.6 Основні експлуатаційні вимоги до програмних продуктів
- •5.7 Передпроектні дослідження предметної області
- •Лекція 6. Тема: розробка технічного завдання
- •2. Підстави для розробки
- •3. Призначення
- •4. Вимоги до програми або програмного виробу
- •5. Вимоги до програмної документації
- •1. Вступ
- •2. Підстава для розробки
- •3. Призначення
- •4. Вимоги до програми або програмного виробу
- •4.1. Вимоги до функціональних характеристик
- •Лекція 7. Тема: принципові рішення початкових етапів проектування
- •Контрольні питання і завдання
- •Аналіз вимог і визначення специфікацій програмного забезпечення при структурному підході
- •Лекція 8. Тема: Специфікації програмного забезпечення при структурному підході
- •Flow-форми
- •Діаграми Насси-Шнейдермана
- •Контрольні питання та завдання:
- •Лекція 9. Тема: діаграми потоків даних
- •Словник даних
- •Вміст словника даних
- •Лекція 10. Тема: діаграми «сутність-зв’язок»
- •Лекція 11. Тема: приклади побудови діаграм та специфікації процесів
- •Лекція 12 Тема: діаграми переходів станів
- •13.1. Структурна схема майбутнього програмного забезпечення
- •13.2 Використання методу покрокової деталізації для проектування структури програмного забезпечення
- •13.3 Структурні карти Константайна
- •13.4.Структурні карти Джексона
- •13.5 Характеристики хорошої моделі реалізації
- •Зчеплення
- •Зв’язаність
- •13.6 Функціональна схема
- •Лекція 14. Тема: методології структурного аналізу і проектування
- •Контрольні питання та завдання
- •Лекція 15. Тема: синтаксис діаграм
- •Контрольні питання та завдання
- •Лекція 16. Тема: Синтаксис діаграм
- •Збір інформації
- •Контрольні питання та завдання:
- •Лекція 17. Тема: побудова sadt-діаграм
- •17.2. Побудова sadt-діаграми для процесу “Побудова таблиць/графіків функцій однієї змінної”
- •Типи зв'язків між функціями
- •Лекція 18. Тема: доповнення до діаграм і моделей
- •Критерії оцінки і вибору
- •Функціональні характеристики
- •3. Загальні функції:
Словник даних
Діаграми потоків даних забезпечують зручний опис функціонування компонент системи, але не забезпечують аналітика засобами опису деталей цих компонент, а саме, яка інформація перетвориться процесами і як вона перетвориться. Словники даних і призначені для вирішення першого з перерахованих завдань.
В словник даних входять всі елементи даних системи з їх точним визначенням, що дає можливість різним категоріям користувачів (від системного аналітика до програміста) мати загальну розуміння вхідних та вихідних потоків та компонент сховищ. Визначення елементів даних в словнику здійснюється за допомогою таких видів описів:
описом значень потоків і сховищ, зображених на DFD;
описом композиції агрегатів даних, які рухаються вздовж потоків, тобто комплексних даних, які можуть розчленовуватися на елементарні символи (наприклад, АДРЕСА СТУДЕНТА містить ПОШТОВИЙ ІНДЕКС, МІСТО, ВУЛИЦЮ і так далі);
описом композиції групових даних в сховищі;
специфікацією значень і областей дії елементарних фрагментів інформації в потоках даних і сховищах;
описом деталей відношень між сховищами.
Вміст словника даних
Для кожного потоку даних в словнику необхідно зберігати ім'я потоку, його тип і атрибути. Інформація для кожного потоку складається з ряду словникових статей, кожна з яких починається з ключового слова - заголовка відповідної статті, якому передує символ "@".
За типом потоку в словнику міститься інформація, що ідентифікує:
прості (елементарні) або групові (комплексні) потоки;
внутрішні (що існують тільки усередині системи) або зовнішні (що пов'язують систему з іншими системами) потоки;
потоки даних або потоки управління;
безперервні (що приймають будь-які значення в межах певного діапазону) або дискретні (приймаючі певні значення) потоки.
Атрибути потоку даних включають:
імена-синоніми потоку даних відповідно до вузлів зміни імені;
БНФ-визначення у разі групового потоку;
одиниці вимірювання потоку;
діапазон значень для безперервного потоку, типове його значення і інформацію щодо обробки екстремальних значень;
список значень і їх сенс для дискретного потоку;
список номерів діаграм різних типів, в яких потік зустрічається;
список потоків, в які даний потік входить (як елемент БНФ-визначення);
коментар, що включає додаткову інформацію (наприклад, про мету введення даного потоку).
БНФ - нотація
БНФ – нотація дозволяє формально описати розщеплювання/об'єднання потоків [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"]
Розглянемо елементи словника даних для прикладу, в якому описаний процес "Складання іспиту".
Розглянемо інформаційний потік "Запрошення тягнути квиток":
@ІМ’Я = ЗАПРОШЕННЯ ТЯГНУТИ КВИТОК
@ТИП = потік, що управляє
@БНФ = /вказує, что студент допущений до екзамену/
Розглянемо ще один потік "Сформована думка про знання студента"
@ІМ’Я = СФОРМОВАНА ДУМКА ПРО ЗНАННЯ СТУДЕНТА
@ТИП = внутрішній потік
@БНФ = /на підставі цього потоку формується оцінка студента/
Контрольні питання і завдання
У чому суть діаграми потоків даних?
У яких випадках доцільно використовувати діаграми потоків даних?
Які основні нотації використовуються для побудови діаграми потоків даних?
Поясніть для чого потрібно дотримуватися правила балансування при деталізації контекстної діаграми.
Побудуйте діаграму потоків управляючих даних для системи обліку успішності студентів.
Яка інформація знаходиться в словнику даних?
Що описує БНФ-нотація?
