高职高专软件技术专业《软件工程》课程教学探究

2014-09-05 01:18邢益良
教育教学论坛 2014年25期
关键词:软件工程软件用户

邢益良

(海南软件职业技术学院 软件工程系,海南 琼海 571400)

高职高专软件技术专业《软件工程》课程教学探究

邢益良

(海南软件职业技术学院 软件工程系,海南 琼海 571400)

《软件工程》知识抽象和具有较强的实践性,高职高专软件技术专业学生难以从实践中体验知识,文中对软件工程概念、软件开发模型和需求分析等方面的教学方法进行了探讨,方法具体、形象,具有实践性,能提高教学效果。

软件技术;《软件工程》;教学;高职高专

《软件工程》是高职高专软件技术专业一门必修的专业课程,涉及计算机、数学和管理等多个学科领域的知识,是在软件开发实践中总结经验的理论课程。《软件工程》课程在软件技术专业课程体系中占有重要地位,它的作用是使学生了解软件产品的研发过程和开发规范,提高软件质量意识,掌握基本的开发方法、技术和工具等内容。但该课程具有较强的抽象性和实践性[1,2],学生很难参与到具体的工程实践,无法体验实践中的概念、原则、开发模型、开发方法和开发技术等内容,教师也很难把握住课程把抽象的知识转换成具体的实践,让学生在具体的实践中去体验知识。张振琳[3]等人对软件工程课程实践教学进行了探索,李金靖[4]对软件工程的格罗SSDL模型和建构主义两种教学方法进行了探讨,杨洋[5]等人对软件工程课程中的概念、教学方法、团队合作设计和实践教学等进行了探讨。笔者依据软件工程的多年教学经验,对软件工程中抽象的概念、开发模型和需求开发等教学内容进行了探讨。

一、概念的抽象和混淆

通常软件是由程序、数据和文档等构成的。从未学习过《软件工程》课程的学生往往认为程序即是软件,这种看法是严重错误的。如果不区分这种基本概念,学生会认为软件只需要编程而忽视需求分析、设计和测试等工作任务,而这些任务却是开发软件的重要任务,其比重远远高于编程。在教学中可以借助比喻、案例和启发式等多种教学法避免概念抽象和混淆。教师先用电饭煲产品作比喻,可把程序看成是电饭煲,程序具有“煮饭”等功能;把数据看成是电饭煲要加工的各种饭菜,数据是要程序处理的;把文档看成是电饭煲说明书和设计图等资料;把软件看成是电饭煲+饭菜+说明书等。通过比喻,学生初步认识了软件、程序、数据和文档的概念和彼此之间的关系。然后教师用学生熟悉的暴风影音等软件作为案例进行演示和分析,其程序是指暴风影音图标所对应的“.exe”文件,通过该程序可以打开播放界面实现各种功能,其数据包括影碟文件和在线影视数据等,这些数据被程序加工才显示出丰富的影视效果。由于用户会遇见播放等问题,暴风影音提供了在线帮助文档。通过这个案例学生能把软件概念和真实的软件建立起联系,深化了学生对概念的认识。最后学生根据自身体验分析一款熟悉的软件并指出软件中的程序、数据和文档文件。学生会依据之前对概念的认识主动思考“软件中的什么文件是程序?什么文件是数据?什么文件是文档?”等问题,学生互动带来了良好和轻松的学习气氛,之后教师再进行点评,包括对问题分析和学生表现等方面进行点评。经过上述教学,学生能较好分析游戏软件,能把存盘文件和存储用户名和密码的数据库归类为数据,能把游戏密技说明书和游戏教学视频文件归类为文档,能找出游戏对应的“.exe”程序文件。

