Show simple item record

dc.contributor.advisorUna-May O'reilly and Erik Hemberg.en_US
dc.contributor.authorLiew, Austin Jun-Yianen_US
dc.contributor.otherMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.en_US
dc.date.accessioned2018-01-12T20:58:36Z
dc.date.available2018-01-12T20:58:36Z
dc.date.copyright2017en_US
dc.date.issued2017en_US
dc.identifier.urihttp://hdl.handle.net/1721.1/113134
dc.descriptionThesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017.en_US
dc.descriptionThis electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.en_US
dc.descriptionCataloged from student-submitted PDF version of thesis.en_US
dc.descriptionIncludes bibliographical references (pages 65-66).en_US
dc.description.abstractLegacy 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.en_US
dc.description.statementofresponsibilityby Austin Jun-Yian Liew.en_US
dc.format.extent66 pagesen_US
dc.language.isoengen_US
dc.publisherMassachusetts Institute of Technologyen_US
dc.rightsMIT 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.en_US
dc.rights.urihttp://dspace.mit.edu/handle/1721.1/7582en_US
dc.subjectElectrical Engineering and Computer Science.en_US
dc.titleOvercoming code rot in legacy software projectsen_US
dc.typeThesisen_US
dc.description.degreeM. Eng.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.identifier.oclc1017570606en_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record