28.06.2013 Views

Domain-Specific Modeling Languages for Embedded System ...

Domain-Specific Modeling Languages for Embedded System ...

Domain-Specific Modeling Languages for Embedded System ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Domain</strong>-<strong>Specific</strong> <strong>Modeling</strong><br />

<strong>Languages</strong> <strong>for</strong> <strong>Embedded</strong><br />

<strong>System</strong> Development<br />

MeCoEs, Tampere, Oct 7 2012<br />

Juha-Pekka Tolvanen, Steven Kelly<br />

MetaCase


Background to metamodeling<br />

Contents<br />

Industry examples and experiences<br />

Generating code and beyond<br />

Summary


Metamodel and model: instance of


Language = concepts+rules+notation<br />

Rules<br />

Concepts Symbols<br />

2. Pick rules<br />

from templates<br />

1. Enter<br />

concepts &<br />

their properties<br />

Generators<br />

1 2 3 4<br />

3. Draw or<br />

import the<br />

symbols<br />

4. Specify<br />

generators


Example: Breakfast - a modeling tool <strong>for</strong> <strong>System</strong>C<br />

Easy to create virtual plat<strong>for</strong>m model<br />

Using QEMU <strong>for</strong> CPU models<br />

Easy to connect QEMU to <strong>System</strong>C models<br />

Easy to connect interrupt signals to CPU<br />

No need of deep knowledge about <strong>System</strong>C TLM2.0<br />

Abstraction is LT(Loosely Timed)<br />

Easy to create <strong>System</strong>C code <strong>for</strong> high-level synthesis<br />

Pin level interface between modules is generated automatically<br />

<strong>System</strong>C code <strong>for</strong> line buffer <strong>for</strong> image processing is generated<br />

Designers can concentrate coding <strong>for</strong> algorithm<br />

<strong>System</strong>C model <strong>for</strong> high-level synthesis can be used on a virtual plat<strong>for</strong>m<br />

No clock on a virtual plat<strong>for</strong>m<br />

Virtual plat<strong>for</strong>m uses the same <strong>System</strong>C code <strong>for</strong> a register I/F(address<br />

decoder) as high-level synthesis


Contact: Profound<br />

Yasutaka Tsukamoto<br />

tsukamoto@profound-dt.co.jp


Snapshot <strong>for</strong> 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<br />

"5-fold productivity increase when<br />

compared to standard development<br />

methods"<br />

"The quality of the generated code is<br />

clearly better, simply because the<br />

modeling language rules out errors"<br />

"An increase of at least 750% in<br />

productivity, and greatly improved<br />

quality in the code and development<br />

process"


Productivity increase measured<br />

Percent Increase<br />

1000 %<br />

900 %<br />

800 %<br />

700 %<br />

600 %<br />

500 %<br />

400 %<br />

300 %<br />

200 %<br />

100 %<br />

0 %<br />

500 %<br />

<strong>Embedded</strong> UI<br />

applications<br />

1000 %<br />

Mobile phone<br />

software<br />

750 %<br />

Phone switch<br />

features<br />

600 %<br />

Call<br />

processing<br />

services<br />

900 %<br />

Heart rate<br />

monitor<br />

Comparing to<br />

earlier practice<br />

(typically compared<br />

to coding)<br />

500 %<br />

J2EE web<br />

application<br />

600 %<br />

Home<br />

automation<br />

<strong>Domain</strong>s


Generation of non-software artifacts<br />

Single source, multiple targets:<br />

- Automated build automating compile and execution<br />

- Checking completeness and uni<strong>for</strong>mity<br />

- Simulation data<br />

- User guides, installation guidelines<br />

- Configuration<br />

- Metrics<br />

- Testing and analysis<br />

- Material usage<br />

- Documentation<br />

- Review reports<br />

Case of Fishing Farm automation system,<br />

Preschern, C., et al 2012


<strong>Modeling</strong> both SW and system<br />

Combining two or<br />

more languages via<br />

metamodeling<br />

Metamodel covers<br />

integration rules <strong>for</strong><br />

– Correctness<br />

– Consistency<br />

– Completeness


Hardware and software co-design<br />

Integrating various views with a common metamodel<br />

– e.g Y-model<br />

Main challenge<br />

is organizational<br />

– Changes<br />

status quo


Design space exploration<br />

Per<strong>for</strong>mance analysis, error analysis, fault tolerance etc.<br />

– Integrate with tools like ABSOLUT, SPIN, UPPAAL, etc.<br />

– Annotate results back to models


Automating testing<br />

<strong>Modeling</strong> test cases/test logic and generating test data


Time to develop<br />

languages & generators<br />

36 language concepts<br />

Assembler generator<br />

63 language concepts<br />

XML generator<br />

77 language concepts<br />

Python generator<br />

60 language concepts<br />

C, HTML, build script generators<br />

Java generator <strong>for</strong><br />

simulation<br />

143 language concepts<br />

J2EE generator<br />

Man days


USA:<br />

MetaCase<br />

5605 North MacArthur Blvd.<br />

11th Floor, Irving, Texas 75038<br />

Phone (972) 819-2039<br />

Fax (480) 247-5501<br />

Thank You!<br />

Questions?<br />

International:<br />

MetaCase<br />

Ylistönmäentie 31<br />

FI-40500 Jyväskylä, Finland<br />

Phone +358 14 641 000<br />

Fax +358 420 648 606


For details<br />

Kelly, S., Tolvanen, J.-P., <strong>Domain</strong>-<strong>Specific</strong> <strong>Modeling</strong>:<br />

Enabling Full Code Generation, Wiley (2008) http://dsmbook.com<br />

Kieburtz, R. et al., A Software Engineering Experiment in<br />

Software Component Generation, ICSE 1996<br />

Kärnä, J., et al. Evaluating the Use of <strong>Domain</strong>-<strong>Specific</strong> <strong>Modeling</strong> in Practice,<br />

9th DSM Workshop (2009)<br />

Mewes, K., <strong>Domain</strong>-specific Modelling of Railway Control <strong>System</strong>s with Integrated<br />

Verication and Validation, PhD thesis, University of Bremen (2009)<br />

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

Puolitaival, et al. Utilizing <strong>Domain</strong>-<strong>Specific</strong> <strong>Modeling</strong> <strong>for</strong> Software Testing, Proceedings<br />

of VALID, (2011)<br />

Preschern et al. <strong>Domain</strong> <strong>Specific</strong> Language Architecture <strong>for</strong> Automation <strong>System</strong>s: An<br />

Industrial Case Study, Procs of Graphical <strong>Modeling</strong> Language Development, DTU<br />

(2012)<br />

Safa, L., The Making Of User-Interface Designer, A Proprietary DSM Tool, Procs of 7th<br />

DSM Workshop (2007)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!