Ensemble learning based software defect prediction