[摘要]软件工程实践课程对学生专业技能要求较高,如软件需求分析、软件架构设计、软件升级维护等内容,都直接关系学生未来能否胜任就业岗位,能否在工作中顺利解决实际问题。基于此,文章从软件工程实践课程教学模式入手,就当前软件工程教学中存在的问题提出改进和优化方案,目的在于提升学生的计算机综合实践能力。

[关键词]高职;软件工程;实践课程;应用研究

一、引言

软件工程实践课程具有较强的理论性,而在专业技能上又表现出更高的操作性。从学科特色来看,软件工程是计算机科学与技术专业的融合,其内容围绕软件需求、系统分析、软件设计、技术实践等环节,强调高素质技能型人才的培养质量。然而,传统的软件工程实践课程教学效果并不理想,教学内容往往单一、枯燥,学生的学习积极性受到抑制。如软件开发中的数据流程无法提供应用环节,学生难以从中发现数据关联性问题,导致执行效率较低;在现代软件开发环境下,难以满足多层分布式架构设计要求。

二、软件工程实践课程内容的拓展

(一)软件工程建模应用设计

传统教学中软件工程实践课程建模设计,主要采用数据流程图方式,其优势在于从数据流程图的绘制上展现软件设计过程。然而,在绘制软件设计流程图过程中,往往导致学生产生畏难心理。同时,由于对整个软件需求、软件功能分析不到位,导致数据来源不统一、数据需求不清晰、数据存储出现异常、数据冗余度等问题,也在一定程度上影响了学生对知识和技能的掌握。所以,有必要改进软件工程实践课程的教学模式,有针对性地拓宽教学方案,特别是在流程图设计分析上,需要从软件工程分析、软件数据分析、软件功能分析等方面适当延伸和拓展。如在软件功能分析上,需要借助于软件数据流程图进行顶层设计,抽象出各软件功能子系统及相关单元的功能;在软件数据分析上,需要区分软件实体、属性及关联性,并对相关数据库进行识别,引导学生理解和应用不同的数据信息结构建立E-R模型。

(二)软件工程建模设计拓展

传统建模设计主要从系统功能上确定不同的模块,比较适宜面向过程的设计环境。但对于面向可视化、面向对象、面向事件驱动下的程序设计环境,则显得不相适宜。因此,需要从建模设计上进行扩展,保留原来软件过程类模块设计的主要内容,围绕软件结构、软件数据、软件界面等进行扩展。如在系统结构设计上,可以采用集中式结构、分布式结构,还可以采用集中-分布式结构;在确定软件应用模式上,可以采用B/S结构,也可以采用C/S结构;在确定数据设计上,可以采用逻辑数据集关系进行规范化处理,也可以采用物理数据集关系进行编码和命名;在界面设计上,根据软件功能及业务需求,来组织输入、输出,从而满足不同软件设计的开发需要。

三、软件工程类课程实践教学模式

软件工程类课程实践教学模式的重点,在于从教学内容的组织与优化上,联系软件工程设计实际,突出教学方法的创新性、实践性、应用性。根据软件工程类课程特点,在改革实践教学模式上,围绕实践教学纲要目标,融入多种实践教学方法。如案例驱动教学法、任务驱动教学法、典型案例分析法等,逐渐深入、细化软件工程理论知识与应用的展开。

(一)进销存C/S案例分析与应用

C/S软件结构基于客户、服务器关系,适用于业务流程复杂、对软件响应速度较高的软件开发项目。在C/S结构中,用户根据角色权限来操作相应功能模块,并实现进货、销货、库存汇总及各类报表的输出功能。在数据库设计上,要从软件执行效率、处理异常及满足业务需求等方面,设计系统数据库表、E-R图和数据视图。在数据库表结构设计中,根据不同数据字段项的使用特点,来优化系统后台数据库结构。如在SQLServer2008数据库中,可以定义员工名称表、商品基本信息表、客户基本信息表、仓库部门信息表、进货商品信息表、用户权限表、退货商品信息表、销售商品信息表、库存信息表等,以满足进销存管理系统设计中不同业务信息的统计与关联。在数据库视图设计上,常用的有标准视图、索引视图、分区视图三种,利用Select语句进行视图检索,确定入库视图v-GoodIn、v-ReGoods、v-UserSell、v-Use-rView基本视图。针对C/S结构中软件表单编码的设计,要从信息交换、处理、传输、共享等方面来优化编码规则。如在进货商品基本信息格式上,以“系统当前日期+‘JH’+7位数字编码”为规则,来提升商品信息识别效率。在系统触发器设计上,要保证商品信息数量一致性。如在t-Goods触发器设计上,对于某商品信息没有历史记录者,则触发入库信息表tb-Stock;若该商品在库存信息表中,则将该余量进行及时相加,保障库存信息实时更新。

