skip to main content
10.1145/1353482.1353496acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Edicts: implementing features with flexible binding times

Published: 31 March 2008 Publication History

Abstract

In a software product line, the binding time of a feature is the time at which one decides to include or exclude a feature from a product. Typical binding site implementations are intended to support a single binding time only, e.g., compile time or run time. Sometimes, however, a product line must support features with variable binding times. For instance, a product line may need to include both embedded system configurations, in which features are selected and optimized early, and desktop configurations, in which client programs choose features on demand.
We present a new technique for implementing the binding sites of features that require flexible binding times. Our technique combines design patterns and aspect-oriented programming: a pattern encapsulates the variation point, and targeted aspects---called edicts---set the binding times of the pattern participants. We describe our approach and demonstrate its usefulness by creating a middleware product line capable of serving the desktop and embedded domains. Our product line is based on JacORB, a middleware platform with many dynamically configurable features. By using edicts to select features at compile time, we create a version of JacORB more suited to resource-constrained environments. By configuring four JacORB subsystems via edicts, we achieve a 32.2% reduction in code size. Our examples show that our technique effectively modularizes binding-time concerns, supporting both compile-time optimization and run-time flexibility as needed.

References

[1]
V. Chakravarthy. Adaptive product line design using aspects and design patterns. Master's thesis, University of Utah, 2008.
[2]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison Wesley, 2001.
[3]
C. Consel, L. Hornof, F. Noel, J. Noye, and N. Volansche. A uniform approach for compile-time and run-time specialization. In Selected Papers from the 1996 International Seminar on Partial Evaluation, pages 54--72, Dagstuhl Castle, Germany, Feb. 1996. Springer-Verlag, Berlin, Germany.
[4]
K. Czarnecki and U. W. Eisenecker. Generative Programming: Methods, Tools and Applications. Addison Wesley, 2000.
[5]
E. Dolstra, G. Florijn, and E. Visser. Timeline variability: The variability of binding time of variation points. In Proc. of the 2003 Workshop on Software Variability Management (SVM), pages 119--122, Gronigen, The Netherlands, Feb. 2003.
[6]
E. Eide, A. Reid, J. Regehr, and J. Lepreau. Static and dynamic structure in design patterns. In Proc. of the 24th International Conf. on Software Engineering (ICSE), pages 208--218, Orlando, FL, May 2002.
[7]
C. Fritsch, A. Lehn, and T. Strohm. Evaluating variability implementation mechanisms. In Proc. of the 2002 Workshop on Product Line Engineering: The Early Steps: Planning, Modeling, and Managing (PLEES), pages 59--64, Seattle, WA, Nov. 2002.
[8]
C. Gacek and M. Anastasopoulos. Implementing product line variabilities. In Proc. of the 2001 Symposium on Software Reusability (SSR), pages 109--117, Toronto, ON, 2001.
[9]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.
[10]
A. Garcia, C. Sant'Anna, E. Figueiredo, U. Kulesza, C. Lucena, and A. von Staa. Modularizing design patterns with aspects: A quantitative study. In Transactions on Aspect-Oriented Software Development, volume 3880 of LNCS, pages 36--74. Springer, 2006.
[11]
J. Hannemann and G. Kiczales. Design pattern implementation in Java and AspectJ. In Proc. of the 2002 ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 161--173, Seattle, WA, Nov. 2002.
[12]
I. Jacobson, M. Griss, and P. Jonsson. Software Reuse: Architecture, Process and, Organization for Business Success. Addison Wesley, 1997.
[13]
JacORB. http://www.jacorb.org/.
[14]
K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) feasibility study. Software Engineering Institute Technical Report CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA, 1990.
[15]
A. S. Krishna, A. S. Gokhale, D. C. Schmidt, V. P. Ranganath, and J. Hatcliff. Context-specific middleware specialization techniques for optimizing software product-line architectures. In Proc. of EuroSys 2006, pages 205--218, Leuven, Belgium, Apr. 2006.
[16]
E. Lafortune. ProGuard. http://proGuard.sourceforge.net/.
[17]
R. E. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating support for features in advanced modularization technologies. In Proc. of the 19th European Conf. on Object-Oriented Programming (ECOOP), pages 169--194, Glasgow, UK, July 2005.
[18]
U. P. Schultz, J. L. Lawall, and C. Consel. Specialization patterns. In Proc. of the 15th IEEE International Conf. on Automated Software Engineering (ASE), pages 197--206, Grenoble, France, Sept. 2000.
[19]
Sony Ericsson. Symbian OS Docs&Tools. http://developer.sonyericsson.com/site/global/docstools/symbian/p_symbian.jsp.
[20]
K. Sullivan, W. G. Griswold, Y. Song, Y. Cai, M. Shonle, N. Tewari, and H. Rajan. Information hiding interfaces for aspect-oriented design. In Proc. of the 10th European Software Engineering Conf. and 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE), pages 166--175, Lisbon, Portugal, Sept. 2005.
[21]
M. Svahnberg and J. Bosch. Issues concerning variability in software product lines. In Proc. of the Third International Workshop on Software Architectures for Product Families, pages 146--157, Las Palmas de Gran Canaria, Spain, Mar. 2000.
[22]
M. Svahnberg, J. van Gurp, and J. Bosch. A taxonomy of variability realization techniques. Software-Practice&Experience, 35(8):705--754, 2005.
[23]
R. van Ommering. Building product populations with software components. In Proc. of the 24th International Conf. on Software Engineering (ICSE), pages 255--265, Orlando, FL, May 2002.
[24]
C. Zhang, D. Gao, and H.-A. Jacobsen. Towards just-in-time middleware architectures. In Proc. of the 4th International Conf. on Aspect-Oriented Software Development (AOSD), pages 63--74, Chicago, IL, Mar. 2005.
[25]
C. Zhang and H.-A. Jacobsen. Resolving feature convolution in middleware systems. In Proc. of the 2004 ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 188--205, Vancouver, BC, Oct. 2004.

