Academia.eduAcademia.edu

SEARCH BASED SOFTWARE ENGINEERING

2020, Nickpress

Software engineers often face challenges with performing design and development of software systems especially on a large scale. In order to aid the engineer, software development activities have been formulated as optimization problems enabling the use of metaheuristic search methods. These search based software engineering methods have drawn interest to researchers over the years.

SEARCH BASED SOFTWARE ENGINEERING Introduction Software engineers often face challenges with performing design and development of software systems especially on a large scale. In order to aid the engineer, software development activities have been formulated as optimization problems enabling the use of metaheuristic search methods. These search based software engineering methods have drawn interest to researchers over the years. Haman et al. (2012) reiterated in their survey the attempts made to aid the software engineer in dealing with software development challenges by the application of search based software engineering (SBSE) approaches across a wide array of lifecycle activities. Search Based Software Engineering The term SBSE is understood to be coined by Harman and Jones in 2001 (although the term is traced back to early 1970s) to comprise the application of search and optimization techniques to automate software engineering activities (Harman et al. 2012). The idea of search based software engineering is formulated on search algorithms that seek to provide optimal or near optimal solutions to a given problem. This implies that the first step in adopting search based software engineering is reformulating the search engineering task as a search problem. This involves illustration of the problem such that the algorithm can produce and transform solutions. There is also a fitness function which is quantitative and encompasses discriminating the algorithm between poor and promising solutions. These days, search based software engineering covers all other phases of the software development process including requirement management, software design, software testing, maintenance topics among others (Ramirez et al. 2018). Most software engineers have the understanding that the more complex the search engineering problem to be solved, the more sophisticated the optimization approach to be adopted. As a result, early approaches adopted in the initial stages of search based software engineering had been increasingly improved to tackle multiple constraints and allow the simultaneous optimization of two or more objectives (Sayyad & Ammar, 2013). Harman et al. (2012) identified other challenges with search based software engineering, most of which they considered have been overlooked and/or emerging. Some of the challenges are perceived as potential interactive optimization problems. These kind of problems relate to possible fatigue and learning effect bias, although it needs to be studied thoroughly. The unending challenges with search based software engineering makes it an interesting area for further research work. Search Techniques In the field of AI, search techniques are usually categorized according to their capacity to find the optimal solution to a search problem and the ability to provide a set of possible solutions. Only exact approaches such as direct search of structures, dynamic and linear programming can guarantee optimality of final solutions. This is where heuristic approaches produce the concept of problem-specific knowledge and defining rules to select or discard solutions based on present state of the process. Metaheuristic approaches however, include algorithms that are iterative with results that vary from one execution to another as a result of their stochastic nature. According to Blum and Roli (2003), complex optimization problems are efficiently solved using metaheuristic algorithms which also provides some flexibility. Search techniques can either be algorithm type (referring to the resolution technique used to address the problem) or objective approach (specifying the number of objectives dealt with by the algorithm, independent of the number of objectives). With the algorithm type, specific values correspond to the techniques such as exact procedure, heuristic and metaheuristic procedure, and machine learning. The possible values of the objective approach are single, multiple, or many where a single objective could involve the usage of an aggregate fitness function (Ramirez, 2018). Conclusion Software engineers often encounter complex problems with software design and development and it becomes impractical if not impossible to find perfect solutions as these problems often make definition of analytical algorithms difficult. Just like any other engineering discipline, software engineering is usually concerned with near optimal solutions or those that fall within a specified acceptable tolerance. These factors precisely make robust metaheuristic search based optimization approaches or techniques applicable. Search Based Software Engineering has been applied to several areas including testing design, requirements, project management and refactoring. REFERENCES M. Harman, S. A. Mansouri, and Y. Zhang, (2012) “Search-based software engineering: Trends, techniques and applications,” ACM Computer Survey., vol. 45, no. 1, p. 11. Sayyad, A.S and Ammar, H. (2013) “Pareto-optimal search-based software engineering (POSBSE): A literature survey,” in Proc. 2nd Int. Workshop on Realizing Artificial Intelligence Synergies in Software Engineering, pp. 21–27. Krall, J., Menzies, T., & Davies, M. (2015). GALE: Geometric Active Learning for Search-Based Software Engineering. IEEE Transactions on Software Engineering, 41(10), 1001–1018. doi:10.1109/tse.2015.2432024 Ramirez, A., Romero, J. R., & Simons, C. (2018). A Systematic Review of Interaction in Search-Based Software Engineering. IEEE Transactions on Software Engineering, 1–1. doi:10.1109/tse.2018.2803055  C. Blum and A. Roli, (2003) “Metaheuristics in combinatorial optimization: Overview and conceptual comparison,” ACM Computer. Survey.,vol. 35, no. 3, pp. 268–308.