A Content Assist based Approach for Providing Rationale of Method Change for Object Oriented Programming


Software engineering requires modification of code during development and maintenance phase. During modification, a difficult task is to understand rationale of changed code. Present Integrated Development Environments (IDEs) attempt to help this by providing features integrated with different types of repositories. However, these features still consume developer's time as he has to switch from editor to another window for this purpose. Moreover, these features focus on elements available in present version of code, thus increasing the difficulty of finding rationale of an element removed or modified earlier. Leveraging different sources for providing information through code completion menus has been shown to be valuable, even when compared to standalone counterparts offering similar functionalities in literature. Literature also shows that it is one of the most used features for consuming information within IDE. Based on that, we prepare an Eclipse plug-in and a framework that allows providing reason of code change, at method granularity, across versions through a new code completion menu in IDE. These allow a software engineer to gain insight about rationale of removed or modified methods which are otherwise not available in present version of code. Professional software engineers participated in our empirical evaluation process and we observed that more than 80% participants considered this to be a useful approach for saving time and effort to understand rationale of method change. Later, based on their feedback, the plug-in and framework is modified to incorporate chronological factors. We perform quasi experimental evaluation with professional software engineers. It is found that time required to find rationale of method change is reduced to at least half compared to usual amount of time required for all the software engineers who participated in the quantitative evaluation.

International Journal of Information Engineering and Electronic Business(IJIEEB)