пʼятниця, 18 жовтня 2019 р.

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

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

Лекція 1. Поняття конструювання програмного забезпечення

          Основні теоретичні відомості конструювання програмного забезпечення (ПЗ). Компоненти конструювання. Конструювання серед процесів побудови ПЗ. Фундаментальні основи конструювання програмного забезпечення.
Для самостійного вивчення: стандарти, які безпосередньо застосовуються при конструюванні.

Лекція 2. Моделі та стандарти конструювання програмного забезпечення
Типологія моделей конструювання ПЗ (водоспадна, поетапна, прототипування, екстремальне програмування, Scrum). Стратегії конструювання ПЗ (водоспадна, інкрементна, еволюційна). Модель ПЗ та її склад. CASE-технологія. Моделювання бізнес-процесів. Прототипування ПЗ.
Для самостійного вивчення: екстремальне програмування, Scrum.

Лабораторна робота №1. Використання моделей та стандартів конструювання програмного забезпечення
Мета: навчитися обирати моделі конструювання програмного забезпечення та застосовувати стандарти в процесі конструювання на прикладі розроблення  програмного забезпечення для оброблення результатів опитування з використанням мета описів інформації та виконання дій.
Методичні рекомендації до виконання лабораторної роботи.
         Вирішуємо завдання, поставлене в  Практичній роботі №1 з основ програмної інженерії, як наступний етап створення програмного продукту.
         На основі пропозицій, сформульованих за результатами виконання Практичної роботи №1 з основ програмної інженерії потрібно:
1.     Обрати модель конструювання програмного забезпечення (водоспадна, поетапна, прототипування), надати обґрунтування вибору.
2.     Визначити стратегію конструювання програмного забезпечення (водоспадна, інкрементна, еволюційна) та обґрунтувати її обрання.
3.     Відповідно до обраних моделі і стратегії накреслити схему їхньої реалізації.
4.     Визначити склад моделей для опису задачі та порядку її вирішення (функціональна, потоків даних, "сутність-зв’язок", об’єктна), а також перелік типів UML – моделей, які мають бути створенні в процесі конструювання, і їхнє функціональне призначення в цьому процесі.
5.     Визначити склад бізнес-процесів (основних та допоміжних).
6.      Розробити модель основних бізнес-процесів (Business Use Case Model).
7.     Оформити результати у вигляді документу / звіту.
Мінімальні вимоги (необхідні для захисту роботи)
Звіт має містити:
•          Назва практичної роботи.
•          Прізвище, група
•          Назва анкети.
•          Схема реалізації обраних моделі і стратегії конструювання та коротке обґрунтування їх обрання.
•          Надати перелік типів UML моделей для опису задачі та порядку її вирішення.
•          Надати склад бізнес-процесів (основних та допоміжних).
•          UML - модель основних бізнес-процесів.

Лекція 3. Планування конструювання програмного забезпечення
         Постановка завдання. Визначення основних термінів (потреби, вимога, формалізація постановки завдання, аналіз вимог, специфікація, управління вимогами). Планування конструювання. Декомпозиція складних об‘єктів. Покрокова деталізація. Блочно-ієрархічний підхід конструювання програмних систем. Локальна оптимізація. Рівні та аспекти проектування Процеси технологічного циклу конструювання ПЗ. Методи керування і планування проектом. Діаграмна схема обліку часу Ганта. Мережні методи планування і керування. Види планів організації проекту.
Для самостійного вивчення: Метод критичного шляху – СРМ. Метод критичного шляху – СРМ.

Лабораторна робота №2 Планування конструювання програмного забезпечення
Мета роботи: засвоєння навичок планування розробки проектів програмного забезпечення
Завдання:
Продовжуємо працювати з проектом, визначеним у попередній ЛР.
        
