Skip to search boxSkip to navigationSkip to main content

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

  • Darmstadt University of Technology
    ,
  • TU Hamburg-Harburg
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-review

Open access

Publication Information

Output type

Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-review

Original language

English

Pages from-to (Number of pages)

Pages 138-151

Publication milestones

  • Published - 2015

Publication status

Published - 2015

Place of publication

New York, USA

Publisher

Association for Computing Machinery, United States
9781450337120

Publication IDs

  • ORCID: /0000-0002-2604-0487/work/58403077

Host publication title

Proceedings of the Principles and Practices of Programming on The Java Platform - PPPJ '15

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.

Publication metrics

PlumX, opens in new tab

Citations
5
Captures
10

Related Event

Title

The Principles and Practices of Programming on the Java Platform

Event type

Conference

Degree of recognition

International event

Date

08/09/2015 - 11/09/2015

Location

MelbourneUnited States