Title: Domain Specific Languages for Product Line Engineering
1Domain Specific Languages for Product Line
Engineering
- SE540 Software Architecture
- Mark Ardis, RIT
2Product Line Engineering
3Domain Engineering
Commonality Analysis
Analysis Document, Application Modeling Language
Tools, Process
4Eli Whitney
- Born December 8, 1765
- Raised on a farm in rural Massachusetts
- Attended Yale College 1789-1792
- What did Whitney do in 1793?
5The Cotton Gin
- Whitney invented the cotton gin in 1793
- Southern planters refused to pay royalties on
patent - The gin was easy to manufacture
- Southern legislatures conspired against Whitney
- Whitneys company was out of business by 1797
- What did Whitney do in 1798?
6Flintlock Components
7Whitneys Gamble on Automation
- Whitney offered to make 10,000 muskets in 2 years
- No other manufacturer had ever made more than a
few hundred muskets - Automation was needed to improve the efficiency
of the locksmiths - Whitney invented milling machines to produce
interchangeable parts - Demonstrated for Congress in 1802
8Configuration Control Technology
Domain Engineering Environment
Application Engineering Environment
9Configuration ControlDevelopment Environment
Application Data
RAD
Reusable Assets
Knowledge Base
C Code
Application Environment Interface
Application Specific Configuration Control
10RAD Tool
11Parameters of Variation
link
name
values
default
binding time
unit name
alphanumeric strings
none
specification
V1
inhibit state
V5
boolean
specification
false
V23, V24, V25
input request
ltunit name, unit number, action, ... gt
required
run
12Domain Specific Languages
- Validation and Realization algorithms
- Experimented with several different notations
- Translated into VFSM
- Reviewed by domain experts outside team
- Configuration specification
- Simple translation of parameters of variation
- Graphical tool facilitated marketing of DECC
- Composability enabled simulator development
13Realization Jargon
- " Remove Realization
- realization(DECCrm)
- sendclientremovebegin
- ...
- invokeelevatespare_mate
- ...
- invokedelevateself
- invokeremovechild
- chk(result,abortORfail)
- ...
- sendrmtceremove
- sendclientremoveend
- end
14Realization Flowcharts
15Realization Grammar
- ltrealizationgt "realization(" lttextgt ")"
ltstmtlistgt - "end"
- ltstmtlistgt "" ltstmtgt ... ltstmtgt ""
- ltstmtgt ltchkgt ltsetgt ltsendgt
ltinvokegt - ltskipexpsgt ltskipendgt lttextgt
- ltchkgt "chk(" lttextgt ")" ltstmtlistgt
- ltsetgt "set(" lttextgt ")" ltstmtlistgt
- ltsendgt "send" ltstmtlistgt
- ltinvokegt "invoke" ltstmtlistgt
- ltskipendgt "skipend" ltstmtlistgt
- ltskipexpsgt "skipexps" ltstmtlistgt
- lttextgt any free-form text (including
empty)
16Configuration Language
- unit.class(Unit1)
- unit.number.segments1
- max.units0
- inhibit.condno
- routine.maintno
- soft.switchno
- unit(Unit1 0)
- children
- child(Unit2 0)
- mate.spares
- spare(Unit1 1)
17Configuration Control Technology
Domain Engineering Environment
Application Engineering Environment