ICPC 2009 KEYNOTES
ICPC 2009 KEYNOTES
Intensions are a Key to Program Comprehension
Professor of Computer Science
Wayne State University
ABSTRACT
The speaker will review the classical comprehension theories based on extensions, intensions, and names, which were developed in linguistics and mathematics but are applicable to program comprehension as well. In programs, the intensions and their names are partially preserved in program identifiers, comments, documentation, and tacit knowledge of the team. Evolution and maintenance programmers have to recover these intensions, because the program cannot be successfully comprehended and changed without them.
Besides the recovery of intensions, the processes of program comprehension have several novel attributes that were not considered in the classical comprehension. These attributes are illustrated by concept location, which is a practical program comprehension problem.
Program comprehension may share some characteristics with other complex systems disciplines, which also face a comprehension problem. Can the accumulated experience of ICPC researchers help advance these other fields also?
BIO
Vaclav Rajlich is a professor and former chair in the Department of Computer Science at Wayne State University. He is the founder of the International Conference on Program Comprehension (ICPC); he was general chair of ICPC in 1992, 1994, and 1996, and general co-chair in 1993. His research interests are program comprehension and software evolution. He received a PhD in mathematics from Case Western Reserve University. Contact him at rajlich@wayne.edu.
A Brief History of Software -- from Bell Labs to Microsoft Research
Principal Researcher
Microsoft Research
ABSTRACT
In the mid 1990s, I was (tangentially) part of an effort in Bell Labs called the "Code Decay" project. The hypothesis of this project was that over time code becomes fragile (more difficult to change without introducing problems), and that this process of decay could be empirically validated. This effort awakened me to the power of combining statistical expertise with software engineering expertise to address pressing problems of software production in a statistically valid manner. I will revisit some of the work we did in the Code Decay project at Bell Labs and then turn to what has been happening in this area in Microsoft in the last five years. In particular, I will trace how we have progressed from studying the data produced by product teams to validate hypotheses, to being actively involved with the product groups in creating and evaluating new tools and techniques for empirically-based software production.
BIO
Thomas Ball is Principal Researcher at Microsoft Research where he manages the Software Reliability Research group. Tom received a Ph.D. from the University of Wisconsin-Madison in 1993, was with Bell Labs from 1993-1999, and has been at Microsoft Research since 1999. He is one of the originators of the SLAM project, a software model checking engine for C that forms the basis of the Static Driver Verifier tool. Tom's interests range from program analysis, model checking, testing and automated theorem proving to the problems of defining and measuring software quality.