- •Інженерні основи програмного забезпечення
- •Поняття програмна інженерія. Що вивчає дисципліна «Програмна інженерія»?
- •Поняття системотехніка, бізнес-реінжиніринг.
- •Історія виникнення програмної інженерії.
- •Еволюційна модель розробки програмного забезпечення. Переваги та недоліки.
- •Формальна модель розробки програмного забезпечення. Переваги та недоліки.
- •Модель розробки програмного забезпечення на основі раніше створених компонентів. Переваги та недоліки.
- •Ітераційні моделі розробки програмного забезпечення. Переваги та недоліки.
- •Модель покрокової розробки програмного забезпечення. Переваги та недоліки.
- •Инструменты тестирования:
- •Мови моделювання програмного забезпечення.
- •Методи структурного аналізу.
- •Інформаційне моделювання Мартіна.
- •Структура та архітектура програмного забезпечення
- •Архітектура програмного забезпечення. Проектування архітектури.
- •Архітектурна модель клієнт-сервер.
- •Архітектурна модель абстрактної машини.
- •Архітектурні моделі управління (виклик-повернення та централізоване).
- •Проблемно-залежні архітектури програмного забезпечення.
- •Архітектура розподілених систем.
- •Багатопроцесорна архітектура програмного забезпечення.
- •Архітектура 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 іі.
- •Поняття ризику у проекті. Причини ризику в проекті.
- •Види ризиків. Моніторинг і контроль ризиків.
- •Поняття конфігурації. Елементи конфігурації.
- •Поняття супроводу програмного забезпечення. Хто здійснює супровід.
- •Поняття підтримки програмного забезпечення. Структура іт-супроводу.
- •Поняття програмна археологія. Інструменти і методи програмної археології.
Поняття конфігурації. Елементи конфігурації.
Конфігурація – визначає конкретну версію ПЗ і містить у собі функції об'єднані між собою процедурами. Елементи конфігурації: 1) одиниця конфігурації – елемент, виділений для цілей керування; 2) базис конфігурації – це склад елементів і документації; 3) програмні компоненти системи.
Конфігурація складається з вище вказаних елементів і процедур їх об’єднання в єдини ціле. Метою керування конфігурацій є: забезпечення цілісності системи з спостереж. за змінами, структурою і елементами конфігурацій.
Поняття супроводу програмного забезпечення. Хто здійснює супровід.
Супровід – процес поліпшення, оптимізації та усунення дефектів ПЗ для передачі в експлуатацію. В ході супроводу в програму вносяться зміна з тим, щоб виправити виявлені дефекти, а також додати нові функції, щоб підвищити зручність. Стандарти супроводу ПЗ: ISO 12207, ISO 14764.99, IEEE 1219, ГОСТ Р12207-2010, ГОСТ 14764-2002.
Супровід ПЗ здійснюється супровідником. Ним може бути зовнішня організація або та, яка використовує ПЗ.
Поняття підтримки програмного забезпечення. Структура іт-супроводу.
Тех.підтримка – множина послуг за допомогою яких підприємство та організації забезпечують допомогу користувачам тех.продуктів працювати з ними.
Структура ІТ супроводу:
Нульова лінія – обробка телефонних звернень, передача звернень фахівцям.
Перша лінія – консультація, усунення помилок в роботі ПЗ.
Друга лінія – функціональний супровід. Проектна діяльність на етапі запуску ПЗ.
Третя лінія – системний супровід. Проектна діяльність на етапі замовлення.
Робота інженера по супроводу вирішує проблеми, що виникають в період експлуатації ПЗ.
Поняття програмна археологія. Інструменти і методи програмної археології.
Археоло́гія програ́много забезпе́чення — вивчення погано, чи взагалі не документованої успадкованої системи, як елементу супроводження програмного забезпечення. Програмна археологія, названа по аналогії з археологією, включає в себе обернену інженерію програмних модулів, і застосування різноманітних інструментів та процесів для виокремлення інформації розуміння інформації про проектування системи. Програмна археологія може розкрити дизфункціональні процеси в команді, які створили погано спроектовані чи навіть невикористовувані програмні модулі Термін використовується протягом кількох десятиліть, і відображає досить природню метафору: програміст що читає успадкований код може відчувати себе в ситуації аналогічній до тієї що відчуває себе археологом який досліджує нашарування стародавньої цивілізації.
Майстер-клас по програмній археології на конференції OOPSLA (Object-Oriented Programming, Systems, Languages & Applications) в 2001 виокремив наступні підходи в програмній археології, деякі з яких є специфічними для ООП:
Скриптові мови для побудови статичних звітів та фільтрації діагностичного виводу
Створення документації в HTML сторінках чи вікі
Статистичний аналіз та інструменти візуалізації програмного забезпечення
Інструменти оберненої інженерії
Трасування на рівні операційної системи за допомогою truss чи strace
Пошукові машини та інші інструменти для пошуку ключових слів в вихідних файлах
Браузер файлів в IDE
Покривання тестами, наприклад за допомогою JUnit чи CppUnit
Генерація документації API з використанням інструментів на зразок Javadoc чи doxygen
Зневаджувач
Узагальнюючи, Енді Хант та Дейв Томас відмітили важливість керування версіями, менеджменту залежностей, інструментів для індексування текстів на зразок GLIMPSE та SWISH-E, і «креслення карти на самому початку розвідки»
Як і справжня археологія, програмна археологія включає дослідження для того щоб зрозуміти мисленнєві процеси попередників.На семінарі OOPSLA, Вард Каннінгам запропонував спосіб що дозволяє «відчути» загальну організацію програми, показуючи тільки пунктуацію, наприклад лише крапки з комою та фігурні дужки. В тому ж настрої Каннінгам запропонував переглядати код програми шрифтом розміром два пункти, щоб побачити структуру загалом. Інший підхід запропонований на семінарі — використовувати аспектно-орієнтоване програмування, наприклад такі інструменти як AspectJ щоб систематично додавати код трасування не редагуючи успадковану програму на пряму.
Програмна археологія продовжує бути предметом дискусії й на більш недавніх конференціях з розробки програмного забезпечення.
