Skip to main content

Superimposition: A Language-Independent Approach to Software Composition

  • Conference paper
Book cover Software Composition (SC 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4954))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Katz, S.: A Superimposition Control Construct for Distributed Systems. ACM Trans. Programming Languages and Systems 15, 337–356 (1993)

    Article  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Engineering 30, 355–371 (2004)

    Article  Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Bosch, J.: Super-Imposition: A Component Adaptation Technique. Information and Software Technology 41, 257–273 (1999)

    Article  MathSciNet  Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Chapter  Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Chapter  Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. 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)

    Google Scholar 

  21. Batory, D.: Jakarta Tool Suite (JTS). SIGSOFT Softw. Eng. Notes 25, 103–104 (2000)

    Article  Google Scholar 

  22. Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: Proc. Int’l. Conf. Software Engineering, ACM Press, New York (2008)

    Google Scholar 

  23. 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)

    Chapter  Google Scholar 

  24. 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)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. 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)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Chapter  Google Scholar 

  30. 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)

    Chapter  Google Scholar 

  31. 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)

    Chapter  Google Scholar 

  32. 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)

    Google Scholar 

  33. 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)

    Chapter  Google Scholar 

  34. 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)

    Chapter  Google Scholar 

  35. Apel, S., Hutchins, D.: An Overview of the gDeep Calculus. Technical Report MIP-0712, Department of Informatics and Mathematics, University of Passau (2007)

    Google Scholar 

  36. Kiczales, G., Des Rivieres, J.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)

    Google Scholar 

  37. 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)

    Google Scholar 

  38. 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)

    Google Scholar 

  39. Bézivin, J.: On the Unification Power of Models. Software and Systems Modeling 4, 171–188 (2005)

    Article  Google Scholar 

  40. Böcker, S., Bryant, D., Dress, A., Steel, M.: Algorithmic Aspects of Tree Amalgamation. J. Algorithms 37, 522–537 (2000)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Cesare Pautasso Éric Tanter

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics