软件工程课程实践研究(3篇)

软件工程课程实践研究(3篇)

第一篇:软件工程应用型课程建设与实践

摘要:

应用型课程建设是应用型高校转型发展的一种必要手段。文章根据计算机专业人才的需求,从软件工程应用型课程建设的角度,分析当前教学中存在的典型问题,对课程建设的具体方案与实践措施进行研究,以推进高校对应用型人才的培养。

关键词:

软件工程;应用型;课程建设

1课程教学存在的问题

软件工程是计算机科学与技术专业的核心专业课,教学内容涉及软件开发的方法论,教学重点是软件开发的需求分析、系统设计、技术实践等环节的方法与技术。在软件工程应用型课程教学中,传统教学内容不能与技术现状或工程案例相结合,容易导致教学内容枯燥、术语概念抽象、教学效果不理想[1]。具体问题有:①在软件分析建模中,传统的数据流程图不能提供很好的数据环境,无法引导学生利用数据关联降低数据冗余,克服数据流的不足;②在软件设计建模中,传统的系统设计就是模块设计,不能满足分布式多层架构和开发环境的需求;③任何软件工程的方法论都需要工具的支持,脱离工具只谈方法会显得枯燥乏味。

2应用型课程建设方案与实践

2.1课程内容组织

1)分析建模应用型拓展。传统的分析建模采用数据流程图的方法,数据流程图的模型是数据流的模型,只有在需求清晰的情况下比较实用,但绘制数据流程图容易让学生产生畏难心理,导致其需要什么数据文件就创建什么数据文件,需要什么数据表格就创建什么数据表格。这种情况下,学生对于系统的数据需求不清晰,导致数据来源不唯一,并出现数据冗余、数据存储异常等问题。改进后的分析建模应用型拓展方案依然将数据流程图作为软件工程课程分析建模阶段的主要内容,但从功能分析和数据分析的角度对分析建模进行相关拓展。功能分析是用数据流程图的顶层图形和第一层图,抽象出子系统的划分及其子系统功能单元的组成。数据分析是采用数据库概念模型方法,区分实体、属性以及实体之间的联系,最终引导学生对基本信息类和联系信息类的信息结构建立系统所需的E-R模型。调整后的方案通俗易懂,非常适合应用型教学方式。

2)设计建模应用型扩展。传统的设计建模就是要确定系统中每个程序是由哪些模块组成的,这对于面向过程的开发环境是适合的,但对于面向对象的、可视化的、基于事件驱动的程序环境则需要进行改进。改进后的设计建模应用型拓展方案依然保留模块设计为软件工程课程设计建模阶段的主要内容,但需要对设计建模的主要内容进行改进和创新,围绕结构设计、数据设计、界面设计的内容展开。系统结构设计是从软件体系结构的角度,考虑采用集中式结构、分布-集中式结构、分布式结构中的哪一种,从而确定系统采用C/S模式或者B/S模式。数据设计是根据数据集及其数据集联系,从逻辑设计角度将数据的关系模式进行规范化处理,从物理设计角度对数据的对象进行命名和编码。界面设计就是由界面组织业务功能的输入、处理以及输出,再为这些界面中的各种事件设置流程。调整后的方案可以同时适用于面向过程和面向对象的程序开发环境。

3)实现建模应用型扩展。传统的实现建模,就是将软件设计的结构、数据库、开发环境下的功能界面以及相关事件翻译成某种程序设计语言书写的程序,这容易导致事件流程混乱,甚至出现重复操作的界面等问题。改进后的实现建模应用型拓展方案,围绕系统的总体实现、数据库实现、界面及其功能实现3个层次展开,可以使学生学会应用建模方法,变抽象为形象,具备分析建模、设计建模和实现建模的能力。

2.2教学方式改革

通过课程内容的优化,学生可以更好地掌握课程的重点与难点,但在毕业设计和工程实践中,学生往往需要对上述课程内容进行创新性、批判性的使用。根据笔者在近3年教学过程中积累的经验和成果以及教学大纲规定的目标,可将案例驱动法纳入软件工程的教学实践中,采用自上而下、逐步细化的方法加以实施。对于软件工程课程的教学案例,可以依据结构化方法和面向对象方法选择一些综合案例,例如采用结构化的方法来开发进销存管理系统,研制出完整的结构化分析模型、结构化设计模型和结构化实现模型。在案例教学中,教师扮演着设计者和激励者的角色,鼓励学生参与讨论,并通过案例展示来提高学生的学习兴趣和动手能力,激发学生的探索精神。

