Font Size: a A A

A grounded theory approach to explore how programmers understand legacy code in order to make modifications

Posted on:2008-05-23Degree:D.ScType:Dissertation
University:The George Washington UniversityCandidate:Burgos, Carlos LFull Text:PDF
GTID:1448390005479296Subject:Computer Science
Abstract/Summary:
The purpose of this research is to investigate how programmers approach trying to understand legacy code in order to maintain and improve it. Because each programmer has a personal approach to this task, this research was performed using a qualitative approach using grounded theory. Data was gathered through interviews of programmers and data analysis was done on the interview transcripts using open, axial, and selective coding techniques. Twenty programmers were interviewed from February 2006 to September 2006. The interviews were terminated when conceptual saturation was reached. The transcripts of the interviews were transcribed and subjected to conceptual and linguistic analysis from February 2006 to October 2006.; The results of this research were used to develop a theoretical framework on how programmers understand legacy code. This framework integrates difficulties and methods, focusing on how a mental model and rational structure of the software are developed. Once the mental model is formed, more nuanced understanding is developed. During this process, a critical decision is made regarding whether it would be easier and faster to simply rewrite the code. There are many complex issues that are considered for that decision, to include size and complexity. A critical issue that permeates the framework is the pursuit of the structure rationale: the need to understand why software was written in a particular style, format, or functional structure. Environmental issues also strongly influence the framework. Knowledge sharing and collaboration support the mental model development, the decision process, and the structure rationale development.; The principle conclusion from this research is that organizations faced with the challenge of software update and maintenance would be well served by adopting knowledge sharing and collaborative structures in the enterprise. Other conclusions are that providing Computer Aided Software Engineering (CASE) tools are important and that even poor documentation is useful. Additionally, to improve a programmer's ability to understand code, managers should concentrate on training programmers to develop clearer and higher quality code. Follow-on research could empirically test whether the use of CASE tools does actually contribute to the efficiency of mental model development for the specific task of legacy code understanding and upkeep.
Keywords/Search Tags:Legacy code, Programmers, Approach, Mental model
Related items