Архітектура і проєктування програмного забезпечення

Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.O.036
Кількість кредитів: 4.00
Кафедра: Програмне забезпечення
Лектор: к.пед.н., доцент Фоменко А.В.
Семестр: 7 семестр
Форма навчання: денна
Мета вивчення дисципліни: На основі вивчення теоретичних основ з моделювання, розробки та проектування на основі шаблонів та каркасів програмного забезпечення, а також вивчення основних стандартів, вимог та готових конструкцій, які використовуються при розробці та проектуванні великих програмних додатків, студенти набувають практичних навичок створення архітектури та детального проектування програмних продуктів з використанням сучасних методів та засобів.
Завдання: Вивчення навчальної дисципліни передбачає формування у студентів необхідних компетентностей: Інтегральна компетентність: ІНТ Здатність розв’язувати складні спеціалізовані завдання або практичні проблеми інженерії програмного забезпечення, що характеризуються комплексністю та невизначеністю умов, із застосуванням теорій та методів інформаційних технологій. загальні компетентності: ? К02. Здатність застосовувати знання у практичних ситуаціях. фахові компетентності: ? СК2. Здатність приймати участь у проектуванні програмного забезпечення, включаючи проведення моделювання (формальний опис) його структури, поведінки та процесів функціонування. ? CК3. Здатність розробляти архітектури, модулі та компоненти програмних систем. ? CК5. Здатність дотримуватися специфікацій, стандартів, правил і рекомендацій в професійній галузі при реалізації процесів життєвого циклу. ? СК13. Здатність обґрунтовано обирати та освоювати інструментарій з розробки та супроводження програмного забезпечення.
Результати навчання: Результати навчання відповідно до освітньої програми, методи навчання і викладання, методи оцінювання досягнення результатів навчання У результаті вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати навчання: Результати навчання ПР03. Знати основні процеси, фази та ітерації життєвого циклу програмного забезпечення. ПР04. Знати і застосовувати професійні стандарти і інші нормативно-правові документи в галузі інженерії програмного забезпечення. ПР05. Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення. ПР07. Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення ПР10. Проводити передпроектне обстеження предметної області, системний аналіз об’єкта проектування. ПР11. Вибирати вихідні дані для проектування, керуючись формальними методами опису вимог та моделювання. ПР12. Застосовувати на практиці ефективні підходи щодо проектування програмного забезпечення. ПР14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення. ПР15. Мотивовано обирати мови програмування та технології розробки для розв’язання завдань створення і супроводження програмного забезпечення ПР16. Мати навички командної розробки, погодження, оформлення і випуску всіх видів програмної документації. ПР17. Вміти застосовувати методи компонентної розробки програмного забезпечення. ПР18. Знати та вміти застосовувати інформаційні технології обробки, зберігання та пере5дачі даних. ПР19. Знати та вміти застосовувати методи верифікації та валідації програмного забезпечення. ПР23. Вміти документувати та презентувати результати розробки програмного забезпечення. Знати: • - поняття архітектури програмних засобів, підходи до її аналізу та побудови; • - основні існуючі архітектури програмних засобів, їх характеристики та особливості, а також застосування архитектур на практиці; • - мету та задачі проектування програмних засобів; • - мову моделювання UML • Знати типові архітектурні стилі та рішення для створення ПЗ, особливості їх застосування; • Володіти методами об’єктно-орієнтованого проектування програмних систем, а також знати шаблони об’єктно-орієнтованого проектування; • Знати загальну архітектуру корпоративних систем на базі платформ Java і .NET та вміти проектувати корпоративне ПЗ для цих платформ; • Вміти документувати архітектуру та дизайн програмних систем з використанням стандартних засобів та нотацій. Вміти: • користуватись методами структурного та об'єктно-орієнтованого проектування програмного забезпечення та застосовувати ці методи на практиці; • володіти засобами проектування програмного забезпечення; • використовувати мову моделювання UML для проектування програмного забезпечення; • користуватися архітектурними шаблонами проектування та розуміти їх роль в програмуванні; • використовувати патерни проектування при створенні програмних продуктів.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни КР Бази даних Конструювання програмного забезпечення Супутні і наступні навчальні дисципліни Людино-машинна взаємодія
Короткий зміст навчальної програми: Розробка програмного забезпечення є складним багатоетапним процесом. Складність програмних систем вимагає створення проектної документації. Існує багато підходів до проектування архітектури програмних систем. Опанування методиками проектування програмного забезпечення дозволяє майбутньому програмісту працювати в командах по створенню складного програмного забезпечення. Метою дисципліни є освоєння сучасних методик та підходів до проектування програмних систем та формування їх архітектури. Набуття практичних вмінь та навичок з проектування програмних рішень різного масштабу та призначення на основі сучасних інформаційних технологій та програмних каркасів.
Опис: Лекційні заняття направлені на вивчення наступних тем: 1. Вступ. Роль та місце проектування в процесі розробки ПЗ. Поняття архітектури ПЗ. Зміст проектування. Software Design SWEBOK 2. Архітектури програмних систем.Поняття архітектури програмної системи. Що визначає і на що впливає архітектура. Архітектурні структури і представлення. Модульні структури. Структури "компонент і з'єднувач". Структури розподілення. Відносини між структурами. Варіанти архітектур програмних систем. Архітектура, заснована на рівнях абстракцій. Архітектури, засновані на портах. Архітектури незалежних компонентів. архітектури, засновані на потоках даних. 3. CASE системи та редактори проектування, використання для створення моделей архітектури системи. 4. Проектування програмних систем. Аналіз вимог і розробка зовнішніх специфікацій. Методологія SADT. Діаграми IDEF 0. 5. Проектування програмних систем. Методологія SADT. Діаграми DFD, IDEF3. 6. Проектування програмних систем. Методологія ARIS. Діаграми eEPC, DataFloat. 7. Проектування програмних систем. Методологія BPMN 2.0. Діаграми BPMN. 8. Проектування програмних систем. Методологія UML. Діаграми прецедентів, кооперації. 9. Проектування програмних систем. Методологія UML. Діаграми послідовності, дій. Діаграми переходів станів. 10. Об’єктно-орієнтований підхід до побудови ПЗ. Основні елементи ООП. Проектування програмних систем діаграми класів, об’єктів. 11. Проектування баз даних. Діаграми IDEF 1Х. 12. Методи об’єктно-орієнтованого аналізу та проектування. Шаблони об’єктно-орієнтованого проектування. Застосування шаблонів 13. Типові архітектурні рішення. Їх реалізація. 14. Загальна архітектура корпоративного ПЗ на платформах Java та .NET 15. Документування результатів етапу проектування. Розробка попереднього зовнішнього проекту. Процес зовнішнього проектування. Проектування взаємодії з користувачем. Підготовка зовнішніх специфікацій. На практичних заняттях студенти отримають практичні навички з проектування програмної системи методами групової роботи з наступних тем: • Розробка проекту системи та модуля системи у різних нотаціях, а саме: SADT (IDEF0, DFD, IDEF3), ARIS, BPMN 2, UML 2. • Побудова моделі баз даних DataFlow (ARIS), IDEF 1X (SADT). • Створення проектної документації та захист проекту • Розробка модулю складної системи (робота в групі) з використанням архітектурних шаблонів проектування. • Розробка графічного інтерфейсу (групова робота) та вбудова в нього свого модулю. • Захист свого модулю у проекті системи. 4.Результатом дисципліни є групова розробка проектної документації складної системи, індивідуальна розробка проекту модулю системи, розробка ПЗ, а саме модулю системи, адаптування модулю системи у загальному проекті.
Методи та критерії оцінювання: Лабораторні роботи: мінімальна оцінка 0 балів (робота є, виконана індивідуально, але не захищена), максимальна – 1,5 бали (робота є виконана повністю, всі моделі правильні, були всі необхідні пояснення). Оцінка в межах від 0 до 1,5 виставляється в залежності від кількості помилок в моделях і при відповідях на питання) Бали за проект приводяться до 45 балів за формулою: Бали за індивідуальну роботу= Отримана кількість балів / 120 * 45
Критерії оцінювання результатів навчання: Лабораторні роботи (1 роб.-1,5 бала). Всього 22,5 бала Індивідуальні завдання (захист групового проекту) 22,5 бала Іспит - 55 балів, включно: - письмова компонента - 10 балів, - усна компонента - 45 балів.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Навчально-методичні матеріали Навчальна дисципліна забезпечена сертифікованим навчально-методичним комплексом 8. Рекомендована література Базова 1. ЕНМК дисципліни «Архітектура та проектування програмного забезпечення». Сертифікат про визнання інформаційного ресурсу у ВС ЛП методичною працею № 04068. [Електронний ресурс]. Режим доступу: https://vns.lpnu.ua/course/view.php?id=63 2. Мартін Роберт. Чиста архітектура. Мистецтво розробки програмного забезпечення. "Фабула", 2019. - 416с. 3. Мартин Роберт. Чиста архітектура: мистецтво розробки програмного забезпечення, "Фабула", 2019. - 352с. 4. Мартин Роберт. Чистий Agile. Основи гибкости. "Питер", 2020. - 272с. 5. Мартин Роберт. - Чистий код. Створення і рефакторинг за допомогою Agile "Фабула", 2019. – 416c. 6. Software architecture : foundations, theory, and practice / Richard N. Taylor, Nenad Medvidovic, Eric M. Dashofy. - Hoboken (N.J.) : Wiley, 2010.- 425с. 7. The Software Engineering Institute (SEI) Architecture Website -architecture definitions, offers a good example. Режим доступу:http://www.sei.cmu.edu/architecture/definitions.html 8. IEEE Computer Society, IEEE Recommended Practice for Architectural Description of Software-Intensive Systems: IEEE Std 1472000. 2000. 9. Pattern Oriented Software Architecture: On Patterns and Pattern Languages / Buschmann F.Schmidt D.C.Henney K. - John Wiley & Sons, Inc, Vol. 5.- 2007. - 389с. …………………………………………………………………………………………………………… Допоміжна 1. Learn Software Architecture & Design. [Електронний ресурс]. Режим доступу: https://www.tutorialspoint.com/software_architecture_design/index.htm. 2. The Elements of UML(TM) 2.0 Style. Scott W. Ambler. Cambridge University Press, 2005 9. Інформаційні ресурси 1. Names of Classes, Structs, and Interfaces http://msdn.microsoft.com/en-us/library/ms229002.aspx 2. Code Conventions for the Java Programming Language. http://www.oracle.com/technetwork/java/codeconv-138413.html 3. Object Management Group – UML http://www.uml.org/ 4. List of Unified Modeling Language tools – Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools 5. ArgoUML – argouml.tigris.org http://argouml.tigris.org/ 6. StarUML – The Open Source UML/MDA Platform http://staruml.sourceforge.net/ 7. Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Addison-Wesley Professional, 1994. 8. Hibernate - JBoss Community http://www.hibernate.org/hibernate 9. HSQLDB http://hsqldb.org/ 10. Hibernate Tutorial http://www.vaannila.com/hibernate/hibernate-tutorial/hibernate-tutorial.html 11. ASP.NET MVC: The Official Microsoft ASP.NET Site http://www.asp.net/mvc 12. InfoQ: ASP.NET MVC Example with Northwind and Entity Framework Published http://www.infoq.com/news/2008/02/mvc-framework-example 13. ADO.NET Entity Framework http://msdn.microsoft.com/en-us/data/aa937723 14. The Official Microsoft IIS Site http://www.iis.net/ 15. Visual Web Developer 2010 Express | Microsoft Visual Studio http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express 16. Free Database Software | Database Applications | SQL Server Express http://www.microsoft.com/sqlserver/en/us/editions/express.aspx
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).