Tools for Improving Software Right Now
Many areas of technology have enjoyed spectacular advances in recent years: the number of transistors on a chip, the density of memory and storage, the bandwidth and speed of networks. Software quality, however, is not one of them. In spite of considerable effort, the quality of software remains a significant and persistent problem. Part of the reason is that software development practices change very slowly. Many projects still rely on languages, tools, and techniques designed decades ago. Therefore, any solution to this problem that requires substantial changes to existing programs and to existing programmers is unlikely to produce the kind of improvements we desperately need right now.
In this talk he describes current research that his group is undertaking to address this problem. Their goal is to improve the reliability and performance of software in ways that are (a) easy to deploy in existing systems, (b) low cost and low investment, and (c) appealing to programmers, both novice and professional. He presents ideas and results from recent work focused on checking heap properties at runtime. Their techniques leverage a familiar programmer interface, assertions, and can check many complex properties with very low overhead — often in a range suitable for field-testing or deployment. In addition, he describs a closely related project in which we are building a tool for interactive visualization and querying of the heap in a running program.
Professor Samuel Z. Guyer, Department of Computer Science, Tufts University Medford, MA. www.cs.tufts.edu/~sguyer