Domain engineering
From Wikipedia, the free encyclopedia
Domain Engineering, also called (product line engineering) is the entire process of reusing domain knowledge in the production of new software systems. It is a key concept in systematic software reuse.
A key idea in systematic software reuse is the domain, a software area that contains systems sharing commonalities. Most organizations work in only a few domains. They repeatedly build similar systems within a given domain with variations to meet different customer needs. Rather than building each new system variant from scratch, as is common practice today, significant gains are achievable by reusing portions of previous systems in the domain to build new ones.
The process of identifying domains, bounding them, and discovering commonalities and variabilities among the systems in the domain is called domain analysis. This information is captured in models that are used in the domain implementation phase to create artifacts such as reusable components, a domain-specific programming language, or application generators that can be used to build new systems in the domain.