Software Architecture, from definition to maintenance and evolution, is a complex aspect of software development and, consequently, a challenging subject when it comes to teaching it, and learning it. Many research efforts have been devoted to designing teaching approaches, strategies and tools. Most of them, however, focus on the knowledge itself and the ways to convey it to students, rather than on the different learning styles of students themselves. Teaching methods which predominantly rely on verbal and written communication, are very well aligned with some learning styles. However, students with learning styles that benefit more from physical activity or first-hand experience, need to defer to cognitive processes that are less natural to them. In this work, we propose an innovative use of role-playing as teaching strategy for architecture models of reference (i.e. layered, pipe and filter, client-server, etc.). This role-playing of different software architectures, in which students play the part of specific components in the system, intends to complement other classical teaching materials, such as in-person or recorded lectures, lab assignments, or development projects. Addressing all learning styles within a classroom is key to ensure that we favour and foster the students' different learning processes, and give everyone an even playfield in which to best develop their capabilities as Software Architects.
翻译:软件体系结构,从定义到维护与演进,是软件开发中一个复杂的方面,因此,在教授和学习该主题时也颇具挑战性。许多研究工作致力于设计教学方法、策略和工具。然而,其中大多数侧重于知识本身及其向学生传授的方式,而非学生自身不同的学习风格。主要依赖口头和书面交流的教学方法与某些学习风格非常契合。然而,对于那些更能从身体活动或直接经验中获益的学习风格的学生而言,他们需要依赖自身不太自然的认知过程。在本工作中,我们提出了一种创新的角色扮演教学策略,用于教授参考体系结构模型(例如分层、管道-过滤器、客户端-服务器等)。这种对不同软件体系结构的角色扮演——学生在其中扮演系统中特定组件的角色——旨在补充其他经典教学材料,如现场或录播讲座、实验作业或开发项目。在课堂中兼顾所有学习风格,对于确保我们重视并促进学生不同的学习过程,并为每个人提供公平的竞争环境以使其最好地发展作为软件架构师的能力至关重要。