Congratulations to Samira, Jeremy, and Carolyn

I just handed in paperwork to say that Samira Ashtiani Abdi, Jeremy Handcock, and Carolyn MacLeod have completed their Master of Science degrees in Computer Science, and that Samira and Carolyn should be admitted to the PhD. (Jeremy’s going to go be a ski bum instead.) Congratulations to all three—I’m proud to have worked with them.

Samira Ashtiani Abdi: Recovering Related Artifacts in Software Projects’ History: a Comparison of Information Retrieval Based Methods

The average software project is made up of a rich history of artifacts or change events: discussions in mailing lists or forums, bug reports, source code revisions, documentation or wiki page edits, patches, and feature or support requests. Although each of these artifacts are independent, many events may be logically related. For example, an email in a proejct’s mailing list archives may discuss a related bug report. Similarly, the bug report may be fixed by a source code revision in version control repository, and this may cause a change in the wiki pages too. We present a system to automatically cluster related events into logical groupings, or find the artifacts related to a target artifact. In addition, we present a visualization tool to help project stakeholders explore these artifacts, which also let them to further expand their search to retrieve more related artifacts in a tree based fashion. We provide a comparison of three Information Retrieval based methods: Vector Space Model (VSM), Latent Semantic Indexing (LSI), and a novel approach based on approximating the most distinguishing words or phrases considering the properties of software repositories.

Jeremy Handcock: How Developers Use an Awareness Tool: Patterns and Usage Scenarios

Software developers consult numerous sources of information in order to maintain awareness of what happens within their teams. They seek out information about what their peers are doing and what project artifacts have changed. Although researchers have proposed many tools to facilitate developers in maintaining awareness, there is currently a lack of understanding about how developers might use them—if at all—in real software projects. We have developed a new awareness tool for software developers called Aufait. We studied developers using Aufait in two organizations over a three-week period and found that they adopted it and used it regularly. We identified a number of usage scenarios in each organization: most commonly, developers used Aufait to manage dependencies between team members and to determine how changes might affect them. We also found common usage patterns. Throughout the course of the study, developers were most interested in changes to source code relative to other artifact types and they were primarily interested in changes that occurred very recently. Together, these scenarios and patterns suggest necessary features and implications for the design of future applications. Our results also pose interesting areas of future research.

Carolyn MacLeod: Patterns in Novice Design Analysis Using Spin

I examined and categorized novice Spin users’ difficulties and errors in using it to solve simple concurrent design and algorithm problems, using a qualitative analysis and a grounded theory approach. I found that the novices had greatest difficulties in dealing with nondeterminism and the Promela control flow, and found it very difficult to specify properties in any formal way. In particular, I found that novices had difficulties in formalizing natural language specifications, and in defining abnormal behaviour.