
- •Лекція 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. Загальні функції:
1.6. Прискорення розробки пз.
Розробка спіральної моделі життєвого циклу ПЗ і використання CASE-технологій дозволили сформулювати умови, з виконанням яких скорочуються терміни створення ПЗ.
Сучасні технології проектування, розробки і супроводу ПЗ повинні відповідати наступним вимогам:
• підтримка повного життєвого циклу програмного забезпечення;
• гарантоване досягнення цілей розробки із заданою якістю і у встановлений час;
• можливість виконання масштабних проектів у вигляді підсистем, групами виконавців обмеженої чисельності (3-7 чоловік), з подальшою інтеграцією складових частин, і координації ведення загального проекту;
• мінімальний час отримання працездатної системи;
• можливість управління конфігурацією проекту, ведення версій проекту і автоматичного випуску проектної документації за кожною версією;
• незалежність виконуваних проектних рішень від засобів реалізації (СУБД, операційних систем, мов і систем програмування);
• підтримка комплексом узгоджених CASE-засобів, що забезпечують автоматизацію процесів, що виконуються на всіх стадіях життєвого циклу.
Цим вимогам відповідає технологія RAD (Rapid Application Development – Швидка розробка додатків)[11]. Підхід RAD передбачає наявність три складових:
ведення розробки невеликими групами розробників (від 3 до 7 чоловік), що виконують роботи по проектуванню окремих підсистем ПЗ. Це обумовлено вимогою максимальної керованості колективу;
наявність чіткого графіку циклу, який розрахований не більш ніж на три місяці, що збільшить ефективність роботи;
використання ітераційного підходу, що приводить до зменшення часу отримання працюючого прототипу.
Основні принципи підходу RAD:
розробка додатків ітераціями;
необов'язковість повного завершення робіт на кожній із стадій життєвого циклу ПЗ;
обов'язковість залучення користувачів в процес розробки;
застосування засобів управління конфігурацією, що полегшують внесення змін до проекту і супроводу готової системи;
використання прототипування, що дозволяє повніше з'ясувати і задовольнити потреби користувачів;
тестування і розвиток проекту, здійснювані одночасно з розробкою;
ведення розробки нечисленною добре керованою командою професіоналів;
грамотне керівництво розробкою системи, чітке планування і контроль виконання робіт.
Команда розробників повинна бути групою професіоналів, що мають досвід в проектуванні, програмуванні і тестуванні ПЗ, здатних добре взаємодіяти з кінцевими користувачами і трансформувати їх пропозиції в робочі прототипи.
Життєвий цикл ПЗ відповідно до підходу RAD складається з чотирьох стадій:
аналіз і планування вимог;
проектування;
реалізація;
впровадження.
RAD добре зарекомендувала себе для відносно невеликих проектів, що розробляються для конкретного замовника, і не застосовується для побудови складних розрахункових програм, операційних систем або програм управління складними об'єктами в реальному масштабі часу, тобто програм, що містять великий об'єм (сотні тисяч рядків) унікального коду, а також систем, від яких залежить безпека людей (наприклад, керування літаком або атомною електростанцією).
Контрольні питання і завдання
Що таке модуль життєвого циклу ПЗ? Які є типи моделей?
Порівняйте прогнозовані моделі і адаптивні. Коли вони приміняються?
Що таке прототип? В яких моделях він присутній?
Що таке CASE-технології? Що лежить в основі будь-якої CASE-технології?
Поясніть терміни: методологія, метод, нотація, засіб.
Поясніть якісні зміни процесу розробки ПЗ при переході до використання CASE-засобів.