资源描述
《软件工程》课程教学大纲
课程代码:090131028
课程英文名称:Software Engineering
课程总学时:40 讲课:32 实验:0 上机:8
适用专业:信息与计算科学
大纲编写(修订)时间:2010.7
一、大纲使用说明
(一)课程的地位及教学目标
本课程是信息与计算科学专业一门重要的专业基础课,它较详细地阐述了软件工程的基本理论和软件开发的基本方法、基本过程。通过本课程的学习,培养学生树立从系统的角度进行软件设计、开发、测试和评价的基本思想,是学生进一步学习信息与计算科学专业软件开发、算法课程的必备基础。它为本专业学生在今后从事IT行业的编程、管理、技术协作等提供必要的知识,同时还承担着素质教育和工程教育的基本职责。
通过本课程的学习,学生将达到以下要求:
1.掌握面向过程和面向对象的程序设计方法,具有设计一般软件的初步能力;
2.树立正确的设计思想,了解国家当前的有关技术经济政策;
3.具有运用标准、规范、手册等有关技术的能力;
4.了解典型软件测试的实验方法,获得实验技能的基本训练;
5.了解软件工程的新发展。
(二)知识、能力及技能方面的基本要求
1.基本知识:掌握软件软件工程的一般知识,掌握可行性研究,需求分析、概要设计、详细设计、实现和维护的基本方法。
2.基本理论和方法:要求学生通过软件工程这门课程的学习,系统地掌握软件开发的基本方法和过程,熟练地掌握可行性分析、需求分析、概要设计和详细设计这几个阶段的基本目标、基本原理和基本方法,并能够熟练地应用软件工程的基本方法,解决系统软件开发的过程中所遇到的主要问题。尤其重要的是让学生掌握系统流程图、系统结构图、数据流图等软件工程基本方法。
3.基本技能:掌握结构化程序设计的基本过程和基本技能等。
(三)实施说明
1.教学方法:课堂讲授中要重点对基本概念、基本方法和解题思路的讲解;采用启发式教学,培养学生思考问题、分析问题和解决问题的能力;引导和鼓励学生通过实践和自学获取知识,培养学生的自学能力;增加讨论课,调动学生学习的主观能动性;注意培养学生提高利用标准、规范及手册等技术资料的能力。讲课要联系实际并注重培养学生的创新能力。
教师在讲解过程中应深入浅出、循序渐进、联系实际、结合实例,才能收到较好的效果。为了能够深入的理解软件工程这门课程的基本理论和系统软件开发的基本步骤,树立正确的系统软件开发方法,学以致用、学以可用、学以善用,本课程需要学生上机实践,加深对理论课程中重点问题和难点问题的理解。锻炼学生在实践中发现问题、分析问题和解决问题的能力,为以后的就业打好软件开发的基础。
软件工程这门课程是一门理论性较强的专业基础课程,通过这门课程的讲解,不仅要使学生掌握软件工程这门课程的基本知识,还要使学生通过这门课程的学习,提高他们软件开发的基本素质,通过教师引导,使学生从被动吸收知识的状态下转化到主动索取知识的状态中来。利用“先自学后讨论”的方法教学,可以清晰地掌握所教班级的整体水平,再采用激发学习兴趣的措施,提高学生班级的整体水平,同时注重方法的传授而不纠缠细节,这样就可以将学生的注意力引导到教学的主题上来。在明确学习的目的后,培养学生索取自己所需要知识的能力。理论授课最好采用多媒体教学方式,上课过程中除了讲清基本理论和基本方法外,还应该在课堂上通过多媒体手段现场演示系统软件开发的基本步骤,以及软件开发过程中,各个阶段所面临的主要任务和最终目标。 另外课堂练习和课后作业也是激励学生掌握软件工程这门课程理论知识的基本手段和方法。
该大纲的实施过程中,应站在培养人才的整体高度上,教师传授的不仅仅是知识,更重要的是如何获取知识。因此,在整个课程的教学过程中,教师应成为学生的导师,指导学生如何学习;还应充当课堂讨论的组织者及引导者;扮演实践环节中应用软件项目开发的负责人。
2.教学手段:本课程属于专业骨干课,在教学中采用电子教案及多媒体教学系统等先进教学手段,以确保在有限的学时内,全面、高质量地完成课程教学任务。
(四)对先修课的要求
本课程的教学必须在完成先修课程之后进行。本课程的先修课程有面向对象程序设计、数据结构、数据库原理。本课程是信息与计算科学专业其它计算机类专业课程的综合运用,为学生毕业设计和就业打下良好的基础。
(五)对习题课、实践环节的要求
1.对重点、难点章节(如:概要设计、详细设计、系统实现等)应安排习题课,例题的选择以培养学生消化和巩固所学知识,用以解决实际问题为目的。
2.课后作业要少而精,内容要多样化,作业题内容必须包括基本概念、基本理论及设计方面的内容,作业要能起到巩固理论,掌握计算方法和技巧,提高分析问题、解决问题能力,熟悉标准、规范等的作用,对作业中的重点、难点,课上应做必要的提示,并适当安排课内讲评作业。学生必须独立、按时完成课外习题和作业,作业的完成情况应作为评定课程成绩的一部分。
3.每个学生要完成大纲中规定的必修实验,通过实验环节,学生应掌握典型软件测试的基本方法,获得软件测试的基本训练。实验成绩作为评定课程成绩的一部分。
4.安排大作业,大作业成绩作为平时成绩的一部分。
5.本课程的课程设计单独设课,单独考核,具体要求参见相应的课程设计教学大纲。
(六)课程考核方式
1.考核方式:考试
2.考核目标:在考核学生软件工程基本知识、基本原理和方法的基础上,重点考核学生的分析能力、设计能力。
3.成绩构成:本课程的总成绩主要由三部分组成:平时成绩(包括作业情况、出勤情况等)占10%,实验成绩占10%,期末考试成绩占80%。
平时成绩由任课教师视具体情况按百分制给出;实验成绩由实验老师参照相关规定按百分制给出,实验无成绩或实验不及格,取消期末考试资格,总成绩直接以不及格计。
(七)参考书目
《软件工程导论(第4版)》,张海藩编著, 清华大学出版社,2008。
《软件工程——原理、方法与应用》,史济民,顾春华、李昌武等,高等教育出版社,2008。
二、中文摘要
本课程是信息与计算科学专业学生必修的一门理论性性很强的主干技术课程。课程通过对软件工程基本理论、方法等内容的讲授,使学生掌握软件设计的基本知识、基本原理和基本方法,并具有设计简单系统软件的能力。课程主要内容包括可行性研究、需求分析、概要设计、详细设计、实现和维护等。本课程是本专业计算机类课程的综合运用,将毕业设计和学生就业等奠定重要的基础。
三、课程学时分配表
序号
教学内容
学时
讲课
实验
上机
1
软件工程学概述
2
2
1.1
软件危机、软件工程、软件生命周期、软件过程
2
2
可行性研究
6
6
2.1
可行性研究的任务、可行性研究的过程
2
2.1
系统流程图、数据流图、数据字典
2
2.3
成本/效益分析、可行性研究案例分析
2
3
需求分析
6
6
3.1
需求分析的任务、与用户沟通获取需求的方法
2
3.2
分析建模与规格说明、实体-联系图、数据规范化、状态转换图
2
3.3
其他图形工具、验证软件需求、需求分析案例分析
2
4
总体设计
6
6
4.1
设计过程、设计原理
2
4.2
启发规则、描绘软件结构的图形工具
2
4.3
面向数据流的设计方法、总体设计案例分析
2
5
详细设计
6
6
5.1
结构程序设计、人机界面设计
2
5.2
过程设计的工具、面向数据结构的设计方法
2
5.3
程序复杂程度的定量度量、详细设计经典案例分析
2
6
实现
12
4
0
8
6.1
编码、软件测试基础、单元测试、集成测试、确认测试
2
6.2
白盒测试技术、黑盒测试技术、调试、软件可靠性
2
数据库及接口设计
4
编码与测试
4
7
维护
2
2
0
0
7.1
软件维护的定义、软件维护的特点、软件维护过程、软件的可维护性、预防性维护、软件再工程过程
2
合计
40
32
0
8
四、教学内容及基本要求
第1部分 软件工程学概述
总学时(单位:学时):2 讲课:2 实验:0 上机:0
具体内容:
1) 软件危机
2) 软件工程
3) 软件生命周期
4) 软件过程
重 点:
软件危机产生的原因和解决的方法、软件生命周期。
难 点:
软件生命周期。
习 题:
软件危机及软件生命周期相关习题
第2部分 可行性研究
总学时(单位:学时):6 讲课:6 实验:0 上机:0
第2.1部分(讲课2学时)
具体内容:
1) 可行性研究的任务
2) 可行性研究的过程
第2.2部分(讲课2学时)
具体内容:
1) 系统流程图
2) 数据流图
3) 数据字典
第2.3部分(讲课2学时)
具体内容:
1) 成本/效益分析
2) 可行性研究案例分析
重 点:
系统流程图、数据流图。
难 点:
数据流图,数据字典。
习 题:
数据流图相关内容。
第3部分 需求分析
总学时(单位:学时):6 讲课:6 实验:0 上机:0
第3.1部分(讲课2学时)
具体内容:
1) 需求分析的任务
2) 与用户沟通获取需求的方法
第3.2部分(讲课2学时)
具体内容:
1) 分析建模与规格说明
2) 实体-联系图
3) 数据规范化
4) 状态转换图
第3.3部分(讲课2学时)
具体内容:
1) 其他图形工具
2) 验证软件需求
3) 需求分析案例分析
重 点:
实体-联系图、数据规范化。
难 点:
分析建模与规格说明。
习 题:
在本章习题中选择。
第4部分 总体设计
总学时(单位:学时):6 讲课:6 实验:0 上机:0
第4.1部分(讲课2学时)
具体内容:
1) 设计过程
2) 设计原理
第4.2部分(讲课2学时)
具体内容:
1) 启发规则
2) 描绘软件结构的图形工具
第4.3部分(讲课2学时)
具体内容:
1) 面向数据流的设计方法
2) 总体设计案例分析
重 点:
设计原理、面向数据流的设计方法。
难 点:
面向数据流的设计方法。
习 题:
在本章习题中选择。
第5部分 详细设计
总学时(单位:学时):6 讲课:6 实验:0 上机:0
第5.1部分(讲课2学时)
具体内容:
1) 结构程序设计
2) 人机界面设计
第5.2部分(讲课2学时)
具体内容:
1) 过程设计的工具
2) 面向数据结构的设计方法
第5.3部分(讲课2学时)
具体内容:
1) 程序复杂程度的定量度量
2) 详细设计经典案例分析
重 点:
过程设计的工具、面向数据结构的设计方法。
难 点:
面向数据结构的设计方法。
习 题:
在本章习题中选择。
第6部分 实现
总学时(单位:学时):12 讲课:4 实验:0 上机:8
第6.1 部分(讲课2学时)
具体内容:
1) 编码
2) 软件测试基础
3) 单元测试
4) 集成测试
5) 确认测试
第6.2 部分(讲课2学时)
具体内容:
1) 白盒测试技术
2) 黑盒测试技术
3) 调试
4) 软件可靠性
重 点:
单元测试、集成测试、确认测试
难 点:
集成测试、确认测试。
习 题:
在本章习题中选择。
实 验:
数据库设计 2学时
接口设计 2学时
编码 2学时
测试 2学时
第7部分 维护
总学时(单位:学时):2 讲课:2 实验:0 上机:0
具体内容:
1) 件维护的定义
2) 软件维护的特点
3) 软件维护过程
4) 软件的可维护性
5) 预防性维护
6) 软件再工程过程
重 点:
软件维护过程、软件再工程过程。
难 点:
软件维护过程
习 题:
在本章习题中选择。
编写人:谢玉萍
雷鸣
王宏栋
审核人:王宏栋
批准人:侯亚君
展开阅读全文