
- •Лекція 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. Загальні функції:
5.2.2 Сценарії
Сценарії особливо корисні для деталізації вже сформульованих вимог, оскільки описують послідовність інтерактивної роботи користувача з системою. Кожен сценарій описує одне або декілька можливих взаємодій.
Сценарій починається із загального опису, потім поступово деталізується для створення повного опису взаємодії користувача з системою.
В більшості випадків сценарій включає наступне:
- опис стану системи після завершення сценарію;
- інформацію щодо інших дій, які можна здійснювати під час виконання сценарію;
- опис виняткових ситуацій і способів їх обробки;
- опис нормального протікання подій;
- опис стану системи на початку сценарію.
Сценарії подій використовуються для документування поведінки системи, представленої певними подіями. Сценарії включають опис потоків даних, системних операцій і виняткових ситуацій, які можуть виникнути (рис.5.6).
Рисунок 5.6 – Діаграма сценаріїв
Умовні позначення:
1. Дані, що поступають в систему або витікають з неї, представлені в еліпсах.
2. Керуюча інформація показана стрілками у верхній частині прямокутників.
3. Внутрісистемні дані показані праворуч від прямокутників.
4. Виняткові ситуації показані в нижній частині прямокутників.
5. Ім'я наступної події, очікуваної після завершення сценарію, приводиться в затіненому прямокутнику.
5.2.3 Етнографічний метод
Етнографічний підхід
Етнографічний підхід до формування системних вимог використовується для розуміння і формування соціальних і організаційних аспектів експлуатації системи. Розробник вимог занурюється в робоче середовище, де використовуватиметься система. Його щоденна робота пов'язана із спостереженням і протоколюванням реальних дій, що виконуються користувачами системи. Значення етнографічного підходу полягає в тому, що він допомагає виявити неявні вимоги до системи, які відображають реальні аспекти її експлуатації, а не формальні умоглядні процеси.
Етнографічний підхід дозволяє деталізувати вимоги для критичних систем, чого не завжди можна добитися іншими методами розробки вимог. Проте, оскільки цей метод орієнтований на кінцевого користувача, він не може охопити всі вимоги наочної області і вимоги організаційного характеру.
5.3 Специфікація вимог
Вимоги користувачів – це опис на природній мові функції, що виконується системою, і обмежень, що накладаються на неї [11].
Вимоги користувачів повинні описувати зовнішню поведінку системи, основні функції і сервіси, що надаються системою, її не функціональні властивості. Необхідно виділити опорні точки зору і згрупувати вимоги у відповідності із ними. Вимоги користувачів можна оформити простим переліком.
Далі складають системні вимоги. Вони включають в собі:
Вимоги до архітектури системи. Наприклад, кількість і розміщення сховищ і серверів додатків.
Вимоги до параметрів обладнання. Наприклад, частота процесорів серверів і клієнтів, об’єм сховищ, розмір оперативної і відео пам’яті, пропускна здатність каналу і т.д.
Вимоги до параметрів системи. Наприклад, час відгуку на дії користувача, максимальний розмір файлу, що передається, максимальна швидкість передавання даних, максимальна кількість одночасно працюючих користувачів і т.д.
Вимоги до програмного інтерфейсу.
Вимоги до структури системи. Наприклад, масштабованість, розподіленість, модульність, відкритість.
масштабованість – можливість поширення системи на велику кількість машин, що не призводить до втрати робото здатності і ефективності, при цьому здатність системи нарощувати свою потужність повинна визначатися тільки потужністю відповідного апаратного забезпечення.
розподіленість – система документообігу повинна підтримувати розподілене зберігання даних.
модульність – система документообігу повинна складатися із окремих модулів, інтегрованих між собою.
відкритість – наявність окремих інтерфейсів для можливого доопрацювання і інтегрування з іншими системами.
Вимоги щодо взаємодії і інтеграції з іншими системами. Наприклад, використання спільної бази даних, можливість отримання даних із баз даних певних систем і т.д.