| An Experimental Evaluation of Quality Guidelines on the Maintainability of Object-Oriented Design Documents | | BIBAK | PDF | 1-19 | |
| Lionel C. Briand; Christian Bunse; John W. Daly | |||
| This paper presents a controlled experiment focusing on the impact of
applying quality design principles such as the ones provided by Coad and
Yourdon on the maintainability of object-oriented design documents.
Results, which repeat the findings of a previous study, strongly suggest that such design principles have a beneficial effect on the maintainability of object-oriented design documents. It is argued that object-oriented design documents are sensitive to poor design practices because the cognitive complexity introduced becomes increasingly unmanageable. However, as our ability to generalise these results is limited, they should be considered as preliminary, i.e., it is very likely that they can only be generalised to programmers with little object-oriented training and programming experience. Such programmers can, however, be commonly found on maintenance projects. As well as additional research, external replications of this study are required to confirm the results and achieve confidence in these findings. Keywords: Design documents, Experiment, Maintainability, Object-oriented, Replication | |||
| A Bug's Eye View of Immediate Visual Feedback in Direct-Manipulation Programming Systems | | BIBAK | PDF | 20-41 | |
| Curtis Cook; Margaret Burnett; Derrick Boom | |||
| Immediate visual feedback is becoming a common feature in
direct-manipulation programming systems of all kinds -- from demonstrational
macro builders to spreadsheet packages to visual programming languages
featuring direct manipulation. But does immediate visual feedback actually
help in the domain of programming? We previously reported on an empirical
study to determine whether the inclusion of immediate visual feedback into a
direct-manipulation programming system helps with one particular task:
debugging. In that study, subjects debugged programs with and without
immediate visual feedback. We found that although immediate visual feedback
did not significantly help with debugging in general, it did significantly help
with debugging in some circumstances.
In this paper, we follow up on those results, looking at attributes of the bugs themselves to see if they help to determine the circumstances in which feedback helps with debugging. We analyze how particular bugs and collections of bugs grouped by error type related to subjects' debugging abilities with and without immediate visual feedback, which we term the "which" questions; how bugs' position on the screen related to subjects' debugging abilities with and without immediate visual feedback, termed the "where" questions; and whether the presence or absence of immediate visual feedback affected the speed and order in which bugs were corrected, termed the "when" questions. The results show that a bug's error type and screen position were together a strong predictor of whether feedback would aid in identifying and correcting it, and that these two factors also significantly influenced how feedback affected the speed and order in which the bugs were corrected. Keywords: Direct manipulation, Debugging, End-user programming, Spreadsheets, Visual
programming languages, Liveness, Empirical study | |||
| Programming Complex Objects in Spreadsheets: An Empirical Study Comparing Textual Formula Entry with Direct Manipulation and Gestures | | BIBAK | PDF | 42-68 | |
| Herkimer J. Gottfried; Margaret M. Burnett | |||
| Spreadsheets have traditionally provided strong support for computations
that use simple types such as numbers and strings, while providing little or no
support for programming with more complex objects such as colored circles or
user-defined types. In expanding spreadsheets to support complex objects, we
wanted to learn whether programs using complex objects could be constructed
more effectively by defining formulas textually or through the use of graphical
techniques such as direct manipulation and gestures. In this paper we present
an empirical study comparing these two techniques for constructing spreadsheet
programs that use complex objects. The results show that programmers can use
graphical techniques to program complex objects faster and with fewer errors
than with the textual methods traditional of spreadsheets. Keywords: Spreadsheets, Gestures, Direct manipulation, Empirical study, Visual
programming, Forms/3 | |||
| How is the Designer Different from the User? -- Focusing on a Software Development Methodology | | BIBAK | PDF | 69-90 | |
| Jinwoo Kim; Jungpil Hahn; F. Javier Lerch | |||
| The main objective of this study is to uncover the differences in the
programming behavior between methodology designers and methodology users. We
conducted an experiment with methodology designers who have invented one of the
major object-oriented methodologies and programmers who have used the
methodology for their projects. Concurrent verbal protocols were analyzed
based on a theoretical framework which views programming as search in four
problem spaces: representation, rule, instance, and paradigm. In programming,
the main problem spaces are the representation and the rule spaces, while the
paradigm and instance spaces are the supporting spaces. The results of the
experiment show that differences in the supporting space produced different
search behavior in the main problem spaces, which in turn resulted in different
final programs and performance. Keywords: Designer, User, Multiple problem spaces | |||
| Using a Fine-Grained Comparative Evaluation Technique to Understand and Design Software Visualization Tools | | BIBAK | PDF | 91-108 | |
| Paul Mulholland | |||
| Software Visualization can be defined as the use of graphical and textual
formalisms to describe the execution of computer programs. A large amount of
Software Visualization technology has been developed to support computer
science education, using a range of interface techniques. Far less effort has
been devoted to evaluating the technology. As a result, it is unclear how
effective Software Visualization tools are, either for students or professional
programmers. Even more worrying, it is doubtful whether lessons are being
learnt in successive designs of Software Visualization tools, or whether the
application of new technologies (e.g. 3D animation and the internet) has become
the primary goal, rather than the true goal of making computer programs easier
to understand. To counter this problem the study reported here used protocol
analysis to develop a fine-grained account of user behaviour, identifying (i)
information access from the display, (ii) the use of comprehension strategies,
and (iii) misunderstandings of the visualization and execution. The results
were able to motivate future deigns which in turn could be compared and
improved. The approach is compared to other evaluation techniques which aim to
inform design. Finally, the generalizability of the approach is considered. Keywords: Evaluation, Design, Software visualization, Software comprehension, Prolog | |||
| A Glimpse of Expert Programmers' Mental Imagery | | BIBAK | PDF | 109-123 | |
| Marian Petre; Alan F. Blackwell | |||
| There is widespread anecdotal evidence that expert programmers make use of
visual mental images when they are designing programs. In this study, expert
programmers were directly questioned regarding the nature of their mental
representations while they were engaged in a design task. This investigative
technique was used with the explicit intention of eliciting introspective
reports of mental imagery. The resulting transcripts displayed a considerable
number of common elements. These suggest that software design shares many
characteristics of more concrete design disciplines. They also provide
promising areas for further investigation of software development support tools
and design strategies. Keywords: Mental representation, Mental imagery, Expert programmer behaviour | |||
| An Empirical Study of Novice Program Comprehension in the Imperative and Object-Oriented Styles | | BIBAK | PDF | 124-139 | |
| Vennila Ramalingam; Susan Wiedenbeck | |||
| The objective of this study was to determine whether the mental
representation of object-oriented programs differs from imperative programs for
novice programmers. In our study novices who had little or no previous
programming experience studied and answered questions about three imperative
and three object-oriented programs. The questions targeted information
categories making up the program model and the domain model representations of
the programs. It was found that there was a sharp contrast between the mental
representations of the imperative and object-oriented programs. While the
comprehension of the imperative programs was better overall than that of the
object-oriented programs, the mental representations of the imperative programs
focused on program-level knowledge. On the other hand, the mental
representations of the object-oriented programs focused more strongly on
domain-level knowledge. The results tend to support the view that language
notations differ in how well they support the extraction of various kinds of
information. Keywords: Object-oriented programming, Imperative programming, Novices, Mental
representation, Program model, Domain model, Program comprehension | |||
| A Study of End-User Programming for Geographic Information Systems | | BIBAK | PDF | 140-156 | |
| Carol Traynor; Marian G. Williams | |||
| This paper presents an empirical study of a programming by demonstration
language for a geographic information system (GIS). The long-term goal of the
project is to enable non-technical end users to exercise the capabilities of a
GIS without having to learn the technical concepts that are embedded in most
traditional GIS interfaces (Traynor & Williams, 1995). The programming by
demonstration language is an extension of the Pursuit language introduced by
Modugno for file management in the Macintosh Finder (Modugno, Corbett & Myers,
1996). The extensions permit the display of textual information in tables and
of cartographic information on a map. The purpose of the preliminary study
reported here was to determine whether programmers could read, edit, and create
programs in the programming by demonstration language. Subjects' performance
on the program comprehension tasks and the editing of simple programs was error
free. Errors in the editing of more complex programs and in the program
creation tasks indicate that some of the language constructs may need to be
redesigned. Subjects' opinions of the programming by demonstration language
were generally positive, as indicated by post-test questionnaires. We conclude
that programming by demonstration is a promising approach for a GIS interface. Keywords: End-user programming, Programming by demonstration, Visual language,
Geographic information systems, Empirical study | |||
| Program Understanding Behavior During Debugging of Large Scale Software | | BIBAK | PDF | 157-179 | |
| Anneliese von Mayrhauser; A. Marie Vans | |||
| This paper reports on a software understanding experiment during corrective
maintenance of large-scale software. Participants were professional software
maintenance engineers. The paper reports on the general understanding process,
the types of actions programmers preferred during the debugging task, and the
level of abstraction at which they were working. The results of the
observation are also interpreted in terms of the information needs of these
software engineers during the debugging task. Keywords: Program comprehension, Software maintenance, Debugging | |||
| Visual Programming: The Outlook from Academia and Industry | | BIBAK | PDF | 180-208 | |
| K. N. Whitley; Alan F. Blackwell | |||
| This paper presents three surveys of beliefs about the cognitive effects of
visual programming. One survey examined the visual programming literature for
the opinions of academic researchers. The second and third surveys gathered
the opinions of the users of programming languages: the second survey
questioned professional programmers attending a trade show and the third was a
world-wide survey of LabVIEW programmers conducted via the Internet. The first
survey revealed speculative, optimistic views of visual programming amongst
visual programming researchers. The second found that a broad sample of
professional programmers were the most skeptical of the three groups. The
third indicates that LabVIEW programmers are confident that the visual
programming provided by LabVIEW is beneficial. Taken together, these surveys
illustrate the wide range of unanswered questions about the cognitive effects
of visual programming languages. In doing so, this research hopes to assist in
the process of establishing a more rigorous scientific investigation of these
cognitive effects. Keywords: Visual programming, Questionnaire, Opinion, Survey | |||
| A Study of Program Entry Time Predictions for Application-Specific Visual and Textual Languages | | BIBAK | PDF | 209-223 | |
| Marian G. Williams; J. Nicholas Buehler | |||
| Creating and editing a computer program involves creative design work, but
also involves the mechanical work of entering the code. Thus, program entry
time needs to be taken into account in comparative studies of program creation
and editing tasks using textual and graphical languages. We present a study of
program entry time for application-specific graphical and textual languages
with equivalent functionality. First, typical program entry tasks were
modeled, and time predictions were calculated from the models. Then a small
empirical study was performed to check the validity of the models. There was a
high positive correlation (r=.927, p < .005) between observed execution times
and predicted times. In addition, there was a significant difference (p < .05)
between the execution times for the graphical and textual conditions for each
task, and the difference was always in the direction predicted by the models.
Finally, the prediction model was fine-tuned to produce even greater
correlation with observed results. This study suggests that our upcoming study
of learning outcomes in time-limited training situations, which will use the
graphical and textual languages reported on here, does not have a systematic
bias against either language in the effort required for program entry. It also
provides evidence for the usefulness of keystroke level modeling for comparison
of program entry tasks and suggests that related kinds of models may be useful
for comparing the performance of other kinds of programming tasks. Keywords: Visual language, Textual language, Program entry, Keystroke Level Model | |||
| What Do We Know about Programming? | | BIBAK | PDF | 224-232 | |
| Watts S. Humphrey | |||
| This brief paper summarizes an invited talk I gave at the 7th Workshop on
Empirical Studies of Programmers, in Alexandria, VA, on October 24-26, 1997.
The paper describes the methods of the Personal Software Process (PSP) and
shows how PSP data can be used to illuminate some questions about programming
work. The paper concludes with two additional questions that need to be
addressed as the software business grows and matures. To keep this paper at a
reasonable size, I only include selections of the PSP data I showed in the
talk. Keywords: Discipline, Education, Personal Software Process, PSP, Programming, Quality | |||
| Problems versus Solutions: The Role of the Application Domain in Software | | BIBAK | PDF | 233-240 | |
| Iris Vessey | |||
| The computing field has, to date, focused almost exclusively on
application-independent approaches. While a great deal of progress has been
made, there is, now, general agreement that further such progress is becoming
increasingly difficult, and that it is vital to begin considering application
domain-specific solution approaches that address the particular problem at
hand.
There are currently signs that many computing communities are, in fact, taking an application domain-specific approach to their fields. This analysis will address the status of several of those communities (for example, domain analysis (reuse), architecture, frameworks, patterns, method engineering, among others) to assess the progress that is being made and to stimulate reflection on the use of application domain-specific approaches in the software field. The analysis will show that, while some progress is being made, much more research is needed before the field can say it has made worthwhile inroads into the domain-focused approach. Keywords: Application, Application domain, Problem, Solution, Methods, Taxonomies | |||