Collaboration is essential to software development. As software engineers develop and evolve software, they need to analyze past and present software modifications implemented by other developers in various tasks such as peer code reviews, bug investigations, and change impact analysis. Developers are often overwhelmed with a large amount of awareness information about software modifications. Auto-generated emails about check-ins, builds, and regression tests often flood developers' mail boxes, yet it is very difficult for developers to identify significant and relevant change-events. Existing software engineering tools do not easily allow developers to search software modifications relevant to their tasks, focus, and interests.
This research project will produce analytical support for investigating software modifications in collaborative development environment called CHIME. First, CHIME will provide an extensible, logical change analysis framework that identifies software modifications relevant to one's own code modification according to various kinds of delta relationships. The users of the framework can import, select, and extend various notions of interference, dependence, similarity, and co-occurrence relationships among individual software modifications. Second, CHIME will provide a search interface to empower users to ask and answer questions about the content, structure, and context of code changes across multiple revisions. In order to reduce programmers' burden on formulating search queries, we will conduct empirical studies with professional developers to identify frequently asked questions about past and present software modifications. The resulting list of the questions will be provided as template queries that the developers can use or refine. Third, CHIME will provide targeted notifications about others' software modifications by monitoring other developers' change-events that are relevant to the developer's own modification. The impact of this research will be substantially improved developer productivity in a rapidly-evolving, collaborative and parallel software development. CHIME will reduce awareness information overload and will help users manage the impact of others' code changes on their code, detect and resolve merge conflicts early, and coordinate shared tasks, contributing toward early detection and removal of integration and interference failures.