ABSTRACT
Software Product Lines (SPLs) are a successful approach to software reuse in the large. Even though tools exist to create SPLs, their evolution is widely unexplored. Evolving an SPL manually is tedious and error-prone as it is hard to avoid unintended side-effects that may harm the consistency of the SPL. The main contribution of this paper is the conceptual basis of a system for the evolution of model-based SPLs, which maintains consistency of models and feature mapping. As further contribution, a novel classification is introduced that distinguishes evolutions by their potential to harm the mapping of an SPL. In addition, multiple remapping operators are presented that can remedy the negative side-effects of evolutions in order to co-evolve the feature mapping. Finally, an implementation of the evolution system in the SPL tool FeatureMapper is provided to demonstrate the capabilities of the presented approach when co-evolving models and feature mapping of an SPL.
- V. Alves, R. Gheyi, T. Massoni, U. Kulesza, P. Borba, and C. Lucena. Refactoring Product Lines. In Proceedings of the 5th International Conference on Generative Programming and Component Engineering, GPCE '06, 2006. Google ScholarDigital Library
- N. Anquetil, U. Kulesza, R. Mitschke, A. Moreira, J.-C. Royer, A. Rummler, and A. Sousa. A Model-driven Traceability Framework for Software Product Lines. Software and Systems Modeling, 2010. Google ScholarDigital Library
- P. Borba. An Introduction to Software Product Line Refactoring. In J. a. Fernandes, R. Lämmel, J. Visser, and J. a. Saraiva, editors, Generative and Transformational Techniques in Software Engineering III. Springer Berlin/Heidelberg, 2011. Google ScholarDigital Library
- P. Borba, L. Teixeira, and R. Gheyi. A Theory of Software Product Line Refinement. In A. Cavalcanti, D. Deharbe, M.-C. Gaudel, and J. Woodcock, editors, Theoretical Aspects of Computing (ICTAC 2010). Springer Berlin/Heidelberg, 2010. Google ScholarDigital Library
- M. Fowler. Refactoring - Improving the Design of Existing Code. Addison-Wesley Longman, 1999. Google ScholarDigital Library
- F. Heidenreich, J. Johannes, M. Seifert, and C. Wende. Closing the Gap between Modelling and Java. In M. van den Brand and J. Gray, editors, Proceedings of the 2nd International Conference on Software Language Engineering (SLE 2009), Revised Selected Papers, 2010. Google ScholarDigital Library
- F. Heidenreich, J. Kopcsek, and C. Wende. FeatureMapper: Mapping Features to Models. In Companion of the 30th international conference on Software engineering, ICSE Companion '08, 2008. Google ScholarDigital Library
- W. Heider. Reactive and Iterative Evolution of Model-based Product Lines. In Proceedings of the Doctoral Symposium at the 18th IEEE International Requirements Engineering Conference (RE'10), 2010.Google Scholar
- W. Heider and R. Rabiser. Tool Support for Evolution of Product Lines through Rapid Feedback from Application Engineering. In Proceedings of the 4th International Workshop on Variability Modelling of Software-intensive Systems, VaMoS '11, 2010.Google Scholar
- W. Jirapanthong and A. Zisman. XTraQue: Traceability for Product Line Systems. Software and Systems Modeling, 2009.Google ScholarCross Ref
- M. M. Lehman. Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE, 1980.Google Scholar
- T. Mens, K. Czarnecki, and P. van Gorp. A Taxonomy of Model Transformations. In J. Bezivin and R. Heckel, editors, Language Engineering for Model-Driven Software Development, 2005.Google Scholar
- L. Neves, L. Teixeira, D. Sena, V. Alves, U. Kulezsa, and P. Borba. Investigating the Safe Evolution of Software Product Lines. In Proceedings of the 10th International Conference on Generative Programming and Component Engineering, GPCE '11, 2011. Google ScholarDigital Library
- K. Pohl, G. Böckle, and F. J. van der Linden. Software Product Line Engineering - Foundations, Principles and Techniques. Springer Berlin/Heidelberg, 2005. Google ScholarDigital Library
- I. Porres. Model Refactorings as Rule-based Update Transformations. In UML 2003 - The Unified Modeling Language. Modeling Languages and Applications. Springer Berlin/Heidelberg, 2003.Google ScholarCross Ref
- J. Reimann, M. Seifert, and U. Aßmann. Role-Based Generic Model Refactoring. In D. Petriu, N. Rouquette, and Ø. Haugen, editors, Model Driven Engineering Languages and Systems. Springer Berlin/Heidelberg, 2010. Google ScholarDigital Library
- K. Schmid, R. Rabiser, and P. Grünbacher. A Comparison of Decision Modeling Approaches in Product Lines. In Proceedings of the 5th International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS '11, 2011. Google ScholarDigital Library
- S. Schulze, T. Thüm, M. Kuhlemann, and G. Saake. Variant-Preserving Refactoring in Feature-Oriented Software Product Lines. In Proceedings of the 6th Workshop on Variability Modeling of Software-Intensive Systems, VaMoS '12, 2012. Google ScholarDigital Library
- C. Seidl. Evolution in Feature-Oriented Model-Based Software Product Line Engineering. Diploma Thesis, Technische Universität Dresden, 2011.Google Scholar
- F. Steimann. On the Representation of Roles in Object-oriented and Conceptual Modelling. Data and Knowledge Engineering, 2000. Google ScholarDigital Library
- M. Vierhauser, P. Grünbacher, A. Egyed, R. Rabiser, and W. Heider. Flexible and Scalable Consistency Checking on Product Line Variability Models. In Proceedings of the International Conference on Automated Software Engineering, 2010. Google ScholarDigital Library
Index Terms
- Co-evolution of models and feature mapping in software product lines
Recommendations
Managing evolution in software product lines: a model-checking perspective
VaMoS '12: Proceedings of the 6th International Workshop on Variability Modeling of Software-Intensive SystemsIn Software Product Line (SPL) engineering, similar software products are developed in families rather than individually. Developing similar software at once leads to new challenges. In particular, the model checking problem for SPL is harder because it ...
Refactoring delta-oriented software product lines
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software developmentDelta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been ...
Co-evolution Analysis for Software Product Lines
ENASE 2015: Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software EngineeringThe purpose of our approach is to study the co-evolution of the platform and the products of software product
lines. Because the platform must be able to derive all the family products, products are not allowed to evolve
independently from the plateform,...
Comments