Publications
Jazz Sangam: A Real-Time Tool for Distributed
Pair Programming on a Team Development Platform
John Vijay Sena Devide, Andrew Meneely,
Chih-Wei Ho, Laurie Williams, Michael Devetsikiotis
iReCoSE workshop at FSE 2008
Pair programming has proven to be a useful
technique for developing high quality code while sharing knowledge
throughout a team. Rapid global dispersion of software development
teams, however, makes co-located pair programming a challenge,
motivating the need for development tools tailored specifically for
distributed pair programming. Previously, the Sangam Eclipse plug-in was
developed to support distributed pair programming. More recently, the
Jazz collaborative software development platform was built to support
team communication and the sharing of life-cycle resources and to
integrate a variety of disparate tools used by team members. We have
ported Sangam to the Jazz platform to enable teams to pair program
within their integrated team environment. In this paper, we describe
Jazz Sangam, highlight the choices that lead to Sangam's current
design, and discuss how Jazz Sangam can improve the distributed pair
programming experience.
Predicting Failures with Developer Networks
and Social Network Analysis
Andrew Meneely, Laurie Williams, Will Snipes,
Jason Osborne
FSE 2008
Software fails and fixing it is expensive.
Research in failure prediction has been highly successful at modeling
software failures. Few models, however, consider the key cause of
failures in software: people. Understanding the structure of developer
collaboration could explain a lot about the reliability of the final
product. We examine this collaboration structure with the developer
network derived from code churn information that can predict failures at
the file level. We conducted a case study involving a mature Nortel
networking product of over three million lines of code. Failure
prediction models were developed using test and post-release failure
data from two releases, then validated against a subsequent release. One
model's prioritization revealed 58% of the failures in 20% of the files
compared with the optimal prioritization that would have found 61% in
20% of the files, indicating that a significant correlation exists
between file-based developer network metrics and failures.
ROSE: A Repository of Education-Friendly
Open-Source Projects
Andrew Meneely, Laurie Williams, Edward
Gehringer
ITiCSE 2008
Open-source project artifacts can be used
to inject realism into software engineering courses or lessons on
open-source software development. However, the use of open-source
projects presents challenges for both educators and for students.
Educators must search for projects that meet the constraints of their
classes, and often must negotiate the scope and terms of the project
with project managers. For students, many available open-source projects
have a steep learning curve that inhibits them from making significant
contributions to the project and benefiting from a "realistic"
experience. To alleviate these problems and to encourage
cross-institution collaboration, we have created the Repository for Open
Software Education (ROSE) and have contributed three open-source
projects intended for an undergraduate computer science or software
engineering course. The projects in ROSE are education-friendly in terms
of a manageable size and scope, and are intended to be evolved over many
semesters. All projects have a set of artifacts covering all aspects of
the development process, from requirements, design, code, and test. We
invite other educators to contribute to ROSE and to use projects found
on ROSE in their own courses.
PDF
PDFFifteen compilers in fifteen days
Jeremy D. Frens, Andrew Meneely
SIGCSE 2006
Traditional approaches to semester-long
projects in compiler courses force students to implement the early
stages of a compiler in depth; since many students fall behind, they
have little opportunity to implement the back end. Consequently,
students have a deep knowledge of early material and no knowledge of
latter material. We propose an approach based on incremental development
and test-driven development; this approach solves the emphasis problem,
provides experience with useful tools, and allows for such a course to
be taught in a three or four weeks. ACM Reference
Copyright information: Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.