Advertisement

Integrated revision and variation control for evolving model-driven software product lines

  • Felix Schwägerl
  • Bernhard WestfechtelEmail author
Regular Paper
  • 12 Downloads

Abstract

Software engineering projects are faced with abstraction, which is achieved by software models, historical evolution, which is addressed by revision control, and variability, which is managed with the help of software product line engineering. Addressing these phenomena by separate tools ignores obvious overlaps and therefore fails at exploiting synergies between revision and variation control for models. In this article, we present a conceptual framework for integrated revision and variation control of model-driven software projects. The framework reuses the abstractions of revision graphs and feature models and follows an iterative, revision-control-like approach to software product line engineering called product-based product line development. A single version (i.e., a variant of a selected revision) is made available in a workspace, where the user may apply arbitrary modifications. Based on a user-provided specification of the affected variants, the changes are automatically written back to a transparent repository that relies on an internal multi-version storage. The uniform handling of revisions and variants of models is achieved by transparently mapping version concepts to a semantic base layer, which is defined upon propositional logic. At the heart of the conceptual framework is a dynamic filtered editing model, which allows that the versioned artifacts and the feature model co-evolve. We contribute algorithms for checkout and commit, which satisfy a set of consistency constraints referring to variant specifications in an evolving feature model. This article furthermore addresses the orchestration of collaborative development by distributed replication and the well formedness of text and model artifacts to be checked out into the workspace. The Eclipse-based tool SuperMod demonstrates the feasibility of the conceptual framework. It allows the user to reuse arbitrary editing tools for text-based programming and/or Ecore-based modeling languages. An evaluation based on three case studies investigates the properties of SuperMod with a specific focus on filtered editing. The evaluation demonstrates that the dynamic filtered editing model reduces the cognitive complexity and the amount of user interaction necessary for variation control when compared to unfiltered model-driven approaches to software product line engineering.

Keywords

Model versioning Model-driven product lines Variation control systems Tool integration Integrated historical and logical versioning 

Notes

Acknowledgements

The authors greatly appreciate the constructive comments of the unknown reviewers. Thomas Buchmann and Johannes Schröpfer provided valuable assistance in the preparation of the final version of this article.

Supplementary material

