چكيده به لاتين
Maintenance of software systems and development of maintainable code has become very complex and costly due to frequently changes such as the introduction of new features, fixing code problems and increasing the size of real-world software projects as well as poor architectural designs. These can lead to bad software design quality, such as the distribution of classes within packages. Software remodularization is considered as a way to improve the internal structure of the code to improve many software features such as maintainability. To solve complexity, code and software will break down into packages or modules that contain application classes. In addition to packages, actions are taken to categorize and organize methods and functions within classes. Remodularization and automatic optimization of systems are one of the most widely used solutions to improve quality, improve maintenance, and increase developer productivity in systems, which is very important and challenging. Remodularization of code is a process by which changes are made to the internal structure of systems code without compromising its performance. Code remodularization is a technique used to divide a software system into independent sections called package, class, or methods, which are expected to be coherent and independent. While code remodularization improves the structure of software systems, there are many basic tasks, including reducing the number of code changes, maintaining the meaning of software design and behavior, and maintaining the consistency of changes made using previous changes applied to the system. Code remodularization from another aspect is one of the challenges in software engineering; because it is very important to create a proper, optimal, and understandable modularization. There are several ways for answering this challenge, among which we can consider, for example, search-based and metha-heuristic methods. There are many research-based solutions, including the methods proposed by genetic algorithms in this field, the best of which are multi-objective methods. In this report, we will discuss remodularization methods, and in particular, many-objective search-based methods, their objectives and operations.