190 likes | 318 Views
Multi-Language Development of Embedded Systems. Fraunhofer IESE. Dr. Thomas Kuhn Thomas.Kuhn@iese.fraunhofer.de Tel.: 0049 631-6800 2177. Outline. Motivation Multi-language development with CompoSE CompoSE language components CompoSE Infrastructure and Runtime framework Conclusion.
E N D
Multi-Language Development of Embedded Systems Fraunhofer IESE Dr. Thomas Kuhn Thomas.Kuhn@iese.fraunhofer.deTel.: 0049 631-6800 2177
Outline • Motivation • Multi-language development with CompoSE • CompoSE language components • CompoSE Infrastructure and Runtime framework • Conclusion
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 Interface Behavior Safety
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
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
Motivation – multi language design Components defined through mixture • Domain specific languages • Proven off the shelf languages Challenges • Language integration • Consistency • Tool integration • Runtime environments
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
Multi-language development with CompoSE • CompoSE host language • Components • Properties • Views • Types • Transformations • Checks
Multi-language development with CompoSE • Component • Defines an entity of the system • Defined by properties • Component name • Component substructure • Interface • Domain specific properties • Behavior
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 [Simulink realization] [Editor]
Multi-language development with CompoSE • Types • Define property contents • Transformations • Data exchange between views • Synchronization between views • Uni-/Bidirectional
Multi-language development with CompoSE • Checks • Operate on • Basic properties • White-box models • Ensure • Constraints • Consistency ? ?
CompoSE language components • CompoSE language components • Language level • Modeling languages and views • Infrastructure • Editors & Generators • Simulators / Analysis tools • Runtime • Support libraries Runtime Runtime
CompoSE language components Language Infrastructure Runtime
CompoSE infrastructure and runtime framework • Infrastructure and runtime framework • Integrates tool chains • Editors • Code generators • Runtime support • Support libraries • Schedulers • Runtime models Runtime Runtime
CompoSE Infrastructure and Runtime framework • Infrastructure • Editors provide common interface • Editor proxies • Basic interface • Open model • Report changed model • Simplistic implementation [Editor]
CompoSE Infrastructure and Runtime framework • Instance of generator metaclass • Interface to Simulink code generator • Adapter code implements runtime interface
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