Results 11 - 20
of
117
Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance
- IEEE Transactions on Software Engineering
, 2001
"... Using design patterns is claimed to improve programmer productivity and software quality. Such improvements may manifest both at construction time (in faster and better program design) and at maintenance time (in faster and more accurate program comprehension). This paper focuses on the maintenance ..."
Abstract
-
Cited by 34 (5 self)
- Add to MetaCart
Using design patterns is claimed to improve programmer productivity and software quality. Such improvements may manifest both at construction time (in faster and better program design) and at maintenance time (in faster and more accurate program comprehension). This paper focuses on the maintenance context and reports on experimental tests of the following question: Does it help the maintainer if the design patterns in the program code are documented explicitly (using source code comments), compared to a well-commented pro- gram without explicit reference to design patterns? Subjects performed maintenance tasks on two programs ranging from 360 to 560 LOC including comments. Both programs contained design patterns. The controlled variable was whether the use of de- sign patterns was documented explicitly or not. The experiments thus tested whether pattern com- ment lines (PCL) help during maintenance if pat- terns are relevant and sufficient program comments are already present. It turns out that this question is a challenge for the experimental methodology: a setup leading to relevant results is quite difficult to find. We discuss these issues in detail and suggest a general approach to such situations.
Towards understanding programs through wear-based filtering
- In Proceedings of ACM 2005 Symposium on Software Visualization
, 2005
"... Large software projects often require a programmer to make changes to unfamiliar source code. This paper presents the results of a formative observational study of seven professional programmers who use a conventional development environment to update an unfamiliar implementation of a commonly known ..."
Abstract
-
Cited by 30 (3 self)
- Add to MetaCart
Large software projects often require a programmer to make changes to unfamiliar source code. This paper presents the results of a formative observational study of seven professional programmers who use a conventional development environment to update an unfamiliar implementation of a commonly known video game. We describe several usability problems they experience, including keeping oriented in the program’s source text, maintaining the number and layout of open text documents and relying heavily on textual search for navigation. To reduce the cost of transferring knowledge about the program among developers, we propose the idea of wear-based filtering, a combination of computational wear and social filtering. The development environment collects interaction information, as with computational wear, and uses that information to direct the attention of subsequent users, as with social filtering. We present sketches of new visualizations that use wear-based filtering and demonstrate the feasibility of our approach with data drawn from our study.
Comprehension Processes During Large Scale Maintenance
, 1994
"... We present results of observing professional maintenance engineers working with industrial code at actual maintenance tasks. Protocol analysis is used to explore how code understanding might differ for small versus large scale code. The experiment confirms that cognition processes work at all levels ..."
Abstract
-
Cited by 25 (7 self)
- Add to MetaCart
We present results of observing professional maintenance engineers working with industrial code at actual maintenance tasks. Protocol analysis is used to explore how code understanding might differ for small versus large scale code. The experiment confirms that cognition processes work at all levels of abstraction simultaneously as programmers build a mental model of the code. Cognition processes emerged at three levels of aggregation representing lower and higher level strategies of understanding. They show differences in what triggers them and how they achieve their goals. Results are useful for defining core competencies which maintenance engineers need for their work and for documentation and development standards. 1 Introduction During maintenance and software evolution, software engineers must understand code they haven't written for a variety of tasks. Existing cognition models [1, 4, 5, 6, 7, 10] emphasize cognition by what the program does (a functional approach) and how th...
Browsing and Searching Software Architectures
- In Proceedings of International Conference on Software Maintenance
, 1999
"... Software architecture visualization tools tend to support browsing, that is, exploration by following concepts. If architectural diagrams are to be used during daily software maintenance tasks, these tools also need to support specific fact-finding through searching. Searching is essential to progra ..."
Abstract
-
Cited by 24 (3 self)
- Add to MetaCart
Software architecture visualization tools tend to support browsing, that is, exploration by following concepts. If architectural diagrams are to be used during daily software maintenance tasks, these tools also need to support specific fact-finding through searching. Searching is essential to program comprehension and hypothesis testing. Furthermore, searching allows users to reverse the abstractions in architectural diagrams and access facts in the underlying program code. In this paper, we consider the problem of searching and browsing software architectures using perspectives from information retrieval and program comprehension. After analyzing our own user studies and results from the literature, we propose a solution: the Searchable Bookshelf, an architecture visualization tool that supports both navigation styles. We also present a prototype of our tool which is an extension of an existing architecture visualization tool.
From Code Understanding Needs to Reverse Engineering Tool Capabilities
- In Proceedings of the 6th International Workshop on Computer-Aided Software Engineering
, 1993
"... Maintenance frequently consumes more resources than new software development. A major portion of the maintenance effort is spent on the reverse engineering activity of understanding existing software. If we can learn more about how programmers understand code successfully, we can build better tools ..."
Abstract
-
Cited by 24 (4 self)
- Add to MetaCart
Maintenance frequently consumes more resources than new software development. A major portion of the maintenance effort is spent on the reverse engineering activity of understanding existing software. If we can learn more about how programmers understand code successfully, we can build better tools to support the understanding process. This contributes to higher quality and improved efficiency of maintenance tasks. We present an integrated code comprehension model and our experiences with it in an industrial setting. We use audio-taped, think-aloud reports to investigate how well our integrated code comprehension model works during industrial maintenance activities ranging from code fixes to enhancements, code leverage, and reuse. We analyze the tapes for information needs during maintenance activities and derive tool capabilities accordingly. 1 Introduction Maintenance typically requires more resources than new software development. A significant portion of the maintenance effort in...
A multi-perspective software visualization environment
- In Proc. of CASCON’2000
, 2000
"... This paper describes a multi-perspective software visualization environment, SHriMP, which combines single view and multi-view techniques to support software exploration at both the architectural and source code levels. SHriMP provides three different views: a primary nested view and two subsidiary ..."
Abstract
-
Cited by 23 (4 self)
- Add to MetaCart
This paper describes a multi-perspective software visualization environment, SHriMP, which combines single view and multi-view techniques to support software exploration at both the architectural and source code levels. SHriMP provides three different views: a primary nested view and two subsidiary views. The primary nested view employs fisheye views of nested graphs, provides contextual cues, and supports general exploration activities. In SHriMP, subsidiary views exist as a searching tool and a relation tracer. These views complement each other and allow programmers to examine a software system from multiple perspectives.
What Users Need in Parallel Tool Support: Survey Results and Analysis
, 1994
"... Considerable effort and expense have been devoted to developing tools that support parallel programming. Recent evidence suggests that users do not find the current generation of tools useful for their program development needs, but offers no guidance on how that problem might be addressed. This pap ..."
Abstract
-
Cited by 22 (5 self)
- Add to MetaCart
Considerable effort and expense have been devoted to developing tools that support parallel programming. Recent evidence suggests that users do not find the current generation of tools useful for their program development needs, but offers no guidance on how that problem might be addressed. This paper reports the results of a survey applied to a significant (N=448) cross-section of the parallel user community at Supercomputing '93. The responses establish a number of general patterns in program development and tool use among scientists, engineers, and computer scientists. Our analysis suggests several likely directions for future tool development efforts.
Program understanding behavior during corrective maintenance of large-scale software
- Software,” Int’l J. Human-Computer Studies
, 1999
"... maintenance of large-scale software ..."
Mental representations of Programs by Novices and Experts
- Proceedings of the Conference on Human Factors in Computing Systems, INTERACT'93 and CHI'93, The Netherlands
, 1993
"... This paper presents five abstract characteristics of the mental representation of computer programs hierarchical structure, explicit mapping of code to goals, foundation on recognition of recurring patterns, connection of knowledge, and grounding in the program text. An experiment is reported in whi ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
This paper presents five abstract characteristics of the mental representation of computer programs hierarchical structure, explicit mapping of code to goals, foundation on recognition of recurring patterns, connection of knowledge, and grounding in the program text. An experiment is reported in which expert and novice programmers studied a Pascal program for comprehension and then answered a series of questions about it designed to show these characteristics if they existed in the mental characteristics was found in the mental representations of expert programmers. Novices ’ representations generally lacked the characteristics, but there was evidence that they had the beginnings, although poorly developed, of such characteristics.
Instructions and Descriptions: some cognitive aspects of programming and similar activities
, 2000
"... The Cognitive Dimensions framework outlined here is generalised broad-brush approach to usability evaluation for all types of information artifact, from programming languages through interactive systems to domestic devices. It also has promise of interfacing successfully with organisational and soci ..."
Abstract
-
Cited by 20 (0 self)
- Add to MetaCart
The Cognitive Dimensions framework outlined here is generalised broad-brush approach to usability evaluation for all types of information artifact, from programming languages through interactive systems to domestic devices. It also has promise of interfacing successfully with organisational and sociological analyses. Keywords Usability evaluation, cognitive dimensions, notations, telephone, Prolog, spreadsheet, cognitive psychology. 1. INTRODUCTION We are living through a technological revolution, in which much research is necessarily dominated by immediate aims and short-term goals, and most research papers report some new accomplishment. The accomplishment may be useful but generalisations from one creation to another are very weak, unless the second is a direct descendant from the first. This paper is a contrast. Science-based engineering rests on idealisations (capacitance, gravity). Physical or chemical theory describing these idealisations is combined with experience and cra...

