Research
The focuses of my research are software engineering and
programming languages. Some recurrent themes in my research are
testing and verification, the use of precisely defined
notations, and formal logic. These themes appear in various
forms in the specific research projects I am undertaking:
- Randomized testing. Random generation is a good way of
generating lots of test input for software, as long as you have
a good way of automatically checking the results (like a log
file analyzer). The question is, is it an effective and
efficient way of testing software? The research that I and
my research group have been doing indicates that it is good
for unit testing.
- Experimental methods in software testing research.
In order to study software testing methods, we need to know
how efficient and effective they are, particularly when
compared to one another. I am studying what the best ways
are to tell whether one software testing method is more
effective than another.
- Testing using log file analysis. Large software systems
often produce "log files" reporting on the state of the
computations they do. I am developing and studying the
application of precisely-defined tools for analyzing these log
files, to see whether they reveal faults in the systems being
tested.
- Logical foundations of programming languages. I believe
that symbolic logic can be used effectively as the basis for
precisely defining the intended behaviour of programs, and
that this is closely related to the definition of formal set
theories and logic programming.
My research group has also started work on two areas of research
that have great future potential:
- Fault localization. This is the process of automatically
giving a programmer advice on where in their program a fault
might be located, given compile-time and run-time information
about the program and a failing test case.
- Accessible applications. We are developing a framework
that allows easy development of applications that are
accessible to a wide range of people regardless of
disabilities.
DBLP seems to have consolidated my publications now.
There used to be four separate entries containing my papers --
now there's
only one.
Some recent publications
are listed here.
Some software
that I have written or been involved with is available here,
including the Log File Analysis Language (LFAL) compiler,
lfalc.
About me
I am Canadian and lived for a total of 20 years in
Vancouver, BC, two years in Ottawa working for
Bell-Northern Research (later swallowed up by
Northern Telecom),
and 3.5 years doing my PhD at the
Department of Computer
Science, University of Edinburgh, Scotland.
After getting my PhD in 1991,
I worked for several years as a researcher and teacher
in the Computer Science departments at
Simon Fraser University
and the
University of British Columbia.
I took up my present position in July 1997.
"Jamie" is a Scottish nickname for "James" -- my family is
Scottish-Canadian. In most situations I prefer to be called
Jamie, which is what my family and friends call me. However, my
"official" name is James Harold Andrews, so I use "James H.
Andrews" on most of my publications.
I am a member of the
IEEE
and the
ACM.
More About Research
Outside interests
To do with my outside interests:
- An HTML version of the 12th century Zen classic
10 Bulls.
Contact Information:
Dr. James H. Andrews
Department of Computer Science
University of Western Ontario
London, Ontario, CANADA
N6A 5B7
Office Location: Middlesex College (MC) 365
Department Office (for deliveries): MC 355
Email: andrews at csd.uwo.ca
Phone: (519) 661-2111 ext. 86856
Fax: (519) 661-3515