A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2019; you can also visit the original URL.
The file type is application/pdf
.
Filters
We use Safira to evaluate mutation testing and refactoring tools. We have detected 17 bugs in MuJava, and 27 bugs in refactorings implemented by Eclipse and JRRT. ...
We propose a tool (Safira) capable of determining if a transformation is behavior preserving through test generation for entities impacted by transformation. ...
We implemented an Eclipse plug-in -the user selects a refactoring to apply. Then the plug-in reports whether the transformation preserves behavior or not. Soares et al. ...
doi:10.1145/2048147.2048213
dblp:conf/oopsla/Mongiovi11
fatcat:zuibvpd5zfgg5bo6qbnpfa35aa
Towards safe refactoring for intelligent parallelization of Java 8 streams
2018
Proceedings of the 40th International Conference on Software Engineering Companion Proceeedings - ICSE '18
In this poster, we present our ongoing work and preliminary results towards an automated refactoring approach that assists developers in writing optimal stream code. ...
The Java 8 Stream API sets forth a promising new programming model that incorporates functional-like, MapReduce-style features into a mainstream programming language. ...
CONCLUSION & FUTURE WORK We have outlined our work-in-progress towards an automated refactoring approach that "intelligently" optimizes Java 8 stream code. ...
doi:10.1145/3183440.3195098
dblp:conf/icse/TangKBA18
fatcat:marf6gqxorcmvh2nwxtgt7lp7y
Correct Refactoring of Concurrent Java Code
[chapter]
2010
Lecture Notes in Computer Science
Automated refactorings as implemented in modern IDEs for Java usually make no special provisions for concurrent code. Thus, refactored programs may exhibit unexpected new concurrent behaviors. ...
We analyze the types of such behavioral changes caused by current refactoring engines and develop techniques to make them behavior-preserving, ranging from simple techniques to deal with concurrency-related ...
Acknowledgements We would like to thank Danny Dig for helpful discussions regarding Concurrencer, Stephen Fink and Dave Grove for valuable pointers to related work, and the anonymous reviewers for their ...
doi:10.1007/978-3-642-14107-2_11
fatcat:fwh4jiienfgevem5f3iunbastu
Comparing approaches to analyze refactoring activity on software repositories
2013
Journal of Systems and Software
a refactoring, in terms of behavioral preservation. ...
They have used different approaches to evaluate refactoring activities. ...
This work was partially supported by the National Institute of Science and Technology for Software Engineering (INES), funded by CNPq grants 573964/2008-4, 304470/2010-4, and 480160/2011-2. ...
doi:10.1016/j.jss.2012.10.040
fatcat:7tc7b77nnnhozicas3od2ipl7a
Making refactoring safer through impact analysis
2014
Science of Computer Programming
Moreover, most refactoring implementations contain a number of bugs since it is difficult to establish all conditions required for a transformation to be behavior preserving. ...
In this article, we propose a tool (SafeRefactorImpact) that analyzes the transformation and generates tests only for the methods impacted by a transformation identified by our change impact analyzer ( ...
Since the tool analyzes the Java bytecode and the AspectJ compiler translates an AspectJ program to Java bytecode, we do not specify laws for AspectJ constructs. ...
doi:10.1016/j.scico.2013.11.001
fatcat:ipykrk6olfg43kqlkv2je3t7mq
Identifying overly strong conditions in refactoring implementations
2011
2011 27th IEEE International Conference on Software Maintenance (ICSM)
We propose an approach for identifying overly strong conditions in refactoring implementations. We automatically generate a number of programs as test inputs for refactoring implementations. ...
We evaluated our approach in 10 kinds of refactorings for Java implemented by three tools: Eclipse and Netbeans, and the JastAdd Refactoring Tool (JRRT). ...
OVERVIEW In this section, we present an overview of JDolly [12] , a Java program generator, and Safe Refactor [5] .
A. JDolly JDolly exhaustively generates a number of Java programs. ...
doi:10.1109/icsm.2011.6080784
dblp:conf/icsm/SoaresMG11
fatcat:l522ja4u5jdctfpdva2chg4d2e
On Preserving the Behavior in Software Refactoring: A Systematic Mapping Study
[article]
2021
arXiv
pre-print
Objective: This paper identifies behavior preservation approaches in the research literature. ...
As the concept of behavior preservation is fundamental for refactoring, several studies, using formal verification, language transformation and dynamic analysis, have been proposed to monitor the execution ...
The implementation of this approach is based on the rewrite logic executable semantics of Java refactorings in Maude language. ...
arXiv:2106.13900v2
fatcat:xr7hr7ddzbchlcskg5lre4afoa
Towards purity-guided refactoring in Java
2015
2015 IEEE International Conference on Software Maintenance and Evolution (ICSME)
As a case study of our approach, we applied memorization refactoring on several open-source software in Java. ...
Refactoring source code requires preserving a certain level of semantic behaviors, which are difficult to be checked by IDEs. ...
In the future, we will develop more refactoring approaches, for example, one converts a singlethreaded sequential program to a thread-pool based multithreading program or an event-driven asynchronized ...
doi:10.1109/icsm.2015.7332506
dblp:conf/icsm/YangHHK15
fatcat:6hxoiy4jqjffteyitnhffkznku
Program Slicing for Refactoring: Static Slicer using Dynamic Analyser
2010
International Journal of Computer Applications
Many slicing algorithms exist in the literature; they first convert the program into some alternative representation and then apply some correctness preserving transformations on it to produce slice and ...
It exploits the behavior preservation requirement of refactoring and uses the data collected during testing, which we perform prior to refactoring, for slicing. ...
We proposed our slicing approach that exploits of behavior preservation requirement of refactoring. We used the data collected during testing prior to refactoring to analyze dependencies. ...
doi:10.5120/1387-1869
fatcat:hg2ck5zhrbeu5nu7vaowlybvkm
RefaFlex: safer refactorings for reflective Java programs
2012
Proceedings of the 2012 International Symposium on Software Testing and Analysis - ISSTA 2012
In this paper we propose RefaFlex, a novel and more defensive approach towards the refactoring of reflective (Java) programs. ...
RefaFlex uses a dynamic program analysis to log reflective calls during test runs and then uses this information to proactively prevent the programmer from executing refactorings that could otherwise alter ...
We wish to thank Marcus Frenkel, Mira Mezini, Andreas Sewe, Jan Sinschek, and Friedrich Steimann for their comments, which greatly helped us improve an initial draft of this paper. ...
doi:10.1145/2338965.2336754
dblp:conf/issta/ThiesB12
fatcat:xelesc5tmfdjxdcx3dqjpqun7e
Scaling testing of refactoring engines
2016
Proceedings of the 38th International Conference on Software Engineering Companion - ICSE '16
Therefore, refactoring engines may apply incorrect transformations in which the resulting program does not compile, preserve behavior, or follow the refactoring definitions. ...
Defining and implementing refactorings is a nontrivial task since it is difficult to define preconditions to guarantee that the transformation preserves the program behavior. ...
In our previous work [13] , we used an approach similar to the approach proposed by Jagannath et al. ...
doi:10.1145/2889160.2891038
dblp:conf/icse/Mongiovi16
fatcat:mmib7xlvlva4tggw7qxfroqj2u
Scaling testing of refactoring engines
2016
Companion Proceedings of the 2016 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity - SPLASH Companion 2016
Therefore, refactoring engines may apply incorrect transformations in which the resulting program does not compile, preserve behavior, or follow the refactoring definitions. ...
Defining and implementing refactorings is a nontrivial task since it is difficult to define preconditions to guarantee that the transformation preserves the program behavior. ...
In our previous work [13] , we used an approach similar to the approach proposed by Jagannath et al. ...
doi:10.1145/2984043.2984048
dblp:conf/oopsla/Mongiovi16
fatcat:hmaj2ctpmfhqfpa5ugick4gxoy
Towards improving interface modularity in legacy Java software through automated refactoring
2016
Companion Proceedings of the 15th International Conference on Modularity - MODULARITY Companion 2016
We argue that both these benefits improve software modularity, and discuss our ongoing work in developing an automated refactoring tool that would assist developers in taking advantage of the enhanced ...
Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need only examine the interface itself. ...
Our tool must perform a semantics-preserving source-to-source transformation of existing Java programs in an efficient, error-free, and omission-free way. ...
doi:10.1145/2892664.2892681
dblp:conf/aosd/KhatchadourianM16
fatcat:s3bdv5d3nfff5gcjvklsux5gtm
Refactoring for reentrancy
2009
Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium - ESEC/FSE '09
We present a mostly-automated refactoring that makes such programs reentrant by replacing global state with thread-local state and performing each execution in a fresh thread. ...
We implemented this refactoring in Reentrancer, a practical Eclipsebased tool. Reentrancer successfully eliminated observed reentrancy problems in five single-threaded Java benchmarks. ...
This leads to an approach of correctness before performance when moving software to multicores (also espoused elsewhere [6] ): the refactoring produces an obviously reentrant program (i.e., one with no ...
doi:10.1145/1595696.1595723
dblp:conf/sigsoft/WlokaST09
fatcat:crfa3ih73bdehepbiznzqff5ou
Model-driven Java code refactoring
2015
Computer Science and Information Systems
The presented approach is applied to the refactoring of Java code using a prototypical implementation based on the Eclipse Modeling Framework, a language workbench, a Java metamodel and a set of OMG standards ...
Refactoring is an important technique for restructuring code to improve its design and increase programmer productivity and code reuse. ...
Schäfer' approach addresses the preservation of program behavior as a dependence edge preservation problem [23] , [24] , and uses constraints to control accessibility adjustments [26] . ...
doi:10.2298/csis141025015h
fatcat:rlcw245n4zbctiswcrtrocwcmu
« Previous
Showing results 1 — 15 out of 2,518 results