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.
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.