1.     Визначити вимоги до проекту.
2.     Розбити проект на кілька етапів і для цих етапів скласти загальний календарний графік для своєчасного завершення розробки ПЗ.
3.     Розробити перелік робіт по кожному етапу, що потрібно виконати для здійснення розробленого плану і задоволення визначених вимог.
4.     По кожному етапу визначити наявні ресурси.
5.     Виконати деталізацію плану та здійснити розподіл ресурсів для виконання робіт у встановлені терміни.
6.     Розроблені вимоги, перелік робіт та визначені наявні ресурси, деталізований план (діаграма Ганта) внести до звіту, створеного на попередній ЛР.
Теоретичні відомості:
Планування – вид діяльності, пов’язаний з постановкою цілей (задач) і дій в майбутньому. Планування, в загальному вигляді, має на увазі виконання наступних етапів:
·         Ідентифікація цілей і задач
·         Складання програми дій
·         Виявлення необхідних ресурсів і їх джерел
·         Визначення безпосередніх виконавців і доведення плану до них.
Планування – оптимальне розподілення ресурсів для досягнення поставленої мети. При плануванні використовуються моделі очікувань, які засновані на зусиллях пов'язаних з обсягом завдання. Ці моделі часто визначається як людино-місяці до функціональних точках.
З точки зору розподілу ресурсів розглядаються завдання, для яких призначені терміни і пов'язані з обладнанням і людьми. На цьому етапі планування зручно використовувати діаграми Ганта.
На цьому ж етапі визначаються правила і політика припинення проекту. При складанні плану проекту, необхідно визначити як проект буде управлятися і його план (звітність, моніторинг і контроль).
При виконанні планування КПЗ необхідно:
1.     Виправити і затвердити вимоги
2.     Створити список робіт з описом модулів ПЗ
3.     Визначити необхідні ресурси людські та технічні
4. Зробити деталізація плану виконання робіт. (Для графічного представлення деталізації плану робіт збудувати діаграму Ганта).

Лекція 4. Поняття життєвого циклу програмного забезпечення
      Модель життєвого циклу. Каскадна модель. Ітеративна та інкрементна модель. Спіральна модель. Еволюційна модель. Модель еволюційного прототипування (макетування). V-подібна модель.
Для самостійного вивчення: Адаптивні моделі (Scrum; XP (Extreme Programming); Adaptive Software development (ASD); Dynamic System Development Model (DSDM); Feature Driven Development (FDD)).

Лабораторна робота №3. Проектування програмного забезпечення за допомогою каскадної (водоспадної) моделі
Мета: Навчитись проектувати гіпотетичне програмне забезпечення, спираючись на принципи, що закладені в каскадній моделі.
КОНТРОЛЬНІ ПИТАННЯ:
1.                Що таке модель конструювання?
2.                Що таке життєвий цикл програмного забезпечення.
3.                Які різновиди моделей життєвого циклу програмного забезпечення Вам відомі?
4.                Назвіть основні характеристики і фази каскадної моделі.
5.                Назвіть основні переваги каскадної моделі?
6.                Назвіть основні недоліки каскадної моделі?
Завдання: Ознайомтесь з основними принципами каскадної моделі, за темою та спроектуйте гіпотетичне програмне забезпечення згідно етапів каскадної моделі. Кожний етап повинен бути супроводжений документацією.
Методичні вказівки до виконання роботи:
1.  Робота повинна бути виконана згідно критеріїв оформлення документації на аркушах формату А4.
2.  Студентам перед виконання лабораторної роботи потрібно ознайомитись із необхідним теоретичним матеріалом, потім обрати тему. В якості теми можна взяти тему попередніх лабораторних робіт (конструювання програмного забезпечення для оброблення результатів анкетування) або обрати власну тему, узгодивши її з викладачем.
3.  Спочатку рекомендується проговорити можливі варіанти виконання.
4.  Якщо потрібні пояснення – можна звернутись до викладача. Викладач сам вирішує відповідати на питання чи надати підказки, де можна знайти відповідь.
5.  Протягом виконання лабораторної роботи студенти можуть використовувати конспекти або інші джерела інформації.
6.  Роботу потрібно набирати на комп’ютері, що розташований в аудиторії або на власному ноутбукові, назвавши документ «Лабораторна робота № ».

