Title: Toward The Next [ Next [ Next
1Toward The Next Next Next Generation
ofMeta-Modeling Tools
- Eric Engstrom (eric.engstrom_at_honeywell.com)
- David Oglesby (david.oglesby_at_honeywell.com)
- Kirk Schloegel (kirk.schloegel_at_honeywell.com)
- Honeywell LaboratoriesHoneywell International,
Inc
2The Development Problem
- Current system development is high-risk
- Very complex
- Multiple domains
- Ambiguous requirements
- Subject to rapid change
- Building atop ever-more expansive APIs
- The middleware trend only complicates this
- Meta-programming promises the same
3Tools to the rescue
- Common Mantra
- Lets use a tool to do ___ for us.
- Build models of systems, fostering
- Higher-level descriptions
- Rapid understanding and evolution
- Separation of concerns
- Generation of code and documentation
- Caveat Fool Tool Fool
4Model-Based Development
5Model Based Development Options
- Two options
- Use a generic tool/language applicable for any
domain - e.g. UML, SDL, IDEF, etc
- OR
- Use an application or domain-specific tool
- Often limited domain
- Sometimes lacking a large user-base
- Yeilding ? NO COTS!
6Generic Tool Option
- A Development Solution
- Got Models? Sure!
- Often lack clear semantics
- Without clear semantics, cannot realize full
benefit of Model-Based Development - Impose our own semantics
- Effectively ad-hoc
- Often lacking much tool support
7Semantics Issue 2
- Anything in a model that does not directly
relate to code can be and will be
misinterpreted.
8Domain-Specific Option (aka DSVL)
- Mantra Becomes
- Lets build our own tool to do ____ for us.
- DSVLs are inherently Model-Based
- Well suited to our domain
- Clear semantics
- Address platform/API issues
- Auto-generate code
9The DSVL Development Problem
- Building DSVLs suffers from the same problems as
any development effort - Often complex
- Multiple domains (aka Aspects)
- Ambiguous requirements
- Subject to rapid change
- PLUS
- Reinvented infrastructure
- Lacking clear development methodology
10The DSVL Solution Meta-Models
- If DSVLs are so great, how about we come up with
a DSVL for DSVLs? - Capture the essense of a DSVL
- Provide infrastructure for strong modeling
semantics - Encourage a Model-Based view
- Support linkages to external tools
- Codify the generation of code/artifacts
11DSVL Meta-Modeling Perspective
- Meta-Models can be seen as as DSVL for DSVLs
- Examples of tools for this include
- DOME (Honeywell)
- GME (Vanderbilt University)
- MetaEdit (MetaCASE)
- All allow user to
- Specify logical boxes arrows diagrams
- Provide code/artifact generation support
12Meta-Modeling for DSVLs Issues
- Multi-Domain/Multi-Aspect Modeling
- COTS Tool Integration
- Complete Code / Artifact Generation
- Model Reuse
13Multi-Domain/-Aspect Modeling
- Complex systems involve more than one domain,
needing to - capture the cross-domain components of systems
- retain domain specific tooling support
- generate artifacts across domains / aspects
14Multi-Aspect Modeling Example
Archetypes Patterns
Thread Model
Software Model
Hardware Model
Resource Model
Event Model
Data Flow Model
Service / Contract Model
15Multi-Aspect Modeling Ideas
- Build larger domain meta-models
- Combine all meta-models into one Union Model
- Lose some domain-specificity
- Evolution of domain meta-models difficult
- Build Type-System view of meta-models
- HARD and potentially overly complicated
- Build layered, interacting meta-models
- Represent cross-cutting information
- Allow new aspects of whole System Meta-Model to
be added dynamically
16Meta-Modeling for DSVLs Issues
- Multi-Domain/Multi-Aspect Modeling
- COTS Tool Integration
- Complete Code / Artifact Generation
- Model Reuse
17COTS Tool Integration
- Companies have large investments in commercial
tools (e.g. Rose) - (licenses and training)
- Portfolio of work
- DSVLs need to leverage this investment to be
accepted - share information in both directions
- cooperative code generation
- allow parts of system to be specified in COTS
tools
18COTS Tool Integration Ideas
- Build a generic model repository
- All tools must store into that
- Use common interchange formats
- XML/XMI?
- Use APIs for peer to peer?
- CORBA? COM? SOAP?
- OMGs MDA?
19Meta-Modeling for DSVLs Issues
- Multi-Domain/Multi-Aspect Modeling
- COTS Tool Integration
- Complete Code / Artifact Generation
- Model Reuse
20Code / Artifact Generation
- Biggest hurdle to developing DSVLs
- Reuse
- Can generators (or parts of generators) be shared
or reused? - Automation
- e.g. code generator generators
- How to cope with COTS tools and multiple domain
systems? - Share responsibility with COTS
21Example Transformation Process
Meta-Model(s)
Artifact Template(s)
Type Inference
Flow Analysis
Template Selection
Template Interpretation
templates and outputs are also models
procedure Foo(Asome_type) is begin A1
B2 Lib.Invert(A,B) for I in 1..B loop
Lib.Prefrobulate(A,B) end loop end Foo
generated artifact
22Code / Artifact Generation Ideas
- Graph Rewriting
- Capture input and output patterns
- Search and completion issues
- Q Is this easy enough for acceptance?
- XML / XSLT
- Use XML Schemas as Meta Models
- XML ? XML via XSLT is transformation
- Code or documentation is just another output of
an XSLT transform - Q Is XSLT sufficient?
23Meta-Modeling for DSVLs Issues
- Multi-Domain/Multi-Aspect Modeling
- COTS Tool Integration
- Complete Code / Artifact Generation
- Model Reuse
24Model Reuse
- DSVLs move system design to models
- Just as we reuse code,we need to reuse
portions of models - Reuse within a domain
- Model library containing parts of models
- Reuse across domains
- Model library with hooks into different domains?
- Via model transformations?
25Archetypes Model-Based Patterns
Example Publish/Subscribe Pattern with
Watchdog as an Archetype
Application-Level QoS Parameters
sending object
Max. comm. error prob. ? Timeliness at recv
? Sustained rate ? Safety Impact ?
monitored comm. channel
receiving object
translate application QoS
- Model reuse
- Flexibility
- Extensible code generation
- Explicitly modeled structure
watchdog thread
notify
error-handling object
26Conclusions
- Meta-Models are like DSVL for DSVLs
- DSVLs then include generic support for generation
and integration - Meta-DSVL toolkits still suffer from
- Lack of interaction among DSVLs
- Poor integration with COTS tools
- Difficulty of creating code generators
- Limited of reuse of models and model elements
27Resources / References
- DOME
- http//www.htc.honeywell.com/dome
- GME
- http//www.isis.vanderbilt.edu/projects/gme
- MetaEdit
- http//www.metacase.com
- OOPSLA Domain Specific Visualization Workshop
(2002) - http//www.cis.uab.edu/info/OOPSLA-DSVL2
- Meta-Modeling Resources
- http//www.metamodel.com