Facilitating the evolution of products in product line engineering by capturing and replaying configuration decisions

SW-Diversity

Abstract

Software product lines rely on developing reusable artifacts and defining their variability in models to support and accelerate the derivation of individual products. A major challenge in product lines is the continuous evolution of both the reusable artifacts and derived products. Products that have been derived from a product line have to be updated regularly, e.g., after bugfixes or the development of new features. Changes to reusable artifacts and variability models have to be propagated to derived products. The aim of our research is to provide automated support for the evolution of products derived from product lines by capturing and replaying configuration decisions. Our PUPLE (Product Updates in Product Line Engineering) approach supports updating derived products after changes to the product line they have been derived from. It exploits the structure of variability models and uses change-tracking data to minimize user intervention. The paper first explores how different types of product line changes influence the derived products. It then presents extensions to our decision-oriented product line approach DOPLER to support product line evolution. We evaluate the feasibility of the PUPLE approach with evolution tasks that were performed by engineers of an industry partner on a product line of an Eclipse-based tool suite with six derived products. We conclude with lessons learned and limitations of our approach.

Keywords

Product line engineering Software evolution Product update tool 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Ajila S.A., Kaba A.B.: Evolution support mechanisms for software product line process. J. Syst. Softw. 81(10), 1784–1801 (2008)CrossRefGoogle Scholar
  2. 2.
    Benavides D., Segura S., Ruiz-Cortés A.: Automated analysis of feature models 20 years later. Inf. Syst. 35(6), 615–636 (2010)CrossRefGoogle Scholar
  3. 3.
    Beuche, D.: Modeling and building software product lines with pure::variants. In: Proceedings of the 15th International Software Product Line Conference, SPLC Workshops 2011, Tool Demo, Munich, Germany, pp. 46. ACM (2011)Google Scholar
  4. 4.
    Bosch J.: Design and Use of Software Architectures, Adopting and Evolving a Product Line Approach. Addison-Wesley, Boston (2000)Google Scholar
  5. 5.
    Clements P., Northrop L.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison- Wesley, Boston (2001)Google Scholar
  6. 6.
    Czarnecki, K., Grünbacher, P., Rabiser, R., Schmid, K., Wasowski, A.: Cool features and tough decisions: a comparison of variability modeling approaches. In: 6th International Workshop on Variability Modeling of Software-Intensive Systems (VaMoS 2012), pp. 173–182. ACM, Leipzig (2012)Google Scholar
  7. 7.
    Deelstra S., Sinnema M., Bosch J.: Product derivation in software product families: a case study. J. Syst. Softw. 74(2), 173–194 (2005)CrossRefGoogle Scholar
  8. 8.
    Deelstra S., Sinnema M., Bosch J.: Variability assessment in software product families. Inf. Softw. Technol. 51(1), 195–218 (2009)CrossRefGoogle Scholar
  9. 9.
    Deng, G., Gray, J., Schmidt, D., Lin, Y., Gokhale, A., Lenz, G.: Evolution in model-driven software product-line architectures. In: Tiako, P. (ed.) Designing Software-intensive Systems, pp. 1280–1312. Idea Group Inc. (IGI) (2008)Google Scholar
  10. 10.
    Dhungana D., Grünbacher P., Rabiser R.: The DOPLER meta-tool for decision-oriented variability modeling: a multiple case study. Autom. Softw. Eng. 18(1), 77–114 (2011)CrossRefGoogle Scholar
  11. 11.
    Dhungana D., Grünbacher P., Rabiser R., Neumayer T.: Structuring the modeling space and supporting evolution in software product line engineering. J. Syst. Softw. 83(7), 1108–1122 (2010)CrossRefGoogle Scholar
  12. 12.
    Grünbacher, P., Rabiser, R., Dhungana, D., Lehofer, M.: Model-based customization and deployment of eclipse-based tools: industrial experiences. In: 24th IEEE/ACM International Conference on Automated Software Engineering (ASE 2009), pp. 247–256. IEEE/ACM, Auckland (2009)Google Scholar
  13. 13.
    Heider W., Froschauer R., Grünbacher P., Rabiser R., Dhungana D.: Simulating evolution in model-based product line engineering. Inf. Softw. Technol. 52(7), 758–769 (2010)CrossRefGoogle Scholar
  14. 14.
    Heider, W., Rabiser, R.: Tool support for evolution of product lines through rapid feedback from application engineering. In: 4th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS 2010), pp. 167–170. ICB-Research Report No. 37 (University of Duisburg Essen), Linz, Austria (2010)Google Scholar
  15. 15.
    Heider, W., Rabiser, R., Dhungana, D., Grünbacher, P.: Tracking evolution in model-based product lines. In: 1st International Workshop on Model-driven Approaches in Software Product Line Engineering (MAPLE 2009), collocated with the 13th International Software Product Line Conference (SPLC 2009), pp. 59–63. ACM, San Francisco, CA, USA (2009)Google Scholar
  16. 16.
    Holl, G., Thaller, D., Grünbacher, P., Elsner, C.: Managing emerging configuration dependencies in multi product lines. In: 6th Int’l Workshop on Variability Modelling of Software-Intensive Systems, pp. 3–10, Leipzig, Germany (2012)Google Scholar
  17. 17.
    Johnson, S., Bosch, J.: Quantifying software product line ageing. In: 1st ICSE 2000 Workshop on Software Product Lines: Economics, Architectures, and Implications, pp. 27–32. Limerick, Ireland (2000)Google Scholar
  18. 18.
    Knauber, P.: Managing the evolution of software product lines. In: 8th International Conference on Software Reuse (ICSR-8). Springer LNCS, Madrid (2004)Google Scholar
  19. 19.
    Krueger, C.: The biglever software gears unified software product line engineering framework. In: 12th International Software Product Line Conference (SPLC 2008), vol. 2, p. 353. Lero, Limerick (2008)Google Scholar
  20. 20.
    McGregor, J.: The evolution of product line assets. Technical report CMU/SEI-2003-TR-005 ESC-TR-2003-005 (2003)Google Scholar
  21. 21.
    Mende, T., Beckwermert, F., Koschke, R., Meier, G.: Supporting the grow-and-prune model in software product lines evolution using clone detection. In: 12th European Conference on Software Maintenance and Reengineering (CSMR’08), pp. 163–172. IEEE CS (2008)Google Scholar
  22. 23.
    Nöhrer, A., Egyed, A.: Optimizing user guidance during decision-making. In: 15th International Software Product Line Conference (SPLC 2011), pp. 25–34. IEEE CS, Munich (2011)Google Scholar
  23. 24.
    Pohl K., Böckle G., van der Linden F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)MATHGoogle Scholar
  24. 25.
    Rabiser, R., Dhungana, D., Heider, W., Grünbacher, P.: Flexibility and end-user support in model-based product line tools. In: 35th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA) 2009, pp. 508–511. IEEE CS, Patras (2009)Google Scholar
  25. 26.
    Rabiser, R., Grünbacher, P., Dhungana, D.: Supporting product derivation by adapting and augmenting variability models. In: 11th International Software Product Line Conference (SPLC 2007), pp. 141–150. IEEE Computer Society, Kyoto (2007)Google Scholar
  26. 27.
    Rabiser R., Grünbacher P., Dhungana D.: Requirements for product derivation support: Results from a systematic literature review and an expert survey. Inf. Softw. Technol. 52(3), 324–346 (2010)CrossRefGoogle Scholar
  27. 28.
    Rabiser R., O’Leary P., Richardson I.: Key activities for product derivation in software product lines. J. Syst. Softw. 84(2), 285–300 (2011)CrossRefGoogle Scholar
  28. 29.
    Runeson P., Höst M.: Guidelines for conducting and reporting case study research in software engineering. Empirical Softw. Eng. 14(2), 131–164 (2009)CrossRefGoogle Scholar
  29. 30.
    Savolainen, J., Bosch, J., Kuusela, J., Männistö, T.: Default values for improved product line management. In: 13th International Software Product Line Conference, pp. 51–60. SPLC ’09, Carnegie Mellon University, Pittsburgh, PA, USA (2009)Google Scholar
  30. 31.
    Schmid K., Verlage M.: The economic impact of product line adoption and evolution. IEEE Softw. 19(4), 50–57 (2002)CrossRefGoogle Scholar
  31. 32.
    Sendall S., Kozaczynski W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5), 42–45 (2003)CrossRefGoogle Scholar
  32. 33.
    Sinnema M., Deelstra S.: Classifying variability modeling techniques. Inf. Softw. Technol. 49(7), 717–739 (2006)CrossRefGoogle Scholar
  33. 34.
    Siy, H., Perry, D.: Challenges in evolving a large scale software product. In: Principles of Software Evolution Workshop, collocated with the International Software Engineering Conference (ICSE98), pp. 29–32, Kyoto, Japan (1998)Google Scholar
  34. 35.
    Svahnberg M., Bosch J.: Evolution in software product lines: two cases. J. Softw. Maint. Res. Practice 11(6), 391–422 (1999)CrossRefGoogle Scholar
  35. 36.
    van der Linden F., Schmid K., Rommes E.: Software Product Lines in Action—The Best Industrial Practice in Product Line Engineering. Springer, Berlin-Heidelberg (2007)Google Scholar
  36. 37.
    Vierhauser, M., Grünbacher, P., Egyed, A., Rabiser, R., Heider, W.: Flexible and scalable consistency checking on product line variability models. In: 25th IEEE/ACM International Conference on Automated Software Engineering (ASE 2010), pp. 63–72. ACM, Antwerp (2010)Google Scholar
  37. 38.
    Weyns, D., Michalik, B., Helleboogh, A., Boucke, N.: An architectural approach to support online updates of software product lines. In: Ninth Working IEEE/IFIP Conference on Software Architecture, pp. 204–213, WICSA ’11. IEEE Computer Society, Washington (2011)Google Scholar
  38. 39.
    Wohlin, C., Runeson, P., Höst, M.: Experimentation in Software Engineering: An Introduction. Kluwer International Series in Software Engineering (2000)Google Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  • Wolfgang Heider
    • 1
  • Rick Rabiser
    • 1
  • Paul Grünbacher
    • 2
  1. 1.Christian Doppler Laboratory for Automated Software EngineeringJohannes Kepler UniversityLinzAustria
  2. 2.Systems Engineering and AutomationJohannes Kepler UniversityLinzAustria

Personalised recommendations