- •Інженерні основи програмного забезпечення
- •Поняття програмна інженерія. Що вивчає дисципліна «Програмна інженерія»?
- •Поняття системотехніка, бізнес-реінжиніринг.
- •Історія виникнення програмної інженерії.
- •Еволюційна модель розробки програмного забезпечення. Переваги та недоліки.
- •Формальна модель розробки програмного забезпечення. Переваги та недоліки.
- •Модель розробки програмного забезпечення на основі раніше створених компонентів. Переваги та недоліки.
- •Ітераційні моделі розробки програмного забезпечення. Переваги та недоліки.
- •Модель покрокової розробки програмного забезпечення. Переваги та недоліки.
- •Инструменты тестирования:
- •Мови моделювання програмного забезпечення.
- •Методи структурного аналізу.
- •Інформаційне моделювання Мартіна.
- •Структура та архітектура програмного забезпечення
- •Архітектура програмного забезпечення. Проектування архітектури.
- •Архітектурна модель клієнт-сервер.
- •Архітектурна модель абстрактної машини.
- •Архітектурні моделі управління (виклик-повернення та централізоване).
- •Проблемно-залежні архітектури програмного забезпечення.
- •Архітектура розподілених систем.
- •Багатопроцесорна архітектура програмного забезпечення.
- •Архітектура 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.1.2, для прискорення процесу створення ПЗ повторне використання раніше створених компонентів застосовується досить часто.
Неформальне рішення про повторне використання раніше створених програмних компонентів звичайно приймається незалежно від загального процесу створення ПЗ. Разом з тим протягом кількох останніх років все більш широко застосовується підхід до створення ПО, заснований саме на повторному використанні раніше створених програмних модулів.
Цей підхід заснований на наявності великої бази існуючих програмних компонентів, які можна інтегрувати в створювану нову систему. Часто такими компонентами є вільно продаються на ринку програмні продукти, які можна використовувати для виконання певних спеціальних функцій, таких як форматування тексту, числові обчислення і т.п. Загальна модель процесу розробки ПЗ з повторним використанням раніше створених компонентів показана на рис. 3.5.
У цьому підході початковий етап специфікації вимог і етап атестації такі ж, як і в інших моделях процесу створення ПЗ. А етапи, розташовані між ними, мають наступний сенс.
1. Аналіз компонентів. Маючи специфікацію вимог, на цьому етапі здійснюється пошук компонентів, які могли б задовольнити сформульованим вимогам. Зазвичай неможливо точно зіставити функції, реалізовані готовими компонентами, і функції, визначені специфікацією вимог.
2. Модифікація вимог. На цій стадії аналізуються вимоги з урахуванням інформації про компонентах, отриманої на попередньому етапі. Вимоги модифікуються таким чином, щоб максимально використовувати можливості відібраних компонентів. Якщо зміна вимог неможливо, повторно виконується аналіз компонентів для того, щоб знайти якесь альтернативне рішення.
3. Проектування системи. На даному етапі проектується структура системи або модифікується існуюча структура повторно використовуваної системи. Проектування повинно враховувати відібрані програмні компоненти і будувати структуру відповідно до їх функціональними можливостями. Якщо деякі готові програмні компоненти недоступні, проектується нове ПЗ.
4. Розробка та збірка системи. Це етап безпосереднього створення системи. У рамках розглянутого підходу збірка системи є скоріше частиною розробки системи, ніж окремим етапом.
Основні переваги описуваної моделі процесу розробки ПЗ з повторним використанням раніше створених компонентів полягають в тому, що скорочується кількість безпосередньо розроблюваних компонентів і зменшується загальна вартість створюваної системи. Разом з тим при використанні цього підходу неминучі компроміси при визначенні вимог; це може призвести до того, що закінчена система не буде відповідати всім вимогам замовника. Крім того, при проведенні модернізації системи (тобто при створенні її нової версії) відсутня можливість впливати на появу нових версій компонентів, що використовуються в системі, що значно ускладнює сам процес модернізації.
