You are on page 1of 6

екзаменаційні питання

для комплексного державного іспиту

з предмету «Основи програмної інженерії»

1. Сформулюйте визначення життєвого циклу розробки програмного забезпечення, згідно


стандарту ISO/IEC 12207. Назвіть три основні групи процесів життєвого циклу. Перелічіть
процеси кожної з груп.
2. Назвіть етапи процесу розробки програмного забезпечення. Визначте завдання етапу
проектування програмного забезпечення. Опишіть процеси етапу проектування.
3. Основні моделі життєвого циклу розробки програмного забезпечення та їх відмінності.
4. Поясніть суть відношень, за допомогою яких будуються поняття: узагальнення /конкретизація,
агрегація/, декомпозиція, абстракція, асоціація. Назвіть елементи об'єктно-орієнтованого
моделювання програмних систем.
5. Назвіть шари, які може бути виділено в сучасній архітектурі програмного забезпечення?
6. Опишіть процеси забезпечення надійності функціонування системи.
7. Назвіть діаграми UML, які доцільно застосовувати для аналізу вимог? З якої діаграми доцільно
починати?
8. У чому полягає зміст процесу тестування? Назвіть методи тестування. Поясніть значення
термінів "чорна скринька", "біла скринька".
9. Сформулюйте основні завдання верифікації та валідації програм. Яка є класифікація типів
помилок у програмах?
10. Назвіть об'єкти тестування і підходи до їх тестування.
11. Визначте мету і завдання супроводження програмного забезпечення. Які види діяльності
розрізняють при виконанні супроводження?
12. Назвіть основні аспекти і рівні моделі якості програмного забезпечення. Наведіть
характеристики якості й визначте їхній зміст.
13. Назвіть основну мету і завдання системи керування якістю. У чому суть інженерії якості?
14. Дати характеристику аутсорсингу програмних проектів.
15. Охарактеризувати основні види ліцензій на програмні продукти.

Відповіді:

1. Сформулюйте визначення життєвого циклу розробки програмного забезпечення, згідно


стандарту ISO/IEC 12207. Назвіть три основні групи процесів життєвого циклу. Перелічіть процеси
кожної з груп.

Життєвий цикл розробки програмного забезпечення - це процес, що складається зі стадій


розробки, тестування, впровадження та підтримки програмного забезпечення з метою забезпечення
високої якості та задоволення потреб користувачів.

Основні процеси (придбання, постачання, розробка, експлуатація, супровід); Допоміжні


процеси (документування, управління конфігурацією, забезпечення якості, перевірка, атестація);
Організаційні процеси (управління проектами, створення інфраструктури проекту, визначення, оцінка
і покращення самого життєвого циклу, навчання).

2. Назвіть етапи процесу розробки програмного забезпечення. Визначте завдання етапу


проектування програмного забезпечення. Опишіть процеси етапу проектування.

Формування вимог; Проєктування; Реалізація; Тестування; Впровадження; Експлуатація та


супровід.

Етап проектування програмного забезпечення (ПЗ) полягає у розробці детального плану того,
як буде реалізовано ПЗ, яке відповідатиме вимогам технічного завдання та вимогам замовника.
Розробляється чіткий план дій, вибір представлення даних, стилів та шаблонів архітектури,
визначення стратегій вирішення завдань. Складається технічна документація, визначаються основні
правила документування програмного забезпечення, вибираються методики тестування.

Процес етапу проектування може включати такі кроки:

 Вивчення вимог до ПЗ
 Розробка технічного завдання
 Розробка загальної структури ПЗ та його компонентів
 Розробка детального плану реалізації ПЗ
 Розробка алгоритмів та структур даних
 Розробка інтерфейсу користувача
 Вибір технологій та інструментів
 Оцінка ризиків та планування заходів щодо їх управління
 Підготовка документації, що описує проект

3. Основні моделі життєвого циклу розробки програмного забезпечення та їх відмінності.