Cited By

View all
  • (2022)From feature models to feature toggles in practiceProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547009(234-244)Online publication date: 12-Sep-2022
  • (2020)A framework for automated multi-stage and multi-step product configuration of cyber-physical systemsSoftware and Systems Modeling10.1007/s10270-020-00803-8Online publication date: 13-Jun-2020
  • (2018)Flexible feature binding in software product linesAutomated Software Engineering10.1007/s10515-011-0080-518:2(163-197)Online publication date: 26-Dec-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '08: Proceedings of the 7th international conference on Aspect-oriented software development
March 2008
212 pages
ISBN:9781605580449
DOI:10.1145/1353482
  • Conference Chair:
  • Theo D'Hondt
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

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 March 2008

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

AOSD08
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)From feature models to feature toggles in practiceProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547009(234-244)Online publication date: 12-Sep-2022
  • (2020)A framework for automated multi-stage and multi-step product configuration of cyber-physical systemsSoftware and Systems Modeling10.1007/s10270-020-00803-8Online publication date: 13-Jun-2020
  • (2018)Flexible feature binding in software product linesAutomated Software Engineering10.1007/s10515-011-0080-518:2(163-197)Online publication date: 26-Dec-2018
  • (2018)A core calculus for dynamic delta-oriented programmingActa Informatica10.1007/s00236-017-0293-655:4(269-307)Online publication date: 1-Jun-2018
  • (2015)Assessing Idioms for a Flexible Feature Binding TimeThe Computer Journal10.1093/comjnl/bxv054(bxv054)Online publication date: 31-Jul-2015
  • (2014)Comparison with Other ApproachesEmergent Interfaces for Feature Modularization10.1007/978-3-319-11493-4_6(73-80)Online publication date: 14-Nov-2014
  • (2013)AspectJ-Based Idioms for Flexible Feature BindingProceedings of the 2013 VII Brazilian Symposium on Software Components, Architectures and Reuse10.1109/SBCARS.2013.17(59-68)Online publication date: 29-Sep-2013
  • (2012)Software Product Line Engineering for Developing Self-Adaptive SystemsProceedings of the 2012 IEEE 36th Annual Computer Software and Applications Conference10.1109/COMPSAC.2012.40(289-296)Online publication date: 16-Jul-2012
  • (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
  • (2011)A Generative Middleware Specialization Process for Distributed Real-Time and Embedded SystemsProceedings of the 2011 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing10.1109/ISORC.2011.32(197-204)Online publication date: 28-Mar-2011
  • 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