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