Основи програмної інженерії
Анотація навчальної дисципліни
Мета дисципліни:
вивчення студентами базових понять програмної інженерії та набуття навичок їх використання для реалізації програмних систем.
Завдання дисципліни:
– отримати знання з загальних питань організації технологічного процесу розробки програмного забезпечення (ПЗ) та підходів до аналізу;
– отримати знання з загальних питань проектування, конструювання, тестування та супроводження програмних продуктів;
– навчитися моделюванню програмних систем;
– оволодіти навиками використання базових методів інженерії ПЗ;
– досягти розуміння процесів інженерії ПЗ.
Основні результати навчання:
Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
Застосовувати на практиці ефективних підходів щодо проектування програмного забезпечення;
Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань.
Застосовувати на практиці інструментальних програмних засобів доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення.
Мотивовано обирати мови програмування та технології розробки для розв’язання завдань створення і супроводження програмного забезпечення.
Знати та вміти застосовувати інформаційні технології обробки, зберігання та передачі даних;
Здатність планувати, здійснювати та розвивати комунікації в команді та з зацікавленими сторонами.
Здатність ефективно формувати комунікаційну стратегію через точність аргументації.
Здатність спілкуватися з колегами, клієнтами, партнерами щодо конкретних питань моделювання, проектування та програмування комп’ютерних систем.
Здатність до ефективної роботи в команді.
Форми організації освітнього процесу та види навчальних занять
Л – лекційні заняття; ПЗ – практичні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.
Тематика та види навчальних занять
1 тиждень
Л1. Основні поняття програмної інженерії. Класифікація процесів програмної інженерії. Базиси процесів розробки програмного забезпечення.
СРС. К.
2 тиждень
Л2. Стратегії та моделі розробки програмного забезпечення. Макетування. Моделі: класична (водоспаду), інкрементальна, спіральна, компонентно-орієнтовна.
ПЗ 1. Призначення, класифікація та аналіз вимог замовника стосовно до об’єкту практичних робіт.
СРС. К.
3 тиждень
Л3. Основи проектування програмних систем. Особливості архітектурного етапу проектування. Структурування системи. Патерни на основі клієнт-серверної архітектури.
СРС. К.
4 тиждень
Л4. Базис мови візуального моделювання. Уніфікована мова моделювання. Рівні: архітектурний, детального проектування, фізичного розміщення. Діаграма варіантів використання (прецедентів).
ПЗ 2. Проектування діаграми варіантів використання (прецедентів) стосовно до об’єкту з індивідуального завдання.
СРС. К.
5 тиждень
Л5. Аналіз вимог за допомогою діаграм взаємодії. Визначення об’єктів та ролей. Діаграми послідовності. Лінія життєвого циклу. Повідомлення.
СРС. К.
6 тиждень
Л6. Основи керівництва програмним проектом. Основні визначення. Основні етапи: початок проекту, виміри, метрики, процес оцінювання, аналіз ризиків, планування, трасування, контроль.
ПЗ 3. Проектування діаграми послідовності стосовно до об’єкту з індивідуального завдання.
СРС. К.
7 тиждень
Л7. Формування вимог до програмного продукту на підставі діаграм діяльності (активності). Доріжки активності. Умови. Потоки.
МКР 1.
СРС. К.
8 тиждень
Л8. Управління конфігурацією програмної системи. Ідентифікація об’єктів у конфігурації. Контроль версій та змін. План, розклад, види діяльностей та супровід.
ПЗ 4. Проектування діаграми діяльності (активності) стосовно до об’єкту з індивідуального завдання.
СРС. К.
9 тиждень
Л9. Моделювання поведінки програмної системи за допомогою діаграм станів (кінцевих автоматів). Дії у станах. Умовні переходи. Композитні стани. Псевдостани.
СРС. К.
10 тиждень
Л10. Scrum-процес менеджменту гнучкої розробки. Scrum: команда, майстер, розробник. Спрінт: журнал, огляд, ретроспектива.
ПЗ 5. Проектування діаграми станів (кінцевих автоматів) стосовно до об’єкту з індивідуального завдання.
СРС. К.
11 тиждень
Л11. Основи об’єктно-орієнтованого представлення програмних систем. Абстрагування, інкапсуляція, модульність. Ієрархічна організація. Об’єкти: відношення, зв’язки, видимість, агрегація.
СРС. К.
12 тиждень
Л12. Класи. Загальна характеристика. Види відношень між класами. Асоціації, спадкування, поліморфізм, залежності, конкретизація.
ПЗ 6. Побудова діаграми класів стосовно до об’єкту з індивідуального завдання (Частина 1 – Формування сутності класів, визначення атрибутів та операцій).
СРС. К.
13 тиждень
Л13. Детальне проектування. Вершини класів. Організація зв’язків. Дерева спадкування.
СРС. К.
14 тиждень
Л14. Основні принципи детального проектування. Принципи складання класів у архітектурні підсистеми. Документування процесу проектування.
ПЗ 7. Побудова діаграми класів стосовно до об’єкту з індивідуального завдання (Частина 2 – Формування відношень та зв’язків. Проектування ієрархії метакласів. Визначення мови програмування та генерування програмного коду діаграми класів).
МКР2. СРС. К
15 тиждень
Л15. Керування персоналом. Підбір членів команди. Планування проекту. Канбан-процес. Діаграми Гантта.
СРС. К.
Процедура оцінювання
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних та практичних занять, виконують 2 модульні контрольні роботи.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.
Модульні контрольні роботи № 1 та № 2 виконуються у письмовій формі. Модульна робота складається з теоретичної частини та практичної частини.
Максимальна оцінка за правильне виконання теоретичної частини модульної роботи становить 12 балів, за виконання практичної частини – 8 балів.
Кількість запитань теоретичної частини – 12. Кожна правильна відповідь оцінюється в 1 бал.
Кількість завдань практичної частини роботи – 1 задача. Реалізація задачі (побудова діаграми) оцінюється від 0 до 8 балів. Завдання вважається розв’язаним, якщо при його розв’язанні коректно спроектована певна діаграма.
Кожний модуль оцінюється у максимально можливі 50 балів:
Семестровий модуль № 1
ПР 1 – ПР 3. Оцінка за виконання – 30 балів. Термін виконання – 1 – 7 тиждень.
МК1. Модульна контрольна робота – 20 балів (7 або 8 тиждень). Перескладання можливе протягом 9 – 11 тижнів за розкладом консультацій.
Семестровий модуль № 2
ПР 4 – ПР 7. Оцінка за виконання – 30 балів. Термін виконання – 8 – 15 тиждень.
МК2. Модульна контрольна робота – 20 балів (15 тиждень).
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів.
Підсумковий контроль
Підсумкова оцінка (залік) є результатом накопичення оцінок за виконання практичних занять і модульних контрольних робіт.
Політика освітнього процесу
Обов’язком здобувача є своєчасно та якісно виконувати отримані завдання, а також дотримуватись принципів академічної доброчесності. За необхідністю, з метою з’ясування здобувачем усіх незрозумілих під час самостійної та індивідуальної роботи питань, здобувач може відвідувати консультації викладача.
Якщо здобувач виконав інший варіант завдання, то таке виконання не оцінюється.
Відсутність здобувача на модульній контрольній роботі тягне за собою оцінку «0» (нуль).
Складання/перескладання заліків – за встановленим деканатом розкладом.
Документи (файли), що додаються: Робоча програма навчальної дисципліни.
Література
1. Орлов С. А. Программная инженерия. Технологии разработки программного обеспечения. Учебник для вузов. 5-е издание обновленное и дополненное. Санкт-Петербург: Издательский дом «Питер», 2018. 640 с.
2. Великодний С. С., Тимофєєва О. С. Реінжиніринг програмного забезпечення інформаційних систем. Монографія. Одеса: ТЕС, 2020. 162 с.
3. Великодний С. С. Реінжиніринг програмних систем та продуктів. Управління ІТ-проектами. Монографія. Нордерштедт: LAMBERT Academic Publishing, 2019. 160 с.
4. Лаврищева Е. М., Грищенко В. Н. Сборочное программирование. Основы индустрии программных продуктов: 2-изд. доп. и перераб. Киев: Наук. думка, 2013. 372 с.
5. Зайцев Є.О. Основи програмної інженерії: навчальний посібник. Київ: КНТЕУ, 2017. 419 с.
6. Boehm B. Software Risk Management. URL: https://link.springer.com /chapter/10.1007%2F3-540-51635-2_29 (дата звернення: 15.09.2021). DOI: 10.1007/3-540-51635-2_29.
7. Boehm B. Spiral Development: Experience, Principles and Refinements: special Report. CMU. SEI-2000-SR-008. 2000. 37 p.
8. Selby R. W. Software Engineering: Barry W. Boehm's Lifetime Contributions to Software Development, Management and Research. New Jersey: John Wiley & Sons, 2007. 818 p.
9. Боггс У., Боггс М. UML и Rational Rose. Санкт-Петербург: Лори, 2008. 600 с.
10. Фаулер М. UML. Основы. Краткое руководство по стандартному языку объектного моделирования. Москва: Символ-Плюс, 2011. 192 с.
11. Ларман К. Применение UML и шаблонов проектирования. 2-е изд.: пер. с англ. Москва: Издательский дом «Вильямс», 2004. 624 с.
12. Link D., Behnam P., Moazeni R., Boehm B. The Value of Software Architecture Recovery for Maintenance (Submitted on 23 Jan 2019 in Cornell University). URL: https://arxiv.org/abs/1901.07700 (дата звернення: 15.09.2021).
Методична література
1. Конспект лекцій з дисципліни «Основи програмної інженерії» для студентів першого рівня вищої освіти (бакалаврів) спеціальності 121 «Інженерія програмного забезпечення» / Укл.: В. С. Кавіцька, В. В. Любченко. Одеса: ОНПУ, 2017. 88 c.
2. Методичні вказівки до практичних занять з дисципліни «Основи програмної інженерії» для студентів першого рівня вищої освіти (бакалаврів) спеціальності 121 «Інженерія програмного забезпечення» / Укл.: В. С. Кавіцька, В. В. Любченко. Одеса: ОНПУ, 2017. 29 c.
3. ISO/IEC/IEEE 42010:2011. Systems and software engineering – Architecture description. Publication date: 2011-12. 37 p.
4. ISO/IEC/IEEE 29148:2018. Systems and software engineering – Life cycle processes – Requirements engineering. Publication date: 2018-11. Ed. 2. 92 p.
Додаткова література
1. Великодний С. С. Ідеалізовані моделі реінжинірингу програмних систем. Радіоелектроніка, інформатика, управління. 2019. №1. С. 150–156. (видання Web Of Science). http://ric.zntu.edu.ua/article/view/163820
2. Великодний С. С., Тимофєєва О. С., Зайцева-Великодна С. С. Метод розрахунку показників оцінки проекту при виконанні реінжинірингу програмних систем. Радіоелектроніка, інформатика, управління. 2018. №4. С. 135–142. (видання Web Of Science). http://ric.zntu.edu.ua/article/view/154581
3. Velykodniy S. S. Analysis and synthesis of the results of complex experimental research on reengineering of open CAD systems. Applied Aspects of Information Technology. 2019. Vol. 2. No 3. P. 186–205. DOI: 10.15276/aait.03.2019.2.
4. Великодний С. С., Бурлаченко Ж. В., Зайцева-Великодна С. С. Розробка архітектури програмного засобу для управління мережевим плануванням реінжинірингу програмного проекту. Сучасний стан наукових досліджень та технологій в промисловості. 2019. № 2 (8). С. 25–35. DOI: https://doi.org/10.30837/2522-9818.2019.8.025.
5. Velykodniy S., Burlachenko Zh., Zaitseva-Velykodna S. Software for automated design of network graphics of software systems reengineering. Scientific Journal Herald of Advanced Information Technology. 2019. No 2 (03). P. 20–32. DOI://10.15276/hait.02.2019.2.
6. Великодний С. С., Бурлаченко Ж. В., Зайцева-Великодна С. С. Реінжиніринг графічних баз даних у середовищі відкритої системи автоматизованого проектування BRL-CAD. Моделювання поведінкової частини. Вісник Кременчуцького національного університету ім. Михайла Остроградського. 2019. Вип. 2 (115). С. 117–126. DOI: 10.30929/1995-0519.2019.2.117-126.
7. Великодний С. С., Бурлаченко Ж. В., Зайцева-Великодна С. С. Реінжиніринг графічних баз даних у середовищі відкритої системи автоматизованого проектування BRL-CAD. Моделювання структурної частини. Вісник Кременчуцького національного університету ім. Михайла Остроградського. 2019. Вип. 3 (116). С. 130–139. DOI: 10.30929/1995-0519.2019.3.130-139.
8. Великодний С. С. Метод представлення оцінки реінжинірингу програмних систем за допомогою проектних коефіцієнтів. Сучасний стан наукових досліджень та технологій в промисловості. 2019. № 1 (7). С. 34–42. (кат. «Б») DOI: https://doi.org/10.30837/2522-9818.2019.7.034.
9. Великодний С. С., Тимофєєва О. С., Зайцева-Великодна С. С., Нямцу К. Є. Порівняльний аналіз властивостей відкритого, вільного та комерційного програмного забезпечення. Інформаційні технології та комп’ютерна інженерія. 2018. № 1 (41). С. 21–27.
10. Великодний С. С., Тимофєєва О. С. Спосіб мультилінгвістичного перекодування програмного забезпечення складних інформаційних систем та технологій. Наукові праці ОНАЗ ім. О. С. Попова. 2017. № 2. С. 153−159.