skip to main content
research-article

Investigating the safe evolution of software product lines

Authors Info & Claims
Published:22 October 2011Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. Borba. An introduction to software product line refactoring. In GTTSE'09 Summer School, Braga, Portugal, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Cavalcanti, P. Borba, A. Sampaio, and M. Cornelio. Algebraic reasoning for object-oriented programming. Science of Computer Programming, Jan. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. Cole and P. Borba. Deriving refactorings for AspectJ. In AOSD'05, pages 123--134. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. K. Czarnecki and U. Eisenecker. Generative programming: methods, tools, and applications. Addison-Wesley, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Czarnecki and K. Pietroszek. Verifying feature-based model templates against well-formedness OCL constraints. In GPCE 2006, pages 211--220, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Aug. 1999.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. C. Kastner, S. Apel, and D. Batory. A case study implementing features using AspectJ. In SPLC, pages 223--232, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Liu, D. Batory, and C. Lengauer. Feature oriented refactoring of legacy applications. In ICSE'06, pages 112--121. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. K. Pohl, G. Böckle, and F. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. B. Roberts. Practical Analysis for Refactoring. PhD thesis, University of Illinois, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Investigating the safe evolution of software product lines

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 47, Issue 3
        GCPE '11
        March 2012
        179 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2189751
        Issue’s Table of Contents
        • cover image ACM Conferences
          GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineering
          October 2011
          194 pages
          ISBN:9781450306898
          DOI:10.1145/2047862

        Copyright © 2011 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 22 October 2011

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!