Explore chapters and articles related to this topic
The Value Stream—Design
Published in Peter Middleton, James Sutton, Lean Software Strategies, 2020
The ideas of domain engineering are quite simple and yet very powerful. A domain is a set of customer-space tasks and resources that are related to each other by some higher-level purpose. Domain engineering is the process for developing a system for a particular domain, based on the natural and recurring characteristics of the customer space of the anticipated system. Note that this definition of domain is different than that used by UML practitioners. They tend to look at domains as a producer-space concept for a design-time abstraction: “Domains organize class specifications . . . A domain is an independent subject matter area with an independent vocabulary . . . Domains organize things that exist only at design time—i.e. classes and types.”3 In any system, there will be some classes that relate primarily to the producer space. However, there are many advantages to relating as many classes to the customer space as possible, as we shall see now and over the next several chapters.
Software Reuse
Published in Leanna Rierson, Developing Safety-Critical Software, 2017
Recommendation 7: Implement a domain engineering process. A sound domain engineering process is essential to successful software reuse. A domain is “a group or family of related systems. All systems in that domain share a set of capabilities and/or data” [7]. Domain engineering is the process of creating assets through domain analysis, design, and implementation that can be managed and reused. The domain engineer suggests an architecture that meets the majority of the application needs and is suitable for future reuse. It is important to distinguish the concepts of domain engineering and reuse engineering. Domain engineering is developing for reuse; whereas reuse engineering is developing with reuse. First-rate domain engineering is critical to being able to reuse entire components or design portions of those components, and not just salvage code.
ISO Standards
Published in Boris Mutafelija, Harvey Stromberg, ® v1.2 and ISO Standards, 2008
Boris Mutafelija, Harvey Stromberg
The Domain Engineering process is used to capture and reuse architectures, models, concepts, and assets within the scope of particular domains. Using a domain engineering plan, the domain specialists identify the anticipated needs of stakeholders, construct models, and conduct domain reviews. Architectures and other assets are acquired or developed and are maintained.
AMPL: aspect multiple product lines
Published in International Journal of Computers and Applications, 2022
Amina Guendouz, Djamal Bennouar
Domain engineering encompasses the three main processes: domain analysis, domain design and domain implementation with the principal outputs being the identification of SPL members, the extraction of similarities and variability between them and core assets construction. A core asset is a reusable artefact or resource that is used in the production of more than one product in a SPL (including architecture, components, requirements specification …) [8]. Application engineering process aims to derive an SPL application by exploiting the SPL commonality and variability that had been established earlier in domain engineering [1]. As for product derivation [9], this refers to the process of building a product from the selection, composition and customization of the SPL core assets addressing a specific SPL product. During a particular application derivation, the predefined SPL variability will be bounded according to the applications’ specific needs.