Skip to main content.

Research

The thread that runs through my work is understanding how we understand and gain confidence in software, through some combination of analysis (broadly construed to include testing as well as various static checking techniques) and design. I'm increasingly interested in interplay between synthesis (generating something from a spec) and analysis (checking consistency between a spec and an implementation). The synthesis part is related to an old interest in architectural design of software, which I've recently revisited in connection with assistive cartography.

Some things I've been interested in recently:

  • Serializability at the program level. I've been looking at this for a while with my colleague and ex-student LihChyun Shu, and more recently with Yannis Smaragdakis, Reimer Behrends, and Tony Kay. Atomicity and transactions have become a hot area in programming languages, so the low-hanging fruit is probably gone, but there are still plenty of problems that need solving.
  • Flow analysis as Swiss army knife, including applications that are about architectural structure (and nothing to do with "data flow" per se): GenSet and an application to reverse engineering.
  • Leaving a bit of instrumentation in deployed code to check the implicit assumptions made in testing: Residual test coverage measurement
  • Maps for blind people. I'm working with Amy Lobben in the Spatial and map cognition research lab. In one regard this is a completely new turn, my first stab at research in an application domain. In another regard, though, it's a natural extension of my long-term interest in architectural design of software. While I'm having a blast learning about cartography, perception, and assistive technology for blind users, my research is directed to enhancing creative exploration of the assistive cartography design space by cartography researchers.
  • Book: Software Testing and Analysis

    Mauro Pezzè and I are writing have written a text, Software Testing and Analysis: Process, Principles, and Techniques. It is available at Amazon and other online bookstores, including Powells and Barnes and Noble.

    We hope this will be the book that advisors recommend to new graduate students who need a basic, broad background in testing and analysis, as well as a standard text in senior and beginning graduate courses.

    Many of you have already commented on parts of the book, and a few of you have used drafts in courses. Thanks for your suggestions and encouragement, and I hope you like the result.


    Conferences

    ACM SIGSOFT 2006 / FSE 14, November 2006

    ACM SIGSOFT 2006, the Fourteenth ACM Symposium on Foundations of Software Engineering (FSE 14) was held in Portland, Oregon in November 2006. I was general chair, and Prem Devanbu of UC Davis was program chair. See http://www.cs.uoregon.edu/fse14 for more information.

    Community

    Impact Project

    The Impact Project is an ACM SIGSOFT initiative to determine the impact of software engineering research on software engineering practice. I am studying the historical development of static analysis techniques and tools for software fault detection.

    Classes

    Software Methodology (CIS 422/522)

    Winter 2007

    Software Methodology 2 (Spring 2007)

    This course will be cross-listed as CIS 423 and CIS 510. CIS 610 credit is possible for students who need 6xx credits and who are able and willing to contribute at that level.

    For Spring 2007, the course will also be cross-listed as a Geography seminar taught by Amy Lobben. Amy and I will work together coaching a cross-disciplinary team of computer science and geography students to develop a web-based haptic soundscape campus map for blind users.

    This is going to be a blast. There are lots of interesting and challenging problems, and a chance to work across disciplines (which is a really important aspect of computing in the real world), and a chance to build something new and useful. This won't be the first haptic soundscape map (check out related projects at UC Santa Barbara and U Calgary), but the field is really nascent and presents lots of opportunity to make real progress.

    Compiler Construction (CIS 461/561, Winter 2007)

    For notes on the most recent offering, see the course web site from Spring 2006.

    Scientific Writing Workshop (CIS 610)

    Sarah Douglas will offer the writing workshop course in Spring 2007. We expect to have a regular course number soon, and a new course title, pending University approval.

    K-12 Outreach

    I'm involved in a number of (somewhat overlapping) groups concerned with helping high school and middle school kids learn about computer science and prepare for it.

    The ETIC Computer Science task force focuses on attracting and preparing high school students for university study in computer science. They publish the Get Real web site for high school students, teachers, and counselors.

    The Oregon Pre-engineering and Applied Sciences Initiative (OPAS) has a related but broader focus on engineering, computer science, and applied sciences in general. I serve on the OPAS steering committee and one of the working groups, and am involved in the NOISE (Network of Informal Science Educators) spin-off activity.

    The Oregon Computer Science Teachers Association (CSTA) is primarily an organization of high school computer science teachers, supported by the Software Association of Oregon. I participate in some events and discussions as a representative of university CS education.

    Outside interests

    I am a fairly serious coffee drinker, and also roast coffee at home. Here is some general information on semi-commercial espresso machines (high-end home machines) and some information on the Pasquini Livia 90 in particular. Recently I have discovered a espresso repair service in the Eugene area, Stefano's Espresso Care. Stefano (stress on the first syllable; I keep getting it wrong) repairs both commercial and home machines. Previously I was shipping my machine back and forth to HER in Seattle.

    I am a recreational bicycle rider. I enjoy organized "event" rides. Rides I've enjoyed include the Seattle to Portland bicycle classic (my only "double century", that is, 200 miles in one day); the Blackberry bRamble starting right here in Eugene; the Covered Bridges tour from Albany (5 times); the Peach of a Century (twice); the Monster Cookie metric century; the Mount Hood Challenge Century (which seems to have been held for the first and last time in 2004); and the Torture 10,000 century east of Portland (also discontinued, alas).

    I've set a personal goal of riding a century (100 miles in a day) each month in 2007, and to keep me motivated I signed up for the UMCA year-rounder challenge. That helped get me out early in the year, including a frozen day in January and a wet day in February. Century rides so far are documented here, from February on with GPS records.

    Other great rides in the area:

    There are many excellent routes starting in or near Eugene, ranging from under 20 to over 100 miles, and from very flat to quite hilly. If you are a cyclist visiting Eugene (especially if you're a computer scientist), I'd love to make a few suggestions or maybe go out on a ride with you, schedule permitting.

    Here is why I always wear a helmet.