当前位置: 迅达文档网 > 范文大全 > 征文 >

软件工程实验教学研究与实践

| 来源:网友投稿

摘要:本文根据学生的知识和能力基础以及教学目标,认为软件工程课程实验可以按照由浅入深的顺序分为认知性导入实验、方法性实验和综合实践三个阶段。这种三阶段的软件工程实验教学方法为学生提供了一条从编程到软件项目开发的渐进式发展之路,并已在复旦大学软件工程相关课程教学中得到了成功应用。

关键词:软件工程;实验;软件开发;实践

中图分类号:G642文献标识码:B

文章编号:1672-5913 (2007) 20-0015-03

1软件工程实验教学的意义

软件工程是一门理论与实践并重的基础课程,教学内容紧密围绕软件开发过程中的各种工程化方法、技术和思想。软件工程从工程意义上讲是指软件开发、维护、管理等活动的总体,从学科意义上讲包括软件开发相关的理论、原理、方法、技术[1]。

软件工程课程一般安排在本科三年级开设,此时的学生经过一二年级的学习和实践已经掌握了一定的计算机知识和编程能力,但分析解决复杂软件问题的能力以及工程化软件开发的意识还比较弱。而软件工程课程设计的目标是使学生系统地掌握软件工程及软件管理的过程、方法和工具,为学生将来从事软件的研发和管理奠定基础[2]。软件工程教学内容中的需求分析、设计和软件测试等软件开发技术以及工程化的开发过程(例如软件过程、配置管理、项目管理等)必须通过实际软件问题求解过程以及团队合作进行体验,而综合的软件开发能力更是需要通过一个完整的软件项目开发过程进行锻炼和培养。因此,软件工程课程实验是巩固课堂教学成果、培养学生软件工程实践能力的重要手段。

2总体思路

作为研究工程化软件开发方法和技术的学科,软件工程课程的课程实验主要以课程实践项目的形式进行,从实验目的看主要分为三类:方法性实践、实现性实践、创新性实践。其中,方法性实践是在软件工程课程教学中讲述某种软件开发方法后安排的实践,主要目的是加深对方法的理解。实现性实践的主要目的是让学生参与软件项目的开发全过程,一方面将学得的理论知识运用于实践中,另一方面培养学生的工程能力(包括软件工具的使用)和团队协作精神。而创新性实践的主要目的是培养学生的创新能力,通过在实践项目设计中,有针对性地引入开放性问题和不确定问题,启发学生在探讨中寻找合理的、创造性的解决方案。

2.1三个实验阶段

根据学生的知识和能力基础以及教学目标,软件工程课程实验可以按照由浅入深的顺序分为三部分,即:认知性导入实验、方法性实验和综合实践。而方法性实践、实现性实践、创新性实践三类实践内容又以不同的形式体现在这三个实验阶段中。

认知性导入实验通过一个很小的程序开发案例完成认知性导入,引导学生思考软件工程的基本思想和原则,体会规范化分析、设计、实现、测试的意义和必要性。方法性实验紧贴软件工程教学内容,以结构化分析设计和面向对象分析设计为主要的实验内容。综合实践以面向对象的开发方法和统一软件过程RUP为基础,引导学生完成一个完整的软件项目开发过程,包括需求获取、需求分析、系统设计、实现以及测试等基本步骤,同时强调数据库、网络等开发技术的综合运用以及相关CASE工具的使用,在此基础上还鼓励学生尝试一些新的软件开发方法和技术。

三个课程实验阶段具有各自明确的目的和定位:认知性导入实验完成认知导入,方法性实验帮助学生巩固课堂中所学习到的知识,而综合实践则培养学生综合运用各种软件开发方法和技术的能力。此外,三个阶段的课程实验中还穿插着创新性实践要求,通过各种开放性问题和不确定问题鼓励学生运用自己的思考能力寻找合理的、创造性的解决方案。

2.2课时安排

