Skip to Main Content
Optimization of complex systems demands advanced methods that are implemented in specialized software. Multiple combinations of optimization methods, objective functions, and constraints further complicate the problem of developing this software, making it hard to create, maintain, and evolve. To overcome this problem, this paper presents a new development methodology based on ideas of aspect-oriented programming (AOP). This new methodology supports a clean separation of concerns, and keeps dependencies to a minimum. The optimization method is self-contained and completely independent from the rest of the system; for each optimization scenario, the solution binds the optimization with the concrete problem at run-time. This approach improves the ability to deal with several different objective functions and constraints, providing flexibility, maintainability, and usability to the development and evolution effort without degradation of the computational time.