Automated Software Engineering

, Volume 23, Issue 4, pp 687–733 | Cite as

Reasoning about product-line evolution using complex feature model differences

  • Johannes Bürdek
  • Timo Kehrer
  • Malte Lochau
  • Dennis Reuling
  • Udo Kelter
  • Andy Schürr
Article

Abstract

Features define common and variable parts of the members of a (software) product line. Feature models are used to specify the set of all valid feature combinations. Feature models not only enjoy an intuitive tree-like graphical syntax, but also a precise formal semantics, which can be denoted as propositional formulae over Boolean feature variables. A product line usually constitutes a long-term investment and, therefore, has to undergo continuous evolution to meet ever-changing requirements. First of all, product-line evolution leads to changes of the feature model due to its central role in the product-line paradigm. As a result, product-line engineers are often faced with the problems that (1) feature models are changed in an ad-hoc manner without proper documentation, and (2) the semantic impact of feature diagram changes is unclear. In this article, we propose a comprehensive approach to tackle both challenges. For (1), our approach compares the old and new version of the diagram representation of a feature model and specifies the changes using complex edit operations on feature diagrams. In this way, feature model changes are automatically detected and formally documented. For (2), we propose an approach for reasoning about the semantic impact of diagram changes. We present a set of edit operations on feature diagrams, where complex operations are primarily derived from evolution scenarios observed in a real-world case study, i.e., a product line from the automation engineering domain. We evaluated our approach to demonstrate its applicability with respect to the case study, as well as its scalability concerning experimental data sets.

Keywords

Software evolution Model-driven engineering Software product lines Feature models 

Notes

Acknowledgments

This work was partially supported by the DFG (German Research Foundation) under the Priority Programme SPP 1593: Design For Future—Managed Software Evolution.

