Incremental Co-Evolution of Java Programs based on Bidirectional Graph Transformation
- ,
- Géza Kulcsár,
- Malte Lochau,
- Sandro Schulze
- Darmstadt University of Technology,
- TU Hamburg-Harburg
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOriginal language
EnglishPages from-to (Number of pages)
Pages 138-151Publication milestones
- Published - 2015
Publication status
Published - 2015
Place of publication
New York, USA Publisher
Association for Computing Machinery, United StatesISBN (Print)
9781450337120Publication IDs
- ORCID: /0000-0002-2604-0487/work/58403077
Host publication title
Proceedings of the Principles and Practices of Programming on The Java Platform - PPPJ '15Abstract
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
ConferenceDegree of recognition
International eventDate
08/09/2015 - 11/09/2015Location
MelbourneUnited States
