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 |
Optionen (nur für Redakteure)
Redaktionelle Details anzeigen |