skip to main content
10.1145/2377816.2377823acmotherconferencesArticle/Chapter ViewAbstractPublication PagesfosdConference Proceedingsconference-collections
research-article

Supporting multiple feature binding strategies in NX

Published: 24 September 2012 Publication History

Abstract

Feature-oriented programming (FOP) toolkits restrict implementers of software product lines to certain implementation choices. One is left with the choices between, for example, class-level or object-level extensions and between static or dynamic feature bindings. These choices are typically made at an early development stage causing an unwanted lock-in. We present a feature-oriented development framework based on dynamic, object-oriented constructs for deferring such design decisions by piggybacking on first-class language entities (metaclasses, mixins). A framework proto-type is available for the scripting language NX. NX provides the required object-oriented language infrastructure: a reflective language model, metaclasses, multiple class-based inheritance, decorator mixins, and open entity declarations. We exemplify the approach based on a Graph Product Line.

References

[1]
S. Apel, D. S. Batory, and M. Rosenmüller. On the Structure of Crosscutting Concerns: Using Aspects or Collaborations? In Proc. Workshop Aspect-Oriented Product Line Eng. (AOPLE), 2006.
[2]
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An overview of CaesarJ. T. Aspect-Oriented Software Develop. I, pages 135--173, 2006.
[3]
K. Czarnecki and U. W. Eisenecker. Generative Programming --- Methods, Tools, and Applications. Addison-Wesley, 6th edition, 2000.
[4]
S. Ducasse, O. Nierstrasz, N. Schärli, R. Wuyts, and A. P. Black. Traits: A Mechanism for Fine-grained Reuse. ACM Trans. Program. Lang. Syst., 28(2):331--388, 2006.
[5]
R. E. Filman, T. Elrad, S. Clarke, and M. Akşit. Aspect-Oriented Programming is Quantification and Obliviousness. In Aspect-Oriented Software Development, chapter 2. Addison-Wesley, Oct 2004.
[6]
S. Günther and S. Sunkle. rbFeatures: Feature-oriented programming with Ruby. Sci. Comput. Program., 77(3):152--173, 2012.
[7]
S. O. Hallsteinsen, M. Hinchey, S. Park, and K. Schmid. Dynamic software product lines. IEEE Computer, 41(4):93--95, 2008.
[8]
H. Lieberman. Using Prototypical Objects to Implement Shared Behavior in Object-oriented Systems. SIGPLAN Not., 21(11):214--223, June 1986.
[9]
R. E. Lopez-Herrejon, D. S. Batory, and W. R. Cook. Evaluating Support for Features in Advanced Modularization Technologies. In Proc. 19th Europ. Conf. Object-Oriented Programming (ECOOP'05), volume 3586 of LNCS, pages 169--194. Springer, 2005.
[10]
G. Neumann. Dynamic Software Evolution in the Next Scripting Language. http://next-scripting.org/docs/2.0b3/doc/nx/nx-code-evolution/, last accessed on July 9th, 2012, July 2012.
[11]
G. Neumann and S. Sobernig. An Overview of the Next Scripting Toolkit. In Proc. 18th Annu. Tcl/Tk Conf. Tcl Association, 2011.
[12]
G. Neumann and U. Zdun. Enhancing Object-Based System Composition through Per-Object Mixins. In Proc. Asia-Pacific Software Eng. Conf. (APSEC'99), pages 522--530. IEEE Computer Society, 1999.
[13]
G. Neumann and U. Zdun. Filters as a Language Support for Design Patterns in Object-Oriented Scripting Languages. In Proc. 5th Conf. Object-Oriented Technologies and Syst. (COOTS'99). USENIX, 1999.
[14]
G. Neumann and U. Zdun. Towards the Usage of Dynamic Object Aggregation as a Foundation for Composition. In Proc. Symp. Applied Computing (SAC'00), pages 818--821. ACM, 2000.
[15]
H. Ossher and W. Harrison. Combination of Inheritance Hierarchies. In Conf. Proc. Object-oriented Programming Syst., Languages and Applicat. (OOPSLA'92), pages 25--40. ACM, 1992.
[16]
K. Ostermann. Dynamically Composable Collaborations with Delegation Layers. In Proc. 16th Europ. Conf. Object-Oriented Programming (ECOOP'02), pages 89--110. Springer, 2002.
[17]
S. Rank. A Reflective Architecture to Support Dynamic Software Evolution. PhD thesis, University of Durham, UK, 2002.
[18]
D. Riehle, W. Siberski, D. Bäumer, D. Megert, and H. Züllighoven. Serializer. In Pattern Languages of Program Design 3, pages 293--312. Addison-Wesley, 1998.
[19]
M. Rosenmüller, N. Siegmund, S. Apel, and G. Saake. Flexible feature binding in software product lines. Autom. Softw. Eng., 18:163--197, 2011.
[20]
M. Rosenmüller, N. Siegmund, G. Saake, and S. Apel. Code generation to support static and dynamic composition of software product lines. In Proc. 7th Int. Conf. Generative Programming and Component Eng. (GPCE'08), pages 3--12. ACM, 2008.
[21]
I. Schaefer, L. Bettini, and F. Damiani. Delta-oriented Programming of Software Product Lines. In Proc. 10th Int. Conf. Aspect-oriented Software Develop., pages 43--56. ACM, 2011.
[22]
S. Schulze, S. Apel, and C. Kästner. Code Clones in Feature-Oriented Software Product Lines. In Proc. 9th Int. Conf. Generative Programming and Component Eng. (GPCE'10), pages 103--112. ACM, 2010.
[23]
Y. Smaragdakis and D. Batory. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM T. Softw. Eng. Meth., 11(2):215--255, 2002.
[24]
Y. Smaragdakis and D. S. Batory. Implementing layered designs with mixin layers. In Proc. 12th Europ. Conf. Object-Oriented Programming (ECOOP'98), pages 550--570. Springer, 1998.
[25]
U. Zdun, M. Strembeck, and G. Neumann. Object-based and class-based composition of transitive mixins. Inform. Software Techn., 49(8):871--891, 2007.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
FOSD '12: Proceedings of the 4th International Workshop on Feature-Oriented Software Development
September 2012
81 pages
ISBN:9781450313094
DOI:10.1145/2377816
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]

Sponsors

  • Metop GmbH

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 September 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic feature binding
  2. dynamic software product lines
  3. feature-oriented programming
  4. static feature binding

Qualifiers

  • Research-article

Acceptance Rates

Overall Acceptance Rate 17 of 28 submissions, 61%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2020)Variable Language ModelsVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_3(73-136)Online publication date: 10-Jul-2020
  • (2020)Variability Support in DSL DevelopmentVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_2(33-72)Online publication date: 10-Jul-2020
  • (2020)DSL as Variable SoftwareVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_1(1-31)Online publication date: 10-Jul-2020
  • (2014)Towards assessing the complexity of object migration in dynamic, feature-oriented software product linesProceedings of the 8th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/2556624.2556645(1-8)Online publication date: 22-Jan-2014

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