21
Domain Engineering Arie van Deursen May 2001

Domain Engineering

  • 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

Page 1: Domain Engineering

Domain Engineering

Arie van DeursenMay 2001

Page 2: Domain Engineering

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

Page 3: Domain Engineering

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

Page 4: Domain Engineering

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

Page 5: Domain Engineering

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 )

Page 6: Domain Engineering

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.

Page 7: Domain Engineering

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

Page 8: Domain Engineering

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.

Page 9: Domain Engineering

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

Page 10: Domain Engineering

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

Page 11: Domain Engineering

11

Car Feature Diagram

Car

Engine Pulls trailerTransmission

Manual Automatic Electric Gasoline

Car body

Page 12: Domain Engineering

12

Car Class Diagram

ElectricEngine GasolineEngine

ElectricCar[transmission]

GasolineCar[transmission]

ElectricGasolineCar[transmission]

Car[transmission]

CarBody

TrailerO..1

O..1

Page 13: Domain Engineering

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

Page 14: Domain Engineering

14

Imperative Lists

List

Ownership

ExternalReference

OwnedReference

Copy

MorphologyLengthCounter

Tracing

Monomorphic

Polymorphic

Page 15: Domain Engineering

15

Interest Rate Products

Product

Deposit

PrincipleAmount

StartDate

MaturityDate

Currency

DEM, USD, EUR, ...

InterestAmount

Swap

FixedDeposit

FloatingDeposit

Period Convention Rate

Simple, Dutch, 360, ...

Page 16: Domain Engineering

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

Page 17: Domain Engineering

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

Page 18: Domain Engineering

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

Page 19: Domain Engineering

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.

Page 20: Domain Engineering

20

Summary

Domain engineering

Product Line Economy of Scope Domain ODM Variability Commonality

Feature Diagrams Class Diagrams Generative

Programming Domain Specific

Languages

Page 21: Domain Engineering

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