Font Size: a A A

Research On Interactive Feature Location Process And Support Technology

Posted on:2014-11-28Degree:DoctorType:Dissertation
Country:ChinaCandidate:J S WangFull Text:PDF
GTID:1108330434471196Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Software systems will step into a long maintenance or evolution phase after their development phases come into an end. In addition, iterative and incremental development approaches have been extensively adopted in an increasing number of software projects, making software maintenance a continuous process as software development activities. In light of the reasons such as complexity of system, the cost of software maintenance usually end up with an astronomical number. Statistics shows that the expense of software maintenance of some projects has occupied over70percent of the total cost in entire life cycle of software development.In order to accomplish a variety of software maintenance tasks, such as fixing bugs related to certain requirement, enhancing existent functionalities, or extending new features, developers often need to look for related codes of a feature in advance. Such a process that used to identify relevant program elements according to a given feature is called as feature location.In recent years, numerous research works pertaining to feature location have emerged in the field of software engineering, which also accumulated a series of automatic approaches and tools based on some techniques as information retrieval, static analysis and dynamic analysis. These research works, however, are lack of sufficient understanding in developers’ information exploring and cognitive processes when they are conducting feature location tasks. The majority of proposed approaches simply consider feature location as a one-shot activity of "search->results". However, our empirical research shows that feature location is a human-centered and knowledge-intensive process of information exploration, where developers would continuously and iteratively get feedback so that they could make sense of the problems and change their exploring strategy in the meantime. Therefore, out of an empirical study on developers’ behaviors when they were accomplishing feature location tasks, this thesis provides insights on major phases, strategy selection and basic actions in such a process, based on which novel interactive feature location techniques are further proposed to facilitate maintenance tasks in a more intuitive way.This thesis first proposes a three-layer conceptual framework of feature location process consisting of phase, pattern and action, based on which a human-oriented empirical study is conducted. In this study, a selected group of experienced developers were assigned some feature location tasks and their behaviors were recorded as videos. Through interview and video analysis, we identified the basic phases and actions. Accordingly, we concluded some patterns representing feature locating strategies for two major phases:search phases and extension. Followed experiment shows that the three-layer feature location process model and its relevant knowledge significantly improve developers’ efficiency and quality in feature location task. Last but not least, we also studied and summarized the external factors influencing developers’the selection of feature location strategy.Traditional feature location tools often ask developers to come up with an accurate feature query and evaluate the relevance of returned results, which virtually increase their burdens. In order to address this thesis, this thesis proposes a multi-faceted and interactive feature location approach whereby developers are able to identify codes in an iterative way. Our approach automatically extracts and mines multiple facets, such as syntactic and semantic information, from the results of initial query and allows developers to interactively group, sort, and filter the results. By this means, users are able to obtain their intended results through interactively and iteratively refining and adjusting the outcomes of initial query. Based on the aforementioned approach, we implemented proof-of-concept Web-based tool MFIE and conducted an experimental study. The result shows that MFIE significantly outperform state-of-the-art IDE, eclipse, in both efficiency and accuracy.In order to meet developers’ demand of further exploring additional relevant program elements after gaining initial feature location results, this thesis also put forward an incremental and interactive approach of code recommendation. According to user’s determination of his confirmed relevant program elements, this approach is able to automatically recommend possibly relevant program elements. We implemented our approach as an eclipse plugin tool RecFL, and conduct an experiment for validation.To sum up, this thesis encompass an empirical study of feature location process, a proposed feature location process model consisting of phase, pattern and action, and an experiment to validate the effectiveness of it as a crucial knowledge to facilitate the software maintenance tasks. Additionally, a multi-facet feature location technique and an incremental approach for recommending relevant program elements are also put forward. Last but not least, the proof-of-concept tools are built to practically facilitate the feature location tasks for software developers.
Keywords/Search Tags:software maintenance, program understanding, feature location, conceptmodel, case study
PDF Full Text Request
Related items