Date of Award

May 2014

Degree Type


Degree Name

Doctor of Philosophy



First Advisor

Ethan V. Munson

Committee Members

Ethan V. Munson, Brian Armstrong, John Boyland, Jacques Du Plessis, Tian Zhao


Build Maintenance, Build Systems, Release Engineering, Software Engineering, Software Maintenance


A build system produces a set of deliverables from a software project's source code and resources. "Build maintenance" refers to the changes made to the build system as a software project evolves over time. It has been shown to impose a significant overhead on overall development costs, in part because changes to source code often require parallel changes in the build system. However, little tool support exists to assist developers with build maintenance, particularly for those changes that must accompany changes to the source code. Formiga is a build maintenance and dependency discovery tool for the Ant build system. Formiga's primary uses are to automate build changes as the source code is updated, to identify the build dependencies within a software project, and to assist with build refactoring. Formiga is implemented as an IDE plugin, which allows it to recognize when project resources are updated and automatically update the build system accordingly. This implementation also allows it to leverage existing metaphors used by developers to maintain source code, thus making it easier to use. A controlled experiment was conducted to assess Formiga's ability to assist developers with build maintenance. Formiga was shown to signficantly reduce the time required to perform build maintenance while increasing the correctness with which it can be performed.