Mark Harman

Publication List Details

Period

1980 - 2009

Number

183

Co-Authors

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...

The Effect of Communication Overhead on Software Maintenance Project Staffing: a Search-Based Approach (2009)

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)

Yue Jia, Mark Harman

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)

Yue Jia, Mark Harman

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)

Mark Harman

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)

Mark Harman

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...

and (2009)

David Binkley, Mark Harman

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...

doi:10.1093/comjnl/bxl003 Automated Unique Input Output Sequence Generation for Conformance Testing of FSMs (2008)

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...

Dependence Analysis (2008)

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)

Nadia Alshahwan, Mark Harman

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)

Mark Harman

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)

Mark Harman

Abstract. This paper was written to accompany the author’s keynote talk at the

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...

Stop-List Slicing (2008)

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:...

Abstract (2008)

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)

Harman, Mark.

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...

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...

Systems and Computing (2008)

Mark Harman

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...

Abstract (2008)

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...

Contents (2008)

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,...

Under consideration for publication in Formal Aspects of Computing A Formal Relationship Between Program Slicing and Partial Evaluation (2008)

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...

Testability Transformation for Efficient Automated Test Data Search in the Presence of Nesting (2008)

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...

Animated Visualisation of Static Analysis: Characterising, Explaining and Exploiting the Approximate Nature of Static Analysis (2008)

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...

Milu: A customizable, runtimeoptimized higher order mutation testing tool for the full c language (2008)

Yue Jia, Mark Harman

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...

Systems and Computing, (2007)

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...

Andre Baresel (2007)

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...

2 (2007)

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...

2 (2007)

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...

1 (2007)

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...

New Cross, London (2007)

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...

London SE14 6NW (2007)

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...

1 (2007)

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...

London SE14 6NW (2007)

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...

1 (2007)

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...

London WC2R 2LS (2007)

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...

London WC2R 2LS (2007)

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)

Mark Harman, 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...

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)

Mark Harman

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)

Nicolas Gold, Mark Harman

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)

Mark Harman

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)

Nicolas Gold, Mark Harman

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...

Supervised by (2007)

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...

Allowing Overlapping Boundaries in Source Code using a Search Based Approach to Concept Binding (2007)

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,...

ACKNOWLEDGEMENTS (2006)

Maryam Umar, Mark Harman

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...

Characterising, Explaining, and Exploiting the Approximate Nature of Static Analysis Through Animation (2006)

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,...

finite (2006)

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)

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...

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...

Search-based techniques applied to optimization of project planning for a massive maintenance project (2005)

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...

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,...

Evolutionary testing in the presence of loop-assigned flags: A testability transformation approach (2004)

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)

Mark Harman, Joachim Wegener

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)

Mark Harman, John Clark

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)

David Binkley, Mark Harman

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)

Mark Harman, Joachim Wegener

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)

Lin Hu Mark, Mark Harman

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...

Equivalence of linear, free, liberal, structured program schemas is decidable in polynomial time (2004)

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,...

Hierons. How to overcome the equivalent mutant problem and achieve tailored selective mutation using co-evolution (2004)

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)

Mark Harman, John Clark

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)

David Binkley, 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...

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,...

Results from a Large-Scale Study of Performance Optimization Techniques for Source Code Analyses Based on Graph Reachability Algorithms (2003)

David Binkley, Mark Harman

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)

David Binkley, Mark Harman

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)

Mark Harman, Joachim Wegener

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...

A new representation and crossover operator for search-based optimization of software modularization (2002)

Mark Harman, Robert Hierons

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,...

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)

Mark Harman, Lin Hu

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...

A new representation and crossover operator for search-based optimization of software modularization (2002)

Mark Harman, Robert Hierons

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)

Mark Harman, Ub Ph

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)

Mark Harman, Ub Ph

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...

Backward conditioning: a new program specialisation technique and its application to program comprehension (2001)

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)

Mark Harman, Malcolm Munro

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...

AND DANICIC,S. Backward conditioning: a new program specialisation technique and its application to program comprehension (2001)

Mark Harman

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)

Rob Hierons, Mark Harman

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)

Mark Harman

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)

Mark Harman, David Binkley

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)

Harman, Mark.

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)

Harman, Mark.

Thesis (Ph. D.)--University of North London, 1992.

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...