Основи програмної інженерії

Mandatory discipline
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 3.0.
Кількість аудиторних занять: 
30 годин лекційних занять, 14 години практичних занять.
Самостійна робота: 
складає 46 години.
Семестровий контроль: 
Test.
Освітню компоненту забезпечує: 
Анотація: 

Анотація навчальної дисципліни

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

Форми організації освітнього процесу та види навчальних занять

Л – лекційні заняття; ПЗ – практичні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.

Тематика та види навчальних занять

1    тиждень

Л1. Загальні положення. Відмінність ПІ від інших інженерії. Причини провальності проектів. Властивості хорошої програми. Інженери в програмної . 
СРС. К.

2    тиждень

Л2. Принципи організації та  етапи розробки ПЗ. Методології проектування. Об’єктно-орієнтоване проектування.
ПЗ1 Виділення об’єктів. Визначення атрибутів і методів.
СРС. К.

3    тиждень

Л3. Життєвий цикл ПЗ. Водоспадна модель. Модель поетапної розробки. Компонентно-орієнтована модель. Формалізм в процесі розробки ПЗ.
СРС. К.

4    тиждень

Л4. Вимоги до ПЗ, моделювання бізнес-процесів. Визначення вимог. Вартість помилок у вимогах. Класифікація вимог. Учасники проекту. Модель бізнес-процесів. 
ПЗ2. Визначення діючих осіб, проблеми і підпроблем, основних функцій.
СРС. К.

5    тиждень

Л5. Виявлення вимог до ПЗ. Специфіка виявлення вимог до програмного продукту. Методи виявлення вимог. Вивчення документів. Інтерв’ювання та анкетування. Наради, присвячені вимогам. Спостереження та обігравання ролей. Створення прототипів. Документування вимог до ПЗ.
СРС. К.

6    тиждень

Л6.Варіанти використання (прецеденти). Рівні варіантів використання. Формати варіантів використання. Діаграма прецедентів, визначення межі системи. Переваги і недоліки використання прецедентів.
 ПЗ3. Моделювання предметної області.            
СРС. К.

7    тиждень

Л7. Архітектура програмних продуктів. Визначення архітектури. Процес розробки архітектури програмного забезпечення. Архітектурні шаблони програмного забезпечення.
СРС. К.

8    тиждень

Л8. Модель концептуальних класів. Діаграми класів на UML. Способи виявлення концептуальних класів. Побудова діаграми концептуальних класів.
ПЗ4. Побудова діаграми прецедентів. Опис прецеденту рівня користувача.
МКР1. 
СРС. К.

9    тиждень

Л9. Шаблони  проектування. Визначення шаблону. Класифікація шаблонів. 
СРС. К.

10    тиждень

Л10. Розподіл обов’язків між класами.  Діаграми взаємодії. Діаграми взаємодії для прецеденту «Продаж квитка на авіарейс».
ПЗ5. Визначення концептуальних класів. Побудова діаграми концептуальних класів.
СРС. К.

11    тиждень

Л11. Специфікація програмних класів і проектування баз даних. Визначення класів. Визначення методів. Визначення атрибутів. Побудова діаграми програмних класів. Проектування баз даних. Створення ER –діаграм. Базові поняття ERD. Приклад.
СРС. К.

12    тиждень

Л12.Тестування.. Основні визначення. Методи тестування «чорного» і «білого ящика». Тестування модулів. Чек – листи  у тестуванні. 
ПЗ6. Побудова діаграм взаємодії. Складання специфікації програмних класів.
СРС. К.

13    тиждень

Л13. Надійність програмного забезпечення. Методи збільшення надійності. Базові засади кодування.  
СРС. К.

14 тиждень

Л14. Модернізація програмного забезпечення. Динаміка розвитку програм. Супроводження програмного забезпечення. Еволюція системної архітектури.
ПЗ7. Розробка схеми тестування. Складання чек-листів.
МКР2.СРС. К
15 тиждень

Л15. Управління програмним проектом. Проект та управління ним. Планування та моніторинг робіт. Управління ризиками. Управління якістю.
СРС. К.

Процедура оцінювання

Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних, практичних та лабораторних занять, виконують 2 модульні контрольні роботи.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.

