An IDE (Integrated Development Environment) is an application that attempts to make the development process more fluid for the developer by integrating, or blurring the distinction among, tools that can perhaps best be thought of as implementing stages of the development process. See also Integrated_development_environment.
Contrast this with the all-but-lost UNIX tradition of breaking things down into small, simple(?), purpose-built programs that can then be glued together by anything from pipes to shell scripts to awk to perl to... The UNIX tool tradition worked because in UNIX just about anything can be treated as a file, although it took [Plan9] for this to really reach its logical conclusion. In today's world of object-oriented programming coupled with a strongly functional flavor, as epitomized by modern C++, e.g. [Boost], [Spirit], and [Loki], it's not clear that such a reductionistic approach is desirable. It's perhaps better to craft a flexible central repository for development artifacts (source code, intermediate representations, object code, debugging information, documentation, non-code assets such as images and sound...) and to provide multiple "views" for manipulating these objects in ways that recognize their interrelationships (editing source code invalidates object code and debugging information, for example).
An IDE is an attempt to build such a system. In effect, using an IDE represents a commitment to two things: a style of development – editing, building, debugging – supported by the IDE, and a delivery context – what you can deliver is dependent upon what the IDE can produce. It's not unreasonable to think of UnrealEd as an IDE for developing code and content for Unreal-Technology-based games.
IDEs related to the Unreal Engine: