Domain-driven Design
The real challenge of complex software projects is not technical realization, but the adequate conversion of the business process itself and the demands of the professional user.
Domain-driven design establishes the field itself, the client's business and professional environment and its requirements, as the cornerstone of the project. Essentially this means that the development team understand the domain and can communicate in its contextual language, rather than IT-speak. Foundation and integral component of domain-driven design are thus the use of a common, field-specific language and site model.
- The domain model
The domain model describes the domain's elements, structures and processes, using object-oriented concepts. As the re-useable core of the new solution, the domain model presents the relevant business and professional relationships and processes according to their functional role. The domain model is iteratively structured, in other words refined and enlarged in a series of cyclical developments. Thus the model is able to better and more fully reflect the business and professional processes involved, providing a valuable knowledge basis.
- Domain-specific language
Domain-specific language is formal language used to describe the business and professional tasks and fields of responsibility within the domain. Independent of the programming language, its purpose is to express client requirements and the software functions that are designed to meet them in the user's own terminology. This enables a more intensive and efficient exchange between domain experts, users and developers.
- The most important advantages of domain-driven design
The most important advantages of domain-driven design are the demand-oriented presentation of business and professional logic (Domain model) within a user-oriented Common Language (domain-specific language). These result in faster analysis, design and development processes and, above all, in software solutions that are entirely appropriate to customer requirements. Such solutions give an adequate representation of the client's different activities, are flexible, adaptive, and open to further development.