Separating features in source code: an exploratory study

  • Authors:
  • Gail C. Murphy;Albert Lai;Robert J. Walker;Martin P. Robillard

  • Affiliations:
  • Department of Computer Science, University of British Columbia, 2366 Main Mall, Vancouver, BC Canada, V6T 1Z4;Department of Computer Science, University of British Columbia, 2366 Main Mall, Vancouver, BC Canada, V6T 1Z4;Department of Computer Science, University of British Columbia, 2366 Main Mall, Vancouver, BC Canada, V6T 1Z4;Department of Computer Science, University of British Columbia, 2366 Main Mall, Vancouver, BC Canada, V6T 1Z4

  • Venue:
  • ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
  • Year:
  • 2001

Quantified Score

Hi-index 0.02

Visualization

Abstract

Most software systems are inflexible. Reconfiguring a system's modules to add or to delete a feature requires substantial effort. This inflexibility increases the costs of building variants of a system, amongst other problems.New languages and tools that are being developed to provide additional support for separating concerns show promise to help address this problem. However, applying these mechanisms requires determining how to enable a feature to be separated from the codebase. In this paper, we investigate this problem through an exploratory study conducted in the context of two existing systems: gnu.regexp and jFTPd. The study consisted of applying three different separation of concern mechanisms—Hyper/J,TM AspectJ,TM and a lightweight, lexically-based approach—to separate features in the two packages. In this paper, we report on the study, providing contributions in two areas. First, we characterize the effect different mechanisms had on the structure of the codebase. Second, we characterize the restructuring process required to perform the separations. These characterizations can help researchers to elucidate how the mechanisms may be best used, tool developers to design support to aid the separation process, and early adopters to apply the techniques.