TutorialGPCE1
Generative Programming and Component Engineering
Model Driven Development and Generative Techniques for Embedded Systems
Bruce Trask, MDE Systems
Angel Roman, MDE Systems
Embedded Systems have many characteristics that make them a unique development target for today's
software. Typically these systems involved resource constrained environments, low level programming
concerns and artifacts, specialized hardware and peripherals against which the software just be
written and run, as well as challenges concerning monitoring, debugging, reprogramming, performance,
and configuration. Today's embedded systems are becoming even more complex and challenging due to
these systems becoming networked and distributed as well as software centric. This has given rise
to a new class of Embedded Systems called Distributed Real-time and Embedded (DRE) Systems. In
fact, some of these systems could be described by a list of modifiers including "embedded",
"real-time", "high performance", "distributed", "secure", "portable", "multithreaded",
"multiprocess", "heterogeneous" and "component based" each term introducing its own set of
complexities. Unfortunately the increased complexity of the embedded systems platform has outpaced
the ability and viability of the tools and languages used by developers to tackle these
complexities. Development tools and languages in the embedded domain have thus reached a complexity
ceiling
(1). Additionally, due to more demanding time to market expectations from customers and new
economic business models, organizations are finding it necessary to exploit families of systems that
can be tailored and synthesized quickly rather than develop one off embedded systems from scratch.
Fortunately, there has been a recent confluence of critical innovations in software technologies
that can be leveraged to solve these problems. Chief amongst these are Model Driven Development
(MDD), Domain Specific Languages (DSL) and Generative Programming (GP) techniques. The complexities
of today's embedded systems surrender to the effective application of these techniques. Moreover,
it is within such challenging embedded domains that these approaches truly shine. This tutorial
will cover how these new critical innovations can be used to tackle the myriad complexities of
today's embedded systems. It will include a real example using actual modeling tools, domain
specific languages, and generative facilities running on embedded hardware. More specifically, it
will cover:
* The basics and anatomy of Model Driven Development
* How to apply commonality and variability analysis, abstraction and refinement to complex software systems
* How to develop Domain Specific Languages (DSLs) including defining new languages, editors and generators
* How to tackle complexity and change by hiding commonalities and configuring variabilities across families of systems while maintaining and in many cases increasing performance and quality.
* Demonstration of these techniques running on the PXA270, ATmega128 and 8051 processors and microcontrollers.
Duration: Half-day
Level: Introductory/Intermediate
Required Knowledge:
Attendees should be familiar with the basics of Object-Orientation and with programming at different levels of abstraction.
Speaker Profiles
Bruce Trask is the CEO of MDE Systems and has been working on complex Distributed Real-Time Embedded systems for over 20 years specializing in Software Product Line (SPL) and Model Driven Development (MDD) as applied to these systems in the last 6 years.
Angel Roman is the Chief Softaware Architect of the MDE Systems SPL/MDD
software team and is an expert on the Eclipse Development environment and its application
frameworks. Both Mr. Trask and Mr. Roman have extensive experience fielding real-world MDD and
Generative Systems using various forms of domain specific languages.