50 likes | 67 Views
This paper explores the use of graph rewriting and assertions in software transformations for scalability and domain-independence. It presents an approach to formalize transformations and their dependencies, offering advantages in conflict detection and redundancy removal.
E N D
Transformational Software Evolution by Assertions Programming Technology Lab Tom Mens tommens@vub.ac.be http://prog.vub.ac.be/~tommens
Software Transformations • Can be used for • software evolution and upgrading • refactoring and restructuring • software merging • Are domain-independent • useful for implementation, design, analyis, software architecture • Can be formalised by • graph rewriting
Problem and Proposed Solution • Need for scalability • To deal with industrial large-size software systems • Approach • Express software transformations in terms of assertions only (i.e., pre-, postconditions and invariants) • Calculate dependencies in a transformation sequence based on these assertions • Treat transformation sequences as atomic transformations by calculating their assertions
Advantages • Uniform treatment of transformations and transformation sequences • e.g. to detect conflicts between parallel evolutions • Dependencies can be used • to remove redundancy in a transformation sequence • to factor out commonalities between parallel sequences • to detect independent subsequences that can be parallellised
Position Statement • Scalability and domain-independence are important in software evolution • Formal foundations should try to address both • Efficiency and usability of tools should not be sacrificed • Graphs + graph rewriting seems suitable as a uniform underlying formalism for software evolution