7.  По закінченню лабораторну роботу потрібно здати на перевірку викладачеві, роздрукувавши її або надіславши електронною поштою. Якщо викладач знаходить помилки чи неточності, він може повернути роботу на доопрацювання.

Лекція 5. Етапи життєвого циклу програмного забезпечення.


Історична довідка. Основні етапи розробки програмного забезпечення - традиційний погляд: постановка задачі, аналіз вимог і визначення специфікацій, проектування, реалізація, супровід. Модель ЖЦ ПЗ у вигляді базових етапів – процесів. Модель ЖЦ ПЗ для проектування ПЗ складної системи. Технологічний цикл конструювання ПЗ. Розроблення програмних модулів. ЖЦ ПЗ за ISO 12207. ЖЦ ПЗ за ISO/IEC 15288.

Лабораторна робота №4.
Тема: Розробка технічного завдання на програмне забезпечення
Мета: Навчитись складати  технічне завдання гіпотетичне програмне забезпечення
КОНТРОЛЬНІ ПИТАННЯ:
1. Наведіть етапи розробки програмного забезпечення.
2. Що включає в себе постановка задачі та передпроектні дослідження?
3. Перерахуйте функціональні та експлуатаційні вимоги до програмному продукту.
4. Перерахуйте правила розробки технічного завдання.
5. Назвіть основні розділи технічного завдання.
Завдання: Ознайомтесь з ГОСТ 19.106-78, ГОСТ 2.301-68 та ГОСТ 19.104-78, а також ГОСТ 2.114-95, ГОСТ 34.602-89. Складіть технічне завдання на програмне забезпечення для оброблення результатів анкетування (попередні лабораторні роботи) або на обрану програмну систему.
Методичні вказівки до виконання роботи:
1.  .Робота повинна бути виконана до ГОСТ 19.106-78  на аркушах формату А4. При оформленні використовувати MS Office.
2.  Студентам перед виконання лабораторної роботи потрібно ознайомитись із необхідним теоретичним матеріалом, потім обрати тему. В якості теми можна взяти тему попередніх лабораторних робіт (конструювання програмного забезпечення для оброблення результатів анкетування) або обрати власну тему, узгодивши її з викладачем.
3.  Технічне завдання повинно надавати відповіді на запитання:
· що потрібно зробити в рамках проекту;
· навіщо це потрібно, і для яких конкретно цілей;
· де буде використовуватися результат проекту (читай, розробка програм), в якій сфері діяльності, і на якому рівні;
· які вимоги повинна задовольняти розробка програм;
· що потрібно зробити в процесі роботи над проектом;
· як буде оцінюватися результат з боку Замовника;
· якими документами встановлюється порядок взаємодії;
· на чому заснована ініціація роботи над проектом по розробці програм.
          Ця інформація повинна надаватися в розділах технічного завдання, зміст яких визначений  в другій частині зазначеного ГОСТу 19.201-78.
4.  Якщо потрібні пояснення – можна звернутись до викладача. Викладач сам вирішує відповідати на питання чи надати підказки, де можна знайти відповідь.
5.  Здати і захистити роботу. Захист лабораторної роботи полягає в пред'явленні викладачеві отриманих результатів (на екрані монітора і в друкованому вигляді), демонстрації отриманих навичок.

Лекція 6. Архітектура програмного забезпечення (4 год.)