2.2.1案例分析模型的实践

对于进销存管理的分析模型,应先确定系统的顶层数据流程图。首先由仓库管理员进行静态数据的预处理,按照仓库号进行数据基本整理;然后销售人员再根据实际工作情况,进行入库和出库的动态数据管理;最后由库管员对仓库库存量进行汇总等处理,生成所需的统计数据。进销存管理系统的分析阶段,主要围绕功能分析和数据分析两个模块来工作。

(1)进销存系统的功能分析,是根据进销存系统的数据流程图,反映出零件在入库、出库过程中的传递、存储和处理,实现对仓库库存情况的快速管理。

(2)进销存系统的数据分析,要根据该系统中涉及的实体对象、对象的相关属性以及实体之间的关系,设计出满足需要的E-R图,将数据分成静态数据(职工数据、项目数据、供应商数据)、动态数据(仓库数据、零件数据)以及内部生成数据(库存量)。

2.2.2案例设计模型的实践

对于进销存管理的设计模型,首先应确定系统建立在B/S模式下。随着B/S结构系统的开发,工作人员主要涉及仓库管理人员、销售人员等。为了保证多部门工作人员使用,区分各自职责,需要为使用系统的不同人员分配不同的操作权限。进销存管理系统的设计阶段,主要围绕数据设计和界面设计两个模块来工作。

1)数据设计。进销存系统的数据设计,应考虑到该系统处理的主要关系模式是仓库数据、零件数据、供应商数据、项目数据、职工数据、部门数据6部分。

2)界面设计。进销存系统的界面设计应由职工管理界面、部门管理界面、入库界面、出库界面、盘库界面以及基本数据界面等部分组成,系统所有的界面处理数据都存储在进销存管理系统数据库中。

2.2.3案例实现模型的实践

进销存系统的实现,用于管理仓库零件的库存,完成每月库存数据的变更、计算、入库、出库、打印库存明细表等工作。具体实现模型主要围绕4个模块:①基本信息模块,该模块是系统其他界面数据来源的基础,其中包括对职工基本信息、部门基本信息、供应商信息、零件信息、项目信息的增加、删除、查询;②仓库管理模块,该模块包括库存的批量移库、入库、出库等功能,自动完成盘库等操作,提供库存数据的查询、打印;③统计查询模块,该模块可以按照仓库号、供应商号、零件号、项目号等不同的查找需要,对仓库中的信息进行快速查找;④数据转存模块,这是为数据的安全性而设置的模块,管理员可以实现对数据的维护,包括数据备份恢复及删除、某月份的历史数据生成等。为了更好地发挥案例教学法的重要作用,在软件工程应用型课程建设中应注意以下方面:

(1)案例教学法与讲授教学法相结合,使用不同的教学法,发挥最佳教学效果。

(2)在编写案例的过程中,明确案例教学的目的;明确如何写,根据教学内容可以使用不同的软件开发方法,如从面向结构和面向对象两个角度来设计同一案例,让学生在学习中区分,强化知识点理解;明确写什么内容,按照软件工程生命周期各个阶段的目标和任务来撰写案例;明确为谁写,根据学生的理解能力和层次来撰写案例;明确何时完成,在授课之前完成案例的预研。

(3)结合案例,设置讨论环节让学生参与,既要解答学生疑问,也不过多占用教学时间。在每个章节的教学活动中,分组对案例进行讨论,将学生分成不同小组,并采用轮流制原则指派组长。各组适时讨论后,由组长提出本组的观点和看法,也可以对他组提出疑问和建议。这样不仅能让学生在教学中积累项目开发经验,同时也培养了他们的团队合作意识和组织协调能力。

(4)对案例进行总结。一般由教师本人来完成,鼓励学生指出其案例分析中的错误与不足,最后教师进行归纳总结。在总结的过程中,支持学生保留自己的独到见解。

2.3其他方面建设

(1)教材的选择。教材是教学思想、培养目标、教学内容和课程体系的载体,是高校课程改革得以实施的重要保证。软件工程教材的选择,应结合目前市场上软件应用的新趋势,将包含.NET架构、J2EE架构等新技术的教材作为首选。同时,在教学中引入实际应用和工程案例,做到企业需要什么,教学就培养什么,提前完成企业的岗前培训,让学生具备软件协同开发和组织管理的能力,实现从校园到职场的轻松过渡。

