MIT Libraries logoDSpace@MIT

MIT
View Item 
  • DSpace@MIT Home
  • MIT Libraries
  • MIT Theses
  • Graduate Theses
  • View Item
  • DSpace@MIT Home
  • MIT Libraries
  • MIT Theses
  • Graduate Theses
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

Overcoming code rot in legacy software projects

Author(s)
Liew, Austin Jun-Yian
Thumbnail
DownloadFull printable version (925.2Kb)
Other Contributors
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Advisor
Una-May O'reilly and Erik Hemberg.
Terms of use
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. http://dspace.mit.edu/handle/1721.1/7582
Metadata
Show full item record
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.
Description
Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017.
 
This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.
 
Cataloged from student-submitted PDF version of thesis.
 
Includes bibliographical references (pages 65-66).
 
Date issued
2017
URI
http://hdl.handle.net/1721.1/113134
Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Publisher
Massachusetts Institute of Technology
Keywords
Electrical Engineering and Computer Science.

Collections
  • Graduate Theses

Browse

All of DSpaceCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

My Account

Login

Statistics

OA StatisticsStatistics by CountryStatistics by Department
MIT Libraries
PrivacyPermissionsAccessibilityContact us
MIT
Content created by the MIT Libraries, CC BY-NC unless otherwise noted. Notify us about copyright concerns.