The implementation of solutions to the problems in the domain. It becomes a model for constructing applications and mapping requirements from the domain model to reusable components. A generic architecture provides a high-level generic design for a family of related applications as well as a set of components intended for any instance of that application. The generic design eliminates the need to develop a high-level design for each application within the domain. As a result, domain developers use these representations as specifications for reusable components.