References

  1. 1.
    Altmanninger, K., Kappel, G., Kusel, A., Retschitzegger, W., Seidl, M., Schwinger, W., Wimmer, M.: AMOR—towards adaptable model versioning. In: 1st International Workshop on Model Co-Evolution and Consistency Management (MCCM’08), Workshop at MODELS’08, Toulouse, France, 2008. ACM (2008)Google Scholar
  2. 2.
    Altmanninger, K., Seidl, M., Wimmer, M.: A survey on model versioning approaches. Int. J. Web Inf. Syst. 5(3), 271–304 (2009)CrossRefGoogle Scholar
  3. 3.
    Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, Berlin (2013)CrossRefGoogle Scholar
  4. 4.
    Apel, S., Kästner, C., Größlinger, A., Lengauer, C.: Type safety for feature-oriented product lines. Autom. Softw. Eng. 17(3), 251–300 (2010)CrossRefGoogle Scholar
  5. 5.
    Apel, S., Kästner, C., Lengauer, C.: FEATUREHOUSE: language-independent, automated software composition. In: 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, Proceedings, pp. 221–231. IEEE (2009)Google Scholar
  6. 6.
    Basili, V.R., Caldiera, G., Rombach, H.D.: Goal question metric paradigm. In: Encyclopedia of Software Engineering, vol. 1, pp. 528–532. Wiley (1994)Google Scholar
  7. 7.
    Batory, D.: Feature models, grammars, and propositional formulas. In: Software Product Lines, 9th International Conference, SPLC 2005, Rennes, France, 26–29 Sept 2005, Proceedings, pp. 7–20. Springer (2005)Google Scholar
  8. 8.
    Behringer, B., Palz, J., Berger, T.: PEoPL: projectional editing of product lines. In: Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, 20–28 May 2017, pp. 563–574. IEEE/ACM (2017)Google Scholar
  9. 9.
    Buchmann, T.: Valkyrie: a UML-based model-driven environment for model-driven software engineering. In: ICSOFT 2012—Proceedings of the 7th International Conference on Software Paradigm Trends, Rome, Italy, 24–27 July, 2012, pp. 147–157. SCITEPRESS (2012)Google Scholar
  10. 10.
    Buchmann, T., Schwägerl, F.: Ensuring well-formedness of configured domain models in model-driven product lines based on negative variability. In: 4th International Workshop on Feature-Oriented Software Development, FOSD ’12, Dresden, Germany, 24–25 Sept 2012, pp. 37–44. ACM (2012)Google Scholar
  11. 11.
    Buchmann, T., Schwägerl, F.: FAMILE: tool support for evolving model-driven product lines. In: Joint Proceedings of Co-located Events at the 8th European Conference on Modelling Foundations and Applications, pp. 59–62. Technical University of Denmark (DTU) (2012)Google Scholar
  12. 12.
    Buchmann, T., Schwägerl, F.: A repair-oriented approach to product consistency in product lines using negative variability. Computer Science—Research and Development (2016) (Online first) Google Scholar
  13. 13.
    Chacon, S.: Pro Git. Apress, New York City (2009)CrossRefGoogle Scholar
  14. 14.
    Collins-Sussman, B., Fitzpatrick, B.W., Michael Pilato, C.: Version Control with Subversion. O’Reilly, Newton (2004)Google Scholar
  15. 15.
    Conradi, R., Westfechtel, B.: Towards a uniform version model for software configuration management. In: System Configuration Management, ICSE’97 SCM-7 Workshop, Boston, MA, USA, 18–19 May 1997, Proceedings, pp. 1–17. Springer (1997)Google Scholar
  16. 16.
    Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Comput. Surv. 30(2), 232–282 (1998)CrossRefGoogle Scholar
  17. 17.
    Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Generative Programming and Component Engineering, 5th International Conference, GPCE 2006, Portland, Oregon, USA, 22–26 Oct 2006, Proceedings, pp. 211–220. ACM (2006)Google Scholar
  18. 18.
    Estublier, J., Casallas, R.: The Adele configuration manager. In: Configuration Management. Trends in Software, vol. 2, pp. 99–134. Wiley (1994)Google Scholar
  19. 19.
    Estublier, J., Casallas, R.: Three dimensional versioning. In: Estublier, J. (ed.) Software Configuration Management: Selected Papers SCM-4 and SCM-5. Lecture Notes in Computer Science, vol. 1005, pp. 118–135. Springer, Seattle (1995)CrossRefGoogle Scholar
  20. 20.
    Fitting, M.: Kleene’s logic, generalized. J. Logic Comput. 1(6), 797–810 (1991)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman, Boston (1995)zbMATHGoogle Scholar
  22. 22.
    Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. ACM, New York City (2005)CrossRefGoogle Scholar
  23. 23.
    Haugen, Ø., Møller-Pedersen, B., Oldevik, J., Solberg, A.: An MDA-based framework for model-driven product derivation. In: Proceedings of the IASTED Conference on Software Engineering and Applications, 9–11 Nov 2004, MIT, Cambridge, MA, USA, pp. 709–714. IASTED/ACTA Press (2004)Google Scholar
  24. 24.
    Heidenreich, F.: Towards systematic ensuring well-formedness of software product lines. In: Proceedings of the 1st International Workshop on Feature-Oriented Software Development, FOSD 2009, Denver, Colorado, USA, 6 Oct 2009, pp. 69–74. ACM (2009)Google Scholar
  25. 25.
    Heidenreich, F., Kopcsek, J., Wende, C.: FeatureMapper: mapping features to models. In: 30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany, 10–18 May 2008, Companion Volume, pp. 943–944. ACM (2008)Google Scholar
  26. 26.
    Hofer, W., Elsner, C., Blendinger, F., Schröder-Preikschat, W., Lohmann, D.: Toolchain-independent variant management with the Leviathan file system. In: Proceedings of the 2nd International Workshop on Feature-Oriented Software Development, FOSD 2010, Eindhoven, Netherlands, 10 Oct 2010, pp. 18–24. ACM (2010)Google Scholar
  27. 27.
    Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E, Peterson, A.S..: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University (1990)Google Scholar
  28. 28.
    Kästner, C., Apel, S., Trujillo, S., Kuhlemann, M., Batory, D.S.: Guaranteeing syntactic correctness for all product line variants: a language-independent approach. In: Objects, Components, Models and Patterns, 47th International Conference, TOOLS EUROPE 2009, Zurich, Switzerland, June 29–July 3, 2009. Proceedings, pp. 175–194. Springer (2009)Google Scholar
  29. 29.
    Kästner, C., Trujillo, S., Apel, S.: Visualizing software product line variabilities in source code. In: Software Product Lines, 12th International Conference, SPLC 2008, Limerick, Ireland, 8–12 Sept 2008, Proceedings (Workshops), vol. 2, pp. 303–313. IEEE (2008)Google Scholar
  30. 30.
    Kruskal, V.J.: Managing multi-version programs with an editor. IBM J. Res. Dev. 28(1), 74–81 (1984)CrossRefGoogle Scholar
  31. 31.
    Li, Y., Zhu, C., Rubin, J., Chechik, M.: FHistorian: Locating features in version histories. In: Proceedings of the 21st International Systems and Software Product Line Conference, SPLC 2017, Volume A, Sevilla, Spain, pp. 49–58 (2017)Google Scholar
  32. 32.
    Lie, A., Conradi, R., Didriksen, T., Karlsson, E.-A., Hallsteinsen, S.O., Holager, P.: Change oriented versioning. In: Ghezzi, C., McDermid, J.A. (eds.) Proceedings of the 2nd European Software Engineering Conference. LNCS 387, pp. 191–202. Springer, Coventry (1989)Google Scholar
  33. 33.
    Linsbauer, L., Berger, T., Grünbacher, P.: A classification of variation control systems. In: Proceedings of the 16th International Conference on Generative Programming, GPCE 2017, Vancouver, BC, Canada, 23–24 Oct 2017, pp. 49–62. ACM (2017)Google Scholar
  34. 34.
    Linsbauer, L., Egyed, A., Lopez-Herrejon, R.E.: A variability aware configuration management and revision control platform. In: Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX, USA, 14–22 May 2016, Companion Volume, pp. 803–806. ACM (2016)Google Scholar
  35. 35.
    Lity, S., Nahrendorf, S., Thüm, T., Seidl, C., Schaefer, I.: 175% modeling for product-line evolution of domain artifacts. In: Proceedings of the 12th International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS 2018, Madrid, Spain, pp. 27–34. ACM (2018)Google Scholar
  36. 36.
    Lopez-Herrejon, R.E., Batory, D.S.: A standard problem for evaluating product-line methodologies. In: Generative and Component-Based Software Engineering, 3rd International Conference, GCSE 2001, Erfurt, Germany, 9–13 Sept 2001, Proceedings, pp. 10–24. Springer (2001)Google Scholar
  37. 37.
    McVoy, L.: Preliminary product line support in BitKeeper. In: Proceedings of the 19th International Conference on Software Product Lines, SPLC 2015, pp. 245–252, Nashville, Tennessee. ACM (2015)Google Scholar
  38. 38.
    Mitschke, R., Eichberg, M.: Supporting the evolution of software product lines. In: ECMDA Traceability Workshop (ECMDA-TW), Berlin, Germany, 2008, Proceedings, pp. 87–96. SINTEF (2008)Google Scholar
  39. 39.
    Munch, B.P.: Versioning in a software engineering database—the change oriented way. Ph.D. thesis, NTNU Trondheim, Norway (1993)Google Scholar
  40. 40.
    Nieke, M., Engel, G., Seidl, C.: DarwinSPL: An integrated tool suite for modeling evolving context-aware software product lines. In: Proceedings of the Eleventh International Workshop on Variability Modelling of Software-intensive Systems, VaMoS 2017, pp. 92–99, Eindhoven, Netherlands, (2017). ACMGoogle Scholar
  41. 41.
    Nieke, M., Seidl, C., Schuster, S.: Guaranteeing configuration validity in evolving software product lines. In: Proceedings of the Tenth International Workshop on Variability Modelling of Software-intensive Systems, VaMoS 2016, pp. 73–80, Salvador, Brazil, (2016). ACMGoogle Scholar
  42. 42.
    Object Management Group (OMG): Documents Associated With Meta Objet Facility (MOF) Version 2.5.1. Needham, MA (2016)Google Scholar
  43. 43.
    Pfofe, T., Thüm, T., Schulze, S., Fenske, W., Schaefer, I.: Synchronizing software variants with VariantSync. In: Proceedings of the 20th International Systems and Software Product Line Conference, SPLC 2016, Beijing, China, 16–23 Sept 2016, pp. 329–332. ACM (2016)Google Scholar
  44. 44.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Berlin (2005)CrossRefzbMATHGoogle Scholar
  45. 45.
    Reichenberger, C.: VOODOO—a tool for orthogonal version management. In: Software Configuration Management, ICSE SCM-4 and SCM-5 Workshops, Selected Papers, pp. 61–79. Springer (1995)Google Scholar
  46. 46.
    Sarnak, N, Bernstein, R.L., Kruskal, V.: Creation and maintenance of multiple versions. In: Proceedings of the International Workshop on Software Version and Configuration Control, 27–29 Jan 1988, Grassau, Germany, pp. 264–275. Teubner (1988)Google Scholar
  47. 47.
    Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Software Product Lines: Going Beyond—14th International Conference, SPLC 2010, Jeju Island, South Korea, 13–17 Sept 2010. Proceedings, pp. 77–91. Springer (2010)Google Scholar
  48. 48.
    Schwägerl, F.: Version control and product lines in model-driven software engineering. Ph.D. thesis, University of Bayreuth, Germany (2018)Google Scholar
  49. 49.
    Schwägerl, F., Buchmann, T., Uhrig, S., Westfechtel, B.: Towards the integration of model-driven engineering, software product line engineering, and software configuration management. In: MODELSWARD 2015—Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, Angers, France, 9–11 Feb 2015, pp. 5–18. SCITEPRESS (2015)Google Scholar
  50. 50.
    Schwägerl, F., Buchmann, T., Uhrig, S., Westfechtel, B.: Realizing a conceptual framework to integrate model-driven engineering, software product line engineering, and software configuration management. In: Desfray, P., Filipe, J., Hammoudi, S., Pires, L. (eds.) Model-Driven Engineering and Software Development. Communications in Computer and Information Science, vol. 580, pp. 21–44. Springer, Cham (2016)CrossRefGoogle Scholar
  51. 51.
    Schwägerl, F., Buchmann, T., Westfechtel, B.: SuperMod—a model-driven tool that combines version control and software product line engineering. In: ICSOFT-PT 2015—Proceedings of the 10th International Conference on Software Paradigm Trends, Colmar, Alsace, France, 20–22 July 2015, pp. 5–18. SCITEPRESS (2015)Google Scholar
  52. 52.
    Schwägerl, F., Buchmann, T., Westfechtel, B.: Filtered model-driven product line engineering with SuperMod: the home automation case. In: Lorenz, P., Cardoso, J., Maciaszek, L., van Sinderen, M. (eds.) Software Technologies. Communications in Computer and Information Science, vol. 580, pp. 19–41. Springer, Cham (2016)CrossRefGoogle Scholar
  53. 53.
    Schwägerl, F., Uhrig, S., Westfechtel, B.: A graph-based algorithm for three-way merging of ordered collections in EMF models. Sci. Comput. Program. 113(1), 51–81 (2015)CrossRefGoogle Scholar
  54. 54.
    Schwägerl, F., Westfechtel, B.: Collaborative and distributed management of versioned software product lines. In: Proceedings of the 11th International Joint Conference on Software Technologies (ICSOFT 2016)—Volume 2: ICSOFT-PT, Lisbon, Portugal, 24–26 July 2016, pp. 83–94. SCITEPRESS (2016)Google Scholar
  55. 55.
    Schwägerl, F., Westfechtel, B.: SuperMod: tool support for collaborative filtered model-driven software product line engineering. In: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016, Singapore, 3–7 Sept 2016, pp. 822–827. ACM (2016)Google Scholar
  56. 56.
    Schwägerl, F., Westfechtel, B.: Maintaining workspace consistency in filtered editing of dynamically evolving model-driven software product lines. In: Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2017, Porto, Portugal, 19–21 Feb 2017, pp. 15–28. SCITEPRESS (2017)Google Scholar
  57. 57.
    Seidl, C., Schaefer, I., Aßmann, U.: Integrated management of variability in space and time in software families. In: 18th International Software Product Line Conference, SPLC ’14, Florence, Italy, 15–19 Sept 2014, pp. 22–31. ACM (2014)Google Scholar
  58. 58.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF—Eclipse Modeling Framework. Addison-Wesley, Boston (2009)Google Scholar
  59. 59.
    Stănciulescu, Ş., Berger, T., Walkingshaw, E., Wąsowski, A.: Concepts, operations and feasibility of a projection-based variation control systems. In: 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016, Raleigh, NC, USA, 2–7 Oct 2016, pp. 323–333. IEEE (2016)Google Scholar
  60. 60.
    Thao, C.: Managing evolution of software product lines. In: 34th International Conference on Software Engineering, ICSE 2012, 2–9 June 2012, Zurich, Switzerland, pp. 1619–1621. IEEE (2012)Google Scholar
  61. 61.
    Thüm, T., Apel, S., Kästner, C., Schaefer, I., Saake, G.: A classification and survey of analysis strategies for software product lines. ACM Comput. Surv. 47(1), 6:1–6:45 (2014)CrossRefGoogle Scholar
  62. 62.
    Tichy, W.F.: Tools for software configuration management. In: Winkler, J.F.H. (ed.) Proceedings of the International Workshop on Software Version and Configuration Control. Berichte des German Chapter of the ACM, vol. 30, pp. 1–20, Grassau, Germany. Teubner Verlag (1988)Google Scholar
  63. 63.
    Völter, M., Stahl, T., Bettin, J., Haase, A., Helsen, S.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, New York (2006)Google Scholar
  64. 64.
    Walkingshaw, E., Ostermann, K.: Projectional editing of variational software. In: Generative Programming: Concepts and Experiences, GPCE’14, Vasteras, Sweden, 15–16 Sept 2014, pp. 29–38. ACM (2014)Google Scholar
  65. 65.
    Westfechtel, B.: Merging of EMF models–formal foundations. Soft. Syst. Model. 13(2), 757–788 (2014)CrossRefGoogle Scholar
  66. 66.
    Westfechtel, B., Munch, B.P., Conradi, R.: A layered architecture for uniform version management. IEEE Trans. Softw. Eng. 27(12), 1111–1133 (2001)CrossRefGoogle Scholar
  67. 67.
    Zeller, A., Snelting, G.: Unified versioning through feature logic. ACM Trans. Softw. Eng. Methodol. 6(4), 398–441 (1997)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.Applied Computer Science IUniversity of BayreuthBayreuthGermany

Personalised recommendations