摘 要:以項目引导的教学过程能让学生更早地为从业生涯积累一点经验,同时也为形成良好的职业素养奠定基础。《软件设计与体系结构》这门课程旨在培养学生在后期从事软件开发工作的软件与体系结构设计的实践能力,知识点抽象,实践性要求高。本文分析了《软件设计与体系结构》课程教学现状和以项目引导的软件设计与体系结构课程教学意义,最后结合延安大学软件工程专业培养方案和《软件设计与体系结构》课程大纲,给出了以项目引导的软件设计与体系结构课程教学方案。
关键词:项目引导;软件设计;体系结构;教学方案
一、 引言
软件设计与体系结构课程内容非常广泛,包含技术、方法、工具和管理等方面。软件设计是对软件需求的直接体现,软件设计为软件的实现提供直接依据,而体系结构作为软件设计过程中控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段之一。软件设计与体系结构这门课程教学应重视理论与实践结合,以能力培养为目标,以职业方向为导向,用项目溶解知识,用任务驱动教学,将“教、学、做”融于一体,教学内容同就业与企业用人需求接轨。
本文以延安大学《软件设计与体系结构》课程设置为例,探究了此门课程在教学过程中以项目引导进行驱动教学的意义及课程教学方案,希望通过项目中的任务驱动,开展以项目为引导的教学模式。
二、 软件设计与体系结构课程教学现状分析
以计算机为核心的信息化社会,大家已感同身受。被认为是信息化灵魂的软件离不开良好的顶层设计。当前国内各大高校软件工程和计算机科学与技术等专业已普遍开设了《软件设计与体系结构》这门课程,为软件架构设计师及软件开发工程师的培养打下了一定的基础。然而,这门课程与其他软件工程相关的课程大部分内容交叉,也是当前各高校都存在的普遍问题,如软件工程、软件设计方法、UML统一建模语言等。在软件设计与体系结构这门课程讲授的过程中主要围绕软件设计与体系结构的概念、原理、技术和方法等相关知识进行理论讲解,欠缺与实际项目的结合及任务推动与引导,致使部分同学对本门课程学习兴趣不高。
三、 以项目引导的软件设计与体系结构课程教学意义
(一) 项目引导符合课程自身特点
在本科阶段《软件设计与体系结构》课程主要面向软件工程类专业开设的课程,教学过程中,主要围绕软件体系结构的基本原理、方法和实践。使学生真正掌握软件体系结构设计基本的理论、技术。一般来说,这门课程具有以下几个特点:
1. 课程内容联系紧密
许多高校在软件工程类专业课程体系中同时开设了《软件工程》《软件设计技术》和《软件设计与体系结构》等课程,这些课程中部分章节内容相互交叉、联系紧密。比如,在延安大学软件工程专业培养方案设置中,将《面向对象程序设计》定为本课程的选修课,同时也将《软件工程》《软件设计与体系结构》等课程作为了软件工程专业的专业必修课或专业限选课,具体如表1所示。这些课程之间在内容上联系非常紧密,如《面向对象程序设计中》介绍的设计思想、原则,《软件设计与体系结构》中介绍的软件设计风格,《软件工程》课程中的界面设计、数据库设计、设计模式等知识在这些课程大纲中均有涉及。
在以往的教学过程中发现,只有将上述知识的实践应用结合项目开展,才能更进一步地将先修课程或后置课程的知识进行检验和系统地梳理。
2. 课程重难点抽象
通过《软件设计与体系结构》课程开设,使学生认识软件设计在软件开发过程中的重要性,熟悉和掌握软件设计、软件体系结构设计的方法和技术,特别是面向对象的软件设计方法。
在延安大学《软件设计与体系结构》这门课程的培养的知识、能力及素质目标,对本门课程的重难点也是非常明确,具体见表2。大纲中同时也指出,本门课程主要内容包含介绍常用的体系结构风格,软件体系结构的组成与常用的描述方法,基于体系结构的软件开发方法;另一方面包含,实际设计模式的分类描述,主要包括创建型、结构型和行为型3类共23个设计模式。从上述大纲的要求中可以看出无论是常见的软件体系结构风格还是基本的软件开发方法或实际设计模式都是比较抽象且不易理解的知识内容,从教师的课堂设计和学生的学习来讲,都有一定的难度。
3. 课程教学方法单一
现阶段大多数高校,这门课程的教学方式都采用理论学习与上机实践的教学方法,课堂一般以多媒体教学及分组讨论为主。学生喜欢挑战自我,对于这类传统的教学模式,学生积极性不高,从而致使教学方法欠缺一定的灵活性,对一些实践性要求较高的章节内容掌握帮助不是很大,需进一步结合项目,激发学生的兴趣讲练结合、主动引导学生构建知识体系,评价学习效果。
通过项目,完全可以将课程重点知识渗透、溶解于其中,在项目的实践过程中,学生不仅能够了解软件体系结构研究和应用的最新进展,而且可以讨论软件体系结构的基本理论知识,又能结合软件体系结构的设计和工业界应用项目实例,对课程知识进行检验和总结。
(二) 项目引导便于学习任务推动
1. 通过项目便于设计任务
以选取的项目为基础,进行任务分析与设计更具有针对性和目的性。针对项目进行软件产品的体系结构分析与设计,在教学设计上将课程知识作业或实践练习以项目任务的形式布置下去,学生更容易接受,再完成项目任务后,对软件设计与体系结构相关理论、知识体会更深,真正做到了学以致用。
2. 通过项目便于知识构建
用项目化教学进行知识建构,在选取合适的项目实例及有针对性的任务的前提下,将软件与体系结构设计课程系统的知识转化为项目教学法,具体可以通过如下过程进行知识构建。
首先,根据章节知识所有的重难点,在有针对性的项目背景下设计任务。其次,将项目产品模块化后实践要求与本章节的重难点对应。知识点均应有相应的实践任务进行练习,每个练习由一系列的实践项目设计而来,不仅要有基本实践能力的提高训练,而且还应包括理论知识的掌握和转化训练。再次,通过项目所含纳的实践要求,和对应的设计任务驱动学生掌握已经学过或者即将学习到的知识点,然后建构项目引导的知识体系,提高学生实践能力。最后,教师对学生对构建的知识体系在项目的任务完成情况中进行评价,用客观的指标评价学生的知识掌握情况与体系构建情况。
3. 通過项目便于效果检验
在教学任务设计时,适当地增加对于已学过知识点考核的相关任务,在项目的开展过程中及时地检验学习效果,不断地加深对已学知识的实践应用。根据任务完成情况,判断学生对知识的掌握程度,指导并帮助他们提高。
(三) 项目引导利于课程知识溶解
《软件设计与体系结构》课程知识理论性强,在传统的授课方式中,缺乏知识溶解的载体,很多的重点知识都只是在举例讲解的过程中掌握。若能将这些基本知识贯穿于设计的实践项目中,将更能激发学生的学习兴趣,使学生在项目中挑战自我,在挑战中掌握知识。
四、 以项目引导的软件设计与体系结构课程教学方案
从教师及学生两个角度出发,结合当前高等教育课堂改革的要求,针对《软件设计与体系结构》这门课程以项目引导为教学模式的具体方案如下图1所示:
(一) 教师
教师结合课程章节重难点和学生实际情况,制定项目,创设教学情境,引出任务并分配给学生学习完成,在学生完成任务的过程以专题讲解和个别辅导形式,给予相应存在问题的同学适当的答疑解惑。根据项目引导学生构建知识体系,总结知识点,分析学生完成情况,对学习效果进行评价、教学总结,为下一次的教学设计积累经验。
(二) 学生
学生拿到教师设计的教学任务后可以自主学习,遇到困难时可以相互探讨,协作学习,完成知识构建,总结、归纳。将构建的知识应用到项目任务重,根据教师的效果评价,不断地反思,加深对知识的理解与认识,并提高相应的应用能力。
五、 总结
软件设计与体系结构是一门实践要求比较高的课程,不能仅靠课本的理论讲解进行课程学习,应结合具体的案例项目推动学习任务的开展和知识体系的构建,在学习中总结,在项目实践中检验,在检验中提高。在实际的工作任务驱动下引导学生积极地学习软件设计与体系结构这门课程,提高软件设计能力和软件工程专业素养。
参考文献:
[1]齐治昌.软件设计与体系结构[M].高等教育出版社,2010.
[2]葛文庚,魏雪峰.软件工程案例教程[M].电子工业出版社,2015.
[3]延安大学2015版人才培养方案[J].延安大学教务处,2015.
[4]延安大学课程教学大纲[J].延安大学教务处,2015.
[5]许波,陈晓龙.UML结合软件工程教学改革探讨[J].计算机教育,2011,(2):34-37.
[6]胡志慧.基于CDIO软件的设计与体系结构课程教学研究[J].中国管理信息化,2015,(17):216-217.
[7]赵曼姝.项目化教学知识建构和职业素质提高分析[J].北方经贸,2011,(12):150.
[8]吴海花,王连山.计算机软件项目教学改革的实践与探索——基于“任务驱动”的小组协作教学模式[J].考试周刊,2009,(23):11-12.
[9]李暾,文艳军,刘万伟等.软件体系结构课程教学改革规划与实施[J].计算机教育,2015,(6):19-21.
[10]覃征,邢剑宽.软件体系结构课程教学:抽象与实践的协调与统一[J].中国大学教学,2009,(7):14-15.
作者简介:
谢生龙,李竹林,许淳,陕西省延安市,延安大学数学与计算机科学学院。