Download presentation
Presentation is loading. Please wait.
Published byDominick Hursey Modified over 9 years ago
1
Domain Engineering Arie van Deursen May 2001
2
2 Software Product Line Group of products sharing a common, managed set of features to satisfy the needs of a selected market Examples: Telephone switches: 5ESS Mortgage / insurance portals Customer Relation Management On line banking SAP, Baan, PeopleSoft
3
3 Object-Oriented Application Framework Framework: Set of cooperating classes embodying an abstract design For solutions to a family of related problems Supporting reuse beyond the class level. Building an appliction consists of adding class specializations Inverse control
4
4 Product Line Savings Economies of scale Savings from using technology to produce a greater volume of a single output with the same or less inputs Economies of scope Savings from using technology to build a greater diversity of outputs with the same or less inputs
5
5 Domain / Application Engineering Domain engineering: Systematic approach to construct reusable assets in a given problem domain Application engineering: Use the assets to build specialized software systems in the given domain. ( Product / customer development )
6
6 What is a Domain? Domain as the “real world” Adopted in OO / AI community Domain as a set of systems: Systematic software reuse community Domain criteria Mature, stable, economically viable Use legacy systems to understand domain.
7
7 Domain Engineering Activity of collecting, organizing and storing past experience in building (parts of) systems in a particular domain in the form of reusable assets as well as providing means for resuing these assets (retrieve, adapt, assemble,...) when building new systems
8
8 ODM: Organization Domain Modeling 1. Plan Domain: Set objectives, analyze stakeholders Scope domain: selection criteria Define domain: boundary conditions, examples, counter examples, main features, relations to other domains.
9
9 ODM (2) 2. Model Domain Acquire domain information: experts, legacy systems, literature, prototyping,... Describe domain: lexicon of terms, commonality & variability: feature diagrams Refine domain: build overall domain, analyze trade offs, innovative feature combinations
10
10 ODM (3) 3. Engineer Asset Base Scope: correlate features and customers, prioritize, select. Architect: external and internal constraints, components, domain-specific languages, generators, framework,... Implement: OO, code generation,...
11
11 Car Feature Diagram Car Engine Pulls trailer Transmission Manual Automatic ElectricGasoline Car body
12
12 Car Class Diagram ElectricEngineGasolineEngine ElectricCar [transmission] GasolineCar [transmission] ElectricGasolineCar [transmission] Car[transmission] CarBody Trailer O..1
13
13 Feature Diagrams Node types: Mandatory / Optional Alternatives / Or-features Diagram generates instances Commonality: feature in all instances Variation point: optional, alternative, or. Find variation dependencies. No implementation bias Car Engine Pulls trailer Transmission Manual Automatic
14
14 Imperative Lists List Ownership External Reference Owned Reference Copy Morphology Length Counter Tracing Mono morphic Poly morphic
15
15 Interest Rate Products Product Deposit Principle Amount Start Date Maturity Date Currency DEM, USD, EUR,... Interest Amount Swap Fixed Deposit Floating Deposit PeriodConventionRate Simple, Dutch, 360,...
16
16 Finding Features Use feature starter sets Record similarities between instances Record differences between instances Organize features into hierarchies Analyze feature combinations Record additional feature information Identify more features than needed
17
17 Generative Programming A software engineering paradigm in which given a particular requirements specification a highly customized and optimized intermediate or end-product can be automatically manufactured on demand from elementary, reusable implementation components by means of configuration knowledge
18
18 Domain-Specific Languages Expressive over variable features Composition, defaults, dependencies, pragma’s, illegal combinations Common features built-in / in compiler. Expression DSL: Domain-specific computations Configuration DSL: Specify a concrete program family member
19
19 Further Reading ODM Guide Book Generative programming chapter 2 + 4, and examples in chs 12, 13, 14. From the Transform Wiki: Annotated Bibliography Little Languages: Little Maintenance? Draco transformation system and domain engineering methodology.
20
20 Summary Domain engineering Product Line Economy of Scope Domain ODM Variability Commonality Feature Diagrams Class Diagrams Generative Programming Domain Specific Languages
21
21 Project Tool support for feature diagrams Design language apply to simple examples analyze consequences of realistic examples Implement normalizations Generate pictures Suggest class diagram options
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.