VLDB 2026 Research / reviewers in the wild / expert
Keith B. Gallagher
dblp:g/KBGallagher · also Keith Brian Gallagher
· DBLP profile ↗
19ranked-venue papers
9as first author
1since 2021 · last 2025
0000-0002-1469-9866ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 17 · 9 first-author · 1 since 2021Artificial intelligence and machine learning · 3Databases, data management, data science and information retrieval · 1Human-computer interaction and ubiquitous computing · 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
4 papers |
Program analysis · 53% Software maintenance and evolution · 28% Requirements engineering and software design · 10% | |
| Computer graphics and multimedia
1 paper |
Visualization and visual analytics · 100% |
Topics — the 10 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
program slicing |
0.9 | 2 | 2025 | Program Slicing: A Brief Retrospective · IEEE Trans. Software Eng. 2025 Using Program Slicing in Software Maintenance · IEEE Trans. Software Eng. 1991 |
Software maintenance and evolution
program comprehension |
0.4 | 2 | 2025 | Program Slicing: A Brief Retrospective · IEEE Trans. Software Eng. 2025 Dependence clusters in source code · ACM Trans. Program. Lang. Syst. 2009 |
Software maintenance and evolution › software dependencies
code dependencies |
0.1 | 1 | 2009 | Dependence clusters in source code · ACM Trans. Program. Lang. Syst. 2009 |
Compilers and program optimization
dependence analysis |
0.1 | 1 | 2009 | Dependence clusters in source code · ACM Trans. Program. Lang. Syst. 2009 |
Requirements engineering and software design › software architecture
architecture visualization |
0.1 | 1 | 2008 | Software Architecture Visualization: An Evaluation Framework and Its Application · IEEE Trans. Software Eng. 2008 |
Requirements engineering and software design
software architecture |
0.1 | 1 | 2008 | Software Architecture Visualization: An Evaluation Framework and Its Application · IEEE Trans. Software Eng. 2008 |
Empirical software engineering
mining software repositories |
0.0 | 1 | 2009 | Dependence clusters in source code · ACM Trans. Program. Lang. Syst. 2009 |
Software testing
testability |
0.0 | 1 | 2009 | Dependence clusters in source code · ACM Trans. Program. Lang. Syst. 2009 |
Visualization and visual analytics
software visualization |
0.0 | 1 | 2008 | Software Architecture Visualization: An Evaluation Framework and Its Application · IEEE Trans. Software Eng. 2008 |
Software maintenance and evolution
change impact analysis |
0.0 | 1 | 1991 | Using Program Slicing in Software Maintenance · IEEE Trans. Software Eng. 1991 |
Methods — techniques the papers use, named apart from their topics
goal question metric · 0.2empirical study · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Program Slicing: A Brief RetrospectiveabstractProgram slicing is a software analysis technique conceived of and developed in the late 70s and early 80s by the late Mark Weiser to remove code from a program that does not affect a given computation. A program slice is any selection of program statements that maintains the same behavior as the original program at a specific point while considering a particular set of variables, known as the slicing criterion. This technique permits a software engineer to focus on an immediate computation and safely ignore statements and variables that do not contribute to that focus. We will briefly review the basics of program slicing and some of the myriad of related techniques and applications that developed over the years to tackle the problems that software engineers confront while sitting at their workstations. Keith B. Gallagher, Suzanne J. Kozaitis |
IEEE Trans. Software Eng. | 1 |
| 2019 | Teaching Software MaintenanceabstractThis paper outlines the content and techniques used to teach software maintenance to American university sophomores (second year students) who have had 3 semesters of programming. The course uses an introductory text that is geared to the maturity of the audience. By turning the project of the introductory course into a large software evolution exercise, the major topics of software engineering can still be easily introduced and examined. We present the course organization, evaluation rubrics, and student and instructor experiences from six offerings of the course to demonstrate that treating the project in an introductory course as a software evolution exercise on a large, mature system is a viable alternative to the usual (greenfield) approaches. As an added benefit, meaningful contributions to the open source community can be made. Keith B. Gallagher, Mark Fioravanti, Suzanne J. Kozaitis |
ICSME | 1 |
| 2017 | Evaluating the Use of Sound in Static Program ComprehensionabstractComprehension of computer programs is daunting, due in part to clutter in the software developer's visual environment and the need for frequent visual context changes. Previous research has shown that nonspeech sound can be useful in understanding the runtime behavior of a program. We explore the viability and advantages of using nonspeech sound in an ecological framework to help understand the static structure of software. We describe a novel concept for auditory display of program elements in which sounds indicate characteristics and relationships among a Java program's classes, interfaces, and methods. An empirical study employing this concept was used to evaluate 24 sighted software professionals and students performing maintenance-oriented tasks using a 2×2 crossover. Viability is strong for differentiation and characterization of software entities, less so for identification. The results suggest that sonification can be advantageous under certain conditions, though they do not indicate the overall advantage of using sound in terms of task duration at a 5% level of significance. The results uncover other findings such as differences in comprehension strategy based on the available tool environment. The participants reported enthusiasm for the idea of software sonification, mitigated by lack of familiarity with the concept and the brittleness of the tool. Limitations of the present research include restriction to particular types of comprehension tasks, a single sound mapping, a single programming language, and limited training time, but the use of sound in program comprehension shows sufficient promise for continued research. Lewis Berman, Keith B. Gallagher, Suzanne J. Kozaitis |
ACM Trans. Appl. Percept. | 2 |
| 2013 | Preface to the special issue on program comprehension
Giuliano Antoniol, Keith B. Gallagher |
Empir. Softw. Eng. | 2 |
| 2010 | Overlapping Community Detection by Collective Friendship Group InferenceabstractThere has been considerable interest in improving the capability to identify communities within large collections of social networking data. However, many of the existing algorithms will compartment an actor (node) into a single group, ignoring the fact that in real-world situations people tend to belong concurrently to multiple groups. Our work focuses on the ability to find overlapping communities by aggregating the community perspectives of friendship groups, derived from egonets. We will demonstrate that our algorithm not only finds overlapping communities, but additionally helps identify key members, which bind communities together. Additionally, we will highlight the parallel feature of the algorithm as a means of improving runtime performance. Bradley S. Rees, Keith B. Gallagher |
ASONAM | 2 |
| 2010 | Certifying software robustness using program slicingabstractRobustness of a program is the degree of system correctness of all parts. Measuring robustness is a goal for many researchers. In this paper, program slicing is used to build a robustness hierarchy, where this hierarchy will be used to test, and build a robust program. Mohammad Abdallah, Malcolm Munro, Keith B. Gallagher |
ICSM | 3 |
| 2009 | Dependence clusters in source codeabstractA dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10% of the whole program. Some even have clusters consuming 80% or more. The widespread existence of clusters has implications for source code analyses such as program comprehension, software maintenance, software testing, reverse engineering, reuse, and parallelization. Mark Harman, Dave W. Binkley, Keith B. Gallagher, Nicolas E. Gold, Jens Krinke |
ACM Trans. Program. Lang. Syst. | 3 |
| 2008 | Software Architecture Visualization: An Evaluation Framework and Its ApplicationabstractIn order to characterize and improve software architecture visualization practice, the paper derives and constructs a qualitative framework, with seven key areas and 31 features, for the assessment of software architecture visualization tools. The framework is derived by the application of the Goal Question Metric paradigm to information obtained from a literature survey and addresses a number of stakeholder issues. The evaluation is performed from multiple stakeholder perspectives and in various architectural contexts. Stakeholders can apply the framework to determine if a particular software architecture visualization tool is appropriate to a given task. The framework is applied in the evaluation of a collection of six software architecture visualization tools. The framework may also be used as a design template for a comprehensive software architecture visualization tool. Keith B. Gallagher, Andrew Hatch, Malcolm Munro |
IEEE Trans. Software Eng. | 1 |
| 2007 | Reducing Regression Test Size by ExclusionabstractOperational software is constantly evolving. Regression testing is used to identify the unintended consequences of evolutionary changes. As most changes affect only a small proportion of the system, the challenge is to ensure that the regression test set is both safe (all relevant tests are used) and inclusive (only relevant tests are used). Previous approaches to reducing test sets struggle to find safe and inclusive tests by looking only at the changed code. We use decomposition program slicing to safely reduce the size of regression test sets by identifying those parts of a system that could not have been affected by a change; this information will then direct the selection of regression tests by eliminating tests that are not relevant to the change. The technique properly accounts for additions and deletions of code. We extend and use Rothermel and Harrold's framework for measuring the safety of regression test sets and introduce new safety and precision measures that do not require a priori knowledge of the exact number of modification-revealing tests. We then analytically evaluate and compare our techniques for producing reduced regression test sets. Keith B. Gallagher, Tracy Hall, Sue Black 0001 |
ICSM | 1 |
| 2007 | Desert island column
Keith B. Gallagher |
Autom. Softw. Eng. | 1 |
| 2006 | The Sound of Software: Using Sonification to Aid ComprehensionabstractProgram comprehension of unfamiliar software is a daunting task and existing comprehension environments, although helping significantly, do not fully alleviate the information overload involved. The visual medium has been well-explored in aiding software engineers understanding of source code and other artifacts concerned with maintaining existing software systems, but the use of non-visual representations, e.g. sound, has not gone far beyond simple noises to indicate error conditions or attract attention in a running program. This paper aims to explore the program comprehension problems that could usefully be addressed using sound. There are many dimensions to this problem and this paper addresses a new area open program comprehension research, defining the problem space and beginning to populate it with possible solutions. We expect the primary focus of this session to be on software comprehension and sound although many disciplines are likely to become involved in the research that flows from it Lewis Irwin Berman, Sebastian Danicic, Keith B. Gallagher, Nicolas E. Gold |
ICPC | 3 |
| 2003 | Guaranteed inconsistency avoidance during software evolutionabstractAbstract The attempt to design and integrate consistent changes to an existing system is the essence of software maintenance. Software developers also confront similar problems: there are changes during testing and the release of new system builds. Whether in development or maintenance, changes to evolving systems must be made consistently; that is, without damaging correct computations. It is difficult for the programmer to ascertain the complete effect of a code change; the programmer may make a change to a program that is syntactically and semantically legal, but which has ripples into the parts of the program that were intended to remain unchanged. Using the standard denotational semantics for procedural programming languages, this paper formalizes decomposition slicing, which identifies interferences between software components and isolates the components to be changed. We enumerate the conditions for changing one component in ways that will guarantee that changes to it will not interact inconsistently and prove that changes made under these conditions are sound. Thus, the programmer can then execute changes secure in the knowledge that the semantics of the new system are guaranteed to be consistent with the projection of the semantics of the original for which it behaved correctly. Validating that the changes do not interfere not only guarantees consistency with respect to previous unchanging behaviors, but can also be achieved with a complexity proportional to the size of the change to be made. Copyright © 2003 John Wiley & Sons, Ltd. Keith B. Gallagher, Mark Harman, Sebastian Danicic |
J. Softw. Maintenance Res. Pract. | 1 |
| 1998 | Improving Visual Impact AnalysisabstractVisual impact analysis is a software visualisation technique that lets software maintainers judge the impact of proposed changes and plan maintenance accordingly. An existing CASE tool uses a directed acyclic graph display derived from decomposition slicing of a program for visual impact analysis. In this paper, we analyse the graph display and show that it is semantically ambiguous and fails to show important information. We propose requirements for an improved display based on a definition of "interference" between variables in a maintenance context. The design for a new display is presented with a series of examples to illustrate its effectiveness. The display is focused on providing a straightforward method to analyse the impact of changes. Matthew A. Hutchins, Keith B. Gallagher |
ICSM | 2 |
| 1998 | Program slicing
Mark Harman, Keith B. Gallagher |
Inf. Softw. Technol. | 2 |
| 1996 | Visual Impact AnalysisabstractThe Surgeon's Assistant is a CASE tool for software maintainers and developers of ANSI C programs. It is based on the premises that maintainers need to be able to limit the scope of changes and that (most) development starts from some existing, similar system. The Decomposition Slice Display System (DSDS-XVCG), a component of the Surgeon's Assistant, automates and visualizes impact analysis by displaying the relationships among a program's decomposition slices. It allows the software maintainer to visually comprehend the relationships between the decomposition slices. The DSDS-XVCG uses the interface of a tool for Visualizing Compiler Graphs, VCG, to present the lattice of the decomposition slices for the user's perusal. It allows the user to manipulate the graph by deleting and coloring nodes, and by collapsing regions. The software maintainer is provided with a visualization of the impact of proposed changes and can plan maintenance accordingly. Keith B. Gallagher |
ICSM | 1 |
| 1995 | The Decomposition Slice Display System
Bradley M. Kuhn, Dennis J. Smith, Keith B. Gallagher |
SEKE | 3 |
| 1992 | Evaluating the Surgeon's Assistant: results of a pilot studyabstractThe author reports on an empirical evaluation of decomposition slicing as a maintenance method as implemented in the Surgeon's Assistant. The improvement-oriented software maintenance model presented by H. D. Rombach and B.T. Ulery (1988) is used as the foundation. A reprise of software process modeling, a short introduction to software maintenance process modeling, and the definition of the evaluation model are presented. Decomposition slicing induces changes in the standard maintenance model; the evaluation attempts to measure the effectiveness of the induced model as compared with the standard one. The evaluation is a pilot study. A preliminary comparison is made using certain defined metrics. This yields some insights into the strengths and weaknesses of the tool and its applicability in certain scenarios.> Keith B. Gallagher |
ICSM | 1 |
| 1991 | Using Program Slicing in Software MaintenanceabstractProgram slicing is applied to the software maintenance problem by extending the notion of a program slice (that originally required both a variable and line number) to a decomposition slice, one that captures all computation on a given variable, i.e., is independent of line numbers. Using the lattice of single variable decomposition slices ordered by set inclusion, it is shown how a slice-based decomposition for programs can be formed. One can then delineate the effects of a proposed change by isolating those effects in a single component of the decomposition. This gives maintainers a straightforward technique for determining those statements and variables which may be modified in a component and those which may not. Using the decomposition, a set of principles to prohibit changes which will interfere with unmodified components is provided. These semantically consistent changes can then be merged back into the original program in linear time.> Keith B. Gallagher, James R. Lyle |
IEEE Trans. Software Eng. | 1 |
| 1988 | Using program decomposition to guide modificationsabstractThe authors use data-flow techniques to form a notion of direct sum decomposition for programs. The decomposition yields a method and guidelines for software maintainers to use so that changes can be assured to be completely contained in the modules under consideration and that there are no undetected linkages between the modified and unmodified code. Thus, the impact of small changes can be gauged. The decomposition can also be used to limit the amount of testing required to assure that the change is correct; under suitable conditions, modification testing will be required only for the changed code. Moreover, if these hypotheses are violated, the modifier can be virtually assured that proposed changes will have a wider impact than that which is contemplated.> James R. Lyle, Keith B. Gallagher |
ICSM | 2 |