Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Integrating independent components with on-demand remodularization

Published: 04 November 2002 Publication History

Abstract

This paper proposes language concepts that facilitate the separation of an application into independent reusable building blocks and the integration of pre-build generic software components into applications that have been developed by third party vendors. A key element of our approach are on-demand remodularizations, meaning that the abstractions and vocabulary of an existing code base are translated into the vocabulary understood by a set of components that are connected by a common collaboration interface. This general concept allows us to mix-and-match remodularizations and components on demand.

References

[1]
M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting object interactions using composition filters. In R. Guerraoui, O. Nierstrasz, and M. Riveill, editors, Object Based Distributed Programming. Springer, 1993.
[2]
L. M. Berlin. When objects collide: Experiences with reusing multiple class hierarchies. In Proceedings of OOPSLA '90, pages 181--193, 1990.
[3]
J. Bosch. Design patterns as language constructs. Journal of Object-Oriented Programming, 11(2):18--32, 1998.
[4]
G. Bracha and W. Cook. Mixin-based inheritance. In Proceedings OOPSLA/ECOOP'90, ACM SIGPLAN Notices 25(10), pages 303--311, 1990.
[5]
E. W. Dijkstra. A Discipline of Programming. Prentice Hall, 1976.
[6]
E. Ernst. Family polymorphism. In Proceedings of ECOOP '01, LNCS 2072, pages 303--326. Springer, 2001.
[7]
S. Herrmann and M. Mezini. PIROL: A case study for multidimensional separation of concerns in software engineering environments. In Proceedings of OOPSLA 2000. ACM SIGPLAN Notices, 2000.
[8]
U. Halzle. Integrating independently-developed components in object-oriented languages. In Proceedings ECOOP '93, LNCS, 1993.
[9]
I. M. Holland. Specifying reusable components using contracts. In Proceedings ECOOP '93, LNCS 615, pages 287--308, 1992.
[10]
Java Foundation Classes. http://java.sun.com/products/jfc/.
[11]
G. Kiczales. Aspect-oriented programming - the fun has just begun. In Workshop on New Visions for Software Design and Productivity: Research and Applications, Vanderbilt University, Nashville, Tennessee, December 13-14, 2001.
[12]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In Proceedings of ECOOP '01, 2001.
[13]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, Proceedings ECOOP'97, LNCS 1241, pages 220--242, Jyvaskyla, Finland, 1997. Springer-Verlag.
[14]
D. C. Luckham, J. L. Kenney, L. M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, 21(4):336--355, 1995.
[15]
O. L. Madsen and B. Muller-Pedersen. Virtual classes: A powerful mechanism in object oriented programming. In Proceedings of OOPSLA '89. ACM SIGPLAN, 1989.
[16]
J. Magee and J. Kramer. Dynamic structure in software architecture. In Proceedings of the ACM SIGSOFT'96 Symposium on Foundations of Software Engineering, 1996.
[17]
M. Mattson, J. Bosch, and M. E. Fayad. Framework integration problems, causes, solutions. Communications of the ACM, 42(10), October 1999.
[18]
S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New age components for old fashioned java. In Proceedings of OOPSLA '01, 2001.
[19]
N. Medvidovic, P. Oreizy, and R. N. Taylor. Reuse of off-the-shelf components in C2-style architectures. In Proceedings of the 1997 international conference on Software engineering, pages 692--700, 1997.
[20]
M. Mezini and K. Lieberherr. Adaptive plug-and-play components for evolutionary software development. In Proceedings OOPSLA '98, ACM SIGPLAN Notices, 1998.
[21]
M. Mezini, L. Seiter, and K. Lieberherr. Component integration with pluggable composite adapters. In M. Aksit, editor, Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer, 2001. University of Twente, The Netherlands.
[22]
H. Ossher and P. Tarr. On the need for on-demand remodularization. In ECOOP'2000 workshop on Aspects and Separation of Concerns, 2000.
[23]
K. Ostermann. Dynamically composable collaborations with delegation layers. In Proceedings of ECOOP '02, LNCS 2374, Springer, 2002.
[24]
C. H. Pedersen. Extending ordinary inheritance schemes to include generalization. In OOPSLA '89 Proceedings, 1989.
[25]
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. PrenticeHall, 1996.
[26]
Y. Smaragdakis and D. Batory. Implementing layered designs with mixin-layers. In Proceedings of ECOOP '98, pages 550--570, 1998.
[27]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton. N degrees of separation: Multi dimensional separation of concerns. In Proc. International Conference on Software Engineering (ICSE 99), 1999.
[28]
K. K. Thorup. Genericity in Java with virtual types. In Proceedings ECOOP '97, 1997.
[29]
E. Truyen, B. Vanhaute, W. Joosen, P. Verbaeten, and B. N. Joergensen. Dynamic and selective combination of extensions in component-based applications. In Proceedings of the 23rd International Conference on Software Engineering (ICSE'01), 2001.
[30]
M. VanHilst and D. Notkin. Using role components to implement collaboration-based design. In Proceedings OOPSLA 96, 1996.

Cited By

View all
  • (2019)Scalable component abstractionsACM SIGPLAN Notices10.1145/1103845.109481540:10(41-57)Online publication date: 27-Feb-2019
  • (2006)a(MDÆ)2: A Model Driven Approach to Multi-Dimensional Separation of Concerns with OCLElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2006.07.007163:1(19-29)Online publication date: Sep-2006
  • (2005)Scalable component abstractionsProceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications10.1145/1094811.1094815(41-57)Online publication date: 17-Oct-2005
  • Show More Cited By

Recommendations

Reviews

Kenneth I. Magel

Mezini and Ostermann propose some small changes in programming languages to allow programmers to separate environmental concerns from implementation. The paper proposes a “collaboration interface” as an extension of the traditional interface. The collaboration interface displays both the application programming interface (API), supported by modules that implement this collaboration interface, and the signatures of the methods that implementations depend on, which are being provided by other components. Collaboration interfaces have all the properties of the usual Java-style interface. In particular, they can participate in inheritance, and they can be nested. The authors present a detailed description of how their collaboration interfaces address some of the shortcomings of traditional programming interfaces. Collaboration interfaces support dynamic remodularization of existing components by separating those components from their clients with wrappers. The authors provide a wrapper recycling mechanism to reduce the large number of interface implementations that otherwise would be required to implement their proposals. The paper compares and contrasts the collaboration interface approach with some of the other approaches that have been proposed for fluid aspect-oriented programming. The comparison is detailed and accurate. Unfortunately, the authors do not compare their approach to that of Eiffel contracts, which seems to have many similarities. The paper is well written, and includes many examples. The approach is somewhat theoretical, however, and may not be accessible to many professional software developers. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 37, Issue 11
November 2002
385 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/583854
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '02: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
    November 2002
    396 pages
    ISBN:1581134711
    DOI:10.1145/582419
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 November 2002
Published in SIGPLAN Volume 37, Issue 11

Check for updates

Author Tags

  1. aspect-oriented programming
  2. collaboration-based decomposition
  3. on-demand remodularization

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Scalable component abstractionsACM SIGPLAN Notices10.1145/1103845.109481540:10(41-57)Online publication date: 27-Feb-2019
  • (2006)a(MDÆ)2: A Model Driven Approach to Multi-Dimensional Separation of Concerns with OCLElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2006.07.007163:1(19-29)Online publication date: Sep-2006
  • (2005)Scalable component abstractionsProceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications10.1145/1094811.1094815(41-57)Online publication date: 17-Oct-2005
  • (2004)Variability management with feature-oriented programming and aspectsACM SIGSOFT Software Engineering Notes10.1145/1041685.102991529:6(127-136)Online publication date: 31-Oct-2004
  • (2004)Variability management with feature-oriented programming and aspectsProceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering10.1145/1029894.1029915(127-136)Online publication date: 31-Oct-2004
  • (2004)Composable Encapsulation PoliciesECOOP 2004 – Object-Oriented Programming10.1007/978-3-540-24851-4_2(26-50)Online publication date: 2004
  • (2003)Traits: Composable Units of BehaviourECOOP 2003 – Object-Oriented Programming10.1007/978-3-540-45070-2_12(248-274)Online publication date: 2003
  • (2013)Language-Independent and Automated Software Composition: The FeatureHouse ExperienceIEEE Transactions on Software Engineering10.1109/TSE.2011.12039:1(63-79)Online publication date: Jan-2013
  • (2012)On the role of composition code properties on evolving programsProceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement10.1145/2372251.2372304(291-300)Online publication date: 19-Sep-2012
  • (2011)On-demand integration of product linesProceedings of the 2nd International Workshop on Product Line Approaches in Software Engineering10.1145/1985484.1985494(35-39)Online publication date: 22-May-2011
  • Show More Cited By

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