Upload
toby
View
21
Download
1
Embed Size (px)
DESCRIPTION
Domain Engineering. Arie van Deursen May 2001. Software Product Line. SAP, Baan, PeopleSoft. 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 - PowerPoint PPT Presentation
Citation preview
Domain Engineering
Arie van DeursenMay 2001
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
Object-OrientedApplication 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
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
Domain / ApplicationEngineering
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
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
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
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
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
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
Car Feature Diagram
Car
Engine Pulls trailerTransmission
Manual Automatic Electric Gasoline
Car body
12
Car Class Diagram
ElectricEngine GasolineEngine
ElectricCar[transmission]
GasolineCar[transmission]
ElectricGasolineCar[transmission]
Car[transmission]
CarBody
TrailerO..1
O..1
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
ManualAutomatic
14
Imperative Lists
List
Ownership
ExternalReference
OwnedReference
Copy
MorphologyLengthCounter
Tracing
Monomorphic
Polymorphic
15
Interest Rate Products
Product
Deposit
PrincipleAmount
StartDate
MaturityDate
Currency
DEM, USD, EUR, ...
InterestAmount
Swap
FixedDeposit
FloatingDeposit
Period Convention Rate
Simple, Dutch, 360, ...
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
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
Domain-SpecificLanguages
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
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
Summary
Domain engineering
Product Line Economy of Scope Domain ODM Variability Commonality
Feature Diagrams Class Diagrams Generative
Programming Domain Specific
Languages
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