Модульні контрольні роботи № 1 та № 2 виконуються у письмовій формі. Модульна робота складається з теоретичної частини  та практичної частини. 

Максимальна оцінка за правильне виконання теоретичної частини модульної роботи  становить 4 балів, за виконання практичної частини – 20 балів. 
Кількість запитань теоретичної частини  – 2. Кожна правильна відповідь оцінюється в 2 бали.
Кількість завдань практичної частини роботи – 5. Правильне розв’язання кожного задання оцінюється в 2 – 6  балів. Завдання вважається розв’язаним, якщо при його  розв’язанні коректно спроектовано певний етап створення програмного продукту.

Кожний модуль оцінюється у максимально можливі 50 балів:

Семестровий модуль № 1

ПР1- ПР4. Оцінка за виконання – 20 балів. Термін виконання – 1-8 тиждень. 
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.

Семестровий модуль № 2

ПР5- ПР7. Оцінка за виконання – 20 балів. Термін виконання – 9-15 тиждень. 
МК2. Модульна контрольна робота – 30 балів (14 тиждень).

Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів. 

Підсумковий контроль

Підсумкова оцінка (залік) є результатом накопичення оцінок за виконання практичних занять і модульних контрольних робіт.

Політика освітнього процесу

Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх не зрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.

Виконаний не свій варіант завдання здобувачем не оцінюється.

Робота, яка виконана після встановлених викладачем термінів, не приймається.

Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0». 
Складання/перескладання заліків – за встановленим деканатом розкладом.

Під час лекції здійснювати телефонні дзвінки забороняється.

Документи (файли), що додаються: Робоча програма навчальної дисципліни.

Література
1.    Орлов С.А. Программная инженерия. Учебник для вузов. 5-е издание обновленное и дополненное. Издательский дом «Питер» 2018. – 640 с.
2.    Черткова Е.А. Программная инженерия. Визуальное моделирование программных систем 2-е изд., испр. и доп. Учебник для вузов. Бакалавр.2017
3.    Лаврищева Е.М. Технология программирования и программная инженерия. Учебник для вузов. Профессиональное образованиею. 2017
4.    Системная инженерия. Принциры и практика. /Александр Косяков, Уильям Н. Свит, Сэмюэль Дж. Сеймур, Стивен М. Бимер. ДМК Пресс. 2017. -  624 с.
5.    Брауде Э.Д. Технология разработки программного обеспечения / Брауде Э.Д. – СПб.: Питер, 2004. – 656 с. 
6.    Зайцев Є.О.. Основи програмної інженерії: навчальний посібник / Є. О. Зайцев – К.: КНТЕУ, 2017. – 419 с. 
7.    Ларман К. Применение UML 2.0 и шаблонов проектирования / Ларман К. – М.: Диалектика-Вильямс, 2007. – 736 с. 
8.    Соммервилл И. Инженерия программного обеспечения / Соммервилл И. – М.: Издательский дом «Вильямс», 2002. – 624 с. 
Методична література
1.    Конспект лекцій з дисципліни «Основи програмної інженерії» для студентів першого рівня вищої освіти (бакалаврів) спеціальності 121 «Інженерія програмного забезпечення» / Укл.: В.С. Кавіцька, В.В. Любченко. — Одеса: ОНПУ, 2017. — 88 c.
2.    Методичні вказівки до практичних занять з дисципліни «Основи програмної інженерії» для студентів першого рівня вищої освіти (бакалаврів) спеціальності 121 «Інженерія програмного забезпечення» / Укл.: В.С. Кавіцька, В.В. Любченко. — Одеса: ОНПУ, 2017. — 29 c.
Додаткова література
1.    Тлумачний словник з інформатики / Г.Г. Півняк, Б.С. Бусигін, М.М. Дівізінюк та ін. – Донецьк: Нац. гірнич. унт, 2010. – 600 с.
2.    Калач Г. М. Управління проектами : навч. посіб. / Г. М. Калач – Ірпінь: Нац. ун-т держ. податк. Служби України, 2010. – 333 с
3.    Л. С. Зеленко. Программная инженерия. Курс лекций: учебное пособие/ Л. С. Зеленко. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2012. - 148 с.
4.    Сидоров М.О. Вступ до інженерії програмного забезпечення / М. О. Сидоров. – К.: НАУ, 2010. – 112 с. 

 

2020