本课程以项目小组为组织模式,要求学生设计与开发一个中等软件系统为目标,涵盖软件工程需求分析、系统设计、开发、测试、配置和项目管理全生命周期,项目小组中的学生分别承担相关关键角色。目的是锻炼学生在软件项目现代组织模式中的角色体验与协作,克服本科阶段软件工程教学注重理论学习,忽视实践环节的缺点。完成本科阶段学习的学生,编写程序的数量和时间很是有限,大部分学生缺乏实际的项目开发经历,所受的工程训练严重不足。然而软件工程课程是针对较大规模的软件开发而设计的、是全世界优秀软件工程师的经验教训总结,仅仅通过理论学习,学生很难理解软件工程的精髓,因此需要一个与工厂化软件开发模式的对接与适应过程,提升学生对软件工程整个过程、方法等问题的系统认识,研究生阶段开设软件工程案例实践课程正好是这一过程的最好补充。
本课程创新性地将设计型项目驱动及基于云端协同任务的思想引入传统案例式研究生软件工程实践教学过程中,有效改善了“任务驱动”教学模式的弊端, 通过建立实用并不断更新的软件项目簇,引导学生自主设计项目,通过构造虚拟软件企业运行环境以及合理分解任务分阶段教学设计,在云端协同开发平台上分派任务并收集反馈,并引入公开答辩的考核方式,能够使得学生更加深刻理解和掌握所学的基础软件工程知识,提高其综合创新能力,获得职业实践经验,从而实现软件人才的动态培养过程。
设计型项目驱动教学是在原有项目驱动教学模式的基础之上,增加更多动态开放的设计型实验,让学生从一开始就对项目的选题和规划进行把控。教师在整个教学过程中改变原来的教学角色,不再起主导作用,而是引导和组织学生自主完成项目的设计与开发,同时协助他们解决软件过程中出现的疑难问题。这些问题在不同的项目中呈现不同的形态,学生在教师的引导下能够激发他们自主探索及相互讨论解决问题的能力,从而改变原有验证型实验的进行项目复原的弊端,使得课堂学习更加生动活泼。设计型项目驱动的软件工程案例实践课程能够让学生在软件项目设计过程中带着需要主动学习、克服困难,在软件开发过程中主动发现问题、共同分析问题并有效解决问题,对于培养学生的主动创新能力、体验团队协作的价值、获得实际开发经验很有帮助。
基于云端协同任务实践教学以团队协作为背景,在云端协同开发平台上设计了一套软件工程案例实践指令集及一套操作流程,首先训练学生派生项目,同步项目,更改项目,提交项目,管理提交请求等能力,做到能独立使用版本控制工具管理个人项目;然后结合团队协作过程中使用版本管理的情境,让团队协作使用云端协作开发平台合作开发,在此流程中训练项目启动,协同开发,PR管理,分支管理,标签管理与历史版本管理的能力。本课程在基于云端协同任务实践教学模式的基础上实现从课程实践到代码文档提交,工程进度监督,协作行为分析,代码质量评估,项目完结等整个流程的可视可控。一方面帮助学生提升对软件工程流程的把握,项目的合理分工,工作进度的把控能力;另一方面也帮助老师有效地管理学生实验的完成状况,工程的进度以及团队内每一位同学的工作量的评估,得到教学效果的正确反馈,建立良好的评价机制,从而方便随着课程的深入调整软件工程案例实践的教学方式与进度,做到真正的因材施教。