Skip to Main Content
Component-based software engineering (CBSE) has emerged as a key technology for developing and maintaining large scaled software systems in an outsourcing environment. These software components tend to be developed concurrently in different locations with asynchronous lifecycle. In practice, new versions of software components often change their interfaces and so require applications that use the components to be updated. To explore solution spaces for component-based software update and evolution, we have developed a formalism that is capable of modeling the process of software update in a component-based, concurrent development environment. The formalism can be used to determine the soundness of a component-based software update process, i.e., to make sure the components in a component-based software are updated in the correct order. With a sound update strategy, the formalism ensures the compatibility among components at the end of an update process in a component-based system. Our formal model provides the foundation for the implementation of a component-based software updating tool that helps developers to keep track of the evolution and updating process in a component-based software system.