Generic Modelling with Graph Rewriting Systems

One of the main goals of the software engineering discipline is the provision of appropriate tools for the construction of complex and interactive software systems. A large number of tools, languages, and methods exist to cope with the problems of administering the documents, information, and processes of creating large software systems. Specification languages and methods have been developed to describe formal aspects of these complex and interactive systems. At the Department of Computer Science III at Aachen University of Technology, the specification language PROGRES (PROgrammed Graph REwriting System) has been developed in the context of the IPSEN (Interactive/Integrated/Incremental Project Support ENvironment) research project. With PROGRES it is possible to formally describe complex graph-based structures and operations on these structures. Furthermore, it is possible to generate rapid prototypes of the specified software systems as stand-alone applications. In this thesis we have used the PROGRES specification system together with the rapid prototyping framework to build tools for editing, analysing, and interpreting visual languages. During a collaborative research with the Department for Process Control Engineering we have built such tools for an IEC-61131/3 compliant language which is widely used in the automation and process control industry. We have detected shortcomings of the PROGRES language for the specification of such large systems. The identified problems of the PROGRES language are mainly dealing with reusability of specified code. Many modern programming languages offer genericity for modelling reusable software units, often together with an object-oriented programming methodology which also gives users support in an easy adaption of real-world problems to formal models. In this thesis we have examined those programming and modelling languages and improved the PROGRES language by corresponding concepts. As being a statically typed specification language, PROGRES already has an elaborate two-level typing system. We have extended this typing system to allow for generic modelling of specification units.

[1]  Jim Welsh,et al.  A Model Implementation of Standard Pascal , 1986 .

[2]  S. Pfleeger,et al.  Introduction to discrete structures , 1985 .

[3]  Christine Kohring Ausführung von Anforderungsdefinitionen zum Rapid Prototyping - Requirements Engineering und Simulation (RESI) , 1996, Berichte aus der Informatik.

[4]  Andy Schürr,et al.  Formal Definition of UML's Package Concept , 1997, UML Workshop.

[5]  Hartmut Ehrig,et al.  Algebraic Approach to Graph Transformation Based on Single Pushout Derivations , 1991, WG.

[6]  Dirk Jäger UPGRADE - A Framework for Graph-Based Visual Applications , 1999, AGTIVE.

[7]  Mark Minas,et al.  Creating Semantic Representations of Diagrams , 1999, AGTIVE.

[8]  Claude Berge,et al.  Graphs and Hypergraphs , 2021, Clustering.

[9]  Ulrich Norbisrath,et al.  Story Driven Modeling , 1999 .

[10]  Simon Thompson,et al.  Type theory and functional programming , 1991, International computer science series.

[11]  Ansgar Schleicher Formalizing UML-Based Process Models Using Graph Transformations , 1999, AGTIVE.

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

[13]  John G. P. Barnes,et al.  Programming in Ada 95 , 1995 .

[14]  S. Griffis EDITOR , 1997, Journal of Navigation.

[15]  Bernhard Westfechtel,et al.  A Graph-Based System for Managing Configurations of Engineering Design Documents , 1996, Int. J. Softw. Eng. Knowl. Eng..

[16]  Katja Cremer Graphbasierte Werkzeuge zum reverse engineering und reengineering , 2000 .

[17]  Carlo Ghezzi,et al.  Context-Free Graph Grammars , 1978, Inf. Control..

[18]  David C. J. Matthews,et al.  Poly manual , 1985, SIGP.

[19]  Gabriele Taentzer,et al.  The AGG approach: language and environment , 1999 .

[20]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[21]  Jennifer Widom,et al.  Active Database Systems: Triggers and Rules For Advanced Database Processing , 1994 .

[22]  Jürgen Ebert,et al.  Meta-CASE in Practice: a Case for KOGGE , 1997, CAiSE.

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

[24]  Miriam Lanskoy,et al.  From the Database , 1997 .

[25]  Michael Löwe,et al.  AGG - An Implementation of Algebraic Graph Rewriting , 1993, RTA.

[26]  Manfred Münch PROgrammed Graph REwriting System PROGRES , 1999, AGTIVE.

[27]  Manfred Nagl Softwaretechnik mit Ada 95 , 1999 .

