APP下载

基于CDIO工程教育理念的软件工程实践教学改革

2015-12-09卢莹庄丽华

教育教学论坛 2015年28期
关键词:软件工程

卢莹++庄丽华

摘要:本文分析了软件工程实践教学的现状及亟待解决的问题,介绍了基于CDIO工程教育理念的软件工程实践教学体系的改进思路,提出了从基础实验到综合实践逐步过渡的软件工程实践教学二级模型。学生通过软件工程综合实践环节的训练,巩固了软件开发技能,提高了综合分析问题能力,获得了软件开发经历,培养了团队协作意识。

关键词:CDIO工程教育;软件工程;综合实践教学;二级模型

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)28-0102-03

软件工程是一门伴随软件危机的出现而发展起来的课程,软件工程课程的主旨在于学生能够运用软件工程的原理、方法和工具开发计算机应用软件。理论与实践并重是软件工程教学的基本特点,软件工程实践教学更直接影响学生的软件开发能力。

软件工程课程内容覆盖面较宽,与数据库系统原理、程序设计语言、算法设计与分析等课程内容交织,为了实现相关课程之间内容的贯通、拓展学生的学科知识、提高学生综合分析和解决问题的能力,我们将专题学习(Project-Based Learning)[1]、任务学习(Task-Based Learning)[2]和基于问题的学习(Problem-Based Learning)[3,4]等教学方法引入课程教学中,突出软件工程课程的综合性、实践性特色。

在软件工程实践教学环节,我们从CDIO工程教育模式得到启发,结合软件工程课程特点,对软件工程实践教学体系进行了调整和改进,实现了从基础实验到综合实践的逐步过渡和合理衔接。

本文针对软件工程实践教学中存在的问题,给出了实践教学体系和内容的改进思路,讨论了综合实践教学的实施细节。

一、软件工程实践教学体系的改进思路

我校软件工程课程组从CDIO工程教育模式出发,根据软件工程课程特点和教学内容,对软件工程实践教学体系进行了改进,采取分层次、分步骤的方式安排实践教学内容,使学生在软件开发技能、综合分析问题能力、软件系统开发经历、团队协作意识等方面得到系统训练。

CDIO工程教育模式是国际工程教育改革的成果,包括构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)四个环节[5]。CDIO提出了系统的能力培养教学大纲,内容涵盖了学生对理论知识的掌握程度、个人素质和发展能力、与人协作交流能力以及大系统适应和调控能力等多个方面;强调以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程[6]。CDIO认为工科学生的能力应该体现在工程基础知识能力、个人职业技能、团队协作能力和工程系统开发能力四个层面[7]。软件工程课程的培养目标是,学生掌握现代软件开发理论和准则,具备对软件行业和软件项目的理解与掌控能力,拥有根据软件需求进行创新设计的能力,并且在软件开发团队中能够进行良好的团队协作和人际沟通[8]。软件工程课程的特点和培养目标与CDIO工程教育理念不谋而合。CDIO的12条标准为工程教育改革提供了具体化的、可操作、可测量的模板[9]。我们以此为依据并结合软件工程课程的教学特点,对软件工程实践教学的内容、结构、实施细节进行了调整和改进。CDIO倡导主动学习,即教学活动中学生能够基于自己的思考和实践解决问题。我们提出了一种主动式、知识探究型的教学模式——问题式教学模式。问题式教学模式关注实践教学活动中的问题设计,教师根据课程特点、设计富有挑战性的非良构问题;学生以学习团队的形式参与问题式教学活动,通过解决紧密联系实际的非良构问题来探究问题背后隐含的学科概念和原理,拓展专业知识,培养团队协作意识[10]。

CDIO工程教育模式强调在教学活动中将学科概念和学生能力逐步整合,学生在工程实践过程中掌握知识、提高工程项目分析设计和实施能力。据此,我们将软件工程实践教学内容分为基础实验和综合实践两个相对独立的环节。基础实验与软件工程理论教学同步进行,重点训练学生对软件生命周期组成阶段的理解、对系统分析和系统设计工具的掌握。综合实践部分以实训课程的形式单独开课,教学内容涵盖软件工程、程序设计、数据库系统原理等多门软件类课程,重点培养学生的软件开发能力和团队协作意识。

