A specification environment for graph grammars
Modelling environments (e.g. software development environments) offer tools which build up and maintain complex internal data structures. Therefore, before implementing such tools, it is advisable for the tool developer to formally specify the structure and the operations of these internal data structures. Graph Grammars as an operational specification method have been successfully used for this purpose for many years.
This paper describes an integrated set of tools for building up, maintaining, analyzing and executing such an internal specification described in the language PROGRESS, a graph grammar based VHL-Language. It sketches the characteristics of the PROGRESS environment, its software architecture, the specification of the environment in the language itself, and the implementation which, for the biggest part, have been generated.
The environment will be used for the following two main purposes: (i) for (syntax) checking PROGRESS specifications (at specification time) before implementing an efficiently working system which is equivalent to the specification, and (ii) for rapid prototyping purposes, i.e. for directly executing a specification.
The following paper has to be read in connection with /Sc 90a/ of this volume. Whereas /Sc 90a/ introduces the specification language PROGRESS and its methodological application to a small example the following paper concentrates on the environment's user characteristics and the realization of the environment.
KeywordsOperational specification of abstract data types by graph grammars modelling environments especially software development environments static (type) checking rapid prototyping data modelling integrated and incremental tools
Unable to display preview. Download preview PDF.
- /BL 85/.Th. Brandes/C. Lewerentz: GRAS: A Non-standard Data Base System within a Software Development, Proc. of the GTE Workshop on Software Engineering Environments for Programming in the Large, Harwichport, 113–121, (June 1985).Google Scholar
- /Ce 83/.S. Ceri (Ed.): Methodology and Tools for Database Design, North-Holland (1983).Google Scholar
- /EGNS 83/.
- /ELS 87/.G. Engels/C. Lewerentz/W. Schäfer: Graph Grammar Engineering — A Software Specification Method, in Ehrig et al. (Eds.): Proc. 3rd Int. Workshop on Graph Grammars and Their Application to Computer Science, LNCS 153, 186–201, Berlin: Springer-Verlag (1987).Google Scholar
- /En 86/.G. Engels: Graphs as Central Data Structures in a Software Development Environment (in German), Doctoral Thesis, Düsseldorf: VDI-Verlag (1986).Google Scholar
- /ENS 86/.G. Engels/M. Nagl/W. Schäfer: On the Structure of Structures Editors for Different Applications, Proc. 2nd ACM Software Eng. Symp. on Pract. Software Development Environments, SIGPLAN Notices 22, 1, 190–198 (1986).Google Scholar
- /ES 87/.G. Engels/A. Schürr: A Hybrid Interpreter in a Software Development Environment, Proc. 1st European Software Engineering Conf., LNCS 289, 87–96, Berlin: Springer-Verlag (1980).Google Scholar
- /ES 89/.G. Engels/W. Schäfer: Program Development Environments — Concepts and Realization (in German), Stuttgart: Teubner Verlag (1989).Google Scholar
- /Gö 88/.H. Göttler: Graph Grammars in Software Engineering (in German), IFB 178, Berlin: Springer-Verlag (1988).Google Scholar
- /He 89/.R. Herbrecht: A Graph Grammar Editor (in German), Diploma-Thesis; RWTH Aachen (1989).Google Scholar
- /HT 86/.
- /Ja 86/.M. Jackel: Formal Specification of the Concurrent Constructs of Ada by Graph Grammars, Doctoral Dissertation, Univ. of Osnabrueck (1986).Google Scholar
- /Ja 91/.Th. Janning: Requirements Engineering and a Mapping to Programming in the Large, Dissertation forthcoming.Google Scholar
- /Le 88a/.
- /Le 88b/.C. Lewerentz: Interactive Design of Large Program Systems (in German), Doctoral Thesis, IFB 194, Berlin: Springer-Verlag (1988).Google Scholar
- /LM 86/.P.C. Lockemann/H.C. Mayr: Information System Design: Techniques and Software Support, in H.-J. Kugler (Ed.): Information Processing 86, 617–634, Elsevier Science Publ. (1986).Google Scholar
- /LS 88/.C. Lewerentz/A. Schürr: GRAS, a Management System for Graph-like Documents, in C. Beeri et al. (Eds.): Prod. 3rd Int. Conf. on Data and Knowledge Bases, 19–31, Los Altos: Morgan Kaufmann Publishers (1988).Google Scholar
- /Na 79/.M. Nagl: Graph Grammars: Theory, Applications, and Implementations (in German), Braunschweig: Vieweg-Verlag (1979).Google Scholar
- /Na 85/.M. Nagl: Graph Technology Applied to a Software Project, in Rozenberg, Salomaa (Eds.): The Book of L, 303–322, Berlin: Springer-Verlag (1985).Google Scholar
- /Re 84/.T. Reps: Generating Language-Based Environments, PH.D. Thesis, Cambridge, Mass.: MIT Press (1984).Google Scholar
- /Sc 86/.W. Schäfer: An Integrated Software Development Environment: Concepts, Design and Implementation (in German) Doctoral Thesis, Düsseldorf; VDI-Verlag (1986).Google Scholar
- /Sc 89/.A. Schürr: Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language, LNCS 411, 151–165 (1989).Google Scholar
- /Sc 90a/.A. Schürr: PROGRESS: A VHL-Language Based on Graph Grammars, this volume.Google Scholar
- /Sc 90b/.A. Schürr: Programming by Graph Rewriting Systems — Theoretical Foundations and the Corresponding Language (in German), Doctoral Dissertation, RWTH Aachen (1990).Google Scholar
- /Sp 89/.R.Spielmann: Development of a Basic Layer for Graph Grammar Interpreters (in German), Diploma Thesis, RWTH Aachen (1989).Google Scholar
- /We 90/.B. Westfechtel: Revision Control in an Integrated Software Development Environment (in German), Doctoral Dissertation, RWTH Aachen (1990).Google Scholar
- /Zü 89/.A. Zündorf: Control Structures for the Specification Language PROGRESS (in German), Diploma Thesis, RWTH (1989).Google Scholar