[28]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[29]  Scott Danforth,et al.  Type theories and object-oriented programmimg , 1988, CSUR.

[30]  Albert Zündorf,et al.  Story Diagrams: A New Graph Rewrite Language Based on the Unified Modeling Language and Java , 1998, TAGT.

[31]  Alexander Repenning,et al.  LEGOsheets: a rule-based programming, simulation and manipulation environment for the LEGO Programmable Brick , 1995, Proceedings of Symposium on Visual Languages.

[32]  Wolfgang Reisig,et al.  Petri Nets in Software Engineering , 1986, Advances in Petri Nets.

[33]  Hartmut Ehrig,et al.  Graph-Grammars and Their Application to Computer Science and Biology , 1978, Lecture Notes in Computer Science.

[34]  Andy Schürr,et al.  Formal Definition and Refinement of UML's Module/Package Concept , 1997, ECOOP Workshops.

[35]  Bernhard Westfechtel,et al.  A programmed graph rewriting system for software process management , 1995, Electron. Notes Theor. Comput. Sci..

[36]  Andy Schürr,et al.  PROGRES: Language and Environment , 1999 .

[37]  Andreas J. Winter,et al.  Modules and Updatable Graph Views for PROgrammed Graph REwriting Systems , 1997 .

[38]  John English Ada 95: The Craft of Object-Oriented Programming , 1996 .

[39]  Ulrich Nickel,et al.  The FUJABA environment , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[40]  Annegret Habel,et al.  Hyperedge Replacement, Graph Grammars , 1997, Handbook of Graph Grammars.

[41]  Alexander Repenning,et al.  Agentsheets: applying grid-based spatial reasoning to human-computer interaction , 1993, Proceedings 1993 IEEE Symposium on Visual Languages.

[42]  Bran Selic,et al.  Using UML for Modeling Complex Real-Time Systems , 1998, LCTES.

[43]  Manfred Nagl,et al.  Software specification using graph grammars , 1983, Computing.

[44]  Jan Van den Bussche,et al.  An overview of GOOD , 1992, SGMD.

[45]  Hartmut Ehrig,et al.  Categorical principles, techniques and results for high-level-replacement systems in computer science , 1993, Appl. Categorical Struct..

[46]  Gregor Engels,et al.  Programmentwicklungsumgebungen - Konzepte und Realisierung , 1989, Leitfäden der angewandten Informatik.

[47]  Manfred Nagl Graph-Grammatiken: Theorie, Anwendungen, Implementierung , 1979 .

[48]  Horst Herrlich,et al.  Category theory , 1979 .

[49]  Herbert Göttler,et al.  Graph grammars and diagram editing , 1986, Graph-Grammars and Their Application to Computer Science.

[50]  Terrence W. Pratt Definition of Programming Language Semantics Using Grammars for Hierarchical Graphs , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[51]  Bernhard Westfechtel,et al.  A Management System for Evolving Development Processes , 2003 .

[52]  Michael B. Feldman Software Construction and Data Structures with Ada 95 , 1996 .

[53]  Hartmut Ehrig,et al.  Conceptual Model of the Graphical Editor GENGED for the Visual Definition of Visual Languages , 1998, TAGT.

[54]  Jürgen Ebert,et al.  A Declarative Approach to Graph Based Modeling , 1994, WG.

[55]  Manfred Broy,et al.  What characterizes a (software) component? , 1998, Softw. Concepts Tools.

[56]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[57]  Patrick Naughton,et al.  The Java Handbook , 1996 .

[58]  Ernst Denert,et al.  PLAN2D - Towards a Two-Dimensional Programming Language , 1974 .

[59]  Tony Mason,et al.  Lex & Yacc , 1992 .

[60]  James Hook,et al.  Understanding Russell- A First Attempt , 1984, Semantics of Data Types.

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

[62]  Bernhard Rumpe,et al.  Seventh OOPSLA workshop on behavioral semantics of OO business and system specifications , 1998, OOPSLA 1998.

[63]  Bernhard Westfechtel,et al.  AHEAD: A Graph-Based System for Modeling and Managing Development Processes , 1999, AGTIVE.

[64]  Thomas W. Reps,et al.  Generating Language-Based Environments , 1982 .

[65]  Christopher Strachey,et al.  Fundamental Concepts in Programming Languages , 2000, High. Order Symb. Comput..

