Generating tools from graph-based specifications

Abstract This paper describes an approach for generating graphical, structure-oriented software engineering tools from graph-based specifications. The approach is based on the formal meta modeling of visual languages using graph rewriting systems. Besides the syntactical and semantical rules of the language, these meta models include knowledge from the application domains. This enables the resulting tools to provide the user with high level operations for editing, analysis and execution of models. Tools are constructed by generating source code from the meta model of the visual language, which is written in the very high level programming language PROGRES. The source code is integrated into a framework which is responsible for the invocation of commands and the visualization of graphs. As a case study, a visual language for modeling development processes together with its formal meta model is introduced. The paper shows how a process management tool based on this meta model is generated and reports on our experiences with this approach.

[1]  Bashar Nuseibeh,et al.  Software process modelling and technology , 1994 .

[2]  Albert Zündorf,et al.  The PROGRES approach: language and environment , 1999 .

[3]  Roswitha Bardohl GENGED: a generic graphical editor for visual languages based on algebraic graph grammars , 1998, Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254).

[4]  Franz-Josef Brandenburg,et al.  Nice drawings of graphs are computationally hard , 1988, Informatics and Psychology Workshop.

[5]  Katja Cremer,et al.  A tool supporting the re-design of legacy applications , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[6]  Andy Schürr,et al.  Specification of Logical Documents and Tools , 1996, IPSEN Book.

[7]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[8]  Jens H. Weber,et al.  Integration of analysis and redesign activities in information system reengineering , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[9]  Albert Zündorf A Heuristic for the Subgraph Isomorphism Problem in Executing PROGRES , 1993 .

[10]  R. Scheifler,et al.  X Window system: core library and standard , 1996 .

[11]  Mark Minas,et al.  DiaGen: A Generator for Diagram Editors Based on a Hypergraph Model , 1995, NGITS.

[12]  Peter Eades,et al.  A Heuristic for Graph Drawing , 1984 .

[13]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[14]  Andy Schürr,et al.  Graph Grammar Engineering with PROGRES , 1995, ESEC.

[15]  W. T. Tutte How to Draw a Graph , 1963 .

[16]  Ansgar Radermacher,et al.  Distribution of Applications with Graph Transformation Tools , 1998 .

[17]  Bernhard Westfechtel,et al.  DYNAMITE: DYNAMIc Task nEts for software process management , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[18]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[19]  Andy Schürr,et al.  GRAS, a Graph-Oriented (Software) Engineering Database System , 1995, Inf. Syst..

[20]  Albert Zündorf Implementation of the imperative / rule based language PROGRES , 1992 .

[21]  Steven P. Reiss Interacting with the field environment , 1990, Softw. Pract. Exp..

[22]  Bernhard Westfechtel,et al.  Graph-Based Software Process Management , 1997, Int. J. Softw. Eng. Knowl. Eng..

[23]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[24]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 2: applications, languages, and tools , 1999 .