scispace - formally typeset
Open Access

Mental models and software maintenance

Reads0
Chats0
TLDR
In this article, the authors analyzed vidoetaped protocols of experienced programmers as they enhanced a personnel data base program and found that there is a strong relationship between using a systematic approach to acquire knowledge about the program and modifying the program successfully.
Abstract
Understanding how a program is constructed and how it functions are significant components of the task of maintaining or enhancing a computer program. We have analyzed vidoetaped protocols of experienced programmers as they enhanced a personnel data base program. Our analysis suggests that there are two strategies for program understanding, the systematic strategy and the as-needed strategy. The programmer using the systematic strategy traces data flow through the program in order to understand global program behavior. The programmer using the as-needed strategy focuses on local program behavior in order to localize study of the program. Our empirical data show that there is a strong relationship between using a systematic approach to acquire knowledge about the program and modifying the program successfully. Programmers who used the systematic approach to study the program constructed successful modifications; programmers who used the as-needed approach failed to construct successful modifications. Programmers who used the systematic strategy gathered knowledge about the causal interactions of the program's functional components . Programmers who used the as-needed strategy did not gather such causal knowledge and therefore failed to detect interactions among components of the program.

read more

Citations
More filters
Journal ArticleDOI

An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks

TL;DR: A study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes, suggesting a new model of program understanding grounded in theories of information foraging.
Journal ArticleDOI

Learning to program = learning to construct mechanisms and explanations

TL;DR: Teaching effective problem-solving skills in the context of teaching programming necessitates a revised curriculum for introductory computer programming courses.
Journal ArticleDOI

Polymetric views - a lightweight visual approach to reverse engineering

TL;DR: The concept of a polymetric view is presented, a lightweight software visualization technique enriched with software metrics information that helps to understand the structure and detect problems of a software system in the initial phases of a reverse engineering process.
Journal ArticleDOI

Software reconnaissance: mapping program features to code

TL;DR: The method seems to be effective in identifying a small number of code components that are unique to a particular program feature, though it may not find all components that make up the feature's delocalized plan.
References
More filters
Journal ArticleDOI

Design and code inspections to reduce errors in program development

Michael Fagan
- 01 Sep 1976 - 
TL;DR: It is shown that by using inspection results, a mechanism for initial error reduction followed by ever-improving error rates can be achieved.
Proceedings Article

The cognitive connection: Software maintenance and documentation

TL;DR: While the experts seemed to posses adequate programming knowledge, their actual code patches violated a basic principle of program structure, and this failure by the programmers was attributed to ineffective program documentation.