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.
Similar content being viewed by others
References
Acher, M., Collet, P., Lahire, P., France, R.: Composing feature models. In: SLE. LNCS, vol. 5969, pp. 62–81. Springer, Berlin (2009)
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)
Ahmed F., Capretz L., Samarabandu J.: Fuzzy inference system for software product family process evaluation. Inf. Sci. 178(3), 2780–2793 (2008)
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)
Ali, M., Babar, M.A., Schmid, K.: A comparative survey of economic models for software product lines. In: SEAA, pp. 275–278 (2009)
Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring product lines. In: GPCE, pp. 201–210. ACM, New York (2006)
Ancona D., Zucca E.: A theory of mixin modules: algebraic laws and reduction semantics. Math. Struct. Comput. Sci. 12(6), 701–737 (2001)
Ancona D., Lagorio G., Zucca E.: Jam—designing a Java extension with mixins. ACM TOPLAS 25(5), 641–712 (2003)
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)
Apel S., Kästner C.: An overview of feature-oriented software development. J. Object Technol. 8(5), 49–84 (2009)
Apel, S., Leich, T., Saake, G.: Aspectual mixin layers: aspects and features in concert. In: ICSE. ACM Press, New York, pp. 122–131 (2006)
Apel, S., Janda, F., Trujillo, S., Kästner, C.: Model superimposition in software product lines. In: International Conference on Model Transformation (ICMT) (2009)
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)
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)
Apel, S., Scholz, W., Lengauer, C., Kästner, C.: Detecting dependences and interactions in feature-oriented design. In: ISSRE, pp. 161–170 (2010)
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)
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)
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)
Asirelli, P., ter Beek, M.H., Gnesi, S., Fantechi, A.: A deontic logical framework for modelling product families. In: VaMoS, pp. 37–44 (2010)
Aßmann U.: Invasive Software Composition. Springer, Berlin (2003)
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)
Babar, M., Ihme, T., Pikkarainen, M.: An industrial case of exploiting product line architectures in agile software development. In: SPLC, pp. 171–177 (2006)
Bassett P.G.: Framing Software Reuse: Lessons from the Real World. Prentice-Hall, Englewood Cliffs (1997)
Batory, D.: Feature models, grammars, and propositional formulas. In: SPLC. LNCS, vol. 3714, pp. 7–20. Springer, Berlin (2005)
Batory D., Benavides D., Ruiz-Cortes A.: Automated analysis of feature models: challenges ahead. Commun. ACM 49(12), 45–47 (2006)
Batory D., Börger E.: Modularizing theorems for software product lines: the Jbook case study. J. Univ. Comput. Sci. 14(12), 2059–2082 (2008)
Batory D.S., Sarvela J.N., Rauschmayer A.: Scaling step-wise refinement. IEEE TSE 30(6), 355–371 (2004)
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)
Beckert, B., Klebanov, V.: Proof reuse for deductive program verification. In: SEFM, pp. 77–86. IEEE Computer Society, New York (2004)
Benavides D., Segura S., Ruiz-Cortes A.: Automated analysis of feature models 20 years later. Inf. Syst. 35(6), 615–636 (2010)
Berg, K., Bishop, J., Muthig, D.: Tracing software product line variability: from problem to solution space. In: SAICSIT, pp. 182–191 (2005)
Bettini L., Bono V., Venneri B.: MoMi: a calculus for mobile mixins. Acta Inform. 42(2–3), 143–190 (2005)
Bettini L., Bono V., Venneri B.: Delegation by object composition. Sci. Comput. Program. 76(11), 992–1014 (2011)
Bettini, L., Damiani, F., Schaefer, I.: Implementing software product lines using traits. In: SAC, OOPS Track, pp. 2096–2102. ACM, New York (2010)
Blundell, C., Fisler, K., Krishnamurthi, S., Hentenryck, P.V.: Parameterized interfaces for open system verification of product lines. In: ASE, pp. 258–267 (2004)
Bosch J.: Design and Use of Software Architectures, Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)
Bosch, J.: Software product lines: organizational alternatives. In: ICSE, pp. 91–100 (2001)
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)
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)
Broy, M.: Service-oriented systems engineering: modeling services and layered architectures. In: FORTE. LNCS, vol. 2767, pp. 48–61 (2003)
Bruns, D., Klebanov, V., Schaefer, I.: Verification of software product lines with delta-oriented slicing. In: FoVeOOS. LNCS, vol. 6528. Springer, Berlin (2010)
Bubel, R., Din, C., Hänle, R.: Verification of variable software: an experience report. In: FoVeOOS. LNCS, vol. 6528. Springer, Berlin (2010)
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)
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)
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)
Casati F., Ceri S., Pernici B., Pozzi G.: Workflow evolution. Data Knowl. Eng. 24(3), 211–238 (1998)
Chambers, C.: Object-oriented multi-methods in Cecil. In: ECOOP. LNCS, vol. 615, pp. 33–56. Springer, Berlin (1992)
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)
Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: GPCE. ACM, New York (2010)
Clarke, D., Proença, J.: Towards a theory of views for feature models. In: FMSPLE. Technical Report, University of Lancaster, UK (2010)
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)
Classen, A., Cordy, M., Heymans, P., Legay, A., Schobbens, P.Y.: Model checking software product lines with SNIP. STTT (2012, in this issue)
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)
Clements P., Northrop L.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Reading (2001)
Cohen, M.B., Dwyer, M.B., Shi, J.: Coverage and adequacy in software product line testing. In: ROSATEA, pp. 53–63 (2006)
Colyer, A., Clement, A.: Large-scale AOSD for middleware. In: AOSD, pp. 56–65. ACM Press, New York (2004)
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)
Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: GPCE, pp. 422–437. Springer, Berlin (2005)
Czarnecki K., Eisenecker U.: Generative Programming: Methods, Techniques, and Applications. Addison-Wesley, Reading (2000)
Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: GPCE, pp. 211–220 (2006)
Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: SPLC, pp. 23–34 (2007)
Deelstra S., Sinnema M., Bosch J.: Product derivation in software product families: a case study. J. Syst. Softw. 74(2), 173–194 (2005)
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)
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)
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)
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)
Dhungana, D., Neumayer, T., Grünbacher, P., Rabiser, R.: Supporting evolution in model-based product line engineering. In: SPLC (2008)
D’Souza, D., Gopinathan, M.: Conflict-tolerant features. In: CAV. LNCS, vol. 5123, pp. 227–239. Springer, Berlin (2008)
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)
Eclipse-Foundation: Atlas model weaver. http://www.eclipse.org/gmt/amw/
Eclipse-Foundation: EMF compare. http://www.eclipse.org/modeling/emft/?project=compare
Eclipse-Foundation: Epsilon project. http://www.eclipse.org/gmt/epsilon/
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)
Fantechi, A., Gnesi, S.: Formal modeling for product families engineering. In: SPLC (2008)
Fantechi, A., Gnesi, S.: A behavioural model for product families. In: ESEC/SIGSOFT FSE, pp. 521–524 (2007)
Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In: ICFP, pp. 94–104. ACM, New York (1998)
Fischbein, D., Uchitel, S., Braberman, V.A.: A foundation for behavioural conformance in software product line architectures. In: ROSATEA, pp. 39–48 (2006)
Fisher, K., Mitchell, J.C.: A delegation-based object calculus with subtyping. In: FCT. LNCS, vol. 965, pp. 42–61. Springer, Berlin (1995)
Fisler, K., Krishnamurthi, S.: Modular verification of collaboration-based software designs. In: ESEC/SIGSOFT FSE, pp. 152–163 (2001)
Fisler, K., Krishnamurthi, S.: Decomposing verification around end-user features. In: VSTTE. LNCS, vol. 4171, pp. 74–81. Springer, Berlin (2005)
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)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: POPL, pp. 171–183. ACM Press, New York (1998)
Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley/ACM Press, Reading (2011). http://books.google.de/books?id=ri1muolw_Ywc
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)
Ganesan, D., Muthig, D., Yoshimura, K.: Predicting return-on-investment for product line generations. In: SPLC, pp. 13–24 (2006)
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)
Gheyi, R., Massoni, T., Borba, P.: A theory for feature models in Alloy. In: Alloy Workshop, pp. 71–80 (2006)
Gheyi R., Massoni T., Borba P.: Algebraic laws for feature models. J. UCS 14(21), 3573–3591 (2008)
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)
Gomaa H.: Designing Software Product Lines with UML. Addison-Wesley, Reading (2005)
Greenfield J., Short K.: Software Factories. Hungry Minds, New York (2006)
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)
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)
Haber, A., Kutz, T., Rendel, H., Rumpe, B., Schaefer, I.: Delta-oriented architectural variability using MontiCore. In: Workshop on Software Architecture Variability (SAVA) (2011)
Haber, A., Rendel, H., Rumpe, B., Schaefer, I.: Delta modeling for software architectures. In: Workshop on Model-Based Development of Embedded Systems (MBEES) (2011)
Haber, A., Rendel, H., Rumpe, B., Schaefer, I., van der Linden, F.: Hierarchical variability modeling for software architectures. In: SPLC (2011)
Hanssen, G., Fægri, T.: Process fusion: an industrial case study on agile software product line engineering. J. Syst. Softw. 81(6) (2008)
Harel D., Kozen D., Tiuryn J.: Dynamic Logic. MIT Press, Cambridge (2000)
Harhurin, A., Hartmann, J.: Towards consistent specifications of product families. In: FM. LNCS, vol. 5014, pp. 390–405. Springer, Berlin (2008)
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)
Heidenreich, F., Kopcsek, J., Wende, C.: FeatureMapper: mapping features to models. In: ICSE, pp. 943–944. ACM, New York (2008)
Heidenreich, F., Wende, C.: Bridging the gap between features and models. In: Aspect-Oriented Product Line Engineering (2007)
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)
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)
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)
Hendrickson, S.A., van der Hoek, A.: Modeling product line architectures through change sets and relationships. In: ICSE (2007)
Herrmannsdoerfer, M., Benz, S., Juergens, E.: COPE—automating coupled evolution of metamodels and models. In: ECOOP, pp. 52–76. Springer, Berlin (2009)
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)
Heymans, P., Boucher, Q., Classen, A., Bourdoux, A., Demonceau, L.: A code tagging approach to software product line development. STTT (2012, in this issue)
Hirschfeld R., Costanza P., Nierstrasz O.: Context-oriented programming. J. Object Technol. 7(3), 125–151 (2008)
Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: ESOP. LNCS, vol. 2305, pp. 6–20. Springer, Berlin (2002)
Höfner, P., Khédri, R., Möller, B.: Algebraic view reconciliation. In: SEFM, pp. 149–158. IEEE Computer Society (2008)
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)
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)
Jonsson B., Margaria T., Naeser G., Nyström J., Steffen B.: Incremental requirement specification for evolving systems. Nord. J. Comput. 8, 65–87 (2001)
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)
Jörges, S., Lamprecht, A.L., Margaria, T., Schaefer, I., Steffen, B.: A constraint-based variability modeling framework. STTT (2012, in this issue)
Jörges S., Margaria T., Steffen B.: Genesys: service-oriented construction of property conform code generators. ISSE 4(4), 361–384 (2008)
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)
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)
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)
Kästner, C., Apel, S.: Type-checking software product lines—a formal approach. In: ASE, pp. 258–267. IEEE, New York (2008)
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)
Kaufmann M., Moore J.S., Manolios P.: Computer-Aided Reasoning: An Approach. Kluwer, Norwell (2000)
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)
Kelly S., Tolvanen J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, New York (2008)
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)
Kim, C., Batory, D., Khurshid, S.: Reducing combinatorics in testing product lines. In: AOSD (2011)
Kishi T., Noda N.: Formal verification and software product lines. Commun. ACM 49(12), 73–77 (2006)
Kniesel, G.: Type-safe delegation for run-time component adaptation. In: ECOOP. LNCS, vol. 1628, pp. 351–366. Springer, Berlin (1999)
Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. In: SIGSOFT FSE, pp. 137–146 (2004)
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)
Krueger C.: New methods in software product line practicel. Commun. ACM 49(12), 37–40 (2006)
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)
Kuhlemann, M., Batory, D.S., Kästner, C.: Safe composition of non-monotonic features. In: GPCE, pp. 177–186 (2009)
Lamancha, B.P., Usaola, M.P., Velthius, M.P.: Software product line testing—a systematic review. In: ICSOFT, pp. 23–30 (2009)
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)
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)
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)
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)
Larsen K.G., Nyman U., Wasowski A.: Modeling software product lines using color-blind transition systems. STTT 9(5–6), 471–487 (2005)
Larsen, K.G., Thomsen, B.: A modal process logic. In: LICS, pp. 203–210. IEEE Computer Society, New York (1988)
Lauenroth, K., Pohl, K., Toehning, S.: Model checking of domain artifacts in product line engineering. In: ASE, pp. 269–280 (2009)
Lehman M.: Programs, life cycles, and laws of software evolution. IEEE Inf. Process. Lett. 68(9), 1060–1076 (1980)
Lerner B.: A model for compound type changes encountered in schema evolution. ACM Trans. Database Syst. 25(1), 83–127 (2000)
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)
Li, H.C., Krishnamurthi, S., Fisler, K.: Interfaces for modular feature verification. In: ASE, pp. 195–204 (2002)
Li, H.C., Krishnamurthi, S., Fisler, K.: Verifying cross-cutting features as open systems. In: SIGSOFT FSE, pp. 89–98 (2002)
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)
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)
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)
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)
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)
Margaria T., Steffen B.: Continuous model-driven engineering. IEEE Comput. 42(10), 106–109 (2009)
Margaria T., Steffen B., Kubczak C.: Evolution support in heterogeneous service-oriented landscapes. J. Braz. Comput. Soc. 16(1), 35–47 (2010)
Margaria, T., Steffen, B., Reitenspieß, M.: Service-oriented design: the roots. In: ICSOC, pp. 450–464 (2005)
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)
McGregor, J.: The evolution of product line assets. Tech. rep., CMU/SEI-2003-TR-005 ESC-TR-2003-005 (2003)
McGregor, J.D.: Testing a software product line. In: PSSE. LNCS, vol. 6153, pp. 104–140. Springer, Berlin (2007)
McVeigh, A., Kramer, J., Magee, J.: Using resemblance to support component reuse and evolution. In: SAVCBS, pp. 49–56 (2006)
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)
Mens T., D’Hondt T.: Automating support for software evolution in UML. Autom. Softw. Eng. 7(1), 39–59 (2000)
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)
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)
Mikhajlov, L., Sekerinski, E.: A study of the fragile base class problem. In: ECOOP. LNCS, vol. 1445, pp. 355–383. Springer, Berlin (1998)
Mohan K., Ramesh B., Sugumaran V.: Integrating software product line engineering and agile development. IEEE Softw. 27(3), 48–55 (2010)
Muccini H., van der Hoek A.: Towards testing product line architectures. Electron. Notes Theor. Comput. Sci. 82(6), 109–119 (2003)
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)
Muschevici, R., Clarke, D., Proença, J.: Feature Petri nets. In: FMSPLE. Technical Report, University of Lancaster, UK (2010)
Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S.M., Zave, P.: Matching and merging of statecharts specifications. In: ICSE, pp. 54–64 (2007)
Noda, N., Kishi, T.: Aspect-oriented modeling for variability management. In: SPLC (2008)
Noda, N., Kishi, T.: Design verification tool for product line development. In: SPLC, pp. 147–148 (2007)
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)
Nuseibeh B., Easterbrook S., Russo A.: Making inconsistency respectable in software development. J. Syst. Softw. 58(2), 171–180 (2001)
Nyman, U.: Modal Transition systems as the basis for interface theories and product lines. PhD thesis, Department of Computer Science, Aalborg University (2008)
Oster, S., Markert, F., Ritter, P.: Automated incremental pairwise testing of software product lines. In: SPLC, pp. 196–210. Springer, Berlin (2010)
Padmanabhan P., Lutz R.R.: Tool-supported verification of product line requirements. Autom. Softw. Eng. 12(4), 447–465 (2005)
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)
Plath, M., Ryan, M.D.: Plug-and-play features. In: FIW, pp. 150–164 (1998)
Pleuss, A., Botterweck, G.: Visualization of variability and configuration options. STTT (2012, in this issue)
Pohl K., Böckle G., van der Linden F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)
Pohl K., Metzger A.: Software product line testing. Commun. ACM 49(12), 78–81 (2006)
Poppleton, M.: Towards feature-oriented specification and development with event-B. In: REFSQ, pp. 367–381 (2007)
Post, H., Sinz, C.: Configuration lifting: verification meets software configuration. In: ASE, pp. 347–350 (2008)
Prehofer C.: Plug-and-play composition of features and feature interactions with statechart diagrams. Softw. Syst. Model. 3(3), 221–234 (2004)
Pure systems GmbH: Variant management with pure::variants. Technical whitepaper (2006)
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)
Rabiser R., O’Leary P., Richardson I.: Key activities for product derivation in software product lines. J. Syst. Softw. 84(2), 285–300 (2011)
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)
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)
Schaefer, I., Bettini, L., Damiani, F.: Compositional type-checking for delta-oriented programming. In: AOSD. ACM Press, New York (2011)
Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A model-based framework for automated product derivation. In: MAPLE (2009)
Schaefer, I.: Variability modelling for model-driven development of software product lines. In: VaMoS, pp. 85–92 (2010)
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)
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)
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)
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)
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)
Schobbens P., Trigaux J., Heymans P., Bontemps Y.: Generic semantics of feature diagrams. Comput. Netw. 51(2), 456–479 (2006)
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)
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)
Sinnema M., Deelstra S.: Classifying variability modeling techniques. Inf. Softw. Technol. 49(7), 717–739 (2006)
Smaragdakis Y., Batory D.: Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM TOSEM 11(2), 215–255 (2002)
Smith R., Ungar D.: A simple and unifying approach to subjective objects. ACM TOPLAS 2(3), 161–178 (1996)
Steffen B., Margaria T., Braun V., Kalt N.: Hierarchical service definition. Annu. Rev. Commun. ACM 51, 847–856 (1997)
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)
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)
Svahnberg M., Bosch J.: Evolution in software product lines: two cases. J. Softw. Maint. Res. Pract. 11(6), 391–422 (1999)
Taivalsaari A.: On the notion of inheritance. ACM Comput. Surv. 28(3), 438–479 (1996)
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)
Thaker, S., Batory, D.S., Kitchin, D., Cook, W.R.: Safe composition of product lines. In: GPCE, pp. 95–104 (2007)
Thang, N.T.: Incremental verification of consistency in feature-oriented software. PhD thesis, Japan Advanced Institute of Science and Technology (2005)
Thüm, T., Batory, D.S., Kästner, C.: Reasoning about edits to feature models. In: ICSE, pp. 254–264 (2009)
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)
Ungar D., Smith R.B.: Self: the power of simplicity. ACM SIGPLAN Not. 22(12), 227–242 (1987)
Uzuncaova E., Khurshid S., Batory D.S.: Incremental test generation for software product lines. IEEE Trans. Softw. Eng. 36(3), 309–322 (2010)
van Deursen, A., Visser, E., Warmer, J.: Model-driven software evolution: a research agenda. In: MoDSE, pp. 41–49. University of Nantes (2007)
van der Linden F.: Software product families in Europe: the Esaps & Cafè projects. IEEE Softw. 19(4), 41–49 (2002)
van der Linden, F., Bosch, J., Kamsties, E., Känsälä, K., Obbink, H.: Software product family evaluation. In: SPLC, pp. 110–129 (2004)
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)
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)
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)
Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242 (2007)
Wehrheim H.: Slicing techniques for verification re-use. Theor. Comput. Sci. 343(3), 509–528 (2005)
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)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-012-0253-y