Software Product Lines from Customer to Code

The process of establishing a software product line and instantiating products from it is motivated, not only by technical reasons, but also by business reasons. The customer perspective reveals the importance of the basic function of the products and helps us distinguish between product lines and product families. One single feature is never the only difference between two products, but instead we can identify products on different feature levels. When designing the product we identify that it is important to separate between conceptual components of the domain and factual components that are part of the solution. Product lines must eventually lead to implementation and source code. In order to achieve this, a wide range of implementation techniques is available. Which combination of tech-niques that is the most appropriate is very much dependent on if the product is part of a product line or a product family, and how the factual component relate to the other factual components. Hence, to be successful in developing software product lines requires the application of knowledge about both the customer and the code.

[1]  Jan Bosch,et al.  Evolution in software product lines: Two cases , 1999 .

[2]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[3]  Sholom Cohen,et al.  Product Line Practice Workshop Report. , 1998 .

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Jan Bosch,et al.  Characterizing Evolution in Product Line Architectures , 1999, ICSE 1999.

[6]  David C. Gross,et al.  Managing Domain-Specific, Product-Line Development , 1996, IEEE Softw..

[7]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[8]  Jan Bosch,et al.  Product-line architectures in industry: a case study , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[9]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[10]  J. C. Wortmann,et al.  Development and Evolution of Software Architectures for Product Families , 1998, Lecture Notes in Computer Science.

[11]  Michael Mattsson,et al.  Frameworks as Components : A Classification of Framework Evolution , 1998 .

[12]  Jim Wilson,et al.  Applying Software Product-Line Architecture , 1997, Computer.

[13]  Leonard J. Bass,et al.  Second Product Line Practice Workshop Report , 1998, ArXiv.

[14]  Jan Bosch,et al.  Haemo dialysis software architecture design experiences , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[15]  Klaus Schmid,et al.  A systematic approach to derive the scope of software product lines , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[16]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[17]  Jan Bosch,et al.  Characterizing stability in evolving frameworks , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).