Skip to main content

Feature-Oriented Software Development

A Short Tutorial on Feature-Oriented Programming, Virtual Separation of Concerns, and Variability-Aware Analysis

  • Chapter
Book cover Generative and Transformational Techniques in Software Engineering IV (GTTSE 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7680))

Abstract

Feature-oriented software development is a paradigm for the construction, customization, and synthesis of large-scale and variable software systems, focusing on structure, reuse and variation. In this tutorial, we provide a gentle introduction to software product lines, feature oriented programming, virtual separation of concerns, and variability-aware analysis. We provide an overview, show connections between the different lines of research, and highlight possible future research directions.

These tutorial notes share text with previous publications on feature-oriented software development [3,4,47,49].

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adams, B., Van Rompaey, B., Gibbs, C., Coady, Y.: Aspect mining in the presence of the C preprocessor. In: Proc. AOSD Workshop on Linking Aspect Technology and Evolution (LATE), pp. 1–6. ACM Press (2008)

    Google Scholar 

  2. Anfurrutia, F.I., Díaz, Ó., Trujillo, S.: On Refining XML Artifacts. In: Baresi, L., Fraternali, P., Houben, G.-J. (eds.) ICWE 2007. LNCS, vol. 4607, pp. 473–478. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  3. Apel, S., Hutchins, D.: A calculus for uniform feature composition. ACM Trans. Program. Lang. Syst. (TOPLAS) 32(5), 1–33 (2010)

    Article  Google Scholar 

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

    Article  Google Scholar 

  5. Apel, S., Kästner, C., Größlinger, A., Lengauer, C.: Type safety for feature-oriented product lines. Automated Software Engineering 17(3), 251–300 (2010)

    Article  Google Scholar 

  6. Apel, S., Kästner, C., Lengauer, C.: Feature Featherweight Java: A calculus for feature-oriented programming and stepwise refinement. In: Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE), pp. 101–112. ACM Press (2008)

    Google Scholar 

  7. Apel, S., Kästner, C., Lengauer, C.: FeatureHouse: Language-independent, automated software composition. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 221–231. IEEE Computer Society (2009)

    Google Scholar 

  8. Apel, S., Kolesnikov, S., Liebig, J., Kästner, C., Kuhlemann, M., Leich, T.: Access control in feature-oriented programming. Science of Computer Programming (Special Issue on Feature-Oriented Software Development) 77(3), 174–187 (2012)

    Google Scholar 

  9. Apel, S., Leich, T., Rosenmüller, M., Saáke, G.: FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 125–140. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  10. Apel, S., Leich, T., Saake, G.: Aspectual feature modules. IEEE Trans. Softw. Eng. (TSE) 34(2), 162–180 (2008)

    Article  Google Scholar 

  11. Apel, S., Lengauer, C.: Superimposition: A Language-Independent Approach to Software Composition. In: Pautasso, C., Tanter, É. (eds.) SC 2008. LNCS, vol. 4954, pp. 20–35. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  12. Apel, S., Speidel, H., Wendler, P., von Rhein, A., Beyer, D.: Detection of feature interactions using feature-aware verification. In: Proc. Int’l Conf. Automated Software Engineering (ASE), pp. 372–375. IEEE Computer Society (2011)

    Google Scholar 

  13. Atkins, D.L., Ball, T., Graves, T.L., Mockus, A.: Using version control data to evaluate the impact of software tools: A case study of the Version Editor. IEEE Trans. Softw. Eng. (TSE) 28(7), 625–637 (2002)

    Article  Google Scholar 

  14. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Boston (1998)

    Google Scholar 

  15. Batory, D.: Feature Models, Grammars, and Propositional Formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  16. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. (TSE) 30(6), 355–371 (2004)

    Article  Google Scholar 

  17. Baxter, I., Mehlich, M.: Preprocessor conditional removal by simple partial evaluation. In: Proc. Working Conf. Reverse Engineering (WCRE), pp. 281–290. IEEE Computer Society (2001)

    Google Scholar 

  18. Benavides, D., Seguraa, S., Ruiz-Cortés, A.: Automated analysis of feature models 20 years later: A literature review. Information Systems 35(6), 615–636 (2010)

    Article  Google Scholar 

  19. Beuche, D., Papajewski, H., Schröder-Preikschat, W.: Variability management with feature models. Sci. Comput. Program. 53(3), 333–352 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  20. Bono, V., Patel, A., Shmatikov, V.: A Core Calculus of Classes and Mixins. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 43–66. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  21. Bosch, J.: Super-imposition: A component adaptation technique. Information and Software Technology (IST) 41(5), 257–273 (1999)

    Article  Google Scholar 

  22. Bouge, L., Francez, N.: A compositional approach to superimposition. In: Proc. Symp. Principles of Programming Languages (POPL), pp. 240–249. ACM Press (1988)

    Google Scholar 

  23. Brabrand, C., Schwartzbach, M.I.: Growing languages with metamorphic syntax macros. In: Proc. Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM), pp. 31–40. ACM Press (2002)

    Google Scholar 

  24. Bracha, G., Cook, W.: Mixin-based inheritance. In: Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pp. 303–311. ACM Press (1990)

    Google Scholar 

  25. Calder, M., Kolberg, M., Magill, E.H., Reiff-Marganiec, S.: Feature interaction: A critical review and considered forecast. Computer Networks 41(1), 115–141 (2003)

    Article  MATH  Google Scholar 

  26. Chen, L., Babar, M.A., Ali, N.: Variability management in software product lines: A systematic review. In: Proc. Int’l Software Product Line Conference (SPLC), pp. 81–90. Carnegie Mellon University (2009)

    Google Scholar 

  27. 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: Proc. Int’l Conf. Software Engineering (ICSE), pp. 335–344. ACM Press (2010)

    Google Scholar 

  28. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston (2001)

    Google Scholar 

  29. Coppit, D., Painter, R., Revelle, M.: Spotlight: A prototype tool for software plans. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 754–757. IEEE Computer Society (2007)

    Google Scholar 

  30. Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley, New York (2000)

    Google Scholar 

  31. Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE), pp. 211–220. ACM Press (2006)

    Google Scholar 

  32. Ernst, M., Badros, G., Notkin, D.: An empirical analysis of C preprocessor use. IEEE Trans. Softw. Eng. (TSE) 28(12), 1146–1170 (2002)

    Article  Google Scholar 

  33. Erwig, M., Walkingshaw, E.: The choice calculus: A representation for software variation. ACM Trans. Softw. Eng. Methodol. (TOSEM) 21(1), 6:1–6:27 (2011)

    Article  Google Scholar 

  34. Favre, J.-M.: Understanding-in-the-large. In: Proc. Int’l Workshop on Program Comprehension, p. 29. IEEE Computer Society (1997)

    Google Scholar 

  35. Feigenspan, J., Schulze, M., Papendieck, M., Kästner, C., Dachselt, R., Köppen, V., Frisch, M.: Using background colors to support program comprehension in software product lines. In: Proc. Int’l Conf. Evaluation and Assessment in Software Engineering (EASE), pp. 66–75 (2011)

    Google Scholar 

  36. Filman, R.E., Elrad, T., Clarke, S., Aksit, M. (eds.): Addison-Wesley, Boston (2005)

    Google Scholar 

  37. Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In: Proc. Int’l Conf. Functional Programming (ICFP), pp. 94–104. ACM Press (1998)

    Google Scholar 

  38. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proc. Symp. Principles of Programming Languages (POPL), pp. 171–183. ACM Press (1998)

    Google Scholar 

  39. Garrido, A.: Program Refactoring in the Presence of Preprocessor Directives. PhD thesis, University of Illinois at Urbana-Champaign (2005)

    Google Scholar 

  40. Griss, M.L., Favaro, J., d’ Alessandro, M.: Integrating feature modeling with the RSEB. In: Proc. Int’l Conf. Software Reuse (ICSR), p. 76. IEEE Computer Society (1998)

    Google Scholar 

  41. Günther, S., Sunkle, S.: Feature-oriented programming with Ruby. In: Proc. GPCE Workshop on Feature-Oriented Software Development (FOSD), pp. 11–18. ACM Press (2009)

    Google Scholar 

  42. Habermann, A.N., Flon, L., Cooprider, L.: Modularization and hierarchy in a family of operating systems. Commun. ACM 19(5), 266–272 (1976)

    Article  MATH  Google Scholar 

  43. Heidenreich, F., Şavga, I., Wende, C.: On controlled visualisations in software product line engineering. In: Proc. SPLC Workshop on Visualization in Software Product Line Engineering (ViSPLE), pp. 303–313. Lero (2008)

    Google Scholar 

  44. Janzen, D., De Volder, K.: Programming with Crosscutting Effective Views. In: Vetta, A. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 197–220. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  45. John, I., Eisenbarth, M.: A decade of scoping – a survey. In: Proc. Int’l Software Product Line Conference (SPLC), pp. 31–40. Carnegie Mellon University (2009)

    Google Scholar 

  46. Kang, K., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, SEI, Pittsburgh, PA (1990)

    Google Scholar 

  47. Kästner, C.: Virtual Separation of Concerns. PhD thesis, University of Magdeburg (2010)

    Google Scholar 

  48. Kästner, C., Apel, S.: Integrating compositional and annotative approaches for product line engineering. In: Proc. GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering, pp. 35–40. University of Passau (2008)

    Google Scholar 

  49. Kästner, C., Apel, S.: Virtual separation of concerns – A second chance for preprocessors. Journal of Object Technology (JOT) 8(6), 59–78 (2009)

    Article  Google Scholar 

  50. Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 311–320. ACM Press (2008)

    Google Scholar 

  51. Kästner, C., Apel, S., Kuhlemann, M.: A model of refactoring physically and virtually separated features. In: Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE), pp. 157–166. ACM Press (2009)

    Google Scholar 

  52. Kästner, C., Apel, S., Ostermann, K.: The road to feature modularity? In: Proceedings of the Third Workshop on Feature-Oriented Software Development (FOSD), pp. 5:1–5:8. ACM Press (September 2011)

    Google Scholar 

  53. Kästner, C., Apel, S., Thüm, T., Saake, G.: Type checking annotation-based product lines. ACM Trans. Softw. Eng. Methodol. (TOSEM) 21(3), 14:1–14:39 (2012)

    Article  Google Scholar 

  54. Kästner, C., Apel, S., Trujillo, S., Kuhlemann, M., Batory, D.: Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach. In: Oriol, M., Meyer, B. (eds.) TOOLS EUROPE 2009. LNBIP, vol. 33, pp. 175–194. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  55. Kästner, C., Apel, S., ur Rahman, S.S., Rosenmüller, M., Batory, D., Saake, G.: On the impact of the optional feature problem: Analysis and case studies. In: Proc. Int’l Software Product Line Conference (SPLC), pp. 181–190. Carnegie Mellon University (2009)

    Google Scholar 

  56. Kästner, C., Giarrusso, P.G., Rendel, T., Erdweg, S., Ostermann, K., Berger, T.: Variability-aware parsing in the presence of lexical macros and conditional compilation. In: Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pp. 805–824. ACM Press (October 2011)

    Google Scholar 

  57. Kästner, C., Thüm, T., Saake, G., Feigenspan, J., Leich, T., Wielgorz, F., Apel, S.: FeatureIDE: Tool framework for feature-oriented software development. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 611–614. IEEE Computer Society (2009)

    Google Scholar 

  58. Kästner, C., Trujillo, S., Apel, S.: Visualizing software product line variabilities in source code. In: Proc. SPLC Workshop on Visualization in Software Product Line Engineering (ViSPLE), pp. 303–313. Lero (2008)

    Google Scholar 

  59. Kim, C.H.P., Batory, D.S., Khurshid, S.: Reducing combinatorics in testing product lines. In: Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD), pp. 57–68. ACM Press (2011)

    Google Scholar 

  60. Lauenroth, K., Pohl, K., Toehning, S.: Model checking of domain artifacts in product line engineering. In: Proc. Int’l Conf. Automated Software Engineering (ASE), pp. 269–280. IEEE Computer Society (2009)

    Google Scholar 

  61. Lee, J.J., Kang, K.C., Kim, S.: A Feature-Based Approach to Product Line Production Planning. In: Nord, R.L. (ed.) SPLC 2004. LNCS, vol. 3154, pp. 183–196. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  62. Leich, T., Apel, S., Marnitz, L.: Tool support for feature-oriented software development: FeatureIDE: An eclipse-based approach. In: Proc. OOPSLA Workshop on Eclipse Technology eXchange (ETX), pp. 55–59. ACM Press (2005)

    Google Scholar 

  63. Li, H.C., Krishnamurthi, S., Fisler, K.: Modular verification of open features using three-valued model checking. Automated Software Engineering 12(3), 349–382 (2005)

    Article  Google Scholar 

  64. Liebig, J., Kästner, C., Apel, S.: Analyzing the discipline of preprocessor annotations in 30 million lines of C code. In: Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD), pp. 191–202. ACM Press (2011)

    Google Scholar 

  65. Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 112–121. ACM Press (2006)

    Google Scholar 

  66. McCloskey, B., Brewer, E.: ASTEC: A new approach to refactoring C. In: Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE), pp. 21–30. ACM Press (2005)

    Google Scholar 

  67. Mendonça, M., Wąsowski, A., Czarnecki, K.: SAT-based analysis of feature models is easy. In: Proc. Int’l Software Product Line Conference (SPLC), pp. 231–240. Carnegie Mellon University (2009)

    Google Scholar 

  68. Mendonça, M., Wąsowski, A., Czarnecki, K., Cowan, D.D.: Efficient compilation techniques for large scale feature models. In: Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE), pp. 13–22. ACM Press (2008)

    Google Scholar 

  69. Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. (TSE) 28(5), 449–462 (2002)

    Article  Google Scholar 

  70. Ossher, H., Harrison, W.: Combination of inheritance hierarchies. In: Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pp. 25–40. ACM Press (1992)

    Google Scholar 

  71. Ossher, H., Tarr, P.: Hyper/J: Multi-dimensional separation of concerns for Java. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 734–737. ACM Press (2000)

    Google Scholar 

  72. Oster, S., Markert, F., Ritter, P.: Automated Incremental Pairwise Testing of Software Product Lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 196–210. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  73. Padioleau, Y.: Parsing C/C++ Code without Pre-processing. In: de Moor, O., Schwartzbach, M.I. (eds.) CC 2009. LNCS, vol. 5501, pp. 109–125. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  74. Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. (TSE) 2(1), 1–9 (1976)

    Article  MATH  Google Scholar 

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

    Book  MATH  Google Scholar 

  76. Post, H., Sinz, C.: Configuration lifting: Verification meets software configuration. In: Proc. Int’l Conf. Automated Software Engineering (ASE), pp. 347–350. IEEE Computer Society (2008)

    Google Scholar 

  77. Prehofer, C.: Feature-Oriented Programming: A Fresh Look at Objects. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  78. Rabiser, R., Grünbacher, P., Dhungana, D.: Supporting product derivation by adapting and augmenting variability models. In: Proc. Int’l Software Product Line Conference (SPLC), pp. 141–150. IEEE Computer Society (2007)

    Google Scholar 

  79. Refstrup, J.G.: Adapting to change: Architecture, processes and tools: A closer look at HP’s experience in evolving the Owen software product line. In: Proc. Int’l Software Product Line Conference, SPLC (2009), Keynote presentation

    Google Scholar 

  80. Rosenmüller, M., Apel, S., Leich, T., Saake, G.: Tailor-made data management for embedded systems: A case study on Berkeley DB. Data and Knowledge Engineering (DKE) 68(12), 1493–1512 (2009)

    Article  Google Scholar 

  81. Schaefer, I., Bettini, L., Damiani, F.: Compositional type-checking for delta-oriented programming. In: Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD), pp. 43–56. ACM Press (2011)

    Google Scholar 

  82. Siegmund, N., Rosenmüller, M., Kuhlemann, M., Kästner, C., Apel, S., Saake, G.: SPL Conqueror: Toward optimization of non-functional properties in software product lines. Software Quality Journal - Special issue on Quality Engineering for Software Product Lines (in press, 2012)

    Google Scholar 

  83. Sincero, J., Tartler, R., Lohmann, D., Schröder-Preikschat, W.: Efficient extraction and analysis of preprocessor-based variability. In: Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE), pp. 33–42. ACM Press (2010)

    Google Scholar 

  84. Singh, N., Gibbs, C., Coady, Y.: C-CLR: A tool for navigating highly configurable system software. In: Proc. AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS), p. 9. ACM Press (2007)

    Google Scholar 

  85. Smaragdakis, Y., Batory, D.: Mixin layers: An object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. Softw. Eng. Methodol. (TOSEM) 11(2), 215–255 (2002)

    Article  Google Scholar 

  86. Spencer, H., Collyer, G.: #ifdef considered harmful or portability experience with C news. In: Proc. USENIX Conf., pp. 185–198. USENIX Association (1992)

    Google Scholar 

  87. Steger, M., Tischer, C., Boss, B., Müller, A., Pertler, O., Stolz, W., Ferber, S.: Introducing PLA at Bosch Gasoline Systems: Experiences and Practices. In: Nord, R.L. (ed.) SPLC 2004. LNCS, vol. 3154, pp. 34–50. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  88. Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Boston (2002)

    MATH  Google Scholar 

  89. Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.M.: N degrees of separation: Multi-dimensional separation of concerns. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 107–119. IEEE Computer Society (1999)

    Google Scholar 

  90. Tartler, R., Lohmann, D., Sincero, J., Schröder-Preikschat, W.: Feature consistency in compile-time-configurable system software: Facing the Linux 10,000 feature problem. In: Proc. European Conference on Computer Systems (EuroSys), pp. 47–60. ACM Press (2011)

    Google Scholar 

  91. Tešanović, A., Sheng, K., Hansson, J.: Application-tailored database systems: A case of aspects in an embedded database. In: Proc. Int’l Database Engineering and Applications Symposium, pp. 291–301. IEEE Computer Society (2004)

    Google Scholar 

  92. Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe composition of product lines. In: Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE), pp. 95–104. ACM Press (2007)

    Google Scholar 

  93. Thüm, T., Apel, S., Kästner, C., Kuhlemann, M., Schaefer, I., Saake, G.: Analysis strategies for software product lines. Technical Report FIN-004-2012, School of Computer Science, University of Magdeburg (April 2012)

    Google Scholar 

  94. Thüm, T., Batory, D., Kästner, C.: Reasoning about edits to feature models. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 254–264. IEEE Computer Society (2009)

    Google Scholar 

  95. Thüm, T., Schaefer, I., Kuhlemann, M., Apel, S.: Proof composition for deductive verification of software product lines. In: Proc. Int’l Workshop on Variability-Intensive Systems Testing, Validation & Verification (VAST), pp. 270–277. IEEE Computer Society (2011)

    Google Scholar 

  96. Vittek, M.: Refactoring browser with preprocessor. In: Proc. European Conf. on Software Maintenance and Reengineering (CSMR), pp. 101–110. IEEE Computer Society (2003)

    Google Scholar 

  97. Weise, D., Crew, R.: Programmable syntax macros. In: Proc. Conf. Programming Language Design and Implementation (PLDI), pp. 156–165. ACM Press (1993)

    Google Scholar 

  98. Wirth, N.: Program development by stepwise refinement. Commun. ACM 14(4), 221–227 (1971)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Kästner, C., Apel, S. (2013). Feature-Oriented Software Development. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering IV. GTTSE 2011. Lecture Notes in Computer Science, vol 7680. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35992-7_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35992-7_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35991-0

  • Online ISBN: 978-3-642-35992-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics