Skip to main content

SYDIT: Automated Software Repair and Extension

By Dr. Miryung Kim (Principal Investigator)
Collaborator: Dr. Kathryn S. McKinley (UT CS)

UT ECE Professor Miryung Kim's research focuses on automated software analysis algorithms and software development tools. As software systems become pervasive in our daily lives and every aspect of science and engineering, software reliability and extensibility are crucial to not only software development organizations but to our society and nation. Easing software application evolution is especially critical now because many applications will need to adapt to new chip-multiprocessor hardware. The automated analysis algorithms and software development tools she designs seek to substantially improve developer productivity and software correctness during evolution of large software systems.

In particular, the SYDIT project focuses on design and implementation of a novel automated code transformation, testing, and debugging framework that helps developers systematically extend, fix, and test their software. The SYDIT framework consists of three automated analysis algorithms. (1) A novel automatic edit-script generation approach learns abstract, context-aware program transformations from a single example edit. (2) A novel edit-script application algorithm automatically identifies code locations that require similar edits, and then transforms each location with a concrete edit that SYDIT customizes to the particular context. Programmers may also apply edit-scripts on-demand by specifying an edit location. (3) Dynamic and static analysis validates edits by selecting tests that exercise the transformed code and automated debugging analysis isolates failure-inducing modifications.

When using SYDIT, developers demonstrate edits in one method, and then the tool automatically generalizes the edit, identifies related code, and replicates the edit as appropriate. By applying learned edit scripts to similar contexts exhaustively, SYDIT prevents errors of omission and inconsistencies, and relieves the programmer from tedious error-prone hand editing. Furthermore, automated testing and debugging analysis will reduce validation cost. SYDIT prunes unnecessary tests, pinpoints failure-causes, and increases developer confidence in modified software.

For more information about Dr. Kim's research, please visit Software Evolution and Analysis Laboratory's web page: