Tools, almost always pure software, to help refactor (restructure) computer code, especially inheritance hierarchies. All such software automatically analyzes code. Some of it automatically refactors code. Some even automatically deletes duplicate code. Such tools are most useful for object-oriented code, and even more so for prototype-based code. The tools in this category are for use with Java, and mostly Java-based.