公务员期刊网 论文中心 正文

软件工程案例教学的设计探讨

软件工程案例教学的设计探讨

摘要:软件工程是计算机专业高年级开设的一门核心课程,本文以移动通讯录APP项目开发为案例,将软件工程课程所具有的理论性与方法学内容融入案例,综合采用分组讨论、协同开发的教学方式,将原本内容抽象、枯燥索味的授课过程变得具体且主动,实现了做中学、学中做的循环式教学。

关键词:软件工程;移动开发;通讯录APP;案例教学

一、软件工程案例教学

软件工程是计算机科学与技术专业的一门核心课程,一般在高年级开设。与其它计算机专业课程的技术性相比,软件工程更注重管理性,是综合技术、方法和管理并指导软件项目开发的一门应用型课程[1]。由于该课程具有强烈的工程与项目背景,授课内容又涉及到项目管理的方法学,老师在设置教学内容时难以把握讲授难度[2]换言之,一旦涉及大量的定义(例如软件开发模型、白箱/黑箱测试等)以及方法学(例如瀑布模型、敏捷开发模型等),学生易感抽象、空洞,掌握效果不佳。以案例驱动的形式开展授课,将上述知识点代入到一个或多个项目实例中,不仅可帮助学生更好的掌握关键知识,还能进一步培养出工程开发必要的团队协作能力[3]。选取什么案例以及多少案例是软件工程案例教学值得研究的一个问题,需要结合学校制定的培养方案、学生的兴趣等诸多因素。本文以移动通讯录作为课程案例的主要考虑是:(1)移动通讯录是移动应用开发的一个典型应用,既可以涵盖了项目开发的全过程,而且项目需求与实现功能点足够简单,易于教师掌控;(2)移动通讯录基于Android平台开发,Android是当前流行的移动开发技术,大部分软件专业学生均对此感兴趣,该平台以Java语言为基础,学生一般在二年级已经学习过Java编程,具备一定的前期积累;(3)移动通讯录开发难度较小但实用性强,学生在课程结束后能够实现自己的作品,满足了成就感,从而激发学生从事软件开发的兴趣。

二、教学内容体系

(一)课程前导

软件工程是计算机专业的一门综合性课程。为了培养和树立学生对专业学习的整体观,在讲授前教师应对软件工程的前导课程进行简单有序的梳理,剖析各专业课程对本课程的支撑情况,对那些时隔1年以上的课程甚至需要花费一定课时进行回顾。本课程最核心的几门先导课包括:(1)《Java面向对象程序设计基础》,包括Java程序开发的基础语法、系统类和相关的扩展知识点,如输入输出流、异常处理、多线程、GUI等;面向对象的基本原理和相关概念,如继承、多态等;面向对象开发的主要优势:可移植、可维护、可扩展;该课程是Android移动编程的基础语言,Java的所有机制在本课程的项目开发均可使用。(2)《数据库原理及应用》,包括数据库的基本概念,概念模型ER图、数据库表,标准化查询语言SQL等,移动通讯录采用Android内置数据库SQLite,该数据库支持SQL。(3)《移动应用开发》,包括Android体系与版本;Android事件模型;Android控件与界面设计等,本课程案例-移动通讯录是基于Android系统开发。

(二)课程设置

我们将移动通讯录的整体开发过程根据软件工程课程大纲的要求[4]以及工程开发的流程进行模块化处理。就学时情况而言,该教学体系假定课程总课时为36学时,学时分配是根据软件工程各阶段的重要性进行设定,根据笔者对移动项目开发的经验,需求分析、详细设计和编码是整体项目完成的3个关键阶段,学时分配较大。其次,在案例教学中,课堂上主要是教师对学生课外完成阶段化工作的总结、点评、修缮等,大量的设计与编码工作由学生在课后完成。就内容设置而言,基本涵养了软件工程教学的各个关键知识点,包括软件开发各阶段的主要任务与目标、应提交的相关材料等。

三教学手段与方法

(一)学生分组

案例教学的特点要求本课程更适于采用学生为主的教学方式[5]。在实际的教学过程中也证实了这一点,采用分组形式让学生自主选择开发场景既能充分调动积极性,还能实现更高效的工作效率[6]。教师根据本项目的复杂度和班级人数分若干个组,每组按企业软件开发的结构设置多种角色。为了保证每组项目能够的有序可行,教师根据首先为每组指定项目经理的人选,然后再由项目经理和学生双向选择的方式组件。分组过程应把握好两个原则:(1)自愿分组原则,自愿分组有利于团队交流与互助,尤其是方便课后交流;(2)组长责任制原则,组长有权选择组员以及对组员的角色进行分配,确保项目所要求人力资源,分组后组长公开人员分配情况并且阐述分配的可行性。通过两个原则叠加使用,既防止了自由组合时的各组专业能力不均衡的困境,又满足不同学生承担不同角色期望与兴趣。

(二)翻转式教学

软件工程案例教学可以模仿企业项目开发的方式,由教师主导转换为学生主讲,项目组按已设定的项目计划定期在课堂上报告进展情况,尤其是说明运用了软件工程中哪些原则与方法,为何使用这些原则方法。每组报告后由教师组织其它项目组共同讨论。在每一组汇报时,其他小组的成员都代表为用户角色,对项目进展提出问题或者新需求。教师在总结和点评过程中引导学生使用软件工程的相关工具,每组在需求分析、系统结构、数据库表设计等均不相同。不同场景下的项目讨论与点评,更易于头脑风暴,提升学生的应用开发能力。

(三)基于软件开发模型的编码

软件开发模型是软件工程的教学大纲当中最重要的内容之一,但这一部分若完全由老师讲授对学生而言则过于抽象,为此,在课程进入编码前,教师可首先对各种开发模型进行简单介绍,然后由每组选择一种开发模型应用于本组项目开发。在完成开发后,教师根据项目的完成情况、是否延期等向学生总结各模型的特点。

参考文献

[1]沈海波,周如旗,朱雄泳.新工科+工程教育认证背景下软件工程特色专业建设探索[J].软件工程,2018.03:57-59+30.

[2]田怀凤,软件工程案例教学的不足反思与对策研究[J].2017,08:83-84.

[3]姜洋,丁秋雷.案例教学模式研究综述[J].上海包装,2018.04:61-62.

[4]桑春艳,王喜宾.“互联网+”环境下软件工程课程实验实践教学模式探讨[J].教育现代化,2016,27:45-47.

[5]朱祺.案例教学法在软件工程教学中的应用[J].电子世界,2017,24:92-93.

[6]李玲.软件工程课程教学模式探讨[J].计算机时代,2017,05:50-53.

作者:陈耀东 单位:长沙师范学院信息与工程系