Каскадна модель - модель процесу розробки програмного забезпечення, в якій процес розробки
виглядає як потік, що послідовно проходить фази аналізу вимог, проектування, реалізації, тестування,
інтеграції та підтримки. Інкрементна модель — це метод, у якому проект проектується, реалізується
та тестується інкрементно (тобто щоразу з невеликими додаваннями) до закінчення розробки.
Інкрементна модель передбачає розбиття життєвого циклу проекту на послідовність ітерацій, кожна з
яких ж невеликим проектом, включаючи всі стадії життєвого циклу в застосуванні до створення
менших фрагментів функціональності, в порівнянні з проектом в цілому. Спіральна модель —
генератор моделі процесу керування ризиками для проєктів програмного забезпечення. У спіральній
моделі життєвий шлях продукту, що розробляється, зображується у вигляді спіралі, яка,
розпочавшись на етапі планування, розкручується з проходженням кожного наступного кроку.

4. Поясніть суть відношень, за допомогою яких будуються поняття: узагальнення /конкретизація,


агрегація/, декомпозиція, абстракція, асоціація. Назвіть елементи об'єктно-орієнтованого
моделювання програмних систем.

Узагальнення - це процес створення нового класу, в якому зберігається спільна інформація


відносно декількох класів. Конкретизація - це процес створення нового класу, який містить
специфічну для певного класу інформацію. Агрегація - це процес створення нового об'єкта шляхом
комбінування кількох інших об'єктів. Декомпозиція - це процес розбиття складної системи на менші
компоненти, щоб полегшити її розуміння і підтримку. Абстракція - це процес визначення загальної
інформації про об'єкт або систему і відкидання несуттєвих деталей. Асоціація - це взаємодія між
двома або більше об'єктами, коли один об'єкт використовує або знаходиться в залежності від іншого.

Елементи об'єктно-орієнтованого моделювання програмних систем:

 Класи - визначають структуру об'єктів.


 Об'єкти - екземпляри класів.
 Поля - зберігають стан об'єкті

5. Назвіть шари, які може бути виділено в сучасній архітектурі програмного забезпечення?

 Шар інтерфейсу користувача (UI) - цей шар містить усі компоненти, які відповідають за
взаємодію з користувачем, такі як віджети, форми, кнопки тощо.
 Шар додаткової логіки - цей шар містить компоненти, які відповідають за бізнес-логіку
програми, такі як правила валідації, обробка даних та інші логічні компоненти.
 Шар доступу до даних (Data Access Layer) - цей шар містить компоненти, які відповідають за
доступ до даних та їх збереження, такі як об'єктно-реляційні відображення, запити до бази
даних та інші компоненти.
 Шар послуг (Services Layer) - цей шар містить компоненти, які відповідають за надання послуг
віддаленим клієнтам, такі як веб-служби, API-інтерфейси та інші компоненти.
 Шар інфраструктури - цей шар містить компоненти, які відповідають за роботу інфраструктури
програмного забезпечення, такі як сервери додатків, мережеві компоненти, безпеку та інші.

6. Опишіть процеси забезпечення надійності функціонування системи.

 Аналіз вимог до надійності. Необхідно провести аналіз вимог до системи та визначити, які
параметри надійності є критичними для додатку.
 Проектування архітектури системи. Необхідно проектувати архітектуру системи так, щоб було
можливо досягти потрібних параметрів надійності.
 Тестування. Проведення різних видів тестування, що допоможе виявити та виправити
помилки, зменшить кількість вразливостей та збільшить надійність системи.
 Застосування патернів проектування. Використання патернів проектування може допомогти
збільшити надійність системи та знизити ймовірність виникнення помилок.
 Використання відкритих стандартів та практик. Використання відкритих стандартів та практик
допоможе забезпечити більшу стабільність та надійність системи.
 Резервне копіювання. Збереження резервних копій даних є дуже важливим аспектом
забезпечення надійності системи, оскільки дозволяє відновити дані у випадку їх втрати.
 Моніторинг та логування. Система моніторингу та логування може допомогти виявити
вразливості та помилки в системі, збільшити надійність та швидкість реагування на проблеми.

7. Назвіть діаграми UML, які доцільно застосовувати для аналізу вимог? З якої діаграми доцільно
починати?

Діаграма випадкових величин, Діаграма послідовності, Діаграма класів, Діаграма активності,


Діаграма станів.

Для початку аналізу вимог доцільно використовувати діаграму випадкових величин оскільки вона
дозволяє ідентифікувати акторів системи та їх взаємодію з нею. Після цього можна використовувати
інші.

