关于软件工程综合实习的几点思考

2018-02-07 17:01赵一石刘袁缘方芳
考试周刊 2018年25期
关键词:组织形式质量监控软件工程

赵一石+刘袁缘+方芳

摘要:软件工程综合实习是计算机科学与技术及软件工程专业学生耗时最长也是最重要的一门实习课程。该实习课程将学生在低年级阶段学习的各类基础知识有机联系起来,使学生能够综合贯通地理解软件产生的过程,并进一步实践如何运用工程化的思想来制造软件。本文主要从实习的形式、团队的组成、指导教师的角色和考核形式几个方面对软件工程综合实习进行了探讨。

关键词:软件工程,综合实习,组织形式,质量监控

一、 引言

在党的十九大会议上,我国酝酿出了习近平新时代中国特色社会主义,提出了实现社会主义现代化和中华民族伟大复兴的总任务。随之,我国社会主义发展也进入了新时期,科学技术在社会发展的各个方面的作用日趋明显。政府在不久前制定了“互联网+”行动计划,并进一步推动移动互联网、云计算、大数据、物联网、人工智能与现代制造业、电子商务、金融业、电子政务的结合。软件作为以上众多应用的核心基础,软件行业在社会发展中的比重越来越大,也导致软件工程人才的需求量逐步增加,软件人才的培养亦受到社会各个行业的普遍重视。软件工程综合实习是计算机类专业学生最重要的一门核心实习课程,通过此实习可以把学生在低年级学到的较为零散的软件技术有机地结合起来,运用工程化的思想来开发软件。探索软件工程综合实习课程建设能够为社会提供高质量的软件人才有着深刻的现实意义。

二、 软件工程综合实习的培养目的与目标

软件工程综合的主要目的在于基于大学生掌握了一定的软件基础知识上,通过模拟企业工程实践的方式,培养学生的文档撰写能力、团队合作精神以及对学生进行规范化的软件开发和管理的训练。良好的软工综合实习的组织形式、监管以及考核,能有效帮助学生理解软件开发的过程,也能进一步巩固和复习基础理论知识。根据中国工程认证教育认证协会对工科学生的毕业要求,开展软件工程综合实习课程的目标主要包括以下六个方面:(1)进一步巩固工程方面的基础知识;(2)锻炼学生识别、表达、分析复杂软件工程问题的能力;(3)培养学生针对特定软件需求,设计并开发软件架构、模块/组件、数据库的能力;(4)训练学生在软件开发小组内的协作水平;(5)孕育学生的软件项目管理能力;(6)培养学生在软件工程实践中的职业道德和规范。

目前,不少文献对软件工程综合实习的课程建设在选题、分组、教师的作用等方面做出了一些讨论,但在组织形式、实习团队组成、教师指导方式以及考核形式等具体细节方面尚缺乏深入细致的思考。在本文中,作者将根据理论分析和亲自指导学生实习的体验,结合实习培养目标,谈谈进一步完善和改进现有的实习方式的几点思考。

三、 综合实习的环节以及思考

1. 实习的形式

实习形式是指学生以何种方式进行训练,也是课程的基调所在。就该课程而言,通常可以选择企业实习或校内实习两种形式。企业实习虽然可以接触到生产第一线的实际案例,但是周期长、过程不可控、监管难度大、而且实习内容不全面,所以大部分高校选择在校内实习进行实际模拟。

大部分高校的软件工程综合实习设置的课时较长,一般需要学生连续两到三个星期,每天至少半天时间在机房进行封闭式实习。在短短的两三周内,要从需求分析到编码再到测试,完成软件工程中的每一个步骤。这种短时间集中式的训练模式带来了两个很大的问题:其一,集中式的训练环境限制了软件工程过程中不少环节的创造性。例如在需求获取部分,学生需要在软件使用的实地进行观察、采访,在设计阶段,功能性和非功能性的需求要引入不同层次的用户进行会议讨论;其二,大部分学生为了在短短的两三周左右完成软件的开发,几乎绝大部分的工作集中在编码阶段,需求获取和设计环节都是草草了事,甚至有些同学都是先开发完软件产品,之后才补充相关文档,完全违背了工程的技术和方法。在本文前述的培养目标中,仅仅有限度地锻炼了学生分析问题的能力和设计/开发软件的能力,其他培养目标则很难实现。

因此,我们可以考虑采取非集中式的综合实习方式,拓展学生在封闭式机房实习之外的实习时间。在实习总时间上,扩展到一个学期(大约4个月)的時间,每个星期只安排一次机房实习,主要用来汇报每周的工作,从而来进行督促、检查和指导。这样,学生可以合理安排时间,对软件工程过程的每个阶段有较大的时间和空间来思考、理解和实践,并有较大的机会来锻炼组内合作以及项目管理能力,避免了以交差为目的集中在编码部分。

2. 团队的组成

