Software diversity: state of the art and perspectives

  • Ina Schaefer
  • Rick Rabiser
  • Dave Clarke
  • Lorenzo Bettini
  • David Benavides
  • Goetz Botterweck
  • Animesh Pathak
  • Salvador Trujillo
  • Karina Villela
Introduction

Abstract

Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. Diversity has an impact on all phases of the software development process. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. This introductory article to the special section “Software Diversity—Modeling, Analysis and Evolution” provides an overview of the current state of the art in diverse systems development and discusses challenges and potential solutions. The article covers requirements analysis, design, implementation, verification and validation, maintenance and evolution as well as organizational aspects. It also provides an overview of the articles which are part of this special section and addresses particular issues of diverse systems development.

Keywords

Software diversity Variability Software product lines 

References

  1. 1.
    Acher, M., Collet, P., Lahire, P., France, R.: Composing feature models. In: SLE. LNCS, vol. 5969, pp. 62–81. Springer, Berlin (2009)Google Scholar
  2. 2.
    Ahmed F., Capretz L.: Managing the business of software product line: an empirical investigation of key business factors. Inf. Softw. Technol. 49(2), 194–208 (2007)CrossRefGoogle Scholar
  3. 3.
    Ahmed F., Capretz L., Samarabandu J.: Fuzzy inference system for software product family process evaluation. Inf. Sci. 178(3), 2780–2793 (2008)CrossRefGoogle Scholar
  4. 4.
    Ahmed F., Capretz L., Sheikh S.: Institutionalization of software product line: an empirical investigation of key organizational factors. J. Syst. Softw. 80(6), 836–849 (2007)CrossRefGoogle Scholar
  5. 5.
    Ali, M., Babar, M.A., Schmid, K.: A comparative survey of economic models for software product lines. In: SEAA, pp. 275–278 (2009)Google Scholar
  6. 6.
    Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring product lines. In: GPCE, pp. 201–210. ACM, New York (2006)Google Scholar
  7. 7.
    Ancona D., Zucca E.: A theory of mixin modules: algebraic laws and reduction semantics. Math. Struct. Comput. Sci. 12(6), 701–737 (2001)MathSciNetGoogle Scholar
  8. 8.
    Ancona D., Lagorio G., Zucca E.: Jam—designing a Java extension with mixins. ACM TOPLAS 25(5), 641–712 (2003)CrossRefGoogle Scholar
  9. 9.
    Anderson, C., Barbanera, F., Dezani-Ciancaglini, M., Drossopoulou, S.: Can addresses be types? (a case study: objects with delegation). In: WOOD. ENTCS, vol. 82, no. 8, pp. 1–22. Elsevier, Amsterdam (2003)Google Scholar
  10. 10.
    Apel S., Kästner C.: An overview of feature-oriented software development. J. Object Technol. 8(5), 49–84 (2009)CrossRefGoogle Scholar
  11. 11.
    Apel, S., Leich, T., Saake, G.: Aspectual mixin layers: aspects and features in concert. In: ICSE. ACM Press, New York, pp. 122–131 (2006)Google Scholar
  12. 12.
    Apel, S., Janda, F., Trujillo, S., Kästner, C.: Model superimposition in software product lines. In: International Conference on Model Transformation (ICMT) (2009)Google Scholar
  13. 13.
    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
  14. 14.
    Apel, S., Kästner, C., Lengauer, C.: Feature Featherweight Java: a calculus for feature-oriented programming and stepwise refinement. In: GPCE, pp. 101–112 (2008)Google Scholar
  15. 15.
    Apel, S., Scholz, W., Lengauer, C., Kästner, C.: Detecting dependences and interactions in feature-oriented design. In: ISSRE, pp. 161–170 (2010)Google Scholar
  16. 16.
    Apel, S., Scholz, W., Lengauer, C., Kästner, C.: Language-independent reference checking in software product lines. In: FOSD, pp. 65–71. ACM, New York (2010)Google Scholar
  17. 17.
    Apt, K.R., de Boer, F.S., Olderog, E.R.: Verification of Sequential and Concurrent Programs. Texts in Computer Science, 3rd edn. Springer, Berlin (2009)Google Scholar
  18. 18.
    Asirelli, P., ter Beek, M.H., Fantechi, A., Gnesi, S.: A logical framework to deal with variability. In: IFM. LNCS, vol. 6396, pp. 43–58. Springer, Berlin (2010)Google Scholar
  19. 19.
    Asirelli, P., ter Beek, M.H., Gnesi, S., Fantechi, A.: A deontic logical framework for modelling product families. In: VaMoS, pp. 37–44 (2010)Google Scholar
  20. 20.
    Aßmann U.: Invasive Software Composition. Springer, Berlin (2003)MATHGoogle Scholar
  21. 21.
    Atkinson C., Bayer J., Bunse C., Kamsties E., Laitenberger O., Laqua R., Muthig D., Paech B., Wüst J., Zettel J.: Component-Based Product Line Engineering with UML. Addison-Wesley, Reading (2002)Google Scholar
  22. 22.
    Babar, M., Ihme, T., Pikkarainen, M.: An industrial case of exploiting product line architectures in agile software development. In: SPLC, pp. 171–177 (2006)Google Scholar
  23. 23.
    Bassett P.G.: Framing Software Reuse: Lessons from the Real World. Prentice-Hall, Englewood Cliffs (1997)Google Scholar
  24. 24.
    Batory, D.: Feature models, grammars, and propositional formulas. In: SPLC. LNCS, vol. 3714, pp. 7–20. Springer, Berlin (2005)Google Scholar
  25. 25.
    Batory D., Benavides D., Ruiz-Cortes A.: Automated analysis of feature models: challenges ahead. Commun. ACM 49(12), 45–47 (2006)CrossRefGoogle Scholar
  26. 26.
    Batory D., Börger E.: Modularizing theorems for software product lines: the Jbook case study. J. Univ. Comput. Sci. 14(12), 2059–2082 (2008)Google Scholar
  27. 27.
    Batory D.S., Sarvela J.N., Rauschmayer A.: Scaling step-wise refinement. IEEE TSE 30(6), 355–371 (2004)Google Scholar
  28. 28.
    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. In: Proceedings of the 1999 Symposium on Software Reusability, pp. 122–131 (1999)Google Scholar
  29. 29.
    Beckert, B., Klebanov, V.: Proof reuse for deductive program verification. In: SEFM, pp. 77–86. IEEE Computer Society, New York (2004)Google Scholar
  30. 30.
    Benavides D., Segura S., Ruiz-Cortes A.: Automated analysis of feature models 20 years later. Inf. Syst. 35(6), 615–636 (2010)CrossRefGoogle Scholar
  31. 31.
    Berg, K., Bishop, J., Muthig, D.: Tracing software product line variability: from problem to solution space. In: SAICSIT, pp. 182–191 (2005)Google Scholar
  32. 32.
    Bettini L., Bono V., Venneri B.: MoMi: a calculus for mobile mixins. Acta Inform. 42(2–3), 143–190 (2005)MathSciNetCrossRefMATHGoogle Scholar
  33. 33.
    Bettini L., Bono V., Venneri B.: Delegation by object composition. Sci. Comput. Program. 76(11), 992–1014 (2011)CrossRefMATHGoogle Scholar
  34. 34.
    Bettini, L., Damiani, F., Schaefer, I.: Implementing software product lines using traits. In: SAC, OOPS Track, pp. 2096–2102. ACM, New York (2010)Google Scholar
  35. 35.
    Blundell, C., Fisler, K., Krishnamurthi, S., Hentenryck, P.V.: Parameterized interfaces for open system verification of product lines. In: ASE, pp. 258–267 (2004)Google Scholar
  36. 36.
    Bosch J.: Design and Use of Software Architectures, Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)Google Scholar
  37. 37.
    Bosch, J.: Software product lines: organizational alternatives. In: ICSE, pp. 91–100 (2001)Google Scholar
  38. 38.
    Bracha, G., Cook, W.: Mixin-based inheritance. In: OOPSLA/ECOOP. ACM SIGPLAN Notices, vol. 25, no. 10, pp. 303–311. ACM Press, New York (1990)Google Scholar
  39. 39.
    Braun, V., Margaria, T., Steffen, B., Yoo, H., Rychly, T.: Safe service customization. In: Intelligent Network Workshop, 1997. IN ’97, vol. 2, p. 4. IEEE, New York (1997)Google Scholar
  40. 40.
    Broy, M.: Service-oriented systems engineering: modeling services and layered architectures. In: FORTE. LNCS, vol. 2767, pp. 48–61 (2003)Google Scholar
  41. 41.
    Bruns, D., Klebanov, V., Schaefer, I.: Verification of software product lines with delta-oriented slicing. In: FoVeOOS. LNCS, vol. 6528. Springer, Berlin (2010)Google Scholar
  42. 42.
    Bubel, R., Din, C., Hänle, R.: Verification of variable software: an experience report. In: FoVeOOS. LNCS, vol. 6528. Springer, Berlin (2010)Google Scholar
  43. 43.
    Calder M., Kolberg M., Magill E.H., Reiff-Marganiec S.: Feature interaction: a critical review and considered forecast. Comput. Netw. 41(1), 115–141 (2003)CrossRefMATHGoogle Scholar
  44. 44.
    Calder M., Miller A.: Feature interaction detection by pairwise analysis of LTL properties— a case study. Formal Methods Syst. Des. 28(3), 213–261 (2006)CrossRefMATHGoogle Scholar
  45. 45.
    Campbell, G.H. Jr., Faulk, S.R., Weiss, D.M.: Introduction to synthesis. Tech. rep., INTRO SYNTHESIS PROCESS-90019-N, Software Productivity Consortium, Herndon, VA, USA (1990)Google Scholar
  46. 46.
    Casati F., Ceri S., Pernici B., Pozzi G.: Workflow evolution. Data Knowl. Eng. 24(3), 211–238 (1998)CrossRefMATHGoogle Scholar
  47. 47.
    Chambers, C.: Object-oriented multi-methods in Cecil. In: ECOOP. LNCS, vol. 615, pp. 33–56. Springer, Berlin (1992)Google Scholar
  48. 48.
    Chen L., Babar M.A.: A systematic review of evaluation of variability management approaches in software product lines. Inf. Softw. Technol. 53(4), 344–362 (2011)CrossRefGoogle Scholar
  49. 49.
    Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: GPCE. ACM, New York (2010)Google Scholar
  50. 50.
    Clarke, D., Proença, J.: Towards a theory of views for feature models. In: FMSPLE. Technical Report, University of Lancaster, UK (2010)Google Scholar
  51. 51.
    Classen, A., Heymans, P., Schobbens, P.Y.: What’s in a feature: a requirements engineering perspective. In: FASE. LNCS, vol. 4961/200, pp. 16–30. Springer, Berlin (2008)Google Scholar
  52. 52.
    Classen, A., Cordy, M., Heymans, P., Legay, A., Schobbens, P.Y.: Model checking software product lines with SNIP. STTT (2012, in this issue)Google Scholar
  53. 53.
    Classen, A., Heymans, P., Schobbens, P.Y., Legay, A., Raskin, J.F.: Model checking lots of systems: efficient verification of temporal properties in software product lines. In: ICSE. IEEE, New York (2010)Google Scholar
  54. 54.
    Clements P., Northrop L.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Reading (2001)Google Scholar
  55. 55.
    Cohen, M.B., Dwyer, M.B., Shi, J.: Coverage and adequacy in software product line testing. In: ROSATEA, pp. 53–63 (2006)Google Scholar
  56. 56.
    Colyer, A., Clement, A.: Large-scale AOSD for middleware. In: AOSD, pp. 56–65. ACM Press, New York (2004)Google Scholar
  57. 57.
    Czarnecki, K.: Variability modeling: state of the art and future directions. In: VaMoS, p. 11. ICB-Research Report No. 37, University of Duisburg Essen (2010)Google Scholar
  58. 58.
    Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: GPCE, pp. 422–437. Springer, Berlin (2005)Google Scholar
  59. 59.
    Czarnecki K., Eisenecker U.: Generative Programming: Methods, Techniques, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  60. 60.
    Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: GPCE, pp. 211–220 (2006)Google Scholar
  61. 61.
    Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: SPLC, pp. 23–34 (2007)Google Scholar
  62. 62.
    Deelstra S., Sinnema M., Bosch J.: Product derivation in software product families: a case study. J. Syst. Softw. 74(2), 173–194 (2005)CrossRefGoogle Scholar
  63. 63.
    Delaware, B., Cook, W.R., Batory, D.S.: Fitting the pieces together: a machine-checked model of safe composition. In: ESEC/SIGSOFT FSE, pp. 243–252 (2009)Google Scholar
  64. 64.
    Deng, G., Gray, J., Schmidt, D., Lin, Y., Gokhale, A., Lenz, G.: Evolution in model-driven software product-line architectures. In: Designing Software-Intensive Systems, pp. 1280–1312. Idea Group Inc, USA (2008)Google Scholar
  65. 65.
    Dhungana D., Grünbacher P., Rabiser R.: The DOPLER meta-tool for decision-oriented variability modeling: a multiple case study. Autom. Softw. Eng. 18(1), 77–114 (2011)CrossRefGoogle Scholar
  66. 66.
    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
  67. 67.
    Dhungana, D., Neumayer, T., Grünbacher, P., Rabiser, R.: Supporting evolution in model-based product line engineering. In: SPLC (2008)Google Scholar
  68. 68.
    D’Souza, D., Gopinathan, M.: Conflict-tolerant features. In: CAV. LNCS, vol. 5123, pp. 227–239. Springer, Berlin (2008)Google Scholar
  69. 69.
    Ducasse S., Nierstrasz O., Schärli N., Wuyts R., Black A.P.: Traits: a mechanism for fine-grained reuse. ACM Trans. Program. Lang. Syst. 28(2), 331–388 (2006)CrossRefGoogle Scholar
  70. 70.
    Eclipse-Foundation: Atlas model weaver. http://www.eclipse.org/gmt/amw/
  71. 71.
  72. 72.
    Eclipse-Foundation: Epsilon project. http://www.eclipse.org/gmt/epsilon/
  73. 73.
    Engels, G., Heckel, R., Küster, J., Groenewegen, L.: Consistency-preserving model evolution through transformations. In: UML International Conference. LNCS, vol. 2460, pp. 212–226. Springer, Berlin (2002)Google Scholar
  74. 74.
    Fantechi, A., Gnesi, S.: Formal modeling for product families engineering. In: SPLC (2008)Google Scholar
  75. 75.
    Fantechi, A., Gnesi, S.: A behavioural model for product families. In: ESEC/SIGSOFT FSE, pp. 521–524 (2007)Google Scholar
  76. 76.
    Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In: ICFP, pp. 94–104. ACM, New York (1998)Google Scholar
  77. 77.
    Fischbein, D., Uchitel, S., Braberman, V.A.: A foundation for behavioural conformance in software product line architectures. In: ROSATEA, pp. 39–48 (2006)Google Scholar
  78. 78.
    Fisher, K., Mitchell, J.C.: A delegation-based object calculus with subtyping. In: FCT. LNCS, vol. 965, pp. 42–61. Springer, Berlin (1995)Google Scholar
  79. 79.
    Fisler, K., Krishnamurthi, S.: Modular verification of collaboration-based software designs. In: ESEC/SIGSOFT FSE, pp. 152–163 (2001)Google Scholar
  80. 80.
    Fisler, K., Krishnamurthi, S.: Decomposing verification around end-user features. In: VSTTE. LNCS, vol. 4171, pp. 74–81. Springer, Berlin (2005)Google Scholar
  81. 81.
    Fisler, K., Roberts, B.: A case study in using ACL2 for feature-oriented verification. In: Fifth International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2 ’04) (2004)Google Scholar
  82. 82.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: POPL, pp. 171–183. ACM Press, New York (1998)Google Scholar
  83. 83.
    Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley/ACM Press, Reading (2011). http://books.google.de/books?id=ri1muolw_Ywc
  84. 84.
    Ganesan, D., Muthig, D., Knodel, J., Yoshimura, K.: Discovering organizational aspects from the source code history log during the product line planning phase—a case study. In: WCRE, pp. 211–220 (2006)Google Scholar
  85. 85.
    Ganesan, D., Muthig, D., Yoshimura, K.: Predicting return-on-investment for product line generations. In: SPLC, pp. 13–24 (2006)Google Scholar
  86. 86.
    Garlan, D., Barnes, J., Schmerl, B., Celiku, O.: Evolution styles: foundations and tool support for software architecture evolution. In: WICSA/ECSA, pp. 131–140. IEEE, New York (2009)Google Scholar
  87. 87.
    Gheyi, R., Massoni, T., Borba, P.: A theory for feature models in Alloy. In: Alloy Workshop, pp. 71–80 (2006)Google Scholar
  88. 88.
    Gheyi R., Massoni T., Borba P.: Algebraic laws for feature models. J. UCS 14(21), 3573–3591 (2008)Google Scholar
  89. 89.
    Goldstein, I., Bobrow, D.: Extending object-oriented programming in Smalltalk. In: Conference on LISP and Functional Programming, pp. 75–81. ACM Press, New York (1980)Google Scholar
  90. 90.
    Gomaa H.: Designing Software Product Lines with UML. Addison-Wesley, Reading (2005)Google Scholar
  91. 91.
    Greenfield J., Short K.: Software Factories. Hungry Minds, New York (2006)Google Scholar
  92. 92.
    Gruler, A., Leucker, M., Scheidemann, K.D.: Modeling and model checking software product lines. In: FMOODS. LNCS, vol. 5051, pp. 113–131. Springer, Berlin (2008)Google Scholar
  93. 93.
    Guelev D.P., Ryan M.D., Schobbens P.Y.: Model-checking the preservation of temporal properties upon feature integration. STTT 9(1), 53–62 (2007)CrossRefGoogle Scholar
  94. 94.
    Haber, A., Kutz, T., Rendel, H., Rumpe, B., Schaefer, I.: Delta-oriented architectural variability using MontiCore. In: Workshop on Software Architecture Variability (SAVA) (2011)Google Scholar
  95. 95.
    Haber, A., Rendel, H., Rumpe, B., Schaefer, I.: Delta modeling for software architectures. In: Workshop on Model-Based Development of Embedded Systems (MBEES) (2011)Google Scholar
  96. 96.
    Haber, A., Rendel, H., Rumpe, B., Schaefer, I., van der Linden, F.: Hierarchical variability modeling for software architectures. In: SPLC (2011)Google Scholar
  97. 97.
    Hanssen, G., Fægri, T.: Process fusion: an industrial case study on agile software product line engineering. J. Syst. Softw. 81(6) (2008)Google Scholar
  98. 98.
    Harel D., Kozen D., Tiuryn J.: Dynamic Logic. MIT Press, Cambridge (2000)MATHGoogle Scholar
  99. 99.
    Harhurin, A., Hartmann, J.: Towards consistent specifications of product families. In: FM. LNCS, vol. 5014, pp. 390–405. Springer, Berlin (2008)Google Scholar
  100. 100.
    Haugen, O., Moller-Pedersen, B., Oldevik, J., Olsen, G., Svendsen, A.: Adding standardized variability to domain specific languages. In: SPLC, pp. 139–148. IEEE, New York (2008)Google Scholar
  101. 101.
    Heidenreich, F., Kopcsek, J., Wende, C.: FeatureMapper: mapping features to models. In: ICSE, pp. 943–944. ACM, New York (2008)Google Scholar
  102. 102.
    Heidenreich, F., Wende, C.: Bridging the gap between features and models. In: Aspect-Oriented Product Line Engineering (2007)Google Scholar
  103. 103.
    Heidenreich, F.: Towards systematic ensuring well-formedness of software product lines. In: Workshop on Feature-Oriented Software Development, pp. 69–74. ACM, New York (2009)Google Scholar
  104. 104.
    Heider, W., Rabiser, R., Dhungana, D., Grünbacher, P.: Tracking evolution in model-based product lines. In: MAPLE, pp. 59–63. Software Engineering Institute, Carnegie Mellon (2009)Google Scholar
  105. 105.
    Heider, W., Rabiser, R., Grünbacher, P.: Facilitating the evolution of products in product line engineering by capturing and replaying configuration decisions. STTT (2012, in this issue)Google Scholar
  106. 106.
    Hendrickson, S.A., van der Hoek, A.: Modeling product line architectures through change sets and relationships. In: ICSE (2007)Google Scholar
  107. 107.
    Herrmannsdoerfer, M., Benz, S., Juergens, E.: COPE—automating coupled evolution of metamodels and models. In: ECOOP, pp. 52–76. Springer, Berlin (2009)Google Scholar
  108. 108.
    Hetrick, W., Krueger, C., Moore, J.: Incremental return on incremental investment: Engenio’s transition to software product line practice. In: OOPSLA, pp. 798–804 (2006)Google Scholar
  109. 109.
    Heymans, P., Boucher, Q., Classen, A., Bourdoux, A., Demonceau, L.: A code tagging approach to software product line development. STTT (2012, in this issue)Google Scholar
  110. 110.
    Hirschfeld R., Costanza P., Nierstrasz O.: Context-oriented programming. J. Object Technol. 7(3), 125–151 (2008)CrossRefGoogle Scholar
  111. 111.
    Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: ESOP. LNCS, vol. 2305, pp. 6–20. Springer, Berlin (2002)Google Scholar
  112. 112.
    Höfner, P., Khédri, R., Möller, B.: Algebraic view reconciliation. In: SEFM, pp. 149–158. IEEE Computer Society (2008)Google Scholar
  113. 113.
    Jayaraman, P.K., Whittle, J., Elkhodary, A.M., Gomaa, H.: Model composition in product lines and feature interaction detection using critical pair analysis. In: MoDELS, pp. 151–165 (2007)Google Scholar
  114. 114.
    John, I., Knodel, J., Schulz, T.: Applied software product line engineering. In: Efficient scoping with CaVE: a case study, pp. 421–445. CRC Press, Boca Raton (2010)Google Scholar
  115. 115.
    Jonsson B., Margaria T., Naeser G., Nyström J., Steffen B.: Incremental requirement specification for evolving systems. Nord. J. Comput. 8, 65–87 (2001)MATHGoogle Scholar
  116. 116.
    Jörges, S.: Genesys: a model-driven and service-oriented approach to the construction and evolution of code generators. PhD thesis, Technische Universitt Dortmund (2011)Google Scholar
  117. 117.
    Jörges, S., Lamprecht, A.L., Margaria, T., Schaefer, I., Steffen, B.: A constraint-based variability modeling framework. STTT (2012, in this issue)Google Scholar
  118. 118.
    Jörges S., Margaria T., Steffen B.: Genesys: service-oriented construction of property conform code generators. ISSE 4(4), 361–384 (2008)Google Scholar
  119. 119.
    Kahsai, T., Roggenbach, M., Schlingloff, B.H.: Specification-based testing for software product lines. In: SEFM, pp. 149–158. IEEE Computer Society, New York (2008)Google Scholar
  120. 120.
    Kang, K.C., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-oriented domain analysis (FODA) feasibility study. Tech. Rep. CMU/SEI-90-TR-021, Carnegie Mellon University, Software Engineering Institute (1990)Google Scholar
  121. 121.
    Kang, S., Lee, J., Kim, M., Lee, W.: Towards a formal framework for product line test development. In: CIT, pp. 921–926. IEEE Computer Society, New York (2007)Google Scholar
  122. 122.
    Kästner, C., Apel, S.: Type-checking software product lines—a formal approach. In: ASE, pp. 258–267. IEEE, New York (2008)Google Scholar
  123. 123.
    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: TOOLS, pp. 175–194 (2009)Google Scholar
  124. 124.
    Kaufmann M., Moore J.S., Manolios P.: Computer-Aided Reasoning: An Approach. Kluwer, Norwell (2000)CrossRefGoogle Scholar
  125. 125.
    Keck D.O., Kühn P.J.: The feature and service interaction problem in telecommunications systems: a survey. IEEE Trans. Softw. Eng. 24(10), 779–796 (1998)CrossRefGoogle Scholar
  126. 126.
    Kelly S., Tolvanen J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, New York (2008)Google Scholar
  127. 127.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: ECOOP. LNCS, vol. 1241, pp. 220–242. Springer, Berlin (1997)Google Scholar
  128. 128.
    Kim, C., Batory, D., Khurshid, S.: Reducing combinatorics in testing product lines. In: AOSD (2011)Google Scholar
  129. 129.
    Kishi T., Noda N.: Formal verification and software product lines. Commun. ACM 49(12), 73–77 (2006)CrossRefGoogle Scholar
  130. 130.
    Kniesel, G.: Type-safe delegation for run-time component adaptation. In: ECOOP. LNCS, vol. 1628, pp. 351–366. Springer, Berlin (1999)Google Scholar
  131. 131.
    Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. In: SIGSOFT FSE, pp. 137–146 (2004)Google Scholar
  132. 132.
    Krsek, M., van Zyl, J., Redpath, R., Clohesy, B.: Experiences of large banks: Hurdles and enablers to the adoption of software product line practices in large corporate organisations. In: SPLC, pp. 161–169 (2008)Google Scholar
  133. 133.
    Krueger C.: New methods in software product line practicel. Commun. ACM 49(12), 37–40 (2006)CrossRefGoogle Scholar
  134. 134.
    Kubczak, C., Jörges, S., Margaria, T., Steffen, B.: eXtreme model-driven design with jABC. In: CTIT Proceedings of the Tools and Consultancy Track of the Fifth European Conference on Model-Driven Architecture Foundations and Applications (ECMDA-FA), vol. WP09-12, pp. 78–99 (2009)Google Scholar
  135. 135.
    Kuhlemann, M., Batory, D.S., Kästner, C.: Safe composition of non-monotonic features. In: GPCE, pp. 177–186 (2009)Google Scholar
  136. 136.
    Lamancha, B.P., Usaola, M.P., Velthius, M.P.: Software product line testing—a systematic review. In: ICSOFT, pp. 23–30 (2009)Google Scholar
  137. 137.
    Lamprecht, A.L., Margaria, T., Schaefer, I., Steffen, B.: Comparing structure-oriented and behavior-oriented variability modeling for workflows. In: Moschitti, A., Scandariato, R. (eds.) 1st International Workshop on Eternal Systems (EternalS’11). Communications in Computer and Information Science (CCIS), vol. 225. Springer, Berlin (2011)Google Scholar
  138. 138.
    Lamprecht, A., Margaria, T., Steffen, B.: Seven variations of an alignment workflow—an illustration of agile process design and management in Bio-jETI. In: Bioinformatics Research and Applications. LNBI, vol. 4983, pp. 445–456. Springer, Atlanta (2008)Google Scholar
  139. 139.
    Lamprecht, A.L., Naujokat, S., Margaria, T., Steffen, B.: Synthesis-based loose programming. In: Proceedings of the 7th International Conference on the Quality of Information and Communications Technology (QUATIC) (2010)Google Scholar
  140. 140.
    Larsen, K.G., Nyman, U., Wasowski, A.: Modal I/O automata for interface and product line theories. In: ESOP. LNCS, vol. 4421, pp. 64–79. Springer, Berlin (2007)Google Scholar
  141. 141.
    Larsen K.G., Nyman U., Wasowski A.: Modeling software product lines using color-blind transition systems. STTT 9(5–6), 471–487 (2005)Google Scholar
  142. 142.
    Larsen, K.G., Thomsen, B.: A modal process logic. In: LICS, pp. 203–210. IEEE Computer Society, New York (1988)Google Scholar
  143. 143.
    Lauenroth, K., Pohl, K., Toehning, S.: Model checking of domain artifacts in product line engineering. In: ASE, pp. 269–280 (2009)Google Scholar
  144. 144.
    Lehman M.: Programs, life cycles, and laws of software evolution. IEEE Inf. Process. Lett. 68(9), 1060–1076 (1980)Google Scholar
  145. 145.
    Lerner B.: A model for compound type changes encountered in schema evolution. ACM Trans. Database Syst. 25(1), 83–127 (2000)CrossRefGoogle Scholar
  146. 146.
    Li, H.C., Fisler, K., Krishnamurthi, S.: The influence of software module systems on modular verification. In: SPIN. LNCS, vol. 2318, pp. 60–78. Springer, Berlin (2002)Google Scholar
  147. 147.
    Li, H.C., Krishnamurthi, S., Fisler, K.: Interfaces for modular feature verification. In: ASE, pp. 195–204 (2002)Google Scholar
  148. 148.
    Li, H.C., Krishnamurthi, S., Fisler, K.: Verifying cross-cutting features as open systems. In: SIGSOFT FSE, pp. 89–98 (2002)Google Scholar
  149. 149.
    Li H.C., Krishnamurthi S., Fisler K.: Modular verification of open features using three-valued model checking. Autom. Softw. Eng. 12(3), 349–382 (2005)CrossRefGoogle Scholar
  150. 150.
    Liu J., Basu S., Lutz R.R.: Compositional model checking of software product lines using variation point obligations. Autom. Softw. Eng. 18(1), 39–76 (2011)CrossRefGoogle Scholar
  151. 151.
    Lopez-Herrejon, R., Batory, D., Cook, W.: Evaluating support for features in advanced modularization technologies. In: ECOOP. LNCS, vol. 3586, pp. 169–194. Springer, Berlin (2005)Google Scholar
  152. 152.
    Loughran, N., Sánchez, P., Garcia, A., Fuentes, L.: Language support for managing variability in architectural models. In: Software Composition. LNCS, vol. 4954. Springer, Berlin (2008)Google Scholar
  153. 153.
    Margaria, T., Steffen, B.: Business process modelling in the jABC: the one-thing-approach. In: Cardoso, J., van der Aalst, W. (eds.) Handbook of Research on Business Process Modeling. IGI Global, USA (2009)Google Scholar
  154. 154.
    Margaria T., Steffen B.: Continuous model-driven engineering. IEEE Comput. 42(10), 106–109 (2009)CrossRefGoogle Scholar
  155. 155.
    Margaria T., Steffen B., Kubczak C.: Evolution support in heterogeneous service-oriented landscapes. J. Braz. Comput. Soc. 16(1), 35–47 (2010)CrossRefGoogle Scholar
  156. 156.
    Margaria, T., Steffen, B., Reitenspieß, M.: Service-oriented design: the roots. In: ICSOC, pp. 450–464 (2005)Google Scholar
  157. 157.
    Mattsson, M., Bosch, J.: Frameworks as components: a classification of framework evolution. In: Nordic Workshop on Programming Environment Research, Ronneby, Sweden, pp. 63–174 (1998)Google Scholar
  158. 158.
    McGregor, J.: The evolution of product line assets. Tech. rep., CMU/SEI-2003-TR-005 ESC-TR-2003-005 (2003)Google Scholar
  159. 159.
    McGregor, J.D.: Testing a software product line. In: PSSE. LNCS, vol. 6153, pp. 104–140. Springer, Berlin (2007)Google Scholar
  160. 160.
    McVeigh, A., Kramer, J., Magee, J.: Using resemblance to support component reuse and evolution. In: SAVCBS, pp. 49–56 (2006)Google Scholar
  161. 161.
    Mende, T., Beckwermert, F., Koschke, R., Meier, G.: Supporting the grow-and-prune model in software product lines evolution using clone detection. In: CSMR, pp. 163–172. IEEE CS, New York (2008)Google Scholar
  162. 162.
    Mens T., D’Hondt T.: Automating support for software evolution in UML. Autom. Softw. Eng. 7(1), 39–59 (2000)CrossRefGoogle Scholar
  163. 163.
    Mens, T., Wermelinger, M., Ducasse, S., Demeyer, S., Hirschfeld, R., Jazayeri, M.: Challenges in software evolution. In: IWPSE, pp. 13–22. IEEE Computer Society, New York (2005)Google Scholar
  164. 164.
    Metzger, A., Heymans, P., Pohl, K., Schobbens, P.Y., Saval, G.: Disambiguating the documentation of variability in software product lines: a separation of concerns, formalization and automated analysis. In: RE, pp. 243–253. IEEE, New York (2007)Google Scholar
  165. 165.
    Mikhajlov, L., Sekerinski, E.: A study of the fragile base class problem. In: ECOOP. LNCS, vol. 1445, pp. 355–383. Springer, Berlin (1998)Google Scholar
  166. 166.
    Mohan K., Ramesh B., Sugumaran V.: Integrating software product line engineering and agile development. IEEE Softw. 27(3), 48–55 (2010)CrossRefGoogle Scholar
  167. 167.
    Muccini H., van der Hoek A.: Towards testing product line architectures. Electron. Notes Theor. Comput. Sci. 82(6), 109–119 (2003)CrossRefGoogle Scholar
  168. 168.
    Müller-Olm, M., Steffen, B., Cleaveland, R.: On the evolution of reactive components: a process-algebraic approach. In: Proceedings of the Second International Conference on Fundamental Approaches to Software Engineering. FASE ’99, pp. 161–175 (1999)Google Scholar
  169. 169.
    Muschevici, R., Clarke, D., Proença, J.: Feature Petri nets. In: FMSPLE. Technical Report, University of Lancaster, UK (2010)Google Scholar
  170. 170.
    Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S.M., Zave, P.: Matching and merging of statecharts specifications. In: ICSE, pp. 54–64 (2007)Google Scholar
  171. 171.
    Noda, N., Kishi, T.: Aspect-oriented modeling for variability management. In: SPLC (2008)Google Scholar
  172. 172.
    Noda, N., Kishi, T.: Design verification tool for product line development. In: SPLC, pp. 147–148 (2007)Google Scholar
  173. 173.
    Noor M.A., Rabiser R., Grünbacher P.: Agile product line planning: a collaborative approach and a case study. J. Syst. Softw. 81(6), 868–882 (2008)CrossRefGoogle Scholar
  174. 174.
    Nuseibeh B., Easterbrook S., Russo A.: Making inconsistency respectable in software development. J. Syst. Softw. 58(2), 171–180 (2001)CrossRefGoogle Scholar
  175. 175.
    Nyman, U.: Modal Transition systems as the basis for interface theories and product lines. PhD thesis, Department of Computer Science, Aalborg University (2008)Google Scholar
  176. 176.
    Oster, S., Markert, F., Ritter, P.: Automated incremental pairwise testing of software product lines. In: SPLC, pp. 196–210. Springer, Berlin (2010)Google Scholar
  177. 177.
    Padmanabhan P., Lutz R.R.: Tool-supported verification of product line requirements. Autom. Softw. Eng. 12(4), 447–465 (2005)CrossRefGoogle Scholar
  178. 178.
    Pérez, J., Díaz, J., Soria, C.C., Garbajosa, J.: Plastic partial components: a solution to support variability in architectural components. In: WICSA/ECSA (2009)Google Scholar
  179. 179.
    Plath, M., Ryan, M.D.: Plug-and-play features. In: FIW, pp. 150–164 (1998)Google Scholar
  180. 180.
    Pleuss, A., Botterweck, G.: Visualization of variability and configuration options. STTT (2012, in this issue)Google Scholar
  181. 181.
    Pohl K., Böckle G., van der Linden F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)MATHGoogle Scholar
  182. 182.
    Pohl K., Metzger A.: Software product line testing. Commun. ACM 49(12), 78–81 (2006)CrossRefGoogle Scholar
  183. 183.
    Poppleton, M.: Towards feature-oriented specification and development with event-B. In: REFSQ, pp. 367–381 (2007)Google Scholar
  184. 184.
    Post, H., Sinz, C.: Configuration lifting: verification meets software configuration. In: ASE, pp. 347–350 (2008)Google Scholar
  185. 185.
    Prehofer C.: Plug-and-play composition of features and feature interactions with statechart diagrams. Softw. Syst. Model. 3(3), 221–234 (2004)CrossRefGoogle Scholar
  186. 186.
    Pure systems GmbH: Variant management with pure::variants. Technical whitepaper (2006)Google Scholar
  187. 187.
    Rabiser, R., Grünbacher, P., Dhungana, D.: Supporting product derivation by adapting and augmenting variability models. In: SPLC, pp. 141–150. IEEE, New York (2007)Google Scholar
  188. 188.
    Rabiser R., O’Leary P., Richardson I.: Key activities for product derivation in software product lines. J. Syst. Softw. 84(2), 285–300 (2011)CrossRefGoogle Scholar
  189. 189.
    Satyananda, T.K., Lee, D., Kang, S.: Formal verification of consistency between feature model and software architecture in software product line. In: ICSEA, p. 10 (2007)Google Scholar
  190. 190.
    Schaefer, I., Bettini, L., Botterweck, G., Clarke, D., Costanza, C., Pathak, A., Rabiser, R., Trujillo, S., Villela, K.: Survey on diversity awareness and management. Tech. rep., Deliverable 2.1 of the EternalS Coordination Action (FP7-247758) (2011)Google Scholar
  191. 191.
    Schaefer, I., Bettini, L., Damiani, F.: Compositional type-checking for delta-oriented programming. In: AOSD. ACM Press, New York (2011)Google Scholar
  192. 192.
    Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A model-based framework for automated product derivation. In: MAPLE (2009)Google Scholar
  193. 193.
    Schaefer, I.: Variability modelling for model-driven development of software product lines. In: VaMoS, pp. 85–92 (2010)Google Scholar
  194. 194.
    Schaefer I., Bettini L., Bono V., Damiani F., Tanzarella N.: Delta-oriented programming of software product lines. In: SPLC. LNCS, vol. 6287, pp. 77–91. Springer, Berlin (2010)Google Scholar
  195. 195.
    Schaefer, I., Lamprecht, A.L., Margaria, T.: Constraint-oriented variability modeling. In: Rash, J., Rouff, C. (eds.) 34th Annual IEEE Software Engineering Workshop (SEW-34). IEEE CS Press, New York (2011, to appear)Google Scholar
  196. 196.
    Schmid K., John I.: A customizable approach to full-life cycle variability management. J. Sci. Comput. Program. Spec. Issue Var. Manag. 53(3), 259–284 (2004)MathSciNetGoogle Scholar
  197. 197.
    Schmid, K., John, I., Kolb, R., Meier, G.: Introducing the PuLSE approach to an embedded system population at Testo AG. In: ICSE, pp. 544–552 (2005)Google Scholar
  198. 198.
    Schmid, K., Rabiser, R., Grünbacher, P.: A comparison of decision modeling approaches in product lines. In: VaMoS, pp. 119–126. ACM, New York (2011)Google Scholar
  199. 199.
    Schobbens P., Trigaux J., Heymans P., Bontemps Y.: Generic semantics of feature diagrams. Comput. Netw. 51(2), 456–479 (2006)CrossRefGoogle Scholar
  200. 200.
    Schobbens, P.Y., Heymans, P., Trigaux, J.C., Bontemps, Y.: Feature diagrams: a survey and a formal semantics. In: RE, pp. 139–148. IEEE, New York (2006)Google Scholar
  201. 201.
    Segura, S., Benavides, D., Cortés, A.R., Trinidad, P.: Automated merging of feature models using graph transformations. In: GTTSE. LNCS, vol. 5235, pp. 489–505. Springer, Berlin (2007)Google Scholar
  202. 202.
    Sinnema M., Deelstra S.: Classifying variability modeling techniques. Inf. Softw. Technol. 49(7), 717–739 (2006)CrossRefGoogle Scholar
  203. 203.
    Smaragdakis Y., Batory D.: Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM TOSEM 11(2), 215–255 (2002)CrossRefGoogle Scholar
  204. 204.
    Smith R., Ungar D.: A simple and unifying approach to subjective objects. ACM TOPLAS 2(3), 161–178 (1996)Google Scholar
  205. 205.
    Steffen B., Margaria T., Braun V., Kalt N.: Hierarchical service definition. Annu. Rev. Commun. ACM 51, 847–856 (1997)Google Scholar
  206. 206.
    Steffen, B., Margaria, T., Braun, V.: Coarse-granular model checking in practice. In: Proceedings of the 8th International SPIN Workshop on Model Checking of Software. SPIN ’01, pp. 304–311 (2001)Google Scholar
  207. 207.
    Steffen, B., Margaria, T., Nagel, R., Jörges, S., Kubczak, C.: Model-driven development with the jABC. In: Hardware and Software, Verification and Testing. Lecture Notes in Computer Science, vol. 4383, pp. 92–108. Springer, Berlin (2007)Google Scholar
  208. 208.
    Svahnberg M., Bosch J.: Evolution in software product lines: two cases. J. Softw. Maint. Res. Pract. 11(6), 391–422 (1999)CrossRefGoogle Scholar
  209. 209.
    Taivalsaari A.: On the notion of inheritance. ACM Comput. Surv. 28(3), 438–479 (1996)CrossRefGoogle Scholar
  210. 210.
    Tartler, R., Sincero, J., Dietrich, C., Schröder-Preikschat, W., Lohmann, D.: Revealing and repairing configuration inconsistencies in large-scale software systems. STTT (2012, in this issue)Google Scholar
  211. 211.
    Thaker, S., Batory, D.S., Kitchin, D., Cook, W.R.: Safe composition of product lines. In: GPCE, pp. 95–104 (2007)Google Scholar
  212. 212.
    Thang, N.T.: Incremental verification of consistency in feature-oriented software. PhD thesis, Japan Advanced Institute of Science and Technology (2005)Google Scholar
  213. 213.
    Thüm, T., Batory, D.S., Kästner, C.: Reasoning about edits to feature models. In: ICSE, pp. 254–264 (2009)Google Scholar
  214. 214.
    Trujillo, S., Batory, D., Diaz, O.: Feature oriented model driven development: a case study for portlets. In: ICSE, pp. 44–53. IEEE CS, New York (2007)Google Scholar
  215. 215.
    Ungar D., Smith R.B.: Self: the power of simplicity. ACM SIGPLAN Not. 22(12), 227–242 (1987)CrossRefGoogle Scholar
  216. 216.
    Uzuncaova E., Khurshid S., Batory D.S.: Incremental test generation for software product lines. IEEE Trans. Softw. Eng. 36(3), 309–322 (2010)CrossRefGoogle Scholar
  217. 217.
    van Deursen, A., Visser, E., Warmer, J.: Model-driven software evolution: a research agenda. In: MoDSE, pp. 41–49. University of Nantes (2007)Google Scholar
  218. 218.
    van der Linden F.: Software product families in Europe: the Esaps & Cafè projects. IEEE Softw. 19(4), 41–49 (2002)MathSciNetCrossRefGoogle Scholar
  219. 219.
    van der Linden, F., Bosch, J., Kamsties, E., Känsälä, K., Obbink, H.: Software product family evaluation. In: SPLC, pp. 110–129 (2004)Google Scholar
  220. 220.
    Van Limberghen M., Mens T.: Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems. Object Oriented Syst. 3(1), 1–30 (1996)Google Scholar
  221. 221.
    van Ommering R., van der Linden F., Kramer J., Magee J.: The Koala component model for consumer electronics software. IEEE Comput. 33(3), 78–85 (2000)CrossRefGoogle Scholar
  222. 222.
    Viega, J., Tutt, B., Behrends, R.: Automated delegation is a viable alternative to multiple inheritance in class based languages. Tech. rep. CS-98-03, UVa Computer Science (1998)Google Scholar
  223. 223.
    Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242 (2007)Google Scholar
  224. 224.
    Wehrheim H.: Slicing techniques for verification re-use. Theor. Comput. Sci. 343(3), 509–528 (2005)MathSciNetCrossRefMATHGoogle Scholar
  225. 225.
    Wong, P.Y.H., Albert, E., Muschevici, R., Proenca, J., Schäfer, J., Schlatte, R.: The ABS tool suite: modeling, executing and analysing distributed adaptable object-oriented systems. STTT (2012, in this issue)Google Scholar
  226. 226.
    Yoshimura, K., Ganesan, D., Muthig, D.: Defining a strategy to introduce a software product line using existing embedded systems. In: EMSOFT, pp. 63–72 (2006)Google Scholar
  227. 227.
    Ziadi, T., Hélouët, L., Jézéquel, J.M.: Towards a UML profile for software product lines. In: Workshop on Product Family Engineering, pp. 129–139 (2003)Google Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  • Ina Schaefer
    • 1
  • Rick Rabiser
    • 2
  • Dave Clarke
    • 3
  • Lorenzo Bettini
    • 4
  • David Benavides
    • 5
  • Goetz Botterweck
    • 6
  • Animesh Pathak
    • 7
  • Salvador Trujillo
    • 8
  • Karina Villela
    • 9
  1. 1.TU BraunschweigBraunschweigGermany
  2. 2.Christian Doppler Laboratory for Automated Software EngineeringJKU LinzLinzAustria
  3. 3.Katholieke Universiteit LeuvenLeuvenBelgium
  4. 4.Dipartimento di InformaticaUniversità di TorinoTurinItaly
  5. 5.Dpto. de Lenguajes y Sistemas InformaticosUniversity of SevilleSevilleSpain
  6. 6.Lero, The Irish Software Engineering Research CentreUniversity of LimerickLimerickIreland
  7. 7.INRIA Paris-RocquencourtParisFrance
  8. 8.IKERLANMondragónSpain
  9. 9.Fraunhofer Institute for Experimental Software EngineeringKaiserslauternGermany

Personalised recommendations