Papers by Keith Gallagher

Teaching Software Maintenance
2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)
This paper outlines the content and techniques used to teach software maintenance to American uni... more This 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.

Comprehending a computer program can be a daunting task. There is much to understand, including t... more Comprehending a computer program can be a daunting task. There is much to understand, including the interaction among different portions of the code. Program slicing can help one to understand this interaction. Because present-day visual development environments tend to become cluttered, the authors have explored sonification of program slices in an attempt to determine if it is practical to offload some of the visual information. Three slice sonification techniques were developed, resulting in an understanding of how to sonify slices in a manner appropriate for the software developer undertaking program comprehension activities. The investigation has also produced a better understanding of sonification techniques that are musical yet non-melodic and non-harmonic. These techniques were demonstrated to a small set of developers, each reporting that the techniques are promising and useful. 1.

ACM Transactions on Applied Perception, 2018
Comprehension of computer programs is daunting, due in part to clutter in the software developer&... more Comprehension 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 the...
Scott Ankrum, MITRE, USA
Page 1. xiii Program Committee Anneliese Amschler Andrews, Washington State University, WA, USA S... more Page 1. xiii Program Committee Anneliese Amschler Andrews, Washington State University, WA, USA Scott Ankrum, MITRE, USA Giuliano Antoniol, University of Sannio, Italy Ira Baxter, Semantic Designs, USA Keith Bennett, University of Durham, UK Shawn A. Bohner, Virginia Tech, USA Jan Bosch, University of Groningen, The Netherlands Mark van den Brand, LORIA, France Gerardo Canfora, University of Sannio, Italy William Cheng-Chung Chu, TungHai University, Taiwan Roberto Ciampoli, EXO Service, Italy ...
Scam 2009
computer.org
Paul Anderson, Grammatech, USA Giuliano Antoniol, Département de génie informatique et génie logi... more Paul Anderson, Grammatech, USA Giuliano Antoniol, Département de génie informatique et génie logiciel, École Polytechnque de Montréal, Canada Françoise Balmas, Département Informatique, Université Paris 8, France Dave Binkley, Computer Science Department, Loyola College in Maryland, USA Liz Burd, Department of Computer Science, University of Durham, UK Jim Cordy, School of Computing, Queen's University, Canada Sebastian Danicic, Department of Mathematical and Computing Sciences, Goldsmiths College, UK Andrea De Lucia, ...
Michael Van De Vanter, Sun Microsystems, USA Andrew Walenstein, University of Louisiana at Lafeyette, USA Ji Wang, National University of Defense Technology, China Jim Whitehead, University of California, Santa Cruz, USA Baowen Xu, Southeast University, China
ieeexplore.ieee.org
Paul Anderson, GrammaTech, USA Giuliano Antoniol, École Polytechnque de Montréal, Canada François... more Paul Anderson, GrammaTech, USA Giuliano Antoniol, École Polytechnque de Montréal, Canada Françoise Balmas, Université Paris 8, France Ira Baxter, Semantic Designs, USA Dave Binkley, Loyola College in Maryland, USA Magiel Bruntink, Centrum voor Wiskunde en Informatica, Netherlands Liz Burd, University of Durham, UK Cristina Cifuentes, Sun Microsystems Labs, Australia Sebastian Danicic, Goldsmiths College, UK Thomas Dean, Queen's University, Canada Andrea De Lucia, Università degli Studi di Salerno, Italy Massimiliano ...
Software Maintenance, 1998. …, Jan 1, 1998
Visual impact analysis is a software visualisation technique that lets software maintainers judge... more Visual 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.
International Conference on Auditory Display, 2006
Comprehending a computer program can be a daunting task. There is much to understand, including t... more Comprehending a computer program can be a daunting task. There is much to understand, including the interact ion among different portions of the code. Program slicing can help one to understand this interaction. Because present-day vi sual development environments tend to become cluttered, the authors have explored sonification of program slice s in an attempt to determine if it is
Using Program Slicing for Program Maintenance
Applying metric-based object-oriented process modeling techniques to configuration management
Tools for Program Comprehension: Building a Comprehender's Workbench
Comprehension, the primordial task, has not changed much in 40 years. Whether the comprehension t... more Comprehension, the primordial task, has not changed much in 40 years. Whether the comprehension task is global (architectural) or atomic (single statement effect), the approach is the same. We run it. We read it. We grep (search) it. An electronic search on the criteria Âżcomprehension and toolsÂż yielded no results. Therefore, while there is programmer's workbench, a maintainer's workbench, and a tester's workbench, the comprehender's workbench is evidently barren. While borrowing tools from other engineers gives a toehold, the question still arises: ÂżWhat tools belong in a comprehender's workbench, per se?Âż This workshop session will try to answer this question.
Using sound to understand software architecture
Proceedings of the 27th ACM international conference on Design of communication - SIGDOC '09, 2009
ABSTRACT Use of non-speech sound can facilitate the understanding of a software program. Non-spee... more ABSTRACT Use of non-speech sound can facilitate the understanding of a software program. Non-speech sound has been shown to be useful in dynamic program comprehension, that is, understanding the dynamic behavior of a program. We have ...
Using program slicing to eliminate the need for regression testing
Conquest: Interface for Test Automation Design
Proceedings of the 3rd international workshop on Software configuration management -, 1991
Software maintenance is the process of designing and integrating consistent changes to an existin... more Software maintenance is the process of designing and integrating consistent changes to an existing software system. It is di cult for the maintainer to ascertain the complete e ect of a code change; the maintainer may make a change to a program that is syntactically and semantically legal, but has ripples into the parts of the program that were to remain unchanged.
Surgeon''''s assistant limits side e ects

Source Code Analysis and Manipulation, Fourth IEEE International Workshop on, 2004
Weiser's algorithm for computing interprocedural slices has a serious drawback: it generates spur... more Weiser's algorithm for computing interprocedural slices has a serious drawback: it generates spurious criteria which are not feasible in the control flow of the program. When these extraneous criteria are used the slice becomes imprecise in that it has statements that are not relevant to the computation. Horwitz, Reps and Binkley solved this problem by devising the System Dependence Graph with an associated algorithm that produced more precise interprocedural slices. We take a "step backward" and show how to generate exactly the interprocedural slicing criteria needed, using the program's call graph or a stack. This technique can also be used on a family of program dependence graphs that represent all procedures in a program and are not interconnected by a system dependence graph. Then we show how to use the Horwitz, Reps and Binkley interprocedural slicing algorithm to generate criteria and show that the criteria so generated are equal to those generated by the call-graph/stack technique. Thus we present alternative, equivalent ways to generate precise slicing criteria across procedure boundaries. And finally we show that under certain circumstances, Weiser's technique for slicing across procedures is a bit "too strong," for it always generates sufficient criteria to obtain the entire program as a slice on any criteria.
Visual impact analysis
Proceedings of International Conference on Software Maintenance ICSM-96, 1996
Abstract: for software maintainers and developers ofansi C programs. It is based on the premisest... more Abstract: for software maintainers and developers ofansi C programs. It is based on the premisesthat maintainers need to be able to limit thescope of changes and that (most) developmentstarts from some existing, similar systems.The Decomposition Slice Display System(dsds xvcg), a component of the Surgeon'sAssistant, automates and visualizes impactanalysis by displaying the relationshipsamong a program's decomposition slices. Itallows the software maintainer
Certifying software robustness using program slicing
2010 IEEE International Conference on Software Maintenance, 2010
Mohammad Abdallah, Malcolm Munro Department of Computer Science Durham University Durham, United ... more Mohammad Abdallah, Malcolm Munro Department of Computer Science Durham University Durham, United Kingdom [email protected] [email protected] ... Keith Gallagher Department of Computer Science Florida Institute of Technology Florida, USA ...
Regression test selection by exclusion using decomposition slicing
Proceedings of the doctoral symposium for ESEC/FSE on Doctoral symposium - ESEC/FSE Doctoral Symposium '09, 2009
ABSTRACT This research uses an exclusive technique to reduce the regression tests size. Exclusive... more ABSTRACT This research uses an exclusive technique to reduce the regression tests size. Exclusive technique means that a large number of tests will be excluded and leave a relatively small but safe test set. Decomposition slicing is used to empirically investigate whether it can reduce regression tests by an exclusive technique. Decomposition slicing provides a technique to identify the unchanged parts of the system. An exclusive technique will be analysed using an existing analysing framework to compare with its counterpart, the inclusive technique. This research expects to propose a new safe regression test selection by an exclusion technique using decomposition slicing.
Uploads
Papers by Keith Gallagher