[66]  Michael Himsolt Graph^Ed: An Interactive Garpg Editor , 1989, STACS.

[67]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[68]  Jürgen Ebert,et al.  Graph Based Modeling and Implementation with EER / GRAL , 1996, ER.

[69]  Manfred Broy,et al.  Towards a Calculus for UML-RT Specifications , 1998, OOPSLA 1998.

[70]  Reiko Heckel,et al.  Graph Grammars with Negative Application Conditions , 1996, Fundam. Informaticae.

[71]  Gordon D. Plotkin,et al.  An ideal model for recursive polymorphic types , 1984, Inf. Control..

[72]  Hans Jürgen Schneider,et al.  On Categorical Graph Grammars Integrating Structural Transformations and Operations on Labels , 1993, Theor. Comput. Sci..

[73]  D. Woolley The White Paper. , 1972, British medical journal.

[74]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[75]  Dominikus Herzberg,et al.  E-CARES Project: Understanding Complex Legacy Telecommunication Systems , 2001, CSMR.

[76]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[77]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[78]  Andy Schürr,et al.  Integrity Constraints in the Multi-paradigm Language PROGRES , 1998, TAGT.

[79]  Rita Loogen,et al.  Lazy Narrowing in a Graph Machine , 1990, ALP.

[80]  Dominikus Herzberg,et al.  E-CARES Research Project: Utilizing Dynamic Information , 2001 .

[81]  Mark Minas,et al.  DiaGen: a generator for diagram editors providing direct manipulation and execution of diagrams , 1995, Proceedings of Symposium on Visual Languages.

[82]  Bernhard Westfechtel,et al.  Using UML for software process modeling , 1999, ESEC/FSE-7.

[83]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[84]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[85]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[86]  Ramez Elmasri,et al.  GORDAS: A Formal High-Level Query Language for the Entity-Relationship Model , 1981, ER.

[87]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[88]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part II: Single Pushout Approach and Comparison with Double Pushout Approach , 1997, Handbook of Graph Grammars.

[89]  Bruno Courcelle,et al.  An Algebraic Formalism for Graphs , 1986, CAAP.

[90]  Ted G. Lewis,et al.  Visual Object-Oriented Programming: Concepts and Environments , 1995 .

[91]  Tom DeMarco,et al.  Structured Analysis and System Specification (Reprint) , 2002, Software Pioneers.

[92]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[93]  Bruno Courcelle,et al.  Graph expressions and graph rewritings , 1987, Mathematical systems theory.

[94]  J. Paul Tremblay,et al.  Discrete Mathematical Structures with Applications to Computer Science , 1975 .

[95]  Paul Taylor,et al.  Practical Foundations of Mathematics , 1999, Cambridge studies in advanced mathematics.

[96]  Judith Good VPLs and novice program comprehension: how do different languages compare? , 1999, Proceedings 1999 IEEE Symposium on Visual Languages.

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

[98]  Manfred Nagl Set theoretic approaches to graph grammars , 1986, Graph-Grammars and Their Application to Computer Science.

[99]  John F. Sowa Definitional Mechanisms for Conceptual Graphs , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[100]  Patrick Lincoln,et al.  Le Fun: Logic, Equations and Functions , 1987, SLP.

[101]  Dana S. Scott,et al.  Data Types as Lattices , 1976, SIAM J. Comput..

[102]  Herbert Göttler,et al.  Attributed graph grammars for graphics , 1982, Graph-Grammars and Their Application to Computer Science.

[103]  R. Lathe Phd by thesis , 1988, Nature.

[104]  Tero Harju,et al.  Group Based Graph Transformations and Hierarchical Representations of Graphs , 1994, TAGT.

[105]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[106]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[107]  Gregor Engels,et al.  Encapsulated hierarchical graphs, graph types, and meta types , 1995, SEGRAGRA.

[108]  Michael G Vose,et al.  Laboratory virtual instrument engineering workbench , 1986 .

[109]  Manfred Nagl Formal languages of labelled graphs , 2005, Computing.

[110]  Robin Milner,et al.  Definition of standard ML , 1990 .

[111]  Claudia Bauzer Medeiros,et al.  Implementing integrity control in active data bases , 1994, J. Syst. Softw..