Andreas Thies

dblp:56/7248 · DBLP profile ↗
← Back
5ranked-venue papers
1as first author
0since 2021 · last 2013
0000-0002-7779-289XORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Software maintenance and evolution · 50% Requirements engineering and software design · 20% Compilers and program optimization · 13%

Topics — the 9 heaviest of 10, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution
refactoring
0.542013
Model/code co-refactoring: An MDE approach · ASE 2013
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs · IEEE Trans. Software Eng. 2012
RefaFlex: safer refactorings for reflective Java programs · ISSTA 2012
Software maintenance and evolution › refactoring
refactoring correctness
0.322012
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs · IEEE Trans. Software Eng. 2012
RefaFlex: safer refactorings for reflective Java programs · ISSTA 2012
Compilers and program optimization
code generation
0.212013
Model/code co-refactoring: An MDE approach · ASE 2013
Requirements engineering and software design
model-driven engineering
0.212013
Model/code co-refactoring: An MDE approach · ASE 2013
Requirements engineering and software design
software architecture
0.212013
Model/code co-refactoring: An MDE approach · ASE 2013
Software testing
mutation testing
0.112010
From behaviour preservation to behaviour modification: constraint-based mutant generation · ICSE (1) 2010
Software maintenance and evolution
software evolution
0.012013
Model/code co-refactoring: An MDE approach · ASE 2013
Compilers and program optimization
compiler infrastructure
0.012012
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs · IEEE Trans. Software Eng. 2012
Software testing
regression testing
0.012012
RefaFlex: safer refactorings for reflective Java programs · ISSTA 2012

Methods — techniques the papers use, named apart from their topics

model transformation · 0.2program transformation · 0.1constraint solving · 0.1
YearPublicationVenuePosition
2013 Model/code co-refactoring: An MDE approach
abstract
Model-driven engineering suggests that models are the primary artefacts of software development. This means that models may be refactored even after code has been generated from them, in which case the code must be changed to reflect the refactoring. However, as we show neither re-generating the code from the refactored model nor applying an equivalent refactoring to the generated code is sufficient to keep model and code in sync - rather, model and code need to be refactored jointly. To enable this, we investigate the technical requirements of model/code co-refactoring, and implement a model-driven solution that we evaluate using a set of open-source programs and their structural models. Results suggest that our approach is feasible.
Jens von Pilgrim, Bastian Ulke, Andreas Thies, Friedrich Steimann
ASE3
2012 RefaFlex: safer refactorings for reflective Java programs
abstract
If programs access types and members through reflection, refactoring tools cannot guarantee that refactorings on those programs are behavior preserving. Refactoring approaches for highly reflective languages like Smalltalk therefore check behavior preservation using regression testing.
Andreas Thies, Eric Bodden
ISSTA1
2012 A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs
abstract
Automated tool support for refactoring is now widely available for mainstream programming languages such as Java. However, current refactoring tools are still quite fragile in practice and often fail to preserve program behavior or compilability. This is mainly because analyzing and transforming source code requires consideration of many language features that complicate program analysis, in particular intricate name lookup and access control rules. This paper introduces J_L, a lookup-free, access control-free representation of Java programs. We present algorithms for translating Java programs into J_L and vice versa, thereby making it possible to formulate refactorings entirely at the level of J_L and to rely on the translations to take care of naming and accessibility issues. We demonstrate how complex refactorings become more robust and powerful when lifted to J_L. Our approach has been implemented using the JastAddJ compiler framework, and evaluated by systematically performing two commonly used refactorings on an extensive suite of real-world Java applications. The evaluation shows that our tool correctly handles many cases where current refactoring tools fail to handle the complex rules for name binding and accessibility in Java.
Max Schäfer, Andreas Thies, Friedrich Steimann, Frank Tip
IEEE Trans. Software Eng.2
2010 From behaviour preservation to behaviour modification: constraint-based mutant generation
abstract
The efficacy of mutation analysis depends heavily on its capability to mutate programs in such a way that they remain executable and exhibit deviating behaviour. Whereas the former requires knowledge about the syntax and static semantics of the programming language, the latter requires some least understanding of its dynamic semantics, i.e., how expressions are evaluated. We present an approach that is knowledgeable enough to generate only mutants that are both syntactically and semantically correct and likely exhibit non-equivalent behaviour. Our approach builds on our own prior work on constraint-based refactoring tools, and works by negating behaviour-preserving constraints. As a proof of concept we present an enhanced implementation of the Access Modifier Change operator for Java programs whose naive implementations create huge numbers of mutants that do not compile or leave behaviour unaltered. While we cannot guarantee that our generated mutants are non-equivalent, we can demonstrate a considerable reduction in the number of vain mutant generations, leading to substantial temporal savings.
Friedrich Steimann, Andreas Thies
ICSE (1)2
2009 From Public to Private to Absent: Refactoring Java Programs under Constrained Accessibility
Friedrich Steimann, Andreas Thies
ECOOP2