Abstract
Superimposition is a composition technique that has been applied successfully in several areas of software development. In order to unify several languages and tools that rely on superimposition, we present an underlying language-independent model that is based on feature structure trees (FSTs). Furthermore, we offer a tool, called FSTComposer, that composes software components represented by FSTs. Currently, the tool supports the composition of components written in Java, Jak, XML, and plain text. Three nontrivial case studies demonstrate the practicality of our approach.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ossher, H., Harrison, W.: Combination of Inheritance Hierarchies. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 25–40. ACM Press, New York (1992)
Katz, S.: A Superimposition Control Construct for Distributed Systems. ACM Trans. Programming Languages and Systems 15, 337–356 (1993)
Bouge, L., Francez, N.: A Compositional Approach to Superimposition. In: Proc. Int’l. Symp. Principles of Programming Languages, pp. 240–249. ACM Press, New York (1988)
VanHilst, M., Notkin, D.: Using Role Components in Implement Collaboration-based Designs. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 359–369. ACM Press, New York (1996)
Reenskaug, T., Andersen, E., Berre, A., Hurlen, A., Landmark, A., Lehne, O., Nordhagen, E., Ness-Ulseth, E., Oftedal, G., Skaar, A., Stenslet, P.: OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems. Journal of Object-Oriented Programming 5, 27–41 (1992)
Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM Trans. Software Engineering and Methodology 11, 215–255 (2002)
Prehofer, C.: Feature-Oriented Programming: A Fresh Look at Objects. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)
Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Engineering 30, 355–371 (2004)
Harrison, W., Ossher, H.: Subject-Oriented Programming: A Critique of Pure Objects. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 411–428. ACM Press, New York (1993)
Tarr, P., Ossher, H., Harrison, W., Sutton Jr, S.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: Proc. Int’l. Conf. Software Engineering, pp. 107–119. IEEE CS Press, Los Alamitos (1999)
Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: Proc. Int’l. Conf. Aspect-Oriented Software Development, pp. 90–100. ACM Press, New York (2003)
McDirmid, S., Hsieh, W.: Aspect-Oriented Programming with Jiazzi. In: Proc. Int’l. Conf. Aspect-Oriented Software Development, pp. 70–79. ACM Press, New York (2003)
Bosch, J.: Super-Imposition: A Component Adaptation Technique. Information and Software Technology 41, 257–273 (1999)
Anfurrutia, F., DÃaz, O., Trujillo, S.: On Refining XML Artifacts. In: Baresi, L., Fraternali, P., Houben, G.-J. (eds.) ICWE 2007. LNCS, vol. 4607, pp. 473–478. Springer, Heidelberg (2007)
Clarke, S., Harrison, W., Ossher, H., Tarr, P.: Subject-Oriented Design: Towards Improved Alignment of Requirements, Design, and Code. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 325–339. ACM Press, New York (1999)
Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring Product Lines. In: Proc. Int’l. Conf. Generative Programming and Component Engineering, pp. 201–210. ACM Press, New York (2006)
Bravenboer, M., Visser, E.: Concrete Syntax for Objects: Domain-Specific Language Embedding and Assimilation Without Restrictions. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 365–383. ACM Press, New York (2004)
Czarnecki, K., Antkiewicz, M.: Mapping Features to Models: A Template Approach Based on Superimposed Variants. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 422–437. Springer, Heidelberg (2005)
Kamina, T., Tamai, T.: Lightweight Scalable Components. In: Proc. Int’l. Conf. Generative Programming and Component Engineering, pp. 145–154. ACM Press, New York (2007)
Apel, S., Lengauer, C., Batory, D., Möller, B., Kästner, C.: An Algebra for Feature-Oriented Software Development. Technical Report MIP-0706, Department of Informatics and Mathematics, University of Passau (2007)
Batory, D.: Jakarta Tool Suite (JTS). SIGSOFT Softw. Eng. Notes 25, 103–104 (2000)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: Proc. Int’l. Conf. Software Engineering, ACM Press, New York (2008)
Harrison, W., Ossher, H., Tarr, P.: General Composition of Software Artifacts. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 194–210. Springer, Heidelberg (2006)
Hutchins, D.: Eliminating Distinctions of Class: Using Prototypes to Model Virtual Classes. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 1–19. ACM Press, New York (2006)
McDirmid, S., Flatt, M., Hsieh, W.: Jiazzi: New-Age Components for Old-Fashioned Java. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 211–222. ACM Press, New York (2001)
Nystrom, N., Chong, S., Myers, A.: Scalable Extensibility via Nested Inheritance. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 99–115. ACM Press, New York (2004)
Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: Controlling the Scope of Change in Java. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 177–189. ACM Press, New York (2005)
Cardone, R., Lin, C.: Comparing Frameworks and Layered Refinement. In: Proc. Int’l. Conf. Software Engineering, pp. 285–294. IEEE Computer Society Press, Los Alamitos (2001)
Batory, D.: Feature Models, Grammars, and Propositional Formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005)
Lopez-Herrejon, R., Batory, D.: A Standard Problem for Evaluating Product-Line Methodologies. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 10–24. Springer, Heidelberg (2001)
Trujillo, S., Batory, D., DÃaz, O.: Feature Refactoring a Multi-Representation Program into a Product Line. In: Proc. Int’l. Conf. Generative Programming and Component Engineering, pp. 191–200. ACM Press, New York (2006)
Odersky, M., Zenger, M.: Scalable Component Abstractions. In: Proc. Int’l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 41–57. ACM Press, New York (2005)
Costanza, P., Hirschfeld, R., de Meuter, W.: Efficient Layer Activation for Switching Context-Dependent Behavior. In: Lightfoot, D.E., Szyperski, C.A. (eds.) JMLC 2006. LNCS, vol. 4228, pp. 84–103. Springer, Heidelberg (2006)
Apel, S., Leich, T., Rosenmüller, M., Saake, G.: FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 125–140. Springer, Heidelberg (2005)
Apel, S., Hutchins, D.: An Overview of the gDeep Calculus. Technical Report MIP-0712, Department of Informatics and Mathematics, University of Passau (2007)
Kiczales, G., Des Rivieres, J.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)
Masuhara, H., Kiczales, G.: Modeling Crosscutting in Aspect-Oriented Mechanisms. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 2–28. Springer, Heidelberg (2003)
Grechanik, M., Batory, D., Perry, D.: Design of Large-Scale Polylingual Systems. In: Proc. Int’l. Conf. Software Engineering, pp. 357–366. IEEE Computer Society Press, Los Alamitos (2004)
Bézivin, J.: On the Unification Power of Models. Software and Systems Modeling 4, 171–188 (2005)
Böcker, S., Bryant, D., Dress, A., Steel, M.: Algorithmic Aspects of Tree Amalgamation. J. Algorithms 37, 522–537 (2000)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Apel, S., Lengauer, C. (2008). Superimposition: A Language-Independent Approach to Software Composition. In: Pautasso, C., Tanter, É. (eds) Software Composition. SC 2008. Lecture Notes in Computer Science, vol 4954. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78789-1_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-78789-1_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78788-4
Online ISBN: 978-3-540-78789-1
eBook Packages: Computer ScienceComputer Science (R0)