An integrated development environment (IDE) is a software application that provides facilities to aid in software development. An IDE typically includes a source code editor, build automation tools, and a debugger. Some IDEs also contain a compiler and/or interpreter. The features included in an IDE can vary, but many modern IDEs contain tools like a class browser and object hierarchy diagram to aid in object-oriented development.