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 change while minimally modifying the existing behaviors. The proposed approach has been implemented in a prototype semantic change impact analysis system and has been applied to several examples including SDL programs from a commercial telecom switch.
|Original language||English (US)|
|Number of pages||10|
|Journal||Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR|
|State||Published - 2007|
|Event||CSMR 2007: 11th European Conference on Software Maintenance and Reengineering - Amsterdam, Netherlands|
Duration: Mar 21 2007 → Mar 23 2007
ASJC Scopus subject areas