三个实验阶段中,前两个紧密围绕软件工程课程的教学内容,而综合实践则是对学生工程化软件开发能力的全面训练。因此在课程安排上可以将认知性导入实验和方法性实验穿插在一个学期的软件工程课程中进行,而在后续的软件实践类课程中安排第三个阶段的综合实践性实验内容。

3认知导入、方法性实验和综合实践

3.1认知性导入实验

通过软件工程课程之前的程序设计相关课程的学习和实践,学生已经掌握了一定的问题分析、算法设计、编程和调试能力,但分析解决复杂软件问题的能力以及工程化软件开发的意识还比较弱。认知性导入实验的目标是从软件工程实践的角度完成认知导入,引导学生完成从程序设计到软件开发的第一次跨越。

认知性导入实验通过一个算法小程序(例如日期到星期的转换等)开发案例完成认知性导入,引导学生思考软件工程的基本思想和原则,体会规范化分析、设计、实现、测试的意义和必要性。认知性导入实验一般可以在一学期的第一次软件工程课上布置,要求学生用1-2周时间独立完成一个算法程序的规范化分析、设计、开发和测试过程并提交实验报告,内容包括问题分析、数据结构、算法及界面设计、完整的程序清单、测试过程及结果记录、心得与体会等。

本次实验采用简单的算法程序作为题目,是为了降低学生的认知难度并且通过规范化开发与以前程序设计时的对比加强学生对软件工程基本思想和原则的体验。实验以开发过程的规范性、个人体验和开放问题的思路为主要评价指标,不以算法和程序本身的正确性为主要的评判标准。

本次实验一般安排在一学期第一次软件工程课上布置,与之配套的课堂教学内容是 “软件工程概论”。课堂教学通过对软件工程基本思想和软件开发基本过程的介绍,使学生初步理解软件工程和工程化软件开发的含义,特别强调本次实验与程序设计作业的区别,即强调开发过程的工程性而不是算法和实现本身的正确性。此外,配套教学内容还对系统可用性、可维护性、可扩展性、测试自动化等开放性问题进行了铺垫,希望可以引导学生在完成基本功能之余能够加以思考和探究。

3.2方法性实验

软件工程的课程教学内容覆盖了完整的软件需求分析、设计、实现以及测试过程,对本科学生而言,主要讲述结构化方法和面向对象方法两部分。因此,这部分课程实验与相关教学内容同步进行,分为结构化分析设计和面向对象分析设计两个部分。方法性实验要求学生自由组合,分组完成,每组3人。每个小组从候选项目中选择一个完成结构化分析设计和面向对象分析设计两部分实践内容。本阶段实验可在导入性实验结束后布置。

本阶段实验以结构化及面向对象分析和设计方法以及UML基本表示法的掌握为主要评价指标,同时考查学生理解实际问题需求、解决具体问题的能力。本次实验与教学内容中的“结构化分析与设计”以及“面向对象分析与设计”配套。为了保证本次实验的顺利开展,相应的课堂教学需要着重强调以下内容:明确软件系统分析(做什么)和设计(怎么做)的区别,体会数据流图、系统结构图以及UML各类图的含义;在具体的系统分析和设计中需要综合各种具体要求和约束(例如可复用性、物理分布等)以及各种指导性原则进行系统分析和设计。

3.2.1结构化分析设计部分

这部分实验要求各小组使用结构化分析和设计方法完成实践项目的需求分析和设计过程,并在此基础上撰写实验报告(包括结构化分析和设计文档)。结构化分析阶段要求学生按照结构化分析的基本思想和步骤完成实践项目需求分析过程,将分析结果表示为相应的描述形式(主要包括数据流图、数据字典和加工小说明),并根据相关原则和判定方法保证数据流图的一致性和完整性。结构化设计阶段要求学生在结构化分析结果的基础上运用结构化设计的基本思想和步骤完成实践项目的结构化设计,包括初步的结构图映射以及后续的结构图优化。要求提交的结构化分析文档的内容包括总体需求概述、分层数据流图、数据字典、加工小说明等,结构化设计文档的内容包括总体设计说明、初始结构图、改进的结构图以及各模块说明等。

