Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/381473.381502acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Separating features in source code: an exploratory study

Published: 01 July 2001 Publication History

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.

References

[1]
D. Batory, C. Johnson, B. MacDonald, and D. von Heeder. Extensibility through product-lines and domain-specific languages: A case study. In Proc. of ICSR 6, pp. 117-136, 2000. LNCS 1844.
[2]
L. Carver. A practical hyperspace application: Lessons from the option-processing task. Position Paper for Multi- Dimensional Separation of Concerns Workshop, ICSE, 2000.
[3]
L. Carver and W. Griswold. Sorting out concerns. Position Paper for Multi-Dimensional Separation of Concerns Workshop, OOPSLA, 1999.
[4]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, 1995.
[5]
N. Griffeth and Y. Lin. Extending telecommunications systems: The feature-interaction problem. Computer, 26(8):14- 18, 1993.
[6]
W. Harrison and H. Ossher. Subject-oriented programming (a critique of pure objects). In Proc. of OOPSLA, pp. 411- 428, 1993.
[7]
M. Kersten and G. Murphy. Atlas: A case study in building a web-based learning environment using aspect-oriented programming. In Proc. of OOPSLA, pp. 340-352, 1999.
[8]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-oriented programming. In Proc. of ECOOP'97, pp. 220-242, 1997.
[9]
A. Lai and G. Murphy. The structure of features in Java code: An exploratory investigation. Position Paper for Multi- Dimensional Separation of Concerns Workshop, OOPSLA, 1999.
[10]
M. Lippert and C. Lopes. A study on exception detection and handling using aspect-oriented programming. In Proc. of ICSE, pp. 418-427, 2000.
[11]
W. Opdyke. Refactoring Object-oriented frameworks. PhD thesis, University of Illinois, 1992.
[12]
H. Ossher and P. Tarr. Hyper/J: Multi-dimensional separation of concerns for Java. In Proc. of ICSE, pp. 734-737, 2000.
[13]
H. Ossher and P. Tarr. On the need for on-demand remodularization. Position Paper for Aspects and Dimensions of Concern Workshop, ECOOP, 2000.
[14]
M. Robillard and G. Murphy. An exploration of a lightweight means of concern separation. Position Paper for Aspects and Dimensions of Concern Workshop, ECOOP, 2000.
[15]
P. Tarr, H. Ossher, W. Harrison, and S. Sutton. N degrees of separation: multi-dimensional separation of concerns. In Proc. of ICSE, pp. 107-119, 1999.
[16]
R. Walker, E. Baniassad, and G. Murphy. An initial assessment of aspect-oriented programming. In Proc. of ICSE, pp. 120-130, 1999.

Cited By

View all
  • (2018)TOSSProceedings of the 2018 Workshop on Forming an Ecosystem Around Software Transformation10.1145/3273045.3273048(1-7)Online publication date: 15-Oct-2018
  • (2016)FeatureCoPP: compositional annotationsProceedings of the 7th International Workshop on Feature-Oriented Software Development10.1145/3001867.3001876(74-84)Online publication date: 30-Oct-2016
  • (2013)Managing cloned variantsProceedings of the 17th International Software Product Line Conference10.1145/2491627.2491644(101-110)Online publication date: 26-Aug-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '01: Proceedings of the 23rd International Conference on Software Engineering
July 2001
844 pages
ISBN:0769510507

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 01 July 2001

Check for updates

Author Tags

  1. aspect-oriented programming
  2. design space
  3. feature separation
  4. hyperspaces

Qualifiers

  • Article

Conference

ICSE01
Sponsor:
ICSE01: 23rd International Conference on Software Engineering
May 12 - 19, 2001
Ontario, Toronto, Canada

Acceptance Rates

ICSE '01 Paper Acceptance Rate 47 of 268 submissions, 18%;
Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2018)TOSSProceedings of the 2018 Workshop on Forming an Ecosystem Around Software Transformation10.1145/3273045.3273048(1-7)Online publication date: 15-Oct-2018
  • (2016)FeatureCoPP: compositional annotationsProceedings of the 7th International Workshop on Feature-Oriented Software Development10.1145/3001867.3001876(74-84)Online publication date: 30-Oct-2016
  • (2013)Managing cloned variantsProceedings of the 17th International Software Product Line Conference10.1145/2491627.2491644(101-110)Online publication date: 26-Aug-2013
  • (2013)Fine-grained annotations for pointcuts with a finer granularityProceedings of the 28th Annual ACM Symposium on Applied Computing10.1145/2480362.2480685(1706-1711)Online publication date: 18-Mar-2013
  • (2012)Combining related products into product linesProceedings of the 15th international conference on Fundamental Approaches to Software Engineering10.1007/978-3-642-28872-2_20(285-300)Online publication date: 24-Mar-2012
  • (2011)Tackling the challenges of integrating 3rd party software using AspectJTransactions on aspect-oriented software development VIII10.5555/2028556.2028562(116-140)Online publication date: 1-Jan-2011
  • (2011)A system of patterns for reusable aspect librariesTransactions on aspect-oriented software development VIII10.5555/2028556.2028559(46-107)Online publication date: 1-Jan-2011
  • (2010)Code clones in feature-oriented software product linesACM SIGPLAN Notices10.1145/1942788.186831046:2(103-112)Online publication date: 10-Oct-2010
  • (2010)Emergent feature modularizationProceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion10.1145/1869542.1869545(11-18)Online publication date: 17-Oct-2010
  • (2010)Code clones in feature-oriented software product linesProceedings of the ninth international conference on Generative programming and component engineering10.1145/1868294.1868310(103-112)Online publication date: 10-Oct-2010
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media