Conditional Graph Rewriting as a Domain-Independent Formalism for Software Evolution

This paper presents a formal approach for managing unanticipated software evolution. Labelled typed nested graphs are used to represent arbitrarily complex software artifacts, and conditional graph rewriting is used for managing evolution of these artifacts. More specifically, we detect structural and behavioural inconsistencies when merging parallel evolutions of the same software artifact. The approach is domain-independent, in the sense that it can be customised to many different domains, such as software architectures, UML analysis and design models, and software code.

[1]  Steve M. Easterbrook,et al.  Management of evolving specifications using category theory , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

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

[3]  Bernhard Westfechtel,et al.  Structure-oriented merging of revisions of software documents , 1991, SCM '91.

[4]  Gabriele Taentzer,et al.  Dynamic Change Management by Distributed Graph Transformation: Towards Configurable Distributed Systems , 1998, TAGT.

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

[6]  Michael Löwe,et al.  Algebraic Approach to Single-Pushout Graph Transformation , 1993, Theor. Comput. Sci..

[7]  David W. Binkley,et al.  Program integration for languages with procedure calls , 1995, TSEM.

[8]  Hartmut Ehrig,et al.  From Graph Grammars to High Level Replacement Systems , 1990, Graph-Grammars and Their Application to Computer Science.

[9]  Daniel Le Métayer Describing Software Architecture Styles Using Graph Grammars , 1998, IEEE Trans. Software Eng..

[10]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[11]  Michel Wermelinger Towards a chemical model for software architecture reconfiguration , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[12]  Michel Wermelinger Towards a chemical model for software architecture reconfiguration , 1998, IEE Proc. Softw..

[13]  Tom Mens,et al.  A formal foundation for object-oriented software evolution , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[14]  Francesca Rossi,et al.  Graph Processes , 1996, Fundam. Informaticae.

[15]  Mark Levene,et al.  A nested-graph model for the representation and manipulation of complex objects , 1994, TOIS.

[16]  Valdis Berzins,et al.  Software merge: semantics of combining changes to programs , 1994, TOPL.

[17]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1982, Lecture Notes in Computer Science.

[18]  Hartmut Ehrig,et al.  The Category of Typed Graph Grammars and its Adjunctions with Categories , 1994, TAGT.

[19]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1986, Lecture Notes in Computer Science.

[20]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[21]  Paola Inverardi,et al.  Modeling Software Architecutes and Styles with Graph Grammars and Constraint Solving , 1999, WICSA.

[22]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[23]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.