Workshop - DSM Forum
Download
Report
Transcript Workshop - DSM Forum
The 5th OOPSLA Workshop on
Domain-Specific Modeling
Group reports
17 October 2005
San Diego, CA
1
Working groups
Focus on a specific topic
Parallel groups
(experiences and cases group split into two smaller
groups)
1. DSM foundation
2.1 Experiences and cases
2.2 Experiences and cases
The goal of those groups is to
– Discuss current application concerns/questions?
– Report topics where different opinions exist
– Identify research topics
Groups present their results for discussion
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
2
Group 1
DSM Foundations Group
Group 1:
Peter van Emde Boas, Ben Denckla,
Jonathan Sprinkle
3
Thoughts:
Formal specifications are great, but
eventually, the tool/language must be reexpressed in natural language for general
consumption
– Both necessary, but publish the right kind to right
audience
– DSM has this advantage: presenting a “correct”
language at first look, but still requires user’s
manual as well as provability manual
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
4
Thoughts:
On provability
– Tool users and industry (e.g., airlines) have
confidence in compilers and do verification on
source code.
• When developing code generators, do we/they
verify the outputted source code, or the code
generator? Why/why not?
– How can we bring the same rigor and confidence to
DSM “compilers” which is enjoyed by, say, C++
compilers?
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
5
Thoughts:
On design choices
– That classic choice of being general or being
specific. Do we ignore complex domain concepts to
make our language easier, or have general-purpose
concepts which can create complex objects?
• E.g., feedback loops being/not being allowed in
block diagram editors
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
6
On interests and
resources
More, more, more semantics! Less, less, less syntax!
Create and dispense education plans and disperse
them!
Teach DSM from perspective of language history,
leveraging denotational/operational, compiler theory,
and all sort of existing body of work—try to reduce ad
hoc design nature
New domains to explore/refine
– Communicating processes
– Gaming (computer vs. human) from interface and
intelligence aspects
More experience/work on heterogeneous systems
– Gluing multiple DSMs together, with confidence in how
they will work
Are there control flows we are missing somewhere??
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
7
What would we like to
see in:
1 year from now
– A DSM textbook for graduate study (rigorous disciplinary
book)
– Experience papers on code generation projects that have
failed, and why that happened (lessens for the rest of us
mortals)
– A better common vocabulary exposed to the rest of the
world somehow
5 years from now
– Killer application that proves/shows off DSM as viable in
the large
– Lots of industrial Kool-Aid drinking
NOT want to see, or be seen
– Syntax battles
– Wheel™ 2.0
Just as round, and shiny as ever!
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
8
Conclusions
IEEE Software
CACM
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
0
3
9
Group 2.1
DSM experiences and cases
10
(Meta-)Modeling Tools
Semantics vs. abstract syntax vs. concrete syntax vs. rules
– Declarative is best!
• But requires most experience and hard work by meta-tool developer
– Didn’t discuss other necessary features: multi-user, nice editors, no bugs,
support…
“State of the art” (present today)
– GME
• Declarative for abstract syntax
• Code for concrete syntax
• OCL pseudo-code for rules
– MetaEdit+
• Declarative for abstract syntax & rules
• Symbol editor for concrete syntax
• Procedural non-programming language for checks
What are current research questions?
– Model(er) vs. metamodel(er)
• Best support if we accept the needs for each are somewhat different
– Version control for models
• Graphical diff
• Do we need fork and merge, or is that an artifact of text langs & CVS
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
11
Generators
“State of the art” (present today)
– CodeWorker
• Declarative specification of parsers
– Can insert imperative actions after
• Template-based programming DSL (parameterized functions,
variables)
– GME: non-domain-specific API to access models
• Hardcode generators by hand in C++ or Java
• Maybe make C++ program to allow CodeWorker to read
models?
– MetaEdit+
• Non-programming stack-based DSL for turning models into code
• Often made to be template-based, modularised by domain
concepts
Areas of interest
– Keep code generator in synch with metamodel changes
• Similar to keeping models in synch
• Currently not much, best is to cope with name changes
– Higher level of abstraction for generator in GME
– Debug generators, step through, know where output came from
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
12
Business Impacts
Some industry domains already made the leap
– Microprocessors & VHDL/Verilog
– ER (e.g. in ERWin) & SQL
– LabView
What do we need for others?
– Pain
• Complexity: bugs, long training
• Slowness: missed deadlines / revenue
– Used to graphical representations, not against them?
– Product lines
Are the tools sufficient for now?
– Certainly could learn more from each other
– But need someone to fund development
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
13
Conclusions
Let’s do something together before next year!
Tool makers:
– Talk to each other!
Academics:
– Read & understand about existing research! (even old stuff)
– Try out existing tools and approaches, and only then…
– Invent something new and daring!
Companies:
– Try out a tool to make a prototype / pilot project!
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
14
Group 2.2
DSM experiences and cases
Group members:
David Foti, Jürgen Jung, Arturo
Sanchez, Abhijit Sancdev, Steve
Dunham, Michael Cohen, Vikram
Bhanot, Angel Roman, Barry Kim,
Juha-Pekka Tolvanen
15
Impact and business case
9 out of 10 plans to create DSMs in coming 1-2 years
Why?
– Don’t want to do it again and again and…
– Want to hide implementation details from others
– Want to guide the use of frameworks and other
abstractions
(for early error detection, standardize code etc.)
– Have enough repetition
Need for handbook for DSM creation
We want to see more cases
Management must understand and give resources
– DSM needs to be refined and maintained
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
16
Generators and tooling
Generator development guidelines
–
–
–
–
Make code similar domain experts write it
Generate test cases
Trace code to requirements
Provide code coverage
Tool issues
–
–
–
–
Tools should minimize the cost of creating DSMs
Debugging the generated code (tracing from code to models)
Managing changes in the metamodel
• Topic, but not an issue?
What tools for creating and using DSMs are available?
The 5th OOPSLA workshop on Domain-Specific Modeling (DSM’05)
17