TimeAware test suite prioritization
Proceedings of the 2006 international symposium on Software testing and analysis
The Current State and Future of Search Based Software Engineering
FOSE '07 2007 Future of Software Engineering
Pareto optimal search based refactoring at the design level
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Locating dependence structures using search-based slicing
Information and Software Technology
Combining Genetic Algorithms and Mutation Testing to Generate Test Sequences
IWANN '09 Proceedings of the 10th International Work-Conference on Artificial Neural Networks: Part I: Bio-Inspired Systems: Computational and Ambient Intelligence
Clustering based adaptive refactoring
WSEAS Transactions on Information Science and Applications
A baseline method for search-based software engineering
Proceedings of the 6th International Conference on Predictive Models in Software Engineering
Search based software engineering
ICCS'06 Proceedings of the 6th international conference on Computational Science - Volume Part IV
Search based software engineering: techniques, taxonomy, tutorial
Empirical Software Engineering and Verification
Survey: A survey on search-based software design
Computer Science Review
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Experimental assessment of software metrics using automated refactoring
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Program transformation is useful in a number of applications including program comprehension, reverse engineering and compiler optimization. In all these applications, transformation algorithms are constructed by hand for each different transformation goal. Loosely speaking, a transformation algorithm defines a sequence of transformation steps to apply to a given program. It is notoriously hard to find good transformation sequences automatically, and so much (costly) human intervention is required. This paper shows how search-based meta-heuristic algorithms can be used to automate, or partly automate the problem of finding good transformation sequences. In this case, the goal of transformation is to reduce program size, but the approach is sufficiently general that it can be used to optimize any source-code level metric. The search techniques used are random search (RS), hill climbing (HC) and genetic algorithms (GA). The paper reports the result of initial experiments on small synthetic program transformation problems. The results are encouraging. They indicate that the genetic algorithm performs significantly better than either hill climbing or random search.