TU Darmstadt / ULB / TUbiblio

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

Peldszus, Sven ; Kulcsar, Geza ; Lochau, Malte ; Schulze, Sandro :
Incremental Co-Evolution of Java Programs based on Bidirectional Graph Transformation.
[Online-Edition: http://doi.acm.org/10.1145/2807426.2807438]
Proceedings of the Principles and Practices of Programming on The Java Platform (PPPJ)
[Konferenz- oder Workshop-Beitrag], (2015)

Offizielle URL: 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.

Typ des Eintrags: Konferenz- oder Workshop-Beitrag (Keine Angabe)
Erschienen: 2015
Autor(en): Peldszus, Sven ; Kulcsar, Geza ; Lochau, Malte ; Schulze, Sandro
Titel: Incremental Co-Evolution of Java Programs based on Bidirectional Graph Transformation
Sprache: Englisch
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.

Buchtitel: Proceedings of the Principles and Practices of Programming on The Java Platform (PPPJ)
Fachbereich(e)/-gebiet(e): Fachbereich Elektrotechnik und Informationstechnik > Echtzeitsysteme
Fachbereich Elektrotechnik und Informationstechnik
Hinterlegungsdatum: 03 Feb 2016 20:16
Offizielle URL: http://doi.acm.org/10.1145/2807426.2807438
Export:

Optionen (nur für Redakteure)

Eintrag anzeigen Eintrag anzeigen