While working in an IDE, developers typically deal with a large number of different artifacts at the same time. The software development process requires that they repeatedly switch between different artifacts, which often depends on searching for these artifacts in the source code structure. We propose a tool that integrates context-based search and recommendation of source code artifacts in Eclipse. The artifacts are collected from the workspace of the developer and represented using ontologies. A context model of the developer is used to improve search and give recommendations of these artifacts, which are ranked according to their relevance to the developer. The tool was tested by a group of developers and the results show that contextual information has an important role in retrieving relevant information for developers.
I. INTRODUCTIONThe interest in context comes from different fields such as literature, philosophy, linguistics and computer science, with each field proposing its own view of context. In software development, developers need to cope with a large amount of contextual information that is typically not captured and processed in order to enrich their work environment. Especially, in the IDE, developers deal with dozens of artifacts at the same time. Their work requires them to repeatedly switch between different artifacts, which often depends on searching for these artifacts in the source code structure. The workspace of developers frequently comprises hundreds, if not thousands, of artifacts, which makes the task of searching for relevant artifacts very time consuming.We propose a tool, named SDiC (Software Development in Context), that integrates context-based search and recommendation of source code artifacts in Eclipse. The artifacts are collected from the workspace of the developer and represented from a structural and a lexical perspectives, formalized using ontologies. A context model is used to support the context-based search and recommendation of these artifacts, ranking the results according to their relevance to the developer. In the following sections we describe the knowledge base used and how the context model is applied during the retrieval process.