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. 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, significant savings may be achieved by reusing portions of previous systems in the domain to build new ones.