二、软件工程实践教学二级模型

从学生运用软件工程基础知识的能力、系统化的个人职业技能训练、软件项目的开发能力和团队协作能力四个层面出发,将软件工程实践教学划分为基础实验和综合实践两级,图1所示的软件工程实践教学二级模型概括了软件工程实践教学体系的框架和内容。

基础实验模块融合在软件工程课程教学中,培养学生对软件工程原理的理解、软件开发技能和工具的掌握。

软件工程综合实践模块内容涵盖软件项目开发的完整过程,以软件实训课程的形式独立开设,侧重学生软件项目开发能力和团队协作意识的培养。综合实践模块依托软件工程基础实验和其他相关的软硬件支撑资源,是软件工程基础实验的延伸和扩展。

1.基础实验模块。软件工程基础实验模块涉及软件生命周期的四个主要阶段,内容包括需求分析模型及建模工具、软件结构及接口设计、系统实现过程中所需的算法逻辑设计、与软件单元测试和集成测试相关的测试用例设计等。基础实验的主要目的在于学生领会软件工程基本理论和准则、掌握软件工程标准、学习使用软件开发工具。基础实验内容偏重于设计型,具备一定的灵活性;但实验形式属于验证型,是课堂教学中案例教学法的延伸和应用。教师通过教学案例阐述如何运用软件工程理论、技能和工具,学生在实验过程中模拟解决与教学案例类似的软件问题,以实践的方式体会和巩固软件工程知识。

2.综合实践模块。软件工程综合实践环节主要从培养学生团队合作环境下的软件项目研发能力出发,引导学生使用主流的软件开发技能和工具,获得较真实的软件项目开发经验。学生在软件工程基础实验阶段所掌握的软件开发技能和工具应用能力以及其他相关软件类课程的知识,是完成综合实践任务的前提。endprint

3.综合实践模块包括五部分内容。软件定义阶段,要求学生通过一系列调研活动对系统目标进行准确定位,根据个人特长和软件项目开发的需要合理组织项目开发团队并进行工作分工,按照软件工程规范制订项目开发计划。

具体的软件项目开发工作集中在系统分析、系统设计和系统实现三个阶段完成。系统分析阶段主要解决软件项目“做什么”的问题,并以功能模型、数据模型和动态模型的形式表达分析结果。“如何做”的问题将在系统设计阶段解决,包括实现系统功能的物理方案、数据库实施方案等内容。系统实现就是通常意义上的编程阶段,包括编程环境的配置、编写代码、进行软件测试和系统集成等工作。

评价考核阶段既是对学生综合实践成果的检验,也是对实践教学环节的反思,是一个再提高的过程。

三、软件工程综合实践教学的实施细节

软件工程基础实验的内容和形式已经非常成熟,我们对软件工程实践教学体系进行改革的重点是综合实践教学。

软件工程综合实践教学融合了计算机专业多门软件类课程的内容,并与软件开发的新技术新工具紧密结合,是一项系统化的教学实践活动。在具体的实践教学实施过程中,教师提供的综合实践题目、学生组成的项目开发团队以及实践教学的评价考核方式都是影响实践教学质量的重要因素。

1.综合实践题目的特点。在软件工程综合实践环节,教师要为学生提供实践题目,即需要学生完成的软件开发项目。实践题目要兼顾普适性与创新性两个方面。所谓普适性即实践题目要具备明确的可操作性,学生通过综合实践活动能够体验软件项目开发的基本规范,经历软件开发的完整过程。因此,教师提供的综合实践题目应该与现实环境中的实际需求紧密相连,便于学生建立感性认识。普适性还体现在不同实践题目的核心知识需求基本相同,但要保证应用背景不同,以保证学生获得软件开发基本技能方面的完整训练。综合实践题目的创新性是指,对已经满足普适性要求的实践题目进行适当的需求扩展和功能延伸,并保留一定的不确定性和疑点,即保持适度的非良构性,留给学生思考的空间。这样可以在软件开发技能方面引导学生温故知新、举一反三,也就是说,学生需要在问题的牵引下去适当学习专业以外的知识、搜集提炼信息、补充项目本身缺失的条件,最终制订可行的软件项目实现方案并解决软件实施问题。