(2)考核方式亟待完善。传统的考核方式局限于教材和课堂笔记,应用型课程的考核过程中应体现学生动手能力、实践能力、应用能力和创新能力等。从考核方式上看,应改变“期末一张卷定成绩”的传统做法,多类别加强过程性考核,强化学生课外学习。从考核主体上看,应逐步推进教考分离,邀请实习单位进行质量评价,实现评价主体的多元化[2-3]。

3结语

应用型人才培养是社会和经济发展的需求,也是我国高等教育迎接挑战的必然选择。软件工程是软件类技术人才必修的核心课程之一,对应用型计算机人才的培养起着至关重要的作用[4]。通过软件工程应用课程建设,学生的主动性和创造力有了很大提高,有利于教学互助、教学互动、教学互进的良性循环。应用课程建设提供了新型的教学模式,但还需要在教学实践中不断地探索和创新,以培养出更高质量的计算机专业应用型人才。

作者:杭婷婷 郭学俊 单位:河海大学文天学院 河海大学计算机与信息学院

参考文献:

[1]韩俊波,郑尚志,王维.地方院校软件工程专业应用型课程体系研究[J].巢湖学院学报,2014(6):162-164.

[2]马睿,张玉英,邵兰洁,等.基于CDIO模式的软件工程专业培养模式的探索[J].内蒙古师范大学学报:教育科学版,2013(9):83-85.

[3]杨瑞.面向应用型人才培养的操作系统课程教学改革探讨[J].内蒙古师范大学学报:教育科学版,2015(3):151-152.

[4]张晓龙.面向应用型人才培养的软件工程课程改革与实践[J].计算机教育,2010(5):10-13.

第二篇:软件工程校企合作实践教学改革实践

【摘要】

通过分析软件工程专业实践教学的现状,发现无法满足学生实践能力提升和应用型人才培养的需要。针对这一情况,提出了通过校企合作选择企业实际开发项目作为实践项目,提高实践教学的质量。实践效果表明,这样的改革对应用型人才培养质量的提高有较好的促进作用,也受到了学生们的好评。

【关键词】

校企合作;实践教学;项目案例教学;应用型人才

1软件工程专业的实践教学现状和不足

实践教学是软件工程应用型人才培养的重要环节,是学生实践能力培养和锻炼的主要途径。通过实践教学可以促进学生对理论知识的理解,分析和解决问题能力的提高,软件分析、设计和开发等项目技能与经验的培养和积累。因此参考企业不同岗位对专业技能的需求,结合应用型人才的培养特点,考虑软件工程专业的培养能力要求和课程知识体系,构建完整的实践教学体系是软件人才培养的主要内容。软件工程专业现有的实践教学体系存在的不足:①缺乏完整的实践教学体系,特别是实践教学的过程管理和考核机制。②不重视工程化思想的培养,没有很好利用先进的实践管理平台跟踪管理学生实践项目。③大多数从事实践教学的教师不具备软件行业工程领域背景和实际项目开发经验。这些不足导致学生无法将项目开发所需与所学知识有机融合,不能深入理解软件开发的流程,没有机会参与实际工程项目的开发,等工作以后,很难快速融入企业的开发氛围和环境中。再加上学校实验课时、实验环境等客观条件的制约,很多专业课程的实验教学效果不尽如人意,学生的主动性、积极性、创新性得到有效的培养和锻炼。造成的结果就是学生的编程实践能力、学习能力和解决实际问题能力达不到企业的岗位需求,影响人才培养质量和学生的就业能力。

2国内外基于校企合作的实践教学改革尝试

国内高校在围绕软件人才培养目标,针对实践教学体系的建立进行了大量的尝试。其中比较有代表性的有:

(1)北京交通大学建立了课程实训、项目实训、企业实习、毕业设计四个不同层次实践教学体系,实现对专题技能、工程项目能力、创新/创业能力、产品/系统能力等不同能力培养的目标,从而全面提高学生的工程实践能力。

(2)江西理工大学建立的“教学理念+中心+层次”的实践教学体系,从知识验证、应用和创新的层次进行教学,增强学生的工程实践能力和对企业岗位需求的适应能力。

