A Software Framework for Metaheuristics