二、细化软件开发模型

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,这称为软件的生命周期。生命周期模型规定了生命周期划分成哪些阶段及各个阶段的执行顺利。典型的软件生命周期模型特点是模型数量多、知识抽象性和模型工作任务多等,这使学生很难区别各个模型的特点,很难激发学生的学习兴趣,很难让学生参与模型工作任务的实践,以及很难弄清彼此间的关系。把抽象知识适应性地转化为具体的和容易实践的任务能降低学生的学习难度。在教学中,可先让学生以团队的形式讨论分析软件工作任务的开始时间和工期等内容细化软件开发模型,再绘制出细化后的软件开发模型,最后比较和讨论分析各种软件开发模型,这能使学生更加深刻地认识软件开发模型。以增量模型教学为例,先让学生团队在课堂上召开会议,讨论软件立项和以头脑风暴法粗估计系统功能。讨论软件立项是让团队成员提出软件项目交给团队共同讨论,其目的是统一成员意见和激发学生的学习兴趣,它是后继工作的基础。要召开好会议要把握好会议时间和系统功能规模等几个要点,会议时间要短,以5~10分钟为宜,时间过短就会有成员没有机会参与讨论,时间过长会议效率将降低。团队成员都要熟悉已立项的软件系统,这样所有队员才能积极参与到会议中,这样的软件可以是寝室管理系统或教务管理系统等。系统功能规模以4~6个主要功能为宜,功能过少就不能很好地仿真真实的系统,很难激发学生兴趣,功能过多则很难在规定的时间内完成任务。然后再让学生团队讨论估算每个功能的开始工作日期以及需求分析、设计、编码和测试等任务的工期,功能的开始工作日期按业务紧急优先度安排,开始工作日期应安排在前序功能的编码或测试阶段,功能的工期取各个成员估计工期的平均值。这样做能避免学生感觉知识抽象,让学生感觉到事物较具体且容易实施。最后要求学生应用Excel软件制作表格填写系统各个功能的开始工作日期和需求分析等任务的工期,并依此生成甘特图。由于学生在计算机文化基础等课程中未绘制过甘特图,因此教师要演示操作如何绘制表格和生成甘特图。该教学法能让学生全程参与实践,从而强化了对增量模型的认识,学生能通过甘特图较直观地观察到工作任务间的关系以及功能之间的关系。通常学生都较好地完成工作任务,但存在工作任务开始工作日期安排不合理等问题。例如,某功能的开始工作日期安排在前序功能测试工作任务之后,教师可以组织学生讨论这样的安排是否会导致开发人员无事可干,让学生更加深刻认识模型。

三、面向用户的需求分析教学

软件需求分析是指对要解决的问题进行详细地分析,弄清楚问题的要求,确定系统必须要做什么。软件需求可分为三个不同层次的需求:业务需求、用户需求、功能需求。它们分别从组织、用户和开发人员角度描述了需求。当软件规模较小,软件开发关注的是代码而不是需求,而现代软件都较复杂且规模较大,需求分析在软件开发中越来越重要甚至直接关系到软件的成功与否。在实际教学中,学生通常不会区别需求的层次性,其直接关注的是功能需求,其更关注的是如何编码实现系统。但由于软件复杂和规模较大,不可能直接获取到软件功能需求,这导致学生认为用户需求是直接获取的。面谈、问卷、UML用例图和用户故事点等技术方法是用户需求获取的常用技术方法。这些技术方法的一个共同特点是需要用户参与到需求分析中,由于学生没有工作经历不能够把用户的业务需求描述出来,这加大了学习难度,所以用户角色不应该由学生扮演。相对而言,教师工作和生活阅历丰富,能较好认识和描述业务,用户角色可由授课教师或邀请相关教师扮演。扮演用户角色的教师其职责是学生交互描述需求和审核学生是否正确描述出用户需求等。学生团队的工作是设计面谈和问卷问题以及应用用户故事点等方法描述需求。学生设计的问题往往存在不够系统、题量偏少、需求相关性较低和未从用户角度描述需求而是描述系统操作等问题,教师在教学时应该要注意该类问题的发生和指明问题所在。这种教学法把传统的讲授法转成用户和开发人员的沟通交互教学,把需求案例讲解转成开发人员描述需求和用户对需求进行审核,其特点是仿真度较高、可操作性高和实践性强等。

文中探讨比喻等教学法在软件和程序概念中的教学应用,探讨在教学中融进软件功能以及功能的工作开始日期和工作任务工期,细化软件开发模型避免教学空洞,探讨软件需求层次及面向用户需求层次的教学方法。教学实践表明,这样的教学把抽象的知识具体化、形象化和层次化,强化了教学实践性,能够提升教学效果。

[1]李亚红.《软件工程》课程教学改革探讨[J].长江大学学报(自然版),2013,10(01):1,96-98.

[2]孟庆见.软件工程课程教学方法改革研究与实践[J].福建电脑,2013,(04):29,167.

[3]张振琳,张雪松,于慧艳.“软件工程”课程实践教学改革探索[J].中国电力教育,2012,(29):90,103.

[4]李金靖.对软件工程教学方法的探索[J].信息系统工程,2012,(04):153-154.

[5]杨洋,曹天杰.软件工程教学法探究[J].计算机教育,2013,(07):62-65.

G712

A

1674-9324(2014)25-0189-02

海南软件职业技术学院基金资助项目(Hr201304)。

邢益良(1979-),男,海南文昌人,硕士,系统分析师/讲师,主要研究领域为软件工程和计算机图形图像处理。

猜你喜欢
软件工程软件用户
禅宗软件
软件对对碰
关注用户
关于如何创新和完善计算机软件工程管理的探讨
关注用户
关注用户
如何获取一亿海外用户
谈软件的破解与保护