skip to main content
article

Variability management with feature-oriented programming and aspects

Published: 31 October 2004 Publication History

Abstract

This paper presents an analysis of feature-oriented and aspect-oriented modularization approaches with respect to variability management as needed in the context of system families. This analysis serves two purposes. On the one hand, our analysis of the weaknesses of feature-oriented approaches (FOAs for short) emphasizes the importance of crosscutting modularity as supported by the aspect-oriented concepts of pointcut and advice. On the other hand, by pointing out some of AspectJ's weaknesses and by demonstrating how Caesar, a language which combines concepts from both AspectJ and FOAs, is more effective in this context, we also demonstrate the power of appropriate support for layer modules.

References

[1]
C. Anderson, S. Drossopoulou, E. Ernst, and K. Ostermann. Virtual classes with dependent types. In preparation, 2004.]]
[2]
D. Batory and S. O'Malley. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology, 1(4):355--398, 1992.]]
[3]
D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling step-wise refinement. International Conference on Software Engineering (ICSE '03), 2003.]]
[4]
L. Bergmans and M. Aksit. Composing multiple concerns using composition filters, 2001. Available at trese.cs.utwente.nl/composition_filters/.]]
[5]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In AOSD 2004 Proceedings. ACM Press, 2004.]]
[6]
E. Ernst. Propagating class and method combination. In Proceedings ECOOP'99, LNCS 1628, pages 67--91. Springer-Verlag, 1999.]]
[7]
E. Ernst. Family polymorphism. In Proceedings ECOOP '01, LNCS 2072, pages 303--326. Springer, 2001.]]
[8]
J. Hannemann and G. Kiczales. Design pattern implementation in Java and AspectJ. In Proceedings OOPSLA '02. ACM SIGPLAN Notices 37(11), pages 161--173. ACM, 2002.]]
[9]
S. Herrmann. Object teams: Improving modularity for crosscutting collaborations. In Proceedings of Net.ObjectDays, Erfurt, Germany, 2002.]]
[10]
U. Hölzle. Integrating independently-developed components in object-oriented languages. In Proceedings ECOOP '93, LNCS 707, pages 36--56. Springer, 1993.]]
[11]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In Proceedings of ECOOP '01, 2001.]]
[12]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings ECOOP'97, LNCS 1241, pages 220--242. Springer, 1997.]]
[13]
K. Lieberherr, D. Lorenz, and M. Mezini. Programming with aspectual components. Technical Report NU-CCS-99-01, Northeastern University, March 1999.]]
[14]
K. Lieberherr, D. Lorenz, and J. Ovlinger. Aspectual collaborations -- combining modules and aspects. Journal of British Computer Society, 2003.]]
[15]
D. C. Luckham, J. L. Kenney, L. M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, 21(4):336--355, 1995.]]
[16]
O. L. Madsen and B. Moller-Pedersen. Virtual classes: A powerful mechanism in object-oriented programming. In Proceedings of OOPSLA '89. ACM SIGPLAN Notices 24(10), pages 397--406, 1989.]]
[17]
J. Magee and J. Kramer. Dynamic structure in software architecture. In Proceedings of the ACM SIGSOFT '96 Symposium on Foundations of Software Engineering (FSE), 1996.]]
[18]
M. Mattson, J. Bosch, and M. E. Fayad. Framework integration problems, causes, solutions. Communications of the ACM, 42(10):80--87, October 1999.]]
[19]
S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New age components for old fashioned Java. In Proceedings of OOPSLA '01, ACM SIGPLAN Notices 36(11), pages 211--222, 2001.]]
[20]
N. Medvidovic, P. Oreizy, and R. N. Taylor. Reuse of off-the-shelf components in C2-style architectures. In Proceedings of International Conference on Software Engineering (ICSE) '97, pages 692--700. IEEE Computer Society, 1997.]]
[21]
M. Mezini and K. Lieberherr. Adaptive plug-and-play components for evolutionary software development. In Proceedings OOPSLA '98. ACM SIGPLAN Notices 33(10), pages 97--116, 1998.]]
[22]
M. Mezini and K. Ostermann. Integrating independent components with on-demand remodularization. In Proceedings OOPSLA '02, ACM SIGPLAN Notices 37(11), pages 52--67, 2002.]]
[23]
M. Mezini and K. Ostermann. Conquering aspects with Caesar. In Proceedings Conference on Aspect-Oriented Software Development (AOSD) '03, pages 90--99. ACM, 2003.]]
[24]
M. Mezini, L. Seiter, and K. Lieberherr. Component integration with pluggable composite adapters. In M. Aksit, editor, Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer, 2001.]]
[25]
K. Ostermann. Dynamically composable collaborations with delegation layers. In Proceedings of ECOOP '02. LNCS 2374, pages 89--110. Springer, 2002.]]
[26]
A. Popovici, T. Gross, and G. Alonso. Dynamic weaving for aspect-oriented programming. In Proceedings AOSD '02, pages 141--147. ACM, 2002.]]
[27]
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. PrenticeHall, 1996.]]
[28]
Y. Smaragdakis and D. Batory. Implementing layered designs with mixin-layers. In Proceedings of ECOOP '98, LNCS 1445, pages 550--570, 1998.]]
[29]
C. Szyperski. Independently extensible systems -- software engineering potential and challenges. In Proceedings 19th Australian Computer Science Conference. Australian Computer Science Communications, 1996.]]
[30]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton. N degrees of separation: Multi-dimensional separation of concerns. In Proceedings International Conference on Software Engineering (ICSE) '99, pages 107--119. ACM Press, 1999.]]
[31]
E. Truyen, B. Vanhaute, W. Joosen, P. Verbaeten, and B. N. Joergensen. Dynamic and selective combination of extensions in component-based applications. In Proceedings of the International Conference on Software Engineering (ICSE) '01, pages 233--242. IEEE Computer Society, 2001.]]

