- •Інженерні основи програмного забезпечення
- •Поняття програмна інженерія. Що вивчає дисципліна «Програмна інженерія»?
- •Поняття системотехніка, бізнес-реінжиніринг.
- •Історія виникнення програмної інженерії.
- •Еволюційна модель розробки програмного забезпечення. Переваги та недоліки.
- •Формальна модель розробки програмного забезпечення. Переваги та недоліки.
- •Модель розробки програмного забезпечення на основі раніше створених компонентів. Переваги та недоліки.
- •Ітераційні моделі розробки програмного забезпечення. Переваги та недоліки.
- •Модель покрокової розробки програмного забезпечення. Переваги та недоліки.
- •Инструменты тестирования:
- •Мови моделювання програмного забезпечення.
- •Методи структурного аналізу.
- •Інформаційне моделювання Мартіна.
- •Структура та архітектура програмного забезпечення
- •Архітектура програмного забезпечення. Проектування архітектури.
- •Архітектурна модель клієнт-сервер.
- •Архітектурна модель абстрактної машини.
- •Архітектурні моделі управління (виклик-повернення та централізоване).
- •Проблемно-залежні архітектури програмного забезпечення.
- •Архітектура розподілених систем.
- •Багатопроцесорна архітектура програмного забезпечення.
- •Архітектура 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 іі.
- •Поняття ризику у проекті. Причини ризику в проекті.
- •Види ризиків. Моніторинг і контроль ризиків.
- •Поняття конфігурації. Елементи конфігурації.
- •Поняття супроводу програмного забезпечення. Хто здійснює супровід.
- •Поняття підтримки програмного забезпечення. Структура іт-супроводу.
- •Поняття програмна археологія. Інструменти і методи програмної археології.
Класифікації моделей надійності за Хетчем.
Однією з класифікацій моделей надійності ПС є класифікація Хетча, за якою моделі розділяються на прогнозні, вимірювальні й оцінні (рис.).
Прогнозні моделі надійності ґрунтуються на вимірюванні технічних характеристик створюваної програми: довжина, складність, число циклів і ступінь їхньої складності, кількість помилок на сторінку операторів програми та ін. Наприклад, модель Мотлі–Брукса. У цих моделях довжина програми є основою прогнозування кількості помилок, наприклад, для 100 операторів програми можна змоделювати інтенсивність відмов.
Модель Холстеда прогнозує кількість помилок у програмі залежно від її обсягу й таких даних, як число операцій (n1) і операндів (n2), а також їхнє загальне число (N1, N2).
Вимірювальні моделі призначені для визначення надійності ПЗ, що працює із певним зовнішнім середовищем. (Нельсона й Рамамурти–Бастани та ін. Модель оцінки надійності Нельсона ґрунтується на виконанні k-прогонів програми при тестуванні й дозволяє визначити надійність).
Вони мають такі обмеження:
ПЗ не модифікується під час періоду вимірювання властивостей надійності;
виявлені помилки не виправляються;
вимірювання надійності здійснюється для зафіксованої конфігурації ПЗ.
Оцінні моделі ґрунтуються на серії тестових прогонів і здійснюються на процесах тестування ПC. У тестовому середовищі визначається ймовірність відмови програми при її виконанні або тестуванні.
Інженерія надійності програмного забезпечення та її складові.
На надійність ПЗ впливають, з одного боку, загрози, що призводять до несприятливих наслідків, ризику порушення безпеки системи, а з іншого –, здатність сукупності компонентів системи зберігати стійкість у процесі її експлуатації.
Надійність є однією з ключових проблем сучасних ПС. Інженерія надійності ПС (Software reliability engineering – SRE), орієнтується на кількісне вивчення операційної поведінки компонентів ПЗ відносно користувача, який очікує надійну роботу системи, і містить у собі:
1) вимірювання надійності, тобто проведення кількісної оцінки методами передбачення, збирання даних про поведінку системи в процесі тестування й експлуатації ПС;
2) оцінку стратегії й метрик конструювання й вибору готових компонентів у процесі розроблення системи, а також середовища функціонування, що впливає на надійність роботи системи;
3) сучасні методи інспектування, верифікації, валідації та тестування при розробленні окремих компонентів і системи в цілому.
В інженерії надійності визначено новий термін dependability, що означає залежність, визначає здатність системи мати властивості, бажані для користувача й такі, що дають йому впевненість у якісному виконанні функцій, наданих у вимогах до системи. Dependability додає додаткові атрибути, які повинна володіти ПС, а саме:
готовність до використання (availability);
готовністю до безперервного функціонування (reliability);
здатність системи не викликати катастрофічних наслідків у випадку відмови (safety);
таємність і схоронність інформації (сonfidential);
здатність до збереження системи й стійкості до довільної її зміни (integrity);
здатність до експлуатації ПС, простота виконання операцій обслуговування, а також усунення помилок, відновлення системи після їхнього усунення й т.п.(maintainability);
готовність і схоронність інформації (security) і ін.
Досягнення необхідної надійності системи забезпечується шляхом запобігання відмов (fault prevention), їх усунення (removal fault), можливого виконання системи при їх наявності й оцінки можливості появи нових відмов і засобів боротьби з ними. Відмови мають випадковий характер, аналіз яких ґрунтується на методах теорії ймовірностей і випадкових процесів.
Для отримання високої надійності ПС потрібно спостерігати за значенням цього показника якості на всіх процесах ЖЦ, про що свідчать рекомендації стандарту ISO/IEC 12207. виконання основних процесів реалізації ПС. У зв'язку із цим розглянемо
З організаційного характеру процесу керування якістю випливає, що забезпечення надійності припускає складання плану-графіка, у якому
відображаються такі види дій:
виділення керованих і некерованих чинників процесу розроблення, що впливають на надійність (керовані чинники – розв’язки інспекції, обсяги всіх видів ресурсів при тестуванні, некеровані чинники – параметри середовища функціонування, досвід обслуговуючого персоналу, об’єм продукту, можливість зміни вихідних вимог до ПС та ін.);
вибір необхідних значень керованих чинників для оцінки досягнення цільових вимог до інтенсивності відмов і прийняття необхідних обмежень;
аналіз чинників, що впливають на інтенсивність відмов;
розроблення планів тестування й випробування продукту для оцінки надійності ПС, у тому числі при специфікації вимог, відповідності їхнім вимогам стандарту й проведення робіт з перевірки й атестації готового продукту.
