Evolving software-intensive systems from one consistent state to another is a challenging activity due to the intricate inter-dependencies among the components. In this paper, we propose a novel, semantic approach to incorporate software changes while automatically preserving system consistency. Systems are modeled as a network of reactive components whose behaviors are specified by communicating finite state machines extended with finite domain variables. Changes perform addition/ deletion/ replacement of one or more transitions in one or more components. Consistency of a system is modeled in terms of application-independent reachability properties over system global states. The proposed approach takes a change and a consistent system as inputs and automatically synthesizes a set of changes that can be consistently incorporated into the system. Each synthesized change represents a different, alternative evolved system that can be produced from the given system with the input chang...
Mahadevan Subramaniam, Harvey P. Siy