1 / 5

Transformational Software Ev olution by Assertions

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.

koss
Download Presentation

Transformational Software Ev olution by Assertions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Transformational Software Evolution by Assertions Programming Technology Lab Tom Mens tommens@vub.ac.be http://prog.vub.ac.be/~tommens

  2. 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

  3. 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

  4. 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

  5. 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

More Related