|
ABSTRACT
Software product lines (SPLs) are used to create tailor-made software products by managing and composing reusable assets. Generating a software product from the assets of an SPL is possible statically before runtime or dynamically at load-time or runtime. Both approaches have benefits and drawbacks with respect to composition flexibility, performance, and resource consumption. Which type of composition is preferable should be decided by taking the application scenario into account. Current tools and languages, however, force a programmer to decide between static and dynamic composition during development. In this paper, we present an approach that employs code generation to support static and dynamic composition of features of a single code base. We offer an implementation on top of FeatureC++, an extension of the C++ programming language that supports software composition based on features. To simplify dynamic composition and to avoid creation of invalid products we furthermore provide means to (1) validate the correctness of a composition at runtime, (2) automatically instantiate SPLs in case of stand-alone applications, and (3) automatically apply interaction code of crosscutting concerns.
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
|
|
| |
2
|
S. Apel, T. Leich, M. Rosenmüller, and G. Saake. FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In Proceedings of the International Conference on Generative Programming and Component Engineering (GPCE), volume 3676 of Lecture Notes in Computer Science, pages 125--140. Springer Verlag, 2005.
|
| |
3
|
|
| |
4
|
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An Over view of CaesarJ. In Transactionson Aspect-Oriented Software Development I, volume 3880 of Lecture Notes in Computer Science, pages 135--173. Springer Verlag, 2006.
|
| |
5
|
AspectJ Team. The AspectJ Programming Guide. Version 1.5.4., Available from http://eclipse.org/aspectj, 2007.
|
| |
6
|
D. Batory. Feature Models, Grammars, and Propositional Formulas. In Proceedings of the International Software Product Line Conference (SPLC), volume 3714 of Lecture Notes in Computer Science, pages 7--20. Springer Verlag, 2005.
|
| |
7
|
|
| |
8
|
|
| |
9
|
Big Lever. Gears. http://www.biglever.com.
|
 |
10
|
Christoph Bockisch , Michael Haupt , Mira Mezini , Klaus Ostermann, Virtual machine support for dynamic join points, Proceedings of the 3rd international conference on Aspect-oriented software development, p.83-92, March 22-24, 2004, Lancaster, UK
[doi> 10.1145/976270.976282]
|
| |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
P. Costanza, R. Hirschfeld, and W. de Meuter. Efficient Layer Activation for Switching Context-Dependent Behavior. In Proceedings of the Joint Modular Languages Conference (JMLC), volume 4228 of Lecture Notes in Computer Science, pages 84--103. Springer Verlag, 2006.
|
| |
15
|
E. W. Dijkstra. On the Role of Scientific Thought. In Selected Writings on Computing: A Personal Perspective, pages 60--66. Springer Verlag, 1982.
|
| |
16
|
|
| |
17
|
|
| |
18
|
W. Gilani and O. Spinczyk. Dynamic Aspect Weaver Family for Family-based Adaptable Systems. In Proceedings of Net. Object Days, pages 94--109. Gesellschaftfür Informatik, 2005.
|
| |
19
|
|
| |
20
|
C. Hundt, K. Mehner, C. Pfeiffer, and D. Sokenou. Improving Alignment of Crosscutting Features with Code in Product Line Engineering. Journal of Object Technology (JOT) - Special Issue: TOOLS EUROPE 2007, 6(9):417--436, 2007.
|
 |
21
|
|
| |
22
|
K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, 1990.
|
| |
23
|
|
 |
24
|
|
| |
25
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer Verlag, 1997.
|
| |
26
|
M. Kuhlemann, S. Apel, and T. Leich. Streamlining Feature-Oriented Designs. In Proceedings of ETAPS International Symposium on Software Composition (SC), 2007.
|
| |
27
|
|
 |
28
|
|
| |
29
|
K. J. Lieberherr, D. Lorenz, and J. Ovlinger. Aspectual Collaborations - Combining Modules and Aspects. The Computer Journal, 46(5):542---565, 2003.
|
| |
30
|
|
 |
31
|
|
 |
32
|
O. L. Madsen , B. Moller-Pedersen, Virtual classes: a powerful mechanism in object-oriented programming, Conference proceedings on Object-oriented programming systems, languages and applications, p.397-406, October 02-06, 1989, New Orleans, Louisiana, United States
|
 |
33
|
Sean McDirmid , Matthew Flatt , Wilson C. Hsieh, Jiazzi: new-age components for old-fasioned Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.211-222, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
34
|
|
| |
35
|
|
| |
36
|
C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages 419--443. Springer Verlag, 1997.
|
| |
37
|
pure-systems GmbH. Technical White Paper: Variant Management with pure::variants, 2003-2004. http://www.pure-systems.com.
|
 |
38
|
Marko Rosenmüller , Norbert Siegmund , Horst Schirmeier , Julio Sincero , Sven Apel , Thomas Leich , Olaf Spinczyk , Gunter Saake, FAME-DBMS: tailor-made data management solutions for embedded systems, Proceedings of the 2008 EDBT workshop on Software engineering for tailor-made data management, March 29-29, 2008, Nantes, France
[doi> 10.1145/1385486.1385488]
|
| |
39
|
N. Siegmund, M. Kuhlemann, M. Rosenmüller, C. Kaestner, and G. Saake. Integrated Product Line Model for Semi-Automated Product Derivation Using Non-Functional Properties. In Workshop on Variability Modelling of Software-intensive Systems (VaMoS), pages 25--31, 2008.
|
 |
40
|
|
CITED BY
|
|
Norbert Siegmund , Mario Pukall , Michael Soffner , Veit Köppen , Gunter Saake, Using software product lines for runtime interoperability, Proceedings of the Workshop on AOP and Meta-Data for Software Evolution, p.1-7, July 07-07, 2009, Genova, Italy
|
|