2.软件项目开发团队的组建。软件工程综合实践环节是学生对软件开发过程的模拟体验,现代软件开发工作多以团队协作方式进行。所以对学生而言,综合实践环节的第一步工作就是组建软件项目开发团队并进行合理分工。

软件开发团队成员的角色分为项目经理、软件工程师、程序员、软件测试工程师四类。为了使学生能够模拟较真实的软件开发过程及开发团队成员的角色,一般建议5~6个学生组成一个项目开发团队。组建项目团队时要考虑学生的认知优势、学习习惯、学习兴趣、动手能力、逻辑思维能力、性格特点等因素,引导学生按照既发挥个人特长,又优势互补的原则组织项目开发团队并进行角色分配。

3.综合实践教学的评价。成绩评定是实践教学环节的重要工作之一,评价标准和考核方式会影响学生的学习态度和学习方向。我们采用实践过程监控和结业考核相结合的综合评价形式。学生通过综合实践活动体验软件项目开发规范,经历软件开发的完整过程,是软件工程综合实践教学的基本目标,所以要将软件开发过程的规范性、开发文档的完整性、程序代码的可理解性、系统运行稳定性作为基本的评价标准。软件工程综合实践题目兼具普适性与创新性两方面特征,要求学生完成的软件项目与特定应用领域密切相关,题目本身具有一定的开放性和不确定性。同一软件项目,往往会有若干技术实现方案,这些方案可能各有优劣,因此应该遵循没有最好、只有更好的评价标准,对学生进行的实际调研、提出的合理假设、创造性改进等工作予以肯定。

结业考核方式采用答辩会形式,每个参加考核的项目团队都要进行工作陈述和系统演示,接受教师同学的提问并进行答辩。通过辩论和提问,引发了学生对相关问题更深层次的思考和探究欲望,这种开放性的交互辩论方式可以促使学生接触更广泛的实用性软件项目,以换位思考的形式领略其他软件开发团队的工作成果。

四、结语

软件工程课程的基本出发点是用工程化原理和手段指导软件开发,软件工程原理和准则只有通过软件开发实践才能充分体现。为了解决软件工程教学中实践环节薄弱的问题,我们将先进的CDIO工程教育理念应用在软件工程教学改革中,提出了一种可行的软件工程实践教学框架——软件工程实践教学二级模型,实现了软件工程基础实验到综合实践的平稳过渡和合理衔接。学生通过软件工程实践教学活动,掌握了软件开发基本技能,可以在软件开发工具使用、软件开发经历体验、团队协作意识培养等方面得到系统训练。

参考文献:

[1]Robert Michael Capraro,Scott W.Slough.Project-Based Learning:An Integrated Science,Technology,Engineering,and Mathematics(STEM)Approach[M].Rotterdam:Sense Publishers,2009:99-103.

[2]Simone B.R. New Media and Task-Based Teaching/Task-Based Learning:Web Quests[M].Munich:Grin Publishers,2010:54-59.

[3]Barrows H.S. Problem-based learning[M].Berlin:Springer Publishers,1980:3-12.

[4]Boud D.,Feletti G.I. The Challenge of Problem-Based Learning,2nd Ed[M].London:Kogan Page Ltd.,1997:34-38.

[5]顾佩华,陆小华.CDIO工作坊手册[M].汕头大学出版社,2008:12-17.

[6]陶永芳,商存慧.CDIO大纲对高等工科教育创新的启示[J].中国高教研究,2006,(11):81-83.

[7][美]克劳雷.重新认识工程教育:国际CDIO培养模式与方法[M].顾佩华,等,译.北京:高等教育出版社,2009:38-44.

[8]Roger S.Pressman.软件工程:实践者的研究方法[M].郑人杰,等,译.北京:机械工业出版社,2008:3-5.

[9]查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究,2008,(3):1-6.

[10]卢莹,林荫.问题式教学模式研究[J].计算机教育,2011,(14):98-101.endprint

猜你喜欢

软件工程
基于课程群的软件工程专业三位一体教学模式探索
高职软件工程课程改革研究
软件工程应用型课程建设与实践
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
关于如何创新和完善计算机软件工程管理的探讨