Investigating soft computing in case-based reasoning for software cost estimation