Harman Becker has over 50 years of experience in the production of auto radios. It has passed through all historical developments in this sector. However, nothing is as dramatic as the revolution that has taken place in the last 15 years. The highlights include:
Dominance of software over hardware
Evolution of programming language
Increase in the system complexity as demonstrated by the evolution from a simple auto radio into the modern distributed infotainment system
The important developments along the way included the introduction of 32-bit-processors and the use of real-time operating systems. The central demands of the customer were focused on shorter development cycles, with at least the same quality of operation and a higher level of complexity for the system. While these demands appear mutually exclusive, it was impossible for businesses to survive without living up to customer demands.
Ways Out of the Chaos
The contradictions embodied by the central demands of the customer forced Harman Becker to search for new solutions and with it, new opportunities for growth. The Harman Becker strategy was based (in part) on the consistent introduction and usage of selected modern software engineering technologies. The Eclipse based Momentics IDE of QNX offers substantial support to this new strategy.
There was a series of simple actions that had to be taken. The MoCCA application framework was introduced as a foundation for all the projects. The core piece of this framework is a standardized component packaging technology that promotes re-usability. Parallel to this development, automated test suites were developed. The combination of component technology and test suites permitted a significant acceleration of the development process, while also helping to preserve high quality standards. This new strategy provided an ideal start for every new project.
The big challenge lay in the development and integration of new technologies. The new themes of connectivity and new media that have arisen in recent years represent some of the biggest challenges for mobile infotainment system. A car owner expects his MP3-Player (USB), his telephone (Bluetooth) and his laptop (WLAN) to be identified by an infotainment system. The MP3-data must be playable; the telephone, of course hands-free, must be usable; the laptop must be able to access the Internet. All of these new technologies must fit seamlessly into the automotive infotainment system and must be integrated with the existing technology.
The MoCCA framework of Harman Becker contains a whole series of innovations aimed at easing the life of the developer. One of the important measures included the introduction of MDA/MDSD concepts. A number of problem domains exist for which generic solution patterns can be developed. For every such problem domain, a graphical editor with a coupled code-generator makes the solution of individual problems easy and efficient. Classical examples for such domains are GUI-Editors and finite state automata. However, during the development of the MoCCA application framework Harman Becker developers discovered a number of other problem domains for which generalized solution patterns could be developed. Each such solution pattern resulted in yet another dedicated pair of graphical editor plus code generator. In the course of time, a bouquet of tools grew up, resulting in a progressively more complex development environment
Eclipse offers the ability to subdue the threat of chaos. Every individual editor can be provided as an Eclipse plug-in so that the developer sees his project in the accustomed fashion. If special data needs to be manipulated (e.g. an instance of a finite state machine), Eclipse will automatically start the correct editor, allowing the developer to continue working within the Eclipse IDE. With the MoCCA plug-ins one can:
View and modify the component list of an application
Distribute the components from this list amongst the processes and threads of the application
Easily view and modify the state engine at the heart of a component
View and edit the formally defined interfaces with which a component is packaged
Eclipse on its own offers the ability to examine a project (an application) from different points of view (perspectives). A possible view of a project is the ‘deployment’ of the components into the threads and processes. On a more detailed level the graphical representation of the state engine as well as source code can be important. The extensibility of Eclipse with the plug-in-architecture and the intuitive availability of the capabilities of the plug-ins is simply brilliant.
Perspectives for the Future
The Eclipse Foundation would like to offer vertical solutions for the embedded world. A generic application framework will be one of the basic building blocks required to achieve this goal. This application framework must fulfill all the normal prerequisites of the embedded world. It must make extremely economical use of resources, including memory footprint in both RAM and ROM as well as CPU cycles. An additional requirement is the ability to run on many different CPUs. Finally, it must be independent of the operating system and extremely scalable.
The MoCCA technology developed within Harman Becker fulfills most of these demands. MoCCA is generic, economical ("Hello World" on the SH4 Processor is roughly 30 kb in size), CPU agnostic (MoCCA is qualified on x86, SH4, ARM and PPC) and strongly scalable. For the moment only two operating systems are supported, QNX and Windows. This technology fits well into the Eclipse world and benefits enormously from the extensibility of the Eclipse environment. The fact that Harman Becker is already using it on an industrial scale offers a huge advantage in itself. MoCCA is not vaporware, nor is it a prototype or proof-of-concept implementation.
Harman Becker is seriously considering the prospect of releasing the MoCCA-framework to the open-source community with the patronage of the Eclipse Foundation. This thought in itself is revolutionary because the open source idea has not yet penetrated deeply into the automobile industry. This industry has so far been characterised by closed systems and protectionism. The release of MoCCA as an open source project would be an innovation in itself, marking a huge step forward.
Initiatives like Autosars demonstrate that a need for standards is perceived within the automobile industry. There are no such standards as yet, but the car manufacturers already are on the way to define them. Harman Becker cannot afford to simply wait for results. With the release of MoCCA, Harman Becker could once again demonstrate their position as technological leaders in the automotive infotainment industry.
Gerald Harris is a director of Software Architecture at Harman/Becker Automotive Systems, focused on the area of eveloping automotive infotainment systems. Gerald has over 20 years experience in systems engineering, developing magnetic imaging systems for several transnational Medical systems corporations. Gerald has a BS in Mathematics from UC Irvine and Diplom Mathematik from Georgia Augusta Universitaet, Goettingen and currently lives with his family close to Stuttgart.