Skip to main content

Overview of Generative Software Development

  • Conference paper
Unconventional Programming Paradigms (UPP 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3566))

Included in the following conference series:

Abstract

System family engineering seeks to exploit the commonalities among systems from a given problem domain while managing the variabilities among them in a systematic way. In system family engineering, new system variants can be rapidly created based on a set of reusable assets (such as a common architecture, components, models, etc.). Generative software development aims at modeling and implementing system families in such a way that a given system can be automatically generated from a specification written in one or more textual or graphical domain-specific languages. This paper gives an overview of the basic concepts and ideas of generative software development including DSLs, domain and application engineering, generative domain models, networks of domains, and technology projections. The paper also discusses the relationship of generative software development to other emerging areas such as Model Driven Development and Aspect-Oriented Software Development.

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. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Upper Saddle River (1997)

    MATH  Google Scholar 

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

    Google Scholar 

  3. Weiss, D.M., Lai, C.T.R.: Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley, Reading (1999)

    Google Scholar 

  4. Clements, P., Northrop, L. (eds.): Software Product Lines: Practices and Patterns. International Series in Computer Science. Addison-Wesley, Reading (2001)

    Google Scholar 

  5. Parnas, D.: On the design and development of program families. IEEE Transactions on Software Engineering SE-2, 1–9 (1976)

    Article  Google Scholar 

  6. Neighbors, J.M.: Software Construction using Components. PhD thesis, Department of Information and Computer Science, University of California, Irvine (1980), Technical Report UCI-ICS-TR160., Available from http://www.bayfronttechnologies.com/thesis.pdf

  7. Cleaveland, J.C.: Building application generators. IEEE Software 9, 25–33 (1988)

    Article  Google Scholar 

  8. Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  9. Cleaveland, C.: Program Generators with XML and Java. Prentice Hall, Englewood Cliffs (2001)

    Google Scholar 

  10. Batory, D., Johnson, C., MacDonald, B., von Heeder, D.: Achieving extensibility through product-lines and domain-specific languages: A case study. ACM Transactions on Software Engineering and Methodology (TOSEM) 11, 191–214 (2002)

    Article  Google Scholar 

  11. Greenfield, J., Short, K.: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, Indianapolis (2004)

    Google Scholar 

  12. Landin, P.J.: The next 700 programming languages. Commun. ACM 9, 157–166 (1966)

    Article  MATH  Google Scholar 

  13. Bentley, J.L.: Little languages. Communications og the ACM 29, 711–721 (1986)

    Article  MathSciNet  Google Scholar 

  14. van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. SIGPLAN Not. 35, 26–36 (2000)

    Article  Google Scholar 

  15. Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. Technical Report SEN-E0309, CWI, Amsterdam (2003), Available from http://www.cwi.nl/ftp/CWIreports/SEN/SEN-E0309.pdf

  16. Wile, D.S.: Supporting the dsl spectrum. CIT Journal of Computing and Information Technology 9, 263–287 (2001)

    Article  MATH  Google Scholar 

  17. Bosch, J.: Software product lines: Organizational alternatives. In: Proceedings of the 23rd International Conference on Software Engineering, ICSE (2001)

    Google Scholar 

  18. Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology 1, 355–398 (1992)

    Article  Google Scholar 

  19. Kang, K., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90TR -21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA (1990)

    Google Scholar 

  20. Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration using feature models. In: Nord, R.L. (ed.) SPLC 2004. LNCS, vol. 3154, pp. 266–283. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  21. DeBaud, J.-M., Schmid, K.: A systematic approach to derive the scope of software product lines. In: Proceedings of the 21st International Conference on Software Engineering (ICSE), pp. 34–43. IEEE Computer Society Press, Los Alamitos (1999)

    Chapter  Google Scholar 

  22. Buschmann, F., Jkel, C., Meunier, R., Rohnert, H., Stahl, M. (eds.): Pattern-Oriented Software Architecture – A System of Patterns. International Series in Computer Science. John Wiley & Sons, Chichester (1996)

    Google Scholar 

  23. Bosch, J.: Design and Use of Software Architecture: Adopting and evolving a product-line approach. Addison-Wesley, Reading (2000)

    Google Scholar 

  24. Czarnecki, K., O’Donnel, J., Striegnitz, J., Taha, W.: Dsl implementation in metaocaml, template haskell, and c++. In: [48], pp. 50–71 (2004)

    Google Scholar 

  25. Chiba, S.: OpenC++ (2004), Available at http://opencxx.sourceforge.net/index.shtml

  26. Tatsubori, M.: OpenJava: An extensible Java (2004), Available at http://sourceforge.net/projects/openjava/

  27. Bravenboer, M., Visser, E.: Concrete syntax for objects. domain-specific language embedding and assimilation without restrictions. In: Schmidt, D.C. (eds.) Proceedings of the 19th ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA 2004), Vancouver, Canada, October 2004. ACM SIGPLAN (2004)

    Google Scholar 

  28. Grey, J., et al.: OOPSLA 2002, Workshop on Domain-Specific Visual Languages (2002), Online proceedings at http://www.cis.uab.edu/info/OOPSLA-DSVL2/

  29. Lédeczi, Á., Bakay, Á., Maróti, M., Völgyesi, P., Nordstrom, G., Sprinkle, J., Karsai, G.: Composing domain-specific design environments. IEEE Computer 34, 44–51 (2001)

    Google Scholar 

  30. MetaCase, Jyväskylä, Finland: MetaEdit+ User Manual (2004), Available from http://www.metacase.com

  31. Antkiewicz, M., Czarnecki, K.: FeaturePlugin: Feature modeling plug-in for Eclipse. In: OOPSLA 2004 Eclipse Technology eXchange (ETX) Workshop (2004), Paper, available from http://www.swen.uwaterloo.ca/~kczarnec/etx04.pdf , software available from gp.uwaterloo.ca/fmp

  32. pure-systems GmbH: Variant management with pure:consul. Technical White Paper (2003), Available from http://web.pure-systems.com

  33. Bednasch, T., Endler, C., Lang, M.: CaptainFeature (2002-2004) Tool available on SourceForge at https://sourceforge.net/projects/captainfeature/

  34. Wong, T., Jarzabek, S., Swe, S.M., Shen, R., Zhang, H.: Xml implementation of frame processor. In: Proceedings of the ACM Symposium on Software Reusability (SSR 2001), Toronto, Canada, May 2001, pp. 164–172 (2001), http://fxvcl.sourceforge.net/

  35. Delta Software Technology GmbH: ANGIE - A New Generator Engine (2004), Available at http://www.delta-software-technology.com/GP/gptop.htm

  36. Baxter, I., Pidgeon, P., Mehlich, M.: Dms: Program transformations for practical scalable software evolution. In: Proceedings of the International Conference on Software Engineering (ICSE 2004). IEEE Press, Los Alamitos (2004)

    Google Scholar 

  37. Visser, E.: Program transformation with stratego/xt: Rules, strategies, tools, and systems. In: [48]

    Google Scholar 

  38. Cordy, J., Dean, T., Malton, A., Schneider, K.: Source transformation in software engineering using the txl transformation system. Information and Software Technology 44 (2002)

    Google Scholar 

  39. Taha, W.: A gentle introduction to multi-stage programming. In: [48]

    Google Scholar 

  40. Jones, N., Gomard, C., Sestoft, P. (eds.): Partial Evaluation and Automatic Program Generation. International Series in Computer Science. Prentice Hall, Englewood Cliffs (1993)

    MATH  Google Scholar 

  41. Consel, C., Danvy, O.: Tutorial notes on partial evaluation. In: Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages, Charleston, SC, USA, pp. 493–501. ACM Press, New York (1993)

    Google Scholar 

  42. Consel, C.: From a program family to a domain-specific language. In: [48], pp. 19–29

    Google Scholar 

  43. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  44. Tarr, P., Ossher, H., Harrison, W., Sutton, S.M.: N degrees of separation: Multi-dimensional separation of concerns. In: Proceedings International Conference on Software Engineering (ICSE 1999), pp. 107–119. ACM Press, New York (1999)

    Chapter  Google Scholar 

  45. Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: Foundations of Software Engineering (FSE-12), ACM SIGSOFT (2004)

    Google Scholar 

  46. Object Management Group: Model-Driven Architecture (2004), http://www.omg.com/mda

  47. Barth, B., Butler, G., Czarnecki, K., Eisenecker, U.: Report on the ecoop’2001 workshop on generative programming. In: Frohner, A. (ed.) ECOOP-WS 2001. LNCS, vol. 2323. Springer, Heidelberg (2001)

    Google Scholar 

  48. Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, Revised Papers, Springer, Heidelberg (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Czarnecki, K. (2005). Overview of Generative Software Development. In: Banâtre, JP., Fradet, P., Giavitto, JL., Michel, O. (eds) Unconventional Programming Paradigms. UPP 2004. Lecture Notes in Computer Science, vol 3566. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11527800_25

Download citation

  • DOI: https://doi.org/10.1007/11527800_25

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-27884-9

  • Online ISBN: 978-3-540-31482-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics