APP下载

面向工程教育的软件工程案例分析与实践课程

2015-09-27贾玉祥陈争艳郑州大学信息工程学院郑州45000河南教育学院信息技术系郑州450046

现代计算机 2015年27期
关键词:学时案例软件

贾玉祥,陈争艳(.郑州大学信息工程学院,郑州 45000;.河南教育学院信息技术系,郑州 450046)

面向工程教育的软件工程案例分析与实践课程

贾玉祥1,陈争艳2
(1.郑州大学信息工程学院,郑州450001;2.河南教育学院信息技术系,郑州450046)

0 引言

软件工程是与计算机科学与技术并列的一级学科,与后者相比,软件工程更强调软件学科的系统性和实践性。大数据时代的来临,一方面要求大力培养软件工程人才,另一方面也对人才培养的质量提出更高的要求,即要求有系统的理论知识,也要求较高的实践技能。与社会需求相比,我国很多高校在软件工程专业的课程设置和人才培养方面还存在一些问题[1]。例如,课程设置更偏向理论分析,理论与实践脱节等,导致学生毕业后需要在专门的培训机构进行培训才能上岗。案例分析[2-4]作为一门将理论应用于实际项目分析的课程,在软件工程课程体系中有重要位置。然而目前案例分析课程还是以分析为主,以教材驱动,案例多是一些实验室系统,所涉及的技术相对较老,学生接触不到前沿的项目和技术,不易得到充分的实践锻炼。

因此,我们结合案例分析和前沿项目实践,提出案例分析与实践课程,从社会需求出发提炼案例,把最先进的软件开发技术融入其中,探索以项目驱动的教学方法取代教材驱动的教学方法。指导学生运用软件工程的方法,将数据库、程序设计、软件模式等课程所学的知识综合运用,最终实现一个具有一定功能要求和性能要求的应用软件系统。通过本课程,学生可经历一个应用软件系统从需求的分析、软件模型的规划、开发工具的使用、软件的编码、代码的调试,直到软件的测试的整个流程,从而使软件开发实践能力得到全面锻炼。

1 课程的特点

案例分析与实践课程的特点主要体现在三个方面:

(1)优化课程设置,理论与实践相结合,并突出实践性。针对目前软件工程案例分析课程偏于理论及相关实践课程理论联系不够的缺点,将案例分析与实践相结合,使学生在开发完成一个完整的案例过程中,把所学的相关知识加以综合应用。

(2)突出案例的前沿性和实用性以及开发技术的先进性。结合现实需求选择案例,使得学生完成案例的经验能够很好地移植到将来实际工作当中,同时也提高了学生的兴趣和参与的积极性。软件开发技术发展变化非常快,尤其是开源软件开发架构,只有掌握最新的开发技术,并掌握其发展脉络,才能开发出更高效的软件系统。

(3)教学方法上,项目驱动取代教材驱动,突出学生的自主性。教材的更新速度与软件及其开发技术的更新速度是不相匹配的,一个实用性强的案例和最新的软件开发技术很难反映在一本教材上。因此采用项目驱动的教学方式取代教材驱动的教学方式,针对案例开发过程中所用到的技术,把最新的相关知识教给学生,并引导学生通过互联网自主学习。

2 课程的教学实践

2.1案例选择

教师团队首先要自己完成案例选题、设计和开发,并以此为基础,向学生讲授开发经验,指导学生动手完成案例开发。课程以“基于移动互联网的速递物流跟踪系统”作为案例,具有较强的前沿性和实用性。这是一个适合小件速递运营的物流管理和跟踪的原型系统,结合移动互联网技术,能够给客户提供及时、透明的物流信息;同时为物流公司提高运行效率提供必要的保障信息。软件的功能覆盖从收件、转运、分发到派送签收的整个流程,涉及到服务器端、手机客户端和网页浏览器端的开发。

2.2教学方式

课堂教学、实验和讨论等多种教学方式相结合,体现了课程理论与实践相结合的特点。具体教学方式如下:

(1)教师授课。提出系统的功能需求、分析需求的合理性、探讨业务改良;介绍所采用的相关技术、数据模型和对象模型的大致思路;简单介绍建模方法、开发方法、开发框架、开发环境及开发工具。

(2)学生自学和实践。需求的理解、数据模型和对象模型的理解和模型的建立;建模工具、开发环境及开发工具的使用;代码实现和调试。学生按5-6人一组分组,每小组中选派项目组长,学生在集体理解总体思路和技术手段的基础上,分工合作完成项目的设计和开发。

(3)讨论和辅导。在分析、设计、实现、测试等各个阶段,教师组织学生描述个自小组项目的进展状况和技术方案;学生同时可以提出自己的思路以及疑问,教师予以评价和解答。教师至少一次对学生的方案水平、讲述的表达进行评价。

(4)阶段验收和总体验收。在课程的中期和最后阶段,教师对学生的原型系统和最终实现作品进行评审,给出评审成绩。

2.3教育内容

不同教学方式的教学内容如下:

(1)课堂教学,主要进行案例的分析,为软件开发实践奠定基础。

①需求的描述与改良。描述案例的需求,包括功能需求的清单描述、应用场景(用况)的描述;对需求分析和信息化新技术对业务的改良的探讨;引导学生使用软件新技术解决业务需求。从实用性出发描述同类或类似系统的应用现状,如:同类系统功能状况,同类系统的缺陷;关键技术的解决的方案,解决需求的技术现状;拟使用的技术手段等。这部分内容以教师讲授为主,同时提出问题留作学生思考和讨论。

②系统架构模型的选择和依据。根据应用场景和系统的规模选择系统的软件平台和开发环境。针对需求介绍分层架构模型设计思路,从软件架构的角度描述模型选择的依据。引导学生设计软件的分层模型;在教师的指导下,由学生各个项目小组分别设计软件的总体架构,包括:子系统(或功能模块)的划分,软件的分层结构及层间的主要功能耦合;指导每组学生做出软件的架构描述和各个业务处理的软件总体数据流程。

③数据模型和数据服务框架。数据模型的设计,包括数据库的表、视图、约束关系的设计,结合案例分析设计的思路和可能的变化。数据服务框架的设计及实现技术,使用数据库持久层框架Hibernate实现的数据-对象映射。数据访问的性能优化,对象缓存、合理冗余的使用等。

④软件开发技术与软件框架。系统采用Java语言开发,数据库的管理使用MySQL,使用Web Service开发架构,服务器端基于CXF+Spring+Hibernate框架,手机客户端基于Android平台,包括条码扫描、GPS定位、地图显示等功能,同时提供BS结构的数据访问与管理。

⑤子系统与设计的细化。进一步细化设计,为后面的软件开发实践做准备。服务的设计,采用JSON作为服务数据交换格式,实现数据对象与字符串的轻量级的转换。人机界面的设计,采用一些开源框架进行Web页面的设计,介绍Android客户端界面设计的方法。

(2)实验内容,主要是软件开发实践,参与一个应用软件开发的全过程。可以细化为以下实验并制定实验大纲:需求分析,理清业务流程,确定软件的功能;对象模型设计及数据库模型设计;开发环境的搭建;Web服务的实现;网页界面设计与功能实现;Android界面设计及功能实现;二维码扫描;地图展示。

(3)讨论课内容

借鉴实际项目开发经验,定期组织项目评审对学生项目进展状况进行评价,发现问题及时解决,不断优化开发方案。根据项目完成情况及个人贡献给出评审结果,作为学生课程成绩的重要依据。至少要对原型系统和最终系统进行项目评审。项目评审的形式是由学生展示项目进展及个人贡献,回答教师的提问。

2.4学时安排

表1是一个学时安排的参考。一共64学时,其中实验32学时,主要用于项目开发实践。习题及讨论课8学时,主要用于原型系统评审和最终系统的验收评审。理论课24学时,主要讲授案例的分析、设计及用到的开发技术、框架、环境等。

表1 学时安排表

3 对工程教育毕业要求的支撑

工程教育是我国高等教育的重要组成部分,工程教育专业认证为教育机构工程类人才培养提供指导和保障,工程教育以出口为导向,专业的课程设置、师资配备等必须使得认证标准中的毕业要求得到达成。软件工程作为工程教育的一部分,课程设置也必须支撑毕业要求的达成。

2015年工程教育专业认证通用标准中毕业要求有12条,包括工程知识、问题分析、设计开发解决方案、研究、使用现代工具、工程与社会、环境和可持续发展、职业规范、个人和团队、沟通、项目管理以及终身学习。每一条要求可以分解为几个指标点,每一门课程支撑一到几个指标点的达成。

案例分析与实践课程支撑毕业要求3(设计开发解决方案)中的3个指标点3-1、3-2、3-3和毕业要求9(个人和团队)中的指标点9-2。指标点具体描述如下:

指标点3-1)具有软件项目问题定义、可行性分析及需求分析的能力;

