Моля, използвайте този идентификатор за цитиране или линк към този публикация: http://elartu.tntu.edu.ua/handle/lib/54132
Заглавие: Конспект лекцій з дисциплiни «Об’єктні технології та інструментальні засоби конструювання програмного забезпечення»
Други Заглавия: Конспект лекцій з дисциплiни «Об’єктні технології та інструментальні засоби конструювання програмного забезпечення» для здобувачiв другого (магістерського) рiвня вищої освiти ОПП «Iнженерiя програмного забезпечення»
Автори: Михалик, Дмитро Михайлович
Цебрій, Олексій Романович
Стефанишин, Володимир Миколайович
Affiliation: Михалик Д.М. к.т.н., доцент каф. ПІ Цебрій О.Р., к.ф.-м.н., доцент каф. ПІ Стефанишин В.М., ас. каф. ПІ
Bibliographic reference (2015): Конспект лекцій з дисциплiни «Об’єктні технології та інструментальні засоби конструювання програмного забезпечення» для здобувачiв другого (магістерського) рiвня вищої освiти ОПП «Iнженерiя програмного забезпечення» всiх форм навчання / Укладач: Михалик Д.М., Цебрій О.Р., Стефанишин В.М.– Тернопiль: ТНТУ iм. I. Пулюя, 2025 – 239 с.
Bibliographic citation (APA): Конспект лекцій з дисциплiни «Об’єктні технології та інструментальні засоби конструювання програмного забезпечення» для здобувачiв другого (магістерського) рiвня вищої освiти ОПП «Iнженерiя програмного забезпечення» всiх форм навчання / Укладач: Михалик Д.М., Цебрій О.Р., Стефанишин В.М.– Тернопiль: ТНТУ iм. I. Пулюя, 2025 – 239 с.
Дата на Публикуване: 1-Сеп-2025
Submitted date: 28-Авг-2025
Date of entry: 25-Сеп-2026
Издател: ТНТУ ім. І. Пулюя
Country (code): UA
Place of the edition/event: Тернопiль: ТНТУ iм. I. Пулюя
UDC: 004.41(076.5)
Ключови Думи: Методичнi вказiвки
Інженерія програмного забезпечення
Об’єктні технології та інструментальні засоби конструювання програмного забезпечення
Резюме: Пропонований конспект лекцій призначений для здобувачів другого (магістерського) рівня вищої освіти спеціальності 121/F2 «Інженерія програмного забезпечення» і містить систематизований виклад теоретичного матеріалу з дисципліни «Об’єктні технології та інструментальні засоби конструювання програмного забезпечення». Головною метою видання є формування системного розуміння принципів і методів побудови якісного об’єктно-орієнтованого програмного забезпечення, здатного до розвитку, повторного використання та супроводу. Матеріал курсу побудовано від фундаментальних понять якості й модульності програмного забезпечення до практичних принципів організації системи класів, визначення їх відповідальностей, побудови контрактів, використання універсалізації, успадкування та інших механізмів об’єктно-орієнтованого конструювання.
Описание: У конспекті послідовно розглянуто питання якості програмного забезпечення, модульності, повторного використання програмних компонентів, абстрактних типів даних, управління пам’яттю, універсалізації, проєктування за контрактом, оброблення порушень контрактів, принципів і механізмів успадкування, правильного формування ієрархій класів, визначення класів та їх відповідальностей, використання глобальних об’єктів і констант. Окрему увагу приділено сучасним підходам до організації розроблення програмного забезпечення та практичному використанню інструментальних засобів програмної інженерії. Особливістю видання є поєднання фундаментальних принципів об’єктно-орієнтованого конструювання з практичними проблемами сучасної розробки програмного забезпечення. Теоретичні положення розглядаються з позицій їх впливу на модульність, зв’язність і зчепленість компонентів, повторне використання, розширюваність, тестованість, надійність та підтримуваність програмних систем. Значна увага приділяється не лише способам застосування окремих механізмів об’єктно-орієнтованого програмування, а й визначенню умов, за яких їх використання є обґрунтованим або, навпаки, може призвести до погіршення структури програмного забезпечення.
Content: ВСТУП 9 ТЕМАТИЧНИЙ ПЛАН НАВЧАЛЬНОЇ ДИСЦИПЛІНИ 13 Лекція 1 16 1.1 Передумови забезпечення якості програмного забезпечення 18 1.2 Основні складові забезпечення якості програмного забезпечення 19 1.3 Завдання, цілі та метрики забезпечення якості програмного забезпечення 21 1.4 Міжнародні стандарти забезпечення якості програмного забезпечення 22 Висновки 24 Лекція 2 25 2.1 Поняття модульності 25 2.2 Критерії модульності 26 2.3 Правила модульності 29 2.4 Принципи модульності 31 Висновки 34 Лекція 3 35 3.1. Поняття повторного використання програмного забезпечення 35 3.2 Повторне використання програмних бібліотек і фреймворків 38 3.3. Повторне використання за допомогою шаблонів проєктування 39 3.4. Компонентна архітектура та компонентне програмування 45 3.5 Переваги та обмеження повторного використання програмного забезпечення 56 Висновки 57 Лекція 4 59 4.1 Поняття абстрактного типу даних 59 4.2 Варіанти реалізації абстрактних типів даних 63 4.3 Формальна специфікація абстрактних типів даних 66 4.4 Абстрактний тип даних STACK як формальна модель обчислень 71 4.5 Перехід від абстрактних типів даних до класів 74 Висновки 76 Лекція 5 78 5.1 Життєвий цикл об’єктів і способи розміщення даних у пам’яті 78 5.2 Проблема вивільнення пам’яті та ручне керування пам’яттю 89 5.3 Керування пам’яттю на рівні програмних компонентів 94 5.4 Автоматичне керування пам’яттю 98 5.5 Практичні аспекти й оптимізація автоматичного керування пам’яттю 102 Висновки 108 Лекція 6 110 6.1 Поняття універсалізації та способи узагальнення типів 110 6.2 Необхідність параметризації типів 114 6.3 Узагальнені класи та їх параметри 119 6.4 Масиви як приклад узагальненого класу 124 6.5 Переваги, вартість та обмеження універсалізації 128 Висновки 133 Лекція 7 134 7.1 Поняття проєктування за контрактом 134 7.2 Передумови та постумови 136 7.3 Інваріанти класу 140 7.4 Контракти в описі класів та операцій 145 7.5 Перевірка контрактів і оброблення порушень 152 7.6 Контракти, успадкування та повторне визначення операцій 153 7.7 Переваги та практичне застосування проєктування за контрактом 154 Висновки 155 Лекція 8 156 8.1 Основні поняття винятку та відмови 156 8.2 Причини виникнення винятків і порушень контракту 157 8.3 Принципи дисциплінованого оброблення винятків 159 8.4 Механізм оброблення винятків rescue і retry 160 8.5 Приклади оброблення винятків 161 8.6 Завдання секції rescue та відновлення інваріанта 164 8.7 Розширене оброблення винятків і запобігання повторним порушенням 165 Висновки 167 Лекція 9 168 9.1 Поняття та призначення успадкування 168 9.2 Батьківські класи, класи-нащадки та успадковані компоненти 171 9.3 Поліморфізм і сумісність типів 174 9.4 Повторне визначення компонентів і динамічне зв’язування 177 9.5 Відкладені компоненти та класи 179 9.6 Значення, переваги й обмеження успадкування 182 9.7 Правила правильного застосування успадкування 184 Висновки 188 Лекція 10 189 10.1 Поняття відкату в інтерактивних системах 189 10.2 Команда як об’єкт і базовий клас COMMAND 191 10.3 Успадкування, поліморфізм і динамічне зв’язування в механізмі Undo 193 10.4 Багаторівневий механізм Undo/Redo та історія команд 194 10.5 Практичні аспекти реалізації та інтерфейс користувача 196 10.6 Переваги, обмеження та загальні принципи побудови механізму відкату 198 Висновки 199 Лекція 11 200 11.1 Поняття методології розроблення програмного забезпечення 200 11.2 Agile та основні принципи гнучкого розроблення 201 11.3 Scrum: структура, команда, події та артефакти 202 11.4 Kanban та керування потоком робіт 203 11.5 Порівняння Agile, Scrum і Kanban 204 11.6 Застосування гнучких підходів під час об’єктно-орієнтованого розроблення 207 Висновки 208 Лекція 12 209 12.1 Необхідність правильного застосування успадкування 209 12.2 Вибір між успадкуванням і клієнтським зв’язком 210 12.3 Типові помилки використання успадкування 212 12.4 Основні допустимі форми успадкування 213 12.5 Успадкування для розширення та повторного використання 214 12.6 Побудова та розвиток ієрархій класів 215 12.7 Практичні правила правильного використання успадкування 216 Висновки 217 Лекція 13 218 13.1 Поняття ідентифікації класів 218 13.2 Аналіз вимог як джерело потенційних класів 219 13.3 Критерії виокремлення самостійного класу та класів в об’єктно-орієнтованій системі 220 13.4 Ознаки помилкового визначення класів 223 13.5 Додаткові джерела класів та повторне використання 224 13.6 Послідовність формування системи класів 226 Висновки 227 Лекція 14 228 14.1 Глобальна інформація в об’єктно-орієнтованій системі 228 14.2 Символічні та явні константи 229 14.3 Константи класових типів і одноразові функції 231 14.4 Спільні об’єкти та одноразова ініціалізація 232 14.5 Рядкові константи та фіксовані набори значень 233 14.6 Проблеми надмірного використання глобальних даних 234 14.7 Практичні правила використання глобальних об’єктів і констант 235 Висновки 236 СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 238
URI: http://elartu.tntu.edu.ua/handle/lib/54132
Copyright owner: © ТНТУ ім. І. Пулюя, 2025
References (Ukraine): Куєвда Ю. В. Об’єктно-орієнтоване програмування. Курс лекцій : навчальний посібник. Київ : КПІ ім. Ігоря Сікорського, 2024. 164 с.
Порєв В. М. Об’єктно-орієнтоване програмування. Конспект лекцій : навчальний посібник. Київ : КПІ ім. Ігоря Сікорського, 2022. 271 с.
Мнушка О. В., Савченко В. М., Маций О. Б. Об’єктно-орієнтоване програмування мовою Python : навчальний посібник. Харків : ХНАДУ, 2021. 228 с.
Любченко Н. Ю., Соболь М. О., Пугачов Р. В., Подорожняк А. О., Івашко А. В. Основи ООП С++ в прикладах : навчально-методичний посібник. Ч. 1. Харків : НТУ «ХПІ», 2024. 223 с.
Назарчук І. В. Програмування та алгоритмічні мови : у 2 ч. Ч. 2. Програмування мовою С++. Вступ до об’єктно-орієнтованого програмування : підручник. Київ : КПІ ім. Ігоря Сікорського, 2024. 162 с.
Алхімова С. М. Об’єктно-орієнтоване програмування. Ч. 2. Об’єктно-орієнтований підхід до розробки програмного забезпечення : підручник. Київ : КПІ ім. Ігоря Сікорського, 2019. 194 с.
Коноваленко І. В., Марущак П. О. Платформа .NET та мова програмування C# 8.0 : навчальний посібник. Тернопіль : ФОП Паляниця В. А., 2020. 320 с.
Тихоход В. О., Гурін А. Л., Беспала О. М. Технології розробки програмного забезпечення. Курс лекцій : навчальний посібник. Київ : КПІ ім. Ігоря Сікорського, 2024. 230 с.
Pressman R. S., Maxim B. R. Software Engineering: A Practitioner’s Approach. 9th ed. New York : McGraw-Hill Education, 2020.
Budgen D. Software Design: Creating Solutions for Ill-Structured Problems. 3rd ed. Chapman & Hall/CRC, 2021. 364 p. Особливо доречне джерело для тем про модульність, об’єктне моделювання, класи, архітектуру та принципи проєктування.
Content type: Methodical recommendations
Показва се в Колекции:Навчальна література кафедри програмної інженерії

Файлове в Този Публикация:
Файл Описание РазмерФормат 
метод ОТКПЗ лекції .pdfКонспект лекцій з дисциплiни «Об’єктні технології та інструментальні засоби конструювання програмного забезпечення»12,64 MBAdobe PDFИзглед/Отваряне


Публикацияте в DSpace са защитени с авторско право, с всички права запазени, освен ако не е указно друго.

Админ Инструменти