时间:2023-04-11 15:59:04
序论:速发表网结合其深厚的文秘经验,特别为您筛选了1篇硕士研究软件生翻转课堂教学模式构建范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
近年来,来自国内不同院校的教师和研究者针对软件架构类课程设计了大量的教改方案[1]。李暾等[2]提出了将案例式教学、翻转课堂和开源软件相结合的软件体系架构课程教学改革思路。沈莹、张林[3]从软件体系架构课程的教学内容、实践项目、教学评估三方面阐述了课程改革方案。丁智国[4]介绍了如何以任务驱动为主线开展面向硕士研究生的软件体系架构课程教学,并探讨了翻转课堂教学的具体流程。蔺一帅等[5]提出了“学用互助,做有情怀、有温度的软件人”的软件体系结构课程教学核心理念,设计了“任务导向、案例驱动、以面引点、体验探究、立体思政”的特色教学方式,并在实践中进行了应用。上述文献为笔者的研究提供了重要参考。笔者在结合自身教学实践及对其他院校硕士研究生软件体系架构课程教学情况进行了解的基础上,发现硕士研究生软件体系架构课程教学主要存在以下问题:①由于大部分硕士研究生的关注点局限于个人的研究方向,因而大多将学习重点放在公共必修课及与个人研究方向密切相关的课程上,导致研究方向与该课程不相关的硕士研究生对该课程的积极性不高;②硕士研究生往往来自不同的本科专业,除了软件工程及相关专业的学生,其余学生通常缺乏与软件体系架构有关的先修课程(软件工程、编程语言等)基础,更缺乏参与软件工程项目的实践经验;③软件体系架构课程教学中缺乏习题库和案例库,导致学生实操演练不足。在我国开展新工科建设的背景下,笔者借鉴相关文献内容并总结自己的教学体会,构建了面向硕士研究生的基于翻转课堂的软件体系架构课程教学模式,主要环节包括在课前以在线学习方式预习知识点;在课中由教师引导学生以小组形式进行文献报告或案例讨论,并回答学生提出的问题;在课后通过完成在线习题和案例分析巩固知识点。这样可以让学生通过教师引导和自主学习相结合的方式掌握一定的软件体系结构设计和分析能力,进而能对现实中的具体系统做出最佳的体系结构设计决策。希望本研究能为新工科背景下高校软件体系架构课程的改革和建设提供参考。
一、硕士研究生软件体系架构课程目标及内容
(一)硕士研究生软件体系架构课程目标
软件体系架构课程是计算机科学与技术等专业硕士研究生的专业课之一。面向硕士研究生的软件体系架构课程的目标是通过介绍软件体系架构的概念内涵及关于软件体系架构建模、设计、分析和评审等方面的理论与方法,并分析不同风格的软件体系架构过程,培养学生对具有一定规模的软件体系结构进行设计和分析的能力,进而使其能对现实中的具体系统做出最佳的体系结构设计决策[6]。通过对软件体系架构课程的学习,学生的抽象思维能力、面向全局的系统分析与设计能力、运用知识求解实际问题的能力、独立思考创新的能力均将得到提升,进而能够从事与软件工程相关的技术和科研工作。上述课程目标要求学生不仅要掌握与软件体系架构相关的知识点,还要能够将知识点灵活应用于具体的案例,以系统架构师的角色分析、设计软件体系架构。
(二)硕士研究生软件体系架构课程内容
在分析国内与软件体系架构相关的教材并考虑硕士研究生的专业背景、知识基础、能力素质等具体情况的基础上,笔者选取覃征等主编的《软件体系结构》(第5版)[7]为课程主教材,选取秦航编写的《软件设计和体系结构》(第2版)[8]等为课程参考教材,并拟定了课程内容。其中,覃征等主编的《软件体系结构》分为基础理论、理论工具和研究部分三个部分,详细介绍了软件架构的基础理论、工程领域、研究前沿和实践问题。具体而言,该教材不仅结合软件体系架构的发展前沿介绍了典型的软件体系架构风格案例,而且提供了大量与软件体系架构相关的国内外重要文献,因此比较适合在硕士研究生软件体系架构课程教学中使用。在分析覃征等主编的《软件体系结构》教材及其他课程参考教材的基础上,笔者设计了软件体系架构课程内容,具体如图1所示。根据图1可知,软件体系架构课程的重点内容是软件体系架构设计,主要基于软件体系架构风格完成该任务。软件体系架构风格分为两部分:一是经典软件体系架构风格,二是现代软件体系架构风格。前者主要包括管道-过滤器风格、面向对象风格、事件驱动风格、分层风格、数据共享风格、虚拟机风格、反馈控制风格等;后者主要包括多层架构、云体系架构风格、网格计算体系风格、面向服务的体系架构和微服务体系架构等前沿的软件体系架构风格。软件体系架构课程的另一项重要内容是软件体系架构的描述方法。软件体系架构的描述方法包括直接描述软件体系架构的统一建模语言(UnifiedModelingLanguage,UML)方法和基于形式化的软件体系架构描述语言(ArchitectureDescriptionLanguage,ADL)方法。直接描述软件体系架构的统一建模语言方法运用统一的建模语言绘制软件蓝图,采用统一的符号体系,将直观图形符号、自然语言和形式化语言结合起来,对软件体系架构进行描述。该方法的优势在于可以对复杂的软件系统进行可视化、详述、构造和文档化。基于形式化的软件体系架构描述语言方法运用工程领域的一种描述性语言ADL描述软件体系架构,因为ADL具有形式化的语法和语义,可以在一定的抽象层次上对软件体系架构加以描述,因而能够为设计者提供强有力的分析工具、模式识别器和代码整合工具等。软件体系架构课程内容也包括软件体系架构的分析方法,即基于场景的体系架构分析方法(SoftwareArchitectureAnalysisMethod,SAAM)和体系架构权衡分析方法(ArchitectureTradeoffAnalysisMethod,ATAM)。SAAM是一种非功能质量属性的体系架构分析方法,该方法最早形成文档并得到广泛使用,最初用于比较不同软件体系架构,以分析场景的可修改性,后亦被用于分析可移植性、可扩充性等其他质量属性。ATAM是在SAAM的基础上发展起来的,该方法能够重点分析软件体系架构的性能、实用性、安全性和可修改性,有助于在系统开发之前对这些质量属性进行评价和折中。此外,学生还需理解软件体系架构分析方法中敏感点和权衡点的概念。敏感点是一个或多个构件(亦可包括构件之间的关系)的特性;权衡点是影响多个质量属性的特性,是多个质量非结构化描述:统一建模语言结构化描述:ADL描述语言基于场景的架构分析方法:SAAM体系架构的权衡分析方法:ATAM管道-过滤器风格面向对象风格事件驱动风格分层风格数据共享风格虚拟机风格反馈控制风格开发方法结构化方法面向对象的方法构件化方法面向服务的方法敏捷开发软件工程基础计算机基础操作系统计算机网络项目管理数据仓库与挖掘关系数据库计算机基础可测试性易用性可移植性健壮性可用性可修改性安全性软件性能质量属性多层架构结构化的分析系统架构在软件生命周期中的位置开发模型瀑布模型原型模型螺旋模型RUP统一过程模型V模型RAD快速应用模型面向对象的分析云体系架构风格网格计算体系风格面向服务的体系架构微服务体系架构体系架构的描述软件体系架构评估经典软件体系架构现代软件体系架构系统分析架构设计系统实现系统测试属性的敏感点。软件体系架构课程内容还包括软件开发方法(包括结构化开发、面向对象的开发、构件化开发、面向服务的开发、敏捷开发等)和开发模型(包括瀑布模型、原型模型、螺旋模型、RUP统一过程模型、V模型、RAD快速应用模型等)。
二、硕士研究生软件体系架构课程翻转课堂教学模式构建策略
笔者将面向硕士研究生的基于翻转课堂的软件体系架构课程教改方案划分为课前预先学习、课中小组讨论(报告)和课后总结复习三个环节,具体如图2所示。课前,教师通过学习通软件告知学生课堂类型(包括案例分析和文献报告),并在该平台上传课件和相关文献等教学资源。学生可通过平台预先学习与软件体系架构内容相关的知识点或进行文献阅读。课中,如果是案例分析课堂,那么教师要在课堂上(如果是在线课程,那么将通过超星课堂开展在线教学)指导学生开展案例分析,并回答学生遇到的问题,学生则要在教师的引导下以小组为单位就某一具体案例开展研讨并进行讲解和分享,其他小组可通过学习通软件对其报告进行评估;如果是文献阅读课堂,那么负责文献阅读的小组就要作报告,教师或其他小组可以提问,并对其报告内容进行评估。课后,学生通过在线方式总结案例、完成习题、巩固知识点。教师应当跟踪软件体系架构案例的实操进度,并及时评阅学生作业、完成在线答疑工作。
(一)课前———教学内容的设计和发布
课前的主要任务包括软件体系架构知识点的划分、核心教学点的布置、教学课件的设计等。笔者首先将整个课程的内容划分为五个部分,如表1所示,第一部分为阅读和分析与软件体系架构的起源和发展相关的文献(6学时),以便学生掌握软件体系架构相关概念的内涵及软件体系架构的发展史;第二部分为软件体系架构风格(22学时),该部分为课程的核心内容,需要重点规划知识点;第三部分为软件体系架构描述语言(4学时);第四部分为软件体系质量属性及评估方法(2学时);第五部分为软件体系架构的发展前景(2学时)。由于学生是硕士研究生,因而课程安排了文献阅读和小组报告文献内容环节,以便学生提前阅读与软件体系架构相关的文献、熟识该领域的著名人物,初步了解软件体系架构的起源和发展脉络,以及软件体系架构相关概念的内涵。另外,教师应将全班学生分为若干小组并将课前预习内容发布在线上学习平台上,学生则根据所分小组完成文献阅读和知识点讲解等任务。
(二)课中——开展小组讨论及报告
课中的主要组织形式为教师进行主题讲解(列出与课程内容相关的知识点及主要问题)并引导学生进行小组讨论与报告。如果课中安排的是文献阅读,那么教师应提前通过在线学习平台向学生发布需要阅读的文献,学生在课堂上进行文献阅读报告;如果课中安排的是与软件架构风格相关的内容,那么教师应负责组织各小组按照一定的顺序进行报告。教师可将班级划分为7个小组,每个小组负责介绍一种软件架构风格,其他小组则需要就该组的报告进行评估,以便全班学生共同学习每一种软件架构风格,如表1所示。例如,G6小组负责报告与专家系统相关的知识点及案例,那么,其他6个小组需要对G6小组的工作进行评估,评估通过(超星)泛雅在线网络教学平台开展。评估项目应由教师事先设计并分发给其他小组。如表2所示,本课程共18次课(36学时),其中教师讲授用6次课(共12学时),学生进行文献报告用5次课(共10学时),学生开展案例分析及报告用7次课(共14学时)。通过表2可知,7个不同的小组分别负责文献阅读活动和软件体系架构案例的分析及实现任务。例如,G1小组负责软件体系架构起源和发展文献报告,并负责管道过滤器软件体系架构的案例部分,即在微软ASP.net框架中管道过滤器风格的应用。
(三)课后———完成知识点练习及案例实操
为了解决课程教学中缺乏习题库和案例库,导致学生缺乏实操演练的问题,笔者选择全国计算机技术与软件专业技术资格(水平)考试之软件架构师考试所指定的《系统架构设计师教程》[9]《系统架构设计师考试32小时通关》[10]等教材中的相关习题作为课后习题和练习案例,要求学生完成一定量的线上作业,以加强对相关知识的掌握和记忆。另外,各小组在课后需要合作完成基于某种软件体系架构的案例系统设计及实现任务。课程评估包括平时成绩和期末成绩两部分。具体来说,平时成绩包括课前在线学习情况、课堂讨论情况、课后作业完成情况三项;期末成绩包括案例设计及实现、实验报告、期末考试三项,考核方式如表3所示。
三、结语
针对软件体系架构课程教学中存在的硕士研究生积极性不高、缺乏相关先修课程基础和项目经验、缺乏习题库和案例库等问题,笔者提出了面向硕士研究生的基于翻转课堂的软件体系架构课程教学模式及其具体设计。该课程设计包括课前、课中和课后三个环节。在课前,为了让学生大致了解课程内容,教师应根据教学内容划分知识点并完成教学课件的制作和上传;在课中,教师应列出主要问题,并引导学生通过小组讨论和小组成员轮流报告的形式对多种软件体系架构风格特别是前沿体系架构风格展开分析;在课后,学生可根据教学内容开展项目实操、完成在线题库和案例题库中的题目,以巩固所学知识,同时每个小组还要完成与所承担的软件体系架构风格相关的案例分析工作。基于翻转课堂的教学改革可以提高学生的参与度,但也存在一些问题。比如,目前的课前预习材料形式仅包括文献和课件,尚未包含视频课程。又如,划分小组的学习形式可能导致每一个小组的成员仅重点研习了与本小组所承担的案例风格相关的知识和技术,这些问题都需要教师在以后的教学实践中加以改进。
参考文献:
[1]杨春梅.高校翻转课堂的有效翻转[M].北京:北京大学出版社,2021.
[2]李暾,文艳军,刘万伟,等.软件体系结构课程教学改革规划与实施[J].计算机教育,2015(6):19-21.
[3]沈莹,张林.研究生课程软件体系结构的教学实践探讨[J].计算机教育,2017(10):140-144.
[4]丁智国.翻转课堂在软件体系结构课程教学中的实践[J].计算机教育,2017(3):68-71.
[5]蔺一帅,李青山,鲍亮,等.基于学用互助的软件体系结构课程教学探索与实践[J].软件导刊,2022,21(3):10-13.
[6]全国专业学位研究生教育指导委员会.专业学位研究生核心课程指南(试行)[M].北京:高等教育出版社,2020.
[7]覃征,熊昆,李旭,等.软件体系结构[M].5版.北京:清华大学出版社,2021.
[8]秦航.软件设计和体系结构[M].2版.北京:清华大学出版社,2021.
[9]杨春辉,孙伟.系统架构设计师教程[M].北京:清华大学出版社,2021.
[10]薛大龙.系统架构设计师考试32小时通关[M].北京:中国水利水电出版社,2018.
作者:那孜古力·斯拉木 戴玉刚 单位:西北民族大学中国民族信息研究院