Introduction and Goals
info
This documentation covers selected topics related to the requirements analysis, software architecture, and implementation of Subato. The following pages provide both a functional and technical overview of the system, highlighting the most important architectural decisions. The structure is based on the arc42 template.
The primary goal of Subato is to increase the quality of programming education at RheinMain University of Applied Sciences. In particular, the system aims to enhance learning outcomes by enabling lecturers to focus on individual student support. We seek to achieve this by:
- Reducing the time required by lecturers for organizational tasks, such as preparation of course work, attendance tracking, and assessment of student solutions.
- Automatically generating individual and high-quality feedback that supports students during the completion of programming tasks.
The main features of Subato are:
- Lecturers can define tasks with public and hidden unit tests.
- Students can submit solutions and receive automated feedback based on unit testing, style checking and memory leak analysis.
- Lecturers can review, annotate, and semi-automatically assess solutions.
- Lecturers can track student attendance for courses with mandatory attendance.
The following quality requirements represent the key quality goals of the system:
- The system MUST be usable by first-semester computer science students without prior knowledge. In particular, the feedback provided by the system MUST be understandable without requiring in-depth knowledge of software testing techniques or other advanced computer science concepts. (Usability)
- The system MUST allow students to access tasks and submit solutions in the event of system failures to ensure that they are not unfairly penalized for late submission. (Reliability)
- The system MUST ensure that students cannot access other students' solutions or grades, reference solutions provided by instructors, unpublished exercises, and other hidden resources. (Security)
- The system MUST ensure that students cannot alter other students' solutions or grades, nor misuse, compromise, or damage the system through code execution or any other unauthorized means. (Security)
- The system SHOULD comply with the WCAG 2.0 guidelines on accessibility to ensure that students with disabilities or impairments can use the system effectively. This includes support for screen readers, sufficient color contrast, adjustable font sizes, and keyboard accessibility (Accessibility).