(3)南京大学软件工程专业推行“一个教学理念、两个培养阶段、三项保障措施和四门实践课程”的工程化实践教学体系。

(4)重庆大学引入工程教育理念,以“能力培养”为核心,以“项目实践”为载体,建立了相应的实践教学体系。这些尝试基本都以学校作为主体,企业仅参与其中的部分环节,如企业实习实训,并不是与企业的深度合作,不能达到卓越工程师的培养要求“行业企业深度参与培养过程”。校企合作的概念源自于欧洲,是欧美等发达国家为了高效地培养技能人才而进行教育改革,制定相关的法律规章制度,明确校企双方共同承担培养技能人才的法律责任,强调学校与企业充分利用对方的优势资源进行多方位的合作,以保证人才培养的规格和质量。其本质是把职业教育与经济社会发展紧密地联系在一起;其核心是产学合作、工学结合、双向参与;其目标是增强学校的办学效益和企业的人才竞争优势,促进社会经济技术的发展。国内外的经验表明,在校企合作的基础上,创建了一整套与企业需求相结合的实践教学体系,使学校的实践教学能够满足企业需求,培养学生工程实践能力,改革传统的实践教学方式,广泛采用项目式教学,将合适的企业实际开发项目进行选择和分解作为实践教学内容,搭建真实的企业软件开发环境,让学生接受规范的软件开发过程管理是可行的,完全适合软件工程人才培养的改革要求。

3校企合作实践教学改革措施

(1)软件专业人才的培养高度重视学生动手实践能力的培养,加强与软件企业的联系。本专业先后与省内外IT企业柳 州奔腾软件、桂林安信以及区外中软国际、深圳达内、上海杰普、深圳达内、深圳华清等签订了校企合作实习实训合作协议,也安排了几个年级学生到这些公司进行实习实训,学生们反馈收获很大。

(2)为强化工程实践能力和外语沟通能力的培养,首先在培养方案和课程设置上,不仅大量引入需求分析、软件开发规范、软件质量保障与测试等工程实践性很强和外语沟通类的课程,对于每门专业和专业基础课的实践课时所占的比例均不小于1/2。实践课程贯穿整个培养计划,包括从程序设计实训、数据库实训到包括软件工程、项目管理等多门课程的软件开发综合实训。

(3)通过走访了IT行业的一些相关企业,如柳州靓点科技有限公司,柳州工程机械有限公司IT部等企业,讨论了基于校企合作的实践教学的可行性和必要性,以及企业提供有丰富项目经验的工程师,真实的项目和场地,给学生提供实习实训甚至就业岗位的机会。在校企合作的基础上,对软件工程专业实践教学体系进行研究和实践,围绕不同岗位能力需求,按照不同学习阶段设置不同的实践教学内容,构建有利于学生实践能力和创新能力培养的实践教学体系,培养出更多满足企业需求的软件工程人才。

(4)在专业教学中,对一些课程和实践环节进行教学改革尝试,比如《高级语言程序设计实验》、《高级语言程序设计实训》中强调程序分析与设计能力的培养,要求学生在完成基本功能的基础上,自己设计一些功能。在《项目开发实训一》、《项目开发实训二》,增加部分真实项目的开发,如基于不同手机平台的选课系统,实训管理平台等,要求开发成功后,上线运行,学生负责实施和维护。

4实践教学改革成效

对软件工程2011级227名同学的《项目实训二》的实践教学过程中,通过校企合作,学生参与企业真实项目的开发过程。实训结束后,通过用学生调查问卷评教的形式,统计分析校企合作实践教学的效果。通过评教结果,可以发现大部分同学对校企合作的实践教学效果是比较满意,但也反映出了部分的问题,一些企业的得分较低,说明这些企业在教学方法、教学内容和教学效果上令学生不是十分满意。评教的结果为今后选取实践教学合作企业提供一个重要的参考依据。

作者:李威龙 朱亚超 徐奕奕 邓向姣 单位:广西科技大学计通学院

教改项目:

广西科技大学2013年本科教育教学改革研究项目(教发[2013]10号),广西高等教育教学改革工程重点项目(2014JGZ133)。

参考文献

[1]邵雪航,宋龙宾.基于应用型本科院校的校企合作实践教学模式的实践[J].科技创新导报,2014(04):158.

[2]贾弦.校企合作实践教学的管理机制探索[J].教育教学论坛,2014(41):37~40.

