multi-language development of embedded systems
DESCRIPTION
Multi-Language Development of Embedded Systems. Fraunhofer IESE. Dr. Thomas Kuhn [email protected] Tel.: 0049 631-6800 2177. Outline. Motivation Multi-language development with CompoSE CompoSE language components CompoSE Infrastructure and Runtime framework Conclusion. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/1.jpg)
© Fraunhofer IESE
Fraunhofer IESE
Multi-Language Development of Embedded Systems
Dr. Thomas Kuhn
[email protected].: 0049 631-6800 2177
![Page 2: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/2.jpg)
© Fraunhofer IESE
Outline
Motivation
Multi-language development with CompoSE
CompoSE language components
CompoSE Infrastructure and Runtime framework
Conclusion
![Page 3: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/3.jpg)
© 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
![Page 4: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/4.jpg)
© 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
![Page 5: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/5.jpg)
© 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
![Page 6: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/6.jpg)
© 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
![Page 7: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/7.jpg)
© 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
![Page 8: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/8.jpg)
© Fraunhofer IESE
Multi-language development with CompoSE
CompoSE host language
Components
Properties
Views
Types
Transformations
Checks
![Page 9: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/9.jpg)
© 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
![Page 10: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/10.jpg)
© 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]
![Page 11: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/11.jpg)
© Fraunhofer IESE
Multi-language development with CompoSE
Types
Define property contents
Transformations
Data exchange between views
Synchronization between views
Uni-/Bidirectional
![Page 12: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/12.jpg)
© Fraunhofer IESE
Multi-language development with CompoSE
Checks
Operate on
Basic properties
White-box models
Ensure
Constraints
Consistency
?
?
![Page 13: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/13.jpg)
© 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
![Page 14: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/14.jpg)
© Fraunhofer IESE
CompoSE language components
Language Infrastructure Runtime
![Page 15: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/15.jpg)
© 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
![Page 16: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/16.jpg)
© Fraunhofer IESE
CompoSE Infrastructure and Runtime framework
Infrastructure
Editors provide common interface
Editor proxies
Basic interface
Open model
Report changed model
Simplistic implementation
[Editor]
![Page 17: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/17.jpg)
© Fraunhofer IESE
CompoSE Infrastructure and Runtime framework
• Instance of generator metaclass
• Interface to Simulink code generator
• Adapter code implements runtime interface
![Page 18: Multi-Language Development of Embedded Systems](https://reader030.vdocuments.site/reader030/viewer/2022032708/56812a52550346895d8d9f53/html5/thumbnails/18.jpg)
© 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