Ви переглядаєте архівну версію офіційного сайту НУЛП (2005-2020р.р.). Актуальна версія: https://lpnu.ua

Optimization Methods and Algorithms in Software Engineering

Major: Software engineering
Code of Subject: 8.121.00.M.35
Credits: 4
Department: Software
Lecturer: Full professor, Dr.Sc, Ph.D. Roman Bazylevych
Semester: 4 семестр
Mode of Study: денна
Learning outcomes:
As a result of studying the discipline, the graduate student should be able to demonstrate the following learning outcomes:
• in-depth knowledge of basic concepts and definitions of optimization methods;
• the possibility of applying optimization methods at all stages of software engineering;
• ability to construct mathematical models for use of optimization methods in software engineering;
• ability to construct efficient algorithms, evaluate their computational complexity for software engineering;
• apply a mathematical apparatus for processing experimental data and evaluating software optimization results.

The study of the discipline provides for the formation and development of competencies for postgraduate students:
common:
1. The ability to present and discuss the results of research in English, both verbally and in writing, to be able to read and fully understand English-language scientific texts.
professional:
1. Ability to use professional-profile knowledge and practical skills to produce new ideas, solve complex software engineering problems.
2. The ability to use professional-profile knowledge and practical skills to optimize design, technological, management decisions in order to improve the quality of software systems.
Required prior and related subjects:
1. Computer Discrete Mathematics.
2. Algorithms and data structures.
3. Artificial Intelligence and Machine Learning Methods.
4. Software architecture and design.
Summary of the subject:
Fundamental concepts and definitions of the theory, methods and algorithms for optimization of complex systems. Analysis of optimization features of complex software systems. Features of the organization of computational processes for solving large-scale optimization problems. Decomposition, clustering, aggregation and macromodeling. Multilevel decomposition. Mathematical models used to optimize complex software systems. Combinatorial large-scale problems. Polynomial and nonpolynomial problems. Non-deterministic algorithms. Non-polynomial problems. NP -hard of problems. Ways to overcome difficulties in solving non-polynomial Large-scale problems in Software Engineering. Methods and algorithms for software engineering optimization: linear and nonlinear programming, clustering and modularization, greedy algorithms, branches and boundaries, nearest neighbor, annealing modeling, gradient, forbidden search, evolutionary, collective metric behavior. Application of optimization methods at the stage of software requirements engineering. Use of neural networks to evaluate the complexity and cost of software development. Classification and evaluation of the effectiveness of basic software testing methods. Application of optimization methods and algorithms for software testing. Their effectiveness. Application of optimization methods in the stages of software verification, certification and maintenance. Evaluation of the complexity of the verification, certification, testing and maintenance of the software stages. Justification of methods and algorithms for software optimization at all stages of design, implementation and maintenance.
Recommended Books:
1. Ganesh Ram Santhanam, Qualitative optimization in software engineering: A short survey. New trend and ideas. Journal of Systems and Software. Volume 111, January 2016, Pages 149–156.
2. Reformulating Software Engineering as a Search Problem. https://www.cs.drexel.edu/.../research/ieesw.pdf.
3. 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.
4. Harman M., Mansouri, S.A., Zhang, Y. Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys 45(1), 11 (2012).
5. Gunter Ruhe, Yuanyuan Zhang (eds.). Search-Based Software Engineering. Proc. 5th Intern Sympoium, SSBSE 2013, St. Petersburg, 2013.
6. Harman, M., Clark, J.A.: Metrics are fitness functions too. In: Proc. of the IEEE International Symposium on Software Metrics, pp. 58–69 (2004).
7. Book: Search-Based Software Engineering. Lecture Notes in Computer Science, Volume 8636. 6th International Symposium, SSBSE 2014, Fortaleza, Brazil, August 26-29, 2014. Proceedings.
8. Elif Kartal, Zeki Ozen, Sevinc Gulsecen. An artificial neural network approach to predict software project effort: one-class vs. binary classification. Smart Technology & Smart Management, Izmir, 2016, pp. 208 – 216.
9. Monica Chis. Evolutionary Computation and Optimization Algorithms in Software Engineering: Applications and Techniques. InformatIon scIence reference. Hershey • New York.
10. Qayum, F., Heckel, R. Local search-based refactoring as graph transformation. In: Proceedings of 1st International Symposium on Search Based Software Engineering, pp. 43–46 (2009).
11. Pablo Moscato and Carlos Cotta. A Modern Introduction to Memetic Algorithms. M. Gendreau, J.-Y. Potvin (eds.), Handbook of Metaheuristics, Chapter 6. 141,
12. International Series in Operations Research & Management Science 146, DOI 10.1007/978-1-4419-1665-5 6, c Springer Science+Business Media, LLC 2010.
13. Hu T.C. Combinatorial Algorithms.Taipei.1990.
14. Harman, M. The Relationship between search based software engineering and predictive modeling. In: Proc. of the International Conference on Predictive Models in Software Engineering, pp. 1–13 (2013).
15. Harman, M., Tratt, L. Pareto optimal search based refactoring at the design level. In: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2007), pp. 1106–1113 (2007).
16. O’Keeffe, M., Cinneide, M.O. Search-based Refactoring for Software Maintenance. J. of Systems and Software 81(4), 502–516.
17. Moha, N., Gueheneuc, Y.-G., Duchien, L., Meur, A.-F.L. DECOR: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36, 20–36 (2009).
18. Martin Fowler, Refactoring: Improving the Design of Existing Code (Addison-Wesley, 1999).
19. Mens, T., Tourwe, T. A Survey of Software Refactoring. IEEE Trans. Software Eng. 30(2), 126–139 (2004).
20. Filomena Ferrucci, Carmine Gravino, Rocco Oliveto, Federica Sarro Using Evolutionary Based Approaches to Estimate Software Development Effort. In: Monica Chis. Evolutionary Computation and Optimization Algorithms in Software Engineering: Applications and Techniques. Chapter 2. InformatIon scIence reference. Hershey • New York.
21. Zhang, D. Machine Learning and software engineering. In: Proc. of the International Conference on Tools with Artificial Intelligence, pp. 87–119 (2002).
22. Jensen, A., Cheng, B. On the use of genetic programming for automated refactoring and the introduction of design patterns. In: Proceedings of GECCO. ACM (July 2010).
23. Roberts, D.B. Practical Analysis for Refactoring. PhD thesis, Department of Computer Science, University of Illinois (1999).
24. R. Bazylevych, R. Burtnyk. Algorithms for software clustering and modularization. Computer science & information technologies” (CSIT’2015). 2015. pp. 30–33.
Assessment methods and criteria:
Current control:
individual work - 20,
individual homework - 20.
Examination control:
written component - 50,
oral component - 10.
Total - 100 points.