Software & Systems Modeling

, Volume 13, Issue 4, pp 1367–1394

Extraction and evolution of architectural variability models in plugin-based systems

  • Mathieu Acher
  • Anthony Cleve
  • Philippe Collet
  • Philippe Merle
  • Laurence Duchien
  • Philippe Lahire
Theme Section Paper

Abstract

Variability management is a key issue when building and evolving software-intensive systems, making it possible to extend, configure, customize and adapt such systems to customers’ needs and specific deployment contexts. A wide form of variability can be found in extensible software systems, typically built on top of plugin-based architectures that offer a (large) number of configuration options through plugins. In an ideal world, a software architect should be able to generate a system variant on-demand, corresponding to a particular assembly of plugins. To this end, the variation points and constraints between architectural elements should be properly modeled and maintained over time (i.e., for each version of an architecture). A crucial, yet error-prone and time-consuming, task for a software architect is to build an accurate representation of the variability of an architecture, in order to prevent unsafe architectural variants and reach the highest possible level of flexibility. In this article, we propose a reverse engineering process for producing a variability model (i.e., a feature model) of a plugin-based architecture. We develop automated techniques to extract and combine different variability descriptions, including a hierarchical software architecture model, a plugin dependency model and the software architect knowledge. By computing and reasoning about differences between versions of architectural feature models, software architect can control both the variability extraction and evolution processes. The proposed approach has been applied to a representative, large-scale plugin-based system (FraSCAti), considering different versions of its architecture. We report on our experience in this context.

Keywords

Variability Product lines Reverse engineering Software evolution Architecture recovery Configuration management 

