
|
Software Engineering
for Embedded Systems |
A
Friday Workshop at the DATE 2008 Conference
(W6)
March 14, 2008
Munich, Germany
|
|
For
downloading the presentations of the invited speakers, click on the
links in the schedule
(bulk download is not possible - some of the
links are external)
|
|
|
 |
|
 |
|
 |
 |
 |
 |
|
goals
The purpose of this workshop is to bring hardware and software
communities closer together in order to explore the current and future
challenges in application
development and integration in different embedded system domains. We
wish to
examine software engineering technologies for addressing those
challenges,
without neglecting the stringent constraints imposed by hardware.
organizers
Maja
D'Hondt, Rudy
Lauwereins, Diederik
Verkest
and Roel
Wuyts
IMEC
Belgium
audience
Anyone who is concerned with embedded
software development for the mobile, consumer, automotive, healthcare,
or any
other domain can attend. We welcome both industrial and
academic
people, with backgrounds in software and/or hardware.
description
New challenges arise in embedded
software development in addition to the traditional ones of power
efficiency,
memory usage and execution time. Productivity, and thus time to market,
become
serious issues due to the shift at the application level and new
developments at
the hardware level, for example:
- several interactive or dynamic applications, often from different
vendors, have to be mapped to multi-
or even many-core processor architectures
- distributed applications have to run on a number of devices such
as regular PCs, nomadic battery-operated
consumer devices, and/or programmable sensors
- device mobility and hardware failure, e.g. due to sub 32 nm
technology, make unreliability the rule rather
than the exception
In traditional software engineering the
application-level problems are far from new: numerous approaches deal
with
application integration, higher-level languages and tools improve
productivity,
tried-and-true software architectures exist for distributed
applications, and
so on. Nevertheless, the very nature of embedded systems imposes
additional
constraints on software engineering. One of the most stringent
constraints
continues to be resource efficiency, especially with respect to power
consumption. The central question of the workshop will be how we can
adapt and
transfer the knowledge in software engineering to address these issues
in
embedded systems.
workshop
schedule
Click on a title to go to the abstract and speaker's biography.
0830
|
Welcome
and Introduction
IMEC team
Session 1: System and
Application Integration
“Software development
evolution at Philips Medical Systems”
Jan
Willem van den Beukel, Manager Software Development
Philips
Medical, NL
download
presentation
“System Integration in the
Connected Consumer Domain”
Ben
Pronk, System Architect - Business Line Digital Television Systems
NXP
Semiconductors, NL
download presentation
“The Mobile
Fight: Software versus Power”
Kimmo
Kuusilinna, Principal Member of Research Staff
Nokia
Research Center, FI
download
presentation
Session 2: Software
Technology for Embedded Systems
"Building Complex Embedded Software
– Lessons Learned from Embedded Smalltalk and Java”
Brian
Barry, CEO
Bedarra
Research
Labs, CA
download
presentation
“Smart Environments: a
Programming Model to Make them Reality”
Harmke de Groot,
Program Manager
European Microsoft Innovation Center, DE
download
presentation
download
video
|
1200
|
Lunch
|
1300
|
Session
3: A View from the Hardware
“Liquid Metal: Blurring
the Boundary between Software and Hardware for Versatile
Parallel Computing”
Rodric
Rabbah, Researcher
IBM T. J. Watson
Research Center, US
download
presentation
"Seven Mistakes in
Embedded Software for Parallel Platforms (and how to avoid them)“
Pierre
Paulin, Director SoC Platform Automation
STMicroelectronics, CA
download
presentation
|
1400
|
Session 4: Panel
Discussion
with invited speakers
|
1500
|
Closing remarks
|
abstracts and biographies
Session 1: System and Application Integration
"Software
development evolution at Philips Healthcare"
Jan
Willem van den Beukel, Manager Software Development
Philips Medical, NL
abstract
In this presentation an overview is given of how software industry
trends of the last 20 years have affected software product development
at Philips Healthcare. These trends include object-orientation,
component-based development, product line engineering, open source
ways-of-working and model-based engineering. Also attention will be
given to the nature of differences between the various development
groups in the company related to the product technologies (hardware
and/or software) and processes they are used to work with.
bio
Jan Willem van den Beukel is currently manager Software Development
of the PMS Informatics Infrastructure unit within Philips Healthcare.
Before he joined Philips in 1998, he has worked for 14 years at the
software & consultancy firm Cap Gemini in the Netherlands. He
gained broad experience in the planning, modelling, development and
implementation of information systems in the areas of
technical/scientific computing, drawing office automation and product
data management. Industries he has worked for include aircraft
manufacturing, oil & gas exploration and production, public
transportation equipment manufacturing and bearing manufacturing.
He has received a Master of Science degree in Pure and Applied
Mathematics at the University of Leiden. He co-authored two books:
“Products of technical information systems (Dutch, 1995)” and “The
development of SCADA systems” (Dutch, 1997). He regularly gives
presentations on software development aspects on conferences and
seminars.
His topics of expertise and interest include information modelling,
software process modelling, product line engineering, engineering
technologies and social aspects of software engineering.
back to schedule
"System
Integration in the Connected Consumer Domain"
Ben Pronk, System Architect -
Business
Line Digital Television Systems
NXP Semiconductors, NL
abstract
The contemporary consumer market shows an ever increasing
convergence between applications and a plethora of digital device
interconnections. A modern connected TV is equipped with HDMI, USB,
ethernet
and wifi connections that allow it to connect to virtually all other
electronic
equipment in the home.Set Top Boxes, PC's mobile phones, MP3 players
and
security camera's have all become part of a complex heterogenous
network around
the television set. Furthermore software applications tend to migrate
to
multiple devices. A simple application like a MP3 player might be
available on
any of the mentioned devices except the camera.
This evolution has a significant
impact on the system integration of such connected devices. To serve
all
protocols and applications the embedded software in consumer devices
has grown
exponentially over at least 2 decades. Modern hybrid televsion sets
have
applications with more then 10-20 Mbyte of executable code. The
unability of
the semiconductor industry to keep up with this growing trend in
software size
has spawned an entire eco-system of independent software vendors and
other
parties that all contribute software to the final product integration.
At the
same time the system testing takes place in a network environment with
a nearly
infinite permutation of connected devices each with their own
interpretation of
standards.
This complexity all comes together
in the system integration phase. Recent history has shown that for
modern
products both the effort and througput time for this last development
phase may
become prohibitive. Especially design issues and mismatches in the area
of non
functional requirements like performance,stability and real time
behaviour tend
to surface only at a very late stage. Furthermore, the distributed and
multi-party development set-up makes it very difficult to analyse,
track and
solve problems. We can not claim that this complex problem has been
solved yet
as it is still topic of active research. This talk will focuss on a
multi-faceted approach to contain the problems identified above.
Assuming there
is no "simple" technical "only" solution we will describe
both an approach to manage the integration aspects of multiple vendor
software
components in a television project as well as a number of techniques
that seem
to show potential and results in reducing the technical coupling
between the
components.
bio
Ben Pronk (1959) studied physics at the Technical
University of Delft. After his graduation in 1984 he worked for 3 years
at the university of Leiden on research in the field of solid
-state physics. In 1987 he joined Philips Medical Systems in the
Magnetic
Resonance department. Since then he has been involved as lead architect
in the
development of the system and software architectures for several new
generations of medical diagnostic devices including conventional X-ray
and
Magnetic Resonance Imaging equipment.
The last years his work has been focused upon the creation
of architectures for families of products and the application of object
oriented and component technologies in product line architectures. In
this area
he was a member of the several European ITEA projects on product line
architectures and a contributor to the software product line
conferences as
well as several international workshops on this theme.
He moved to Philips semiconductors
now NXP semiconductors in 2002, where he was appointed as lead
architect
for the new generation of digital
television system products. Currently he is the system architect for
the
business line digital video systems.
Recently he has been focusing on
the system integration of large scale embedded systems in the consumer
space
and the integration of third party and
COTS software. He is a contributor to
international conferences on software (architecture) such as WICSA,
SPLC,
HOTCHIPS and OOPSLA and has published several articles in this field.
In his
various positions in system architecture he also acquired extensive
experience
with large scale, distributed and
multinational software development projects.
back to schedule
"The Mobile
Fight: Software versus Power"
Kimmo Kuusilinna, Principal Member
of Research Staff
Nokia Research Center, FI
abstract
Future high-end mobile devices
have requirement sets that make them look like contemporary desktop
computers.
This includes users developing and running their own code on the device
implying unpredictable usage scenarios. That is, however, not enough.
There are
applications that the PC is typically not required to handle like
navigation
and image capture.
For the high-end mobile
devices, there are two problems: software integration and power. If one
cannot
efficiently integrate legacy and third party software, the device is
likely to
be late to the market. If one does not curb the power consumption, the
battery
does not last and the device might actually burn the user.
The way
to aid software integration is to build layers upon layers of APIs,
each
abstracting some implementation detail or another. When something
changes at a
layer below, everything above that layer can still be left untouched.
On the
other hand, the time honored method for reducing power consumption is
to bypass
the APIs for the critical sections of the code to do some low-level
optimizations. This negates most of the insulation that the APIs would
have
provided against minute changes at the bottom of the architecture. The
circumvented APIs result in significant porting efforts and requests to
duplicate old hardware defects that were the basis of some obscure
optimization.
Although
there is no end in sight for this software vs. power battle, some
improvements
can be made without compromising either side. This talk looks into the
high-level characteristics of the code envisioned to run on a future
mobile
platform. Some hardware architecture developments are discussed, with
the
example of memory architecture, having the goal to facilitate software
integration. Furthermore, a principle of enabling additional run-time
hardware
optimizations without bypassing APIs, using metadata, is introduced.
bio
Kimmo Kuusilinna received his
Doctor of Technology degree in Information Technology from Tampere
University
of Technology, Finland in 2001. Currently he acts as a Principal Member
of
Research Staff at the Nokia Research Center,
Tampere. His
expertise includes memory architectures, ESL modeling, and energy
efficient
computing.
back to schedule
Session 2: Software Technology for Embedded Systems
"Building
Complex Embedded Software
– Lessons Learned from Embedded Smalltalk and Java"
Brian Barry, CEO
Bedarra Research Labs, CA
abstract
Twenty years ago, a typical platform for embedded
applications was a 10 MHz 16 bit microcontroller, and a typical program
was a
few thousand lines of carefully crafted assembler. Ten years
later, we had moved along to 66 MHz
or 100 MHz 32 bit microprocessors, with considerably more memory.
The software had grown in size and complexity
as well, probably to 100 thousand, or perhaps even 200 thousand, lines
of
C. However, the typical programmer was
still employing the same ad hoc tools and processes that he had used in
the
1980’s – after all, C was just a portable assembler, and so the same
approaches
would, with a great deal of effort and the occasional crisis, still
work. Today, a typical embedded application is
often a network of 32 or 64 bit processors running millions of lines of
C++ or
Java. But some things don’t change – in
most cases the same old software engineering tools and practices are
still in
use – only now, they do not work, having been overwhelmed by the size
and
complexity of the applications. Naïve
and hurried attempts to rectify this problem by “down sizing” without
modification software technology meant for desktop or server
applications usually
fall flat. These application types are different – embedded
systems are not
just smaller versions of desktops and servers – and the differences
turn out to
be important. So where should we look to
find scalable processes, technology and solutions for building today’s
embedded
software?
During that same twenty year
period alluded to above, the author and his colleagues were exploring a
small
but interesting side branch of embedded systems that focused on using
leading
edge virtual machine technology (mainly Smalltalk and Java) to build
both large
and small commercial embedded applications, including instrumentation,
radar,
automotive and consumer electronics. In
the course of that work we were led to investigate a number of issues
involving
component based development, configuration management, scaling VM
technology,
process structuring for complex applications, programming models and
tools. Given the growth in size and
complexity of current embedded systems these have now become mainstream
issues,
and so there may be some useful lessons that can be drawn from our
work. In this talk we will briefly provide an
overview and highlight a few of our discoveries and observations.
bio
Brian Barry is currently CEO of Bedarra Research Labs and
CTO of Open Health Tools. From 1991-2002 he served variously as Chief
Scientist, CEO, President and CTO at Object Technology International,
Inc.
Under his leadership OTI developed the Eclipse Platform, IBM VisualAge
for
Java, and IBM VisualAge MicroEdition for embedded systems. He has over
20 years of experience in the design and
implementation of component-based and object-oriented
systems. Dr. Barry has published a number of research papers and
articles on a wide variety of technical subjects, including simulation,
OO applications, systems integration, embedded systems and software
engineering, and is a frequent speaker on software
technology. He has served on the Program Committees for software
conferences such as OOPSLA,
ECOOP, AOSD and Agile Development, was a co-author of the
ANSI Smalltalk standard, and actively
participates in a research review boards and committees. He holds a
Ph.D. from
Queen’s University.
back to schedule
"Smart Environments: a Programming Model to
Make
them Reality"
Harmke de Groot, Program Manager
European Microsoft Innovation
Center,
DE
abstract
Smart environments, where information from few to hundreds
of sensors is used to attend to the needs of the end- users are a
wide-spread
concept in ambient intelligent research. The challenges at a hardware
level are
enormous: how to make sensors that are small, low power and low cost
enough,
what kind of network is suitable? But the challenges at a software and
system
level are equally large: if we have these sensors how do we make
efficient use
of them? And what is a sensor: a device
that can only measure temperature once a day is a sensor, but a
full-fledged
PDA with much more resources can be seen as a (virtual) sensor too, as
it gives
access to a wide variation of data that is regularly updated. Today we
have seen
proprietary solutions: usually one set of sensors is used with one or
more
proprietary applications on top of it. The problem is that there is no
infrastructure that supports a more general way of sensor programming,
enabling
re-use over multiple applications/services and multiple sensors with
very
different properties. In order for an application programmer to really
think of
sensor information as part of the environment, a simple programming
model and a
support infrastructure is needed. This presentation shows a concept
which helps
developers to create killer applications in a smart environment- with
ease.
bio
Harmke de Groot currently works
as group program manager at the European Microsoft Innovation Center
(EMIC) in Aachen, Germany.
EMIC creates innovative technology through collaborative applied
research in
the areas of Web Services, Mobile Computing, Security, Software
Verification
and eHome. Before joining Microsoft she was system architect and
European
project manager at Philips Research in Eindhoven,
the Netherlands,
in the area of connected home platforms. She started her industrial
career at
Philips Semiconductors (now NXP), where she contributed to the
development and
standardization of the first Bluetooth solution. Her personal research
interests
are HW/SW design trade-offs and end-to-end optimization of networked
embedded
systems.
back to schedule
Session 3: A View from the Hardware
"Liquid
Metal: Blurring the
Boundary between Software and Hardware
for Versatile Parallel Computing"
Rodric Rabbah, Researcher
IBM T. J. Watson Research Center,
US
abstract
The proliferation of multicore processors has reinvigorated an interest
in alternative models for programming that make it easier to express
concurrency and utilize parallelism. Multicores are relatively easy to
architect, but they significantly increase the burden on the software
stack to deliver the promise of Moore's Law to end users.
The burden on software will increase as the processor landscape is
likely to feature a wide range of systems that include homogeneous and
heterogeneous multicores as well systems with reconfigurable
accelerators and FPGAs.
In this talk, I will draw from my experience with the Cell processor to
highlight the challenges in programming multicore processors. I will
argue that the existing software stack is an impediment to programmer
productivity, and argue that while new programming models are a
necessity, it is also necessary to reevaluate the software stack, and
to blur the many existing boundaries between software and hardware.
I will conclude the talk by presenting Liquid Metal, an end-to-end
system from language design to co-execution on hardware and software.
The goal of the Liquid Metal project at IBM Research is to allow hybrid
systems to be programmed in a single high-level and object oriented
language that maps well to both CPUs and FPGAs (and everything in
between). While at first glance it may seem that these different
systems have conflicting requirements in terms of programming features,
it is our belief that many of the features turn out to be highly
beneficial in both environments when they are provided at a
sufficiently high level of abstraction. By using a single language we
open up the opportunity to hide the complexity of crossing domains from
software into hardware, and facilitate a fluid movement of computation
back and forth between different types of computational devices,
choosing to execute code where it is most efficient to do so.
bio
Rodric Rabbah is a Research
Staff Member at IBM. He is currently co-leading a new project called
Liquid
Metal that aims to create a single unified programming language and
runtime
system for computing on heterogeneous and reconfigurable architectures.
He is
the program chair for the 2008 Workshop on Software Tools for Multicore
Systems, and a member of the 2008 program committees for PLDI and CGO.
In January
of 2007, he co-taught a parallel programming course at MIT using
PLAYSTATION3
consoles as development platforms for student projects. The course has
received
worldwide attention from over three thousand cities and 125 countries.
Prior to
joining IBM, he was a member of the Computer Science and Artificial
Intelligence Laboratory at MIT where he was a leading contributor to
StreamIt,
a domain specific language and compiler for stream programming. Since
1999, he
has led the development of the Trimaran processor simulator. Trimaran
is an
open-source compilation and simulation infrastructure for research in
EPIC and
embedded architecture. Trimaran has been used at more than thirty
universities
worldwide for research and education.
back to schedule
"Seven
Mistakes in Embedded Software for Parallel Platforms (and
how to avoid them)"
Pierre Paulin, Director SoC
Platform
Automation
STMicroelectronics, CA
abstract
This talk will summarize our
experience in the research and development of tools
supporting concurrent embedded software development for
consumer-oriented
multimedia platforms. We will share our hardest lessons learned, and
indicate
the most promising emerging directions. We will highlight one key
'silver
bullet', namely the SoC platform programming model. We will present
pros and
cons of three programming models: SMP, client-server and streaming.
bio
Dr. Pierre Paulin is director
of System-on-Chip Platform Automation at STMicroelectronics, Ottawa,
Canada.
Previously, he was director of Embedded Systems Technologies for ST in
Grenoble, France.
Before this, he managed embedded software tools and high-level
synthesis
R&D with Nortel Networks research labs. He obtained a Ph.D. from
Carleton University,
Ottawa, in 1988, and B.Sc. and M.Sc. degrees
from Laval University, Quebec in 1982 and 1984 respectively. He won
the best presentation award at DAC in 1986, and won the best paper
award at
ISSS-Codes in 2004.
Looking forward to your
feedback.
back to schedule
modified on March 20, 2008
mail comments and questions to se4es