The workshop is concerned with all aspects of the search experience of software developers.
Search-driven development involves a broad range of activities and
topics: from finding reusable software assets to finding experts
within an organization; from using the mighty
grep to using
internet-scale search engines dedicated to software artifacts; from
finding matching code fragments based on a simple text query to based
on a given unit-test. At the first edition of this workshop we
identified suitability and trustability of search
results as key factors in software search. For example, that software
search results must not only be relevant to the search query but also
suite into the current source code under development; and that source
code alone is often not sufficient to assess the trustability of a
search result. Similar factors apply when searching for external
artifacts, whole projects or developers expertise.
Topics of interest include, but are not limited to:
- Approaches and tools for searching software artifacts.
- Approaches and tools to search for developer expertise.
- Behavioral and executables specifications (eg unit tests) as search queries for automated search and reuse.
- Crawling and parsing of internet-scale code repositories.
- Empirical studies of search and navigation in software development.
- Experience reports on setting up and running large software search engines.
- Information retrieval techniques and machine learning approaches to search software.
- Integration of search engines with IDEs.
- Just in time comprehension tools for developers.
- Leveraging Web 2.0 and social networking techniques for developer's information needs.
- Methods of integrating indexed data from various sources and histories.
- Natural language processing to support software development.
- Novel argumentation models for searching in software message boards and email archives.
- Pragmatic reuse of components, i.e. through code transformation rather than via frameworks.
- Programming by example.
- Program analysis techniques in code search. For eg; automatic extraction of API usage patterns for program comprehension.
- Query languages for software search.
- Ranking strategies and heuristics for code search.
- Searching aids for debugging and profiling.
- Searching the computation space, i.e. runtime object graph / memory.
- Slicing and generative techniques for search results extraction and synthesis.
- Standards and benchmarks for the evaluation of search tools.
- Suitability and Trustability of search results.
- The use of visualizations to support software search.
- Understanding information needs of software developers.
We are looking forward to exciting and stimulating discussions about all these ideas – and much more – at the workshop!