Perspectives on software product lines
Peter Knauber, Giancarlo Succi · ACM SIGSOFT Software Engineering Notes · 2001
Product line engineering is a concept that has emerged in the 80's in the business schools and is now among the hottest topics in software engineering.Software product lines aim at achieving scope economies through synergetic development of software products. Diverse benefits like cost reduction, decreased time-to-market, and quality improvement can be expected from reuse of domain-specific software assets. But also non-technical benefits can be expected as result of network externalities, product branding, and sharing organizational costs.Product lines introduce additional complexity. In a sense they go against the common adage of "divide and conquer." Planning and/or developing of more than one product at a time have to be managed technically and organizationally.However, the rate of innovation of the technology and the intrinsic nature of software products do not let alternatives to developers: users like to jump into the bandwagon of new products, and old products often drive preferences to new products.Research has been conducted in software product lines for the past few years. Some of it has focused on demonstrating that existing systems and approaches were indeed instrumental for product line development, such as generative techniques, domain analysis and engineering and software components. Another portion of the research effort has tried to determine how it is possible to create a comprehensive methodology and an associated tool for product lines, starting from the business idea of line of products down to the development of a product and trying to exploit all the possible synergies existing at each phase, from network externalities to component reuse.