The role of local program information in software maintenance productivity

James Snyder · 1994

The cost of modifying software programs is too high. One way to realize productivity improvements in software modification is to determine how program information is used by maintainers and how the information can be better organized. A principal difficulty in modifying software is identifying relationships among five dimensions of program information: (1) control flow; (2) state; (3) structure; (4) function, and (5) data flow. These dimensions define how each part of a program is connected with other parts of the program and with the environment in which the program is executed. It is often difficult to identify relationships among these dimensions because needed program information is de-localized--it is textually dispersed in the logic of the software. Consequently, software maintainers complete time consuming and error-prone logic traces to identify needed information. One way to determine the role that (a) the locality of program information and (b) program tracing play in the modification process is to provide maintainers with software representations that localize dimensions of program information and examine their modification behaviors. The thesis develops a representation of software designed to localize information about control flow, state, structure, and function. The thesis examines the behaviors of both novice and expert maintainers attempting to complete realistic modifications using both localized and delocalized sources of program information. Results indicate that novice maintainers experience significant difficulty using de-localized source of program information to complete modifications because they have insufficient ability to trace program logic. Novices' abilities to modify complex programs are dramatically improved when localized sources of program information are used. Results also suggest that expertise in program modification is largely due to an ability to trace de-localized program information to determine required change locations. Results further indicate that expert maintainers are capable of determining what parts of a program must be comprehended to complete a modification and can successfully avoid the task of comprehending many unrelated parts of the program. This result brings into question the common assumption that expertise in program modification is due to an ability to comprehend more of a program.

Read the paper · More papers on PaperTik