“项目开发实训”教学的探索
2014-03-28李亦飞王文琴
李亦飞,王文琴
(常州工学院计算机信息工程学院,江苏 常州 213002)
“项目开发实训”教学的探索
李亦飞,王文琴
(常州工学院计算机信息工程学院,江苏 常州 213002)
“项目开发实训”课程为软件工程专业的学生提供一个软件项目开发的实训平台,旨在提高软件工程专业学生的就业竞争力和解决实际问题的能力,提高团队合作精神和沟通能力。通过实训,学生的各项能力得到了锻炼和提高,并取得了显著的效果。
项目开发实训;软件工程;教学模式
G642
B
0 引言
近年来,软件工程专业毕业生在就业过程中经常面临自身能力无法满足企业对软件人才技能要求的问题。由于学校和企业目标、职责不同,难以建立相互信任、互利共享的长久机制。企业缺乏合作的内在动力,学校也难以对企业参与人才培养的过程和行为进行规范和考核,合作关系不稳定、不深入、不牢固、不持久。[1]如何帮助毕业生提高自身能力和就业竞争力,成为高校人才培养的新课题。“项目开发实训”课程针对软件工程专业学生,通过软件工程项目实训,掌握最新的开发工具及技术,提高学生解决实际问题的能力。
1 教学设计
“项目开发实训”课程是学生在本科最后学习阶段的一次综合实训,它将已经学习的软件设计、开发相关课程,如“面向对象程序设计”“数据库系统概论”“系统分析与建模”“软件工程”等在项目中进行整合,使学生体会到每门课程在软件工程中的作用和地位,且可将所学的知识应用到项目开发中。课程引入企业实际项目或实际项目的子模块,以项目驱动教学,学生是项目的参与者,教师是项目的质量管理者。[2]学生通过亲自参与项目,承担不同的角色,完成相应的任务,切身体会软件工程开发流程,提高对软件规范性的认识,师生之间是一种平等、合作、协商的教学关系。教学中,以项目为课程的主导,教师成为学生的指导者和引路人,学生成为学习的主体,积极主动地参与项目管理活动,师生之间形成良好互动的教学氛围。[3]
1.1项目选择
在“项目开发实训”课程中,项目选择面临两个问题。一是自拟项目多为一些在教材中或者网络上能轻易找到的课题,如图书馆管理系统、学生成绩管理系统等,学生很容易通过网络下载相关资料来完成任务;或者因为项目都为教师在课堂中讲授的例子,学生在实训过程中原样照搬,不能灵活运用。二是企业项目由于来自实际应用,项目背景复杂,系统庞大,学生掌握有一定的难度,导入比较困难。
针对以上问题,本课程在选择项目时强调既要保持项目的真实性,又要具备实训课程的可操作性。在任务选择时并不要求学生完成一个独立的项目,而是让其完成项目中的某个功能模块。学生为了完成此功能模块,需要理解自己承担的模块在该系统中的地位和作用,了解需要使用其他哪些模块的服务,以及需要为哪些模块提供服务。由于课程选择的项目为软件企业或者科研单位的实际课题,具有较强的实用性,同时根据课程进行裁剪,使学生在真实感受实际开发氛围的同时,也能体会到完成任务后的喜悦。[4]
1.2文档管理和进度控制
在软件企业中,由于项目管理的需要,项目开发除了完成编码,还需要完成各种文档和表格的编写和填报,如需求分析报告、软件设计说明书、项目进度管理表格、软件测试报告、软件使用说明书等。规范齐全的文档便于项目管理者了解项目的开发进度、开发质量、资源分配,便于开发人员在编码时正确地了解需求,规范地完成编码。在项目开发中,能及时规避风险,及时纠正问题,避免重大错误的发生。
里程碑是完成阶段性工作的标志,是项目中的重大事件。在实训期间,为了控制项目进展,设置了需求设计、功能设计、功能预演、测试和交付五个里程碑。学生必须在每个里程碑的时间点,提交相关成果。①需求设计阶段提交需求设计说明书;②功能设计阶段提供画面设计、数据库设计文档;③功能预演阶段提供可演示代码;④测试阶段提供测试文档和测试总结报告;⑤交付阶段提供以上所有代码和文档以及产品使用说明书。
由于学生在平时的学习过程中,没有系统地完成过文档,对文档的格式要求也不是很明确,因此文档编写的规范性尤为重要。本课程中,教师向学生介绍各种文档的作用、填写规范,并提供可参考的样本,而不要求学生从零开始完成文档。学生参考教师提供的样本,填写模板,最后达到规范化要求。
1.3项目管理
项目管理软件在软件开发、团队管理中是必不可少的工具。在课程中搭建了以下平台,为学生提供了更真实的模拟开发环境。
1)SVN集中式代码管理服务器,进行代码版本管理。学生使用SVN客户端进行文档代码的更新和同步,服务器端保存文件创建修改的历史记录,教师可以通过服务器看到学生完成的代码和文档的进度,督促学生独立完成各自的任务。
2)Collabtive 项目管理系统,进行里程碑、任务、文件、时间追踪管理,实时掌握项目进展动态。学生在项目初期指定任务计划,日常填报任务进度、上传文件,实时掌握项目进度。项目组借助管理软件能方便、有效地完成日常项目管理工作。
3)配置测试和运行服务器。学生在本地调试系统成功后,将系统发布到服务器,进行系统测试和运行。课程中为每个项目组设置了不同的数据库、应用程序服务权限,项目组定期将数据库和运行版系统发布到服务器上,教师可以实时查看和运行不同项目组的系统。
2 实训环节
在“项目开发实训”课程中,学生以4~6人为一组,设立项目经理、分析设计、编码和测试等角色,学生在分组中承担相应角色,并可以同时参与多个角色,完成软件开发生命周期中各个阶段的产出物。项目开发实训环节分为以下阶段[5]:
2.1课题准备阶段
“项目开发实训”课题由教师事先准备,主要来源于软件企业和科研项目,课程初期教师向学生介绍项目的背景、完成内容、项目管理工具的使用,同时介绍软件项目的相关知识以及业内规范。
2.2案例讲授阶段
万事开头难,学生在初期并不能立即适应规范的软件开发,教学中通过案例介绍,让学生从模仿开始,进入项目开发的角色。案例讲授侧重以下内容:①开发各个阶段需要完成的文档,并提供文档的模板,这些文档很多是设计文档,是后续开发的蓝本,通过讲授使学生了解文档的重要性,以及文档之间的关联性;②开发环境搭建,完成本地调试环境和远程测试运行环境,并让学生完成项目开发、发布的过程;③案例代码的编写和调试,侧重编码的规范性和常用调试方法教学。
2.3开发实训阶段
项目组根据各自课题完成相关工作。项目组成员各尽其责,完成需求分析、功能设计、数据库设计、UI设计、编码、测试和发布过程,并且每天进行工作小结,填写进度。教师对各项目组进行总体监督,实时掌握各组项目开发进展情况。
2.4评审阶段
评审阶段安排在项目开发实训中期,主要进行文档评审和代码评审,检查文档和代码的书写是否规范和正确,及时纠正在开发阶段存在的问题,全面掌控项目开发进度。
2.5验收答辩阶段
项目结束时,各项目组对项目进行汇报演示,演示过程中教师提出问题或意见,针对学生的答辩情况和项目完成情况做出评价,并提出意见和建议。
3 教学效果评价
3.1规范性认识
所谓规范是指在项目中对涉及的文档、代码和流程制订规则,并且所有成员必须遵守这些规则。学生通过课程学习,认识到在软件开发过程中需要遵循各项规范。
1)文档规范。书写的文档要有规范的格式和形式,同一个项目的文档要有统一性,每份文档有完整的信息,包括文档编码、文档标题、所属项目、所属部门、编制人、编制时间、版本等信息,格式有封面、目录、页眉、页脚。
2)代码规范。代码文件结构整齐清晰、文件命名及变量命名规范,编码中避免已知的一些陋习。
3)流程规范。每天工作有计划,工作结束后善于总结经验,发现不足。
3.2学习能力提高
IT行业技术更新快,开发工具更换频繁。项目开发过程中经常会接触到新技术、新工具,作为软件相关专业的学生,必须具备较强的学习能力,才能够快速学习和掌握这些技术和工具。
在项目开发实训课程中,要求项目组根据自身课题特点,调查相关新技术、新工具,并在项目中使用新技术、新工具。学生在大学学习过程中,缺少钻研精神,往往只是为考试而学习。而在实际开发现场,一般无教师辅导,需要有较强的学习能力和自主学习能力。教师在课程中积极引导,让学生学会通过这些技术和工具提供的帮助文档和示例,掌握这些技术和工具。
3.3加强团队合作意识
平时的学习通常是一个人的个体行为,但是软件工程是一个庞大的工程,需要团队合作完成。每个成员在团队中担当着不同的角色,每个成员在完成自己工作的同时也在使用着他人的工作成果和为他人提供服务。在团队合作中成员之间相互沟通,协助完成任务。
学生在项目开发实训中,通过文档进行项目设计和开发,在同一个工程进行代码编写和程序调试,遇到问题通过邮件沟通。通过实训,学生学习了如何团队开发项目,深刻认识到团队合作必须相互配合,听取建议,及时调整,才能使项目开发工作顺利进行。
4 结语
“项目开发实训”是一门理论和实践紧密集合的课程,学生参与软件项目开发,熟悉规范化开发流程,团队合作完成项目开发。通过课程学习,学生提高了自身的学习能力、团队协作能力,提升了就业的自信心,体会到项目开发不是一个单兵作战的过程,而是一个团队相互沟通、相互合作的过程,并且这一过程是一个规范化过程,需要完成各种规范化的文档、编写规范化的代码。同时借助于一些工具软件,提高了整个过程的效率。
[1]胡智喜,庄燕滨.“校企一体化”软件工程卓越人才培养模式的研究与实践[J].常州工学院学报,2013(2):77-80.
[2]肖蕾,钟瑛.软件开发综合实训课程的教学改革与实践[J].计算机教育,2012(10):104-106.
[3]康雁,李彤.基于SE-CDIO 培养学生项目管理能力的新途径[J].计算机教育,2013(13):65-68.
[4]张志佳,张雪.基于项目驱动的计算机专业校内实训模式的研究与实践[J].中国轻工教育,2012(2):53-55.
[5]朱克敌.项目开发管理课程设计教学方法研究与实践[J].计算机教育,2010(16):87-88.
责任编辑:唐海燕
ResearchandApplicationofProjectDevelopmentTrainingCourse
LIYifei,WANGWenqin
(School of Computer Information Engineering,Changzhou Institute of Technology,Changzhou 213002)
ProjectDevelopmentTrainingcourse provides a software project development training platform for students who major in software development.It can improve the students′ employment potential and ability to solve problems and skills of teamwork and communication.By the training,students have their abilities fully exercised and improved,and achieved remarkable results.
ProjectDevelopmentTraining;software engineering;teaching modes
2014- 01- 07
常州工学院2013年度教学改革研究课题(J120303)
李亦飞(1978— ),男,讲师。
1671- 0436(2014)03- 0074- 04