This special section of the Transactions on Software Engineering ( TSE) contains extended versions of selected papers from the 31st ACM/IEEE International Conference on Software Engineering (ICSE), held 20-22 May 2009 in Vancouver, British Columbia, Canada. The conference received 405 submissions to its research track, from which the program committee selected 50 for presentation at the conference. The program committee also nominated 15 of these papers to be considered as distinguished papers. From the list of nominated papers, the program cochairs, Joanne Atlee and Paola Inverardi, invited the authors of six papers to submit extended versions of their work to this special section. Four papers were submitted and underwent the normal review process for TSE submissions, in which three reviewers evaluated each paper. In the end, all four were accepted to appear in this special section.
The four accepted papers address important challenges in software engineering research, anticipating and elaborating on new ways to deal with complex software. Taming complexity has always been the raison d'etre of the discipline of software engineering, but in recent years, complexity has reached unexplored dimensions due to the ubiquitous presence of software in all spheres of our real and virtual lives. The four papers in this section investigate how aspects of complexity can be addressed through refactoring, tagging, and automation.
The first paper, “How We Refactor, and How We Know It” by Emerson Murphy-Hill, Chris Parnin, and Andrew P. Black, examines refactoring-tool usage and evaluates some of the assumptions that led to their creation and adoption. The paper does an impressive job of drawing many interesting observations, based on credible analyses, from eight very-large data sets. While many of the observations are intuitive, some of them have immediate ramifications for the Mining Software Repositories community and may generate some controversy.
The second paper, “Work Item Tagging: Communicating Concerns in Collaborative Software Development” by Christoph Treude and Margaret-Anne Storey, presents two studies on the use of tagging, a lightweight social-computing mechanism, to document concerns related to the management of development tasks. The studies are based on quantitative data, obtained by mining project repositories, and qualitative data, obtained through interviews and observations of developers. The results from these studies indicate that developers will readily adopt and adapt tagging technologies is a means to facilitate collaborative software development.
The third paper, “Invariant-Based Automatic Testing of Modern Web Applications” by Ali Mesbah, Arie van Deursen, and Danny Roest, describes an automated approach for verifying AJAX-based Web 2.0 applications. This is an important problem, as highly-interactive web-based applications are increasingly common and the challenges induced by the dynamic nature of such applications cannot easily be tackled with existing testing techniques. Evaluation studies indicate that the authors' approach can find defects in AJAX applications of realistic complexity.
The fourth paper, “GenProg: A Generic Method for Automatic Software Repair” by Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer, describes an automated method for repairing defects in programs. The method uses genetic programming to produce mutants that either add or remove code fragments near the suspected location of a fault; added code fragments are adaptations of existing code from other parts of the program. The mutants are evaluated based on their ability to pass the test suite. The work is a major first step in an innovative approach toward fully automated repair of defects in programs.
This special section is the result of a long process that involved many people, to whom we would like to direct our warmest thanks. We especially thank Steve Fickas, the General Chair for ICSE 2009, for organizing a successful conference. We also give special thanks to the 41 members of the ICSE 2009 program committee, for all of their hard work in reviewing the original conference submissions and in nominating the set of papers that were considered for this special issue. We also thank the anonymous reviewers of the special issue for their extensive and thoughtful reviews, and the past and present Editors-in-Chief of TSE, Jeff Kramer and Bashar Nuseibeh, who gently pressed us toward a successful end. Last but not least, we thank the TSE readers, who ultimately are the main stakeholders of all this work. We sincerely hope you will enjoy reading these papers as much as we did.
Joanne M. Atlee
J.M. Atlee is with the David R. Cheriton School of Computer Science, University of Waterloo, 200 University Avenue West, Waterloo, ON, Canada N2L 3G1. E-mail: firstname.lastname@example.org.
P. Inverardi is with the Computer Science Department, University of L'Aquila, Via Giovanne Falcone 25, 67100 Coppito (AQ), Italy.
For information on obtaining reprints of this article, please send e-mail to: email@example.com.
Joanne M. Atlee
received the PhD and MS degrees in computer science from the University of Maryland, the BS degree in computer science and physics from the College of William and Mary, and also holds the PEng license. She is an associate professor in the David R. Cheriton School of Computer Science at the University of Waterloo, Canada. Her research interests include software modeling, automated analysis of software models, modular software development, feature interactions, and software-engineering education. She serves on the editorial boards for Software and Systems Modeling
and Requirements Engineering
. She is an at-large member of the ACM SIGSOFT Executive Committee and is a member of the International Federation for Information Processing (IFIP) Working Group 2.9 on Software Requirements Engineering. She was program cochair for the 31st International Conference on Software Engineering (ICSE '09) and was program chair for the 13th IEEE Requirements Engineering Conference (RE '05).
is a professor of computer science at the University of L'Aquila, Italy, where she leads the Software Engineering and Architecture Research Group. Her main research area is in the application of rigorous methods to software production in order to improve software quality. In the last decade her research interests concentrated in the field of software architectures, mobile applications, and adaptive systems. She serves on the editorial boards of the IEEE Transaction of Software Engineering
and Springer Computing
. She has been general chair or program chair of leading conferences in software technology (i.e. ASE '08, ICSE '09, ESEC/FSE '03). She is chair of the ICSE Steering Committee and a member of the ACM Europe Council.