Abstract

Program comprehension is a central task during software maintenance, evolution and reuse. Some estimates put the cost of understanding software at 50% of the maintenance effort. Clearly, understanding how programmers go about comprehending software they have not written is a worthwhile endeavor. It is a prerequisite to developing maintenance guidelines, documentation, and tools that improve on our current processes because they support cognitive processes. A variety of theories and models of program comprehension exist. For a discussion of these see (von Mayrhauser and Vans, 1995a; von Mayrhauser and Vans, 1995b). However, many of them are based on studying novices (e.g. undergraduate students) working with small programs (less than 200 lines of code) without documentation nor platform tools commonly used by professionals. Most of the work centers on issues of general understanding, rather than specific, goal-driven tasks like corrective maintenance, adaptation, enhancement, or code leverage. Thus, it is not clear to which degree these theories and models apply to professional maintenance tasks that routinely occur on large scale software. Recent work (von Mayrhauser and Vans, 1995c; von Mayrhauser and Vans, 1996a; von Mayrhauser and Vans, 1996b) explored these issues through an observational study. Eleven professional programmers were observed on actual maintenance tasks. The objective was theory building through observation. The aim was to cover as wide a variety of tasks, prior exposure to the code, and expertise (in language and application domain) as possible. Table 1 shows the distribution of participants along the three dimensions of subject classification. Task types are general understanding, corrective maintenance, adaptation, enhancement, and code leverage. Prior exposure to code (accumulated knowledge) is ranked on a 6 point scale from “never seen before” to “worked with code for several years”. Expertise is classified by language platform, domain knowledge, or both. Like other observational studies, this one faced three issues in determining the validity of generalizing its results:

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call