Основні визначення. Складові елементи Архітектури ПЗ (структура, поведінка, стиль). Основні завдання розробки архітектури ПЗ. Основні принципи проектування архітектури. Основні принципи проектування, які впливають на архітектуру ПЗ. Основні питання архітектора програмного продукту (ПП). Основні архітектурні стилі ПЗ. Поєднання архітектурних стилів. Основні класи архітектур ПП (Цілісна програма, Пакет прикладних програм, Архітектура, заснована на шині повідомлень, Клієнт/сервер, N-рівнева система, Багатошарова архітектура, N-рівнева / 3-рівнева архітектура, Компонентна архітектура, Об'єктно-орієнтована архітектура, Сервісно-орієнтована архітектура.).
Визначення архітектурних стилів (шаблонів) ПП. Уніфікована мова моделювання UML. Використання UML в об‘єктно-орієнтованому аналізі та проектуванні. Шаблони проектування та алгоритми. Огляд шаблонів проектування. Тематичне опитування.
Для самостійного вивчення: Контроль архітектури ПП. Детальний розгляд шаблонів проектування.

Лабораторна робота №5.  Архітектура програмного забезпечення (2 год.)
Мета: отримати практичні навички в обґрунтованому виборі компонентів архітектури програмного забезпечення для реалізації завдання та його нефункціональних властивостей.
КОНТРОЛЬНІ ПИТАННЯ:
1. Що таке архітектура ПЗ?
2. Що таке описова та розпорядча архітектура ПЗ?
3. Що таке архітектурний дрейф та ерозія?
4. Що таке відновлення архітектури?
5. Що таке компонент ПЗ?
6. Що таке з’єднувач ПЗ?
7. Що таке архітектурна конфігурація або топологія?
8. Що таке нефункціоналньна властивість ПЗ?
9. Що таке ефективність ПЗ?
10. Що таке складність ПЗ?
11. Що таке надійність ПЗ?
12. Що таке адаптованість ПЗ?
Завдання:
1. Опрацювати теоретичний матеріал до лабораторної роботи. Зосередити увагу на основних поняттях у галузі архітектури ПЗ.
2. На основі визначених функціональних та нефункціональних вимог, які необхідно реалізовувати в програмній системі. Тема визначена на попередніх лабораторних (на конструювання програмного забезпечення для оброблення результатів анкетування або обрана власна тема) побудувати функціональну, структурну і укрупнену схему архітектури ПС.
3. Обрати компоненти та з’єднувачі, які будуть використовуватися та обґрунтувати їх вибір.
4. Зробити:
 Опис застосування, що розробляється з точки зору користувача.
 Опис основних функціональних та нефункціональних вимог, використовуючи результати попередніх лабораторних робіт.
 Опис компонентів, які будуть використовуватися: сервіси, які забезпечують, основні архітектурні рішення. Обґрунтувати їх вибір. 
Лабораторна робота №6.  Архітектура програмного забезпечення. Застосування шаблонів проектування. (2 год.)
Мета роботи: засвоєння навичок використання шаблонів проектування для прискорення і підвищення надійності конструювання програмного забезпечення
Завдання:
1. Запропонувати та обгрунтувати 2-3 шаблони проектування для реалізації компонентів ПЗ, що розробляється.
2. Реалізувати зазначені компоненти ПЗ з використанням обраних шаблонів проектування.
3. Прокоментувати переваги і, якщо такі є, недоліки використаних шаблонів проектування для зазначених проектних рішень.
КОНТРОЛЬНІ ПИТАННЯ:
1.    Що таке шаблон проектування?
2.    Які групи шаблонів вам відомі?
3.    Опишіть основні характеристики шаблону FAÇADE.
4.    Які переваги та недоліки, на Вашу думку, має шаблон проектування FACADE?
5.    Опишіть основні характеристики шаблону Adapter.
6.    Які переваги та недоліки, на Вашу думку, має шаблон проектування Adapter?
Лекція 9. Стандартизація розробки програмного забезпечення
Стандартизація розроблення ПЗ. Стандарти на розроблення та супровід програмного забезпечення. Міжнародні стандарти ISO (ISO 12207, ISO/IEC 15288, серія ISO 9000). Особливості стандарту ISO 12207. Цінність стандарту ISO 12207. Стандарти організації IEEE. Керівництво до зведення знань із програмної інженерії (SWEBOK, 2004). Стандарт зрілості компанії-розробника ПЗ CMM. Ознаки "незрілої" та "зрілої" компанії. Переваги та недоліки СММ-моделі.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою. Ознайомитися зі стандартами на оформлення ПЗ та за контролем якості ПЗ.
Література [1-2; 4; 8-27, 34]
Контрольні запитання.
1.   Чим на Вашу думку викликана потреба в стандартизації ПЗ?
2.   Які базові стандарти на розробку ПЗ Ви знаєте?
3.   Як розподілені процеси ЖЦ ПЗ в стандарті ISO 12207?
4.    В чому особливості стандарту ISO 12207?
5.    В чому цінність стандарту ISO 12207?
6.  Як визначається відповідно до стандарту IS0 12207 вимога кваліфікації?
7.   Що поєднує стандарти ISO/IEC 12207 та ISO/IEC 15288?
8.    Яке призначення стандартів серії ISO 9000?
9. Як на Вашу думку впливає стандарт СММ на якість програмного забезпечення?
Лабораторна робота №7. Стандарти з розробки програмного забезпечення
Мета роботи: засвоєння навичок використання стандартів на розробку програмного забезпечення
Завдання:
1. Проаналізувати наданий список стандартів (див. сайт Національної бібліотеки України імені В. І. Вернадського  - URL: http://nbuv.gov.ua/node/1469).
2. Визначити перелік стандартів, які потрібно використовувати на етапах проектування, тестування та супроводу, у т.ч  при приймальних випробуваннях..
3.   Оформити перелік у вигляді таблиці, позначивши в окремій графі, які стандарти потрібно вважати обов‘язковими.
КОНТРОЛЬНІ ПИТАННЯ:
1.   Які дії потребують регламентації під час розроблення ПЗ?
2.   Яким чином можна оцінити якість ПЗ?
3.   Яка мета стандартів щодо визначення термінів?
4.  Як, на Вашу думку, потрібно застосовувати стандарти і чи є це обов‘язковим?
5.  Які негативні наслідки можуть бути від нехтування стандартами? 
Лекція 10. Методологія розробки програмного забезпечення
            Визначення методології розробки ПЗ. Класифікація методологій розробки ПЗ (прогнозовані методології, адаптивна розробка, класифікація по ядрам, класифікація за топологічною специфікою, класифікація за специфікою реалізації). Каскадна модель (принципи, переваги та недоліки). Ітеративна розробка – RUP (основні характеристики). Модифікації каскадної моделі. V-Model. Інкрементна модель. RAD Model. Ітеративна модель. Спіральна модель. Agile Manifesto (основні ідеї та принципи). Сутність гнучких методологій розробки ПЗ. 9 основних методологій Agile розробки ПЗ (Agile Modeling, DSDM, Extreme programming, FDD, OpenUP, Scrum, Lean software development, Kanban software development, Scrumban). Open Source.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою.
Література [1- 4]
Контрольні запитання.
1.       За якими принципами можна класифікувати методології розробки ПЗ?
2.       Чому каскадна модель відноситься до прогнозованих методологій?
3.       Охарактеризуйте методологію RUP?
4.       Які основні ідеї і принципи "гнучких" методологій?
5.       Де краще застосовувати "гнучкі", а де прогнозовані методології?
6.       В чому сутність методології RAD?

Лабораторна робота №8. Порівняння методологій розробки програмного забезпечення
Мета роботи: засвоєння навичок вибору методології на розробку програмного забезпечення

Завдання:
1.  Проаналізувати різні методології розробки програмного забезпечення.
2.  За результатами аналізу складіть порівняльну таблицю для двох різних за типом методологій.
3.   В таблиці для кожної методології повинні бути визначені позиції: суть, дата створення, розробники, принципи застосування, плюси, мінуси, компанії-практики, за яких умов підійде вам,, з яких причин не підійде.
КОНТРОЛЬНІ ПИТАННЯ:
1.       За якими принципами можна класифікувати методології розробки ПЗ?
2.       Чому каскадна модель відноситься до прогнозованих методологій?
3.       Охарактеризуйте методологію RUP?
4.       Які основні ідеї і принципи "гнучких" методологій?
5.       Де краще застосовувати "гнучкі", а де прогнозовані методології?
6.       В чому сутність методології RAD?
7.      Визначте основні принципи екстремального програмування?
8.      Що таке програмування «знизу вгору»?
Лекція 11-12. Якість програмного забезпечення (4 год.)
Поняття «якість програмного забезпечення». Стандарт ISO 9126. Характеристики і атрибути якості згідно ISO 9126. Забезпечення якості: Формальний метод. Інспекції. Інспекція за Фаганом. Інші види інспекцій. Забезпечення якості: Тестування.
Для самостійного вивчення: Методи доведення правильності програм. Верифікація і валідація программ.
Література [1- 4]
Контрольні запитання.
1.  Дайте визначення якості ПЗ та її критеріїв.
2.  Як стандарт ISO 9126 надає представлення якості? Приклади застосування.
3.  В чому полягає характеристика функціональності, які її атрибути? Приклади застосування.
4.   В чому полягає характеристика надійності, які її атрибути? Приклади застосування.
5.  Як в ISO 9126 визначається характеристики практичності та продуктивності?
6.  Як оцінити зручність супроводу?
7.    Як можна забезпечити якість ПЗ?
8.  Що таке програмування «знизу вгору»?


Лабораторна робота №9 Якість програмного забезпечення. Аналіз вимог замовника до програмного продукту
 Мет а роботи
1.     Визначення існуючих проблем та обмежень в програмному продукті (ПП)
2.     Розробка варіантів використання ПП
3.     Формування вимог замовника на розробку (модернізацію) ПП 
Порядок виконання роботи 
1 Опрацювати теоретичний матеріал до лабораторної роботи. 
2    Для теми, що визначена на попередніх лабораторних (на конструювання програмного забезпечення для оброблення результатів анкетування або обрана власна тема), згідно методичних вказівок інструкції повести попередній аналіз проблем і обмежень. 
3    Розробити схеми для основних варіантів використання ПЗ. 
4   Сформувати власний варіант документу «Вимоги до програмного засобу» (Software Requirements Specification, SRS). 
5    Оформити і захистити лабораторну роботу.
Контрольні питання 
1 Назвіть стадії життєвого циклу програмного засобу.
2 З яких етапів складається аналіз вимог замовника?
3 Що таке варіанти використання програмного засобу? 

Лекція 13-14. Поняття та методи рефакторингу. 
Визначення рефакторингу. Причини рефакторингу та  прийоми, які використовуються. Автоматизований рефакторинг. Стратегії рефакторингу. Рефакторинги рівня даних. Рефакторинги рівня операторів. Рефакторинги рівня методів. Рефакторинги рівня реалізації класу. Рефакторинги рівня інтерфейсу класу. Рефакторинги рівня системи. Метрики для визначення необхідності проведення ре факторингу. Прийоми по убезпеченню від невірного застосування рефакторингу. 
Для самостійного вивчення: Методи еволюційного змінювання компонентів і систем. 
Література [1- 3] 
Контрольні питання.

1.                В чому полягає рефакторинг і які причини його виникнення?
2.                Які підстави для проведення рефакторнгу?
3.                Яка причина виникнення дублювання коду? Які засоби пошуку дублюючого коду?
4.                Які прийоми використовуються при рефакторингу класів?
5.                Які засоби автоматизованого рефакторингу ви знаєте?
6.                Назвіть рівні рефакторингу і надайте їх визначення.
7.                Як запобігти невірному застосуванню рефакторингу ?

Лабораторна робота №10. Застосування методів рефакторінгу при розробці програмного забезпечення
Мета роботи. Навчитися  застосовувати  на  практиці  прийоми рефакторингу та оптимізації коду.
Завдання на лабораторну роботу
1. Ознайомитись  з  теоретичними  відомостями, необхідними для виконання роботи.
2. Використовуючи власні тексти програм виконати їх  рефакторинг та оптимізацію коду.
3. Оформити звіт.
4. Відповісти на контрольні запитання.
Зміст звіту
1. Прізвище, назва групи, назва роботи.
2. Текст  розробленого  програмного  забезпечення (коду) до проведення рефакторингу  з коментарями  щодо  фрагментів програмного коду, які підлягають рефакторингу, з визначенням  підстав для проведення рефакторингу та напрямок проведення рефакторингу.
3. Текст  розробленого  програмного  забезпечення після проведення рефакторингу .
4. Висновки щодо цілей, які досягаються через проведення рефакторингу .
Контрольні питання
1.  Що таке рефакторинг?
2.  Які підстави проведення рефакторингу?
3.  Яким чином можна оптимізувати код?
4. Яким чином засоби рефакторингу впливають на ризики програмного забезпечення?
Лекція 15. Системна інтеграція програмного забезпечення.
Визначення. Складові системної інтеграції. Приклади системної інтеграції (операційна система, WEB-сайт, системи промислової автоматики). Фактори, що впливають на інтеграцію. Параметри, які визначають складність інтеграції. Засоби вирішення проблем, що виникають при інтеграції. Покроковий та поетапний підхід до інтеграції. Підготовка до системної інтеграції, документальний опис процесу інтеграції. Найпоширеніші методи інтеграції.
Для самостійного вивчення: ERP (Enterprise Resource Planning)-системи.
Література [1- 3]
Контрольні питання.
1.  Надайте визначення системній інтеграції.
2. Визначте дії, які можуть виконуватися в процесі системної інтеграції.
3.   Назвіть складові системної інтеграції.
4.   Наведіть приклади системної інтеграції та надайте відповідні пояснення.
5.  Які фактори впливають на інтеграцію?
6.   Які параметри визначають складність інтеграції.
7.   Які засоби використовують для вирішення проблем, що виникають при інтеграції
8.   В чому полягає покроковий та поетапний підхід до інтеграції?
9.   На якому етапі розпочинається підготовка до системної інтеграції?
Розділ 4. Тестування програмного забезпечення
Лекція 16. Поняття тестування
Основні визначення. Ключові питання тестування в SWEBOK. Зв'язок тестування з іншими видами діяльності. Верифікація та валідація. Основні методи тестування. Критерії виконання та припинення тестування. Тестування і налагодження програми. Складності тестування й налагодження. Основі види тестування, їх мета та основне призначення. Налагодження програми. Основні види помилок. Методи налагодження програм.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою. Вивчення лекційного матеріалу та додаткових джерел. Розгляд запитань і виконання завдань для самостійної роботи, запропонованих на лекції.
Література [6; 7, 29-32, 35]
Контрольні питання.
1.                 Надайте визначення тестування та сформулюйте його мету?
2.                 З якими видами діяльності тісно пов‘язане тестування?
3.                 В чому полягає функціональне тестування?
4.                 В чому полягає структурне тестування?
5.                 Що таке конфігурація ПЗ і які базові елементи входять до базової конфігурації?
6.                 Чим різниться Альфа-тестування та Бета-тестування?
7.                 В чому призначення системних тестів?
8.                 Назвіть види основних системних тестів.
9.                 В чому полягає тестування продуктивності?
10.            В чому сутність процесу налагодження програми?
Лекція 17. Механізми та методи тестування. Тестування програмного коду.

Програмні помилки. Завдання і цілі тестування програмного коду. Тестове оточення та його завдання. Типова процедура тестування. Методи тестування: Чорний ящик; Скляний (білий) ящик. Тестування моделей. Аналіз програмного коду (інспекції). Порядок використання тестового оточення. Драйвери і заглушки. Тестові класи. Генератори сигналів (подієво-керований код).

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

Література [6; 7, 29-32, 35]
Контрольні питання.

1.   Що мається на увазі під тестуванням програмного продукту?
2.   Скільки типів програмних помилок Вам відомі? 
3.  Які помилки відносяться до синтаксичних?
4. Які помилки відносяться до семантичних?
5.  Чим визначається склад і зміст документації, супутньої процесу тестування?
6.   За якими ознаками прийнято робити класифікацію видів тестування?
7.   Що таке функціональне тестування?
8.   Які функціональні тести Вам відомі?
9.     Що таке нефункціональне тестування?
10.  Які нефункціональні тести Вам відомі?
11.  Що таке модульне тестування? 
12. Що Вам відомо про тестові скрипти?  
 
Подальша інформація по лекціях та лабораторних роботах розміщена за посиланням https://github.com/omc-college/ipz41-software_design

Тематика рефератів
1. Контроль і гарантія якості програмного забезпечення в архітектурі життєвого циклу програмного забезпечення (Кравець Ю.С. Кононенко В.В)
2. Розгляд технології SCRUM у порівнянні з іншими технологіями (А.Власенко)
3. Розгляд технології RAD у порівнянні з іншими технологіями (Андрієць)
4. Розгляд технології RUP у порівнянні з іншими технологіями (Пазюк)
5. Сучасні концепції керування якістю: проектування програмного забезпечення (Андрієць)
6. Місце конструювання програмного забезпечення  в життєвому циклі програмної системи (Ганжа-Пупишев)
7. Рефакторінг як метод еволюційного змінювання компонентів і систем (Храмов)
8. Порівняння моделей життєвого циклу програмного забезпечення (каскадна, інкрементна, спіральна, еволюційна моделі)(Ляшевська)
9. Планування проектних задач (ШЕВЧЕНКО)
10. Порівняльний аналіз методологій розробки програмного забезпечення (Місюревич)
11. Типові помилки і корекція програм (Романюк)
12. Рівні  тестування програмного продукту як частина діяльності з конструювання (Степанюк)
13. Моделі та стандарти конструювання програмного забезпечення (Корнієнко).
14. Функціональні вимоги до програмного забезпечення (Корнієнко)
15.Розроблення плану тестування вимог до програмного забезпечення (Храмов)
14.Вибір технології розроблення програмного забезпечення залежно від обраного типу моделі життєвого циклу програмного забезпечення (Корнієнко)
15. Використання та спосіб застосування методів та інструментів програмної інженерії в процесі конструювання програмного забезпечення (Корнієнко)
16.  Рефакторинг та якість коду (з прикладами реалізації)(Степанюк)
17.  Культура програмування. Правила оформлення коду в С++ (з прикладами неправильного та правильного оформлення).(Шевченко)
18. Інноваційні технології проектування систем (Кашлюк)
19. Прийоми рефакторингу (з прикладами реалізації) (Драпогуз)
20. Патерни проектування та системні патерни.(Бойко)
21. Стратегії інкрементної інтеграції.(Бойко)
22. Огляд основних методик конструювання програмного забезпечення (Бойко)
23. Методології гнучкої розробки програмного забезпечення. Їх переваги та недоліки(Кравець Ю.С)
24. Удосконалення програмного забезпечення (Кононенко)
25. Фундаментальні складові конструювання програмного забезпечення (Зарицький)
26. Безпечний рефакторинг ( Думенко, Якимчук)
27.  Стратегії побудови програм (Храмов)
28. Особливості побудови архітектури програмного забезпечення із захистом від зовнішніх вразливостей (Щуцький)
29. Методи керування,  планування та контролю виконання проекту(Бочкарьов)
30. Ризики у проекті та методи керування ними (Данілова)
31. Конфігурація системи та  методи керування нею(Данілова)
32. Огляд технологій конструювання програмного забезпечення (Рибковський))
33. Прототипування в конструюванні програмного забезпечення (Бочкарьов)
34. Вимоги до якісного інтерфейсу користувача (з прикладами)(Донченко)
35. Труднощі проектування інтерфейсу користувача (Данілова)
36. Архітектура програмного забезпечення. Огляд основних архітектурних стилів/парадигм
37. Проблеми системної інтеграції програмного забезпечення



ВИМОГИ до оформлення реферату див.

https://ru.calameo.com/read/002828893b19e88726053
та https://helpiks.org/5-99435.html, до оформлення списків літератури - .http://vippo.org.ua/files/pedposhyk/spuslit-1557135224.pdf   


Немає коментарів:

Дописати коментар