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 Module?

To be able to discuss how developers work with the modules in a software system, we need a consistent definition of what a module is and how the code in one module is separated from other modules in the system.

Although it would be convenient to define modules by reference to explicit declarations in the source code, this approach presents two difficulties for our analysis. First, the projects we selected for our study are implemented in a variety of programming languages, each of which treats modularity differently. Evolution is implemented in C, which provides minimal support for defining modules within source code. Firefox primarily uses C++, a language that supports modules at the language level through namespace declarations, but Firefox itself does not make consistent use of this language feature. Further, Firefox also includes code written in many other languages, such as JavaScript and XUL (the XML User Interface Language), which have completely different modularity constructs. Mylyn, a Java application, is the only one of the three systems that has clearly defined modules within source code, which it accomplishes using Java packages.

Second, the systems we chose to study are sufficiently large and long-lived that analysis at the fine-grained level of the programming language could be overwhelmed by development issues, such as changing members of the development team and refactorings of the code. To reduce the likelihood that such issues would impact our ...

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