Publications
Secure Open Source Collaboration: An Empirical
Study of Linus' Law
Andrew Meneely and Laurie Williams
Computer and Communications Security (CCS) 2009
Open source software is often
considered to be secure. One factor in this confidence in the security
of open source software lies in leveraging large developer communities
to find vulnerabilities in the code. Eric Raymond declares Linus' Law
"Given enough eyeballs, all bugs are shallow." Does Linus' Law hold up
ad infinitum? Or, can the multitude of developers become "too many cooks
in the kitchen", causing the system's security to suffer as a result? In
this study, we examine the security of an open source project in the
context of developer collaboration. By analyzing version control logs,
we quantified notions of Linus" Law as well as the "too many cooks in
the kitchen" viewpoint into developer activity metrics. We performed an
empirical case study by examining correlations between the known
security vulnerabilities in the open source Red Hat Enterprise Linux 4
kernel and developer activity metrics. Files developed by otherwise-
independent developer groups were more likely to have a vulnerability,
supporting Linus' Law. However, files with changes from nine or more
developers were 16 times more likely to have a vulnerability than files
changed by fewer than nine developers, indicating that many developers
changing code may have a detrimental effect on the system's security.
PDF
PDF
A
tag cloud of the paper's text. Generated by TagCrowd.comProtection Poker: Structuring Software
Security Risk Assessment and Knowledge Transfer
Laurie Williams, Michael Gegick, and Andrew
Meneely
Int'l Symp. Engineering Secure
Software and Systems (ESSoS) 2009
Discovery of security
vulnerabilities is on the rise. As a result, software development teams
must place a higher priority on preventing the injection of
vulnerabilities in software as it is developed. Because the focus on
software secu- rity has increased only recently, software development
teams often do not have expertise in techniques for identifying security
risk, understanding the impact of a vulnerability, or knowing the best
mitigation strategy. We propose the Protection Poker activity as a
collaborative and informal form of misuse case development and threat
modeling that plays off the diversity of knowledge and perspective of
the participants. An excellent outcome of Protection Poker is that
security knowl- edge passed around the team. Students in an advanced
undergraduate software engineering course at North Carolina State
University participated in a Protection Poker session conducted as a
laboratory exercise. Students actively shared misuse cases, threat
models, and their limited software security expertise as they dis-
cussed vulnerabilities in their course project. We observed students
relating vul- nerabilities to the business impacts of the system.
Protection Poker lead to a more effective software security learning
experience than in prior semesters. A pilot of the use of Protection
Poker with an industrial partner began in October 2008. The first
security discussion structured via Protection Poker caused two
requirements to be revised for added security fortification; led to the
immediate identification of one vulnerability in the system; initiated a
meeting on the prioritization of security defects; and instigated a call
for an education session on preventing cross site scripting
vulnerabilities.
A
tag cloud of the paper's text. Generated by TagCrowd.comOn Preparing Students for Distributed Software
Development with a Synchronous, Collaborative Development Platform
Andrew Meneely and Laurie Williams
SIGCSE 2009
Working remotely is becoming the
norm for both professionals and students alike. Software development has
become a global industry due to outsourcing, teleworking, flex time, and
companies' desire to use the best and/or most economical talent
regardless of where that talent is located. Professionals are not alone
because students usually work from home despite having sufficient
resources on campus. In this paper we share our experiences from using
Jazz, a synchronous, collaborative development platform, with our
inevitably distributed software engineering students. Eleven students
optionally used the tool while working on a five-week team project.
Students primarily used the version control, chat, and work items
features in Jazz. We collected their reactions in retrospective essays
and found that all Jazz students supported using Jazz in future
semesters of the course. We also examined grade differences and found
that the students who used Jazz were more successful than those who did
not use Jazz.
A
tag cloud of the paper's text. Generated by TagCrowd.comJazz 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.
A
tag cloud of the paper's text. Generated by TagCrowd.comPredicting 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.
A
tag cloud of the paper's text. Generated by TagCrowd.comROSE: 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
PDF
A
tag cloud of the paper's text. Generated by TagCrowd.comFifteen 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
A
tag cloud of the paper's text. Generated by TagCrowd.comCopyright 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.