|
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
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
V. Chakravarthy. Adaptive product line design using aspects and design patterns. Master's thesis, University of Utah, 2008.
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
| |
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
|
|
| |
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
|
|
| |
9
|
|
| |
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
|
Jan Hannemann , Gregor Kiczales, Design pattern implementation in Java and aspectJ, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
12
|
|
| |
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
|
|
| |
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
|
|
| |
19
|
Sony Ericsson. Symbian OS Docs&Tools. http://developer.sonyericsson.com/site/global/docstools/symbian/p_symbian.jsp.
|
 |
20
|
Kevin Sullivan , William G. Griswold , Yuanyuan Song , Yuanfang Cai , Macneil Shonle , Nishit Tewari , Hridesh Rajan, Information hiding interfaces for aspect-oriented design, Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, September 05-09, 2005, Lisbon, Portugal
|
| |
21
|
|
| |
22
|
|
 |
23
|
|
 |
24
|
|
 |
25
|
Charles Zhang , Hans-Arno Jacobsen, Resolving feature convolution in middleware systems, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
CITED BY
|
|
Marko Rosenmüller , Norbert Siegmund , Gunter Saake , Sven Apel, Code generation to support static and dynamic composition of software product lines, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
|
|