- •Інженерні основи програмного забезпечення
- •Поняття програмна інженерія. Що вивчає дисципліна «Програмна інженерія»?
- •Поняття системотехніка, бізнес-реінжиніринг.
- •Історія виникнення програмної інженерії.
- •Еволюційна модель розробки програмного забезпечення. Переваги та недоліки.
- •Формальна модель розробки програмного забезпечення. Переваги та недоліки.
- •Модель розробки програмного забезпечення на основі раніше створених компонентів. Переваги та недоліки.
- •Ітераційні моделі розробки програмного забезпечення. Переваги та недоліки.
- •Модель покрокової розробки програмного забезпечення. Переваги та недоліки.
- •Инструменты тестирования:
- •Мови моделювання програмного забезпечення.
- •Методи структурного аналізу.
- •Інформаційне моделювання Мартіна.
- •Структура та архітектура програмного забезпечення
- •Архітектура програмного забезпечення. Проектування архітектури.
- •Архітектурна модель клієнт-сервер.
- •Архітектурна модель абстрактної машини.
- •Архітектурні моделі управління (виклик-повернення та централізоване).
- •Проблемно-залежні архітектури програмного забезпечення.
- •Архітектура розподілених систем.
- •Багатопроцесорна архітектура програмного забезпечення.
- •Архітектура 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 іі.
- •Поняття ризику у проекті. Причини ризику в проекті.
- •Види ризиків. Моніторинг і контроль ризиків.
- •Поняття конфігурації. Елементи конфігурації.
- •Поняття супроводу програмного забезпечення. Хто здійснює супровід.
- •Поняття підтримки програмного забезпечення. Структура іт-супроводу.
- •Поняття програмна археологія. Інструменти і методи програмної археології.
Модель надійності Нельсона.
Модель була розроблена [13] з урахуванням основних властивостей машинних програм і практично не використовує методи теорії ймовірності. Все наближення, прийняті в цій моделі, чітко визначені, і межі їх застосування відомі. Оскільки в основу моделі Нельсона покладені властивості програмного забезпечення, вона допускає розвиток за рахунок більш детального опису інших аспектів надійності і може використовуватися для розрахунку надійності програмного забезпечення на всіх етапах його життєвого циклу.
У моделі передбачається, що область, якої можуть належати вхідні дані програми, розділена на k непересічних областей Zi, i = 1, 2, ..., k. Нехай pi - ймовірність того, що для чергового виконання програми буде обраний набір даних з області Zi. Значення pi визначаються за статистикою вхідних даних в реальних умовах роботи програмного забезпечення.
Нехай до моменту оцінки надійності було виконано ni прогонів програмного забезпечення на наборах даних з області Zi, і з цих прогонів закінчилися відмовою.
Тоді надійність програмного забезпечення оцінюється за формулою
.
(1
Переваги та недоліки моделі. Основною перевагою цієї моделі є те, що вона була спеціально створена для визначення надійності програмного забезпечення, а не виходила з теорії надійності апаратури, як інші моделі (крім моделі Міллса), тому може використовуватися для розрахунку надійності програмного забезпечення на всіх етапах його життєвого циклу.
Але на ранніх стадіях використовувати цю модель не дуже зручно, так як для об'єктивної оцінки надійності потрібна велика кількість прогонів ПО. Тому нижче розглянемо модель Нельсона при розрахунку надійності на стадії експлуатації.
Модель надійності Джелінскі-Моранді.
Модель з дискретним спадання інтенсивності відмов. У цій моделі передбачається, що інтенсивність помилок описується кусково-постійними функціями, пропорційної числа не усунених помилок. Тобто передбачається, що інтенсивність відмов постійна до виявлення і виправлення помилки, після чого вона знову стає постійною, але з іншим, меншим, значенням. При цьому передбачається, що між і числом залишилися в програмі помилок існує пряма залежність
M - невідоме початкове число помилок
i - число виявлених помилок, що залежать від часу t
k - константа
Частота виявлення i-ой помилки
задається співвідношенням
Значення невідомих параметрів k і M може бути оцінений на основі послідовності спостережень інтервалів між моментами виявлення помилок за методом максимальної правдоподібності.
Статистична модель надійності Міллса.
Цю модель можна використовувати для сертифікації програмних засобів.
У моделі не використовуються припущення про поведінку функції ризику. Ця модель будується на твердому статистичному фундаменті.
Спочатку програма «засмічується» деякою кількістю відомих помилок. Ці помилки вносяться в програму випадковим чином, а потім робиться припущення, що для її власних і внесених помилок ймовірність виявлення однакова і залежить тільки від їх кількості. Тестуючи програму протягом деякого часу і отсортіровивая власні і внесені помилки можна оцінити N - початкове число помилок в програмі.
Припустимо, що в програму було внесено S помилок. Нехай при тестуванні виявлено (n + V) помилок.
n - число власних помилок
V - число внесених помилок
Тоді оцінка для N за методом максимальної правдоподібності буде наступною
Насправді N можна оцінювати після кожної помилки. Міллс пропонує під час всього періоду тестування відзначати на графіку число знайдених помилок і поточні оцінки для N.
Друга частина моделі пов'язана з висуненням і перевіркою гіпотез про N.
Приймемо, що програмі є не більше k власних помилок і внесемо в неї ще S помилок. Тепер програма тестується, поки не будуть виявлені всі внесені помилки. Причому підраховується число виявлених власних помилок n. Рівень значущості З обчислюється за формулою
З - міра довіри до моделі - ймовірність того, що модель буде правильно відхиляти хибні припущення.
Формули для N і C утворюють корисну модель помилок.
