Domain Engineering

Krzysztof Czarnecki

Krzysztof Czarnecki

DaimlerChrysler Research and Technology

Search for more papers by this author
First published: 15 January 2002
Citations: 5

Abstract

Domain engineering (DE) is the systematic process of collecting, organizing, and storing past experience in building systems in a particular domain. This experience is captured in the form of reusable assets (i.e., reusable work products), such as documents, patterns, reusable models, components, generators, and domain-specific languages. An additional goal of DE is to provide an infrastructure for reusing these assets (e.g., retrieval, qualification, dissemination, adaptation, and assembly) during application engineering, i.e., the process of building new systems.

By definition, DE focuses on system families rather than single systems. This focus sets it apart from the more traditional software development models, which are geared toward developing one-of-a-kind systems. As a result, DE is the approach of choice for developing product lines and system families, component libraries, frameworks, domain-specific languages, and generators.

Similar to the traditional single-system software engineering, DE also encompasses the three main process components of analysis, design, and implementation. In this context, however, they are referred to as domain analysis, domain design, and domain implementation. The qualifier “domain” emphasizes the multisystem scope of these activities. This article describes each of them. An example is given.

The full text of this article hosted at iucr.org is unavailable due to technical difficulties.