8. У чому полягає зміст процесу тестування? Назвіть методи тестування. Поясніть значення термінів
"чорна скринька", "біла скринька".

Тестування – це процес визначення відповідності об’єкта тестування заданим специфікаціям


(характеристикам, функціям), який полягає в опрацюванні програмою послідовності різноманітних
контрольних наборів тестів з відомими результатами. Основна ідея тестування – запустити ПЗ і
спостерігати за його роботою та її наслідками.

Функціональні види тестування пов’язані з дослідженням зовнішньої поведінки системи(ф-


ціональне, безпеки, взаємодії); Нефункціональні види тестування, які спрямовані на перевірку всіх
нефункціональних особливостей системи(встановлення, зручності, відмова і відновлення,
конфігурації, продуктивності); Модульне тестування – це метод тестування програмного
забезпечення, який полягає в окремому (ізольованому) тестуванні кожного мінімально можливого
для тестування компоненту програми. Інтеграційне тестування, коли система будується поетапно,
групи модулів додаються поступово. Та тестування повязане зі змінами.

Коли проводиться тестування «чорного ящика», то мається на увазі те, що тестувальник не має
доступу до вихідного коду програми. Тестування «білого ящика» дозволяє тестувальнику
використовувати вихідний код програми. Тестування «білого ящика» передбачає активне
використання початкового коду.

9. Сформулюйте основні завдання верифікації та валідації програм. Яка є класифікація типів


помилок у програмах?

Верифікація – це процес оцінки системи/компоненту з метою визначити, чи задовольняють


результати конкретної фази умовам, накладеним на початку цієї фази. Верифікація дозволяє
переконатися в коректності переходів між фазами: 1) Потреби користувачів. 2) Функції продукту. 3)
Вимоги. 4) Архітектура. 5) Модель проєктування. 6)Реалізація. 7)Планування тестів.

Валідація – це процес оцінки системи/компоненту під час або після закінчення процесу
розробки з метою визначити, чи задовольняє вона/він заданим вимогам. Для перевірки правильності
проводяться приймально-здавальні випробування, які містять 8 документів: 1) План
тестування(як,хто, що, скільки) 2) Критерії успішності тестування. 3) Дані для тестування. 4) Сценарії
тестування, включаючи передумови і кроки тестів. 5)Звіт про переходи між етапами тестування. 6)
Протокол тестування. 7) Звіт про інциденти 8) Звіт про тестування

Синтаксичні помилки – виникають через порушення правил мови програмування. Семантичні


(логічні) помилки – ті, що призводять до некоректних обчислень або помилок під час виконання.
Логічні, ф-ціональні, обчислень, вводу-виводу, інтерфейсу.

10. Назвіть об'єкти тестування і підходи до їх тестування.

 Програмні модулі - для тестування програмних модулів використовують метод модульного


тестування. Цей метод полягає в тестуванні окремих функцій або методів, що входять до
складу модуля, з метою виявлення помилок та недоліків.
 Функціональні вимоги - для тестування виконання функціональних вимог використовують
метод функціонального тестування. Цей метод полягає в тестуванні окремих функцій або
сценаріїв, що входять до складу функціональності програми.
 Нефункціональні вимоги - для тестування нефункціональних вимог використовують різні
методи, в тому числі методи навантажувального тестування, тестування на стійкість до збоїв,
тестування на безпеку та інші.
 Інтерфейс користувача - для тестування інтерфейсу користувача використовують методи, що
включають в себе тестування взаємодії користувача з програмою, тестування на зручність та
інтуїтивність використання, тестування на сумісність з різними пристроями.

11. Визначте мету і завдання супроводження програмного забезпечення. Які види діяльності
розрізняють при виконанні супроводження?

Мета супроводження програмного забезпечення полягає в підтриманні його працездатності,


адаптації до змін у вимогах та оточенні, забезпеченні безпеки, ефективності та якості роботи
програми, а також зменшенні ризиків пов'язаних з її експлуатацією. Основні завдання супроводження
програмного забезпечення включає підтримку програми у працездатному стані, адаптацію до змін,
підтримку безпеки та документації.

При виконанні супроводження програмного забезпечення можуть розрізняти такі види


діяльності:

 Коригування помилок - ця діяльність включає в себе виявлення та виправлення


