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