© Fraunhofer IESE
Fraunhofer IESE
Multi-Language Development of Embedded Systems
Dr. Thomas Kuhn
[email protected].: 0049 631-6800 2177
© Fraunhofer IESE
Outline
Motivation
Multi-language development with CompoSE
CompoSE language components
CompoSE Infrastructure and Runtime framework
Conclusion
© Fraunhofer IESE
Motivation – multi language design
Complex systems consist of multiple components
Components are defined through views
Interface, Behavior, Safety requirements
Specification / realization
Views represent concerns of Roles
Architect
Domain expert
Safety engineer
InterfaceBehavior
Safety
© Fraunhofer IESE
Motivation – multi language design
Each viewpoint/role has its own concepts
Fault trees
UML
Data flow
Languages express role-specific concepts
Generic modeling languages
(Domain) specific languages
Properties store view-specific data & models
Interface
Behavior
Safety
© Fraunhofer IESE
Motivation – multi language design
Domain specific languages / generic languages
Domain specific languages
Tailored, Intuitive
Generic languages
Complex, not well focused
Holistic component definitions require multiple modeling languages
Interface
Behavior
Safety
© Fraunhofer IESE
Motivation – multi language design
Components defined through mixture
Domain specific languages
Proven off the shelf languages
Challenges
Language integration
Consistency
Tool integration
Runtime environments
© Fraunhofer IESE
Multi-language development with CompoSE
CompoSE supports multi language development
Host language
Predefined views
Language components
Host language
Components, Properties
Defines components through views
Language components
Integrate new languages, views, tool chains, and runtime support
© Fraunhofer IESE
Multi-language development with CompoSE
CompoSE host language
Components
Properties
Views
Types
Transformations
Checks
© Fraunhofer IESE
Multi-language development with CompoSE
Component
Defines an entity of the system
Defined by properties
Component name
Component substructure
Interface
Domain specific properties
Behavior
© Fraunhofer IESE
Multi-language development with CompoSE
Component views
Represent one viewpoint
Define data structures for view specific data
Simple properties
Black box models (unknown / native structure)
White box models (with meta models)
Integrate tool chains for manipulating data
Industrial strength tool chains
Domain specific editors
[Editor]
[Simulink realization]
© Fraunhofer IESE
Multi-language development with CompoSE
Types
Define property contents
Transformations
Data exchange between views
Synchronization between views
Uni-/Bidirectional
© Fraunhofer IESE
Multi-language development with CompoSE
Checks
Operate on
Basic properties
White-box models
Ensure
Constraints
Consistency
?
?
© Fraunhofer IESE
CompoSE language components
CompoSE language components
Language level Modeling languages and views
Infrastructure Editors & Generators Simulators / Analysis tools
Runtime Support libraries
Runtime
Runtime
© Fraunhofer IESE
CompoSE language components
Language Infrastructure Runtime
© Fraunhofer IESE
CompoSE infrastructure and runtime framework
Infrastructure and runtime framework
Integrates tool chains
Editors
Code generators
Runtime support
Support libraries
Schedulers
Runtime models
Runtime
Runtime
© Fraunhofer IESE
CompoSE Infrastructure and Runtime framework
Infrastructure
Editors provide common interface
Editor proxies
Basic interface
Open model
Report changed model
Simplistic implementation
[Editor]
© Fraunhofer IESE
CompoSE Infrastructure and Runtime framework
• Instance of generator metaclass
• Interface to Simulink code generator
• Adapter code implements runtime interface
© Fraunhofer IESE
Conclusion
CompoSE Component-based light-weight language coupling
Host language defines components Language components integrate modeling languages Language, infrastructure, runtime
Concepts Components with properties Black box / white box models Synchronization Checks
Rationale Rapid integration of tool chains and languages Rapid development of domain specific modeling approaches
Top Related