Domain-Specific Modeling Languages for Embedded System ...adt.cs.upb.de/mecoes/MeCoES2012/03.pdf ·...

Preview:

Citation preview

Domain-Specific Modeling Languages for Embedded

System Development

MeCoEs, Tampere, Oct 7 2012

Juha-Pekka Tolvanen, Steven Kelly MetaCase

Contents

Background to metamodeling

Industry examples and experiences

Generating code and beyond

Summary

Metamodel and model: instance of

Concepts Symbols

Generators Rules 1 2 3 4

1. Enter concepts &

their properties 3. Draw or import the symbols

2. Pick rules from templates

4. Specify generators

Language = concepts+rules+notation

Example: Breakfast - a modeling tool for SystemC

Easy to create virtual platform model

Using QEMU for CPU models

Easy to connect QEMU to SystemC models

Easy to connect interrupt signals to CPU

No need of deep knowledge about SystemC TLM2.0

Abstraction is LT(Loosely Timed)

Easy to create SystemC code for high-level synthesis

Pin level interface between modules is generated automatically

SystemC code for line buffer for image processing is generated

Designers can concentrate coding for algorithm

SystemC model for high-level synthesis can be used on a virtual platform

No clock on a virtual platform

Virtual platform uses the same SystemC code for a register I/F(address

decoder) as high-level synthesis

Contact: Profound Yasutaka Tsukamoto

tsukamoto@profound-dt.co.jp

Snapshot for an image processing hardware

Sports computer applications

Railway track control system

RTOS configuration

PLC heating application

Automotive infotainment system

Multi-view mobile app development

Smartphone applications

Mobile point-of-sale system

Document engineering

Call processing

Service creation environment

Test vector generation & verification

Printer HW&SW co-development

Language(s) + Code Generator

Experiences from practice

"5-fold productivity increase when compared to standard development methods"

"The quality of the generated code is clearly better, simply because the modeling language rules out errors"

"An increase of at least 750% in productivity, and greatly improved quality in the code and development process"

500 %

1000 %

750 %

600 %

900 %

500 %

600 %

0 %

100 %

200 %

300 %

400 %

500 %

600 %

700 %

800 %

900 %

1000 %

Embedded UI

applications

Mobile phone

software

Phone switch

features

Call

processing

services

Heart rate

monitor

J2EE web

application

Home

automation

Domains

Percent Increase

Productivity increase measured

Comparing to earlier practice

(typically compared to coding)

Generation of non-software artifacts

Single source, multiple targets:

- Automated build automating compile and execution

- Checking completeness and uniformity

- Simulation data

- User guides, installation guidelines

- Configuration

- Metrics

- Testing and analysis

- Material usage

- Documentation

- Review reports

Case of Fishing Farm automation system,

Preschern, C., et al 2012

Modeling both SW and system

Combining two or more languages via metamodeling

Metamodel covers integration rules for

– Correctness

– Consistency

– Completeness

Hardware and software co-design

Integrating various views with a common metamodel

– e.g Y-model

Main challenge is organizational

– Changes status quo

Design space exploration

Performance analysis, error analysis, fault tolerance etc.

– Integrate with tools like ABSOLUT, SPIN, UPPAAL, etc.

– Annotate results back to models

Automating testing

Modeling test cases/test logic and generating test data

Time to develop languages & generators

63 language concepts

XML generator

60 language concepts

C, HTML, build script generators

36 language concepts

Assembler generator

77 language concepts

Python generator

Java generator for

simulation

143 language concepts

J2EE generator Man days

Thank You!

Questions?

International: MetaCase

Ylistönmäentie 31 FI-40500 Jyväskylä, Finland

Phone +358 14 641 000 Fax +358 420 648 606

USA: MetaCase

5605 North MacArthur Blvd. 11th Floor, Irving, Texas 75038

Phone (972) 819-2039 Fax (480) 247-5501

For details

Kelly, S., Tolvanen, J.-P., Domain-Specific Modeling: Enabling Full Code Generation, Wiley (2008) http://dsmbook.com

Kieburtz, R. et al., A Software Engineering Experiment in Software Component Generation, ICSE 1996

Kärnä, J., et al. Evaluating the Use of Domain-Specific Modeling in Practice, 9th DSM Workshop (2009)

Mewes, K., Domain-specific Modelling of Railway Control Systems with Integrated Verication and Validation, PhD thesis, University of Bremen (2009)

Puolitaival, O.-P., Home Automation DSL case, Code Generation Conference (2011)

Puolitaival, et al. Utilizing Domain-Specific Modeling for Software Testing, Proceedings of VALID, (2011)

Preschern et al. Domain Specific Language Architecture for Automation Systems: An Industrial Case Study, Procs of Graphical Modeling Language Development, DTU (2012)

Safa, L., The Making Of User-Interface Designer, A Proprietary DSM Tool, Procs of 7th DSM Workshop (2007)

Recommended