Skip to Main Content
Most embedded software in the consumer electronics is generally developed through derivation from legacy software. Many new projects are derived from preexisting ones, through modification of functionality, optimization of performance and application new features. Particularly in the digital AV (audio & video) domain, the rise of 'digital convergence' has lead to a need for the functionality of products to be integrated and unified across different products. In this situation, a product line approach might be more efficient and effective rather than a product-oriented approach. The characteristics of this environment make the product line approach ideal for the digital AV domain. In this paper, we present our experience of designing product line architecture as a common, reference architecture in the digital AV domain. We describe our development process with application on a case project. We also show concrete principles and guidelines to design and build a software product line in consideration of the characteristics of the digital AV domain. We developed guidelines with our experience and domain knowledge in the digital AV domain mainly focused on reusability, maintainability and flexibility. We believe that concrete design principles and guidelines can significantly enhance those attributes in the productization. As a case study, we describe how to find, extract and develop core assets of the product family against our process and guidelines. We found candidates of architecture and core assets, and then extracted target architecture via re-engineering. With the analysis information and domain knowledge of legacy system, we developed a reference architecture with commonality and variability of the target domain. We used the term 'software platform' for the reference architecture and set of core assets as an implementation of software product line. We evaluated the platform against the guidelines as a design guideline itself and quality attribute as well.