  Tertiary education institutions aim to prepare their computer science and
software engineering students for working life. While much of the technical
principles are covered in lower-level courses, team-based capstone projects are
a common way to provide students with hands-on experience and teach soft
skills. This paper explores the characteristics of software engineering
capstone courses presented in the literature. The goal of this work is to
understand the pros and cons of different approaches by synthesising the
various aspects of software engineering capstone courses and related
experiences. In a systematic literature review for 2007-2022, we identified 127
primary studies. These studies were analysed based on their presented course
characteristics and the reported course outcomes. The characteristics were
synthesised into a taxonomy consisting of duration, team sizes, client and
project sources, project implementation, and student assessment. We found out
that capstone courses generally last one semester and divide students into
groups of 4-5 where they work on a project for a client. For a slight majority
of courses, the clients are external to the course staff and students are often
expected to produce a proof-of-concept level software product as the main end
deliverable. The courses also offer versatile assessments for students
throughout the project. This paper provides researchers and educators with a
classification of characteristics of software engineering capstone courses
based on previous research. We further synthesise insights on the reported
outcomes of capstone courses. Our review study aims to help educators to
identify various ways of organising capstones and effectively plan and deliver
their own capstone courses. The characterisation also helps researchers to
conduct further studies on software engineering capstones.
