Control Dependence for Extended Finite State Machines (2009)
Kelly Androutsopoulos, David Clark, Mark Harman, Zheng Li, Laurence Tratt
Abstract. Though there has been nearly three decades of work on program slicing, there has been comparatively little work on slicing for state machines. One of the primary challenges that currently...
University of North London, (2009)
Yoga Sivagurunathan, Mark Harman, Sebastian Danicic
Program slicing consists of deleting statements from a program, creating a reduced program, a slice, that preserves the original program's behaviour for a given set of variables at a chosen...
Massimiliano Di Penta, Mark Harman, Giuliano Antoniol, Fahim Qureshi
Brooks ’ milestone ‘Mythical Man Month ’ established the observation that there is no simple conversion between people and time in large scale software projects. Communication and training...
Constructing Subtle Faults Using Higher Order Mutation Testing (2009)
Traditional mutation testing considers only first order mutants, created by the injection of a single fault. Often these first order mutants denote trivial faults that are easily killed. This paper...
Constructing Subtle Faults Using Higher Order Mutation Testing (2009)
Traditional mutation testing considers only first order mutants, created by the injection of a single fault. Often these first order mutants denote trivial faults that are easily killed. This paper...
Analysis of Procedure Splitability (2009)
Tao Jiang, Mark Harman, Youssef Hassoun
As software evolves there is a tendency for size to increase and structure to degrade, leading to problems for ongoing maintenance and reverse engineering. This paper introduces a greedy...
London SE14 6NWUnited Kingdom (2009)
Abstract This paper shows how analysis of programs in terms ofpre- and post- conditions can be improved using a generalisation of conditioned program slicing called pre/postconditioned slicing. Such...
Evaluating Key Statements Analysis (2009)
David Binkley, Nicolas Gold, Mark Harman, Zheng Li, Kiarash Mahdavi
Key Statement Analysis extracts from a program, statements that form the core of the program’s computation. A good set of key statements is small but has a large impact. Key statements form a...
Locating dependence structures using search based slicing (2009)
Tao Jiang, Nicolas Gold, Mark Harman, Zheng Li
This paper introduces an approach to locating dependence structures in a program by searching the space of the powerset of the set of all possible program slices. The paper formulates this problem as...
Dependence Anti Patterns (2009)
David Binkley, Nicolas Gold, Mark Harman, Zheng Li, Kiarash Mahdavi, Joachim Wegener
A Dependence Anti Pattern is a dependence structure that may indicate potential problems for on–going software maintenance and evolution. Dependence anti patterns are not structures that must...
A Search Based Approach for Overlapping Concept Boundaries (2009)
Nicolas Gold, Mark Harman, Zheng Li, Kiarash Mahdavi
This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are...
Open Problems in Testability Transformation (2009)
Testability transformation (tetra) seeks to transform a program in order to make it easier to generate test data. The test data is generated from the transformed version of the program, but it is...
Automated Test Data Generation for Aspect-Oriented Programs (2009)
Mark Harman, Fayezin Islam, Tao Xie
Despite the upsurge of interest in the Aspect-Oriented Programming (AOP) paradigm, there remain few results on test data generation techniques for AOP. Furthermore, there is no work on searchbased...
This paper presents results from a study of techniques that improve the performance of graphbased interprocedural slicing of the System Dependence Graph (SDG). This is useful in “massive slicing...
Karnig Derderian, Robert M. Hierons, Mark Harman, Qiang Guo
This paper describes a method for automatically generating unique input output (UIO) sequences for FSM conformance testing. UIOs are used in conformance testing to verify the end state of a...
An Empirical Study of Executable Concept Slice Size (2008)
David Binkley, Nicolas Gold, Mark Harman, Zheng Li, Kiarash Mahdavi
An Executable Concept Slice extracts from a program an executable subprogram that captures the semantics of a specified high-level concept from the program. Executable concept slicing combines the...
Sebastian Danicic, Mark Harman, Rob Hierons, John Howroyd, Program P
1 Program Schemas Program Schemas [1-4] are `programs ' where all expressions are replaced by symbolic expressions of the form f (v1; : : : ; vm) where f is a function or predicate symbol and...
Automated Session Data Repair for Web Application Regression Testing (2008)
This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the...
Problem Solving, Control Methods, and Search – Heuristic (2008)
Evolutionary testing has been widely studied as a technique for automating the process of test case generation. However, to date, there has been no theoretical examination of when and why it works....
Tool-supported refactoring of existing object-oriented code into aspects (2008)
Dave Binkley, Mariano Ceccato, Mark Harman, Paolo Tonella
Aspect Oriented Programming (AOP) provides mechanisms for the separation of crosscutting concerns – functionalities scattered through the system and tangled with the base code. Existing systems are...
A Scalable Approach to Conditioned Slicing Abstract (2008)
J. Howroyd, S. Danicic, Mark Harman
Conditioned slicing can be applied to reverse engineering problems which involve the extraction of executable fragments of code in the context of some criteria of interest. This paper introduces...
The Importance of Metrics in Search Based Software Engineering (2008)
Abstract. This paper was written to accompany the author’s keynote talk at the
TeTra EPSRC Project, some of whom are here today Principal Investigator (2008)
Mark Harman, Mark Harman, Rob Hierons, Chris Fox, Bojan Andonovski, ...
are here Where is King’s College London? Formal
1. INTRODUCTION Automated Unique Input Output (2008)
Karnig Derderian, Robert M. Hierons, Mark Harman, Qiang Guo
sequence generation for conformance
ABSTRACT The Impact of Input Domain Reduction on SearchBased Test Data Generation (2008)
Mark Harman, Phil Mcminn, Joachim Wegener
There has recently been a great deal of interest in search– based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no...
Keith Gallagher, David Binkley, Mark Harman
Traditional program slicing requires two parameters: a program location and a variable, or perhaps a set of variables, of interest. Stop-list slicing adds a third parameter to the slicing criterion:...
Rob Hierons, Mark Harman, Ub Ph, Chris Fox, Lahcen Ouarbya, Mohammed Daoudi
United Kingdom This paper describes the use of conditioned slicing to assist partition testing, illustrating this with a case study. The paper shows how a conditioned slicing tool can be used to...
University of North London, (2008)
Mark Harman, Sebastian Danicic, Yoga Sivagurunathan
Program slicing is a technique for program simpli cation based upon the deletion of statements which cannot a ect the values of a chosen set of variables. Because slicing extracts a subcomponent of...
University of North London, (2008)
Mark Harman, Sebastian Danicic
Program slicing is a technique for automatically identifying the statements of a program which a ect a selected subset of its variables. A large program can be divided intoanumber of smaller programs...
Robert Walser: Writing on the Periphery (2008)
Sewanee Review - Volume 116, Number 1, Winter 2008
Automated Construction of Input and Output Grammars (2008)
Barry Jones, Mark Harman, Sebastian Danicic
Abstract We describe a technique for constructing the input and output grammar of a module. The grammar can be expressed in many ways, we choose BNF, because the notation is widely known from the...
David W. Binkley, Sebastian Danicic, Mark Harman, John Howroyd, Lahcen Ouarbya
A formal relationship between program slicing
Some Directions for the Measurement of Objects (2008)
Mark Harman, Sebastian Danicic
Abstract This paper outlines some approaches to the measurement of classes based upon data flow analysis techniques applied to the data members of the class. Metrics based upon the sets of data...
A Scalable Approach to Conditioned Slicing Abstract (2008)
J. Howroyd, S. Danicic, Mark Harman
Conditioned slicing can be applied to reverse engineering problems which involve the extraction of executable fragments of code in the context of some criteria of interest. This paper introduces...
Abstract Regression testing is an expensive, but important, process. Unfortunately, there may be insufficient resources to allow for the re-execution of all test cases during regression testing. In...
Tool-supported refactoring of existing object-oriented code into aspects (2008)
David Binkley, Mariano Ceccato, Student Member, Mark Harman, Paolo Tonella
Abstract—Aspect-Oriented Programming (AOP) provides mechanisms for the separation of crosscutting concerns—functionalities scattered through the system and tangled with the base code. Existing...
Rob Hierons, Mark Harman, Ub Ph, Chris Fox, Mohammed Daoudi, Lahcen Ouarbya
United Kingdom This paper describes the use of conditioned slicing to assist partition testing, illustrating this with a case study. The paper shows how a conditioned slicing tool can be used to...
Michael R. Laurence, Sebastian Danicic, Mark Harman, Rob Hierons, John Howroyd
A program schema defines a class of programs, all of which have identical statement structure, but whose expressions may differ. We prove that given any two linear, free, liberal structured schemas,...
David W. Binkley, Sebastian Danicic, Mark Harman, Lahcen Ouarbya
A formal relationship between program slicing and partial evaluation is established. It is proved that for terminating programs, a residual program produced by partial evaluation is semantically...
Syntax-Directed Amorphous Slicing (2008)
Sebastian Danicic, Mark Harman, Malcolm Munro, Dave Binkley, Mohammed Daoudi
Abstract An amorphous slice of a program is constructed with respect to a set of variables. The amorphous slice is an executable program which preserves the behaviour of the original on the variables...
Phil Mcminn, Mark Harman, David Binkley
The application of metaheuristic search techniques to the automatic generation of software test data has been shown to be an effective approach for a variety of testing criteria. However, for...
Evolutionary Testing in the Presence of Loop--Assigned (2008)
Flags Testability Transformation, André Baresel, David Binkley, Mark Harman, Daimlerchrysler Ag
Evolutionary testing is an eective technique for automatically generating good quality test data. However, for structural testing, the technique degenerates to random testing in the presence of ag...
Search Based Approaches to Component Selection and (2008)
Prioritization For The, Paul Baker, Mark Harman, Kathleen Steinhöfel, Alexandros Skaliotis
This paper addresses the problem of determining the next set of releases in the course of software evolution. It formulates both ranking and selection of candidate software components as a series of...
Testability Transformation for Ecient (2008)
Automated Test Data, Phil Mcminn, Mark Harman, David Binkley
The application of metaheuristic search techniques to the automatic generation of software test data has been shown to be an e#ective approach for a variety of testing criteria. However, for...
David Binkley, Mark Harman, Jens Krinke
This paper addresses the question: "How can animated visualisation be used to express interesting properties of static analysis?" The particular focus is upon static dependence analysis,...
Constructing Multiple Unique Input/Output Sequences (2008)
Using Metaheuristic Optimisation, Qiang Guo, Robert M. Hierons, Mark Harman, Karnig Derderian
Multiple Unique Input/Output Sequences (UIOs) are often used to generate robust and compact test sequences in finite state machine (FSM) based testing. However, computing UIOs is NP--hard....
Empirical Study of Optimization Techniques for Massive Slicing (2008)
David Binkley, Mark Harman, Jens Krinke
This paper presents results from a study of techniques that improve the performance of graphbased interprocedural slicing of the System Dependence Graph (SDG). This is useful in "massive...
Project Project: Tools for Program Analysis and Comprehension (2008)
Mark Harman, Sebastian Danicic, Barry Jones, Bala Sivagurunathan, Yoga Sivagurunathan
We argue for a `question--and--answer' approach to source code analysis based upon program projection. With our approach, the questions concern the behaviour of a program with respect to a...
This paper introduces MILU, a C mutation testing tool designed for both first order and higher order mutation testing. All previous mutation testing tools apply all possible mutation operators to the...
Slice-Based Measurement of Function Coupling (2007)
Mark Harman, Margaret Okulawon, Bala Sivagurunathan, Sebastian Danicic
In this paper we outline an approach to coupling measurement based upon program slicing. We claim that our coupling metric produces more precise measurements than related information-flowbased...
Automated Construction of Input and Output Grammars (2007)
Barry Jones, Mark Harman, Sebastian Danicic
We describe a technique for constructing the input and output grammar of a module. The grammar can be expressed in many ways, we choose BNF, because the notation is widely known from the theory of...
Program Slicing using Functional Networks (2007)
Sebastian Danicic, Mark Harman, School Of Computing
Program slicing is a technique for identifying a subprogram from an original program. The subprogram, called a slice, is an executable program which maintains the effect of the original upon a chosen...
Andrea De Lucia, Mark Harman, Robert Hierons, Jens Krinke
Many approaches to slicing rely upon the `fact ' that the union of two static slices is a valid slice. It is known that static slices constructed using program dependence graph algorithms are...
Syntax-Directed Amorphous Slicing (2007)
Sebastian Danicic, Mark Harman, Malcolm Munro, Dave Binkley, Mohammed Daoudi, Lin Hu, ...
An amorphous slice of a program is constructed with respect to a set of variables. The amorphous slice is an executable program which preserves the behaviour of the original on the variables of...
C##SIT: A Fully Automated Conditioned Program Slicer (2007)
Chris Fox, Mark Harman, Robert M. Hierons
Conditioned slicing is a source code extraction technique. The extraction is performed with respect to a slicing criterion which contains a set of variables and conditions of interest. Conditioned...
Mark Harman, Lin Hu, Robert Hierons, Harmen Sthamer
This paper argues that Evolutionary testing can be improved by transforming programs with ags into ag free programs. The approach is evaluated by comparing results from the application of the...
Mark Harman, Malcolm Munro, Lin Hu, Xingyuan Zhang
The special section contains nine papers which are extended versions of papers originally published in the proceedings of the IEEE workshop on Source Code Analysis and Manipulation (SCAM 2001). The...
Mark Harman, Nicolas Gold, Rob Hierons, Dave Binkley
One approach to reverse engineering is to partially automate subcomponent extraction, improvement and subsequent recombination. Two previously proposed automated techniques for supporting this...
Mark Harman, Chris Fox, Rob Hierons, Lin Hu, Sebastian Danicic, Joachim Wegener
Variable dependence is an analysis problem in which the aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediate program variables. This paper...
Mark Harman, Lin Hu, Rob Hierons, Chris Fox, Sebastian Danicic, Joachim Wegener, ...
Abstract Evolutionary testing is a search based approach to the automated generation of systematic test data, in which the search is guided by the test data adequacy criterion. Two problems for...
Lahcen Ouarbya, Sebastian Danicic, Mohamed Daoudi, Mark Harman, Ub Ph, Chris Fox, ...
This paper extends a previously developed intraprocedural denotational program slicer to handle procedures. Using the denotational approach, slices can be defined in terms of the abstract syntax of...
Xingyuan Zhang, Malcolm Munro, Mark Harman, Lin Hu
Abstract. This paper describes a formalization of the weakest precondition, wp, for general recursive programs using the type-theoretical proof assistant Coq. The formalization is a deep embedding...
M. Daoudi, L. Ouarbya, J. Howroyd, S. Danicic, Mark Harman, Ub Ph, ...
Conditioned slicing can be applied to reverse engineering problems which involve the extraction of executable fragments of code in the context of some criteria of interest. This paper introduces...
Slice-Based Measurement of Function Coupling Position Paper (2007)
Mark Harman, Margaret Okulawon, Bala Sivagurunathan, Sebastian Danicic
Abstract In this paper we outline an approach to coupling measurement based upon program slicing. We claim that our coupling metric produces more precise measurements than related...
Department of Information Systems and Computing, (2007)
Mark Harman, Robert M. Hierons
Program slicing is a technique for simplifying programs by focusing on selected aspects of semantics. The process of slicing deletes those parts of the program which can be determined to have no...
Mark Harman, Dan Simpson, Sebastian Danicic
Abstract. Program slicing is a technique by which statements are deleted from a program in such a way as to preserve a projection of the original program's semantics. It is shown that slicing...
Rob Hierons, Mark Harman, Ub Ph, Chris Fox, Lahcen Ouarbya, Mohammed Daoudi
United Kingdom This paper describes the use of conditioned slicing to assist partition testing, illustrating this with a case study. The paper shows how a conditioned slicing tool can be used to...
Mark Harman, Rob Hierons, Ub Ph, Chris Fox, Sebastian Danicic, John Howroyd
This paper shows how analysis of programs in terms of pre- and post- conditions can be improved using a generalisation of conditioned program slicing called pre/post conditioned slicing. Such...
Research A New Algorithm for Slicing Unstructured Programs (2007)
Mark Harman, Sebastian Danicic
Program slicing is an automatic program abstraction technique whose many applications include software maintenance, re--engineering and comprehension, all of which rely crucially upon the precision...
Program Simplication as a Means of Approximating Undecidable Propositions (2007)
We describe an approach which mixes testing, slicing, transformation and formal verication to investigate speculative hypotheses concerning a program, formulated during program comprehension...
of Computing, 8(5):607--616, 1996. (2007)
Mark Harman, Dan Simpson, Carroll Morgan, Annabelle Mciver, Karen Seidel, ...
[186] Nancy Lynch and Frits Vaandrager. Action transducers and timed automata.
A multiobjective approach to search-based test data generation (2007)
There has been a considerable body of work on search–based test data generation for branch coverage. However, hitherto, there has been no work on multi–objective branch coverage. In many...
An empirical study of static program slice size (2007)
Abstract This paper presents results from a study of all slices from 43 programs, ranging up to 136,000 lines of code in size. The study investigates the effect of five aspects that affect slice...
A multiobjective approach to search-based test data generation (2007)
There has been a considerable body of work on search–based test data generation for branch coverage. However, hitherto, there has been no work on multi–objective branch coverage. In many...
An empirical study of static program slice size (2007)
Abstract This paper presents results from a study of all slices from 43 programs, ranging up to 136,000 lines of code in size. The study investigates the effect of five aspects that affect slice...
Jian Ren, Supervised Professor, Mark Harman, Jian Ren
I would like to express my gratitude to all those who gave me the possibility to complete this thesis. I am deeply indebted to Professor Mark Harman whose valuable advice, hints and warm inspiration...
Mahdavi, Kiarash, Gold, Nicolas, Li, Zheng, Harman, Mark
One approach to supporting program comprehension involves binding concepts to source code. Previously proposed approaches to concept binding have enforced nonoverlapping boundaries. However,...
Static program slicing algorithms are minimal for free liberal program schemas (2006)
Sebastian Danicic, Chris Fox, Mark Harman, Rob Hierons, John Howroyd, Michael R. Laurence
Program slicing is an automated source code extraction technique that has been applied to a number of problems including testing, debugging, maintenance, reverse engineering, program comprehension,...
Qiang Guo, Qiang Guo, Robert M. Hierons, Mark Harman, Karnig Derde, Qiang Guo, ...
To my parents,
I started this project at a point in my life when I faced numerous new responsibilities. Being a newly wed, doing an MSc seemed close to impossible. But I firmly believe that if one wishes, the...
The species per path approach to search-based test data generation (2006)
Phil Mcminn, Mark Harman, David Binkley, Paolo Tonella
This paper introduces the Species per Path approach to search-based software test data generation. The approach transforms the program under test into a version in which multiple paths to the search...
David Binkley, Mark Harman, Jens Krinke
This paper addresses the question: "How can animated visualisation be used to express interesting properties of static analysis?" The particular focus is upon static dependence analysis,...
Static program slicing algorithms are minimal for free liberal program schemas (2006)
Schemas Sebastian Danicic, Chris Fox, Mark Harman, Rob Hierons, John Howroyd, Michael R. Laurence
Program slicing is an automated source code extraction technique that has been applied to a number of problems including testing, debugging, maintenance, reverse engineering, program comprehension,...
Qiang Guo, Robert M. Hierons, Mark Harman, Karnig Derderian
for fault diagnosis when testing from
Improving test quality using robust unique input/output circuit sequences (UIOCs (2006)
Qiang Guo, Robert M. Hierons, Mark Harman, Karnig Derderian
In finite state machine (FSM) based testing, the problem of fault masking in the unique input/output (UIO) sequence may degrade the test performance of the UIO based methods. This paper investigated...
Automated Unique Input Output sequence generation for conformance testing of FSMs (2006)
Karnig Derderian, Robert M. Hierons, Mark Harman, Qiang Guo
This paper describes a method for automatically generating unique input output (UIO) sequences for FSM conformance testing. UIOs are used in conformance testing to verify the end state of a...
05451 Executive Summary -- Beyond Program Slicing Dagstuhl Seminar (2006)
Harman, Mark, Binkley, Dave, Krinke, Jens
The aim of the "beyond program slicing" seminar was to explore emergent applications of program slicing and ways in which slicing techniques and ideas could be combined with those from other areas of...
05451 Abstracts Collection -- Beyond Program Slicing (2006)
Binkley, Dave, Harman, Mark, Krinke, Jens
From 06.11.05 to 11.11.05, the Dagstuhl Seminar 05451 ``Beyond Program Slicing'' was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl. During the seminar, several...
Automated Unique Input Output Sequence Generation for Conformance Testing of FSMs (2006)
Derderian, Karnig, Hierons, Robert M., Harman, Mark, Guo, Qiang
This paper describes a method for automatically generating unique input output (UIO) sequences for FSM conformance testing. UIOs are used in conformance testing to verify the end state of a...
Automated Unique Input Output Sequence Generation for Conformance Testing of FSMs (2006)
Derderian, Karnig, Hierons, Robert M., Harman, Mark, Guo, Qiang
This paper describes a method for automatically generating unique input output (UIO) sequences for FSM conformance testing. UIOs are used in conformance testing to verify the end state of a...
Automated refactoring of object oriented code into aspects (2005)
Dave Binkley, Mariano Ceccato, Mark Harman, Paolo Tonella
This paper presents a human guided automated approach to refactoring object oriented programs to the aspect oriented paradigm. The approach is based upon the iterative application of four steps:...
An empirical study of the robustness of two module clustering functions (2005)
Two of the attractions of search-based software engineering (SBSE) derive from the nature of the fitness functions used to guide the search. These have proved to be highly robust (for a variety of...
Search--Based Amorphous Slicing (2005)
Deji Fatiregun Mark, Mark Harman, Robert M. Hierons
Amorphous slicing is an automated source code extraction technique with applications in many areas of software engineering, including comprehension, reuse, testing and reverse engineering. Algorithms...
Automated Refactoring of Object Oriented Code into Aspects (2005)
Dave Binkley Mariano, Mariano Ceccato, Mark Harman, Paolo Tonella
This paper presents a human--guided automated approach to refactoring object oriented programs to the aspect oriented paradigm. The approach is based upon the iterative application of four steps:...
An Empirical Study of the Robustness of Two Module (2005)
Clustering Fitness Functions, Mark Harman
Two of the attractions of search-based software engineering (SBSE) derive from the nature of the fitness functions used to guide the search. These have proved to be highly robust (for a variety of...
Forward Slices Are Smaller Than Backward Slices (2005)
David Binkley Mark, Mark Harman
This paper presents evidence from two empirical studies which show that forward slices will tend to be smaller than backward slices and discusses the importance of this result for work on source code...
Giulio Antoniol, Massimiliano Di Penta, Mark Harman
This paper evaluates the use of three different search– based techniques, namely genetic algorithms, hill climbing and simulated annealing, and two problem representations, for planning resource...
Title: A Clustering Genetic Algorithm for Software (2005)
Kiarash Mahdavi, Mark Harman, Robert Hierons, Modularisation Multiple, Hill Climbing
The undersigned hereby certify that they have read and
Static Program Slicing Algorithms are Minimal for Free Liberal Program Schemas (2005)
Danicic, Sebastian, Fox, Chris, Harman, Mark, Hierons, Rob, Howroyd, John, Laurence, Michael R.
Program slicing is an automated source code extraction technique that has been applied to a number of problems including testing, debugging, maintenance, reverse engineering, program comprehension,...
Static Program Slicing Algorithms are Minimal for Free Liberal Program Schemas (2005)
Danicic, Sebastian, Fox, Chris, Harman, Mark, Hierons, Rob, Howroyd, John, Laurence, Michael R.
Program slicing is an automated source code extraction technique that has been applied to a number of problems including testing, debugging, maintenance, reverse engineering, program comprehension,...
Hoogeveen, Ruud W., Yagoubov, Pavel A., Maurellis, Ahilleas, Koshelets, Valerie P., Shitov, S.V., Mair, Ulrich, ...
Andre Baresel, Mark Harman, David Binkley, Bogdan Korel
Evolutionary testing is an effective technique for automatically generating good quality test data. However, for structural testing, the technique degenerates to random testing in the presence of...
Getting results from search-based approaches to software engineering (2004)
Software engineers often face problems associated with the balancing of competing constraints, trade-offs between concerns and requirement imprecision. Perfect solutions are often either impossible...
Testability transformation (2004)
Mark Harman, Lin Hu, Robert Hierons, Joachim Wegener, Harmen Sthamer, Marc Roper
A testability transformation is a source-to-source transformation that aims to improve the ability of a given test generation method to generate test data for the original program. This paper...
Evolving transformation sequences using genetic algorithms (2004)
Deji Fatiregun, Mark Harman, Robert M. Hierons
Abstract Program transformation is useful in a number of appli-cations including program comprehension, reverse engineering and compiler optimization. In all these applica-tions, transformation...
Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)
Massimiliano Di Penta, Mark Harman
Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it...
Metrics are fitness functions too (2004)
Metrics, whether collected statically or dynamically, and whether constructed from source code, systems or processes, are largely regarded as a means of evaluating some property of interest. This...
A survey of empirical results on program slicing (2004)
A program slice extracts a semantically meaningful portion of a program, based upon a user{selected slicing criterion. As the study of program slicing has matured, a growing body of empirical data...
Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)
Giuliano Antoniol, Massimiliano Di Penta, Mark Harman
Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it...
Building Executable Union Slices using Conditioned Slicing (2004)
Sebastian Danicic, Goldsmiths College, Andrea De Lucia, Mark Harman
Program slicing can be used as a support for program comprehension, because it allows a large program to be divided up into smaller slices, each of which can be understood in isolation from the rest....
Getting Results from Search-Based Approaches to Software Engineering (2004)
Introduction Software engineers often face problems associated with the balancing of competing constraints, trade-offs between concerns and requirement imprecision. Perfect solutions are often either...
ConSUS: A Light-Weight Program Conditioner (2004)
Sebastian Danicic Mohammed, Mohammed Daoudi, Chris Fox, Mark Harman, Rob M. Hierons, John R. Howroyd, ...
Program conditioning consists of identifying and removing a set of statements which cannot be executed when a condition of interest holds at some point in a program. It has been applied to problems...
Mark Harman, Lin Hu, Rob Hierons, Joachim Wegener, Harmen Sthamer, (2004)
Mark Harman, Lin Hu, Rob Hierons, Joachim Wegener, Harmen Sthamer, Andre Baresel And, ...
A testability transformation is a source-to-source transformation that aims to improve the ability of a given test generation method to generate test data for the original program. This paper...
Evolving Transformation Sequences using Genetic Algorithms (2004)
Deji Fatiregun Mark, Mark Harman, Robert M. Hierons
Program transformation is useful in a number of applications including program comprehension, reverse engineering and compiler optimization. In all these applications, transformation algorithms are...
Loop Squashing Transformations for Amorphous Slicing (2004)
Program slicing is a source code extraction technique that can be used to support reverse engineering by automatically extracting executable subprograms that preserve some aspect of the original...
Analysis and Visualization of (2004)
Predicate Dependence On, David Binkley, Mark Harman
Empirical data concerning the qualitative and quantitative nature of program dependence is presented for a set of 20 programs ranging from 600 lines of code to 167,000 lines of code. The sources of...
Consus: A lightweight program conditioner (2004)
Sebastian Danicic, Mohammed Daoudi, Chris Fox, Mark Harman, Rob M. Hierons, John R. Howroyd, ...
Program conditioning consists of identifying and removing a set of statements which cannot be executed when a condition of interest holds at some point in a program. It has been applied to problems...
Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)
Giuliano Antoniol, Massimiliano Di Penta, Mark Harman
Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it...
Hierons. ConSIT: a fully automated conditioned program slicer (2004)
Chris Fox, Sebastian Danicic, Mark Harman, Robert M. Hierons
Conditioned slicing is a source code extraction technique. The extraction is performed with respect to a slicing criterion which contains a set of variables and conditions of interest. Conditioned...
Hierons. Amorphous procedure extraction (2004)
Mark Harman, David Binkley, Ranjit Singh, Robert M. Hierons
The procedure extraction problem is concerned with the meaning preserving formation of a procedure from a (not necessarily contiguous) selected set of statements. Previous approaches to the problem...
ConSUS: A Light-Weight Program Conditioner (2004)
Sebastian Danicic Mohammed, Mohammed Daoudi, Chris Fox, Mark Harman, Rob M. Hierons, John R. Howroyd, ...
Program conditioning consists of identifying and removing a set of statements which cannot be executed when a condition of interest holds at some point in a program. It has been applied to problems...
Michael R. Laurence, Sebastian Danicic, Mark Harman, Rob Hierons, John Howroyd
A program schema defines a class of programs, all of which have identical statement structure, but whose expressions may differ. We define a class of syntactic similarity binary relations between...
Computing unique input/output sequences using genetic algorithms (2004)
Qiang Guo, Robert M. Hierons, Mark Harman, Karnig Derderian
The problem of computing Unique Input/Ouput sequences(UIOs) is NP-hard. Genetic algorithms (GAs) have been proven to be effective in providing good solutions for some NP-hard problems. In this work,...
Konstantinos Adamopoulos, Mark Harman, Robert M. Hierons
Abstract. The use of Genetic Algorithms in evolution of mutants and test cases o ers new possibilities in addressing some of the main problems of mutation testing. Most speci cally the problem of...
Metrics are fitness functions too (2004)
Metrics, whether collected statically or dynamically, and whether constructed from source code, systems or processes, are largely regarded as a means of evaluating some property of interest. This...
An empirical study of predicate dependence levels and trends (2003)
Many source code analyses are closely related to and strongly influenced by interdependence among program components. This paper reports results from an empirical study of the interdependences...
Reformulating Software Engineering as a Search Problem (2003)
John Clarke, José Javier Dolado, Mark Harman, Robert Hierons, Bryan Jones, Mary Lumkin, ...
Metaheuristic techniques such as genetic algorithms, simulated annealing and tabu search have found wide application in most areas of engineering. These techniques have also been applied in business,...
Internally, many source code analysis tools make use of graphs. For example, one of the oldest and most widely used internal graphs is the control-flow graph developed for use within a compiler. Work...
Formal Verification of Communication Protocol Using Type Theory (2003)
Xingyuan Zhang, Xiren Xie, Malcolm Munro, Mark Harman, Lin Hu
In this paper, an approach is proposed to verify communication protocol using the type theoretical proof assistant Coq. Compared with existing methods of protocol verification, this approach is based...
An Empirical Study of Predicate Dependence Levels and Trends (2003)
David Binkley Mark, Mark Harman
Many source code analyses are closely related to and strongly influenced by interdependence among program components. This paper reports results from an empirical study of the interdependences...
A survey of empirical results on program slicing (2003)
A program slice extracts a semantically meaningful portion of a program, based upon a user-selected slicing criterion. As the study of program slicing has matured, a growing body of empirical data...
Evolutionary testing supported by slicing and transformation (2002)
Mark Harman, Lin Hu, Rob Hierons, Chris Fox
Abstract Evolutionary testing is a search based approach to the automated generation of systematic test data, in which the search is guided by the test data adequacy criterion. Two problems for...
An interprocedural amorphous slicer for WSL (2002)
Sebastian Danicic, Mark Harman, Malcolm Munro, Mohammed Daoudi
by combining results from the amorphous slicer with results from a prototype conditioned slicer for WSL. 1
VADA: A transformation-based system for variable dependence analysis (2002)
Abstract Variable dependence is an analysis problem in whichthe aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediateprogram variables. This...
Slice-based dynamic memory modelling – a case study (2002)
Yoga Sivagurunathan, Mark Harman, Bala Sivagurunathan
Program slicing is a source-code extraction technique that identi es parts of a program which have no eect upon a chosen set of variables at a point of interest. Slices can be constructed statically...
This paper reports experiments with automated software modularization and remodularization, using search-based algorithms, the tness functions of which are derived from measures of module...
An interprocedural amorphous slicer for WSL (2002)
Sebastian Danicic, Mark Harman, Malcolm Munro, Mohammed Daoudi, Lin Hu, Xingyuan Zhang, ...
This paper presents a simple interprocedural algorithm for amorphous slicing and illustrates the way in which interprocedural amorphous slicing improves upon interprocedural syntax{preserving...
A post-placement side-effect removal algorithm (2002)
Mark Harman, Lin Hu, Rob Hierons, Malcolm Munro, Xingyuan Zhang, Jose Javier Dolado, ...
Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the...
Mechanized Operational Semantics of WSL (2002)
Xingyuan Zhang, Malcolm Munro, Mark Harman, Lin Hu
This paper presents an experiment on computer assisted formal verication of program transformations. The operational semantics of WSL is formalized in the type theoretical proof assistant Coq, which...
Weakest Precondition for General Recursive Programs Formalized in Coq (2002)
Xingyuan Zhang, Malcolm Munro, Mark Harman, Lin Hu
This paper describes a formalization of the weakest precondition, wp, for general recursive programs using the type-theoretical proof assistant Coq. The formalization is a deep embedding using the...
Equivalence of Conservative, Free, Linear Program Schemas is Decidable (2002)
Michael R. Laurence, Sebastian Danicic, Mark Harman, Rob Hierons, John Howroyd
A program schema de nes a class of programs, all of which have identical statement structures, but whose expressions may dier. We prove that given any two structured schemas which are conservative,...
Code extraction algorithms which unify slicing and concept assignment (2002)
Mark Harman, Nicolas Gold, Rob Hierons, Dave Binkley
2 UMIST 3
Conditioned Slicing Supports Partition Testing (2002)
Rob Hierons And, Rob Hierons, Mark Harman, Ub Ph, Chris Fox, Mohammed Daoudi, ...
This paper describes the use of conditioned slicing to assist partition testing, illustrating this with a case study. The paper shows how a conditioned slicing tool can be used to provide con dence...
Improving evolutionary testing by flag removal (2002)
Abstract This paper argues that Evolutionary testing can be improved by transforming programs with flags into flag free programs. The approach is evaluated by comparing results from the application...
Abstract This paper reports experiments with automated software modularization and remodularization, using search-based algorithms, the fitness functions of which are derived from measures of module...
SEMINAL: Software engineering using metaheuristic innovative algorithms (2001)
Metaheuristic search algorithms have been widely applied to almost all engineering disciplines with the exception of software engineering. It is surprising that these essentially software driven...
Node Coarsening Calculi for Program Slicing (2001)
Mark Harman, Sebastian Danicic, Chris Fox, Rob Hierons, John Howroyd, Kings College
Several approaches to reverse and re-engineering are based upon program slicing. Unfortunately, for large systems, such as those which typically form the subject of reverse engineering activities,...
SEMINAL: Software engineering using metaheuristic innovative algorithms (2001)
Metaheuristic search algorithms have been widely applied to almost all engineering disciplines with the exception of software engineering. It is surprising that these essentially software driven...
GUSTT: An amorphous slicing system which combines slicing and transformation (2001)
Mark Harman, Malcolm Munro, Lin Hu, Xingyuan Zhang
This paper presents a system for amorphous program slicing which combines slicing and transformation to achieve thinner slices than are possible using conventional syntax-preserving slicing. The...
Side-effect removal transformation (2001)
Mark Harman, Malcolm Munro, Lin Hu, Xingyuan Zhang
A side eect is any change in program state that occurs as a by-product of the evaluation of an expression. Side eects are often thought to impede program comprehension and to lead to complex, poorly...
Chris Fox, Mark Harman, Rob Hierons, Ub Ph, Sebastian Danicic
This paper introduces backward conditioning. Like forward conditioning (used in conditioned slicing), backward conditioning consists of specialising a program with respect to a condition inserted...
Search Based Software Engineering (2001)
Mark Harman King's, Mark Harman
This paper was written to accompany the author's keynote talk for the Workshop on Computational Science in Software Engineering held in conjunction with International Conference in Computational...
Node Coarsening Calculi for Program Slicing (2001)
Mark Harman, Sebastian Danicic, Chris Fox, Rob Hierons, John Howroyd, Kings College
Several approaches to reverse and re-engineering are based upon program slicing. Unfortunately, for large systems, such as those which typically form the subject of reverse engineering activities,...
Side-effect removal transformation (2001)
Abstract A side effect is any change in program state that occurs as a by-product of the evaluation of an expression. Side effects are often thought to impede program comprehension and to lead to...
Like for-ward conditioning (used in conditioned slicing), backward conditioning consists of specialising a program with respectto a condition inserted into the program.
ConSIT: A Conditioned Program Slicer (2000)
Sebastian Danicic, Chris Fox, Mark Harman
Conditioned slicing is a powerful generalisation of static and dynamic slicing which has applications to many problems in software maintenance and evolution, including re-use, reengineering and...
Using program slicing to assist in the detection of equivalent mutants (1999)
While mutation testing has proved to be an eective way of nding software faults, currently it is only applied to relatively small programs. One of the main reasons for this is the human analysis...
Using Program Slicing to Assist in the Detection of Equivalent Mutants (1999)
Rob Hierons, Mark Harman, Sebastian Danicic
While mutation testing has proved to be an eective way of nding software faults, currently it is only applied to relatively small programs. One of the main reasons for this is the human analysis...
Towards a Maturity Model for Empirical Studies of Software Testing (1999)
Mark Harman, Mike Holcombe, Bryan Jones, Robert Hierons, Stuart Reid, Marc Roper, ...
Software testing is an increasingly important part of the software development process. There is a growing realization that measurement and testing, though imperfect, offer perhaps the best approach...
Program Simplification as a Means of Approximating Undecidable Propositions (1999)
Mark Harman, Chris David Binkley, Sebastian Danicic, Robert Hierons, Chris Fox
We describe an approach which mixes testing, slicing, transformation and formal verication to investigate speculative hypotheses concerning a program, formulated during program comprehension...
Analysis of dynamic memory access using amorphous slicing (1998)
Problems associated with understanding, verifying and reengineering the way in which a system allocates and releases dynamic memory present significant challenges to the software maintainer. Because...
Amorphous program slicing (1997)
Mark Harman, David Binkley, Sebastian Danicic
Traditional, syntax-preserving program slicing simplies a program by deleting components (e.g., statements and predicates) that do not aect a computation of interest. Amorphous slicing removes the...
Amorphous program slicing (1997)
Mark Harman, Sebastian Danicic
This paper introduces amorphous program slicing. Like traditional slicing, amorphous slicing simplifies a program while preserving a projection of its semantics. Unlike traditional slicing, amorphous...
Amorphous program slicing (1997)
Mark Harman, Keith Brian Gallagher
Many software technology problems can be characterised as problems of scale, one of the most important of which is the shear size of the source code which describes the system itself. Program slicing...
Slicing, I/O and the Implicit State (1997)
Yoga Sivagurunathan Mark, Mark Harman, Sebastian Danicic, School Of Computing
Program slicing consists of deleting statements from a program, creating a reduced program, a slice, that preserves the original program's behaviour for a given set of variables at a chosen...
Slicing, I/O and the Implicit State (1997)
Yoga Sivagurunathan, Mark Harman, Sebastian Danicic, School Of Computing
Program slicing consists of deleting statements from a program, creating a reduced program, a slice, that preserves the original program's behaviour for a given set of variables at a chosen...
Amorphous program slicing (1997)
Traditional, syntax-preserving program slicing simplifies a program by deleting components (e.g., statements and predicates) that do not affect a computation of interest. Amorphous slicing removes...
"Digging the Pit of Babel": Retranslating Franz Kafka's Castle (1996)
New Literary History - Volume 27, Number 2, Spring 1996
Some Directions for the Measurement of Objects (1996)
Mark Harman, Sebastian Danicic
This paper outlines some approaches to the measurement of classes based upon data flow analysis techniques applied to the data members of the class. Metrics based upon the sets of data members...
The Next 700 Slicing Criteria (1996)
Mark Harman, Sebastian Danicic, Yoga Sivagurunathan, School Of Computing, Dan Simpson
A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing...
A parallel algorithm for static program slicing (1995)
Sebastian Danicic, Mark Harman, Yoga Sivagurunathan, School Of Computing
Program Slicing is the process of deleting statements in a program that do not affect a given set of variables at a chosen point in the program. In this paper the first parallel slicing algorithm for...
A parallel algorithm for static program slicing (1995)
Sebastian Danicic, Mark Harman, Yoga Sivagurunathan, School Of Computing
Program Slicing is the process of deleting statements in a program that do not affect a given set of variables at a chosen point in the program. In this paper the first parallel slicing algorithm for...
Program Comprehension Assisted by Slicing and Transformation (1995)
Mark Harman, Sebastian Danicic, Yoga Sivagurunathan, School Of Computing
Program slicing is a technique for program simplification based upon the deletion of statements which cannot affect the values of a chosen set of variables. Because slicing extracts a subcomponent of...
Slicing Programs in the Presence of Errors (1995)
Mark Harman, Dan Simpson, Sebastian Danicic
. Program slicing is a technique by which statements are deleted from a program in such a way as to preserve a projection of the original program's semantics. It is shown that slicing algorithms...
Functional models of procedural programs. (1992)
Thesis (Ph. D.)--University of North London, 1992.
Literary echoes [microform] : Franz Kafka and Heinrich von Kleist / (1980)
Thesis (Ph. D.)--Yale University, 1980.
A Parallel Algorithm for Static Program Slicing
Sebastian Danicic, Mark Harman, Yoga Sivagurunathan, School Of Computing
Program Slicing is the process of deleting statements in a program that do not affect a given set of variables at a chosen point in the program. In this paper the first parallel slicing algorithm for...
Using Program Slicing to Simplify Testing
Mark Harman, Sebastian Danicic, School Of Computing
Program slicing is a technique for automatically identifying the statements of a program which affect a selected subset of its variables. A large program can be divided into a number of smaller...
Using Program Slicing to Simplify Testing
Mark Harman, Sebastian Danicic
Program slicing is a technique for automatically identifying all the lines in a program which affect a selected subset of variables. A large program can be divided into a number of smaller programs...