CSMR 2012
Technical Track
Repository analysis
Wednesday, March 2, 2011, from 11:00 to 12:30, A14 HS2- Wouter Poncin, Alexander Serebrenik and Mark van den Brand - Process mining software repositories
- Alberto Bacchelli, Michele Lanza and Vitezslav Humpa - RTFM (Read The Factual Mails) -Augmenting Program Comprehension wit Remail
- Nikolaos Tsantalis and Alexander Chatzigeorgiou - Ranking Refactoring Suggestions based on Historical Volatility
Process mining software repositories
Wouter Poncin, Alexander Serebrenik and Mark van den Brand
Software developers' activities are in general recorded in software repositories such as version control systems, bug trackers and mail archives. While abundant information is usually present in such repositories, successful information extraction is often challenged by the necessity to simultaneously analyze different repositories and to combine the information obtained. We propose to apply process mining techniques, originally developed for business process analysis, to address this challenge. However, in order for process mining to become applicable, different software repositories should be combined, and ``related'' software development events should be matched: e.g., mails sent about a file, modifications of the file and and bug reports that can be traced back to it. The combination and matching of events have been implemented in FRASR (FRamework for Analyzing Software Repositories) augmenting the process mining framework ProM. FRASR has been applied in a series of case studies ranging from relatively small student projects to large OS applications, and addressing such aspects of the development process as conformance to development guidelines, roles of different developers and the way bug reports are handled.
RTFM (Read The Factual Mails) -Augmenting Program Comprehension wit Remail
Alberto Bacchelli, Michele Lanza and Vitezslav Humpa
The advent of globalization has led to the adoption of distributed software development as a common practice. One of its drawbacks -the absence of impromptu meetings- is tackled with other communication means, such as emails, instant messaging, or forums. Mailing lists have proven to be effective for enabling developers' collaboration and coordination: Being asynchronous, emails can evade timezone barriers; being public, mailing lists maintain developers' awareness; being recorded, email archives offer information on system evolution. Emails can provide information about a task, clarify implementation details, or reveal hidden connections among entities, always within the clear context of a discussion. As a result, we argue that emails might help program comprehension. We devised Remail, an Eclipse plugin to integrate email communication in the IDE. It allows developers to seamlessly handle code entities and emails concerning the source code. Discussions relevant to chosen entities can be retrieved easily, thus providing an updated and effective form of complementary documentation. We present design and implementation of Remail, and illustrate, through a number of scenarios, how it can augment program comprehension.
Ranking Refactoring Suggestions based on Historical Volatility
Nikolaos Tsantalis and Alexander Chatzigeorgiou
The widespread acceptance of refactorings as a simple yet effective approach to improve the design of object-oriented systems, has stimulated an effort to develop semi-automatic tools for detecting design flaws, with simultaneous suggestions for their removal. However, even in medium-sized projects the number of detected occurrences can be so large that the refactoring process becomes intractable for the designer. It is reasonable to expect that some of the suggested refactorings will have a significant effect on the improvement of maintainability while others might be less important. This implies that the suggested solutions can be ranked according to one or more criteria. In this paper we propose the exploitation of past source code versions in order to rank refactoring suggestions according to the number, proximity and extent of changes related with the corresponding code smells. The underlying philosophy is that code fragments which have been subject to maintenance tasks in the past, are more likely to undergo changes in a future version and thus refactorings involving the corresponding code should have a higher priority. To this end, historical volatility models drawn from the field of forecasting risk in financial markets, are investigated as measures expressing the urgency to resolve a given design problem. The approach has been integrated into an existing smell detection Eclipse plug-in, while the evaluation results focus on the forecast accuracy of the examined models.