文档介绍:1课程特点和面临的问题软件体系结构课程有其自身的特点,具体表现为以下几方面。 1知识面涵盖极为广泛。软件体系结构各阶段的活动大量涉及网络、数据库、操作系统、软件工程等课程的知识,是对这些知识的综合考虑和运用,对学生的背景知识要求非常高。 2课程知识抽象程度高。软件体系结构设计着重于对软件宏观层面的探索,这种探索与学生非常熟悉的具体编码距离非常远,如果主要依赖于课堂讲授,学生难于理解和掌握。 3理论与实践的平衡。理论知识是能适用于全体软件体系结构设计的一般知识,而实践要求在尽可能真实的系统上进行真正的设计折中,以便将一般化的知识与具体软件项目相结合,获得更好的学习效果。国防科技大学软件体系结构课程面向软件工程硕士开设,学生的特点是专业背景知识和工作经历参差不齐,学生主要是来自于计算机专业和软件工程专业的本科生,有的参与过商业软件开发,也有的只参与过毕业设计,但普遍基本缺乏完整项目的体验。我们在近几年的教学中发现,将全部的课堂时间用于讲授软件体系结构的抽象理论会使学生感到枯燥乏味,容易将这门课变成一门需要背诵大量原则而后又无法具体应用的课,难以体现和理解软件体系结构在软件开发中的重要地位。此外,在考察了大部分教材后,我们发现教材上的案例规模较小,只适合于教学而无法让学生进行实践。最后,课时有限,只有36学时,但跨度较长,有12周,如何利用好课时和较长的授课周期,安排好课堂和实践内容,一直是困扰我们的主要问题之一。针对课程特点和存在的问题,我们提出从课堂授课内容、授课形式和实践环节对课程教学进行改进,具体来说,授课内容上以学生动手后进行总结为主、授课形式上以案例式教学为主、实践环节上以开源软件的设计与分析为主,三者结合,尽可能地在较为真实的环境下,使学生体验并运用软件体系结构理论知识于具体的项目中,提升教学效果。 2教学改革方案和实施国防科技大学软件体系结构课是软件工程硕士的专业必修课,共36学时,每周一次课,每次3学时,共持续12周。教学内容安排如下①8学时软件体系结构基础知识;②10学时3个教材案例;③12学时外聘专家授课;④4学时学生报告开源项目实践结果;⑤2学时考试。上述内容安排按顺序开展,实验环节与课程教学同步进行。在教材案例实验教学中,我们采用先学生设计再教师讲授的方式,开源项目的实验与外聘专家授课互不影响。 21案例式教学与翻转课堂的结合在课程教学过程中,教师可首先讲授软件体系结构的基础知识,包括定义、视图、软件质量属性、软件体系结构设计方法与流程,该阶段的理论授课必不可少,是后续课程和实践的基础。在该阶段不应再引入更多的理论知识,原因是介绍的这些知识已足够学生开始初步的设计实践活动,而更多的知识如软件体系结构模式等内容的引入将增加学生的负担,却对实践环节没有帮助。在介绍软件体系结构设计方法和流程时,教师可选用体系结构风格实现的系统为案例,在课堂上详细介绍如何从软件需求分析开始,得到最后体系结构设计的过程、方法,同时穿插大量的随堂练习。例如,针对系统的全部用例,选取一个用例作为课堂示范,在详细介绍完针对该用例的静态模型、动态模型、控制状态机的设计后,要求学生在课堂上及时完成系统其他用例的设计,为后续的实践环节打好基础。在后续的授课中,教师可以案例式教学为主,形式上采用翻转课堂的形式。该阶段授课的案例以各种教材收集的案例为主,目的是循序渐进,使学生能逐步适应软件体系结构的设计任务。我们选取的案例有面向服务体系结构风格的在线销售系统、基于构件软件体系结构模式的紧急事件监控系统、实时软件体系结构的自动行车系统等。在该教学环节,针对每一个案例,教师可采用以下教学模式。 1课堂上不会首先介绍和案例相关的理论知识,而是依序将每个案例以作业的形式先布置给学生,每个学生有一周的时间分析该案例并完成作业要求的设计任务,作业涉及的新知识需要学生自己查资料学习。 2在下一次课之前要求学生必须交作业,在下一次课上,围绕上次布置的案例进行详细讲解并以参考设计的形式介绍给学生。 3在该案例的每个设计阶段,指出学生作业中的普遍问题并引导学生将其作业与参考设计进行对比,找出不足之处。 4在案例讲授过程中,逐渐引入其所采用软件体系结构模式的知识。这种教学模式将进行3轮,分别将选取的案例讲授并实践完毕。经过该教学环节,学生首先能在课程的早期就进入较大项目的实践,而不需要等到所有的理论知识都介绍完;其次,对每个案例的每个设计阶段和结果,学生都已在作业中进行过深入的思考和实践,因此能在课堂上马上抓住设计的重点并发现自己设计的不足之处;最后,教师结合具体案例介绍各种软件体系结构模式将抽象知识具体化,使学生通过对几个体系结构风格的学习进一步自学掌握更多的风格,理解体系结构风格的意义。 22开源软件的作用在学生掌握并实践了软件体系结构设计方法和过程,并且见识并理解