Inteligência Artificial Aplicada a Ambientes de Engenharia de Software: Uma Visão Geral