A component composition model providing dynamic, flexible, and hierarchical composition of components for supporting software evolution

Component composition is one of the practical and effective approaches for supporting software evolution. However, existing component composition techniques need to be complemented by advanced features which address various sophisticated composition issues. In this paper, we introduce a set of features that supports and manages dynamic as well as flexible composition of components in a controlled way. We also propose a component composition model that supports these features. The proposed model enables dynamic, flexible, and hierarchical composition of components by providing and manipulating dedicated composition information, which in turn increases reusability of components and capabilities for supporting software evolution. To show the benefits of our model concretely, we provide a Hotel Reservation System case study. The experimental results show that our model supports software evolution effectively and provides efficient and modular structures, refactoring, and collaboration-level extensions as well.

[1]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[2]  Jens Palsberg,et al.  Evolution of object behavior using context relations , 1996, SIGSOFT '96.

[3]  Evans,et al.  Domain-driven design , 2003 .

[4]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[5]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

[6]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[7]  Wouter Joosen,et al.  Dynamic and selective combination of extensions in component-based applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[8]  Doo-Hwan Bae,et al.  Scalable Mobile Agents Supporting Dynamic Composition of Functionality , 2000, Agents Workshop on Infrastructure for Multi-Agent Systems.

[9]  Doo-Hwan Bae,et al.  Dimensions of Composition Models for Supporting Software Evolution , 2006, SC@ETAPS.

[10]  Israel Ben-Shaul,et al.  Dynamic Adaptation and Deployment of Distributed Components In Hadas , 2001, IEEE Trans. Software Eng..

[11]  Bradley R. Schmerl,et al.  Software Architecture-Based Adaptation for Pervasive Systems , 2002, ARCS.

[12]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[13]  Mira Mezini,et al.  Object-oriented composition untangled , 2001, OOPSLA '01.

[14]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[15]  Jim Dowling,et al.  The K-Component Architecture Meta-model for Self-Adaptive Software , 2001, Reflection.

[16]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[17]  Meir M. Lehman,et al.  Software's future: managing evolution , 1998, IEEE Software.

[18]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[19]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[20]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

[21]  Oscar Nierstrasz,et al.  Software Evolution as the Key to Productivity , 2002, RISSEF.

[22]  Lawrence Chung,et al.  Adaptable architecture generation for embedded systems , 2004, J. Syst. Softw..