Product line implementation with frame technology: A case study
Software development today has to meet various demands, such as reducing cost, effort, and time-to-market, increasing quality, handling complexity and product size, or satisfying the needs of individual customers. This is why many software organizations today do not just develop and maintain single, separate software systems, but a set of systems, a product line. Given the fact that the systems are typically in the same application domain, it would be inefficient to develop them independently of each other in an ad-hoc way, as this usually leads to high development and maintenance effort. However, a means for systematically developing and maintaining similar products is offered by software product line engineering, as covered by the PuLSETM approach developed at the Fraunhofer IESE. To implement such a product line approach in practice, special technologies are required for effectively identifying reusable artifacts, as well as capturing and controlling their commonalities and variabilities. To do the latter efficiently, the PoLITe project (Product Line Implementation Technologies) explores techniques at the implementation level for managing variability. Frame technology is one of these implementation techniques that, as this report shows, offers advantages for implementing product lines over object-oriented techniques. This report highlights reuse principles and explains the major concepts underlying frame technology. The core concepts are extracted and realized in a plain frame processor. This tool will be used in the following case study, where the evolution of a software system from a single system into a product line will be discussed, each time comparing the frame approach with a conventional object-oriented solution.