ABSTRACT
The aim of a component-based approach to software is to allow the construction of a system by reusing and connecting together a number of existing components. To successfully reuse a component, alterations generally need to be made to it, particularly if the abstraction level is high. However, existing usage of a component means that it cannot be altered without affecting the systems that reuse it already. This leads to a dilemma which frustrates the goals of the compositional approach to reuse.To help resolve this dilemma, we introduce the resemblance construct, allowing a new component to be defined in terms of changes to a base component. This allows us to effectively alter a base component for reuse, without affecting the existing definition or any users of the component. We use an example to show how this and other constructs ameliorate the reuse problems of complex, possibly composite, components.
- D. Box. Essential COM. Addison-Wesley Professional, 1997. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and V. J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- D. Garlan, R. Monroe, and D. Wile. Acme: an architecture description interchange language. In CASCON '97: Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, page 7. IBM Press, 1997. Google ScholarDigital Library
- M. Goulo and F. Abreu. Bridging the gap between acme and uml 2.0 for cbd. In Specification and Verification of Component-Based Systems (SAVCBS 2003), pages -, 2003.Google Scholar
- J. Greenfield, K. Short, S. Cook, S. Kent, and J. Crupi. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley; 1st edition (August 16, 2004), 2004. Google ScholarDigital Library
- U. Holzle. Integrating independently-developed components in object-oriented languages. In Proceedings of the 7th European Conference on Object-Oriented Programming, pages 36--56. Springer-Verlag, 1993. Google ScholarDigital Library
- D. Jackson. Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11(2):256--290, 2002. Google ScholarDigital Library
- J. Kramer and J. Magee. The evolving philosophers problem - dynamic change management. Ieee Transactions on Software Engineering, 16(11):1293--1306, Nov. 1990. Google ScholarDigital Library
- J. Kramer, J. Magee, and M. Sloman. Configuration support for system description, construction and evolution. In Proceedings of the 5th international workshop on Software specification and design, pages 28--33, Pittsburgh, Pennsylvania, United States, 1989. ACM Press. Google ScholarDigital Library
- J. Magee, N. Dulay, S. Eisenbach, and J. Kramer. Specifying distributed software architectures. In W. Schafer and P. Botella, editors, Proc. 5th European Software Engineering Conf. (ESEC 95), volume 989, pages 137--153, Sitges, Spain, 1995. Springer-Verlag, Berlin. Google ScholarDigital Library
- N. Medvidovic, D. Rosenblum, and R. Taylor. A language and environment for architecture-based software development and evolution. In ICSE '99: Proceedings of the 21st international conference on Software engineering, pages 44--53, Los Alamitos, CA, USA, 1999. IEEE Computer Society Press. Google ScholarDigital Library
- OMG. Uml 2.0 specification. Website, http://www.omg.org/technology/documents/formal/uml.htm, 2005.Google Scholar
- R. Roshandel, A. Van Der Hoek, M. Mikic-Rakic, and N. Medvidovic. Mae---a system model and environment for managing architectural evolution. ACM Trans. Softw. Eng. Methodol. 13(2):240--276, 2004. Google ScholarDigital Library
- B. Selic, G. Gullekson, and P. Ward. Inheritance. In Real-Time Object-Oriented Modeling, volume First, pages 255--285. Wiley, 1994.Google ScholarDigital Library
- B. Selic, G. Gullekson, and P. Ward. Real-Time Object-Oriented Modeling. John Wiley & Sons, 1994. Google ScholarDigital Library
- A. Taivalsaari. On the notion of inheritance. ACM Comput. Surv., 28(3):438--479, 1996. Google ScholarDigital Library
- R. Taylor, N. Medvidovic, M. Anderson, E. Whithead Jr., and J. Robbins. A component- and message-based architectural style for gui software. In Proceedings of the 17th international conference on Software engineering, pages 295--304, Seattle, Washington, United States, 1995. ACM Press. Google ScholarDigital Library
- A. van der Hoek, M. Mikic-Rakic, R. Roshandel, and N. Medvidovic. Taming architectural evolution. In Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, pages 1--10, Vienna, Austria, 2001. ACM Press. Google ScholarDigital Library
- R. van Ommering. Mechanisms for handling diversity in a product population. In ISAW-4: The Fourth International Software Architecture Workshop, 2000.Google Scholar
- R. van Ommering. Building product populations with software components. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 255--265, New York, NY, USA, 2002. ACM Press. Google ScholarDigital Library
Index Terms
- Using resemblance to support component reuse and evolution
Recommendations
A catalogue of component connectors to support development with reuse
Component-based development is based on the idea of building software systems by composing pre-existing components. Connectors are the 'glue' for composing components. Therefore, it is important to consider connectors as first-class entities and provide ...
A component-based process for modelling and evolving legacy systems
Special Issue on Systems InteroperabilityThe potential benefits of evolving legacy systems to component-based system architectures are well documented. These include rapid, non-intrusive modernization through the use of commercial off-the-shelf (COTS) components and significantly reduced post-...
Model-Based Reuse Repositories - Concepts and Experience
CASE '95: Proceedings of the Seventh International Workshop on Computer-Aided Software EngineeringReuse repositories provide a wide range of assets that software engineers can use in developing systems to reduce the need for continual development of components that provide the same functionality. Most current reuse repositories are component-based; ...
Comments