- •Лекція 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.8. Процес інженерії пз (Software Engineering Process)
- •1.1.9. Методи і засоби інженерії пз (Software Engineering Tools and Methods)
- •Лекція 2. Тема: життєвий цикл і етапи розробки програмного забезпечення
- •1.1.7. Управління інженерією пз (Software Engineering Management)
- •Лекція 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. Загальні функції:
Зв’язаність
Зв’язаність – міра міцності з'єднання функціональних і інформаційних об'єктів усередині одного модуля.
Виділяють наступні рівні зв'язаності:
функціональна (функціонально зв'язаний модуль містить об'єкти, призначені для виконання єдиного завдання, приклад: розрахунок заробітної плати);
послідовна (модуль має послідовну зв’язаність, якщо його об'єкти охоплюють підзадачі, для яких вихідні дані однієї з підзадач служать вхідними даними для наступної, приклад: відкрити файл - прочитати запис – закрити файл);
інформаційна (інформаційно зв'язаний модуль містить об'єкти, що використовують одні і ті ж вхідні або вихідні дані);
процедурна (процедурно зв'язаний модуль є модулем, об'єкти якого включені в різні підзадачі, в яких керування переходить від кожної підзадачі до подальшої, приклад: послідовність ранкових процедур);
тимчасова (тимчасово зв'язаним модулем є модуль, об'єкти якого включені в підзадачі, зв'язані часом виконань, приклад: стала послідовність дій перед сном);
логічна (модулем з логічною зв'язаністю є модуль об'єкти якого сприяють вирішенню загальної підзадачі, для якої ці об'єкти відібрані на зовнішньому по відношенню до модуля світі, приклад: чим їхати до місця відпочинку (поїхати автомобілем, поїхати поїздом, поплисти на кораблі, полетіти літаком));
випадкова (випадково зв'язним модулем є модуль, об'єкти якого відповідають підзадачам, трохи зв'язаним один з одним, приклад: 1.Ремонтувати автомобіль. 2.Пити пиво. 3.Дивитися телевізор).
Повніше уявлення про майбутнє програмне забезпечення з точки зору взаємодії його компонентів між собою і із зовнішнім середовищем дає функціональна схема.
13.6 Функціональна схема
Функціональна схема. Функціональна схема або схема даних (ГОСТ 19.701-90) – схема взаємодії компонентів програмного забезпечення з описом інформаційних потоків, складу даних в потоках і вказівкою файлів і пристроїв,які використовуються [38]. Для зображення функціональних схем використовують спеціальні позначення, встановлені стандартом. Основні позначення схем даних по ГОСТ 19.701-90 приведені в табл. 13.1.
Функціональні схеми, більш інформативні, ніж структурні. На рис.13.13 для порівняння приведені функціональні схеми програмних комплексів і систем. Всі компоненти структурних і функціональних схем повинні бути описані. При структурному підході особливо ретельно необхідно опрацьовувати специфікації міжпрограмних інтерфейсів, оскільки від якості їх опису залежить кількість самих дорогих помилок.
До найдорожчих відносяться помилки, що виявляються при комплексному тестуванні, оскільки для їх усунення можуть потрібно серйозні зміни вже відлагоджених текстів.
Таблиця 13.1
Основні позначення схем даних, згідно ГОСТу 19.701-90
Назва блоку |
Позначення |
Призначення блоку |
Збережені дані |
|
Для позначення таблиць і інших структур даних, які повинні бути збережені без уточнення типу пристрою |
Оперативний пристрій, що запам'ятовує |
|
Для позначення таблиць і інших структур даних, що зберігаються в оперативній пам'яті |
Пристрій, що запам'ятовує, з прямим доступом |
|
Для позначення таблиць і інших структур даних, що зберігаються на магнітних дисках |
Документ |
|
Для позначення таблиць і інших структур даних, що виводяться на друк |
Ручне введення |
|
Для позначення ручного введення даних з клавіатури |
Дисплей |
|
Для позначення даних, що виводяться на дисплей комп'ютера |
Рисунок 13.13 а – Функціональна схема програмного комплексу
Рисунок 13.13 б – Функціональна схема системи
Контрольні питання та завдання
1. Що розуміють під структурною і функціональною схемами програмного забезпечення? У яких випадках їх застосовують? Чим відрізняються структурні і функціональні схеми програмного забезпечення з різною архітектурою?
2. На яких властивостях програмних систем заснований метод покрокової деталізації? Чому з його застосуванням отримують тільки структурні алгоритми? У чому, по-Вашому, полягає основна складність даного методу?
3. Як використовується метод покрокової деталізації при розробці алгоритмів і структури програмного забезпечення?
4. Для чого будують структурні карти Константайна?
5. Чим структурні карти Джексона відрізняються від структурних карт Константайна?
6. Що покладене в основу методик Джексона і Варнье-Орра? Чим розрізняються дані методики?
7. Для яких розробок доцільно використовувати структурні методології?
