Robert W. Bowdidge

dblp:99/4455 · DBLP profile ↗
← Back
8ranked-venue papers
3as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
6 papers
Program analysis · 37% Empirical software engineering · 34% Software maintenance and evolution · 27%
Human-computer interaction and pervasive computing
1 paper
User interface design and tools · 100%

Topics — the 13 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › build systems
build failure analysis
0.212014
Programmers' build errors: a case study (at google) · ICSE 2014
Empirical software engineering
mining software repositories
0.212014
Programmers' build errors: a case study (at google) · ICSE 2014
Empirical software engineering
developer studies
0.212013
Why don't software developers use static analysis tools to find bugs? · ICSE 2013
Program analysis
static analysis
0.212013
Why don't software developers use static analysis tools to find bugs? · ICSE 2013
Program analysis › static analysis
static analysis tool adoption
0.212013
Why don't software developers use static analysis tools to find bugs? · ICSE 2013
Program analysis › static analysis
bug detection
0.012013
Why don't software developers use static analysis tools to find bugs? · ICSE 2013
Software maintenance and evolution › software reengineering
program restructuring
0.031998
Supporting the Restructuring of Data Abstractions Through Manipulation of a Program Visualization · ACM Trans. Softw. Eng. Methodol. 1998
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems · SIGSOFT FSE 1996
Automated Support for Encapsulating Abstract Data Types · SIGSOFT FSE 1994
Software maintenance and evolution › software reengineering
software restructuring
0.011998
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems · IEEE Trans. Software Eng. 1998
Software maintenance and evolution
refactoring
0.011994
Automated Support for Encapsulating Abstract Data Types · SIGSOFT FSE 1994
Compilers and program optimization › program transformation
semantics-preserving transformation
0.011994
Automated Support for Encapsulating Abstract Data Types · SIGSOFT FSE 1994
Software maintenance and evolution
program comprehension
0.011998
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems · IEEE Trans. Software Eng. 1998
Software maintenance and evolution › program comprehension
software visualization
0.011996
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems · SIGSOFT FSE 1996
User interface design and tools › visualization
program visualization
0.011994
Automated Support for Encapsulating Abstract Data Types · SIGSOFT FSE 1994

Methods — techniques the papers use, named apart from their topics

