1. The development and evolution of domain specific knowledge and artifacts to support the development and evolution of systems in the domain. Domain engineering includes engineering of domain models, components, methods and tools and may also include asset management.2. The engineering process of analysing and modelling a domain, designing and modelling a generic solution architecture for a product line within that domain, implementing and using reusable components of that architecture and maintaining and evolving the domain, architecture and implementation models. 3. A reuse-based approach to defining the scope (domain definition), specifying the structure (domain architecture) and building the Assets (requirements, designs, software code, documentation) for a class of systems, subsystems or applications. Domain engineering can include domain definition, domain analysis, developing the domain architecture domain implementation.