Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e www.voelter.de © 2002 Markus Völter. - 1 - Embedded.

Slides:



Advertisements
Similar presentations
Workshop: Moderne Softwareentwicklungs-Methoden Teil 1: AOP, MDSOC, GP, IP Teil 2: eXtreme Programming Markus Völter Michael.
Advertisements

Welcome to Middleware Joseph Amrithraj
COM vs. CORBA.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Software Architectural Design Software Components Instructor Dr. Lawrence Chung.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Distributed Systems Architectures
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Chapter 13 Embedded Systems
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
.NET Mobile Application Development Remote Procedure Call.
Course Instructor: Aisha Azeem
Domain-Specific Software Engineering Alex Adamec.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Common Object Request Broker Architecture (CORBA) CS-328.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Tiny Components – a collection of initial ideas copyright © 2003 Tiny Components Tiny Components A Component Model for Small, Embedded or Mobile devices.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Lecture 15 Introduction to Web Services Web Service Applications.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Jini Architecture Introduction System Overview An Example.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Web Services Using Visual.NET By Kevin Tse. Agenda What are Web Services and Why are they Useful ? SOAP vs CORBA Goals of the Web Service Project Proposed.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
A service Oriented Architecture & Web Service Technology.
INTRO. To I.T Razan N. AlShihabi
Distribution and components
Introduction to J2EE Architecture
Inventory of Distributed Computing Concepts
Component--based development
Small Components A collection of initial ideas for a component model for small, embedded or mobile devices Markus Völter
Analysis models and design models
An Introduction to Software Architecture
Quality Assurance for Component-Based Software Development
Presentation transcript:

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Embedded Components Component Infrastructures for embedded and small systems Markus Völter

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter What is a component infrastructure Most important principle: Separation of Concerns Functional concerns of an application are factored into reusable Components Technical concerns are provided by a standardized entity, a so-called Container Components are accessed only through a Component Interface Functionality of a Component is well defined, thus reusable.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter What is a component infrastructure (II)

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Component Infrastructures System functionality is separated into components: Components are then hosted in a container that handles technical concerns for them:

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Component Infrastructures A component has a well-defined and separated interface. Container handles the lifecycle of components:

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Component Infrastructures To adapt the container to the specific components deployed in it, there usually needs to be a glue-code layer. It is generated from annotations, that specify how the container should handle the component(s).

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter What is a component Additional properties of the kinds of Components we are interested in: a component is coarse grained principle of separation of concerns is employed Components can be accessed remotely “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.” Definition by Szyperski

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Components in the Enterprise There are several popular component architectures in the enterprise environment: Enterprise Java Beans (EJB), a Java-only component model that is part of the Java 2 Enterprise Editition Micorsoft's COM+, a widely-used component architecture limited to Windows operating systems. CORBA Components (CCM), a component-extension to OMG's object request broker technology, Many other component architectures that have been designed specifically for a specific system

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Benefits: Why are they successful? A Typical application structure: database contains business data processes that manipulate this data usually in the context of transactions. It is relatively easy to separate the functional from the technical concerns, and they can be implemented generically. Standards and commercially available containers People and their skills suit the seperation of concerns well Standardized, well documented Programming Model

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Target Platform Devices We consider the following kinds of devices to be „small systems“: Mobile Phones PDAs, Organizers Embedded computers, such as controllers or ECUs in vehicles or airplanes

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Platform Characteristics Non-homgeneity, almost every device is different (in contrast to enterprise systems) Limited memory, only some hundred kB or some MB are available Limited computing power because the device often contain only small processors Limited electrical power because the device might be battery powered Timing requirements can be more stringent: No real time Soft real time Hard real time (out of scope!) Network connection can either be permanent or intermittent

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Typical Software Architecture Today An OS Abstraction Layer hides some of the details of the underlying (realtime) operating system. A more sophisticated approach, especially for product families, is the use of a framework – provides reuse for repeating aspects.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Embedded Architecture with Components Using a component container is basically a framework that uses separation of concerns and optionally generative techniques. Reuse is simplified by only accessing components through their interfaces. OS Abstraction Layer + Framework + Separation of Concerns + Reuse = Component Architecture

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Goal: Componentized Embedded OS In a last step, the container and the OS Abstraction Layer, as well as the operating system can be integrated to improve performance and reduce footprint even more.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Challenges for Components Platform independent The concepts should be independent of the OS and implementation language Alternatively, the implementation should be done in a platform- independent programming language (such as Java) Simple and lightweight. A component infrastructure must be much simpler than e.g EJB or CCM Focus on the really important pieces of functionality Modular. Underlying hardware and OS will not support all features provided by the embedded components infrastructure. Thus, not all containers need to provide all possible features. Container features must be „pluggable“.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Challenges for Components (II) Reflective. Components must know what their requirements are regarding the container and containers must know what features they provide to the components This is necessary to improve reliability Network-aware. Different network transport protocols must be pluggable without changing the component implementations (CORBA, Sockets, RMI,...) Performance. It is not acceptable to impose big performance overheads into the system. In contrast to enterprise systems, you cannot easily add more and more hardware resources.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Software Product Lines Instead of developing one single system, development focuses on a family of related systems. Reasons: different target platforms (operating system, middleware) different quality of service (QoS) requirements, potential for future growth Systems are built from product-specific parts and reusable parts: the common platform Creation of concrete systems should be done with the help of a (semi-)automatic assembly process industrialized production of software „build software like they build cars“

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter What is a software system family? A set of programs related through their common properties And distinguished through their specific properties We consider a set of programs to constitute a family whenever it is worthwhile to study programs from the set by first studying the common properties of the set and then determining the special properties of the individual family members. Definition by Parnas, 1976

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Product Line Engineering Domain Scoping Variability Analysis Domain Structuring Define common architecture Define Production Plan Define Building Blocks Components DSLs & Generators Production Process

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Example Family (Feature Diagram) Example products: An aircraft with a low wing, piston engine and made of metal, wood and cloth: Robin DR-400 An aircraft with shoulder wing, no engine and made of plastic: ASW-27 An aircraft with low wing, jet engine(s) and made of metal: Airbus A320

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter More features of Feature Diagrams They can contain constraints on the combinations of features They can define „names“ for specific combinations of features; feature groups Features can be open: additional subfeatures can be added Features can be incomplete: the subfeatures are not yet defined Multiplicity of subfeatures can be added And more...

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Features and Binding Times A feature diagram defines the common and variable aspects of a system. It has to be defined, when the variable aspects are fixed for a particular product. This is called binding time. Usually, binding time has consequences on flexibility performance code size type safety and: on the technique used to implement the variable aspect

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Typical Binding Times source time: manual programming, template parameters compile time: function overloading, precompiler, template evaluation link time: DLLs, class loading run time: virtual functions, inheritance & polymorphism, factory-based instance creation, delegation deployment/configuration time: component deployment (impl. for an interface), environment variables

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Consequences of Binding Times

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Generative Programming Generative Programming … is a software engineering paradigm based on modeling software system families such that, given a particular requirements specification, a highly customized and optimized intermediate or end-product can be automatically manufactured on demand from elementary, reusable implementation components by means of configuration knowledge. Definition by Eisenecker & Czarnecki

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Small Components and Product Lines With respect to components and containers, there are two things that can be considered a family, and created using GP: Components, their assembly and applications: This is the traditional way of using components & containers in the context of GP. The container is a stable, fixed framework Components are either (partly) generated and deployed, or components are developed manually and GP provides selection, assembly, “wiring” and deployment in the container. The container itself: This approach is used in embedded, resource constrained systems The components are developed manually The container is custom-generated “around” the components to provide resource-optimized management of technical concerns

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Small Components and Product Lines (II) Components are developed manually (or, later, generated) adhering to specific interfaces. The container which provides the infrastructure to the components is automatically created, Based on the

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Small Components and Product Lines (II) Components are developed manually (or, later, generated) adhering to specific interfaces. The container which provides the infrastructure to the components is automatically created, Based on a specification of required features And the implicit requirements of the components that are configured to run in it. With respect to the small components approach, the container is considered the product family, and it is specified, automatically created and assembled using generative techniques.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Useful Features for an embedded container Scheduling Interrupt Handling Storage Service Simple Event service Generic driver interface Pluggable transport Security Store and forward Paging...

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Related Technologies Jini is a platform for spontaneous networking Ninja is a project by the University of Berkeley that defines an architecture for intelligent network-centric services. OSGi is a platform to manage services on small devices. Maybe it could be used as a basis. WebServices defines an XML over HTTP based RPC mechanisms for use in the internet. Apache SF project to build a framework for server apps MQ everyplace is a version of the MQSeries messaging middleware that is available for small devices. Java could be useful as a platform independent programming language. TAO is a well-known and modular ORB that might be useful as a communication backend.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Problem Space, Feature Model Additional Constraints: Timer requires Signalling Interceptors require Proxy Signalling requires Signal Handling interface Defaults: No passivation

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Problem Space - Configuration Interceptors Instances Component

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Generative Approach for the Container A system family needs to be created We need to create a highly optimized solution, to be useful on the limited embedded devices. We have a set of prebuilt components used by the Generator We use code generation + parametrization

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter What does a component look like A component has three interfaces The Service Interface defines the operation the component offers to its clients The Resource Interface specifies the resources the component needs to work correctly The Lifecycle Interface is used by the container to manage an instance‘s lifecycle in the container

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter The Service Interface The Service Interface is different for each component. It defines all the operations the component provides to its clients. It uses the suffix SI appended to the component name. Example: A Calculator Component public interface CalculatorSI extends Service { public int add( final int a, final int b ) ; public int divide( final int a, final int b ) throws java.lang.ArithmeticException; public int minus( final int a, final int b ) ; public int times( final int a, final int b ) ; }

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter The Resource Interface The Resource Interface is different for each component. It defines all the resources required by the component. Service Interfaces of other components Any other resources provided by the container It uses the suffix RI appended to the component name. Example: A Calculator Component public interface CalculatorRI { public void setPrinter( final TextPrinterSI thePrinter ) ; public void setSignaller( final SignallerSIBase theSignaller ) ; }

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter The Lifecycle Interface The Resource Interface is similar for each component. It defines how the container handles components It is called LifecycleInterface Definition of the LifecycleInterface public interface LifecycleInterface { public void configure( ConfigCtx config ); public boolean configurationComplete(); public List getConfigLogMessages(); public void run(); public void shutdown(); }

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Challenges in the automotive Domain Typical modern vehicles consist of up to 50 Electronic Control Units (ECUs) (and of course, some mechanics ) They run complex, distributed software systems. Software System Families can be defined on two levels: There are different (software) configurations of a single ECU, because the hardware device they control (engine, brake system, air conditioning) varies. There are different configurations of the vehicle itself – the collaboration of the ECUs and the vehicle as a whole can be considered a family

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Challenges in the automotive Domain (II) Robustness for the system is crucial, well-defined fail- safe modes must be defined (e.g. what happens when the ECU for the brake system crashes?) Diagnosability: Diagnosing problems, failures and errors in a vehicle has become a complex and difficult task. External diagnosis systems can only work efficiently, if the errors are well described internally by the software in the vehicle. This is really a big issue today! Development of new ECU software packages must be very efficient, because the rate at which cars are improved and changed increases.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Some Benefits of in-vehicle components Every component has a standardized diagnosis interface. This allows component-based diagnosis and Hierarchical diagnosis on a component tree The component could also provide an interface to provide meta-information about itself and the resources it requires. Currently this information is held outside the car in databases, and usually out-of-date. A component knows ist container (i.e. a software system running on the hosting ECU) and can query the container for problems

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Some Benefits of in-vehicle components A component can be migrated to another container (aka ECU) in case of a failure. If a vehicle feature should be distributed over several ECUs, a virtual component can be defined to serve as a facade. A specific container can also help with diagnosis by e.g. checking timing requirements (a kind of debug mode for the car) Studies are currently executed at several OEMs to investigate the feasibility of the approach.

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter Contents Introduction Component Technologies The Target Platforms Current embedded systems architecture Product Line Engineering and Generative Programming Concepts of the Small Components Infrastructure The Prototype Example from the Automotive Domain

Embedded Components CDUF 2002 i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e © 2002 Markus Völter The End.  Thanks!  Questions?  Comments?  Criticism? Markus Völter