Оптимізаційні методи в інженерії програмного забезпечення

Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 7.121.01.E.017
Кількість кредитів: 6.00
Кафедра: Програмне забезпечення
Лектор: Професор Базилевич Роман Петрович
Семестр: 2 семестр
Форма навчання: денна
Мета вивчення дисципліни: На всіх етапах життєвого циклу інженерії програмного забезпечення виникають потреби використання оптимізаційних методів для його вдосконалення. Вони мають місце при визначенні кошторису проектування ПЗ, розробленні технічного завдання, специфікації вимог, аналізі випадків використання, проектуванні, кодуванні, тестуванні та супроводі програмного забезпечення. Метою вивчення є поглиблене освоєння студентами оптимізаційних методів прийняття оптимальних рішень, в тому числі методів лінійного, нелінійного програмування, дискретної оптимізації, метаевристик, меметики, поведінки живих організмів для їх застосування на всіх етапах розроблення та супроводу програмного забезпечення. Окремо розглядаються задачі високої розмірності, алгоритми їх декомпозиції, в тому числі алгоритми та критерії кластеризації та модуляризації програмного забезпечення, для оптимізації коду, мінімізації затрат пам’яті, чищення «сміття», тестування, структурного аналізу програмного забезпечення та інші.
Завдання: ІНТ. Здатність ефективно розв’язувати спеціалізовані задачі та практичні проблеми інноваційного характеру під час професійної діяльності, пов’язаної зі всіма аспектами виробництва програмного забезпечення від початкових стадій створення специфікації до супроводу системи після здачі в експлуатацію. ФКС2.3. Володіння поглибленими знаннями і вміннями ефективної організації обчислень у комп’ютерних системах й методології оптимізації продуктивності програмного забезпечення.
Результати навчання: РНС2.4. Вміти застосовувати методи лінійного, нелінійного програмування, дискретної оптимізації, метаевристик, меметики, поведінки живих організмів та інших на всіх етапах інженерії програмного забезпечення.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Пререквізити: Методи та засоби наукових досліджень в інженерії програмного забезпечення Кореквізити: Виконання та захист магістерської кваліфікаційної роботи
Короткий зміст навчальної програми: Дисципліна необхідна для отримання загальних та фахових компетентностей в напрямі оптимізаційних методів, алгоритмів в інженерії програмного забезпечення. Вивчаються алгоритми розв’язування важковирішуваних задач дискретної оптимізації: пожадливі алгоритми, гілок та границь, найближчого сусіда, моделювання відпалу, забороненого пошуку, еволюційні, нейромережеві, колективної поведінки, імунні, меметичні, гібридні, поведінки живих організмів, що використовуються на етапах інженерії вимог до програмного продукту, проектування програмних систем, розроблення коду, тестування, верифікації, атестації та супроводу ПЗ.
Опис: Фундаментальні поняття і визначення основ оптимізаційних методів. Критерії оптимізації. Оптимізаційні методи організації обчислювальних процесів при розв’язувані задач в інженерії ПЗ. Стан та сучасні інноваційні тренди в розробленні та тестуванні ПЗ. Декомпозиція, агрегатування та макромоделювання. Багаторівнева декомпозиція. Формулювання поліноміальних та неполіноміальних проблем. Поліноміальні задачі. Недетерміновані алгоритми. Неполіноміальні задачі. NP - повні проблеми. Шляхи подолання труднощів при розв’язувані неполіноміальних проблем високої розмірності: багаторівнева декомпозиція, ієрархічна кластеризація. Методи та алгоритми лінійного, нелінійного програмування та дискретної оптимізації: пожадливі алгоритми, гілок та границь, найближчого сусіда, моделювання відпалу, еволюційні, нейромережеві, імунні, поведінки живих організмів, в тому числі колективної та індивідуальної, меметичні, гібридні. Застосування методів для оцінки вартості розроблення програмних продуктів (СОСОМО1, СОСОМО2, нейромережеві, нечіткої логіки, функціональних точок, поведінки живих організмів). Застосування оптимізаційних методів на етапах інженерії вимог до програмного продукту, проектування програмних систем та розроблення програмного коду, верифікації, атестації, тестування та супроводу програмного забезпечення.
Методи та критерії оцінювання: 1. Опрацювання наукових статей та їх презентація. 2. Участь в обговоренні матеріалів лекцій та статей. 4. Захист лабораторних робіт. 5. Екзаменаційний контроль (письмова компонента, усна компонента).
Критерії оцінювання результатів навчання: Поточний контроль: 50% (виступ з презентацією – 15%, лабораторні роботи – 30% (5 лабораторних робіт по 6% кожна), участь в дискусіях на заняттях 5%) Екзаменаційний контроль: 50% (письмова компонента 40%, усна компонента 10%)
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Harman M., Mansouri, S.A., Zhang, Y. Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys 45(1), 11, 2012, pp.11:1-61. 2. Harman M. The Current State and Future of Search Based Software Engineering. FOSE '07 2007 Future of Software Engineering. Pp. 342-357. IEEE Computer Society Washington, DC, doi>10.1109/FOSE.2007.29. www0.cs.ucl.ac.uk/staff/mharman/icse07.ps. 3. Hifza Afaq, and Sanjay Saini. Swarm Intelligence based Soft Computing Techniques for the Solutions to Multiobjective Optimization Problems. IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 3, No. 2, May 2011. www.IJCSI.org 498 . 4. Mark Harman and Afshin Mansouri. Search Based Software Engineering: Introduction to the Special Issue of the IEEE Transactions on Software Engineering. IEEE transactions on software engineering, vol. 36, no. 6, november/december 2010. 5. Mark Harman. 2013. Software engineering: an ideal set of challenges for evolutionary computation. In Proceedings of the 15th annual conference companion on Genetic and evolutionary computation (GECCO '13 Companion), Christian Blum (Ed.). ACM, New York, NY, USA, 1759-1760. DOI: https://doi.org/10.1145/2464576.2480770. 6. McMinn. Search-Based Software Testing Past, Present and Future. 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops. 7. Changhai Nie, Huayao Wu, Yalan Liang, Hareton Leung, Fei-Ching Kuo, Zheng Li, "Search Based Combinatorial Testing", Software Engineering Conference (APSEC) 2012 19th Asia-Pacific, vol. 1, pp. 778-783, 2012. View Article Full Text: PDF (205KB) Google Scholar. 8. 2. Bogdan Marculescu, Robert Feldt, Richard Torkar, "Practitioner-Oriented Visualization in an Interactive Search-Based Software Test Creation Tool", Software Engineering Conference (APSEC) 2013 20th Asia-Pacific, vol. 2, pp. 87-92, 2013. 9. Christian Blum and Andrea Roli. 2003. Metaheuristics in combinatorial optimization: Overview and conceptual comparison. ACM Comput. Surv. 35, 3 (September 2003), 268-308. DOI: https://doi.org/10.1145/937503.937505. 10. Edmund K. Burke and Graham Kendall. 2013. Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques (2nd ed.). Springer Publishing Company, Incorporated. 11. Bazylevych R., Bazylevych*** L., Wrzesien*** M. A set of nets planarization for electronic devices’ physical design automation // Комп’ютерні науки та інформа-ційні технології : матеріали XV Міжнародної науково-технічної конференції CSIT-2020 (Збараж, 23–26 вересня 2020 р.). – 2020. – C. 192–195. 0,18 ум.д.ар. (За іншою тематикою) (SciVerse SCOPUS). 12. Bazylevych R., Czarnul*** P., Franko** A. Unit test generation in a cluster using parallel computations and contro flow graph analysis // Комп’ютерні науки та інфо-рмаційні технології : матеріали XV Міжнародної науково-технічної конферен-ції CSIT-2020 (Збараж, 23–26 вересня 2020 р.). – 2020. – C. 407–410. 0,4 ум.д.ар. [н.к. – Базилевич Р.П.] (SciVerse SCOPUS).
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).