1 / 23

Domain Engineering

Domain Engineering. Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br. Based on. Generative Programming: Methods, Tools, and Applications by Krzysztof Czarnecki, Ulrich Eisenecker. Agenda. Domain Engineering Concept Components Steps

don
Download Presentation

Domain Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Domain Engineering Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br

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

  6. Domain Engineering’s Components

  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 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 • 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.

More Related