(二)进销存B/S模型设计与应用

B/S模式是基于多层应用结构,将原来的表示层、业务逻辑层进行分离,便于开发人员提供简洁的功能操作界面。下面以ASPNet为例来探讨软件工程实践教学。ASPNet三层应用结构中,第一层是用户表示层USL,封装了人机交互的表单与组件,满足业务逻辑层与系统用户之间的信息传输需要,并通过简单的校验后传送给浏览器进行显示。第二层是业务逻辑层BLL,主要是对不同应用业务规则和逻辑的封装,便于用户通过业务逻辑层进行多种功能的调用,以及访问数据库等;第三层是数据访问层DAL,通过与数据库进行交互来获取查询记录、插入、修改、删除数据库记录等操作。在B/S软件工程模型中,数据访问包括业务实体访问和数据操作两部分,业务实体是反映现实生活的各类业务数据,而数据操作是基于对数据库的检索来完成的信息传输服务。Model业务实体层主要存储与业务实体相关的数据属性值;DBUtility公共类主要是从Web.congfig配置信息库中获取类库,满足对数据库相应操作的访问;DAL数据访问层主要是记录数据库的表结构,满足增删、修改等功能;BLL业务逻辑层主要是满足创建数据库类,以及对数据库进行访问调用。

四、软件工程实践课程案例实施要点

软件工程实践课程在案例教学实践中还要注意几个问题。一是对于典型案例的选择与应用,要贴近软件工程实践需求,特别是接近行业软件开发现状,体现案例的实践性、应用性。二是在引入典型案例进行讲授与实践操作时,要注意多种教学方法的统合。如对于一些结构化程序设计方法,可以选择面向对象的综合性案例,让学生能够从结构化模型分析中,了解和认识不同功能模块的设计要求和方法;还可以让学生从项目讨论中,自己动手来设计程序,激发学生的创新意识和探索精神。三是要优化典型案例的教学方案,不同案例的导入要与教学目标相适应。要让学生从案例实践中,明确为什么这样设计,懂得为什么要撰写不同的设计任务,根据软件工程生命周期来细化程序设计要求,解决什么样的问题,具备什么样的功能等,多从程序设计案例分析上加深理解。四是案例分析要融入师生互动与参与,特别是通过对程序设计不同功能、不同环境的变化,如何从运行时效性上来优化程序设计;通过分组探讨等方式,来共同编写执行程序,来对各小组程序进行分析,让学生参与提问与改进,从具体的程序设计开发中积累经验,增强学生的合作意识、团队协作能力。五是强调案例导入分析与总结归纳,特别是教师要鼓励学生在案例分析中,对错误和不解进行归纳,来分析成因和问题所在,积极总结改进思路和方法,尊重学生的独特见解,引领学生创新意识的培养。另外,软件工程类课程实践教学具有特色性,不同教学内容、不同课程在实践应用中还有差异。如对于当前流行的软件开发语言及程序设计,NET与J2EE架构具有相似性与差异性,在典型案例导入中,要结合企业需求、教学分析、学生实际来选择,体现软件工程类课程实践教学的可操作性,满足学生从案例分析到职场应用的有效过渡。

五、结语

高职软件工程实践课程教学,是增强毕业生软件应用能力的必然选择。面对人才市场需求的变化,应该从软件工程类课程实践教学体系建设上,把握好“教”与“学”的关系,激发学生的软件应用热情和主动性,着力以典型案例导入与具体程序设计任务驱动,锻炼学生的动手能力、实践能力、应用能力、创新能力,真正为社会、为企业培养高素质的软件设计人才。

参考文献:

[1]陈中育,吕振洪,叶荣华等.软件工程专业课程建设的思考与实践[J].计算机教育,2013(10):48-51.

[2]李净,郭洪禹,红春.程序开发类课程群框架下“数据结构与算法分析”实践教学研究[J].工业和信息化教育,2016(11):61-65.

[3]陆璐,张新红.《JSP动态网站设计》项目化教学模式的研究与实施[J].郑州铁路职业技术学院学报,2016(1):63-65,68.