IMEC
Software Engineering for Embedded Systems

A Friday Workshop at the DATE 2008 Conference
(W6)
March 14, 2008
Munich
, Germany
DATE conference

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:  
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