Archive

Archive for the ‘Research’ Category

What’s Wrong With This Plan?

March 14th, 2010
Comments Off

My grad student Mike Conley decided several months ago to look at code review for his master’s thesis. After exploring a few ideas (including badges and achievements for reviews), he has put together a plan that might tie several things together quite neatly. He and I would both appreciate your feedback.

Research

Rory Tulk on Software Testing

February 17th, 2010
Comments Off

Rory Tulk finished his M.Sc. with me a couple of weeks ago, and has posted a summary of his thesis on his blog. It was a solid piece of research; I’m pleased to have had a chance to work with him.

Research

Pre-Commit Continuous Integration

February 2nd, 2010
Comments Off

Mike Conley (one of my grad students) is converging on a thesis topic: pre-commit continuous integration. If you have thoughts, he’d enjoy hearing them.

Research

More on Mining

January 21st, 2010
Comments Off

Several people have recently linked to Diederik van Liere’s talk “Learning from 10 yrs of Bugzilla data“. If you’re interested in that kind of thing, there’s a whole sub-field in software engineering devoted to mining information about actual development practices from various sources. The best two places to start are:

  1. Kagdi, Collard, and Maletic: “A survey and taxonomy of approaches for mining software repositories in the context of software evolution“. Journal of Software Maintenance, 19(2), 2007.
  2. Ahmed E. Hassan: “The Road Ahead for Mining Software Repositories“. In Proc. Future of Software Maintenance, at ICSM 2008.

My thanks to Mike Godfrey for the pointers.

Research

Two More Thumbs Up

January 20th, 2010

I blogged last week about Sahoo et al’s paper on automated bug diagnosis and Gutiart et al’s survey of performance management techniques for web apps. This week has brought two more good ones to my desk:

  1. Artzi, Dolby, Tip, and Pistoia: “Practical Fault Localization for Dynamic Web Applications”. The authors have extended the Tarantula algorithm, which combines actual and symbolic execution, to produce a tool that can automatically localize 87% of faults in PHP applications to within 1% of all executed statements. Just imagine: if you can make it crash, the tool can cut the amount of code you have to examine by two decimal orders of magnitude almost nine times out of ten.
  2. Mitchell, Schonberg, and Sevitsky: “Four Trends Leading to Java Runtime Bloat.” The authors, who work at IBM making Java run faster, explain how building software in layers leads to chronic performance problems. Technical but readable—I’m giving it to the students in my software engineering course.

Research

Someone Leaves School, Someone Comes to School

January 20th, 2010
Comments Off

Three of my grad students—Aran Donohue, Jason Montojo, and Rory Tulk—are wrapping up their MSc’s this month. Coincidentally (OK, not really, the academic calendar being what it is), my other two students are converging on research topics. Mike Conley has got the code review bug in a big way, and wants to look at how we can teach students to review code, and whether doing that will have an impact on how (and how well) they program. Zuzel Vera Pacheco is going to look at ways of annotating or animating visual representations of databases, such as entity-relationship diagrams, in order to help developers understand system architecture, debug things, and gauge the likely impact of changes. If you’re interested in either topic, I’m sure they’d enjoy hearing from you.

Research

Two Thumbs Up, One Thumb Down

January 11th, 2010
Comments Off

Three recent papers:

  1. Sahoo, Criswell, and Adve: “Towards Automated Bug Diagnosis: An Empirical Study of Reported Software Bugs in Server Applications”.  Looked at bugs reported in six large web server apps, and discovered that most could be reproduced deterministically by replaying just a few recent inputs (in most cases, just one). Over 60% of bugs resulted in silent data corruption, which means that adding more internal consistency checks and assertions would help weed them out; only a handful were non-deterministic or timing based. Upshot is, keeping a log of the last few requests and saving that when a bug crops up has a good chance of helping developers localize the bug quickly. Excellent piece of empirical research.
  2. Gutiart, Torres, and Ayguadé: “A survey on performance management for internet applications”. Summarizes published results on request scheduling, admission control, dynamic resource management, service degradation, and other approaches, both empirical and theoretical. A good map of the terrain.
  3. Demsky and Lam: “Views: Object-Inspired Concurrency Control”. The idea is that developers define one or more views that describe which method(s) of a class can safely be run concurrently with which others; a clique-finding algorithm then automatically generates the locks and locking calls required to ensure safety. Nice idea, but as with so many papers in programming languages, there’s no empirical validation: do real programmers find this comprehensible? Does it make coding easier than [name of alternative goes here]? Does it lower error rates? Etc. Most papers on tools and methods at ICSE now include some kind of empirical study, even in their early stages; here’s hoping the practice spreads to programming language design.

Research

Nothing to See Here, Folks—Move Along, Move Along

November 29th, 2009
Comments Off

Like a lot of people, I received email a few days ago from Ivar Jacobson about SEMAT (Software Engineering Method and Theory), a new initiative whose “…goal is to re-found software engineering as a rigorous discipline.” I can’t think of a better response than Jorge Aranda’s.

Research

ICSE 2010 Co-Events

November 24th, 2009

The International Conference on Software Engineering (ICSE) is being held in South Africa next year. Their web site is already up, and they’ve just announced all the workshops and whatnot that are being held along with it. It’s quite a list, and some of the acronyms are very impressive too :-)

The odds are against me being there (can’t afford it, and it starts before the end of my self-imposed year-long no-fly pledge), but we’re hoping to have an early draft of the O’Reilly book on evidence-based software engineering ready in time to review there.

Making Software, Research

Special Issue

November 18th, 2009

A special issue of Computing in Science & Engineering that Andy Lumsdaine and I edited, devoted to software engineering in computational science, is now available. We’d like to thank everyone who contributed:

Computing in Science and Engineering

Announcements, Research