O'Reilly logo

Making Software by Greg Wilson, Andy Oram

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

What Is a Change?

Before we can analyze the relationship between the modularity of a system and the changes developers make to that system, we first need a consistent definition of a change.

All of the projects we studied use Bugzilla (http://www.bugzilla.org) as a central bug-tracking system. Bug reports, despite their name, are not limited to just tracking defects; indeed, bug reports are also used to track feature requests (referred to as “enhancements” in Bugzilla). Thus, each report captures the notion of a single logical change to the system, which could be made either to fix a defect or to add new functionality to the system.

Table 21-2 shows the ratio of these two types of reports for the changes that we studied. For all three projects, the majority of the changes are fixes for defects in the system, although more than a quarter of the Mylyn changes are actually enhancements.

Table 21-2. Ratio of change types for each system

Project

Total changes

Defects (%)

Enhancements (%)

Evolution

1,939

1,792 (92.4%)

147 (7.6%)

Firefox

11,710

11,198 (95.6%)

512 (4.4%)

Mylyn

3,055

2,247 (73.6%)

808 (26.4%)

Each of these three projects uses a source control system that organizes and tracks changes using a notion of atomic commit operations. Each commit may modify multiple files and includes various metadata, including an identifier for the committer (typically a username or email address), the date and time at which the commit occurred, and a free-text description of the changes ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required