помилок в програмному забезпеченні.
 Модифікація програмного забезпечення - ця діяльність передбачає внесення змін у
програмний код, щоб забезпечити розширення функціональності, підтримку нових
вимог або адаптацію до змін у вимогах користувачів.
 Підтримка користувачів - ця діяльність включає в себе надання допомоги
користувачам програмного забезпечення в разі виникнення проблем під час
експлуатації програми.
 Тестування програмного забезпечення - ця діяльність полягає в проведенні тестів
програмного забезпечення для виявлення нових помилок, аналізу функціональності та
продуктивності програми, а також перевірки її відповідності вимогам.

12. Назвіть основні аспекти і рівні моделі якості програмного забезпечення. Наведіть
характеристики якості й визначте їхній зміст.

Аспекти і рівні:

 функціональна придатність
 ефективність роботи
 сумісність
 зручність використання
 надійність
 безпека
 зручність супроводу
 переносимість

Характеристики якості:

 Функціональність - це здатність програмного забезпечення виконувати заплановані функції,


які визначені вимогами до програмного продукту.
 Ефективність - це здатність програмного забезпечення працювати з високою швидкістю та
точністю, забезпечуючи мінімальні витрати ресурсів.
 Надійність - це здатність програмного забезпечення працювати стабільно та безперебійно
протягом тривалого часу, забезпечуючи коректну обробку даних та відсутність відмов.
 Сумісність - це здатність програмного забезпечення працювати з різними операційними
системами, пристроями та іншими програмами.
 Портативність - це здатність програмного забезпечення працювати на різних платформах та
апаратних засобах.
 Стійкість до змін - це здатність програмного забезпечення працювати коректно після змін
відомостей, вимог та середовища експлуатації.
 Легкість використання - це здатність програмного забезпечення бути зрозумілим та зручним
для користувачів, забезпечуючи легкий доступ до функцій та інтерфейсу користувача.

13.Назвіть основну мету і завдання системи керування якістю. У чому суть інженерії якості?

Основною метою системи керування якістю є забезпечення високої якості продукції чи послуг,
що надаються компанією. Це досягається завдяки розробці та впровадженню стандартів та процедур,
які дозволяють контролювати якість продукції на різних етапах її створення та постачання. Завдання:
Встановлення стандартів та процедур, які дозволяють забезпечувати високу якість продукції;
Контроль якості продукції на різних етапах її створення та постачання.

Інженерія якості - це підхід до створення продуктів та послуг, що базується на систематичному


підході до аналізу, проектуванні, розробці, тестуванні та підтримці якості продуктів. Інженерія якості
включає в себе використання різних методів та інструментів для забезпечення високої якості
продукту на всіх етапах його життєвого циклу.

14. Дати характеристику аутсорсингу програмних проектів.

Аутсорсинг програмних проектів - це процес передачі частини або всієї розробки програмного
забезпечення третій стороні, яка має відповідні знання та досвід у цій галузі. Зазвичай, аутсорсинг
програмних проектів використовується компаніями для зменшення витрат на розробку програмного
забезпечення та забезпечення високої якості продукту. Може полегшити процес розробки,
забезпечуючи компанії доступ до більш широкого кола фахівців та забезпечуючи професійний підхід
до керування проектами. Також може допомогти компаніям зменшити ризик, пов'язаний з
розробкою програмного забезпечення, забезпечуючи професійний підхід до керування проектами та
забезпечуючи більшу відповідальність за результати.

15. Охарактеризувати основні види ліцензій на програмні продукти.

Відкрита ліцензія: цей тип ліцензії надає користувачам більшу вільність при використанні
програмного продукту. Відкрита ліцензія зазвичай дозволяє користувачам переглядати, змінювати та
розповсюджувати вихідний код програмного продукту.

Комерційна ліцензія: це ліцензія, яка передбачає плату за використання програмного


продукту. Комерційна ліцензія може бути пропрієтарною або відкритою.

Ліцензія на користування: цей тип ліцензії передбачає обмеження щодо кількості


користувачів, які можуть використовувати програмний продукт. Кількість користувачів, яких можна
додавати, може бути обмежена або необмежена, залежно від умов ліцензійного договору.

Академічна ліцензія, що передбачає використання програмного забезпечення в освітніх


закладах.

You might also like