Конструювання ПЗ
Анотація навчальної дисципліни
Мета дисципліни:
розвиток у студентів здатності застосовувати знання для рішення практичних задач, формулювати вимоги до програмного забезпечення, набуття знань та умінь у моделюванні та проектуванні на різних фазах життєвого циклу програмних продуктів, одержання знань та навичок з тестування та налагодженні модулів програмного продукту.
Завдання дисципліни:
- розвити уміння виявляти і формулювати вимоги до програмного забезпечення
- розвити уміння застосовувати моделі та технології конструювання програмного забезпечення;
- вміти застосовувати інструментальні засоби проектування;
- оволодіти практикою побудови різних моделей у процесі конструювання;
- оволодіти практикою створення інтерфейсу користувача програмних продуктів;
- оволодіти методами та практикою тестування моделей та модулів;
- оволодіти практикою застосування шаблонів конструювання програмного забезпечення;
- оволодіти технологією підвищення якості створеного програмного коду.
Основні результати навчання
Знати і застосовувати відповідні математичні поняття, методи
доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
Вміти розробляти людино-машинний інтерфейс.
Знати та вміти використовувати методи та засоби збору,
формулювання та аналізу вимог до програмного забезпечення.
Проводити передпроєктне обстеження предметної області, системний
аналіз об'єкта проектування.
Вибирати вихідні дані для проектування, керуючись формальними
методами опису вимог та моделювання.
Застосовувати на практиці ефективні підходи щодо проектування
програмного забезпечення.
Застосовувати на практиці інструментальні програмні засоби
доменного аналізу, проектування, тестування, візуалізації,
вимірювань та документування програмного забезпечення.
Форми організації освітнього процесу та види навчальних занять
Л – лекційні заняття; ПР – практичне заняття; ЛЗ –лабораторні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.
Тематика та види навчальних занять
1. тиждень
Л1. Введення в конструювання. Місце конструювання у процесі розробки ПЗ. Порівняння структурного і об’єктно-орієнтованого підходів. Уніфікований процес проектування та інші технології.
ЛЗ1. Створення документів «Бачення» та опису варіантів використання. Коригування документу «Бачення». Складання діаграми варіантів використання та опису варіантів використання.
СРС. К.
2. тиждень
Л2. Моделі концептуальних класів. Мета моделювання. Методики моделювання з застосуванням іменних груп, загальних шаблонів, прецедентів, CRC методика. Виявлення концептуальних класів. Додавання асоціацій. Додавання атрибутів у модель. Узагальнення класів. Агрегація. Класи замість атрибутів. Класи асоціацій. Представлення моделі мовою UML. Модель системи RTS.
ПР1. Побудова моделі концептуальних класів. Виявлення концептуальних класів. Додавання асоціацій. Додавання атрибутів у модель. Узагальнення класів. Агрегація. Класи замість атрибутів. Класи асоціацій. Представлення моделі мовою UML Опис вимог для предметної області.
СРС. К.
3. тиждень
Л3. Шаблони в ІТ технологіях. Класифікація шаблонів. Правила запису. Шаблони проектування. Розподіл обов’язків у системі. Шаблон Контролер. Шаблон Творець. Шаблон Інформаційний інспектор. Шаблон Слабке зв’язування. Шаблон Високе зачеплення.
ЛЗ2. Створення UML-діаграми концептуальних класів. Визначення концептуальних класів. Визначення взаємовідносин між класами. Створення діаграми концептуальних класів.
СРС. К.
4. тиждень
Л4. Розподіл обов’язків між класами. Призначення діаграм взаємодії. Порівняльна характеристика типів діаграм. Діаграми кооперації. Відображення розгалужень. Відображення циклів. Діаграми послідовностей. Відображення розгалужень. Відображення циклів. Блоки активації. Приклади створення діаграм.
ПР2. Застосування основних шаблонів конструювання. Розподіл обов’язків у системі.
СРС. К.
5. тиждень
Л5. Застосування діаграм взаємодії та основних шаблонів конструювання. Визначення системних операцій. Відображення системних операцій за допомогою діаграми послідовностей. Вибір класу-контролера. Побудова діаграм кооперації відповідно пунктам сценарію прецеденту. Приклади створення діаграм.
ЛЗ3. Складання UML-діаграм взаємодії для одного прецедента. Визначення системних операцій. Визначення класу на роль контролера. Побудова діаграми взаємодії.
СРС. К.
6. тиждень
Л6. Визначення програмних класів з урахуванням шаблонів проектування. їх методів на основі аналізу діаграм взаємодії. Застосування правил визначення класів, їх методів та атрибутів.
ПР3. Застосування діаграм взаємодії (діаграми кооперації, діаграми послідовностей). Проектування розгалужень та циклів на діаграмах взаємодії. Складання діаграм взаємодії відповідно індивідуальним завданням
СРС. К.
7. тиждень
Л7. Побудова специфікацій програмних класів на основі діаграм взаємодії. Визначення додаткових типів даних (структур, класів). Визначення атрибутів програмних класів. Визначення методів програмних класів. Побудова специфікацій окремих класів.
ЛЗ4. Побудова специфікацій програмних класів. Визначення множини класів. Визначення методів і атрибутів. Побудова специфікації програмних класів.
СРС. К.
8. тиждень
Л8. Побудова моделі програмних класів. Області видимості (за допомогою атрибутів, за допомогою параметрів, локальна, глобальна). Визначення відношень між класами (асоціація, агрегація, композиція, розширення). Приклад побудови моделі.
ПР4. Проектування специфікацій і моделі програмних класів відповідно індивідуальним завданням. Визначення атрибутів і методів.
МКР1. СРС. К.
9. тиждень
Л9. Створення коду для класів відповідно специфікації. Застосування допоміжних типів даних (структур, класів). Правила реалізації методів відповідно повідомленням діаграм взаємодії.
ЛЗ5. Складання UML-діаграми програмних класів. Виявлення відношень асоціацій, агрегацій та композицій між програмними класами. Побудова діаграми програмних класів.
СРС. К.
10. тиждень
Л10. Тестування програмних модулів. Призначення тестування. Види тестування. Методи тестування чорного та білого ящику. Драйвери. Заглушки. Тестування інтеграції. Чек-листи і тест-кейси.
ПР5. Складання коду для класів відповідно індивідуальним завданням.
СРС. К.
11. тиждень
Л6. Тестування окремих методів (білий ящик). Побудова потокового графу. Визначення цикломатичної складності. Визначення незалежних шляхів. Побудова тестових варіантів.
ЛЗ6. Створення коду програмних класів. визначення призначення класів. Створення допоміжних структур , або класів; створення опису атрибутів; створення коду кожного методу.
СРС. К.
12. тиждень
Л12. Об’єктно-орієнтоване тестування. Тестування окремих класів і кластерів класів. Тестування спадкування. Тестування об’єктних модулів. Тестування об’єктної інтеграції.
ПР6. Складання чек-листів. Тестування методів класів відповідно індивідуальним завданням.
СРС. К.
13. тиждень
Л13. Рефакторінг. Призначення рефакторінга. Планування рефакторінгу. Ознаки ситуацій, що визначають застосування рефакторінгу. Принципи реалізації рефакторінгу на рівні програмних модулів
ЛЗ7. Створення тест-кейсів і тестування методів програмного класу. Вибір методу. Побудова потокового графа; визначення цикломатичної складності; визначення незалежних шляхів; складання тест-кейсу; проведення тестування і відладки.
СРС. К.
14. тиждень
Л14. Застосування баз даних. Проблеми списків. Реляційні бази даних. Семантичне моделювання. Поняття сутності, примірника сутності, атрибуту сутності, зв’язку. Виявлення сутностей. Концептуальна і фізична діаграми.
ПР7. Написання тест-кейсів. Тестування класів відповідно індивідуальним завданням.
МКР2.СРС. К.
15. тиждень
Л15. Класичні методи конструювання програмного забезпечення. Структурний підхід до проектування ІС. Методологія функціонального моделювання SADT. Склад функціональної моделі. Ієрархія діаграм. Типи зв’язків між функціями. Моделювання потоків даних. Зовнішні сутності. Системи і підсистеми. Процеси. Накопичувачі даних. Потоки даних. Ієрархії діаграм потоків даних.
ЛЗ8. Створення чек-листів. Тестування програмного модулю. Вибір класу, з якого треба починати тестування; розробка чек-листа тестування коасу; розробка схеми тестування, драйверів та заглушок.
СРС. К.
Процедура оцінювання
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних, практичних і лабораторних занять, виконують 2 модульні контрольні роботи.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі
Кожний модуль оцінюється у максимально можливі 50 балів:
Модульна робота складається з теоретичної частини та практичної частини - задач.
Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №1 становить 6 балів, за виконання практичної частини – 24 балів. Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №2 становить 6 балів, за виконання практичної частини – 24 балів.
Кількість запитань теоретичної частини модульної роботи №1 – 2. Кожна правильна відповідь оцінюється в 3 бали. Кількість запитань практичної частини модульної роботи №2 – 5. Відповідь на перше запитання оцінюється в 2 бали, на друге – 4 бали, на третє і четверте 5 балів, на п’яте – 8 балів.
Кількість запитань теоретичної частини модульної роботи №2 – 2. Кожна правильна відповідь оцінюється в 3 бали. Кількість запитань практичної частини модульної роботи №2 – 5. Відповідь на перше запитання оцінюється в 2 бали, на друге – 5 балів, на третє - 6 балів, на четверте - 5 балів, на п’яте – 6 балів.
За результатами опитувань та рішення задач протягом практичних занять студент може отримати до 10 балів.
За результатами виконання лабораторних робіт та захисту протоколів студент може отримати до 10 балів.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів.
Підсумковим контролем з дисципліни є усний екзамен, білет до якого складається з теоретичної частини (3 запитання) та практичної частини (1 задача). За бездоганну відповідь на кожне теоретичне питання студент отримує – 13 балів. За бездоганне виконання задачі - 61 бал.
Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.
Семестровий модуль № 1
ПР1- ПР3. Оцінка за виконання – 20 балів. Термін виконання – 1-8 тиждень.
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.
Семестровий модуль № 2
ПР1- ПР3. Оцінка за виконання – 20 балів. Термін виконання – 9-15 тиждень.
МК2. Модульна контрольна робота – 30 балів (14 тиждень).
Умови допуску до підсумкового контролю
До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.
Екзамен відбувається за всіма тематичними (змістовними) модулями дисципліни.
Політика освітнього процесу
Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх не зрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.
Виконаний не свій варіант завдання здобувачем не оцінюється.
Робота, яка виконана після встановлених викладачем термінів, не приймається.
Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0».
Складання/перескладання екзаменів – за встановленим деканатом розкладом.
Під час лекції здійснювати телефонні дзвінки забороняється.
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних контролів та екзамену з дисципліни.
Документи (файли), що додаються: Робоча програма навчальної дисципліни.
Література
1. О.Б. Кунгурцев, С.Л. Зіноватна. Об’єктно-орієнтована технологія конструювання програмних продуктів. Одеса: «Удача», 2013. – 232 с.
2. Кунгурцев О.Б., Зіноватна С.Л. Робота з вимогами до програмного забезпечення. Навчальний посібник. Одеса. «Астропринт».2019. – 232 с.
3. Табунщик Г. В. Проектування та моделювання програмного забезпечення сучасних інформаційних систем / Г. В. Табунщик, Т.І. Каплієнко, О.А. Петрова − Запоріжжя : Дике Поле, 2016. – 250 c. ISBN 978-966-2752-07-0
4. Тихонов Є. С. Навчально –методичні матеріали до вивчення дисципліни «Конструювання програмного забезпечення. JAVA» Київ 2018.- 92 с. http://www.dut.edu.ua/uploads/l_1356_40861555.pdf
5. Організація баз даних : навч. посібник / О. Г. Трофименко, Ю. В. Прокоп, Н. І. Логінова, І. М. Копитчук. 2-ге вид. виправ. і доповн. – Одеса : Фенікс, 2019. – 246 с. ISBN 978-966-928-395-5
6. Method for defining conceptual classes in the description of use cases / Kungurtsev, O., Novikova, N., Reshetnyak M., Cherepinina Ya., Gromaszek, K. & Jarykbassov, D .// Proc. SPIE 11176, Photonics Applications in Astronomy, Communications, Industry, and High-Energy Physics Experiments 2019, 1117624 (6 November 2019); doi: 10.1117/12.2537070
7. О. Kungurtsev, N. Novikova Identification of class models imperfection / // Herald of Advanced Information Technology. – Odessa, 2020 –№2. – С. 13-22, DOI: 10.15276/hait.02.2020.1
8. Авраменко А.С., Авраменко В.С., Косенюк Г.В. Тестування програмного забезпечення. Навчальний посібник. – Черкаси: ЧНУ імені Богдана Хмельницького, 2017. – 284 с.
9. Погромська Г.С. Програмні проекти: управління та розробка. Навчальнометодичний посібник / Г. С. Погромська, Н.А. Махровська. – Миколаїв. 2017. – 153 с. УДК 004.655(076.5) ББК 32.81
Методична література
1. Кунгурцев О.Б. Конспект лекцій з дисципліни «Конструюапння програмного забезпечення» для студентів спеціальності 121 – Інженерія програмного забезпечення, – Одеса: ОНПУ, 2019. - 68 с. (КЛ11061)
2. Кунгурцев О.Б Методичні вказівки до практичних занять з дисципліни «Конструюапння програмного забезпечення» для студентів спеціальності 121 - Інженерія програмного. – Одеса: ОНПУ, 2019. - 39 с. (МВ11063)
3. Кунгурцев О.Б Методичні вказівки до курсової роботи з дисципліни «Конструюапння програмного забезпечення» для студентів спеціальності 121 – «Інженерія програмного забезпечення. - Одеса; ОНПУ, 2017. - 16 с. (МВ08562)
4. Кунгурцев О.Б Методичні вказівки до самостійної роботи студентів з дисципліни «Конструюапння програмного забезпечення» для студентів спеціальності 121 – «Інженерія програмного забезпечення. - Одеса; ОНПУ, 2019. - 11 с. (МВ11065)
Додаткова література
1. Орлов С.А. Программная инженерия.Технология разработки программного обеспечения. Учебник для вузов. 5-е издание обновленное и дополненное. Издательский дом «Питер» 2018. – 640 с.
2. Черткова Е.А. Программная инженерия. Визуальное моделирование программных систем 2-е изд., испр. и доп. Учебник для вузов. Бакалавр.2017, - 169 с.
3. Лаврищева Е.М. Технология программирования и программная инженерия. Учебник для вузов. Профессиональное образованиею. 2017
4. Системная инженерия. Принциры и практика. /Александр Косяков, Уильям Н. Свит, Сэмюэль Дж. Сеймур, Стивен М. БимерДМК Пресс. 2017. - 624 с.
5. Тамре Луиза. Тестирование программного обеспечения. Вильямс, 2017. – 368 с.
6. Крэг Ларман. Применение UML 2.0 и шаблонов проектирования. Практическое руководство. 3-е издание/ Крэг Ларман. – М.: Издательский дом "Вильямс", 2013. – 736с.
7. Остроух А.В., Суркова Н.Е. Проектирование информационніх систем. Лань. 2019. – 164 с.
8. Моделювання та аналіз програмного забезпечення: навчальній посібник / В.В. Завгородній, К.М. Ялова. – Кам’янське: ДДТУ, 2017. – 378с. (Лист МОН України № 1/11-10993 від 12.08.2016)
9. Технології створення OLAP-систем: навчальний посібник / В.В. Завгородній, Г.А. Завгородня. – Київ: ДУІТ, 2018. – 195с.
10. Бородкіна І, Бородкин Г. Інженерія програмного забезпечення. Посібник для студентів вищих навчальних закладів Центр навчальної літератури. 2018.- 204 с. ISBN 978-611-01-1232-1
11. Ковалевський В.М. Технологія розробки програмного забезпечення. Завдання і алгоритми команд до програмування прикладних програм в С++ Builder. КПІ ім. Ігоря Сікорського. .2017.- 185 с. https://ela.kpi.ua/handle/123456789/22325
12. Золотухіна О.А., Негоденко О.В., Резник С.Ю., Разіна С.Я.. «Якість та тестування інформаційних систем». (3.6 Мб).- 2020.
13. Бек К. Экстремальное программирование/ К. Бек. – СПБ : Питер, 2002. – 224 с.
14. Борисов М. Scrum: гибкое управление разработкой/ М. Борисов. – Журнал «Открытые системы». №4, 2007.
15. Фаулер Мартин. Рефакторинг. Улучшение существующего кода/ Мартин Фаулер .- СПб. : Издательство «Символ-Плюс», 2003. – 432 с. (1 примірник)
16. Тамре Л. Введение в тестирование программного обеспечения/Л. Тамре. – М. : Издательский дом «Вильямс», 2003. – 368с.
17. Дубина О. Обзор паттернов проектирования. Шестнадцатая техническая конференция «Корпоративные базы данных-2011»/ О. Дубина. – Москва, 14–15 апреля, 2005 г.
18. Файзрахманов, Р.А. Проектирование автоматизированных информационных сис¬тем на основе объектно ориентированного подхода: учеб, пособие / Р.А. Файзрахманов, А.В. Архипов. Электронный ресурс: Пермь: Изд-во Перм. гос. техн. ун-та, 2011. - 223 с. Електронний примірник http://elib.pstu.ru/docview/?id=2719.pdf