Configuration support for system description, construction and evolution
IWSSD '89 Proceedings of the 5th international workshop on Software specification and design
The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Real-time object-oriented modeling
Real-time object-oriented modeling
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A component- and message-based architectural style for GUI software
Proceedings of the 17th international conference on Software engineering
ACM Computing Surveys (CSUR)
A language and environment for architecture-based software development and evolution
Proceedings of the 21st international conference on Software engineering
Taming architectural evolution
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Alloy: a lightweight object modelling notation
ACM Transactions on Software Engineering and Methodology (TOSEM)
Essential COM
Building product populations with software components
Proceedings of the 24th International Conference on Software Engineering
Specifying Distributed Software Architectures
Proceedings of the 5th European Software Engineering Conference
Integrating Independently-Developed Components in Object-Oriented Languages
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Acme: an architecture description interchange language
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
Mae---a system model and environment for managing architectural evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
Self-Managed Systems: an Architectural Challenge
FOSE '07 2007 Future of Software Engineering
Plan-directed architectural change for autonomous systems
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
From goals to components: a combined approach to self-management
Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems
A Case Study in Goal-Driven Architectural Adaptation
Software Engineering for Self-Adaptive Systems
An architecture-driven software mobility framework
Journal of Systems and Software
Evolve: tool support for architecture evolution
Proceedings of the 33rd International Conference on Software Engineering
Component and aspect-based service product line for pervasive systems
Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
An inheritance system for structural & behavioral reuse in component-based software programming
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Evolving delta-oriented software product line architectures
Proceedings of the 17th Monterey conference on Large-Scale Complex IT Systems: development, operation and management
Controller synthesis: from modelling to enactment
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
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.