Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Access rights analysis for Java
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Essentials of Constraint Programming
Essentials of Constraint Programming
Essentials of Constraint Programming
Essentials of Constraint Programming
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Analysing the Java package-access concepts in Isabelle-HOL: Research Articles
Concurrency and Computation: Practice & Experience - Formal Techniques for Java-like Programs
Encapsulating objects with confined types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated testing of refactoring engines
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
Sound and extensible renaming for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
Specifying and implementing refactorings
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A theory of software product line refinement
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Correct refactoring of concurrent java code
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
An introduction to software product line refactoring
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Refactoring using type constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
A security-aware refactoring tool for Java programs
Proceedings of the 4th Workshop on Refactoring Tools
Refactoring Java programs for flexible locking
Proceedings of the 33rd International Conference on Software Engineering
A refactoring constraint language and its application to eiffel
Proceedings of the 25th European conference on Object-oriented programming
Safira: a tool for evaluating behavior preservation
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Constraint-based model refactoring
Proceedings of the 14th international conference on Model driven engineering languages and systems
RefaFlex: safer refactorings for reflective Java programs
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Use, disuse, and misuse of automated refactorings
Proceedings of the 34th International Conference on Software Engineering
Automated repair of HTML generation errors in PHP applications using string constraint solving
Proceedings of the 34th International Conference on Software Engineering
A theory of software product line refinement
Theoretical Computer Science
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Constraint-Based refactoring with foresight
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Implementing refactorings for FOP: lessons learned and challenges ahead
Proceedings of the 5th International Workshop on Feature-Oriented Software Development
Befactoring: preserving non-functional properties under behavioural change
Proceedings of the 2013 ACM workshop on Workshop on refactoring tools
Hi-index | 0.00 |
Contemporary refactoring tools for Java aiding in the restructuring of programs have problems with respecting access modifiers such as public and private : while some tools provide hints that referenced elements may become inaccessible due to the intended restructuring, none we have tested prevent changes that alter the meaning of a program, and none take steps that counteract such alterations. To address these problems, we formalize accessibility in Java as a set of constraint rules, and show how the constraints obtained from applying these rules to a program and an intended refactoring allow us to check the preconditions of the refactoring, as well as to compute the changes of access modifiers necessary to preserve the behaviour of the refactored program. We have implemented our framework as a proof of concept in Eclipse , and demonstrated how it improves applicability and success of an important refactoring in a number of sample programs. That our approach is not limited to Java is shown by comparison with the constraint rules for C# and Eiffel .