Graph grammar engineering: A software specification method

  • Gregor Engels
  • Claus Lewerentz
  • Wilhelm Schäfer
Part II Technical Contributions
Part of the Lecture Notes in Computer Science book series (LNCS, volume 291)


Graphs as conceptual data models are accepted and used in a wide range of different problem areas. Giving some examples we outline common aspects for modeling complex structures by graphs. We present a formal frame-work based on graph grammars to specify graph classes and the corresponding graph manipulations. We show that such a specification can be written in a systematic, engineering-like manner. This is achieved by an extension of the known programmed, attributed graph grammars. Node-set operators are introduced to facilitate graph queries. Concepts like abstraction, decomposition, refinement, parameterization, and integration have been adopted from software engineering to yield a comprehensive specification method. This method has successfully been applied to specify the central data structures in a software development environment project.

Key words

specification graph grammar graph replacement system programmed graph grammar software engineering software development environment 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BL 85]
    Brandes, Th./ Lewerentz, C.: GRAS — A Nonstandard Data Base System within a Programing Support Environment, Proc. of the GTE-Workshop on Software Engineering Environments for Programming-in-the-Large, Cape Cod 1985, pp. 113–121Google Scholar
  2. [Br 83]
    Brendel, W.: Application of Attributed Graph Grammars to VLSI Design, in Nagl, M./ Perl, J.(eds.): Proc. of the WG '83, pp. 50–60, Linz: TraunerGoogle Scholar
  3. [Bu 77]
    Bunke, H.: Programmed graph grammars, LNCS 56, pp. 155–166, Berlin: SpringerGoogle Scholar
  4. [Bu 83]
    Bunke, H.: Graph grammars as a generative tool in image understanding, in Ehrig, H./ Nagl, M./ Rozenberg, G. (eds.): Graph-Grammars and Their Application to Computer Science, LNCS 153, pp. 8–19, Berlin: SpringerGoogle Scholar
  5. [EM 86]
    Ehrig, H./ Mahr, B.: Fundamentals of Algebraic Specification 1, Berlin: SpringerGoogle Scholar
  6. [En 86]
    Engels, G.: Graphs as Central Data Structures in a Software Development Environment, Ph.D. thesis, (in german), Düsseldorf: VDI-VerlagGoogle Scholar
  7. [ES 85]
    Engels, G./Schäfer, W.: Graph Grammar Engineering: A Method Used for the Development of an Integrated Programming Support Environment, in LNCS 186, 179–193, Berlin: SpringerGoogle Scholar
  8. [Go 83]
    Göttler, H.: Attributed graph grammars for graphics, in Ehrig, H./ Nagl, M./ Rozenberg, G. (eds.): Graph-Grammars and Their Application to Computer Science, LNCS 153, pp. 130–142, Berlin: SpringerGoogle Scholar
  9. [JB 82]
    Jones, C.B./ Bjorner, D.: Formal Specifications and Software Development, London: Prentice-HallGoogle Scholar
  10. [KH 82]
    Kastens. U./ Hutt, B./ Zimmermann, E.: GAG: A Practical Compiler Generator, in LNCS 141, Berlin: SpringerGoogle Scholar
  11. [Le 87]
    Lewerentz, C.: Incremental Programming-in-the-Large, Ph.D. thesis (in german), Informatik III, RWTH Aachen, forthcomingGoogle Scholar
  12. [LN 84]
    Lewerentz, C./ Nagl, M.: A Formal Specification Language for Software Systems Defined by Graph Grammars, in Pape, U. (ed.): Proc. of the WG '84, pp. 224–241, Linz: TraunerGoogle Scholar
  13. [Na 79]
    Nagl, M.: Graph-Grammatiken: Theorie, Implementierung, Anwendungen, Braunschweig: ViewegGoogle Scholar
  14. [Na 85]
    Nagl, M.: An Incremental Programming Support Environment, in Computer Physics Communications 38, 245–276, Amsterdam: North-HollandGoogle Scholar
  15. [Sc 86]
    Schäfer, W.: An Integrated Software Development Environment: Concepts, Design, and Implementation, Ph.D. thesis, (in german), Düsseldorf: VDI-VerlagGoogle Scholar
  16. [So 85]
    Sommerville, I.: Software Engineering, Reading: Addison-WesleyGoogle Scholar
  17. [St 77]
    Stoy, J.E.: Denotational Semantics: The Scott Strachey Approach to Programming Languages, Cambridge, Mass: MIT-PressGoogle Scholar
  18. [Wi 82]
    Wirth, N.: Programming in Modula-2, Berlin: SpringerGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Gregor Engels
    • 1
  • Claus Lewerentz
    • 2
  • Wilhelm Schäfer
    • 3
  1. 1.FB 17, Universität MainzMainzWest Germany
  2. 2.Informatik III, RWTH AachenAachenWest Germany
  3. 3.Computer Science, McGill UniversityMontrealCanada

Personalised recommendations