[3]吴清海.校企合作实践教学模式探讨[J].职业与教育,2010(6):75.

[4]吴金星,等.校企合作实践教学为培养应用型人才打开一扇窗.大学教育,2014(2):99~101.

[5]武永成.计算机专业校企合作实践教学模式研究.教育教学论坛,2014(4):225~227.

[6]王爱民,谷川.软件工程专业校企合作实践教学模式研究[J].实验技术与管理,2012,29(1):143~145

第三篇:开放模式软件工程实践教学探索

摘要:

针对目前部分高校软件工程实践授课方式的现状与不足,介绍开放模式的软件工程实践教学的开展方式,提出开放模式下的实践教学模式,并阐述探索过程,最后通过学生的产出评价分析说明教学效果。

关键词:

软件工程实践;软件过程;教学改革;开放模式;构建之法

0引言

软件工程与实践课程,是计算机科学与技术和软件工程两个专业的核心课程,与偏计算机理论的其他核心课程不同,软件工程对于实践应用有着很高的要求。传统软件的工程实践教学模式重理论轻实践。由于课程教材与行业发展脱节等原因,导致了学生对软件工程实践感到乏味空洞、难以理解。本文借鉴邹欣在《构建之法》中提倡的“Learningbydoing”的教学模式,引入企业助教、开设博客、作业开放点评互动、校际间学生网上交流等方式,在分析面向产出的学生评价基础上,讨论开放模式对于软件工程专业实践课程探索的意义。

1软件工程传统教学模式现状与不足

1)课程教材与业界快速发展实际的脱节。部分高校采用传统的软件工程课程教材,偏向瀑布模式的软件工程理论教学。虽然任课教师对瀑布模式的应用具有丰富的任课经验,但软件工程专业又要求学生能够掌握现代工具和技术思想。脱节的教材可能会导致学生了解业界现在普遍应用或流行的工具和技术思想时缺少相应的指引,毕业时达不到企业期望。

2)教师缺乏丰富的项目实践经验。部分任课教师由于长期从事教学工作缺乏相关项目的实践经验。因此部分教师在授课时,不能提供相应的实践指导,在验收学生作品时也无法给出工程实际建议。而学生的项目也大多只是虚拟项目、模拟作品,只能够用于课程验收,作品本身却没有真实价值。

3)重理论轻实践。常规的教学模式更偏重理论,教师会在理论课上详细讲解软件工程思想,但在实践课上却更多的是布置相应任务,无法促进实践教学相融合。学生往往在理论课上一知半解,在实践课上又体会不到软件工程的思想,多数学生对于软件工程理论课的印象就是一堆需要背诵的概念,而对于实践课则是赶工完成应付验收的代码。

4)师生单向交流,作业封闭评价。传统的软件工程实践的学生作业提交和老师验收点评是封闭的单向传递。学生只和教师在有限的机会内互动,这往往会消减学生对于实践作业的持续热情。在作业评价方面,传统教学模式更为封闭,缺少开放的点评及建议,导致学生不重视作业的过程,出现抄袭、应付等情况。

2开放模式的软件工程实践教学

针对传统软件工程实践教学模式的不足,许多高校都在不断地探索软件工程教学模式的改革,倡导以学生为中心的“Learningbydoing”教学理念,提倡合作式学习团队方式。在软件工程中,“Learningbydoing”教学的一个重要特点是学生以项目为驱动组成团队进行软件工程的全过程实践,并通过团队的合作式学习提高能力、培养学生的素质[1]。在软件工程教学改革中,不能在某个点或面上进行,应根据软件工程用于解决软件开发项目这一目的出发,通过对具体的项目开发进行讲解和实践,使软件工程中抽象的概念、原理、技术和方法能具体、生动地呈现给学生[2]。开放模式的软件工程实践教学模式,是借鉴邹欣在《构建之法》一书中提倡的理念,通过以下方式展开:

1)引入企业助教,协助任课教师开展软件工程实践。企业助教的项目经验应结合教师的授课经验,保证理论与实践都重视的情况下,能够给予学生所需的帮助,并且能够引起多数学生对于企业项目的关注度。企业助教带来的IT行业的新思想、多元观念、规范编码、技术分享等,都对软件工程实践带来助益。同时,开放式平台的教学模式,有利于企业助教不受时空限制,远程协助教学,通过在博客中的互动作业点评、Github代码查验、即时通讯软件交流等方式完成。

