Presentation is loading. Please wait.

Presentation is loading. Please wait.

Domain Engineering Silvio Romero de Lemos Meira Eduardo Santana de Almeida

Similar presentations


Presentation on theme: "Domain Engineering Silvio Romero de Lemos Meira Eduardo Santana de Almeida"— Presentation transcript:

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 –Concept –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 Application Engineering Domain Analysis Domain Design Domain Implem. Requirements Analysis Product Configuration Integration and Test Domain knowledge Domain Model System Family Architecture Customer Needs Features Product Configuration Product Domain-specific languages Components Generators New Requirements Custom Design Custom Development

6 Domain Engineering’s Components Domain Engineering Process Component Main Purpose Domain AnalysisDomain scooping and defining a set of reusable, configurable requirements for the systems in the domain Domain DesignDeveloping a common architecture for the system in the domain and devising a production plan Domain ImplementationImplementing the reusable assets, for example, reusable components, domain- specific languages, generators, a reuse infrastructure, and a production plan

7 Domain Analysis Purpose: –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 Feature: –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 Mandatory Features Optional Feature Transmission Horsepower Air Conditioning Composition rule: “Air Conditioning” requires “horsepower” >100 Automatic Manual Alternative Features 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 f4f4 f3f3 f2f2 f1f1 Feature set { C, f 1, f 2, f 3, f 4 }

19 Optional Features C f3f3 f2f2 f1f1 Feature set {C}, {C, f 1 }, {C, f 1, f 3 }, {C, f 2 }, {C, f 1, f 2 }, {C, f 1, f 3, f 2 }

20 Alternative Features C f1f1 Feature set {C, f 1, f 3 }, {C, f 1, f 4 }, {C, f 1, f 5 }, {C, f 2, f 3 }, {C, f 2, f 4 }, {C, f 2, f 5 } f2f2 f3f3 f4f4 f5f5

21 Expressing Commonality and Variability Commonality –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.


Download ppt "Domain Engineering Silvio Romero de Lemos Meira Eduardo Santana de Almeida"

Similar presentations


Ads by Google