Supporting Software Architectural Style Education Using Active Learning and Role-playing

Abstract Supporting Software Architectural Style Education Using Active Learning and Role-playingOne of the most critical aspects in the preparation of students for the rigor of the softwareengineering enterprise is developing and enhancing their software design skills. A key element inlearning how to design well is knowledge about architectural styles – refined sets of designdecisions that elicit beneficial qualities in systems.5 While the traditional modality ofarchitectural style instruction is lecture based, this is only somewhat effective in the context ofundergraduate education: Because students generally lack substantive development experience,they tend to focus on easily relatable aspects of architectural styles rather than more substantiveones: for example, they will focus more on the linear structure of pipe-and-filter architecturesthan on the core insight of the style’s uniform interfaces and dynamic dataflow routing.The key elements of knowledge found in architectural styles are lessons relating to componentinteractions and function allocation among architectural components. With the pedagogical goalof re-focusing the attention of learners on these key concepts and exciting them about the studyof architectural styles, we have developed and used an instructional activity that centers on activelearning1 and student motivation.2 This approach couches learning about architectural styles inthe context of game-like cooperative interactions between students.In this activity, the objective is for students to solve a set of basic arithmetic problems thatsimulate software computations. Working in groups, each student assumes the role of a softwarecomponent and is allocated functionality according to the rules of a specific architectural style.Students are then physically connected by lengths of string, which simulates style-specificcommunication restrictions, and can only communicate by exchanging small pieces of note-paper along these paths, which simulates style-specific information exchanges. Eacharchitectural style imposes its own game termination conditions: For example, the pipe-and-filtergame ends when the set of problems is completed at the end of the dataflow. The instructor givesa brief description of each style’s key features while allocating functionality to students,“connecting” students together for non-self-composing styles, while both the instructor and otherstudents intervene to resolve ambiguities, questions, or difficulties during the game.Through this activity, students take an active part in realizing course concepts through tangiblerepresentations of common software engineering challenges. These are especially interestingwhen expressed through simple game events, such as when a piece of string snapping is equatedto an interrupted HTTP connection. The game-like setting – appropriately augmented bypointing out these software engineering parallels – thus engages students deeply in the contentwithout resulting in the loss of academic rigor. Finally, compared to other related game-basedinstructional approaches,3, 4 this activity involves relatively low overhead for the instructor.We have evaluated our approach using post-activity student evaluations that focus on collectingqualitative student reactions and content-centric assessments that examine architectural stylelearning outcomes achieved with and without the use of this activity. Our experience to date hasshown that students greatly enjoy the interactive nature of the game and come away from thegame knowing more about the function allocation and component interaction aspects ofarchitectural styles than they do solely using a conventional lecture-based approach. Selected References[1] Bonwell, C.C. and Eison, J.A. 1991. Active Learning: Creating Excitement in the Classroom. Jossey-Bass.[2] Keller, J.M. and Suzuki, K. 1988. Use of the ARCS Motivation Model in Courseware Design, in Instructional Designs for Microcomputer Courseware, Jonassen, D.H. (Ed), Lawrence Erlbaum: Hillsdale, NJ, USA.[3] Leverington, M., Yuksel, M., and Robinson, M. 2009. Using Role Play for an Upper Level CS Course, The Journal of Computing Sciences in Colleges, 24(4), pp. 259-266.[4] Sancho, P., Moreno-Ger, P., Fuentes-Fernández, R., and Fernández-Manjón, B. 2009. Adaptive Role Playing Games: An Immersive Approach for Problem Based Learning, in Educational Technology & Society, 12(4), pp. 110–124.[5] Taylor, R.N., Medvidovic, N., and Dashofy, E. 2009. Software Architecture: Foundations, Theory, and Practice. John Wiley and Sons.