TU Darmstadt / ULB / TUbiblio

Incremental Co-Evolution of Java Programs based on Bidirectional Graph Transformation

Peldszus, Sven ; Kulcsar, Geza ; Lochau, Malte ; Schulze, Sandro (2015)
Incremental Co-Evolution of Java Programs based on Bidirectional Graph Transformation.
Konferenzveröffentlichung, Bibliographie

Kurzbeschreibung (Abstract)

Modern Java IDE aim at assisting object-oriented software development workflows with continuously interleaved co-evolution steps of program editing and program refactoring. Program editing usually comprises manually performed program changes applied by a programmer at source code level. In contrast, refactorings consist of behavior-preserving program restructuring rules with complex preconditions, usually formulated over an appropriate program abstraction. To integrate both steps into a comprehensive program evolution framework, we present a graph-based approach for incremental co-evolution of Java programs. Our approach is based on a concise graph-based representation of Java programs by means of a reduced abstract syntax tree, augmented with additional cross-tree edges denoting crucial semantic information. On this basis, a precise formal specification of object-oriented program refactorings can be defined in terms of endogenous graph-transformation rules. In addition, we use Triple Graph Grammars (TGG) to define exogenous bidirectional graph transformation rules for automated incremental synchronization between a program graph and the corresponding source code. Our implementation relies on the graph-transformation engine eMoflon and currently supports the Java refactorings Pull Up Method and Create Superclass.

Typ des Eintrags: Konferenzveröffentlichung
Erschienen: 2015
Autor(en): Peldszus, Sven ; Kulcsar, Geza ; Lochau, Malte ; Schulze, Sandro
Art des Eintrags: Bibliographie
Titel: Incremental Co-Evolution of Java Programs based on Bidirectional Graph Transformation
Sprache: Englisch
Publikationsjahr: 2015
Buchtitel: Proceedings of the Principles and Practices of Programming on The Java Platform (PPPJ)
URL / URN: http://doi.acm.org/10.1145/2807426.2807438
Kurzbeschreibung (Abstract):

Modern Java IDE aim at assisting object-oriented software development workflows with continuously interleaved co-evolution steps of program editing and program refactoring. Program editing usually comprises manually performed program changes applied by a programmer at source code level. In contrast, refactorings consist of behavior-preserving program restructuring rules with complex preconditions, usually formulated over an appropriate program abstraction. To integrate both steps into a comprehensive program evolution framework, we present a graph-based approach for incremental co-evolution of Java programs. Our approach is based on a concise graph-based representation of Java programs by means of a reduced abstract syntax tree, augmented with additional cross-tree edges denoting crucial semantic information. On this basis, a precise formal specification of object-oriented program refactorings can be defined in terms of endogenous graph-transformation rules. In addition, we use Triple Graph Grammars (TGG) to define exogenous bidirectional graph transformation rules for automated incremental synchronization between a program graph and the corresponding source code. Our implementation relies on the graph-transformation engine eMoflon and currently supports the Java refactorings Pull Up Method and Create Superclass.

Fachbereich(e)/-gebiet(e): 18 Fachbereich Elektrotechnik und Informationstechnik > Institut für Datentechnik > Echtzeitsysteme
18 Fachbereich Elektrotechnik und Informationstechnik
18 Fachbereich Elektrotechnik und Informationstechnik > Institut für Datentechnik
Hinterlegungsdatum: 03 Feb 2016 20:16
Letzte Änderung: 09 Feb 2016 08:56
PPN:
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen