18 May - Wednesday
Session 2
11:00 AM

  Research Papers   Keynotes & Invited Talks
  Experience Reports   Panels
  Education & Training Reports   Research Demonstrations
  Awards & General Remarks   Meetings

Aspect-Oriented Software Development
18 May @ 11:00 AM

St. Louis Ballroom D [Floor Plan]
Session Chair: Harold Ossher

> Aspect-Oriented Programming and Modular Reasoning
Gregor Kiczales and Mira Mezini
> Classpects: Unifying Aspect- and Object-Oriented Language Design
Hridesh Rajan and Kevin Sullivan
> Towards Aspect Weaving Applications
Carine Courbis and Anthony Finkelstein


18 May @ 11:00 AM

St. Louis Ballroom E [Floor Plan]
Session Chair: Mary Lou Soffa

> Testing Database Transactions with AGENDA
Yuetang Deng, Phyllis Frankl, and David Chays
> SQL DOM: Compile Time Checking of Dynamic SQL Statements
Russell McClure and Ingolf Krüger
> Safe Query Objects: Statically Typed Objects as Remotely Executable Queries
William Cook and Siddhartha Rai


Core Issues of Software Engineering Education
18 May @ 11:00 AM

St. Louis Ballroom C [Floor Plan]
Session Chair: Paola Inverardi and Mehdi Jazayeri

> Deciding What to Design: Closing a Gap in Software Engineering Education
Mary Shaw, Jim Herbsleb, and Ipek Ozkaya
> How to Teach Software Modeling
Tetsuo Tamai
> Software Test Program: A Software Residency Experience
Augusto Sampaio, Carlos Albuquerque, J. Vasconcelos, Luckerson Cruz, Luis Figueiredo, and Sergio Cavalcante
> Enriching Software Engineering Courses with Service-Learning Projects and the Open-Source Approach
Chang Liu
> Do Students Recognize Ambiguity in Software Design? A Multi-national, Multi-institutional Report
Ken Blaha, Alvaro Monge, Dean Sanders, Beth Simon, and Tammy VanDeGrift
> The Groupthink Specification Exercise
Michael Ernst and John Chapin
> Will Earlier Projects Plus a Disciplined Process Enforce SE Principles Throughout the CS Curriculum?
Linda Sherrell and Sajjan Shiva


Bev Littlewood (City University London)
Dependability Assessment of Software-based Systems: State of the Art
18 May @ 11:00 AM

St. Louis Ballroom A [Floor Plan]
Session Chair: Jeff Kramer

Biography: Bev Littlewood was co-Founder of the Centre for Software Reliability and Director from 1983-2003. He is Professor of Software Engineering at City University London. Bev has worked for many years on problems associated with the modeling and evaluation of dependability of software-based systems; he has published many papers in international journals and conference proceedings and has edited several books. He is a member of the UK Nuclear Safety Advisory Committee, of IFIP Working Group 10.4 on Reliable Computing and Fault Tolerance, and of the BCS Safety-Critical Systems Task Force. He is a Fellow of the Royal Statistical Society.
Abstract: Everyone knows that it is important to make systems dependable. Indeed, much of software engineering can be seen to be a means to this end (albeit not always acknowledged as such). Unfortunately, these means of achieving dependability - reliability, safety, security - cannot be guaranteed to succeed, particularly for systems in which complex software plays a key role. In particular, claims for system 'perfection' are never believable. It is therefore necessary to have procedures for assessing, preferably quantitatively, what level of dependability has actually been achieved for a particular system. This turns out to be a hard problem.

In this talk I shall describe the progress that has been made in recent years in quantitative assessment of modest levels of reliability for software-based systems, such as in a safety-case formalism. I shall identify deficiencies in our present capabilities, as in assessment of socio-technical systems, the limits to the levels of dependability that can be claimed, and in assessment of operational security. I shall identify, and critically analyse, some of the proposed ways forward, such as the use of BBNs and 'diversity'.

Armando Fox (Stanford University)
Addressing Software Dependability with Statistical and Machine Learning Techniques
18 May @ 11:00 AM

St. Louis Ballroom A [Floor Plan]
Session Chair: Jeff Kramer

Biography: Armando Fox joined the Stanford faculty as an Assistant Professor in January 1999. He received his Ph.D. from UC Berkeley, where he worked with Professor Eric Brewer (co-founder of Inktomi Corp.) building research prototypes of today's clustered Internet services and showing how to use them to support mobile computing applications, including the world's first graphical Web browser for handheld computers. His research interests include system dependability and ubiquitous computing. Armando was listed among the "Scientific American 50" of 2003 for his work on Recovery-Oriented Computing.

Prof. Fox has received the Associated Students of Stanford University Teaching Award and the Tau Beta Pi Award for Excellence in Undergraduate Engineering Education, and has been named a Professor of the Year by the Stanford chapter of the Society of Women Engineers. He received a BSEE from M.I.T. and an MSEE from the University of Illinois, and worked as a CPU architect at Intel Corp. He is also an ACM member and a founder of ProxiNet (acquired by Pumatech in 1999), which commercialized thin client mobile computing technology he helped develop at UC Berkeley. He can be reached at fox@cs.stanford.edu.

Abstract: Our ability to design and deploy large complex systems is outpacing our ability to understand their behavior. How do we detect and recover from "heisenbugs", which account for up to 40% of failures in complex Internet systems, without extensive application-specific coding? Which users were affected, and for how long? How do we diagnose and correct problems caused by configuration errors or operator errors? Although these problems are posed at a high level of abstraction, all we can usually measure directly are low-level behaviors---analogous to driving a car while looking through a magnifying glass. Machine learning can bridge this gap using techniques that learn "baseline" models automatically or semi-automatically, allowing the characterization and monitoring of systems whose structure is not well understood a priori. In this talk I'll discuss initial successes and future challenges in using machine learning for failure detection and diagnosis, configuration troubleshooting, attribution (which low-level properties appear to be correlated with an observed high-level effect such as decreased performance), and failure forecasting.

Research Demonstrations I
18 May @ 11:00 AM
St. Louis Ballroom B [Floor Plan]
Session Chair: Sarfraz Khurshid

> Demonstration of JIVE and JOVE: Java as it Happens
Steven Reiss and Manos Renieris
Informal Demo: 19 May @ 10:30 AM (during coffee break)
> Chianti: A Change Impact Analysis Tool for Java Programs
Xiaoxia Ren, Barbara Ryder, Maximilian Stoerzer, and Frank Tip
Informal Demo: 19 May @ 12:30 PM (during lunch break)
> The Concern Manipulation Environment
William Chung, William Harrison, Vincent Kruskal, Harold Ossher, Stanley M. Sutton Jr. and Peri Tarr, Matthew Chapman, Andrew Clement, Helen Hawkins, and Sian January
Informal Demo: 19 May @ 12:30 PM (during lunch break)