empirical study · 0.2build log analysis · 0.2interviews · 0.2programmer study · 0.0program visualization · 0.0direct manipulation · 0.0star diagram · 0.0measurement · 0.0
YearPublicationVenuePosition
2014 Programmers' build errors: a case study (at google)
abstract
Building is an integral part of the software development process. However, little is known about the compiler errors that occur in this process. In this paper, we present an empirical study of 26.6 million builds produced during a period of nine months by thousands of developers. We describe the workflow through which those builds are generated, and we analyze failure frequency, compiler error types, and resolution efforts to fix those compiler errors. The results provide insights on how a large organization build process works, and pinpoints errors for which further developer support would be most effective.
Hyunmin Seo, Caitlin Sadowski, Sebastian G. Elbaum, Edward Aftandilian, Robert W. Bowdidge
ICSE5
2013 Why don't software developers use static analysis tools to find bugs?
abstract
Using static analysis tools for automating code inspections can be beneficial for software engineers. Such tools can make finding bugs, or software defects, faster and cheaper than manual inspections. Despite the benefits of using static analysis tools to find bugs, research suggests that these tools are underused. In this paper, we investigate why developers are not widely using static analysis tools and how current tools could potentially be improved. We conducted interviews with 20 developers and found that although all of our participants felt that use is beneficial, false positives and the way in which the warnings are presented, among other things, are barriers to use. We discuss several implications of these results, such as the need for an interactive mechanism to help developers fix defects.
Brittany Johnson, Yoonki Song, Emerson R. Murphy-Hill, Robert W. Bowdidge
ICSE4
1998 Supporting the Restructuring of Data Abstractions Through Manipulation of a Program Visualization
abstract
With a meaning-preserving restructuring tool, a software engineer can change a program's structure to ease future modifications. However, deciding how to restructure the program requires a global understanding of the program's structure, which cannot be derived easily by directly inspecting the source code. We describe a manipulable program visualization—thestar diagram—that supports the restructuring task of encapsulating a global data structure. The star diagram graphically displays information pertinent to encapsulation, and direct manipulation of the diagram causes the underlying program to be restructured. The visualization compactly presents all statements in the program that use the given global data structure, helping the programmer to choose the functions that completely encapsulate it. Additionally, the visualization elides code unrelated to the data structure and to the task and collapses similar expressions to help the programmer identify frequently occurring code fragments and manipulate them together. The visualization is mapped directly to the program text, so manipulation of the visualization also restructures the program. We present the star diagram concept and describe an implementation of the star diagram built upon a meaning-preserving restructuring tool for Scheme. We also describe our creation of star diagram generators for C programs, and we test the scalability of the star diagram using large C and MUMPS programs.
Robert W. Bowdidge, William G. Griswold
ACM Trans. Softw. Eng. Methodol.1
1998 Tool Support for Planning the Restructuring of Data Abstractions in Large Systems
abstract
Restructuring software to improve its design can lower software maintenance costs. One problem encountered during restructuring is formulating the new design. A meaning-preserving program restructuring tool with a star diagram manipulable visualization can help a programmer redesign a program based on abstract data types. However, the transformational support required for meaning-preserving restructuring is costly to provide. Also, programmers encounter comprehension and recall difficulties in complex restructuring tasks. Consequently, transformations were replaced with visual and organizational aids that help a programmer to plan and carry out a complex restructuring. For example, a star diagram manipulation called trimming was added, which mimics the way that basic restructuring transformations affect the star diagram display, allowing a programmer to plan a restructuring without depending upon restructuring transformations. With the ability to annotate trimmed star diagram components, plans can be recorded and later recalled. Programmer-controlled elision was added to help remove clutter from star diagram views. We implemented a star diagram planning tool for C programs, measured its elision capabilities, and performed a programmer study. We found that elision is effective in controlling star diagram size, and the study revealed that each programming team successfully planned its restructuring in rather different, unanticipated ways. These experiments resulted in important improvements in the tool's software design and user interface.
William G. Griswold, Morison I. Chen, Robert W. Bowdidge, Jenny L. Cabaniss, Van B. Nguyen, J. David Morgenthaler
IEEE Trans. Software Eng.3
1997 How Software Engineering Tools Organize Programmer Behavior During the Task of Data Encapsulation
Robert W. Bowdidge, William G. Griswold
Empir. Softw. Eng.1
1996 Tool Support for Planning the Restructuring of Data Abstractions in Large Systems
abstract
Restructuring software to improve its design can lower software maintenance costs. One problem in carrying out such a restructuring is planning the new detailed design. The star diagram manipulable visualization can help a programmer redesign a program based on abstract data types. However, our measurements revealed that the view can be too large for a programmer to effectively assimilate. Also, design plans can be expressed only by restructuring, although our studies revealed that it is beneficial to preplan a restructuring. Finally, the tool user can build a star diagram for only a single data structure, although an abstract data type might actually have several components or have multiple instantiations.Exploiting basic properties of the star diagram can mitigate these problems. First, programmer-controlled elision can remove clutter from the star diagram view. Second, elision and annotation of star diagram components can mimic restructuring, thereby supporting the planning of a restructuring. Such support also allows for the planning of a non-restructuring maintenance task. Finally, to dynamically control what data structures are visualized, the tool user can union star diagrams.We built a star diagram planning tool for C programs, measured its elision capabilities, and performed a programmer study for the encapsulation of a widely-used data structure in a 28,000 line program. We found that the amount of elision can be substantial, but is not always adequate. In the study we found that each programming team successfully planned their restructuring in rather different, unanticipated ways.
William G. Griswold, Morison I. Chen, Robert W. Bowdidge, J. David Morgenthaler
SIGSOFT FSE3
1994 Automated Support for Encapsulating Abstract Data Types
abstract
A software engineer can use a meaning-preserving program restructuring tool during maintenance to change a program's structure to ease modification. One common restructuring action is to create a new abstract data type by encapsulating an existing data structure. Data encapsulation simplifies modification by isolating changes to the implementation and behavior of an abstract data type. To perform encapsulation, a programmer must understand how the data structure is used in the code, identify abstract operations performed on the data structure, and choose concrete expressions to be made into functions. We provide a manipulable program visualization, called the star diagram, that both highlights information partinent to encapsulation and supports the application of meaning-preserving restructuring transformations on the program through a direct-manipulation user interface. The visualization graphically and compactly presents all statements in the program that use the given global data structure, helping the programmer to choose the functions that completely encapsulate it. Additionally, the visualization elides code unrelated to the data structure and to the task, and collapses similar expressions to allow the programmer to identify frequently occurring code fragments and manipulate them together. The visualization is mapped directly to the program text, so manipulation of the visualization also restructures the program. We describe the design, implementation, and application of the star diagram, and evaluate its ability to assist data encapsulation in large programs.
Robert W. Bowdidge, William G. Griswold
SIGSOFT FSE1
1990 Low-Cost Comparisons of File Copies
abstract
The author present a file comparison scheme in which the signatures of individual pages are compared by means of a supersignature calculated from the individual page signature. A supersignature is obtained as a power series in a primitive root within the Galois field with 2/sup n/ elements. The coefficients are the signatures of the individual pages. With this scheme errors, such as missing, altered, or incorrectly placed pages, can be detected with the very probability, and an error diagnosis can be found if discrepancies are detected.>
Thomas J. E. Schwarz, Robert W. Bowdidge, Walter A. Burkhard
ICDCS2