🤖 AI Summary
In undergraduate software engineering education, quality awareness is often overshadowed by functional development priorities, and empirical evidence on quality issues among intermediate-level students undertaking medium-complexity projects remains scarce.
Method: This study analyzes 83 object-oriented team projects completed by 172 undergraduate students across multiple cohorts, introducing the first systematic application of a combined SonarQube and ArchUnit static analysis pipeline to assess student artifacts. The pipeline detects code smells and architectural anti-patterns.
Contribution/Results: Findings reveal recurrent, high-frequency quality defects—including excessive coupling, violation of single-responsibility principles, and inadequate test coverage—exposing critical pedagogical blind spots affecting software quality. The study provides data-driven guidance for curricular design, sequencing, and hands-on training of quality-centric topics in software engineering courses, thereby addressing a significant gap in empirical research targeting intermediate learners.
📝 Abstract
When teaching Programming and Software Engineering in Bachelor's Degree programs, the emphasis on creating functional software projects often overshadows the focus on software quality, a trend that aligns with ACM curricula recommendations. Software Engineering courses are typically introduced later in the curriculum, and can generally allocate only limited time to quality-related topics, leaving educators with the challenge of deciding which quality aspects to prioritize. In this decision, the literature offers limited guidance, as most existing studies focus on code written by novice students and small code units, making it unclear whether those findings extend to intermediate-level students with foundational object-oriented programming skills working on more complex software projects. To address this gap, we analyze 83 object-oriented team projects developed by 172 university students across 4 different editions of the Object-Oriented Programming course. We apply a static analysis pipeline used in prior research to assess software quality, combining SonarQube and ArchUnit to detect code smells and architectural anti-patterns. Our findings highlight recurring quality issues and offer concrete evidence of the challenges students face at this stage, providing valuable guidance for educators aiming to continuously improve Software Engineering curricula and promote quality-oriented development practices.