Search Metodologies in Software Engineering

Major: Software Engineering
Code of subject: 7.121.01.E.017
Credits: 6.00
Department: Software
Lecturer: Professor Roman Bazylevych
Semester: 2 семестр
Mode of study: денна
Мета вивчення дисципліни: At all stages of the life cycle of software engineering, there are needs to use optimization methods for its improvement. They take place in determining software design estimates, specifying requirements, analyzing use cases, designing, coding, testing, and maintaining software. The purpose of the study is the in-depth mastering by students of optimization methods for making optimal decisions, including methods of linear, non-linear programming, discrete optimization, metaheuristics, memetics, the behavior of living organisms for their application at all stages of software development and maintenance. The course highlights high-dimensional problems, algorithms for their decomposition, including algorithms and criteria for software clustering and modularization, for code optimization, memory cost minimization, "garbage" cleaning, testing, software structural analysis, and others.
Завдання: ІНТ. The ability to effectively solve specialized tasks and practical problems of an innovative nature during professional activities related to all aspects of software development from the initial stages of specification creation to system support after commissioning. ФКС2.3. Possession of in-depth knowledge and skills in effective organization of calculations in computer systems and software performance optimization methodologies.
Learning outcomes: РНС2.4. Be able to apply methods of linear and nonlinear programming, discrete optimization, metaheuristics, memetics, living creatures behavior and others during the entire software lifecycle.
Required prior and related subjects: Prerequisites: Research Methods and Tools in Software Engineering Corequisites: Master’s Thesis Preparation and Defence
Summary of the subject: The discipline is necessary for obtaining general and professional competences in the direction of optimization methods, algorithms in software engineering. Algorithms for solving hard-to-solve discrete optimization problems are studied: greedy, branch-and-bound, nearest-neighbor, annealing, forbidden search, evolutionary, neural network, collective behavior, immune, memetic, hybrid, living organism behavior, used at the engineering stages of requirements for software product, software system design, code development, testing, verification, attestation and software support.
Опис: Fundamentals of optimization methods. Optimization criteria. Optimization methods for organizing computing when solving problems of software engineering. The state-of-art and modern trends in software development and testing. Decomposition, aggregation and macromodelling. Multilevel decomposition. Polynomial and non-polynomial problem statement. Polynomial problems. Non-deterministic algorithms. Non-polynomial problems. NP-complete problems. Approaches to overcoming difficulties in solving high-dimensional non-polynomial problems: multilevel decomposition, hierarchical clustering. Methods and algorithms of linear and non-linear programming and discrete optimization: greedy algorithms, branch-and-bound, nearest neighbor, simulated annealing, evolutionary, neural network, immune, swarm intelligence, memetic, hybrid. Methods of assessing software development cost (COCOMO1, COCOMO2, neural network, fuzzy logic, functional point, swarm intelligence). Using optimization methods during the software requirement specification, software design, software development, software testing and software maintenance phases.
Assessment methods and criteria: 1. Processing scientific articles and their presentation. 2. Participation in the discussion of lecture materials and articles. 4. Protection of laboratory works. 5. Examination control (written component, oral component).
Критерії оцінювання результатів навчання: Current control: 50% (presentation – 15%, laboratory works – 30% (5 labs 6% each), active participation in discussions on classes 5%) Exam: 50% (written part 40%, spoken part 10%)
Recommended books: 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).