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.
| Originalsprog | Engelsk |
|---|---|
| Titel | Proceedings of the Principles and Practices of Programming on The Java Platform - PPPJ '15 |
| Udgivelsessted | New York, USA |
| Forlag | Association for Computing Machinery |
| Publikationsdato | 2015 |
| Sider | 138-151 |
| ISBN (Trykt) | 9781450337120 |
| DOI | |
| Status | Udgivet - 2015 |
| Udgivet eksternt | Ja |
| Begivenhed | The Principles and Practices of Programming on the Java Platform - Melbourne, USA Varighed: 8 sep. 2015 → 11 sep. 2015 https://dblp.org/rec/conf/pppj/2015.html |
Konference
| Konference | The Principles and Practices of Programming on the Java Platform |
|---|---|
| Land/Område | USA |
| By | Melbourne |
| Periode | 08/09/2015 → 11/09/2015 |
| Internetadresse |