Cited By

View all
  • (2023)Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus2023 ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS58315.2023.00035(319-330)Online publication date: 1-Oct-2023
  • (2023)ESCA: Embedded System Configuration AssistantProceedings of International Conference on Frontiers in Computing and Systems10.1007/978-981-99-2680-0_27(303-317)Online publication date: 1-Aug-2023
  • (2022)Customizable visualization of quality metrics for object-oriented variability implementationsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547073(43-54)Online publication date: 12-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 6
November 2004
275 pages
ISSN:0163-5948
DOI:10.1145/1041685
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
    October 2004
    282 pages
    ISBN:1581138555
    DOI:10.1145/1029894
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. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 October 2004
Published in SIGSOFT Volume 29, Issue 6

Check for updates

Author Tags

  1. aspect-oriented
  2. feature-oriented
  3. product lines
  4. variability management

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)4
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus2023 ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS58315.2023.00035(319-330)Online publication date: 1-Oct-2023
  • (2023)ESCA: Embedded System Configuration AssistantProceedings of International Conference on Frontiers in Computing and Systems10.1007/978-981-99-2680-0_27(303-317)Online publication date: 1-Aug-2023
  • (2022)Customizable visualization of quality metrics for object-oriented variability implementationsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547073(43-54)Online publication date: 12-Sep-2022
  • (2020)A framework for managing the imperfect modularity of variability implementationsJournal of Computer Languages10.1016/j.cola.2020.100998(100998)Online publication date: Sep-2020
  • (2020)Exploiting Anti-scenarios for the Non Realizability ProblemComputer Science – CACIC 201910.1007/978-3-030-48325-8_11(157-171)Online publication date: 14-May-2020
  • (2019)Using Structural and Parametric Polymorphism in the Creation of Digital TwinsAutomatic Documentation and Mathematical Linguistics10.3103/S000510551902005553:2(81-84)Online publication date: 1-Mar-2019
  • (2018)Fragment-oriented programming: a framework to design and implement software product line domain componentsDYNA10.15446/dyna.v85n207.7190885:207(74-83)Online publication date: 1-Oct-2018
  • (2018)What happened to my application? Helping end users comprehend evolution through variation managementInformation and Software Technology10.1016/j.infsof.2018.06.008103(55-74)Online publication date: Nov-2018
  • (2016)Mixing of Join Point Interfaces and Feature-Oriented Programming for Modular Software Product LineProceedings of the 9th EAI International Conference on Bio-inspired Information and Communications Technologies (formerly BIONETICS)10.4108/eai.3-12-2015.2262534(433-437)Online publication date: 24-May-2016
  • (2016)Mining static and dynamic crosscutting concernsJournal of Software: Evolution and Process10.1002/smr.176928:5(306-339)Online publication date: 1-May-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media