Decision Support for Automated Refactoring
Project Description:
Decision Support for Automated Refactoring (DSAR) is a DIT sponsored project.
A software can be refactored to improve its design without changing its observable behavior. Many such techniques are proposed, named as “Refactoring techniques” , which have world wide acceptance. However, the application of these techniques is still based on the expertise of the person applying them and may vary from person to person based on their perspective of the given application.
Providing automated guidelines about when a refactoring technique has to be applied will bring uniformity as well as reduce person dependency. In a way it will increase its use in the defined domains. Existing tools that apply refactoring are not automated and perform refactoring as guided by the user. This project proposes the guidelines to suggest various refactorings based on the static analysis of the application code.
The decision support for refactoring focuses on the following points:
- To provide automated guidelines for re-engineering an object oriented application. The guidelines include class name, method name or attribute name, refactoring technique to be applied and how to apply the specified refactoring.
- Based on the user response for the automated suggestions, aim is to perform the desired refactorings automatically.
- Develop a tool that suggests and implements refactoring for Java.
In order to achieve these goals, we are doing research in:
- Static analysis of the source code to identify the various desired properties of the program.
- Many of the refactoring techniques are based on the code clones. The detection of code clones at various levels is another area we are exploring.
- Suggesting metrics and techniques to suggest various refactorings.
- Identifying and presenting the gathered information through various graphs and lattices.
List of Publications:
- Padmaja Joshi, Rushikesh Joshi,”Concept Analysis for Class Cohesion”, IEEE proceedings of 13th European Conference on Software Maintenance and Reenigineering, Kaiserslautern, Germany, pg. 237-241, March 2009.
- Padmaja Joshi, Rushikesh Joshi,” A measurement-centric metamodel for object oriented programs”, accepted at Indian Conference on Software Engineering 2010, Mysore, India.
Project incharge: Padmaja Joshi (Senior Research Scientist)
Email : padmaja[at]cdacmumbai.in
Team Members:
Vijay Jain - Staff Scientist
Chetan Ahirrao - Staff Scientist
Atul Dhengre - Staff Scientist
Sanjeev Chakraborty - Senior Technical Associate
Swapnil Srivastava - Senior Staff Scientist
Pratibha Singh - Senior Technical Associate