Product Line Hall of Fame
Philips Product Line of Software for Television Sets
Philips is one of the world's largest consumer electronics companies, and a global leader in televisions and other consumer products. While initially solely consisting of hardware, TVs now contain fully equipped embedded computers to control the hardware and to implement extra features. These computers started small, with 1 kilobyte of code around 1980, but software size has grown according to Moore's Law, resulting in many million lines of code today. While this by itself makes complexity an important issue, the other important issue is diversity, since televisions are produced in many different variants. To efficiently manage complexity and diversity, we decided to set-up a software product line.
The first step was the definition of a software component model, Koala, designed to allow the creation of different products by making new combinations of selections of reusable components. For this, all context dependencies of components are made explicit in the form of provides and requires interfaces, while diversity interfaces allow for internal variation of components. An explicit architectural description language, one of the first to be used extensively in industry, helps to manage complexity and to automatically generate product specific binding code. While Koala was modeled after Darwin and Microsoft COM, it is specifically tuned to build software product lines of resource-constrained products.
The second step was the creation of a product line architecture, profiting as much as possible from (re-engineered) existing software. This architecture is not a generic architecture shared by all products, but rather a set of rules and principles that should be obeyed by individual products, allowing each product to have its own specific and optimized architecture. The architecture was split in three main layers to anticipate on the use of 2nd and 3rd party software in the future.
To effectively deploy the architecture, changes had to be made to the existing development processes, which were optimized for the creation of single products. Typical changes were the introduction of component and interface data sheets to replace the traditional requirement specifications, and the definition of 'infinitely' progressing asset development projects, as opposed to finite product development projects.
The fourth step was the adaptation of the development organization to accommodate product line development. While we do separate asset from product development, all asset teams are aware of all products and vice versa, to ensure that the right level of generality is achieved. Another important issue was the alignment of the organization with the architecture, making sure that each subsystem is being developed on a single site.
The component model was created in 1996. The architecture was defined in 1998. The first product came on the market in 2000. Since 2002, all Philips' mid-range and high-end televisions have software derived from this product line. Today, there are 20 different software releases per year, where each release serving 1-5 different product types. The product line supports three different hardware platforms. When we started, diversity was one of the top three issues on the agenda of architects. Now, diversity has disappeared as issue entirely.
Our product line approach is extensively documented in http://irs.ub.rug.nl/ppn/275169561.
About This Product Line
Philips (for its product line of software for television sets) was inducted into the Hall of Fame at the Third Software Product Line Conference.
Cited improvements to the Philips product line of software for television sets include improved time to market and reuse.