Domain Driven Design is an approach to software design that focusses on the strengths of OO software development techniques to simulate the core of the problem at hand.

At its core it concentrates on building a simulation of the problem domain, minimizing technical influences, and attempting also to minimize misunderstandings between users of the software and the developers by establishing and using a common vocabulary (aka UbiquitousLanguage).

This approach has been in use by experienced programmers for many years, but has gained more prominence recently because of Eric Evans' excellent book by the same name.