摘 要:介绍设计型项目驱动教学法的原理,提出在传统案例式实践教学中引入设计型项目驱动思想,以创新软件人才培养模式为指导,以教师为引导、学生为主体,构造典型实用的软件项目案例簇,进行分阶段教学设计,引入公开答辩考核方式,从而实现软件人才的动态培养。
关键词:研究生;设计型项目驱动;软件工程实践教学;教学改革
引 言
软件工程案例实践是计算机相关专业研究生的核心实验课程,它在培养多层次、国际化、工程型高级创新人才的过程中起着重要作用 。计算机相关专业研究生在经过本科阶段基础理论课程和专业课程的学习后,需要通过实践适应工厂化软件开发模式,软件工程案例实践课程正好是这一过程的最佳补充。目前国内众多高校已经开展了软件工程案例实践相关课程,在提高学生对软件工程的理解以及提高其实践能力等方面取得了不错的成绩。但这类实验课程主要采用“任务驱动”方式,学生在自我训练时只能按照教师的逐步引导,不能进行深刻的自我思考,导致学生缺乏对软件工程的系统认识 。将设计型项目驱动思想引入传统案例式实践教学过程,可以有效改善上述问题。通过建立实用的软件项目簇,引导学生自主设计项目,通过构造虚拟软件企业运行环境以及分阶段教学设计,引入公开答辩的考核方式,从而使学生更加深刻地理解和掌握所学知识,提高其综合创新能力,获得职业实践经验,实现软件人才的动态培养。
1 设计型项目驱动教学法的原理
项目驱动教学模式的基本思想是将学生的学习活动与实际工程项目相结合,通过实施实际项目深入、全面地展开教学活动,通过发现问题和解决问题帮助学生发现兴趣、树立信心、培养能力。由于学生的知识背景及开发经验各不相同,引导学生选择适合自己的软件题目是成功实施项目驱动式软件工程案例实践教学改革的前提。在软件工程案例实践课程中实施项目驱动教学,可以使学生在软件开发的不同阶段发现不同的问题,例如需求分析阶段如何处理需求变更、详细设计阶段如何处理模块间接口设计等。这些问题在不同的项目中呈现不同的形态,学生在教师的引导下激发自主探索及解决问题的能力,从而改变验证型实验只进行项目复原的弊端,使课堂学习更加生动活泼。设计型项目驱动教学改革是在项目驱动教学模式的基础上,增加更多动态开放的设计型实验,让学生从一开始就把控项目的选题和规划。教师在整个教学过程中改变原来的教学角色,不再起主导作用,而是引导和组织学生自主完成项目的设计与开发,协助他们解决疑难问题。设计型项目驱动教学模式的最大特点,就是教师不再给出具体实验题目,而是将具有不同知识背景、经验及水平的学生混合分组,引导小组成员自主讨论并设计出适合本小组成员的实验题目,激发他们的创新性和主观能动性。将设计型项目驱动教学引入软件工程实践课程,能够让学生在软件项目设计过程中主动学习、克服困难,在软件开发过程中主动发现问题、共同分析问题并有效解决问题,对于培养学生的主动创新能力、体验团队协作的价值、获得实际开发经验很有帮助。
2 具体改革过程
2.1 建立软件项目案例簇
建立典型实用的软件项目案例簇是设计型项目驱动软件工程实践教学改革的关键,软件项目的好坏直接影响实践教学的效果。项目应该具有科学性并与时俱进,既要体现实用性,又要体现适当的难度。教师在每个学期授课前,应调研学生已有的基础知识、学习水平以及兴趣爱好,并根据其分析设计能力及当前软件开发趋势选择合适的项目案例簇,然后将分解后的案例应用于教学过程。这种教学模式改进了以复原指定项目的验证型实验为主的现状,增加动态开放的设计型实验,通过学生的自主选题及分阶段实施,提升学生的创新能力以及解决实际问题的能力。图 1 为设计型项目驱动的软件工程教学模式案例分解视图。
建立软件项目案例簇,首先应当考虑项目规模的合理性,以便学生能够在规定的教学时间内完成实践内容;其次,项目需要与时俱进,符合软件开发的流行趋势,以便学生更好地了解软件公司的发展方向,获得更好的职业经验。建立软件项目簇可以参考以下分类。(1)网站开发类:如信息管理系统、娱乐生活、社交网络等。(2)移动平台开发类:基于 Android、IOS、HTML5 的移动应用开发等。(3)系统软件类:如系统优化、系统测试、驱动类等。(4)游戏娱乐类:如网络游戏、手游等。(5)云计算和大数据类:如Hadoop框架应用、Map/Ruduce 编程、数据挖掘等。(6)其他:如计算机图形学、人工智能等。在教学过程中,案例簇仅给出案例分类,不给出具体案例细节,尽可能地赋予学生选题的权利,让学生的兴趣点和实际案例相结合,激发其自主学习研究的潜力。
2.2 基于虚拟企业的项目组织方式
为了让学生在真实的软件开发过程中发现问题、探索问题并主动寻找解决方法 , 我们构造了一个虚拟企业场景,模拟真实企业的开发活动 [6]。在企业软件开发过程中,一个项目组成员主要由项目经理、SQA、配置管理、程序员、测试人员等构成。在设计型项目驱动软件工程案例教学中,教师安排学生自愿组队,兼顾知识背景和开发能力的差异,将其分成若干项目组,并采用角色扮演的方式让学生承担真实企业相应人员的工作 , 实施软件开发活动。在教师的引导下,每个项目经理带领全体成员共同设计项目,制订项目开发计划,最终完成任务。
2.3 引导学生自主设计项目
学生自主设计项目是设计型项目驱动教学改革的关键,教师既要鼓励学生大胆创新设计软件项目,又需要引导学生把握好选题的难度和规模。在项目选题阶段,教师应综合考虑学生的基础、兴趣、动手能力等方面,以项目组为单位引导学生从案例簇中选择自己感兴趣的分类,并设计相应的项目 [7]。当然,也可以由学生自主设计,比如从学生所在教研室的项目中,剪裁或重构实践题目。教师鼓励学生以项目组为单位进行讨论,以设计适合整个项目组实践的题目。指导教师需要调整学生选择项目的难易程度,并进行分级。有时学生设计的项目过于寻常,例如人事管理系统或网站购物系统等,这需要教师引导学生增加有创新性的实践内容,如信息管理系统中角色权限的问题、云计算平台中资源调度的问题等,通过这些问题驱动学生的探索欲望,扩展项目复杂度,力求让学生在实践过程中有创新意识。
2.4 合理分解任务进行分阶段教学设计
项目驱动式实践教改中分解任务的一个基本原则是充分考虑项目内在规律和学生的特点。为了调动学生的积极性,我们在设计软件项目案例簇的时候,综合考虑教学时间及学生的研发水平,同时结合当前企业软件开发实际应用情况,去掉繁琐且不常见的软件开发任务,将标准软件开发过程整合为 6 项典型任务:项目选题、项目进度规划、需求分析、软件概要设计、软件详细设计、编码与测试,首先,项目经理带领全体成员选题;之后,项目经理对成员进行角色划分并制订进度规划表,后面 4 项可以由项目组成员分别担任。项目任务分解后,可以按以下方式进行分阶段教学设计。(1)项目选题阶段,由学生自行组织选题讨论。教师的主要职责是引导学生选择适合各成员的软件项目类别,如果成员没有项目开发经验,则应选取基础类别,如网站后台系统、移动开发平台等;若部分成员已有一定的开发经验,则鼓励选择云计算、大数据等具有一定难度且符合开发潮流的类别。(2)项目进度规划阶段,项目经理确定成员的角色划分,并对项目开发的每个阶段做好规划,确保最终完成实验。(3)需求分析阶段,学生变为需求分析人员和原型开发人员,调研模拟客户对系统业务功能、性能、可靠性、扩展性等方面的要求,确定系统的综合需求。(4)概要设计阶段,教师引导学生确定系统顶层架构,然后按照需求分析的结果对系统进行初步的功能模块划分,使用 UML 建模的方法对各功能模块进行详细的图文描述,并编写概要设计说明书等。(5)详细设计阶段,学生独立地细化概要设计的各个部分,设计每个功能模块的数据结构和实现算法,确定用户接口,编写详细设计说明书。(6)编码和测试阶段,项目组约定符合标准的编码规范,做到通俗易懂,代码注释要符合一定的格式。编码完成后,学生转换为测试人员,各成员对自己负责的模块进行单元测试,再按照测试大纲完成系统测试。
2.5 以公开答辩为主的考核方式
为了有效衡量项目组每个成员的工作量,加深学生对整个项目开发过程的认识,教学过程引入公开答辩的方式来检验学生的学习成果,并辅以定期检查,增强考核的公平公正。(1)分阶段定期检查与指导。教师根据各个项目组提交的开发计划,对各项目分阶段定期进行检查,检查内容包括各个项目组的会议记录、开发文档或程序代码等。教师需要及时了解项目进度以及项目当前遇到的困难,并协助项目组解决开发过程中的问题。(2)公开答辩。学生要按照软件工程文档的规范完成项目的实验报告,并进行公开答辩。在公开答辩中,项目经理带领所有成员讲解项目实现过程,展示设计方案和实现方法,接受其他同学的质疑。在公开答辩中,教师、助教以及各项目经理一起给每个项目组的项目和任务打分,并综合分阶段定期检查的结果给出本课程的最终成绩。相较于教师直接检查学生提交的文档和代码,这种公开答辩的方式更加开放和互动,也体现了考核结果的公平性,学生在答辩过程中能认识到自己的优点和不足,更能发挥其主观能动性。
3 结 语
基于设计型项目驱动的教学方法在电子科技大学计算机学院研究生软件工程案例实践课程教学中得到了成功的应用。我们对某次教学班级134 名一年级研究生进行了调查。调查结果显示大多数研究生比较认同该教学方法的教学理念,认为这种方法对提升学生软件开发过程理解能力、分析设计能力、动手实践能力和团队合作能力有较大的帮助 , 适合在软件工程案例实践类课程中进一步推广,使学生更加深刻地理解和掌握所学知识,提高其综合创新能力,获得职业实践经验。
参考文献:
[1]傅彦, 任立勇, 陆鑫. 面向新时期的计算机专业研究生创新人才培养模式探索[J]. 计算机教育, 2013(9): 40-43.
[2]汪璟玢, 叶福玲. 案例与项目实践结合的“软件工程”教学方法[J]. 计算机教育, 2012(10): 105-107.
[3]熊凡, 李伟波. 项目驱动的软件工程实验教学探讨[J]. 中国电力教育, 2012(2): 77-79.
[4]李泽辉.“项目驱动式”教学法的探索与实践[J]. 实验科学与技术, 2011(2): 133-134.
作者:孙 明,田 蜜 ,康文杰 单位:电子科技大学 计算机科学与工程学院
网为您提供的关于《以设计项目为中心的软件工程测试实践教育改革》的内容,如需查看更多硕士毕业论文范文,查找硕士论文、博士论文、研究生论文参考资料,欢迎访问硕士论文网软件工程测试论文栏目。