2)开设博客,作业开放点评。采用博客的方式来完成作业的提交和点评,让学生能通过网络平台,分享自己的成果,接受来自IT业内专业人员的检视、点评及指导建议,同时还能让学生参考优秀作业,反思自己作业的不足,锻炼和培养学生持续写作的能力。

3)采用阶段作业,个人、结队、团队项目循序渐进。软件工程是一门强调实践能力的课程,而实践能力只能不断地通过完成实践作业来积累。软件工程实践课程的作业模式决定着学生是否具有很好的培养实践能力。传统的教学模式只要求学生期末上交作品,上课时汇报进展,但学生往往都会有拖延症经常出现期末赶工的情况。让学生在充足作业训练量的基础上,保持每周一定量的实践工作。《构建之法》中就提供了大量的练习,在实际教学中,个人、结队、团队作业可以依次进行,也可以交叉执行,采用每周作业具体化,保证学生每周都有具体任务。

4)基于真实、有价值用户的项目驱动。项目驱动教学法的主要特点是“以项目为主线、教师为主导、学生为主体、注重实践”[3]。让学生通过开发实际项目来加深对软件生命周期理论及各个阶段的理解。传统的软件工程实践教学模式往往会出现学生团队既充当客户角色又充当开发者角色,自己给自己提需求,自己开发的情况。这种虚拟项目、虚拟作品大多只能提高学生编程开发的能力,达不到学生学习软件开发不同周期不同需求的学习目的。基于真实、有价值用户的项目驱动则能很好地弥补这个问题,让学生团队自主地跟客户打交道,了解如何引导需求、分析及整理客户需求以及最终得到的客户验收。客户不再是老师或者学生团队,而是真实的客户,所需要的产品不再是学生团队自己想当然的产品,这种模式能够更有效的让学生体验软件开发生命周期中的各个阶段,培养学生自主学习、分析问题、解决问题的能力。

5)基于文档的项目评价、验收。传统的软件工程实践教学模式的验收注重学生团队最终开发出的软件产品,这往往导致学生最终提交一个可以编译运行的系统,而出现“重程序、轻文档”的现象。文档是软件产品的组成部分,是一种交流的工具,是开发与管理的依据,也是评审的内容[4]。在软件开发前需要用相应的文档来记录以及规定软件产品的各功能定义,客户的需求整理等;在开发过程中则需要有相应文档来定义团队间的规范;在开发完成产品交付客户时需要有相应的使用说明文档等。可见,文档贯穿着软件开发的整个生命周期。基于博客文档的项目评价、验收可以提高学生对于文档的重视程度,培养学生的文档能力。

6)结合团队分工、开发流程的分数评价体系。传统的软件工程实践教学模式,由于课时紧张或其他原因,往往会产生“重技术、轻管理”,“重个人,轻团队”的现象[5]。事实上,软件项目的成功开发,离不开团队协作,离不开团队负责人的管理能力。基于开发平台的软件工程教学模式采用结合团队分工及团队开发流程进行打分,团队的开发模式,PM的管理将占据最终成绩的一部分,让学生体验团队管理的经历,培养学生规范团队、调整及安排队员的工作以及合理安排时间进行软件开发等能力。

3开放模式的实践教学模式探索

邹欣在《构建之法》一书中倡导的软件工程实践教学模式已经在部分高校推行,并取得显著成果。福州大学于2015年在数学与计算机科学学院中首次开设以“Learningbydoing”为教学理念,基于开放模式的软件工程实践教学模式的课程,实施的对象为计算机类本科生。它的目的在于探索开放模式的实践教学对软件工程实践课程的意义,并与传统教学模式作比较。在这次的探索实践中,借鉴邹欣在《构建之法》中关于课程安排[6]的建议,并根据实际情况进行调整,最终要求参与实践课的学生要分别经历个人、结队以及团队3次项目。其中,团队项目要求Alpha版本以及Beta版本产品,并邀请真实用户进行试用及反馈,同时通过要求团队使用代码Github托管、版本控制工具、持续两周的每日会议以及燃尽图等方式,最大程度上让学生体验企业实际项目的开发过程。在评分方面由企业助教严格评分,并设立截止日期,未完成的学生则倒扣成绩。最终建立一个公正、及时、有效的评价机制[1]。但实际教学中由于法定长假、其他课程实习等原因,个人项目穿插于结队项目和团队项目期间,保证了学生每周都有一定量的作业。同时不提倡学生提前选择组队对象,模拟企业的真实开发团队很少可以自主选择。团队人数限制在4~5人,较少规模的团队便于学生自主管理和掌控。团队分工方面强制性要求所有成员必须参与编程,一旦发现独干现象将给予零分。传统的教学模式中常会出现学生“打酱油、抱大腿”现象,为了避免或者尽量减少该种现象发生,强制性要求学生使用Github托管团队项目,每个人的贡献日志记录,提交代码块均可以查看。本次实践中,结合具体的一个用户“痛点”项目,给学生提供一个真实的客户需求。教师安排学生与主要用户会面,会面期间由学生与客户自主谈话,让学生体验如何引导客户需求,以及如何理解客户的需求。过后对学生表现稍作点评,之后让学生自主发挥。最终验收时要求学生邀请客户进行试用、反馈、改进、使用,并选择完成较好的团队产品,投入实际上线使用,让学生继续体验软件维护过程。

