ApiaryActive
Try: pause · settings · learn · wipe
← Community / Reading Room
DE
Systems engineering · 3 min read

Domain engineering

Domain engineering is a systematic approach to software development that focuses on reusing domain knowledge to produce new software systems. This concept is…

Domain engineering is a systematic approach to software development that focuses on reusing domain knowledge to produce new software systems. This concept is a key aspect of systematic software reuse and product line engineering. In this article, we will delve into the world of domain engineering, exploring its history, importance, and key facts.

What is Domain Engineering?

Domain engineering is the entire process of reusing domain knowledge in the production of new software systems. It involves identifying domains, bounding them, and discovering commonalities and variabilities among the systems in the domain. This information is captured in models that are used in the domain implementation phase to create artifacts such as reusable components, a domain-specific language, or application generators that can be used to build new systems in the domain.

Why Does Domain Engineering Matter?

Domain engineering is essential because most organizations work in only a few domains. They repeatedly build similar systems within a given domain with variations to meet different customer needs. By reusing portions of previous systems in the domain, significant savings may be achieved, making it a cost-effective approach to software development.

History of Domain Engineering

The concept of domain engineering is not new. It has been around for decades and has evolved over time. The term "domain engineering" is mentioned in the ISO26550:2015 standard, which defines product line engineering. However, the idea of reusing domain knowledge in software development has been around since the 1980s.

Key Facts About Domain Engineering

  • Domain engineering is a key concept in systematic software reuse and product line engineering.
  • A key idea in systematic software reuse is the domain. Organizations work in only a few domains.
  • Domain analysis is the process of identifying domains, bounding them, and discovering commonalities and variabilities among the systems in the domain.
  • Domain engineering is complemented by Application Engineering, which takes care of the life cycle of the individual products derived from the product line.

Examples of Domain Engineering in Practice

Domain engineering is used in various industries, including finance, healthcare, and transportation. For instance, a bank may develop a software system for managing customer accounts. Instead of building a new system from scratch for each customer, the bank can reuse portions of the existing system, adapting it to meet the specific needs of each customer.

Relation to Apiary Mission (Optional)

Since domain engineering is not directly related to bee conservation or self-governing AI agents, we will not explore this connection further. However, the principles of domain engineering can be applied to various domains, including those related to conservation and AI.

FAQ

What is the primary goal of domain engineering? Domain engineering aims to reuse domain knowledge in the production of new software systems, reducing the need for redundant development and increasing efficiency.

What is the difference between domain engineering and application engineering? Domain engineering focuses on creating reusable components and artifacts, while application engineering deals with the life cycle of individual products derived from the product line.

How does domain engineering benefit organizations? Domain engineering can help organizations save time and resources by reusing existing systems and adapting them to meet specific customer needs.

What is the role of domain analysis in domain engineering? Domain analysis is the process of identifying domains, bounding them, and discovering commonalities and variabilities among the systems in the domain, which is essential for effective domain engineering.

What is the ISO standard related to domain engineering? The ISO26550:2015 standard defines product line engineering, which includes domain engineering as a key concept.

Frequently asked
What is the primary goal of domain engineering?
Domain engineering aims to reuse domain knowledge in the production of new software systems, reducing the need for redundant development and increasing efficiency.
What is the difference between domain engineering and application engineering?
Domain engineering focuses on creating reusable components and artifacts, while application engineering deals with the life cycle of individual products derived from the product line.
How does domain engineering benefit organizations?
Domain engineering can help organizations save time and resources by reusing existing systems and adapting them to meet specific customer needs.
What is the role of domain analysis in domain engineering?
Domain analysis is the process of identifying domains, bounding them, and discovering commonalities and variabilities among the systems in the domain, which is essential for effective domain engineering.
What is the ISO standard related to domain engineering?
The ISO26550:2015 standard defines product line engineering, which includes domain engineering as a key concept.
References & sources
  1. Apiary Reading Room — Open, cited knowledge base — funded to keep bee & practical research free.
From the Apiary Reading Room. Opinion & editorial — not financial advice. We don't overclaim.
More from the Reading Room