skip to main content
10.1109/ICSE.2009.5070523acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

FEATUREHOUSE: Language-independent, automated software composition

Published: 16 May 2009 Publication History

Abstract

Superimposition is a composition technique that has been applied successfully in many areas of software development. Although superimposition is a general-purpose concept, it has been (re)invented and implemented individually for various kinds of software artifacts. We unify languages and tools that rely on superimposition by using the language-independent model of feature structure trees (FSTs). On the basis of the FST model, we propose a general approach to the composition of software artifacts written in different languages, Furthermore, we offer a supporting framework and tool chain, called FEATUREHOUSE. We use attribute grammars to automate the integration of additional languages, in particular, we have integrated Java, C#, C, Haskell, JavaCC, and XML. Several case studies demonstrate the practicality and scalability of our approach and reveal insights into the properties a language must have in order to be ready for superimposition.

References

[1]
F. Anfurrutia, O. Díaz, and S. Trujillo. On Refining XML Artifacts. In Proc. Int'l. Conf. Web Engineering, volume 4607 of LNCS, pages 473-478. Springer-Verlag, 2007.
[2]
S. Apel and D. Hutchins. An Overview of the gDeep Calculus. Technical Report MIP-0712, University of Passau, 2007.
[3]
S. Apel, C. Kästner, and C. Lengauer. Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement. In Proc. Int'l. Conf. Generative Programming and Component Engineering, pages 101-112. ACM Press, 2008.
[4]
S. Apel, T. Leich, M. Rosenmüller, and G. Saake. FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In Proc. Int'l. Conf. Generative Programming and Component Engineering, volume 3676 of LNCS, pages 125-140. Springer-Verlag, 2005.
[5]
S. Apel and C. Lengauer. Superimposition: A Language-Independent Approach to Software Composition. In Proc. Int'l. Symp. Software Composition, volume 4954 of LNCS, pages 20-35. Springer-Verlag, 2008.
[6]
S. Apel, C. Lengauer, B. Möller, and C. Kästner. An Algebra for Features and Feature Composition. In Proc. Int'l. Conf. Algebraic Methodology and Software Technology, volume 5140 of LNCS, pages 36-50. Springer-Verlag, 2008.
[7]
D. Batory. Feature Models, Grammars, and Propositional Formulas. In Proc. Int'l. Software Product Line Conf., volume 3714 of LNCS, pages 7-20. Springer-Verlag, 2005.
[8]
D. Batory, J. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. Software Engineering, 30(6):355-371, 2004.
[9]
A. Bergel, S. Ducasse, and O. Nierstrasz. Classbox/J: Controlling the Scope of Change in Java. In Proc. Int'l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pages 177-189. ACM Press, 2005.
[10]
L. Bergmans and M. Aksit. Composing Crosscutting Concerns Using Composition Filters. Comm. ACM, 44(10):51- 57, 2001.
[11]
P. Bernstein, A. Halevy, and R. Pottinger. A Vision for Management of Complex Models. SIGMOD Rec., 29(4):55-63, 2000.
[12]
J. Bosch. Super-Imposition: A Component Adaptation Technique. Information and Software Technology, 41(5):257-273, 1999.
[13]
L. Bouge and N. Francez. A Compositional Approach to Superimposition. In Proc. Int'l. Symp. Principles of Programming Languages, pages 240-249. ACM Press, 1988.
[14]
S. Clarke, W. Harrison, H. Ossher, and P. Tarr. Subject-Oriented Design: Towards Improved Alignment of Requirements, Design, and Code. In Proc. Int'l. Conf. Object-Oriented Programming, Systems, Languages, and Applications , pages 325-339. ACM Press, 1999.
[15]
P. Costanza, R. Hirschfeld, and W. de Meuter. Efficient Layer Activation for Switching Context-Dependent Behavior. In Proc. Joint Modular Languages Conf., volume 4228 of LNCS, pages 84-103. Springer-Verlag, 2006.
[16]
K. Czarnecki and M. Antkiewicz. Mapping Features to Models: A Template Approach Based on Superimposed Variants. In Proc. Int'l. Conf. Generative Programming and Component Engineering, volume 3676 of LNCS, pages 422- 437. Springer-Verlag, 2005.
[17]
J. Dingel, Z. Diskin, and A. Zito. Understanding and Improving UML Package Merge. Software and Systems Modeling , 7(4):443-467, 2008.
[18]
G. Freeman, D. Batory, and G. Lavender. Lifting Transformational Models of Product Lines: A Case Study. In Proc. Int'l. Conf. Model Transformation, volume 5063 of LNCS, pages 16-30. Springer-Verlag, 2008.
[19]
W. Harrison, H. Ossher, and P. Tarr. General Composition of Software Artifacts. In Proc. Int'l. Symp. Software Composition , volume 4089 of LNCS, pages 194-210. Springer-Verlag, 2006.
[20]
D. Hutchins. Eliminating Distinctions of Class: Using Prototypes to Model Virtual Classes. In Proc. Int'l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pages 1-19. ACM Press, 2006.
[21]
T. Kamina and T. Tamai. Lightweight Scalable Components. In Proc. Int'l. Conf. Generative Programming and Component Engineering, pages 145-154. ACM Press, 2007.
[22]
C. Kästner and S. Apel. Type-checking Software Product Lines - A Formal Approach. In Proc. Int'l. Conf. Automated Software Engineering, pages 258-267. IEEE CS Press, 2008.
[23]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In Proc. Int'l. Conf. Software Engineering , pages 311-320. ACM Press, 2008.
[24]
C. Kästner, S. Apel, S. Trujillo, M. Kuhlemann, and D. Batory. Language-Independent Safe Decomposition of Legacy Applications into Features. Technical Report 02/2008, University of Magdeburg, 2008.
[25]
D. Kolovos, R. Paige, and F. Polack. Merging Models with the Epsilon Merging Language (EML). In Proc. Int'l. Conf. Model Driven Engineering Languages and Systems, volume 4199 of LNCS, pages 215-229. Springer-Verlag, 2006.
[26]
R. Lopez-Herrejon and D. Batory. A Standard Problem for Evaluating Product-Line Methodologies. In Proc. Int'l. Conf. Generative and Component-Based Software Engineering , volume 2186 of LNCS, pages 10-24. Springer-Verlag, 2001.
[27]
H. Masuhara and G. Kiczales. Modeling Crosscutting in Aspect-Oriented Mechanisms. In Proc. Europ. Conf. Object-Oriented Programming, volume 2743 of LNCS, pages 2-28. Springer-Verlag, 2003.
[28]
S. McDirmid and W. Hsieh. Aspect-Oriented Programming with Jiazzi. In Proc. Int'l. Conf. Aspect-Oriented Software Development, pages 70-79. ACM Press, 2003.
[29]
T. Mens. A State-of-the-Art Survey on Software Merging. IEEE Trans. Software Engineering, 28(5):449-462, 2002.
[30]
M. Mezini and K. Ostermann. Conquering Aspects with Caesar. In Proc. Int'l. Conf. Aspect-Oriented Software Development , pages 90-100. ACM Press, 2003.
[31]
N. Nystrom, S. Chong, and A. Myers. Scalable Extensibility via Nested Inheritance. In Proc. Int'l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pages 99-115. ACM Press, 2004.
[32]
M. Odersky and M. Zenger. Scalable Component Abstractions. In Proc. Int'l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pages 41-57. ACM Press, 2005.
[33]
H. Ossher and W. Harrison. Combination of Inheritance Hierarchies. In Proc. Int'l. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pages 25-40. ACM Press, 1992.
[34]
H. Ossher and P. Tarr. Hyper/J: Multi-Dimensional Separation of Concerns for Java. In Proc. Int'l. Conf. Software Engineering, pages 734-737. IEEE CS Press, 2000.
[35]
D. Parnas. Designing Software for Ease of Extension and Contraction. In Proc. Int'l. Conf. Software Engineering, pages 264-277. IEEE CS Press, 1978.
[36]
C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In Proc. Europ. Conf. Object-Oriented Programming , volume 1241 of LNCS, pages 419-443. Springer-Verlag, 1997.
[37]
M. Sihman and S. Katz. Superimpositions and Aspect-Oriented Programming. Computer J., 46(5):529-541, 2003.
[38]
Y. Smaragdakis and D. Batory. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM Trans. Software Engineering and Methodology, 11(2):215-255, 2002.
[39]
P. Tarr, H. Ossher, W. Harrison, and S. Sutton, Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In Proc. Int'l. Conf. Software Engineering, pages 107-119. IEEE CS Press, 1999.
[40]
D. Wile. Abstract Syntax from Concrete Syntax. In Proc. Int'l. Conf. Software Engineering, pages 472-480. ACM Press, 1997.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '09: Proceedings of the 31st International Conference on Software Engineering
May 2009
643 pages
ISBN:9781424434534

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 16 May 2009

Check for updates

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 15 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media