Open Access
Mental models and software maintenance
David C. Littman,Jeannine Pinto,Stanley Letovsky,Elliot Soloway +3 more
- pp 80-98
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
The state of the art in end-user software engineering
Amy J. Ko,Robin Abraham,Laura Beckwith,Alan F. Blackwell,Margaret Burnett,Martin Erwig,Christopher Scaffidi,Joseph Lawrance,Henry Lieberman,Brad A. Myers,Mary Beth Rosson,Gregg Rothermel,Mary Shaw,Susan Wiedenbeck +13 more
TL;DR: This article summarizes and classifies research on end-user software engineering activities, defining the area of End-User Software Engineering (EUSE) and related terminology, and addresses several crosscutting issues in the design of EUSE tools.
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
Michele Lanza,Stéphane Ducasse +1 more
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
Norman Wilde,Michael C. Scully +1 more
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
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.