Конструювання ПЗ
Анотація навчальної дисципліни
Мета дисципліни:
надбання стyдентами знань з методів створення програмного забезпечення, оволодіння методикою та технологією об’єктно-орієнтованого конструювання, одержання навичок та знань з тестування та налагодження модулів програмного продукту.
Завдання дисципліни:
- розвити уміння оцінювати основні моделі та технології конструювання програмного забезпечення;
- оволодіти технологією об'єктно-орієнтованого конструювання;
- оволодіти теорією та практикою побудови різних моделей у процесі конструювання;
- оволодіти методами та практикою тестування моделей та модулів;
- оволодіти практикою застосування шаблонів конструювання програмного забезпечення;
- оволодіти технологією підвищення якості створеного програмного коду.
Основні результати навчання
Знати кодекс професійної етики, розуміти соціальну значимість та культурні аспекти інженерії програмного забезпечення і дотримуватись їх в професійній діяльності.
Знати і застосовувати професійні стандарти і інші нормативно-правові документи в галузі інженерії програмного забезпечення.
Форми організації освітнього процесу та види навчальних занять
Л – лекційні заняття; ПР – практичне заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.
Тематика та види навчальних занять
1. тиждень
Л1. Введення в конструювання. Місце конструювання у процесі розробки ПЗ. Порівняння структурного і об’єктно-орієнтованого підходів. Уніфікований процес проектування та інші технології.
СРС. К.
1. тиждень
Л2. Моделювання предметної області. Мета моделювання. Методики моделювання з застосуванням іменних груп, загальних шаблонів, прецедентів, CRC методика. Виявлення концептуальних класів. Додавання асоціацій. Додавання атрибутів у модель. Узагальнення класів. Агрегація. Класи замість атрибутів. Класи асоціацій. Представлення моделі мовою UML. Модель системи RTS.
ПР1. Моделювання предметної області. Виявлення концептуальних класів. Додавання асоціацій. Додавання атрибутів у модель. Узагальнення класів. Агрегація. Класи замість атрибутів. Класи асоціацій. Представлення моделі мовою UML Опис вимог для предметної області.
СРС. К.
1. тиждень
Л3. Шаблони в ІТ технологіях. Класифікація шаблонів. Правила запису. Шаблони проектування. Розподіл обов’язків у системі. Шаблон Контролер. Шаблон Творець.
1. тиждень
Л4. Шаблон Інформаційний інспектор. Шаблон Слабке зв’язування. Шаблон Високе зачеплення.
ПР2. Застосування основних шаблонів конструювання. Розподіл обов’язків у системі.
Шаблони проектування. Шаблон Контролер, Творець, Інформаційний інспектор, Слабке зв’язування, Високе зачеплення Побудова концептуальної моделі даних.
СРС. К.
1. тиждень
Л5. Розподіл обов’язків між класами. Призначення діаграм взаємодії. Порівняльна характеристика типів діаграм. Відображення розгалужень. Відображення циклів. Діаграми кооперації. Діаграми послідовностей. Відображення розгалужень. Відображення циклів. Блоки активації. Приклади створення діаграм.
СРС. К.
1. тиждень
Л6. Застосування діаграм взаємодії та основних шаблонів конструювання. 2[347-386], 5[64-70]
Визначення операцій. Вибір класу-контролера. Проектне рішення newOrder. Проектне рішення isItinarary. Проектне рішення isSeat.
ПР3. Застосування діаграм взаємодії. Діаграми кооперації. 2.Діаграми послідовностей. 3. Створення розгалужень та циклів.
СРС. К.
1. тиждень
Л7. Реалізація діаграм взаємодії для RTS-системи. Проектне рішення getPrice. Проектне рішення makePayment. Проектне рішення startUp
СРС. К.
1. тиждень
Л8. Області видимості (за допомогою атрибутів, за допомогою параметрів, локальна, глобальна). Визначення методів. Правила визначення атрибутів класів.
ПР4. Проектування реляційної моделі даних з застосуванням нормалізації відношень.
МКР1. СРС. К.
1. тиждень
Л9. Побудова специфікацій програмних класів. Побудова діаграм програмних класів..
Відображення асоціацій та залежностей на діаграмах класів.
СРС. К.
1. тиждень
Л10. Складання структури даних відповідно діаграмам взаємодії і специфікаціям програмних класів.. Аналіз фрагментів діаграм. Правила побудови методів.
ПР5. Складання діаграм взаємодії відповідно індивідуальним завданням.
СРС. К.
1. тиждень
Л6. Створення коду для класів RTS-системи. Класи-контейнери. Ітеративний процес та модифікація коду
СРС. К.
1. тиждень
Л12. Призначення тестування. Види тестування. Методи тестування чорного та білого ящику. Драйвери. Заглушки. Тестування інтеграції. Чек-листи і тест-кейси.
ПР6. Створення специфікацій програмних класів. Визначення методів. Визначення атрибутів класу. Відображення асоціацій та залежностей на діаграмах класів.
СРС. К.
1. тиждень
Л13. Об’єктно-орієнтоване тестування. Тестування окремих методів. Тестування окремих класів і кластерів класів. Тестування спадкування. Тестування об’єктних модулів. Тестування об’єктної інтеграції.
СРС. К.
1. тиждень
Л14. Призначення рефакторінга. Планування рефакторінгу. Ознаки ситуацій, що визначають застосування рефакторінгу. Принципи реалізації рефакторінгу на рівні програмних модулів
ПР7. Написання чек-листів і тест-кейсів.
МКР2.СРС. К.
1. тиждень
Л15. Класичні методи конструювання програмного забезпечення. Структурний підхід до проектування ІС. Методологія функціонального моделювання SADT. Склад функціональної моделі. Ієрархія діаграм. Типи зв’язків між функціями. Моделювання потоків даних. Зовнішні сутності. Системи і підсистеми. Процеси. Накопичувачі даних. Потоки даних. Ієрархії діаграм потоків даних. Моделювання даних, метод Баркера.
СРС. К.
Процедура оцінювання
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних і практичних занять, виконують 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 балів.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 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. Орлов С.А. Программная инженерия.Технология разработки программного обеспечения. Учебник для вузов. 5-е издание обновленное и дополненное. Издательский дом «Питер» 2018. – 640 с.
3. Черткова Е.А. Программная инженерия. Визуальное моделирование программных систем 2-е изд., испр. и доп. Учебник для вузов. Бакалавр.2017. - 169 с.
4. Лаврищева Е.М. Технология программирования и программная инженерия. Учебник для вузов. Профессиональное образование. 2017
5. Системная инженерия. Принципы и практика. /Александр Косяков, Уильям Н. Свит, Сэмюэль Дж. Сеймур, Стивен М. Бимер ДМК Пресс. 2017. - 624 с.
6. Тамре Луиза. Тестирование программного обеспечения. Вильямс, 2017. – 368 с.
7. Крэг Ларман. Применение UML 2.0 и шаблонов проектирования. Практическое руководство. 3-е издание/ Крэг Ларман. – М.: Издательский дом "Вильямс", 2013. – 736с.
8. Остроух А.В., Суркова Н.Е. Проектирование информационніх систем. Лань. 2019. – 164 с.
Методична література
1. Кунгурцев О.Б. Конспект лекцій з дисципліни «Конструювання програмного забезпечення» для студентів спеціальності 121 – Інженерія програмного забезпечення, – Одеса: ОНПУ, 2019. - 68 с. (КЛ11061)
2. Кунгурцев О.Б Методичні вказівки до практичних занять з дисципліни «Конструювання програмного забезпечення» для студентів спеціальності 121 - Інженерія програмного. – Одеса: ОНПУ, 2019. - 39 с. (МВ11063)
3. Кунгурцев О.Б Методичні вказівки до курсової роботи з дисципліни «Конструювання програмного забезпечення» для студентів спеціальності 121 – «Інженерія програмного забезпечення. - Одеса; ОНПУ, 2017. - 16 с. (МВ08562)
4. Кунгурцев О.Б Методичні вказівки до самостійної роботи студентів з дисципліни «Конструювання програмного забезпечення» для студентів спеціальності 121 – «Інженерія програмного забезпечення. - Одеса; ОНПУ, 2019. - 11 с. (МВ11065)
Додаткова література
1. Бек К. Экстремальное программирование/ К. Бек. – СПБ : Питер, 2002. – 224 с.
2. Борисов М. Scrum: гибкое управление разработкой/ М. Борисов. – Журнал «Открытые системы». №4, 2007.
3. Фаулер Мартин. Рефакторинг. Улучшение существующего кода/ Мартин Фаулер .- СПб. : Издательство «Символ-Плюс», 2003. – 432 с. (1 примірник)
4. Тамре Л. Введение в тестирование программного обеспечения/Л. Тамре. – М. : Издательский дом «Вильямс», 2003. – 368с.
5. Дубина О. Обзор паттернов проектирования. Шестнадцатая техническая конференция «Корпоративные базы данных-2011»/ О. Дубина. – Москва, 14–15 апреля, 2005 г.
6. Файзрахманов, Р.А. Проектирование автоматизированных информационных систем на основе объектно ориентированного подхода: учеб, пособие / Р.А. Файзрахманов, А.В. Архипов. Электронный ресурс: Пермь: Изд-во Перм. гос. техн. ун-та, 2011. - 223 с. Електронний примірник http://elib.pstu.ru/docview/?id=2719.pdf