References

  1. Acher, M., Heymans, P., Collet, P., Quinton, C., Lahire, P., Merle, P.: Feature model differences. In: CAiSE–24th International Conference on Advanced Information Systems Engineering (2012)Google Scholar
  2. Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring product lines. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering (2006)Google Scholar
  3. Amelunxen, C., Schürr, A.: Formalizing model transformation rules for UML/MOF 2. IET Softw. J. 2(3), 204–222 (2007)CrossRefGoogle Scholar
  4. Arendt, T., Biermann, E., Jurack, S., Krause, C., Taentzer, G.: Henshin: advanced concepts and tools for in-place EMF model transformations. In: Model Driven Engineering Languages and Systems. Springer, Berlin Heidelberg (2010)Google Scholar
  5. Barone, I., De Lucia, A., Fasano, F., Rullo, E., Scanniello, G., Tortora, G.: COMOVER: Concurrent model versioning. In: IEEE International Conference on Software Maintenance, pp. 462–463. IEEE (2008)Google Scholar
  6. Batory, D.: Feature models, grammars, and propositional formulas. In: 9th SPLC, pp. 7–20 (2005)Google Scholar
  7. Bayer, J., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K., Widen, T., DeBaud, J.M.: PuLSE: A methodology to develop software product lines. Proceedings of the Symposiumon Software Reusability. SSR ’99, pp. 122–131. ACM, New York (1999)Google Scholar
  8. Benavides, D., Trinidad, P., Ruiz-Cortés, A.: Automated reasoning on feature models. In: CAiSE, pp. 491–503 (2005)Google Scholar
  9. Bendix, L., Emanuelsson, P.: Collaborative work with software models-industrial experience and requirements. In: IEEE International Conference on Model-Based Systems Engineering, pp. 60–68. IEEE (2009)Google Scholar
  10. Biermann, E., Ehrig, H., Ermel, C., Golas, U., Taentzer, G.: Parallel independence of amalgamated graph transformations applied to model transformation. In: Graph Transformations and Model-Driven Engineering, pp. 121–140. Springer (2010)Google Scholar
  11. Botterweck, G., Pleuss, A.: Evolution of software product lines. In: Evolving Software Systems, pp. 265–295 (2014)Google Scholar
  12. Botterweck, G., Pleuss, A., Dhungana, D., Polzer, A., Kowalewski, S.: EvoFM: Feature-driven planning of product-line evolution. In: ICSE Workshop on Product Line Approaches in Software Engineering, pp. 24–31. ACM (2010)Google Scholar
  13. Braun, S., Bartelt, C., Obermeier, M., Rausch, A., Vogel-Heuser, B.: Requirements on evolution management of product lines in automation engineering. In: International Conference on Mathematical Modelling. Wien, Österreich (2012)Google Scholar
  14. Bruegge, B., Dutoit, A.H., Wolf, T.: Sysiphus: Enabling informal collaboration in global software development. In: IEEE International Conference on Global Software Engineering, pp. 139–148 (2006)Google Scholar
  15. Brun, C., Pierantonio, A.: Model differences in the eclipse modeling framework. UPGRADE Eur. J. Inform. Prof. 9(2), 29–34 (2008)Google Scholar
  16. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston (2001)Google Scholar
  17. Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Comput. Surv. (CSUR) 30(2), 232–282 (1998)CrossRefGoogle Scholar
  18. Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3), 621–645 (2006)CrossRefGoogle Scholar
  19. 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
  20. Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation, vol. 373. Springer, Heidelberg (2006)MATHGoogle Scholar
  21. Gheyi, R., Massoni, T., Borba, P.: Automatically checking feature model refactorings. J. Univers. Comput. Sci. 17(5), 684–711 (2011)MATHGoogle Scholar
  22. Herrmannsdoerfer, M., Koegel, M.: Towards a generic operation recorder for model evolution. In: Proceedings of the 1st International Workshop on Model Comparison in Practice, pp. 76–81. ACM (2010)Google Scholar
  23. Johansen, M.F., Haugen, O., Fleurey, F.: An algorithm for generating t-wise covering arrays from large feature models. In: SPLC, pp. 46–55. ACM (2012)Google Scholar
  24. Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, S.A.: Feature oriented domain analysis (FODA). Tech. rep, CMU (1990)Google Scholar
  25. Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: Proceedings of the 30th International Conference on Software Engineering, ICSE ’08, pp. 311–320. ACM, New York (2008). doi:10.1145/1368088.1368131
  26. Kehrer, T., Kelter, U., Ohrndorf, M., Sollbach, T.: Understanding model evolution through semantically lifting model differences with SiLift. In: 28th IEEE International Conference on Software Maintenance (ICSM), pp. 638–641. IEEE (2012a)Google Scholar
  27. Kehrer, T., Kelter, U., Pietsch, P., Schmidt, M.: Adaptability of model comparison tools. In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 306–309 (2012b)Google Scholar
  28. Kehrer, T., Kelter, U., Reuling, D.: Workspace updates of visual models. In: Proceedings of the 29th ACM/IEEE international conference on Automated Software Engineering(ASE), pp. 827–830. ACM (2014a)Google Scholar
  29. Kehrer, T., Kelter, U., Taentzer, G.: A rule-based approach to the semantic lifting of model differences in the context of model versioning. In: Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering, pp. 163–172. IEEE (2011)Google Scholar
  30. Kehrer, T., Kelter, U., Taentzer, G.: Consistency-preserving edit scripts in model versioning. In: IEEE/ACM 28th International Conference on Automated Software Engineering (ASE), pp. 191–201. IEEE (2013)Google Scholar
  31. Kehrer, T., Kelter, U., Taentzer, G.: Propagation of software model changes in the context of industrial plant automation. at-Automatisierungstechnik 62(11), 803–814 (2014b)Google Scholar
  32. Kelter, U., Wehren, J., Niere, J.: A generic difference algorithm for UML models. In: Proceedings of the Software Engineering, pp. 105–116. LNI 64, GI (2005)Google Scholar
  33. Kögel, M.: Towards software configuration management for unified models. In: Proceedings of the International Workshop on Comparison and Versioning of Software Models, pp. 19–24. ACM (2008)Google Scholar
  34. Kolovos, D.S.: Establishing correspondences between models with the epsilon comparison language. In: Model Driven Architecture-Foundations and Applications, pp. 146–157. Springer (2009)Google Scholar
  35. Kolovos, D.S., Di Ruscio, D., Pierantonio, A., Paige, R.F.: Different models for model matching: an analysis of approaches to support model differencing. In: ICSE Workshop on Comparison and Versioning of Software Models (CVSM), pp. 1–6. IEEE (2009)Google Scholar
  36. Könemann, P.: Capturing the intention of model changes. In: Model Driven Engineering Languages and Systems, pp. 108–122. Springer (2010)Google Scholar
  37. Küster, J.M., Gerth, C., Förster, A., Engels, G.: Detecting and resolving process model differences in the absence of a change log. In: Business Process Management, pp. 244–260. Springer (2008)Google Scholar
  38. Langer, P., Wimmer, M., Brosch, P., Herrmannsdörfer, M., Seidl, M., Wieland, K., Kappel, G.: A posteriori operation detection in evolving software models. J. Syst. Softw. 86(2), 551–566 (2013)CrossRefGoogle Scholar
  39. Lin, Y., Gray, J., Jouault, F.: DSMDiff: a differentiation tool for domain-specific models. Eur. J. Inf. Syst. 16(4), 349–361 (2007)CrossRefGoogle Scholar
  40. Lippe, E., Van Oosterom, N.: Operation-based merging. In: ACM SIGSOFT Software Engineering Notes, 17:5, pp. 78–87. ACM (1992)Google Scholar
  41. Lity, S., Bürdek, J., Lochau, M., Berens, M., Schürr, A., Schaefer, I.: Re-engineering automation systems as dynamic software product lines. In: MBEES, pp. 43–52. fortiss GmbH (2015)Google Scholar
  42. Lotufo, R., She, S., Berger, T., Czarnecki, K., Wasowski, A.: Evolution of the linux kernel variability model. In: 14th SPLC, pp. 136–150. ACM (2010)Google Scholar
  43. Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28(5), 449–462 (2002)CrossRefGoogle Scholar
  44. Myers, E.W.: AnO (ND) difference algorithm and its variations. Algorithmica 1(1–4), 251–266 (1986)MathSciNetCrossRefMATHGoogle Scholar
  45. Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and merging of statecharts specifications. In: Proceedings of the 29th international conference on Software Engineering, pp. 54–64. IEEE Computer Society (2007)Google Scholar
  46. Object Management Group: Meta Object Facility (MOF) Core Specification Version 2.0 (2006). http://www.omg.org/cgi-bin/doc?formal/2006-01-01
  47. Pleuss, A., Botterweck, G., Dhungana, D., Polzer, A., Kowalewski, S.: Model-driven support for product line evolution on feature level. J. Syst. Softw. 85(10), 2261–2274 (2012). Automated Software EvolutionGoogle Scholar
  48. Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations. Principles and Techniques. Springer, Berlin (2005)CrossRefMATHGoogle Scholar
  49. Schneider, C., Zündorf, A., Niere, J.: CoObRA-a small step for development tools to collaborative environments. In: Workshop on Directions in Software Engineering Environments (2004)Google Scholar
  50. Schürr, A.: Logic based programmed structure rewriting systems. Fundam. Inf. 26(3,4), 363–385 (1996)Google Scholar
  51. Segura, S., Galindo, J., Benavides, D., Parejo, J., Ruiz-Corts, A.: BeTTy: Benchmarking and testing on the automated analysis of feature models. In: Eisenecker, U., Apel, S., Gnesi, S. (eds.) Sixth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’12), pp. 63–71. ACM, Leipzig, Germany (2012)CrossRefGoogle Scholar
  52. Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Pearson Education, London (2008)Google Scholar
  53. Stürmer, I., Dörr, H., Giese, H., Kelter, U., Schürr, A., Zündorf, A.: Das mate projekt: Visuelle spezifikation von matlab simulink/stateflow analysen und transformationen. In: MBEES, pp. 83–94 (2007). (available in German only)Google Scholar
  54. Sun, J., Zhang, H., Wang, H.: Formal semantics and verification for feature modeling. In: Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS), pp. 303–312. IEEE Computer Society, Washington, DC, USA (2005)Google Scholar
  55. Thüm, T., Batory, D., Kästner, C.: Reasoning about edits to feature models. In: Proceedings of the 31st International Conference on Software Engineering (ICSE), pp. 254–264. IEEE Computer Society, Washington, DC (2009)Google Scholar
  56. Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T.: FeatureIDE: an extensible framework for feature-oriented software development. Sci. Comput. Program. 79, 70–85 (2014)CrossRefGoogle Scholar
  57. Tichy, W.F.: The string-to-string correction problem with block moves. ACM Trans. Comput. Syst. (TOCS) 2(4), 309–321 (1984)MathSciNetCrossRefGoogle Scholar
  58. Tichy, W.F.: Tools for software configuration management. SCM 30, 1–20 (1988)Google Scholar
  59. Vogel-Heuser, B., Legat, C., Folmer, J., Feldmann, S.: Researching Evolution in Industrial Plant Automation: Scenarios and Documentation of the Pick and Place Unit. Technical Report TUM-AIS-TR-01-14-02, Technische Universität München (2014)Google Scholar
  60. Warmer, J.B., Kleppe, A.G.: The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley Professional, Boston (2003)Google Scholar
  61. Xing, Z., Stroulia, E.: Refactoring detection based on umldiff change-facts queries. In: 13th Working Conference on Reverse Engineering (WCRE), pp. 263–274. IEEE (2006)Google Scholar
  62. Xing, Z., Stroulia, E.: Differencing logical UML models. Autom. Softw. Eng. (ASE) 14(2), 215–259 (2007)CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Johannes Bürdek
    • 1
  • Timo Kehrer
    • 2
  • Malte Lochau
    • 1
  • Dennis Reuling
    • 2
  • Udo Kelter
    • 2
  • Andy Schürr
    • 1
  1. 1.Real-Time Systems GroupTU DarmstadtDarmstadtGermany
  2. 2.Software Engineering GroupUniversity of SiegenSiegenGermany

Personalised recommendations