Multi-Language Development of Embedded Systems

18
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn [email protected] Tel.: 0049 631-6800 2177

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 Presentation

Transcript of Multi-Language Development of Embedded Systems

Page 1: Multi-Language Development of Embedded Systems

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© Fraunhofer IESE

Multi-language development with CompoSE

CompoSE host language

Components

Properties

Views

Types

Transformations

Checks

Page 9: Multi-Language Development of Embedded Systems

© 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

© 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

© 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

© 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

© 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

© Fraunhofer IESE

CompoSE language components

Language Infrastructure Runtime

Page 15: Multi-Language Development of Embedded Systems

© 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

© 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

© 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

© 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