ABSTRACT
Software product lines (SPLs) and software ecosystems (SECOs) are approaches to capturing families of closely related software systems in terms of common and variable functionality. SPLs and especially SECOs are subject to evolution to adapt to new or changed requirements resulting in different versions of the software family and its variable assets. These versions may have to be maintained and used for products even after they were superseded by newer versions. Variability models describing valid combinations of variable assets, such as feature models, capture variability in space (configuration), but not variability in time (evolution) making it impossible to respect versions of variable assets in product definitions on a conceptual level. In this paper, we propose Hyper Feature Models (HFMs) explicitly providing feature versions as configurable units for product definition. Furthermore, we provide a version-aware constraint language to specify dependencies between features and ranges of feature versions as well as a procedure to automatically select valid combinations of versions for a pre-configuration of features. We demonstrate our approach in a case study.
- D. Benavides, S. Segura, and A. Ruiz-Cortés. Automated Analysis of Feature Models 20 Years Later: A Literature Review. Information Systems, 2010. Google ScholarDigital Library
- J. Bosch. From Software Product Lines to Software Ecosystems. In Proceedings of the 13th International Software Product Line Conference, SPLC, 2009. Google ScholarDigital Library
- K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000. Google ScholarDigital Library
- K. Czarnecki, S. Helsen, and U. Eisenecker. Formalizing Cardinality-Based Feature Models and their Specialization. Software Process: Improvement and Practice, 10(1):7--29, 2005.Google ScholarCross Ref
- S. Ducasse, T. Gîrba, and J. Favre. Modeling Software Evolution by Treating History as a First Class Entity. Electronic Notes in Theoretical Computer Science, 2005.Google ScholarDigital Library
- P. Ebraert, A. Classen, P. Heymans, and T. D'Hondt. Feature Diagrams for Change-Oriented Programming. In ICFI, 2009.Google Scholar
- P. Ebraert, J. Vallejos, P. Costanza, E. Van Paesschen, and T. D'Hondt. Change-Oriented Software Engineering. In Proceedings of the International Conference on Dynamic Languages. ACM, 2007. Google ScholarDigital Library
- C. Elsner, G. Botterweck, D. Lohmann, and W. Schröder-Preikschat. Variability in Time-Product Line Variability and Evolution Revisited. VaMoS, 10:131--137, 2010.Google Scholar
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-oriented Domain Analysis (FODA) Feasibility Study. Technical report, DTIC Document, 1990.Google ScholarCross Ref
- R. Lotufo, S. She, T. Berger, K. Czarnecki, and A. Wasowski. Evolution of the Linux Kernel Variability Model. In Software Product Lines: Going Beyond. Springer Berlin Heidelberg, 2010. Google ScholarDigital Library
- R. Mitschke and M. Eichberg. Supporting the Evolution of Software Product Lines. In ECMDA Traceability Workshop, ECMDA-TW, 2008.Google Scholar
- L. Passos, K. Czarnecki, S. Apel, A. Wasowski, C. Kästner, J. Guo, and C. Hunsen. Feature-Oriented Software Evolution. In The Seventh International Workshop on Variability Modelling of Software-intensive Systems. ACM, 2013. Google ScholarDigital Library
- L. Passos, J. Guo, L. Teixeira, K. Czarnecki, A. Wasowski, and P. Borba. Coevolution of Variability Models and Related Artifacts: A Case Study from the Linux Kernel. In 17th International Software Product Line Conference. ACM, 2013. 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. Schaefer, L. Bettini, V. Bono, F. Damiani, and N. Tanzarella. Delta-Oriented Programming of Software Product Lines. In Software Product Lines: Going Beyond, pages 77--91. Springer, 2010. Google ScholarDigital Library
- J. Schroeter, M. Lochau, and T. Winkelmann. Multi-Perspectives on Feature Models. In Model Driven Engineering Languages and Systems. Springer Berlin Heidelberg, 2012. Google ScholarDigital Library
- M. Schubanz, A. Pleuss, G. Botterweck, and C. Lewerentz. Modeling Rationale Over Time to Support Product Line Evolution Planning. In Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems, VaMoS '12, pages 193--199, 2012. Google ScholarDigital Library
- M. Schubanz, A. Pleuss, L. Pradhan, G. Botterweck, and A. K. Thurimella. Model-Driven Planning and Monitoring of Long-Term Software Product Line Evolution. In VaMoS, page 18, 2013. Google ScholarDigital Library
- C. Seidl and U. Aßmann. Towards Modeling and Analyzing Variability in Evolving Software Ecosystems. In Proceedings of the 7th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), VaMoS'13, 2013. Google ScholarDigital Library
- C. Seidl, F. Heidenreich, and U. Aßmann. Co-Evolution of Models and Feature Mapping in Software Product Lines. In Proceedings of the 16th International Software Product Line Conference(SPLC), SPLC'12, 2012. Google ScholarDigital Library
- T. Thüm, D. Batory, and C. Kästner. Reasoning About Edits to Feature Models. In 31st International Conference on Software Engineering, 2009. Google ScholarDigital Library
- E. Tsang. Foundations of Constraint Satisfaction. Academic Press, 1995.Google Scholar
- J. van Gurp and C. Prehofer. Version Management Tools as a Basis for Integrating Product Derivation and Software Product Families. In Proceedings of the Workshop on Variability Management-Working with Variability Mechanisms at SPLC, 2006.Google Scholar
Index Terms
- Capturing variability in space and time with hyper feature models
Recommendations
Integrated management of variability in space and time in software families
SPLC '14: Proceedings of the 18th International Software Product Line Conference - Volume 1Software product lines (SPLs) and software ecosystems (SECOs) encompass a family of closely related software systems in terms of common and variable assets that are configured to concrete products (variability in space). Over the course of time, ...
Co-evolution of models and feature mapping in software product lines
SPLC '12: Proceedings of the 16th International Software Product Line Conference - Volume 1Software 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 ...
Towards modeling and analyzing variability in evolving software ecosystems
VaMoS '13: Proceedings of the 7th International Workshop on Variability Modelling of Software-Intensive SystemsA software ecosystem (SECO) encompasses a set of interdependent software systems where individual products are created by combining a common software platform with variable extensions. Examples are the SECOs surrounding Eclipse or Android. Due to ...
Comments