Search Based Software Maintenance: Methods and Tools