为了真实地模拟软件开发环境,软件工程综合实习必然是以团队的形式来开展。团队形成的主要因素包括组成人数、个体的搭配、人员的分工。组成人数即为组成团队人员的个数,个体的搭配涵盖了团队人员的能力、性格、性别等方面的分布情况,人员的分工则是对于工作的分配原则。

目前大部分的实习团队是5人左右,形成的过程采取的是学生自由组合向老师提出申请,指导老师再根据实际情况进行微调。组内人员的分工基本上是需求1人、设计1人、编码1~2人、测试1人。5人左右的团队是比较符合实习的需求,但学生自行分组,很容易造成关系好的一组、同性别的一组等极端情况的发生,老师之后进行微调也很难做出较合适的变动。另外,在大学的学习环境中,实习指导教师一般都不会对班上的同学有比较透彻的了解,难以调整出理想的分组方式,从而导致学生的团队协作得不到良好的锻炼。

因此,我们建议可以采用心理学中调查问卷的方式,测试出同学们的性格。以此为依据,再进一步的考虑成绩、性别等因素,均衡的分组。不同于公司实际情况的是,对于校内实习训练来说,组内的角色构成可以让每位同学同时都参与需求、设计、编码、测试等环节,以免造成实习的片面性。

3. 指导教师的角色

教师在指导实习的过程中通常扮演两个角色:其一,监督学生的实习过程;其二,指导学生的实习过程。对于集中式的实习方式而言,指导老师全程在机房巡视走动进行监督,学生采取举手的方式提问来寻求导师的指导,这种方式更多的适合于低年级学生编程课的实习。而对于非集中式的软件工程综合实习,指导老师的监督可以实行阶段式的模式,例如每周一次的检查,在检查的同时对现阶段的工作进行指导以及对参与下一阶段工作的讨论。endprint

在这种情况下,我们建议每一个实习小组安排一个监管导师,同时在传统的角色上,增加在软件工程开发过程中stakeholders的角色。在需求阶段,指导教师可以扮演甲方的角色,在设计阶段指导教师可以扮演用户,在开发和测试阶段指导教师可以扮演项目经理的角色。这种方式避免了指导教师指导学生编程的低级别问题,而重点放在了工程化的角色指导上面,同时也巩固了学生的工程知识,锻炼了工程问题的分析能力和软件项目管理能力,并可以监督软件工程实践中的道德规范。

4. 考核形式

软件工程综合实习的主要目的是让学生体验软件的开发过程、训练文档的撰写水平、锻炼团队协作能力,并开发出完整的软件产品。我们既要考察最终的软件产品,也要考察学生完成的过程。而在完成的过程中,我们既要考察协作的情况,也要考察个人的工作情况。

目前大多数的考核形式是答辩和小组报告,按照一定的比例评定总成绩。这种考核形式凸显的是团体的成果,忽视了个人的工作,而许多消极的学生以此蒙混过关,导致了很多滥竽充数的问题。我们建议在此基础上,可以增加个人报告的提交。该报告的内容以描述每个人在小组开发中的实际工作为主,亦可以包含个人软件过程(PSP)的部分内容,例如项目规划和时间管理。最后以项目答辩、团体报告、个人报告以及平时成绩四部分的加权成绩来评估个人的综合成绩。

四、 结语

软件工程综合实习是本科生进入社会前最重要的一门实习课程,也是最接近企业真实软件开发环境的一次锻炼,良好的课程建设可以缩短学生适应社会的时间。本文根据作者指导软件工程综合实习的经历,从实习的形式、团队的组成、指导教师的角色以及考核形式四个方面对目前存在的问题提出了一些改进的建议和想法,接下来我们打算将这些想法分别进一步细化,在今后的软工综合实习中应用,并根据应用的结果,进一步进行调整。

参考文献:

[1]林廣艳,等.本科生软件工程实践课程探索[J].计算机教育,2010,24:138-141.

[2]彭云筹,等.软件工程综合实践及生产实习研究与探索[J].科技信息,2009,33:35-42.

[3]刘伟.“软件工程”课程教学改革的探索与实践[J].计算机光盘软件与应用,2012,265-267.

[4]钟瑛,朱顺痣.《软件工程综合实训》课程教学模式若干思考[J].科技创新导报,2012,31:187-188.

[5]吴春雷,等.软件工程综合实验课程的改革与建设[J].实验室研究与探索,2017,36(1):180-184.

[6]许丽花.软件技术专业综合实训教学质量监控的研究与实践[J].教学与教育信息化,2016,4:237-239.

作者简介:赵一石,刘袁缘,方芳,湖北省武汉市,中国地质大学(武汉)信息工程学院。endprint

猜你喜欢
组织形式质量监控软件工程
高职教育教学质量监控的国内外做法与经验
高职教育实践教学质量监控与评价体系的构建分析
浅谈初中语文口语交际教学
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
浅议我国公路监理在质量监控方面的科学措施
关于如何创新和完善计算机软件工程管理的探讨
旅游科普活动与旅游课堂教学相结合的研究初探
智能建筑施工中机电设备安装质量监控手段