120 likes | 267 Views
Using Game Development to teach Software Architecture. Paper by: Alf Inge Wang and Bian Wu Presented by: Ben Gooding. Games in Education.
E N D
Using Game Development to teach Software Architecture Paper by: Alf Inge Wang and Bian Wu Presented by: Ben Gooding
Games in Education • Integrating games within children’s classroom can be beneficial for academic achievement, motivation and classroom dynamic. (Math Blaster, Oregon Trail, etc.) • Not just for children anymore
Games in Higher Education • Traditional exercises can be replaced by games motivating students to put in extra effort and giving the staff a chance to monitor the progress. • Games can be used within a lecture to improve participation and motivation. • Game development projects can be used in CS courses to learn CS skills
From the Perspective of a Game Developer • Knowledge and skills about how to develop software architecture is becoming increasingly important. • Caused by games becoming more complex. • Well-designed software architecture is needed to cope with variations in hardware configuration, functional modifications and network constraints
From the perspective of a Software Architect • Games are interesting due to the inherent characteristics of the domain including: • Real-time constraints • Changing and varying functionality • User friendliness • Typical user requirements involve a fun and involving style of gameplay
Goals of a Software Architecture Course in Norway • “The students should be able to define and explain central concepts in software architecture literature, and be able to use and describe design/architectural patterns, methods to design software architures, methods/techniques to achieve software qualities, methods to document software architecture and methods to evaluate software architecture”
Project Phases • Commercial Off-the-Shelf (COTS) – learn the development framework (XNA) • Design Pattern – learn how to utilize design patterns by making changes in two architectural variants of an existing system designed with an without design patterns. • Requirements and Architecture – Describe the functional and quality requirements. Describe the SA drivers. Design and document the SA of the application in the project.
Project Phases • Architecture Evaluation – use the Architecture Tradeoff Analysis Method to evaluate the SA • Implementation – Do detailed design and implement the application based on prior phases. • Project Evaluation – evaluate the project using a Post Mortem Analysis method.
Challenges to the course • Good books and papers that give an in-depth insight into game architectures and game architecture patterns are basically non-existent. • There are several papers that describe architectures of specific games and books that give a brief overview of game architecture.
Educational Approach • Force the students to use the theory described in the textbook during the project by applying the methods and theoretical framework described.
Results • The game projects had more complex architecture than the robot projects. • An average of 90% more code was written. • On average 3 more classes used. • Project grades higher • Written exam scores lower
Conclusion • Staff noticed an increasing interest and motivation for the project. • Students that completed the game project were more positive about the project. • Game development projects are positive for group dynamics and skills other than CS are needed. • Some teams focused more time on the game development than the SA