0018-9162/00/$10.00 © 2000 IEEE 78 Computer The Koala Component Model for Consumer Electr onics Softw ar e M ost consumer electronics today contain embedded software. In the early days, developing CE software presented rela- tively minor challenges, but in the past several years three significant problems have become apparent: The size and complexity of the software in indi- vidual products are increasing rapidly. Embedded software roughly follows Moore’s law, doubling in size every two years. The required diversity of products and their soft- ware is increasing rapidly. Development time must decrease significantly. What does all this embedded software do? At first, it provided only basic control of the hardware. Since then, some of the signal and data processing has shifted from hardware to software. Software has made new product features possible, such as electronic pro- gramming guides and fancy user interfaces. The latest trends show a merging with the computer domain, resulting in services such as WebTV. No longer isolated entities, CE products have become members of complex product-family struc- tures. These structures exhibit diversity in product fea- tures, user control style, supported broadcasting standards, and hardware technology—all factors that increase complexity. Today’s dynamic CE market makes it impossible to wait two years between the conception and introduc- tion of a new product. Instead we must create new products by extending and rearranging elements of existing products. The highly competitive market also requires us to keep prices low, using computing hard- ware with severely constrained capabilities. THE CHALLENGE How can we handle the diversity and complexity of embedded software at an increasing production speed? Not by hiring more software engineers—they are not readily available, and even if they were, experience shows that larger projects induce larger lead times and often result in greater complexity. We believe that the answer lies in the use and reuse of software components that work within an explicit software architecture. Why softwar e components? Software reuse lets us apply the same software in different products, which saves product-development effort. Software reuse has been a goal for some time. 1 The classical approach of defining libraries can be highly successful in limited domains, such as scientific and graphical libraries. However, while stimulating low-level code reuse, libraries do not help much in managing the similarities and differences in the struc- ture of applications. Developers devised object-oriented frameworks to create multiple applications that share structure and code. 2 The framework provides a skeleton that they can specialize in different ways. This approach makes application development faster, as long as the appli- cations share similar structures. But changing the structure significantly is difficult because it is embed- ded in the framework. Also, a strong and often undocumented dependency exists between compo- A component-oriented approach is an ideal way to handle the diversity of software in consumer electronics. The Koala model, used for embedded software in TV sets, allows late binding of reusable components with no additional overhead. Rob van Ommering Frank van der Linden Philips Research Laboratories Jeff Kramer Jeff Magee Imperial College, London RESEARCH FEATURE