TUT - Combining Software Engineering Education and Empirical Research via Instrumented Real-Client Team Project Courses
Barry Boehm and Supannika Koolmanojwong

Real-client, team project courses provide excellent opportunities for performing empirical research in software engineering (SE). Compared to empirical research on large, multi-year SE projects, a course with several team projects per year is the SE research equivalent of the fruit fly in species evolution research. Although their predictive power for large-project SE is more suggestive than definitive, the research results generally provide useful contributions to human knowledge in the SE area.

Over the course of 17 years of running an average of 15 thoroughly-instrumented projects per year as a 2-semester MS-level course and 2 years of running a 2-semester course at the senior undergraduate level, the authors have supported the completion of 15 SE Ph.D. dissertations.

The tutorial will summarize the nature of the projects, client solicitation and preparations, courseware, procedures, and instrumentation used in the courses, and how their evolution has been influenced by the research results. It will also summarize the research projects and results, and the challenges in combining education and research, such as fairness in grading in comparing the use and non-use of research capabilities; independence and objectivity in evaluating research results; and threats to validity. These include comparability and representativeness of projects, team and team-client cohesion effects, requirements volatility effects, treatment of outliers, learning curve effects, inconsistencies in effort reporting and client evaluations, and confounding of causes and effects due to concurrent year-to-year experimental variations and external sources of variation. The tutorial format will be in a lecture style followed by Q&A session.