ICPC 2009 KEYNOTES

 

Intensions are a Key to Program Comprehension


Václav Rajlich

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


Thomas Ball

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.