应用课题实践与项目开发训练特色课程中的软件工程实验教学

2014-06-23 05:28王祥斌唐翠芳
计算机教育 2014年5期
关键词:特色课程软件工程实验教学

王祥斌 唐翠芳

摘要:从介绍应用课题实践与项目开发训练特色课程出发,分析软件工程课程教学中关于实践实验教学所存在的问题,提出该特色课程中关于开展软件工程实验教学的思路,指出主要教学内容,说明取得的教学效果。

关键词:特色课程;软件工程;实验教学

1.应用课题实践与项目开发训练课程的开设背景

近年来,计算机专业已经成为高校应届毕业生就业率较低的专业之一。表1所示为2012年中国大学毕业生“红黄绿牌”本科专业的情况。2012年6月11日,由麦可思研究院(MyCOS Institute)独家撰写的《2012年中国大学生就业报告》正式发布。在这份报告中,虽然计算机科学与技术专业没有成为前10位失业率最高的专业之一,但就业形势依然不容乐观。报告显示,计算机专业同样存在着失业量较大、就业率低,且薪资较低等问题。同时,计算机专业的低就业率也由人才培养质量达不到产业要求而造成,一方面应届毕业生找不到合适的岗位,另一方面企业招不到合适的人才。因此,对于计算机专业而言,如何提高该专业毕业生的动手实践能力,掌握当前主流的软件设计方法与技能,紧跟企业的实际要求,改变以往“重视书本理论,忽视实验实践,脱离企业应用”的现状,成为当前计算机专业教育的迫切要求。

应用课题实践与项目开发训练课程(简称“实训”课程)是一个系列课程,从2008-2009学年开始,首先在2006级和2007级计算机本科班中开展该课程的教学实验。经过对5届学生进行教学摸索,目前该课程已经正式成为贵州师范大学数学与计算机科学学院计算机本科专业的必选课程之一。

“实训”课程课时总计约180学时,10个学分,历时5个学期,约80周。课程采用“导师制+小班教学”的形式组建学习小组开展学习,住强调理论与实践联系的基础上重点培养学生的动手实践能力。

2.软件工程实验教学内容中出现的问题

软件工程是计算机专业的必修课程之一,也足核心课程之一。该课程旨在提高学生的实践能力和工程设计能力,其实验课程的内容设计和开展尤为重要。传统上该课程安排在大学三年级,总学时为72学时(54+18)。但是在实际教学过程中我们发现学生的实践时间偏少,很难通过18个实验课时完成从最初的资料查找、阅读、整理、系统分析、设计、编写文档、编码和测试等有关于软件开发的基本流程,特别是相关软件设汁的文档编制的训练。对于可视化建模软件,诸如Rose Rational、trufun P1ato、Power Design等讲解浅尝辄止,甚至被教师一笔带过,以至于到最后,很多学生只是为了完成课程作业,没有很好的思考和创新,达不到课程开设的目的,这门原本重要且有趣的课程变成为了应付考试的枯燥的“背诵”课程。

另一方面,授课教师在一定程度上与实际软件企业的运作存在一定的脱节。绝大部分授课教师甚至自己都没有编制商业化软件的经历。而这种经历的缺失毫无疑问地将影响到该教师对软件工程的课程教学与实验内容的设计,从而造成了某些教师授课时仅能“照本宣科”,这不得不说是软件工程课程教学的一大遗憾。

因此,为了提高软件工程课程的教学质量,通过多年的摸索,我们在“实训”课程中安排了有针对性的实验课程,采用项目实践的方式作为软件工程的有效补充,以期解决上述问题,提高课程的教学质量。

3.软件工程实验教学课程的设计思路与开展

通过几年的实验,我们可以对“软件工程实验教学课程”的教学思路做出以下总结:

1)教学目的。

在教师的指导下,学生通过适当的选题完成软件工程中的需求分析、架构设计、数据库设计、编码、测试、部署等基本环节,使学生在完成任务的过程中培养和提高分析和解决问题的能力。

2)基础课程与时间安排。

有关软件工程实验教学课程的教学,其基础课程涉及数据库原理概论、Windows程序设计(有的院校开设的是MFC程序设计或C#程序设计)。因此,将该课程的教学安排在这两门课程之后是比较适宜的。

3)教学内容框架。

软件工程实验教学课程的框架体系如图1所示。

(1)学生分组与选题。由于实训课程采用的是“小班制”教学,每个教师教授8-10个学生,可以将学生分为小组。而后,每个教师提供1-2个难度适中的实训选题,每个题目由一个小组完成。由于学生人数少,有利于教师更加充分地、有侧重点地对学生的学习过程进行指导。两个学生小组也可以展开一定的竞争,促进学生的学习。

