Abstract
The adoption of a product line strategy can bring significant productivity and time to market improvements. However, evolving a product line is risky because it might impact many products and their users. So when evolving a product line to introduce new features or to improve its design, it is important to make sure that the behavior of existing products is not affected. In fact, to preserve the behavior of existing products one usually has to analyze different artifacts, like feature models, configuration knowledge and the product line core assets. To better understand this process, in this paper we discover and analyze concrete product line evolution scenarios and, based on the results of this study, we describe a number of safe evolution templates that developers can use when working with product lines. For each template, we show examples of their use in existing product lines. We evaluate the templates by also analyzing the evolution history of two different product lines and demonstrating that they can express the corresponding modifications and then help to avoid the mistakes that we identified during our analysis.
- V. Alves, R. Gheyi, T. Massoni, U. Kulesza, P. Borba, and C. J. P. de Lucena. Refactoring product lines. In GPCE 2006, Portland, Oregon, USA, pages 201--210. ACM, 2006. Google Scholar
Digital Library
- V. Alves, P. Matos, L. Cole, A. Vasconcelos, P. Borba, and G. Ramalho. Extracting and evolving code in product lines with aspect-oriented programming. Transactions on Aspect-Oriented Software Development, 4: 117--142, 2007. Google Scholar
Digital Library
- V. Alves, F. Calheiros, V. Nepomuceno, A. Menezes, S. Soares, and P. Borba. Flip: Managing software product line extraction and reaction with aspects. In SPLC, page 354, 2008. Google Scholar
Digital Library
- P. Borba. An introduction to software product line refactoring. In GTTSE'09 Summer School, Braga, Portugal, 2009. Google Scholar
Digital Library
- P. Borba, L. Teixeira, and R. Gheyi. A theory of software product line refinement. In ICTAC'10, pages 15--43, Berlin, Heidelberg, 2010. Springer-Verlag. Google Scholar
Digital Library
- A. Cavalcanti, P. Borba, A. Sampaio, and M. Cornelio. Algebraic reasoning for object-oriented programming. Science of Computer Programming, Jan. 2004. Google Scholar
Digital Library
- P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2001. Google Scholar
Digital Library
- L. Cole and P. Borba. Deriving refactorings for AspectJ. In AOSD'05, pages 123--134. ACM Press, 2005. Google Scholar
Digital Library
- M. Critchlow, K. Dodd, J. Chou, and A. van der Hoek. Refactoring product line architectures. In 1st International Workshop on Refactoring: Achievements, Challenges, and Effects, pages 23--26, 2003.Google Scholar
- K. Czarnecki and U. Eisenecker. Generative programming: methods, tools, and applications. Addison-Wesley, 2000. Google Scholar
Digital Library
- K. Czarnecki and K. Pietroszek. Verifying feature-based model templates against well-formedness OCL constraints. In GPCE 2006, pages 211--220, 2006. Google Scholar
Digital Library
- F. Ferreira, L. Neves, M. Silva, and P. Borba. Target: a model based product line testing tool. In Tools Session of CBSoft 2010, Salvador, Brazil, 2010.Google Scholar
- E. Figueiredo, N. Cacho, C. Sant'Anna, M. Monteiro, U. Kulesza, A. Garcia, S. Soares, F. C. Ferrari, S. S. Khan, F. C. Filho, and F. Dantas. Evolving software product lines with aspects: an empirical study on design stability. In ICSE, pages 261--270. ACM, 2008. Google Scholar
Digital Library
- M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Aug. 1999.Google Scholar
Digital Library
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. S. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Technical Report Carnegie Mellon University/SEI-90-TR-21, SEI, Carnegie Mellon University, 1990.Google Scholar
Cross Ref
- C. Kastner, S. Apel, and D. Batory. A case study implementing features using AspectJ. In SPLC, pages 223--232, 2007. Google Scholar
Digital Library
- R. Kolb, D. Muthig, T. Patzke, and K. Yamauchi. A case study in refactoring a legacy component for reuse in a product line. In 21st ICSM, pages 369--378. IEEE Computer Society, 2005. Google Scholar
Digital Library
- C. Krueger. Easing the transition to software mass customization. In 4th International Workshop on Software Product-Family Engineering, volume 2290 of LNCS, pages 282--293. Springer-Verlag, 2002. Google Scholar
Digital Library
- J. Liu, D. Batory, and C. Lengauer. Feature oriented refactoring of legacy applications. In ICSE'06, pages 112--121. ACM, 2006. Google Scholar
Digital Library
- S. Owre, J. Rushby, and N. Shankar. Pvs: A prototype verification system. In 11th International Conference on Automated Deduction, pages 748--752. Springer-Verlag, 1992. ISBN 3-540-55602-8. Google Scholar
Digital Library
- K. Pohl, G. Böckle, and F. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, 2005. Google Scholar
Digital Library
- D. B. Roberts. Practical Analysis for Refactoring. PhD thesis, University of Illinois, 1999. Google Scholar
Digital Library
- T. Thüm, D. S. Batory, and C. Kästner. Reasoning about edits to feature models. In ICSE, pages 254--264. IEEE, 2009. ISBN 978-1-4244-3452-7. Google Scholar
Digital Library
- S. Trujillo, D. Batory, and O. Diaz. Feature refactoring a multi-representation program into a product line. In GPCE'06, pages 191--200. ACM, 2006. Google Scholar
Digital Library
- F. van der Linden, K. Schmid, and E. Rommes. Software Product Lines in Action: the Best Industrial Practice in Product Line Engineering. Springer, 2007. Google Scholar
Digital Library
Index Terms
Investigating the safe evolution of software product lines
Recommendations
Investigating the safe evolution of software product lines
GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineeringThe adoption of a product line strategy can bring significant productivity and time to market improvements. However, evolving a product line is risky because it might impact many products and their users. So when evolving a product line to introduce new ...
Safe evolution templates for software product lines
We extend our investigation of compositional product lines with more subjectsWe also investigate annotative product lines, and propose templates for this contextWe contribute to the body of evidence on safe evolution of product linesWe bring additional ...
Making Software Product Line Evolution Safer
SBCARS '12: Proceedings of the 2012 Sixth Brazilian Symposium on Software Components, Architectures and ReuseDevelopers evolve software product lines (SPLs) manually or using typical program refactoring tools. However, when evolving a product line to introduce new features or to improve its design, it is important to make sure that the behavior of existing ...







Comments