Back to results

Massachusetts Institute of Technology

Overcoming code rot in legacy software projects

Abstract

dc:description.abstract

Legacy software projects tend to be the most susceptible to code rot due to typical issues (e.g., outdated documentation) that affect software projects over the course of their lifetimes. While software engineering has matured over time to promote good practices (e.g, Test Driven Development) that prevent such issues, oftentimes developers will still have to inherit legacy code that is in the late stages of code rot. It is not always feasible to replace the inherited legacy code with a new project developed from scratch. Furthermore, inheriting legacy code often brings along additional new requirements that must be fulfilled. The translation software under the MOOCdb project is a representative case of the aforementioned scenario. The MOOCdb translation software aims to unify course data from different MOOC (Massive Open Online Course) providers into a single format named MOOCdb. However, the translation software lacked stability and up-to- date documentation. The author of this thesis was tasked not only with getting this software operational, but also implementing new functionality to respond to ongoing demands of collaborators from another institution. This thesis presents the application of the LCCA (Legacy Code Change Algorithm) on the legacy MOOCdb translation software project to solve its code rot and make it maintainable. The evaluation is based on the rate at which issues were resolved during different stages of LCCA, and an analysis of the key differences after the application of the LCCA. We see that the project saw much more frequent changes in response to discovered issues once the project was significantly refactored and restructured, and that the stability is greatly increased with the addition of a test harness to the core modules. Such changes enabled industry accepted good practices and alleviate the bulk of the code rot that prevented the project from moving forward.

Degree

thesis:*
Department dc:contributor.department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Grantor dc:publisher
Massachusetts Institute of Technology
Year dc:date.issued
2017

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Liew, Austin Jun-Yian
Advisor dc:contributor.advisor
  • Una-May O'reilly and Erik Hemberg.

Subjects

dc:subject × 1

Rights

dc:rights
Statement dc:rights
  • MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.
Language dc:language.iso
eng

Identifiers

dc:identifier.*
Handle dc:identifier.uri
http://hdl.handle.net/1721.1/113134
OAI identifier oai:identifier
oai:dspace.mit.edu:1721.1/113134

Chain of custody

source
Harvested from
MIT
Base URL
dspace.mit.edu/oai/request
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
citation

Liew, Austin Jun-Yian. Overcoming code rot in legacy software projects. Massachusetts Institute of Technology, 2017. http://hdl.handle.net/1721.1/113134