Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Westley Weimer
[go: Go Back, main page]

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

Research Group Members and Theses