Framework for Domain-Specific
Visual Languages
http://www.isis.vanderbilt.edu/oopsla2k1/
Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen
OOPSLA workshop on Domain-Specific Visual Languages
1
Domain
Idea
Solve problem in domain terms
Modelling in domain terms vs.
modelling your code
Map to code, implement
Map to code, implement
Assembler
Finished
Product
Code
Generate,
Add bodies
Map to UML
No map!
DSVL
Model
UML Model
Generate calls
to components
OOPSLA workshop on Domain-Specific Visual Languages
Components
2
Converging research areas
 Methods, CASE, metaCASE
– 50% use no method, 25% standard method, 25% customised
– Visual Programming Languages
 Domain-specific approaches
– Textual DSL, Visual DSVL
– Product family engineering
 Code generation
– Generative & template programming
– Models to code: mostly structural, behaviour from state charts
 Components
– Raise level of abstraction
– Reuse by reference, not copy and paste
OOPSLA workshop on Domain-Specific Visual Languages
3
Main benefits of DSVLs
 Fundamental productivity improvements (3-10 times)
– Shorter intervals: Fast
– Lower costs: Cheap
– Better quality: Good
 Faster change responsiveness
– Manage changes in domain instead of code
 Allows developers to design products with domain terms
– Apply familiar terminology
– Solve the RIGHT problems!
– Solve problems only ONCE!
 Leverage expertise inside the team
– Put the expert’s knowledge in a tool
– “Hide” domain complexity (DSVL includes domain rules)
OOPSLA workshop on Domain-Specific Visual Languages
4
DSL Case Study: USAF
 Development of message translation and validation
system (MTV)*
 Declarative domain-specific language
 + code generators and customisation of components
Compared DSL against component-based development:
 DSL is 3 times faster than code components
 DSL leads to fewer errors: about 50% less
 DSL gives “superior flexibility in handling a greater range
of specifications” than components
* Kieburtz et al., A Software Engineering Experiment in Software Component Generation, ICSE, 1996
OOPSLA workshop on Domain-Specific Visual Languages
5
DSVL Case Study: Lucent
 5ESS Phone Switch and several DS(V)Ls *
 Reported productivity improvements of about 3-10 times
– From several cases
– From several DSLs
– DSVLs out-performed DSLs
 Shorter intervals between product releases
 Improved consistency across product variants
– “DSL should be used always if more than 3 variants”
* D. Weiss et al, Software Product-Line Engineering, Addison-Wesley, 1999
OOPSLA workshop on Domain-Specific Visual Languages
6
DSVL Case Study: Nokia
 DSVL and related code generators for mobile phone*
 Order of magnitude productivity gains (10x)
– "A module that was expected to take 2 weeks... took 1 day from the
start of the design to the finished product"
 Focus on designs rather than code
– Domain-oriented method allows developers to concentrate on the
required functionality
 Training time was reduced significantly
– “Earlier it took 6 months for a new worker to become productive.
Now it takes 2 weeks”
* MetaCase, Nokia case study, 1999
OOPSLA workshop on Domain-Specific Visual Languages
7
How to implement a DSVL
Done a few times before!
Domain
Idea
Expert
(few)
Normal
(many)
Easy!
DSVL
metamodel
Code
generation
DSVL
Model
Generate calls
to components
OOPSLA workshop on Domain-Specific Visual Languages
Finished
Product
Component
library
Components
8
Steps for implementing a DSVL
1
Concepts
Rules
2
3
Symbols
OOPSLA workshop on Domain-Specific Visual Languages
Generators
4
9
1. Design domain concepts




Map modeling concepts accurately to domain concepts
Concentrate on semantics!
Add extensions for software production later
Reflect to output (e.g. generated code)
OOPSLA workshop on Domain-Specific Visual Languages
10
2. Define domain rules
 Define semantics and rules as they exist in the domain
 Examples of rule types:
– Bindings between concepts
– Layering abstractions
– Reusing rules
– etc.
OOPSLA workshop on Domain-Specific Visual Languages
11
3. Draw symbols (notation)
 Define symbols illustrating as well as possible the
corresponding domain concepts’ natural ”visualization”
– e.g end-users’ notation, customers’ notation
OOPSLA workshop on Domain-Specific Visual Languages
12
4. Implement generators
 Cost of developing generators defrayed over a few users
 Generate code – and more!
–
–
–
–
Component use
Code generation
Automated build
Documentation
–
–
–
–
Configuration data
Testing and analysis
Reports that make reports
Review
OOPSLA workshop on Domain-Specific Visual Languages
13
Apply in software production
 Develop applications using the DSVL infrastructure
 Continuously evolve your DSVL
– Domain & platforms evolve
OOPSLA workshop on Domain-Specific Visual Languages
14
Further information:
www.metacase.com/dsm.html
 Experience reports:
– Honeywell
– NASA
– Nokia
– Pecunet
– DuPont
– Lucent
– USAF
 Related events:
– OOPSLA’01: Workshop on
Domain-Specific Visual
Languages
– HCC’01: IEEE Symposium on
Human-Centric Computing
Languages and Environments
– ECOOP’00: Workshop on
Model Engineering
OOPSLA workshop on Domain-Specific Visual Languages
15
Thank you!
Questions or comments?
MetaCase Consulting
Ylistönmäentie 31
FIN - 40500 Jyväskylä, Finland
Phone +358 14 4451 400, Fax +358 14 4451 405
email: [email protected] http://www.metacase.com
OOPSLA workshop on Domain-Specific Visual Languages
16
Descargar

Framework for Domain-Specific Visual Languages