Back to results

University of Illinois at Urbana-Champaign

Less is sometimes more in the automation of software evolution tasks

Abstract

dc:description

Software rapidly evolves. A refactoring is a code change that preserves the behavior of the program. There has been much interest in automation to make refactoring more efficient and reliable. Although modern Integrated Development Environments (IDEs) provide many automated refactorings, studies suggest that programmers underuse automated refactorings. Based on our studies of programmers’ refactoring practices, we argue that usability problems are the common reasons of underusing automated refactorings. We introduce compositional refactoring, a new paradigm of automating refactorings. In this paradigm, the tool designer decomposes the large refactorings into a set of smaller, primitive changes and automates the primitive changes. Then, programmers compose the primitive changes to make larger changes. We have used the compositional paradigm to automate two classes of refactorings: the refactorings supported by modern IDEs and type qualifier inference. Type qualifiers augment a type system to check more properties of the software. Automated inference of type qualifiers can reduce the cost of using type qualifiers. The compositional paradigm enabled us to build the first universal type qualifier inference system. The system takes an existing type qualifier checker as an input and uses it to assist programmers in inserting type qualifiers. Our studies show that compositional refactoring is natural to programmers, gives programmers more control, and makes the automation more predictable and usable than the existing wizard-based and batch paradigms. The compositional paradigm achieves higher usability by automating less. Although this phenomenon may seem counterintuitive, it is not uncommon in automation design. The promising results of the compositional paradigm suggest that other software development automation technologies may also achieve a wider adoption by reducing the level of automation.

Degree

thesis:*
Name thesis:degree_name
Ph.D.
Level thesis:degree_level
Dissertation
Discipline thesis:degree_discipline
Computer Science
Grantor
University of Illinois at Urbana-Champaign
Year dc:date
2014

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Vakilian, Mohsen
Contributors dc:contributor
  • Johnson, Ralph E.
  • Adve, Vikram S.
  • Bailey, Brian P.
  • Ernst, Michael D.

Subjects

dc:subject × 14

Rights

dc:rights
Statement dc:rights
  • Copyright 2014 Mohsen Vakilian
Language dc:language
en

Identifiers

dc:identifier.*
Handle dc:identifier
http://hdl.handle.net/2142/50602
OAI identifier oai:identifier
oai:www.ideals.illinois.edu:2142/50602

Chain of custody

source
Harvested from
University of Illinois - Urbana-Champaign
Base URL
www.ideals.illinois.edu/oai-pmh
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
citation

Vakilian, Mohsen. Less is sometimes more in the automation of software evolution tasks. Dissertation thesis, University of Illinois at Urbana-Champaign, 2014. http://hdl.handle.net/2142/50602