Domain-driven design
Domain-driven design is a way of modelling and building software systems. The basic idea is that the model of the software should also be a model of the application domain. In domain-driven design the software models certain aspects of the problem. People will use certain terms, which have a very specific meaning. This meaning is linked to the problem domain in which it is used (called a context). In different contexts, the term may have a different meaning.