A FORMAL APPROACH TO REPRESENT REFACTORING RULES

Software Refactoring techniques have been applied to object oriented applications in order to improve internal code design. The fundamental aim behind application of these techniques is to improve understandability of code along with improving its efficiency. The process is similar to compiler optimization techniques, but differ in the fact that stress is given to code understandability than to time and space complexity of the programs during refactoring. With the help of refactorings, small modifications or alterations are performed to existing code without changing the external functionality of the system. Developers perform refactoring either manually or with the help of IDEs. Manual application of Refactorings is error-prone and timeconsuming but IDE’s such as Eclipse, Netbeans, JBuilder, and IntelliJ etc. can support automated refactoring. In either way of applying refactorings a formal mechanism is required to represent the refactoring conditions and process. Many refactoring formalisms have already been proposed by the researchers in the field. This paper presents a formal approach to

[1]  George Loizou,et al.  The role of constructors in the context of refactoring object-oriented systems , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[2]  Andrew P. Black,et al.  Breaking the barriers to successful refactoring: observations and tools for extract method , 2008, ICSE.

[3]  Darko Marinov,et al.  Automated testing of refactoring engines , 2007, ESEC-FSE '07.

[4]  Tom Mens,et al.  Identifying refactoring opportunities using logic meta programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[5]  Fredy Oertly,et al.  Evolutionary database design , 1989, [1989] Proceedings. Fifth International Conference on Data Engineering.

[6]  Tom Mens,et al.  Analysing refactoring dependencies using graph transformation , 2007, Software & Systems Modeling.

[7]  Alexander Chatzigeorgiou,et al.  Identification of Move Method Refactoring Opportunities , 2009, IEEE Transactions on Software Engineering.

[8]  Keith H. Bennett,et al.  Formal Methods to Aid the Evolution of Software , 1995, Int. J. Softw. Eng. Knowl. Eng..

[9]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[10]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[11]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.

[12]  Andrew P. Black,et al.  Why Don't People Use Refactoring Tools? , 2007, WRT.

[13]  G. Li,et al.  Conflict-aware schedule of software refactorings , 2008, IET Softw..

[14]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[15]  David Sands,et al.  Total correctness by local improvement in the transformation of functional programs , 1996, TOPL.

[16]  Leon Moonen,et al.  Java quality assurance by detecting code smells , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[17]  Thorsten Sturm,et al.  Refactoring Browser for UML , 2002, NetObjectDays.