在完成基本实验要求的基础上,要求学生对一些开放性问题进行思考,并根据自己的理解在实验中加以体现:数据流图中文件的识别;对于数据流图分解程度的把握;对于系统模块物理分布的考虑;模块之间的交互设计,例如通信协议、数据格式等;对于系统可复用性的考虑等。

3.2.2面向对象分析设计部分

这部分实验要求各小组使用面向对象分析和设计方法完成同一个实践项目的需求分析和设计过程,并在此基础上撰写实验报告(包括需求分析和系统设计文档)。面向对象分析阶段要求学生按照面向对象分析的基本思想和步骤完成实践项目需求分析过程,将分析结果表示为相应的描述形式(包括领域模型、用例模型以及用例的详细描述等)。面向对象设计阶段要求学生在面向对象分析结果的基础上完成实践项目的面向对象设计,包括系统体系结构、结构设计、面向对象类设计等。

在完成基本的实验要求上,要求学生对一些开放性问题进行思考,并根据自己的理解在实验中加以体现:层次体系结构等体系结构风格的运用;面向方面(Aspect)、关注点分离的设计思想;系统可维护性和可扩展性的考虑、面向对象设计模式的运用;对于系统边界之外的外部接口的设计考虑等。

3.3综合实践

综合实践一般安排在软件工程课程后进行,此时学生已经学习并掌握了软件工程、程序设计、数据库等方面的基本方法和技术,而且即将走出校门参与软件开发实践。因此,综合性实验突出强调贴近实际软件项目的实践性以及相关软件开发能力的综合运用。实践性实验一般安排在软件工程课程后续的软件开发实践课程中,成绩评定完全根据课程实践情况。

综合实践以面向对象的开发方法和统一软件过程RUP为基础,引导学生完成一个完整的软件项目开发过程,包括需求获取、需求分析、系统设计、实现以及测试等基本步骤,同时强调数据库、网络等开发技术的综合运用以及分析、设计、测试等CASE工具的使用,在此基础上还鼓励学生尝试构件技术、AOP、Web Service等新的软件开发方法和技术。学生自由确定项目团队组成方式,每组设项目经理1名,项目组成员3~5人。每个小组从候选项目中选择一个完成整个开发过程,分需求分析、系统设计和系统实现与测试三个阶段提交文档、代码等实验结果,并提交最终的可运行软件系统进行检查

与前面几个软件工程实验阶段相比,实践性实验具有以下特点:

1) 完整的软件开发过程。整个实验以一个实际项目的完整开发过程为主线,覆盖了需求获取、需求分析、概要设计、详细设计到实现和测试的整个开发过程。

2) 综合性与真实性。实验中要求完全实现所选择的实践项目,因此学生需要综合运用数据库设计、网络编程等知识,同时相关需求都来自于真实的管理信息系统项目,使学生能够体会到真实的软件开发过程中的一些问题(例如外部交互接口、第三方软件构件等)。

3) 开发过程的规范性。强调每个项目组的开发过程都应该遵从软件过程规范,同时在开发过程中引入基本的项目管理机制。

4) 学生的主体性体现得更见明显。实践项目的开放性更强,学生可以得到更多的自由发挥,例如学生自主参与需求调研确定详细需求、自由决定项目组组成模式和管理方式等。

4软件工程实验教学实践

我们在复旦大学计算机科学与工程系的软件工程相关课程体系建设中对这套三阶段的实验教学方法进行了实践。我们在第六学期安排软件工程课程,而在第七学期安排配套的软件实践课程,这样就使得软件工程实验教学具有很好的延续性和系统性。三个实验阶段中,前两个与软件工程课程配套进行,两个实验阶段作为软件工程课程配套实践占学生总成绩的40%。其中,认知性导入实验持续1~2周,另外安排1个课时进行讲解,方法性实验持续15周左右,另外安排3~4个课时进行讲解。综合实践安排在软件实践课程中进行,持续16周(共48个课时)左右,其中18个课时用于课堂教学、讲解和点评,30个课时用于实践(需求调研、项目讨论等)及上机,成绩评定完全根据课程实践进行。

