Domain-Specific Modeling Languages for Embedded System ...
Domain-Specific Modeling Languages for Embedded System ...
Domain-Specific Modeling Languages for Embedded System ...
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)