Skip to main content
Log in

Software diversity: state of the art and perspectives

  • Introduction
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Acher, M., Collet, P., Lahire, P., France, R.: Composing feature models. In: SLE. LNCS, vol. 5969, pp. 62–81. Springer, Berlin (2009)

  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)

    Article  Google Scholar 

  3. Ahmed F., Capretz L., Samarabandu J.: Fuzzy inference system for software product family process evaluation. Inf. Sci. 178(3), 2780–2793 (2008)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  5. Ali, M., Babar, M.A., Schmid, K.: A comparative survey of economic models for software product lines. In: SEAA, pp. 275–278 (2009)

  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)

  7. Ancona D., Zucca E.: A theory of mixin modules: algebraic laws and reduction semantics. Math. Struct. Comput. Sci. 12(6), 701–737 (2001)

    MathSciNet  Google Scholar 

  8. Ancona D., Lagorio G., Zucca E.: Jam—designing a Java extension with mixins. ACM TOPLAS 25(5), 641–712 (2003)

    Article  Google Scholar 

  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)

  10. Apel S., Kästner C.: An overview of feature-oriented software development. J. Object Technol. 8(5), 49–84 (2009)

    Article  Google Scholar 

  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)

  12. Apel, S., Janda, F., Trujillo, S., Kästner, C.: Model superimposition in software product lines. In: International Conference on Model Transformation (ICMT) (2009)

  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)

    Article  Google Scholar 

  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)

  15. Apel, S., Scholz, W., Lengauer, C., Kästner, C.: Detecting dependences and interactions in feature-oriented design. In: ISSRE, pp. 161–170 (2010)

  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)

  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)

  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)

  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)

  20. Aßmann U.: Invasive Software Composition. Springer, Berlin (2003)

    MATH  Google Scholar 

  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. Babar, M., Ihme, T., Pikkarainen, M.: An industrial case of exploiting product line architectures in agile software development. In: SPLC, pp. 171–177 (2006)

  23. Bassett P.G.: Framing Software Reuse: Lessons from the Real World. Prentice-Hall, Englewood Cliffs (1997)

    Google Scholar 

  24. Batory, D.: Feature models, grammars, and propositional formulas. In: SPLC. LNCS, vol. 3714, pp. 7–20. Springer, Berlin (2005)

  25. Batory D., Benavides D., Ruiz-Cortes A.: Automated analysis of feature models: challenges ahead. Commun. ACM 49(12), 45–47 (2006)

    Article  Google Scholar 

  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. Batory D.S., Sarvela J.N., Rauschmayer A.: Scaling step-wise refinement. IEEE TSE 30(6), 355–371 (2004)

    Google Scholar 

  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)

  29. Beckert, B., Klebanov, V.: Proof reuse for deductive program verification. In: SEFM, pp. 77–86. IEEE Computer Society, New York (2004)

  30. Benavides D., Segura S., Ruiz-Cortes A.: Automated analysis of feature models 20 years later. Inf. Syst. 35(6), 615–636 (2010)

    Article  Google Scholar 

  31. Berg, K., Bishop, J., Muthig, D.: Tracing software product line variability: from problem to solution space. In: SAICSIT, pp. 182–191 (2005)

  32. Bettini L., Bono V., Venneri B.: MoMi: a calculus for mobile mixins. Acta Inform. 42(2–3), 143–190 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  33. Bettini L., Bono V., Venneri B.: Delegation by object composition. Sci. Comput. Program. 76(11), 992–1014 (2011)

    Article  MATH  Google Scholar 

  34. Bettini, L., Damiani, F., Schaefer, I.: Implementing software product lines using traits. In: SAC, OOPS Track, pp. 2096–2102. ACM, New York (2010)

  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)

  36. Bosch J.: Design and Use of Software Architectures, Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)

    Google Scholar 

  37. Bosch, J.: Software product lines: organizational alternatives. In: ICSE, pp. 91–100 (2001)

  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)

  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)

  40. Broy, M.: Service-oriented systems engineering: modeling services and layered architectures. In: FORTE. LNCS, vol. 2767, pp. 48–61 (2003)

  41. Bruns, D., Klebanov, V., Schaefer, I.: Verification of software product lines with delta-oriented slicing. In: FoVeOOS. LNCS, vol. 6528. Springer, Berlin (2010)

  42. Bubel, R., Din, C., Hänle, R.: Verification of variable software: an experience report. In: FoVeOOS. LNCS, vol. 6528. Springer, Berlin (2010)

  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)

    Article  MATH  Google Scholar 

  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)

    Article  MATH  Google Scholar 

  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)

  46. Casati F., Ceri S., Pernici B., Pozzi G.: Workflow evolution. Data Knowl. Eng. 24(3), 211–238 (1998)

    Article  MATH  Google Scholar 

  47. Chambers, C.: Object-oriented multi-methods in Cecil. In: ECOOP. LNCS, vol. 615, pp. 33–56. Springer, Berlin (1992)

  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)

    Article  Google Scholar 

  49. Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: GPCE. ACM, New York (2010)

  50. Clarke, D., Proença, J.: Towards a theory of views for feature models. In: FMSPLE. Technical Report, University of Lancaster, UK (2010)

  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)

  52. Classen, A., Cordy, M., Heymans, P., Legay, A., Schobbens, P.Y.: Model checking software product lines with SNIP. STTT (2012, in this issue)

  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)

  54. Clements P., Northrop L.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Reading (2001)

    Google Scholar 

  55. Cohen, M.B., Dwyer, M.B., Shi, J.: Coverage and adequacy in software product line testing. In: ROSATEA, pp. 53–63 (2006)

  56. Colyer, A., Clement, A.: Large-scale AOSD for middleware. In: AOSD, pp. 56–65. ACM Press, New York (2004)

  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)

  58. Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: GPCE, pp. 422–437. Springer, Berlin (2005)

  59. Czarnecki K., Eisenecker U.: Generative Programming: Methods, Techniques, and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  60. Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: GPCE, pp. 211–220 (2006)

  61. Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: SPLC, pp. 23–34 (2007)

  62. Deelstra S., Sinnema M., Bosch J.: Product derivation in software product families: a case study. J. Syst. Softw. 74(2), 173–194 (2005)

    Article  Google Scholar 

  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)

  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)

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  67. Dhungana, D., Neumayer, T., Grünbacher, P., Rabiser, R.: Supporting evolution in model-based product line engineering. In: SPLC (2008)

  68. D’Souza, D., Gopinathan, M.: Conflict-tolerant features. In: CAV. LNCS, vol. 5123, pp. 227–239. Springer, Berlin (2008)

  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)

    Article  Google Scholar 

  70. Eclipse-Foundation: Atlas model weaver. http://www.eclipse.org/gmt/amw/

  71. Eclipse-Foundation: EMF compare. http://www.eclipse.org/modeling/emft/?project=compare

  72. Eclipse-Foundation: Epsilon project. http://www.eclipse.org/gmt/epsilon/

  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)

  74. Fantechi, A., Gnesi, S.: Formal modeling for product families engineering. In: SPLC (2008)

  75. Fantechi, A., Gnesi, S.: A behavioural model for product families. In: ESEC/SIGSOFT FSE, pp. 521–524 (2007)

  76. Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In: ICFP, pp. 94–104. ACM, New York (1998)

  77. Fischbein, D., Uchitel, S., Braberman, V.A.: A foundation for behavioural conformance in software product line architectures. In: ROSATEA, pp. 39–48 (2006)

  78. Fisher, K., Mitchell, J.C.: A delegation-based object calculus with subtyping. In: FCT. LNCS, vol. 965, pp. 42–61. Springer, Berlin (1995)

  79. Fisler, K., Krishnamurthi, S.: Modular verification of collaboration-based software designs. In: ESEC/SIGSOFT FSE, pp. 152–163 (2001)

  80. Fisler, K., Krishnamurthi, S.: Decomposing verification around end-user features. In: VSTTE. LNCS, vol. 4171, pp. 74–81. Springer, Berlin (2005)

  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)

  82. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: POPL, pp. 171–183. ACM Press, New York (1998)

  83. Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley/ACM Press, Reading (2011). http://books.google.de/books?id=ri1muolw_Ywc

  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)

  85. Ganesan, D., Muthig, D., Yoshimura, K.: Predicting return-on-investment for product line generations. In: SPLC, pp. 13–24 (2006)

  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)

  87. Gheyi, R., Massoni, T., Borba, P.: A theory for feature models in Alloy. In: Alloy Workshop, pp. 71–80 (2006)

  88. Gheyi R., Massoni T., Borba P.: Algebraic laws for feature models. J. UCS 14(21), 3573–3591 (2008)

    Google Scholar 

  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)

  90. Gomaa H.: Designing Software Product Lines with UML. Addison-Wesley, Reading (2005)

    Google Scholar 

  91. Greenfield J., Short K.: Software Factories. Hungry Minds, New York (2006)

    Google Scholar 

  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)

  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)

    Article  Google Scholar 

  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)

  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)

  96. Haber, A., Rendel, H., Rumpe, B., Schaefer, I., van der Linden, F.: Hierarchical variability modeling for software architectures. In: SPLC (2011)

  97. Hanssen, G., Fægri, T.: Process fusion: an industrial case study on agile software product line engineering. J. Syst. Softw. 81(6) (2008)

  98. Harel D., Kozen D., Tiuryn J.: Dynamic Logic. MIT Press, Cambridge (2000)

    MATH  Google Scholar 

  99. Harhurin, A., Hartmann, J.: Towards consistent specifications of product families. In: FM. LNCS, vol. 5014, pp. 390–405. Springer, Berlin (2008)

  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)

  101. Heidenreich, F., Kopcsek, J., Wende, C.: FeatureMapper: mapping features to models. In: ICSE, pp. 943–944. ACM, New York (2008)

  102. Heidenreich, F., Wende, C.: Bridging the gap between features and models. In: Aspect-Oriented Product Line Engineering (2007)

  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)

  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)

  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)

  106. Hendrickson, S.A., van der Hoek, A.: Modeling product line architectures through change sets and relationships. In: ICSE (2007)

  107. Herrmannsdoerfer, M., Benz, S., Juergens, E.: COPE—automating coupled evolution of metamodels and models. In: ECOOP, pp. 52–76. Springer, Berlin (2009)

  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)

  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)

  110. Hirschfeld R., Costanza P., Nierstrasz O.: Context-oriented programming. J. Object Technol. 7(3), 125–151 (2008)

    Article  Google Scholar 

  111. Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: ESOP. LNCS, vol. 2305, pp. 6–20. Springer, Berlin (2002)

  112. Höfner, P., Khédri, R., Möller, B.: Algebraic view reconciliation. In: SEFM, pp. 149–158. IEEE Computer Society (2008)

  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)

  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)

  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)

    MATH  Google Scholar 

  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)

  117. Jörges, S., Lamprecht, A.L., Margaria, T., Schaefer, I., Steffen, B.: A constraint-based variability modeling framework. STTT (2012, in this issue)

  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. 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)

  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)

  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)

  122. Kästner, C., Apel, S.: Type-checking software product lines—a formal approach. In: ASE, pp. 258–267. IEEE, New York (2008)

  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)

  124. Kaufmann M., Moore J.S., Manolios P.: Computer-Aided Reasoning: An Approach. Kluwer, Norwell (2000)

    Book  Google Scholar 

  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)

    Article  Google Scholar 

  126. Kelly S., Tolvanen J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, New York (2008)

    Google Scholar 

  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)

  128. Kim, C., Batory, D., Khurshid, S.: Reducing combinatorics in testing product lines. In: AOSD (2011)

  129. Kishi T., Noda N.: Formal verification and software product lines. Commun. ACM 49(12), 73–77 (2006)

    Article  Google Scholar 

  130. Kniesel, G.: Type-safe delegation for run-time component adaptation. In: ECOOP. LNCS, vol. 1628, pp. 351–366. Springer, Berlin (1999)

  131. Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. In: SIGSOFT FSE, pp. 137–146 (2004)

  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)

  133. Krueger C.: New methods in software product line practicel. Commun. ACM 49(12), 37–40 (2006)

    Article  Google Scholar 

  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)

  135. Kuhlemann, M., Batory, D.S., Kästner, C.: Safe composition of non-monotonic features. In: GPCE, pp. 177–186 (2009)

  136. Lamancha, B.P., Usaola, M.P., Velthius, M.P.: Software product line testing—a systematic review. In: ICSOFT, pp. 23–30 (2009)

  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)

  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)

  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)

  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)

  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. Larsen, K.G., Thomsen, B.: A modal process logic. In: LICS, pp. 203–210. IEEE Computer Society, New York (1988)

  143. Lauenroth, K., Pohl, K., Toehning, S.: Model checking of domain artifacts in product line engineering. In: ASE, pp. 269–280 (2009)

  144. Lehman M.: Programs, life cycles, and laws of software evolution. IEEE Inf. Process. Lett. 68(9), 1060–1076 (1980)

    Google Scholar 

  145. Lerner B.: A model for compound type changes encountered in schema evolution. ACM Trans. Database Syst. 25(1), 83–127 (2000)

    Article  Google Scholar 

  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)

  147. Li, H.C., Krishnamurthi, S., Fisler, K.: Interfaces for modular feature verification. In: ASE, pp. 195–204 (2002)

  148. Li, H.C., Krishnamurthi, S., Fisler, K.: Verifying cross-cutting features as open systems. In: SIGSOFT FSE, pp. 89–98 (2002)

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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)

  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)

  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)

  154. Margaria T., Steffen B.: Continuous model-driven engineering. IEEE Comput. 42(10), 106–109 (2009)

    Article  Google Scholar 

  155. Margaria T., Steffen B., Kubczak C.: Evolution support in heterogeneous service-oriented landscapes. J. Braz. Comput. Soc. 16(1), 35–47 (2010)

    Article  Google Scholar 

  156. Margaria, T., Steffen, B., Reitenspieß, M.: Service-oriented design: the roots. In: ICSOC, pp. 450–464 (2005)

  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)

  158. McGregor, J.: The evolution of product line assets. Tech. rep., CMU/SEI-2003-TR-005 ESC-TR-2003-005 (2003)

  159. McGregor, J.D.: Testing a software product line. In: PSSE. LNCS, vol. 6153, pp. 104–140. Springer, Berlin (2007)

  160. McVeigh, A., Kramer, J., Magee, J.: Using resemblance to support component reuse and evolution. In: SAVCBS, pp. 49–56 (2006)

  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)

  162. Mens T., D’Hondt T.: Automating support for software evolution in UML. Autom. Softw. Eng. 7(1), 39–59 (2000)

    Article  Google Scholar 

  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)

  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)

  165. Mikhajlov, L., Sekerinski, E.: A study of the fragile base class problem. In: ECOOP. LNCS, vol. 1445, pp. 355–383. Springer, Berlin (1998)

  166. Mohan K., Ramesh B., Sugumaran V.: Integrating software product line engineering and agile development. IEEE Softw. 27(3), 48–55 (2010)

    Article  Google Scholar 

  167. Muccini H., van der Hoek A.: Towards testing product line architectures. Electron. Notes Theor. Comput. Sci. 82(6), 109–119 (2003)

    Article  Google Scholar 

  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)

  169. Muschevici, R., Clarke, D., Proença, J.: Feature Petri nets. In: FMSPLE. Technical Report, University of Lancaster, UK (2010)

  170. Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S.M., Zave, P.: Matching and merging of statecharts specifications. In: ICSE, pp. 54–64 (2007)

  171. Noda, N., Kishi, T.: Aspect-oriented modeling for variability management. In: SPLC (2008)

  172. Noda, N., Kishi, T.: Design verification tool for product line development. In: SPLC, pp. 147–148 (2007)

  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)

    Article  Google Scholar 

  174. Nuseibeh B., Easterbrook S., Russo A.: Making inconsistency respectable in software development. J. Syst. Softw. 58(2), 171–180 (2001)

    Article  Google Scholar 

  175. Nyman, U.: Modal Transition systems as the basis for interface theories and product lines. PhD thesis, Department of Computer Science, Aalborg University (2008)

  176. Oster, S., Markert, F., Ritter, P.: Automated incremental pairwise testing of software product lines. In: SPLC, pp. 196–210. Springer, Berlin (2010)

  177. Padmanabhan P., Lutz R.R.: Tool-supported verification of product line requirements. Autom. Softw. Eng. 12(4), 447–465 (2005)

    Article  Google Scholar 

  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)

  179. Plath, M., Ryan, M.D.: Plug-and-play features. In: FIW, pp. 150–164 (1998)

  180. Pleuss, A., Botterweck, G.: Visualization of variability and configuration options. STTT (2012, in this issue)

  181. Pohl K., Böckle G., van der Linden F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)

    MATH  Google Scholar 

  182. Pohl K., Metzger A.: Software product line testing. Commun. ACM 49(12), 78–81 (2006)

    Article  Google Scholar 

  183. Poppleton, M.: Towards feature-oriented specification and development with event-B. In: REFSQ, pp. 367–381 (2007)

  184. Post, H., Sinz, C.: Configuration lifting: verification meets software configuration. In: ASE, pp. 347–350 (2008)

  185. Prehofer C.: Plug-and-play composition of features and feature interactions with statechart diagrams. Softw. Syst. Model. 3(3), 221–234 (2004)

    Article  Google Scholar 

  186. Pure systems GmbH: Variant management with pure::variants. Technical whitepaper (2006)

  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)

  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)

    Article  Google Scholar 

  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)

  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)

  191. Schaefer, I., Bettini, L., Damiani, F.: Compositional type-checking for delta-oriented programming. In: AOSD. ACM Press, New York (2011)

  192. Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A model-based framework for automated product derivation. In: MAPLE (2009)

  193. Schaefer, I.: Variability modelling for model-driven development of software product lines. In: VaMoS, pp. 85–92 (2010)

  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)

  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)

  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)

    MathSciNet  Google Scholar 

  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)

  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)

  199. Schobbens P., Trigaux J., Heymans P., Bontemps Y.: Generic semantics of feature diagrams. Comput. Netw. 51(2), 456–479 (2006)

    Article  Google Scholar 

  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)

  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)

  202. Sinnema M., Deelstra S.: Classifying variability modeling techniques. Inf. Softw. Technol. 49(7), 717–739 (2006)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  204. Smith R., Ungar D.: A simple and unifying approach to subjective objects. ACM TOPLAS 2(3), 161–178 (1996)

    Google Scholar 

  205. Steffen B., Margaria T., Braun V., Kalt N.: Hierarchical service definition. Annu. Rev. Commun. ACM 51, 847–856 (1997)

    Google Scholar 

  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)

  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)

  208. Svahnberg M., Bosch J.: Evolution in software product lines: two cases. J. Softw. Maint. Res. Pract. 11(6), 391–422 (1999)

    Article  Google Scholar 

  209. Taivalsaari A.: On the notion of inheritance. ACM Comput. Surv. 28(3), 438–479 (1996)

    Article  Google Scholar 

  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)

  211. Thaker, S., Batory, D.S., Kitchin, D., Cook, W.R.: Safe composition of product lines. In: GPCE, pp. 95–104 (2007)

  212. Thang, N.T.: Incremental verification of consistency in feature-oriented software. PhD thesis, Japan Advanced Institute of Science and Technology (2005)

  213. Thüm, T., Batory, D.S., Kästner, C.: Reasoning about edits to feature models. In: ICSE, pp. 254–264 (2009)

  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)

  215. Ungar D., Smith R.B.: Self: the power of simplicity. ACM SIGPLAN Not. 22(12), 227–242 (1987)

    Article  Google Scholar 

  216. Uzuncaova E., Khurshid S., Batory D.S.: Incremental test generation for software product lines. IEEE Trans. Softw. Eng. 36(3), 309–322 (2010)

    Article  Google Scholar 

  217. van Deursen, A., Visser, E., Warmer, J.: Model-driven software evolution: a research agenda. In: MoDSE, pp. 41–49. University of Nantes (2007)

  218. van der Linden F.: Software product families in Europe: the Esaps & Cafè projects. IEEE Softw. 19(4), 41–49 (2002)

    Article  MathSciNet  Google Scholar 

  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)

  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. 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)

    Article  Google Scholar 

  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)

  223. Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242 (2007)

  224. Wehrheim H.: Slicing techniques for verification re-use. Theor. Comput. Sci. 343(3), 509–528 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  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)

  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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ina Schaefer.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Schaefer, I., Rabiser, R., Clarke, D. et al. Software diversity: state of the art and perspectives. Int J Softw Tools Technol Transfer 14, 477–495 (2012). https://doi.org/10.1007/s10009-012-0253-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-012-0253-y

Keywords

Navigation