指标点3-2)具有软件项目系统设计及详细设计的能力;

指标点3-3)具有软件项目编码实现的能力;

指标点9-2)具有一定的表达能力、人际交往能力和团队协作能力。

本课程中支撑毕业要求达成的具体实现途径如下:

(1)课堂教学的安排支撑毕业要求指标点3-1、3-2、3-3的达成

课堂教学通过对一个具体的、有实用价值的案例的分析,展示一个项目开发过程中需求分析、软件设计、编码实现及软件测试等开发阶段的主流的方法与技术,结合实验安排中项目开发的实践,理论与实践结合培养学生相关的能力。

(2)实验的安排支撑毕业要求指标点3-1、3-2、3-3和9-2的达成

实验安排就是一个应用软件的开发实践,学生分成项目组的形式,分工协作,完成从需求分析、软件设计、编码实现、软件测试等整个工作流程,因此可以锻炼学生软件开发的分析、设计、编码实现能力及团队协作能力。

(3)讨论课的安排支撑毕业要求指标点9-2的达成

在讨论课上,学生要做报告展示项目的进展和自己的贡献,由于项目是分工合作,需要大家相互配合,充分展示,还要回答教师的问题,这可以锻炼学生的表达能力和团队协作能力。

4 结语

本文提出了一个面向工程教育的软件工程案例分析与实践课程,介绍了课程的特点以及课程的教学实践,包括教学方式、教学内容、学时安排等,分析了课程对工程教育毕业要求的支撑。该课程安排在软件工程专业第六学期,过去两年的教学实践表明,该课程对于提高学生分析、设计及实现复杂系统的能力以及团队协作能力很有帮助,我们将在工程教育专业认证这个大背景下继续探索课程的教学规律,改进教学方法。

[1]王文凡,王丽娟.基于项目开发能力培养的教学新模式[J].现代计算机,2015(5)下:34-36.

[2]刘春.以Android应用为案例的软件工程教学[J].计算机教育,2015(11):75-77.

[3]赵辉,李万龙,郑山红,张丽娟.项目导向案例驱动的软件工程教学模式[J].计算机教育,2012(10):89-92.

[4]叶俊民,胡金柱,李蓉,周伟,李敏.软件工程案例教学研究[J].计算机教育,2007(7):19-21.

Engineering Education;Software Engineering;Case Analysis and Practice;Teaching Reformation

Software Engineering Case Analysis and Practice Course for Engineering Education

JIA Yu-xiang1,CHEN Zheng-yan2
(1.School of Information Engineering,Zhengzhou University,Zhengzhou 450001;2.Department of Information Technology,Henan Institute of Education,Zhengzhou 450046)

国家自然科学基金项目(No.61402419)、郑州大学校级教学改革研究项目(No.2014XJGLX070)

1007-1423(2015)27-0009-04

10.3969/j.issn.1007-1423.2015.27.003

贾玉祥(1981-),男,河南周口人,博士,讲师,研究方向为自然语言处理

2015-08-06

2015-09-07

案例分析对培养学生分析、设计及实现复杂软件系统的能力十分重要,针对目前软件工程专业案例分析课程存在的理论与实践脱节、案例与技术的实用性与前沿性低等问题,提出分析与实践相结合的案例分析与实践课程,介绍该课程的教学实践,包括案例的选择、教学方法、教学内容、学时安排等方面,分析课程对工程教育毕业要求的支撑,可以为软件工程专业课程设置及教学改革提供借鉴。

工程教育;软件工程;案例分析与实践;教学改革

陈争艳(1981-),女,河南新乡人,硕士,讲师,研究方向为软件工程

Case analysis course is important for training students abilities of analyzing,designing and implementing complex software systems.But in existing case analysis courses,theory and practice are not well combined,while cases and techniques are usually out of date.To cope with such problems,proposes the course of case analysis and practice.Introduces teaching practice,including case selection,teaching methods,teaching contents,and teaching hours arrangement,and analyzes the support of this course to the graduation requirements of engineering education.

猜你喜欢

学时案例软件
第二课堂成绩单制度下的学时发放标准的探索
——以中国民用航空飞行学院为例
《诗词写作》课程教学大纲(节选)
禅宗软件
案例4 奔跑吧,少年!
教学大纲国画(工笔花鸟)
探索学时积分制 构建阶梯式成长激励体系
随机变量分布及统计案例拔高卷
软件对对碰
发生在你我身边的那些治超案例
一个模拟案例引发的多重思考