Refactoring innebærer å forbedre kildekoden et program er basert på, uten å endre programmets oppførsel. Et eksempel er at hvis du endrer navn på en metode, skjer en automatisk endring på alle steder i koden der den metoden brukes. IntelliJ IDEA, Eclipse og NetBeans er tre eksempler på integrerte utviklingsmiljøer. Alle tre finnes i frie utgaver.