References

  1. 1.
  2. 2.
    Acher, M., Cleve, A., Collet, P., Merle, P., Duchien, L., Lahire, P.: Reverse engineering architectural feature models. In: Proceedings of the 5th European Conference on Software Architecture (ECSA 2011), LNCS, pp. 220–235. Springer (2011)Google Scholar
  3. 3.
    Acher, M., Cleve, A., Perrouin, G., Heymans, P., Collet, P., Lahire, P., Vanbeneden, C.: On extracting feature models from product descriptions. In: Proceedings of the 6th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS 2012), pp. 45–54. ACM (2012)Google Scholar
  4. 4.
    Acher, M., Collet, P., Lahire, P., France, R.: Comparing approaches to implement feature model composition. In: Proceedings of the 6th European Conference on Modelling Foundations and Applications (ECMFA 2010), vol. 6138 of LNCS, pp. 3–19 (2010)Google Scholar
  5. 5.
    Acher, M., Collet, P., Lahire, P., France, R.: Separation of concerns in feature modeling: support and applications. In: Proceedings of the 11th International Conference on Aspect-Oriented Software Development (AOSD 2012), pp. 1–12. ACM (2012)Google Scholar
  6. 6.
    Acher, M., Collet, P., Lahire, P., France, R.: FAMILIAR: A domain-specific language for large scale management of feature models. Science of Computer Programming (SCP)—Special Issue on Programming Languages (to appear) (2013)Google Scholar
  7. 7.
    Acher, M., Heymans, P., Quinton, C., Merle, P., Collet, P., Lahire, P.: Feature model differences. In: Proceedings of the 24th International Conference on Advanced Information Systems Engineering (CAiSE’12), pp. 629–645. Springer (2012)Google Scholar
  8. 8.
    Acher, M., Heymans, P., Cleve, A., Heymans J.-L., Baudry, B.: Support for reverse engineering and maintaining feature models. In: Proceedings of the 7th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS’13), Pisa, Italie. ACM (2013)Google Scholar
  9. 9.
    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 (GPCE 2006), pp. 201–210. ACM (2006)Google Scholar
  10. 10.
    Alves, V., Schwanninger, C., Barbosa, L., Rashid, A., Sawyer, P., Rayson, P., Pohl, C., Rummler, A.: An exploratory study of information retrieval techniques in domain analysis. In: Proceedings of the 12th International Software Product Lines Conference (SPLC 2008), pp. 67–76. IEEE (2008)Google Scholar
  11. 11.
    Andersen, N., Czarnecki, K., She, S., Wasowski, A.: Efficient synthesis of feature models. In: Proceedings of SPLC’12, pp. 97–106. ACM Press (2012)Google Scholar
  12. 12.
    Apel, S., Kästner, C.: An overview of feature-oriented software development. J. Object Technol. (JOT) 8(5), 49–84 (2009)CrossRefGoogle Scholar
  13. 13.
    Bachmann, F., Bass, L.: Managing variability in software architectures. SIGSOFT Softw. Eng. Notes 26, 126–132 (2001)CrossRefGoogle Scholar
  14. 14.
    Benavides, D., Segura, S., Ruiz-Cortes, A.: Automated analysis of feature models 20 years later: a literature review. Inf. Syst. 35(6), 615–636 (2010)Google Scholar
  15. 15.
    Bille, P.: A survey on tree edit distance and related problems. Theor. Comput. Sci. 337(1–3), 217–239 (2005)MathSciNetCrossRefMATHGoogle Scholar
  16. 16.
    Classen, A., Boucher, Q., Heymans, P.: A text-based approach to feature modelling: Syntax and semantics of TVL. Sci. Comput. Program 76(12), 1130–1143 (2010)Google Scholar
  17. 17.
    Clements, P., Northrop, L.M.: Software Product Lines : Practices and Patterns. Addison-Wesley Professional, Reading (2001)Google Scholar
  18. 18.
    Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  19. 19.
    Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration through specialization and multilevel configuration of feature models. Software Process: Improvement and Practice 10(2), 143–169 (2005)CrossRefGoogle Scholar
  20. 20.
    Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering (GPCE 2006), pp. 211–220. ACM (2006)Google Scholar
  21. 21.
    Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: Proceedings of 11th International Software Product Lines Conference (SPLC 2007), pp. 23–34 (2007)Google Scholar
  22. 22.
    Dhungana, D., Grünbacher, P., Rabiser, R., Neumayer, T.: Structuring the modeling space and supporting evolution in software product line engineering. J. Sys. Softw. 83(7), 1108–1122 (2010)CrossRefGoogle Scholar
  23. 23.
    Ducasse, S., Pollet, D.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Softw. Eng. 35(4), 573–591 (2009)CrossRefGoogle Scholar
  24. 24.
    Duszynski, S.: A scalable goal-oriented approach to software variability recovery. In: Proceedings of the 15th International Software Product Line Conference, Vol. 2, SPLC ’11, pp. 42:1–42:8. ACM, New York (2011)Google Scholar
  25. 25.
    Euzenat, J., Shvaiko, P.: Ontology Matching. Springer, Heidelberg (2007)MATHGoogle Scholar
  26. 26.
    Fahrenberg, U., Legay, A., Wasowski, A.: Vision paper: make a difference! (semantically). In: Proceedings of the ACM/IEEE 14th International Conference on Model Driven Engineering Languages and Systems (MoDELS 2011), pp. 490–500 (2011)Google Scholar
  27. 27.
    Grünbacher, P., Rabiser, R., Dhungana, D., Lehofer, M.: Model-based customization and deployment of eclipse-based tools: industrial experiences. In: Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, ASE ’09, pp. 247–256. IEEE Computer Society, Washington (2009)Google Scholar
  28. 28.
    Hartmann, H., Trew, T.: Using feature diagrams with context variability to model multiple product lines for software supply chains. In: Proceedings of 12th International Software Product Lines Conference (SPLC 2008), pp. 12–21. IEEE (2008)Google Scholar
  29. 29.
    Haslinger, E.N., Lopez-Herrejon, R.E., Egyed, A.: Reverse engineering feature models from programs’ feature sets. In: WCRE’11, pp. 308–312. IEEE CS (2011)Google Scholar
  30. 30.
    Heidenreich, F., Sanchez, P., Santos, J., Zschaler, S., Alferez, M., Araujo, J., Fuentes, L., Uira K., Ana M., Rashid, A.: Relating feature models to other models of a software product line: a comparative study of featuremapper and vml*. Trans. Aspect-orient. Softw. Dev. VII, special issue on a common case study for aspect-oriented modeling 6210, 69–114 (2010)Google Scholar
  31. 31.
    Henard, C., Papadakis, M., Perrouin, G., Klein, J., Le Traon, Y.: Towards automated testing and fixing of re-engineered feature models. In: Proceedings of ICSE’13, NIER track, pp. 1245–1248 (2013)Google Scholar
  32. 32.
    Hubaux, A., Heymans, P., Schobbens, P.-Y., Deridder, D., Abbasi, E.K.: Supporting multiple perspectives in feature-based configuration. Softw. Syst. Model. (SoSyM) 12(3), 641–663 (2011)Google Scholar
  33. 33.
    Janota, M., Botterweck, G.: Formal approach to integrating feature and architecture models. In: Proceedings of the Theory and Practice of Software, 11th International Conference on Fundamental Approaches to Software Engineering, FASE’08/ETAPS’08, pp. 31–45. Springer, Berlin (2008). http://dl.acm.org/citation.cfm?id=1792838.1792842. ISBN 3-540-78742-9, 978-3-540-78742-6
  34. 34.
    John, I.: Capturing product line information from legacy user documentation. In: Käkölä, T., Dueńas, J.C. (eds.) Software Product Lines. Research Issues in Engineering and Management. pp. 127–159. Springer, Berlin (2006). http://dblp.uni-trier.de. ISBN 978-3-540-33252-7
  35. 35.
    Kang, K., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: Form: a feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng. 5(1), 143–168 (1998)CrossRefGoogle Scholar
  36. 36.
    Kästner, C., Thüm, T., Saake, G., Feigenspan, J., Leich, T., Wielgorz, F., Apel, S.: FeatureIDE: tool framework for feature-oriented software development. In: Proceedings of the 31st International Conference on Software Engineering (ICSE 2009). Formal Demonstration paper (2009)Google Scholar
  37. 37.
    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: Proceedings of the International Workshop on Comparison and Versioning of Software Models (CVSM 2009), pp. 1–6 (2009)Google Scholar
  38. 38.
    Loesch, F., Ploedereder, E.: Restructuring variability in software product lines using concept analysis of product configurations. In: Proceedings of the 11th European Conference on Software Maintenance and Reengineering, CSMR ’07, pp. 159–170. IEEE Computer Society, Washington (2007)Google Scholar
  39. 39.
    Lopez-Herrejon, R.E., Egyed, A.: Detecting inconsistencies in multi-view models with variability. In: Proceedings of the 6th European Conference on Modelling Foundations and Applications (ECMFA 2010), pp. 217–232 (2010)Google Scholar
  40. 40.
    Lopez-Herrejon, R.E., Egyed, A.: On the need of safe software product line architectures. In: Proceedings of the 4th European Conference on Software Architecture (ECSA 2010), vol. 6285 of LNCS, pp. 493–496. Springer (2010)Google Scholar
  41. 41.
    Lotufo, R., She, S., Berger, T., Czarnecki, K., Wasowski, A.: Evolution of the linux kernel variability model. In: Proceedings of the 14th International Conference on Software Product Lines (SPLC 2010), pp. 136–150 (2010)Google Scholar
  42. 42.
    Maoz, S., Ringert, J.O., Rumpe, B.: Addiff: semantic differencing for activity diagrams. In: Proceedings of the 2011 Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2011), pp. 179–189. ACM (2011)Google Scholar
  43. 43.
    Maoz, S., Ringert, J.O., Rumpe, B.: Cddiff: semantic differencing for class diagrams. In: Proceedings of the 25th European Conference on Object-oriented Programming (ECOOP 2011), pp. 230–254. Springer (2011)Google Scholar
  44. 44.
    Maoz, S., Ringert, J.O., Rumpe, B.: A manifesto for semantic model differencing. In: Proceedings of MODELS’10, pp. 194–203. Springer (2011)Google Scholar
  45. 45.
    Mendonca, M., Branco, M., Cowan, D.: S.P.L.O.T.: software product lines online tools. In: Proceedings of the 24th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2009), pp. 761–762. ACM (2009)Google Scholar
  46. 46.
    Mendonca, M., Wasowski, A., Czarnecki, K., Cowan, D.: Efficient compilation techniques for large scale feature models. In: Proceedings of the 7th International Conference on Generative Programming and Component Engineering (GPCE 2008), pp. 13–22. ACM (2008)Google Scholar
  47. 47.
    Merle, P. et al.: OW2 FraSCAti Web Site (2008). http://frascati.ow2.org
  48. 48.
    Metzger, A., Pohl, K., Heymans, P., Schobbens, P.-Y., Saval, G.: Disambiguating the documentation of variability in software product lines: a separation of concerns, formalization and automated analysis. In: Proceedings of the 15th IEEE International Requirements Engineering Conference (RE 2007), pp. 243–253 (2007)Google Scholar
  49. 49.
    Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: Bridging the gap between design and implementation. IEEE Trans. Softw. Eng. 27(4), 364–380 (2001)CrossRefGoogle Scholar
  50. 50.
    OASIS. Service Component Architecture (2007). http://www.oasis-opencsa.org/sca/
  51. 51.
    Bibliography on comparison and versioning of software models. http://pi.informatik.uni-siegen.de/CVSM
  52. 52.
    Parra, C.A., Cleve, A., Blanc, X., Duchien, L.: Feature-based composition of software architectures. In: Proceedings of the 4th European Conference on software Architecture (ECSA 2010), vol. 6285 of LNCS, pp. 230–245. Springer (2010)Google Scholar
  53. 53.
    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 (2011)Google Scholar
  54. 54.
    Pleuss, A., Botterweck, G., Dhungana, D., Polzer, A., Kowalewski, S.: Model-driven support for product line evolution on feature level. J. Syst. Softw. (JSS) (available online, in press) (2011). doi:10.1016/j.jss.2011.08.008
  55. 55.
    Rabkin, A., Katz, R.: Static extraction of program configuration options. In: Proceedings of the 33rd International Conference on Software Engineering (ICSE’11), pp. 131–140. ACM (2011)Google Scholar
  56. 56.
    Reiser, M.-O., Weber, M.: Multi-level feature trees: a pragmatic approach to managing highly complex product families. Requir. Eng. 12(2), 57–75 (2007)CrossRefGoogle Scholar
  57. 57.
    Lero research center. S2t2 configurator. http://download.lero.ie/spl/s2t2/
  58. 58.
    Rosenmüller, M., Siegmund, N., Thüm, T., Saake, G.: Multi-dimensional variability modeling. In: VaMoS’11, pp. 11–20. ACM (2011)Google Scholar
  59. 59.
    Ryssel, U., Ploennigs, J., Kabitzsch, K.: Automatic variation-point identification in function-block-based models. In: Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE ’10, pp. 23–32. ACM, New York (2010)Google Scholar
  60. 60.
    Schneeweiss, D., Botterweck, G.: Using flow maps to visualize product attributes during feature configuration. In: Proceedings of the 3rd International Workshop on Visualisation in Software Product Line Engineering (ViSPLE 2010) (2010)Google Scholar
  61. 61.
    Schobbens, P.-Y., Heymans, P., Trigaux, J.-C., Bontemps, Y.: Generic semantics of feature diagrams. Comput. Netw. 51(2), 456–479 (2007)CrossRefMATHGoogle Scholar
  62. 62.
    Schroeter, J., Lochau, M., Winkelmann, T.: Multi-perspectives on feature models. In: France, R. B., Kazmeier, J., Breu, R., Atkinson, C. (eds) MoDELS, vol. 7590 of Lecture Notes in Computer Science, pp. 252–268. Springer (2012)Google Scholar
  63. 63.
    Segura, S., Benavides, D., Ruiz-Cortes, A., Trinidad, P.: Automated merging of feature models using graph transformations. In: Post-proceedings of the Second Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2007), Vol. 5235, pp. 489–505 (2008)Google Scholar
  64. 64.
    Seinturier, L., Merle, P., Fournier, D., Dolet, N., Schiavoni, V., Stefani, J.-B.: Reconfigurable SCA Applications with the FraSCAti Platform. In: Proceedings of the 2009 IEEE International Conference on Services Computing (SCC 2009), pp. 268–275. IEEE (2009)Google Scholar
  65. 65.
    Seinturier, L., Merle, P., Rouvoy, R., Romero, D., Schiavoni, V., Stefani, J.-B.: A Component-based middleware platform for reconfigurable service-oriented architectures. Softw. Pract. Exp. 42(5), 559–583 (2012)CrossRefGoogle Scholar
  66. 66.
    She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse engineering feature models. In: Proceedings of the 33rd International Conference on Software Engineering (ICSE 2011), pp. 461–470. ACM (2011)Google Scholar
  67. 67.
    Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques: research articles. Softw. Pract. Exp. 35(8), 705–754 (2005)CrossRefGoogle Scholar
  68. 68.
    Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe composition of product lines. In: Proceedings of the 6th International Conference on Generative Programming and Component Engineering (GPCE 2007), pp. 95–104. ACM (2007)Google Scholar
  69. 69.
    Thompson, J.M., Heimdahl, M.P.E.: Structuring product family requirements for n-dimensional and hierarchical product lines. Requir. Eng. 8(1), 42–54 (2003)CrossRefGoogle Scholar
  70. 70.
    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 2009), pp. 254–264. ACM/IEEE (2009)Google Scholar
  71. 71.
    Thüm, T., Kästner, C., Erdweg, S., Siegmund, N.: Abstract features in feature modeling. In: de Almeida, S.E., Kishi, T., Schwanninger, C., John, I., Schmid, K. (eds), Proceedings of the 15th International Conference on Software Product Lines (SPLC 2011), pp. 191–200 (2011)Google Scholar
  72. 72.
    Tun, T.T., Boucher, Q., Classen, A., Hubaux, A., Heymans, P.: Relating requirements and feature configurations: A systematic approach. In: Proceedings of the 13th International Software Product Lines Conference (SPLC 2009), pp. 201–210. IEEE (2009)Google Scholar
  73. 73.
    Weston, N., Chitchyan, R., Rashid, A.: A framework for constructing semantically composable feature models from natural language requirements. In: Proceedings of 13th International Software Product Lines Conference (SPLC’09), pp. 211–220. ACM (2009)Google Scholar
  74. 74.
    Xue, Y.: Reengineering legacy software products into software product line based on automatic variability analysis. In: Taylor, R.N., Gall, H., Medvidovic, N. (eds) Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, pp. 1114–1117. ACM, Waikiki, Honolulu, 21–28 May 2011Google Scholar
  75. 75.
    Yang, Y., Peng, X., Zhao, W.: Domain feature model recovery from multiple applications using data access semantics and formal concept analysis. In: Proceedings of the 2009 16th Working Conference on Reverse Engineering, WCRE ’09, pp. 215–224. IEEE Computer Society, Washington (2009)Google Scholar
  76. 76.
    Zhang, X., Haugen, O., Moller-Pedersen, B.: Model comparison to synthesize a model-driven software product line. In: Proceedings of the 2011 15th International Software Product Line Conference, SPLC ’11, pp. 90–99. IEEE Computer Society, Washington (2011)Google Scholar
  77. 77.
    Ziadi, T., Frias, L., Almeida da Silva, M.A., Ziane, M.: Feature identification from the source code of product variants. In: 16th European Conference on Software Maintenance and Reengineering, CSMR 2012, pp. 417–422. IEEE, Szeged, Hungary, 27–30 March 2012Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Mathieu Acher
    • 1
  • Anthony Cleve
    • 2
  • Philippe Collet
    • 3
  • Philippe Merle
    • 4
  • Laurence Duchien
    • 4
  • Philippe Lahire
    • 3
  1. 1.Irisa, InriaUniversity of Rennes 1RennesFrance
  2. 2.PReCISE Research CentreUniversity of NamurNamurBelgium
  3. 3.Université Nice Sophia Antipolis—I3S (CNRS UMR 7271)Nice, Sophia AntipolisFrance
  4. 4.Inria Lille—Nord EuropeUniversity of Lille 1—CNRS UMRLilleFrance

Personalised recommendations