这种三阶段的软件工程实验教学方法为学生提供了一条从编程序到软件项目开发的渐进式发展之路。通过这种系统的软件工程实践能力训练,学生可以将所学的各种软件开发方法和技术转化为综合的软件开发和管理能力,同时也对软件开发的一些现实困难(例如需求的不确定、测试覆盖度和效率、构件化开发和集成的困难等)有了初步认识,这些都为他们今后参加软件研发和管理打下了良好的基础。目前,复旦大学软件工程课程已经被评为上海市精品课程,在此基础上我们正在进一步推进软件工程课程体系建设。

参考文献

[1] 朱三元, 钱乐秋, 宿为民. 软件工程技术概论[M]. 北京:科学出版社,2002.

[2] 王志英. 实践教学:计算机人才培养的重头戏[J]. 计算机教育,2004,(9).

作者简介

彭鑫(1979-),男,博士,复旦大学计算机科学与工程系讲师,主要研究方向为软件构件技术、软件产品线、软件维护与再工程。

赵文耘(1964-),男,复旦大学计算机科学与工程系教授,博士生导师,主要研究方向为软件工程与电子商务。

钱乐秋(1942-),男,复旦大学计算机科学与工程系教授,博士生导师,主要研究方向为软件工程。

通信地址:上海市复旦大学计算机科学与工程系软件工程实验室200433

电话:13916819965

推荐访问:软件工程 教学研究 实践 实验

热门排行

学习贯彻《信访工作条例》经验征文11篇

学习贯彻《信访工作条例》经验征文11篇学习贯彻《信访工作条例》经验征文篇1信访工作是党的群众工作的重要组成部分,是送上门来的群众工作。5月1日起施行的《信访

基层财政所工作面临困惑和建议 乡镇财政体制改革存在问题

下面是小编为大家精心整理的基层财政所工作面临困惑和建议乡镇财政体制改革存在问题文章,供大家阅读参考。基层财政

巡察谈话情况报告例文 巡察县政府办党组情况报告

下面是小编为大家精心整理的巡察谈话情况报告例文巡察县政府办党组情况报告文章,供大家阅读参考。巡察谈话情况报告

从《开国大典》谈中国油画民族化

“油画民族化”是1956年9月全国油画座谈会上提出来的,在当时的社会中,它不只是一个口号和一个新名词

世界优秀心理电影在青少年心理健康教育中的发掘和应用

摘要:世界优秀心理电影因其有针对性的题材、富于启发性的内容、强大的艺术魅力,对解决青少年心理问题、促

党员队伍建设存在问题与对策 党员队伍教育管理存在的问题

下面是小编为大家精心整理的党员队伍建设存在问题与对策党员队伍教育管理存在的问题文章,供大家阅读参考。xx村党员

传承红色基因征文600字 弘扬红色文化传承红色基因作文2000字

下面是小编为大家精心整理的传承红色基因征文600字弘扬红色文化传承红色基因作文2000字文章,供大家阅读参考。亲爱的朋友,

向巡视组工作情况汇报 被巡察单位党组织工作汇报材料

下面是小编为大家精心整理的向巡视组工作情况汇报被巡察单位党组织工作汇报材料文章,供大家阅读参考。向巡视组工作情况

职工代表大会制度.docx 职代会制度和职工大会制度

下面是小编为大家精心整理的职工代表大会制度 docx职代会制度和职工大会制度文章,供大家阅读参考。一、职工代

(完整版)学校意识形态工作实施方案 2022年学校意识形态工作要点

下面是小编为大家精心整理的(完整版)学校意识形态工作实施方案2022年学校意识形态工作要点文章,供大家阅读参考。学