4学生的产出评价分析

这种“Learningbydoing”的教学模式,可以激发出多数学生的兴趣与热情。许多学生反映“从没想过在学生时代还能经历一次如此正规的开发过程”。事实上,学生缺少的是一个能够发挥他们热情与兴趣的平台。在理论课上讲授相应软件工程思想时,常常也有学生表示感慨,比如讲授团队管理及分工方面的知识点时,多个项目经理忍不住在课上各抒己见。这是一种可以把理论与实践结合在一起的教学模式,能够让学生通过实践去消化、应用理论课上学习的思想。反过来,也可以通过理论课上讲授的思想去反思自己实践上的行为。在课程结束时,对学生进行问卷调查,收集反馈信息,整理、分析学生学完软件工程课程后的收获。问卷主要内容应为调查学生评价每周花在该课程上的时间和在该项目上编写的代码量,同时让学生对自己的软件工程各种技能能力进行自我评估。未参与实践课的学生多数表示,对于开发软件的概念更多的是停留在敲代码上,至于其他团队管理、分工、文档等方面都不够重视。参与实践课的学生多数反映,按照实践课程要求进行的软件开发,花在代码上的时间反而比花在文档,团队开会、管理、分工上还要少。收集到的反馈数据也表明,采用新教学模式下的学生更愿意花费更多的时间在该课程上,多数学生反映这种教学模式比较有兴趣,更能让学生自主投入进去。2014年以传统教学模式进行授课的软件工程实践课程的学生问卷调查的汇总和2015年以基于开放模式的软件工程实践教学模式进行授课的学生问卷调查汇总。传统教学模式下往往会出现“重个人,轻团队”“重技术,轻管理”“重理论,轻实践”等现象,学生们经常会以为软件开发就等同于编程,因此导致了学生在实践过程中只注重编程能力,而忽略了团队的管理、协作等方面。表中数据也显示,采用“Learningbydoing”教学理念,基于开放模式的软件工程教学模式下的学生,在项目管理、代码复审以及软件工程工具的使用上的能力提升都很显著。

5结语

实践表明,开放模式的软件工程实践教学模式相比传统教学模式更能引起学生学习的兴趣,也能更好地弥补传统教学模式中的不足之处。“Learningbydoing”的教学理念,强调理论与实践的结合,培养学生快速入手,自主学习的能力。下一步,将计划在计算机专业的实践课程中运用这种教学模式,尽可能让学生从大一时就能适应以“Learningbydoing”为教学理念。

作者:张栋 苏晓强 单位:福州大学数学与计算机科学学院

参考文献:

[1]边耐政,凌小宁,林亚平.“做中学”教学平台之合作式学习团队管理和评价[J].计算机教育,2008(2):92-94.

[2]蔡勇,李菁芳.以“项目教学法”促进“软件工程”教学[J].计算机教育,2007(16):13-15.

[3]李伟波.项目驱动式的“软件工程”教学模式研究与实践[J].中国电力教育,2009(12):45-46.

[4]刘炜.浅析文档在软件项目开发中的作用[J].价值工程,2010(26):151.

[5]吴国栋,涂立静.软件工程一体化教学模式探讨与实践[J].计算机教育,2010(16):95-98.

[6]邹欣.构建之法[M].北京:人民邮电出版社,2014:17-18.