Westley Weimer
|
Assistant Professor of Computer Science
219 Olsson Hall
Office Hours: Friday, 2:00-3:15
O: 434-924-1021, F: 434-982-2214
|
Scholarship Information
I run the annual Computing and
Communication Scholarship for Undergraduate Women. Applications are due
by June 30th.
Graduate Student Ombudsman
As the graduate student ombudsman, I hear the
complaints and represent the interests of the graduate students to the rest
of the faculty. Feel free to contact me or stop in to see me if you have
any questions or concerns.
I also support the UVA Association for Computing
Machinery, the UVA ACM
Committee on Women in Computing, and the UVA Computer Science
Graduate Student Group.
Conferences
Consider submitting to, and attending, these fine venues:
Teaching
Fall 2010:
- CS 1120 (From Ada and Euclid to Quantum Computing and the World Wide
Web)
Previous courses and evaluations:
Research
My main research interest lies in advancing software quality by using both
static and dynamic programming language approaches. I am particularly
concerned with automatic or minimally-guided techniques that can scale and
be applied easily to large, existing programs. I believe that finding bugs
is insufficient, and I also work to help programmers address defects,
understand error reports, and program correctly. I am also interested in
designing languages and language features to help prevent errors.
I believe in using concepts from other areas of computer science to help
address software quality problems. I have had good luck combining elements
of databases (transactional concepts and analyzing clients), systems (OS
and networking), and machine learning (clustering and classification) with
my research.
Current major research thrusts:
- Fixing Real Bugs in Real Progams With Genetic Algorithms.
With Stephanie Forrest, we
have automatically generated repairs for legacy C programs using only
standard testcases (no code annotations or formal specifications). We use
genetic proramming and custom progrom representations and genetic operators
to generate program variants until we find one that passes all of the
testcases but does not demonstrate the error.
- The Analysis of Non-Executable Artifacts. Source code is not the
only artifact of the software development process. We propose to model,
analyze and generate program documentation, software readability, software
complexity, and run-time execution frequency.
- The Analysis of String Variables. We are interested in decision
procedures and formalisms to help statically predict that values of string
variables. We are interested in generating indicative
testcases for code injection vulnerabilities and
cross-site scripting, finding likely invariants or policies for string
variables, and verifying the soundness program transformations in the
presence of string variables.
- Defect Reporting and Triage. Software maintenance is centered
around defect reports, but up to 35% of reports are duplicates or otherwise
invalid. We are interested in automatically filtering away invalid bug
reports, categorizing duplicate reports with their parents, and generally
reducing the effort required for software defect triage.
- User-Visible Errors in Web Applications. We propose to
reduce the costs of testing web applications by studying and modeling
errors in this domain. We are interested in
automatically determining if changes in web application output indicate
errors, and to model and measure the consumer-perceived severity of these
faults.
- The Helix Project.
With
John Knight,
Dave Evans,
Jack Davidson, and
Anh Nguyen-Tuong I'm working on the
Helix project, a self-regenerative
software security architecture for defending computer systems against
well-funded and determined attackers. Helix will proactively monitor, adapt
and reconfigure software components to present attackers with an ever
changing system, thus dramatically raising the expertise and resources
required for an attack.
- The Echo Project.
With John
Knight, we are interested in a new approach to software verification,
which makes formal verification practical by extracting high-level
specifications from low-level annotations and by transforming programs to
make them easier to verify.
Publications
-
Westley Weimer, Stephanie Forrest, Claire Le Goues, ThanhVu Nguyen:
Automatic Program Repair With Evolutionary
Computation.
Communications of the ACM Vol. 53 No. 5, May 2010, Pages 109-116.
-
Kinga Dobolyi, Westley Weimer.
Modeling Consumer-Perceived Web Application Fault Severities for
Testing.
International Symposium on Software Testing and Analysis (ISSTA) 2010
(to appear)
-
Ethan Fast, Claire Le Goues, Stephanie Forrest, Westley Weimer:
Designing better fitness functions for automated program repair.
Genetic and Evolutionary Computing Conference (GECCO) 2010 (to
appear)
-
Raymond P.L. Buse, Westley Weimer:
Learning a Metric for Code Readability.
IEEE Trans. Software Engineering 09 Nov (2009)
-
Kinga Dobolyi, Westley Weimer. Harnessing Web-based Application
Similarities to Aid in Regression Testing. International Symposium
on Software Reliability Engineering (ISSRE) 2009
(to appear)
-
Tamim Sookoor, Timothy Hnat, Pieter Hooimeijer, Westley Weimer, Kamin
Whitehouse:
Macrodebugging: Providing Abstract Views of System State.
Conference on Embedded Networked Sensor Systems (SenSys) 2009:
141-151
-
Elizabeth Soechting, Kinga Dobolyi, Westley Weimer.
Syntactic Regression Testing for Tree-Structured Output.
International Symposium on Web Systems Evolution (WSE) 2009
(to appear)
-
Stephanie Forrest, Westley Weimer, ThanhVu Nguyen, Claire Le Goues.
A Genetic Programming Approach to
Automated Software Repair.
Genetic and Evolutionary Computing Conference (GECCO) 2009: 947-954
(best paper award)
(gold human-competitive award)
-
ThanhVu Nguyen,
Westley Weimer,
Claire Le Goues,
Stephanie Forrest.
Using Execution Paths to Evolve Software Patches.
Workshop on Search-Based Software Testing (SBST) 2009
(best short paper award)
(best presentation award)
-
Xiang Yin, John Knight, Westley Weimer:
Exploiting Refactoring in Formal Verification.
International Conference on Dependable Systems and Networks (DSN) 2009: 53-62
-
Pieter Hooimeijer, Westley Weimer:
A Decision Procedure for Subset Constraints over Regular Languages.
Programming Languages Design and Implementation (PLDI) 2009: 188-198
-
Claire Le Goues, Westley Weimer:
Specification Mining With Few False Positives.
Tools and Algorithms for the Construction and Analysis of Systems
(TACAS) 2009: 292-306
-
Westley Weimer, ThanVu Nguyen, Claire Le Goues, Stephanie Forrest:
Automatically Finding Patches Using Genetic Programming.
International Conference on Software Engineering (ICSE) 2009:
364-374
(distinguished paper award)
(IFIP TC2 Manfred Paul award)
-
Raymond P.L. Buse, Westley Weimer:
The Road Not Taken: Estimating Path Execution Frequency Statically.
International Conference on Software Engineering (ICSE) 2009:
144-154
-
Timothy Hnat, Tamim Sookoor, Pieter Hooimeijer, Westley Weimer, Kamin
Whitehouse:
MacroLab: A Framework for Deployment-Specific Code Decomposition.
Conference on Embedded Networked Sensor Systems (SenSys) 2008:
225-238
-
Kinga Dobolyi, Westley Weimer:
Changing Java's Semantics for Handling Null Pointer Exceptions.
International Symposium on Software Reliability Engineering (ISSRE)
2008: 47-56
-
Xiang Yin, John Knight, Elizabeth Nguyen, Westley Weimer:
Formal Verification By Reverse Synthesis.
Conference on Computer Safety, Reliability and Security (SAFECOMP)
2008: 305-319
-
Raymond P.L. Buse, Westley Weimer:
A Metric for Software Readability.
International Symposium on Software Testing and Analysis (ISSTA) 2008: 121-130
(best paper award)
-
Raymond P.L. Buse, Westley Weimer:
Automatic Documentation Inference for Exceptions.
International Symposium on Software Testing and Analysis (ISSTA) 2008: 273-281
-
Adrienne Felt, Pieter Hooimeijer, David Evans, Westley Weimer:
Talking to strangers
without taking their candy: isolating proxied content.
Workshop on Social Network Systems (SocialNets) 2008: 25-30
-
Michael Boyer, Kevin Skadron, Westley Weimer:
Automated Dynamic Analysis of CUDA Programs.
Workshop on Software Tools for MultiCore Systems (STMCS) 2008
-
Nicholas Jalbert, Westley Weimer:
Automated Duplicate Detection for Bug Tracking Systems.
Conference on Dependable Systems and Networks (DSN) 2008: 52-61
-
Westley Weimer, George C. Necula:
Exceptional Situations and Program Reliability.
ACM Trans. Program. Lang. Syst. 30(2): Article 8, 51 pages (2008)
-
Westley Weimer, Nina Mishra:
Privately Finding Specifications.
IEEE Trans. Software Engineering 34(1): 21-32 (2008)
- Pieter Hooimeijer,
Westley Weimer:
Modeling bug report quality.
Conference on Automated Software Engineering (ASE) 2007: 34-43
- Westley Weimer:
Exception-Handling Bugs in Java and a Language Extension to Avoid Them.
Advanced Topics in Exception Handling Techniques 2006: 22-41
- Westley Weimer:
Patches as better bug reports.
Conference on Generative Programming and Component Engineering (GPCE) 2006: 181-190
- Westley Weimer,
George C. Necula:
Mining Temporal Specifications for Error Detection.
Conference on Tools and Algorithms for the Construction and Analysis of
Systems (TACAS) 2005: 461-476
- George C. Necula,
Jeremy Condit,
Matthew Harren,
Scott McPeak,
Westley Weimer:
CCured: type-safe retrofitting of legacy software.
ACM Trans. Program. Lang. Syst. 27(3): 477-526 (2005)
- Westley Weimer,
George C. Necula:
Finding and preventing run-time error handling mistakes.
Conference on Object-Oriented Programming Systems, Languages and
Applications (OOPSLA) 2004: 419-431
- Jeremy Condit,
Matthew Harren,
Scott McPeak,
George C. Necula,
Westley Weimer:
CCured in the real world.
Conference on Programming Language Design and Implementation (PLDI) 2003: 232-244
- Thomas A. Henzinger,
Ranjit Jhala,
Rupak Majumdar,
George C. Necula,
Grégoire Sutre,
Westley Weimer:
Temporal-Safety Proofs for Systems Code.
Conference on Computer Aided Verification (CAV) 2002: 526-538
- George C. Necula,
Scott McPeak,
Shree Prakash Rahul,
Westley Weimer:
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs.
Conference on Compiler Construction (CC) 2002: 213-228
- George C. Necula,
Scott McPeak,
Westley Weimer:
CCured: type-safe retrofitting of legacy code.
Symposium on Principles of Programming Languages (POPL) 2002: 128-139
- Stephen Adams,
Thomas Ball,
Manuvir Das,
Sorin Lerner,
Sriram K. Rajamani,
Mark Seigle,
Westley Weimer:
Speeding Up Dataflow Analysis Using Flow-Insensitive Pointer Analysis.
Static Analysis Symposium (SAS) 2002: 230-246
- John Kubiatowicz,
David Bindel,
Yan Chen,
Steven E. Czerwinski,
Patrick R. Eaton,
Dennis Geels,
Ramakrishna Gummadi,
Sean C. Rhea,
Hakim Weatherspoon,
Westley Weimer,
Chris Wells,
Ben Y. Zhao:
OceanStore: An Architecture for Global-Scale Persistent Storage.
Conference on Architectural Support for Programming Languages and
Operating Systems (ASPLOS) 2000: 190-201
- Westley Weimer: Exceptional Situations and Program Reliability. PhD Thesis: University of California at Berkeley, Fall 2005.
Research Group Members and Theses
|