Download presentation
Published byDarius Ashwill Modified over 9 years ago
1
Domain Engineering Silvio Romero de Lemos Meira
Eduardo Santana de Almeida
2
Based on Generative Programming: Methods, Tools, and Applications
by Krzysztof Czarnecki, Ulrich Eisenecker
3
Agenda Domain Engineering Key Concepts Features and Feature Models
Components Steps Key Concepts Features and Feature Models The Importance Example Commonality and Variability
4
What is Domain Engineering?
Domain Engineering (DE) is the activity of collecting, organizing, and storing past experience in building systems or parts of systems in a particular domain in the form of reusable assets, as well as providing an adequate means for reusing these assets when building (i.e., retrieval, qualification, dissemination, adaptation, assembly, and so on) new systems. Steps: Domain Analysis Domain Design Domain Implementation
5
Software Development based on DE
Domain Engineering Domain knowledge System Family Architecture Domain Model Domain Analysis Domain Design Domain Implem. Domain-specific languages Components Generators New Requirements Custom Design Custom Development New Requirements Customer Needs Requirements Analysis Product Configuration Integration and Test Features Product Configuration Product Application Engineering
6
Domain Engineering’s Components
Domain Engineering Process Component Main Purpose Domain Analysis Domain scooping and defining a set of reusable, configurable requirements for the systems in the domain Domain Design Developing a common architecture for the system in the domain and devising a production plan Domain Implementation Implementing the reusable assets, for example, reusable components, domain-specific languages, generators, a reuse infrastructure, and a production plan
7
Domain Analysis Purpose: Sources of domain information:
Select and define the domain of focus Collect the relevant domain information and integrate it into a coherent domain model Sources of domain information: Existing systems, domain experts, textbooks, experiments.....
8
Domain Model A domain model is an explicit representation of the common and the variable properties of the system in a domain, the semantics of the properties and domain concepts, and the dependencies between the variable properties Domain model’s components: Domain Definition Defines: the scope of a domain; existing systems; rationale for including or excluding a given system. Domain Lexicon Domain vocabulary Concept models Concept’s descriptions (object diagrams, interaction, state….) Feature models
9
Domain Design and Domain Implementation
Purpose: To develop an architecture for the family of systems in the domain and to devise a production plan Input – Application Engineering
10
Concepts Domain Infinite Domain as the “real world”
An area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area Domain as a set of systems knowledge “real world” + How to build software systems Domain: An area of knowledge Scoped to maximize the satisfaction of the requirements of its stakeholders Includes a set of concepts and terminology understood by practitioners in that area Includes the knowledge of how to build software systems in that area
11
Domain Scope and Scoping
Horizontal scope How many different systems are in the domain? Vertical scope Which parts of these systems are in the domain? Encapsulated x Diffused domains
12
Relationships between domains
A is contained in B A uses B A is analogous to B
13
Features and Feature Model
An end-user-visible characteristic of a system A distinguishable characteristic of a concept that is relevant to some stakeholder of the concept Elements: Feature diagram Feature definitions Composition rules Rationale for features
14
Example Car Transmission Horsepower Air Conditioning Automatic Manual
Optional Feature Mandatory Features Transmission Horsepower Air Conditioning Composition rule: “Air Conditioning” requires “horsepower” >100 Alternative Features Automatic Manual Rationale “Manual” more Fuel efficient
15
Feature Modeling: The importance
Reusable software Variability Key technique To Identity and capture variability To avoid Relevant features and variations points are not included in the reusable software Many features and variations points are included but never used {complexity, costs}
16
Feature Models Represents the common and the variable features of concept instances and the Dependencies between the variable features Elements Feature Diagram Semantic descriptions of each features Client programs Exemplar systems Constraints Priorities
17
Feature Diagrams Mandatory Features Optional Features
Alternative Features
18
Mandatory Features C f1 f2 f3 f4 Feature set {C, f1, f2, f3, f4}
19
Optional Features C f1 f2 f3
Feature set {C} , {C, f1}, {C, f1, f3}, {C, f2}, {C, f1, f2}, {C, f1, f3, f2}
20
Alternative Features C f1 f2 f3 f4 f5
Feature set {C, f1, f3} , {C, f1, f4}, {C, f1, f5}, {C, f2, f3}, {C, f2, f4}, {C, f2, f5}
21
Expressing Commonality and Variability
What features are common to all instances of the concept? {focus on concept} What features are common to all instances of the concept that have that particular feature? {focus on feature} Variability Use of optional or alternative features Variation points (nodes)
22
Questions ?
23
Next class: Cap 02.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.