This paper presents four complementary course projects designed to enhance undergraduate students’ understanding of software performance engineering (SPE). These projects, integrated into various courses in a software engineering curriculum, collectively address key aspects of performance-related issues and solutions, fulfilling the broader objectives of fostering performance awareness and competency.
The first project developed for SSW 345: Software Modeling and Simulation, uses a set of Unity-based games to illustrate eight fundamental performance concepts. Students learn through gameplay and LoadTester-based simulations, gaining insights into inefficiencies and system performance under load. In SSW 567: Software Testing, the second project introduces students to performance testing through a Machine Readable Travel Document (MRTD) system, highlighting both system and test case performance. The third project, conducted in SSW 533: Software Cost Estimation, focuses on real-world return-on-investment (ROI) analysis of performance issues, allowing students to analyze issue reports and assess the cost-benefit of resolving performance-related challenges. Lastly, in SSW 315: Object Oriented Design, students compare the performance of object-oriented and procedural programming paradigms and data structures, exploring the trade-off between performance and maintainability. Our evaluation plan extends over multiple course iterations, utilizing detailed quantitative and qualitative metrics to continually assess the project's impact on course outcomes.
Together, these projects form a cohesive learning experience that builds students’ SPE skills, connecting theoretical concepts with real-world applications and performance trade-offs, thus preparing them for the complexities of modern software systems.