(2)课程的框架体系与时间安排。软件工程实验教学课程的框架体系主要由两个部分组成。其中第1个阶段即本文所涉及的内容,安排在实训课开设的第4学期(多为大三上学期)完成,所占学时为18周,54学时。第2个阶段则是外包给校外的软件培训企业来完成,以2-4周为期夏令营的形式完成,总计120学时,安排在实训课开设的第5学期(多为大三下学期)完成。

(3)软件工程实验教学课程的教学内容。

①项目选题与企划:确定小组选题,讨论并制订实施计划;估算项目总体规模、工作量和成本;确定选题实施中拟解决的重点难点问题;初步设计作品功能结构,估计项目范围、产品规模及总工作量,编写人力资源计划和软硬件资源计划、测试计划、配置管理计划等相应文档。

②需求分析:介绍或者回顾需求分析的相关理论知识;学习合适的建模软件,画出用例图,书写用例规约、术语表,完成需求规格说明书等相应文档;教授类图、顺序图、协作图、活动图、状态图等文档的书写;确定系统开发环境。

③软件体系结构设计:设计系统架构;制订开发策略;确定系统的主要功能模块;确定系统的物理视图、逻辑视图、开发视图及进程视图。

④数据库设计:确定采用何种DBMS系统;利用建模工具进行逻辑设计;设计库结构与表结构以及完整性约束机制;设计数据库使用的安全性机制;书写数据库使用的管理规章等文档。endprint

⑤功能及算法设计:制订模块的命名规范;确定系统的各个模块;学习或回顾NS图、PAD图的画法;细化NS图、PAD图等手段设计各模块的功能。

⑥用户界面设计:确定用户界面风格;系统出错处理机制的没计;人机交互风格的设计。

⑦编码与设计:根据需求分析规格说明书和相关的技术文档,采用合适的程序设计语言分工明确地完成相关模块的编程工作;制作测试用例;采用合适的测试方法测试作品,并编写测试报告。

⑧作品验收与部署:作品帮助文档的编写;提交作品及相关技术资料;编写简要总结报告;对系统进行自我评价。

(4)可能涉及的相关软件。Rose Rational、trufun Plato、Power Design、Project、Visio。

4.课程实施过程中需要注意的问题

通过四届学生“实训”课程的实际教学,软件工程实验教学课程在具体的实施过程中,需要注意以下几个问题:

(1)实训选题应把握“跳一跳,摸得着”的原则,控制难度。例如,实训选题太空战舰(如图2所示)就是2008级计算计本科所做的选题之一。尤其不提倡指导教师将自己的科研项目进行所谓的“剥离”一部分给学生作为选题。

(2)程序设计语言应当选用前期实训课程中所学习的程序语言,以免重新学习编程语言而耽误实验课程的后期开展。

(3)应选择大型数据库系统,如SQL Server或者Oracle,最好与前期实训课程中学习内容一致。

(4)设计前后台交互代码时,培养学生采用事务机制的观念。

(5)根据指导教师自身的情况,选择1-2个要用到的建模软件重点学习,不必面面俱到、跑马观花地“介绍”所有的工具软件。

(6)采用MVC架构进行系统开发时,注重告知学生表现层、业务逻辑层、数据访问层等多层结构的体现与优缺点;对于网站类选题,注重引入一些新的开发技术(如Ajax)等。

(7)注重培养学生对于技术文档的查找与自学能力,例如与Java相关的JDK API,或.NET相关的MSDN等。

(8)注重培养学生之间的交流和团队协作能力。

5.结语

经过诸多学时的集中学习,历时半年,通过课堂教学、上机实验、视频教程等多种形式相结合,该“实训”课程学习小组的学生对开发软件作品的基本流程、技术有比较完整的理解,动手能力有了明显提高,改变了软件工程课程“枯燥”的“死记硬背”的印象,使学生能够切切实实地将知识、技术、方法、工具应用到项目实践中,大大提高了课程的教学质量和学生的动手能力。endprint

猜你喜欢
特色课程软件工程实验教学
基于科学探究的高中生物实验教学探索
网络与云技术在实验教学中的应用
初中化学实验教学中“微课”教学模式的探讨
谈初中化学实验教学的初探
小学数学教学中向学生渗透数学思想和方法的探讨
校本特色课程的教学实施与评价
简谈中职学校的教育创新
依托工作室的软件工程实践教学研究
浅论中职学校的教育创新
基于工程教育认证的《软件工程》课程教学质量建设研究 