- •Інженерні основи програмного забезпечення
- •Поняття програмна інженерія. Що вивчає дисципліна «Програмна інженерія»?
- •Поняття системотехніка, бізнес-реінжиніринг.
- •Історія виникнення програмної інженерії.
- •Еволюційна модель розробки програмного забезпечення. Переваги та недоліки.
- •Формальна модель розробки програмного забезпечення. Переваги та недоліки.
- •Модель розробки програмного забезпечення на основі раніше створених компонентів. Переваги та недоліки.
- •Ітераційні моделі розробки програмного забезпечення. Переваги та недоліки.
- •Модель покрокової розробки програмного забезпечення. Переваги та недоліки.
- •Инструменты тестирования:
- •Мови моделювання програмного забезпечення.
- •Методи структурного аналізу.
- •Інформаційне моделювання Мартіна.
- •Структура та архітектура програмного забезпечення
- •Архітектура програмного забезпечення. Проектування архітектури.
- •Архітектурна модель клієнт-сервер.
- •Архітектурна модель абстрактної машини.
- •Архітектурні моделі управління (виклик-повернення та централізоване).
- •Проблемно-залежні архітектури програмного забезпечення.
- •Архітектура розподілених систем.
- •Багатопроцесорна архітектура програмного забезпечення.
- •Архітектура corba.
- •Моделі об’єктно-орієнтованого проектування програмного забезпечення.
- •Проектування систем реального часу.
- •Проектування з повторним використанням компонентів.
- •Проектування інтерфейсу програмного забезпечення.
- •Документування програмних продуктів.
- •Поняття документація на програмне забезпечення, програмний документ. Типи документації.
- •Організації що публікують стандарти.
- •Типовий набір документації проекту.
- •Основні стандарти розробки програмних систем і програмного забезпечення.
- •Стандарти вимог, архітектури, якості і тестування програмного забезпечення.
- •Стандарти серії гост 34.Ххх та гост 19.Ххх.
- •Процеси за стандартом iso/іec 12207.
- •Процеси за стандартом iso/іec 15288.
- •Поняття вимоги. Етапи формування вимог. Рівні вимог.
- •Які розділи містить звіт про виконану роботу та заявку на розробку програмного забезпечення?
- •Склад і зміст робіт на стадії «Опис програмного забезпечення».
- •Поняття ескізний проект. Склад і зміст робіт на стадії «Ескізний проект».
- •Що описує Технічне завдання (тз). З яких етапів складається розробка тз та на основі якого стандарту?
- •З яких розділів складається технічне завдання?
- •Що описує Технічний проект (тп)? з яких етапів складається розробка технічного проекту?
- •Види забезпечень.
- •Статичні і динамічні методи тестування.
- •Тестування «білої скриньки»
- •Тестування «чорної скриньки».
- •Метод "сірої скриньки".
- •Види тестування.
- •Рівні тестування.
- •Помилки на етапах життєвого циклу програмного забезпечення.
- •Поняття помилки, дефекту та відмови.
- •Класи помилок в програмному забезпеченні.
- •Тест план (Test Plan). Тестовий сценарій (Test Cases). Процедури тестування (Test Procedures). Баг Репорт (Bug Report).
- •Моделі якості та надійності програмних систем
- •Якість програмного забезпечення. Модель якості за рівнями.
- •Показники якості.
- •Атрибути функціональності, надійності та зручності застосування.
- •Атрибути ефективності, супроводу та переносимості.
- •Метрики програмного продукту.
- •Метрики процесу створення продукту та використання.
- •Методи оцінки значень показників якості.
- •Методи управління програмним проектом
- •Поняття надійності програмного забезпечення.
- •Класифікації моделей надійності за Гоєлем.
- •Класифікації моделей надійності за Хетчем.
- •Інженерія надійності програмного забезпечення та її складові.
- •На яких процесах жц здійснюється перевірка надіності?
- •Поняття сертифікація програмного забезпечення. Види сертифікації продукту.
- •Евристична модель надійності.
- •Модель надійності Нельсона.
- •Модель надійності Джелінскі-Моранді.
- •Статистична модель надійності Міллса.
- •Поняття Проект (Project). Менеджмент проекту (Project Management). Масштаб проекту (Project Scope).
- •Головні цілі менеджменту проекту.
- •Процес менеджменту проекту.
- •Модель процесу керування проектом.
- •Учасники проекту з розробки програмного забезпечення.
- •Ролі в групі розробників проекту.
- •Мережні методи планування і керування проектом.
- •Метод критичного шляху – срм.
- •Метод аналізу й оцінки проекту – pert.
- •Види планів організації проекту.
- •Моніторинг проекту.
- •Модель оцінки вартості проекту cocomo.
- •Модель оцінки вартості проекту cocomo іі.
- •Поняття ризику у проекті. Причини ризику в проекті.
- •Види ризиків. Моніторинг і контроль ризиків.
- •Поняття конфігурації. Елементи конфігурації.
- •Поняття супроводу програмного забезпечення. Хто здійснює супровід.
- •Поняття підтримки програмного забезпечення. Структура іт-супроводу.
- •Поняття програмна археологія. Інструменти і методи програмної археології.
Формальна модель розробки програмного забезпечення. Переваги та недоліки.
Цей підхід до створення ПЗ має багато рис, схожих з каскадної моделлю, але побудований на основі формальних математичних перетворень системної специфікації у виконувану програму. Процес створення ПЗ відповідно до цього підходом показаний на рис. 3.3. Тут для спрощення не вказані зворотні зв'язки між етапами процесу.
Між даними підходом і каскадної моделлю існують наступні кардинальні відмінності.
Тут специфікація системних вимог має вигляд деталізованої формальної специфікації, записаної за допомогою спеціальної математичної нотації.
Процеси проектування, написання програмного коду і тестування системних модулів замінюються процесом, в якому формальна специфікація шляхом послідовних формальних перетворень трансформується в виконувану програму. Цей процес показаний на рис. 3.4.
У процесі перетворення формальне математичне представлення системи послідовно і математично коректно трансформується в програмний код, поступово все більш деталізований. Ці перетворення виконуються доти, поки всі позиції формальної специфікації НЕ будуть трансформовані в еквівалентну програму. Перетворення виконуються математично коректно - тут не існує проблеми перевірки відповідності специфікації і програми.
Перевага методу формальних перетворень, яке полягає в точній відповідності кінцевої програми специфікації, забезпечується тим, що дистанція між послідовними перетвореннями значно менше дистанції між специфікацією і програмою. Доведення коректності програмного коду для великих масштабованих систем зазвичай дуже довго, а часто просто не здійснимо. У цьому відношенні метод формальних перетворень, що складається з послідовності невеликих формальних кроків, вельми привабливий. Однак вибір для застосування відповідних формальних перетворень складний і неочевидний.
Найбільш відомим прикладом методу формальних перетворень є метод "чистої кімнати" (Cleanroom), розроблений компанією IBM [239, 310, 219, 284]. Цей метод передбачає покрокову розробку ПЗ, коли на кожному кроці застосовується формальні перетворення. Це дозволяє відмовитися від тестування окремих програмних модулів, а тестування всієї системи відбувається після її збірки. Цей підхід більш докладно розглянуто в главі 19.
Як метод "чистої кімнати", так і інші методи формальних перетворень ґрунтуються на В-методі [348]. Всі ці методи мають кілька "вроджених" недоліків, а вартість розробки ПЗ за допомогою цих методів не набагато відрізняється від вартості розробок іншими методами. Методи формальних перетворень зазвичай застосовують для розробки систем, які повинні задовольняти суворим вимогам надійності, безвідмовності і безпеки, так як вони гарантують відповідність створених систем їх специфікаціям.
Крім розробки зазначеного типу систем, методи формальних перетворень не знайшли широкого застосування, оскільки вимагають спеціальних знань і досвіду використання. Крім того, для більшості систем ці методи не дають істотного виграшу у вартості або якості в порівнянні з іншими методами розробки ПЗ. Основна причина полягає в тому, що функціонування більшості систем насилу піддається опису методом формальних специфікацій, - при створенні більшості програмних систем велика частина зусиль розробників йде саме на створення специфікацій.
