Abstract
The optional feature problem in feature-oriented programming is that implementing the interaction among features is difficult. Either of the modules for the interacting features cannot contain the code for the interaction if those features are optional. A modular approach for implementing such interaction is separating it into a module called derivative. However, as the number of derivatives increases, it does not scale. This paper shows how derivatives for combinations of features from each group are efficiently implemented. A group of features are implemented by using the inheritance of feature modules. A super feature module works as a common interface to members of that group. It thereby allows to describe a generic derivative applicable for the groups. This paper also presents a feature-oriented programming language, FeatureGluonJ, which provides language constructs for this approach.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Aksit, M., Rensink, A., Staijen, T.: A graph-transformation-based simulation approach for analysing aspect interference on shared join points. In: AOSD, pp. 39–50. ACM, New York (2009)
Apel, S., Leich, T., Saake, G.: Aspect refinement and bounding quantification in incremental designs. In: APSEC, pp. 796–804. IEEE Computer Society, Los Alamitos (2005)
Apel, S., Lengauer, C., Möller, B., Kästner, C.: An algebraic foundation for automatic feature-based program synthesis. Sci. Comput. Program. 75(11), 1022–1047 (2010)
Aracic, I., Gasiunas, V., Awasthi, P., Ostermann, K.: An overview of CaesarJ. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355–371 (2004)
Batory, D., Höfner, P., Kim, J.: Feature interactions, products, and composition. In: GPCE, pp. 13–22. ACM, New York (2011)
Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Methodol. 1(4), 355–398 (1992)
Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: controlling the scope of change in java. In: OOPSLA, pp. 177–189. ACM, New York (2005)
Bowen, T.F., Dworack, F.S., Chow, C.H., Griffeth, N., Herman, G.E., Lin, Y.-J.: The feature interaction problem in telecommunications systems. In: SETSS, pp. 59–62 (1989)
Chiba, S., Igarashi, A., Zakirov, S.: Mostly modular compilation of crosscutting concerns by contextual predicate dispatch. In: OOPSLA, pp. 539–554. ACM (2010)
Bateni, M.: Family polymorphism. In: Lee, S.H. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 303–326. Springer, Heidelberg (2001)
Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., Filho, F.C., Dantas, F.: Evolving software product lines with aspects: an empirical study on design stability. In: ICSE, pp. 261–270. ACM, New York (2008)
Gasiunas, V., Mezini, M., Ostermann, K.: Dependent classes. In: OOPSLA, pp. 133–152. ACM, New York (2007)
Herrmann, S.: Object teams: Improving modularity for crosscutting collaborations. In: Aksit, M., Awasthi, P., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 248–264. Springer, Heidelberg (2003)
Herrmann, S., Hundt, C., Mosconi, M.: OT/J language definition v1.3 (May 2011), http://www.objectteams.org/def/1.3/s9.html#s9.3
Hundt, C., Mehner, K., Preiffer, C., Sokenou, D.: Improving alignment of crosscutting features with code in product line engineering. Journal of Object Technology 6(9), 417–436 (2007)
Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Tech. Rep. CMU/SE-90-TR-021, Carnegie Mellon University (1990)
Kästner, C., Apel, S., Batory, D.: A case study implementing features using AspectJ. In: SPLC, pp. 223–232. IEEE Computer Society, Los Alamitos (2007)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: ICSE, pp. 311–320. ACM, New York (2008)
Kästner, C., Apel, S., Ostermann, K.: The road to feature modularity? In: SPLC, vol. 2, pp. 1–5. ACM, New York (2011)
Kästner, C., Apel, S., Rahman, S.S.u., Rosenmüller, M., Batory, D., Saake, G.: On the impact of the optional feature problem: analysis and case studies. In: SPLC, pp. 181–190. Carnegie Mellon University (2009)
Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: ICSE, pp. 112–121. ACM, New York (2006)
Madsen, O.L., Moller-Pedersen, B.: Virtual classes: a powerful mechanism in object-oriented programming. In: OOPSLA, pp. 397–406. ACM, New York (1989)
Mezini, M., Ostermann, K.: Conquering aspects with caesar. In: AOSD, pp. 90–99. ACM, New York (2003)
Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: FSE, pp. 127–136. ACM, New York (2004)
Prehofer, C.: Feature-oriented programming: A fresh look at objects. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)
Saito, C., Igarashi, A., Viroli, M.: Lightweight family polymorphism. Journal of Functional Programming 18, 285–331 (2008)
Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010)
Schulze, S., Apel, S., Kästner, C.: Code clones in feature-oriented software product lines. In: GPCE, pp. 103–112. ACM, New York (2010)
Young, T., Murphy, G.: Using AspectJ to build a product line for mobile devices. AOSD Demo (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 IFIP International Federation for Information Processing
About this paper
Cite this paper
Takeyama, F., Chiba, S. (2013). Implementing Feature Interactions with Generic Feature Modules. In: Binder, W., Bodden, E., Löwe, W. (eds) Software Composition. SC 2013. Lecture Notes in Computer Science, vol 8088. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39614-4_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-39614-4_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39613-7
Online ISBN: 978-3-642-39614-4
eBook Packages: Computer ScienceComputer Science (R0)