1. 软件工程专业教学大纲
软件工程基础
课程编号:2009B015
课程名称(英文):Software Engineering Fundamentals
适用专业:软件工程
课程性质:必修
学 时:52学时,其中讲课:52学时
先修课程:C语言程序设计、数据结构
一、本课程的地位、作用与任务
软件工程是继高级语言程序设计后,直接用于提高学生软件开发能力的一门计算机基础课。通过本课程的学习培养学生能按照工程化、标准化和规范化的方法,开发出具有实用价值的软件系统,并提高学生编写相关技术文档的能力,及分析问题和解决问题的能力。
二、内容、学时及基本要求
序号 |
内 容 |
基本要求 |
学时 |
1 |
第一章 软件工程学概述 |
理解软件的特点;了解软件危机的含义和原因;理解软件工程的三段论;了解软件工程的基本原理;了解软件过程的模型;了解软件工程知识体系(SEWBOK)。 |
4 |
2 |
第二章 可行性研究 |
掌握可行性研究的任务与步骤;掌握系统流程图的用途和画法;掌握数据流图的符号和画法。 |
4 |
3 |
第三章 需求分析 |
熟练掌握需求分析的任务和过程;掌握数据字典的含义和定义数据的方法;熟练掌握数据流分析技术;理解验证软件需求的必要性,掌握验证软件需求的方法。 |
6 |
4 |
第四章 总体设计 |
了解总体设计的任务和必要性;理解总体设计应遵循的准则;掌握软件设计过程和原理;掌握软件设计的启发规则和相关的图形工具的应用; |
6 |
5 |
第五章 详细设计 |
理解结构程序设计技术的含义;熟练掌握程序流程图和盒图的画法;掌握面向数据结构的设计技术;了解程序复杂度的定量度量。 |
4 |
6 |
第六章 编码 |
理解编码的一些基本理念;了解编码标准和规范并能运用。 |
2 |
7 |
第七章 软件测试 |
掌握软件测试的目标、准则、方法、步骤;掌握单元测试的内容和过程;掌握集成测试的渐增式与非渐增式测试的区别;熟练掌握白盒测试技术和黑盒测试技术;了解调试策略和常用调试技术。 |
6 |
8 |
第八章 维护 |
理解软件的可维护性的定义和特点;
掌握软件维护过程;了解影响软件可维护性的因素。 |
2 |
9 |
第九章 面向对象基础 |
了解面向对象的基本概念;了解面向对象软件工程方法学的特点;掌握常用的UML图的画法。 |
4 |
10 |
第十章 面向对象分析 |
掌握面向对象分析的基本过程;掌握建立对象模型的基本方法;掌握建立动态模型的基本方法;掌握建立功能模型的方法。 |
4 |
11 |
第十一章 面向对象的设计 |
了解面向对象设计的准则;掌握面向对象设计的方法。 |
4 |
12 |
第十二章 面向对象的实现 |
了解面向对象程序设计风格;掌握面向对象测试策略;测试用例的技术。 |
2 |
13 |
第十三章 软件项目管理 |
了解软件管理的必要性;了解进度管理、成本管理、风险管理、沟通管理的主要技术;了解配置管理的基本概念;了解能力成熟度模型。 |
4 |
总 计 |
52 |
三、说明
本课程要向学生讲清概念、原理和技术方法,帮助他们建立正确的软件工程观点,学会典型的技术方法。本课程实践环节融入《软件工程课程实践》中。
2.计算机科学与技术专业教学大纲
软件工程基础(1)
课程编号: 2008X002
课程名称:Software Engineering Fundamentals
适用专业: 计算机科学与技术
课程性质: 必修(方向1,方向2)
学 时: 72学时,其中讲课:52学时,上机:20学时
先修课程:C语言程序设计、数据结构
一、本课程的地位、作用与任务
软件工程是继高级语言程序设计后,直接用于提高学生软件开发能力的一门计算机基础课。通过本课程的学习培养学生能按照工程化、标准化和规范化的方法,开发出具有实用价值的软件系统,并提高学生编写相关技术文档的能力,及分析问题和解决问题的能力。
二、内容、学时及基本要求
序号 |
内 容 |
基本要求 |
学时 |
1 |
第一章 软件工程学概述
1、软件危机的含义和原因;
2、消除软件危机的途径;
3、软件的特点;
4、软件工程诞生的必然性及软件工程的基本原理;
5、软件生命周期各阶段的基本任务。 |
了解:
软件危机的含义;快速原型法和面向对象方法学要点。
理解:
软件的特点;软件工程诞生的必然性及软件工程的基本原理。
掌握:
消除软件危机的途径;软件生命周期各阶段的基本任务。 |
6学时 |
2 |
第二章 可行性研究
1、可行性研究的任务与步骤;
2、系统流程图的用途和画法;
3、数据流图的符号使用和画法。 |
掌握:
系统流程图的用途和画法;数据流图的符号使用和画法。 |
4学时 |
3 |
第三章 需求分析
1、需求分析的任务和过程;
2、数据流图的使用;
3、建立模型技术、相关图形工具的应用;
4、验证软件需求的方法。 |
理解:
验证软件需求的方法。
掌握:
数据流图的使用;建立模型技术、相关图形工具的应用。 |
5学时 |
4 |
第四章 形式化说明技术
1、形式化方法的准则;
2、形式化技术的应用。 |
了解:
形式化方法的准则。 |
1学时 |
5 |
第五章 总体设计
1、总体设计的任务和必要性;
2、总体设计应遵循的准则;
3、软件设计过程和原理;
4、软件设计的启发规则和相关的图形工具的应用。 |
了解:
总体设计的任务和必要性。
理解:
总体设计应遵循的准则。
掌握:
软件设计过程和原理;软件设计的启发规则和相关的图形工具的应用。 |
6学时 |
6 |
第六章 详细设计
1、结构程序设计技术的含义;
2、程序流程图和盒图的画法;
3、面向数据结构的设计技术;
4、程序复杂度的定量度量。 |
理解:
结构程序设计技术的含义。
掌握:
图形工具的使用;程序复杂度的定量度量。 |
4学时 |
7 |
第七章 实现
1、软件开发程序语言的重要性;
2、编码风格的重要性;
3、软件测试的目标、准则、方法、步骤;
4、单元测试的内容和过程;
5、集成测试的渐增式与非渐增式测试的区别;
6、白盒测试和黑盒测试技术;
7、调试策略和常用调试技术;
8、软件估算平均无故障时间。 |
了解:
选取适用于软件开发项目程序语言的重要性;编码风格的重要性。
掌握:
软件测试的目标、准则、方法、步骤;软件估算平均无故障时间。 |
8学时 |
8 |
第八章 维护
1、软件可维护性的定义和特点;
2、软件维护过程;
3、影响软件可维护性的因素。 |
理解:
软件可维护性的定义和特点。
掌握:
软件维护过程。 |
2学时 |
9 |
第九章 面向对象方法学引论
1、面向对象的基本概念;
2、对象模型、动态模型、功能模型的建模技术; |
了解:
面向对象的基本概念。
掌握:
对象模型、动态模型、功能模型的建模技术。 |
4学时 |
10 |
第十章 面向对象分析
1、面向对象分析的基本过程;
2、建立对象模型的基本方法;
3、建立动态模型的基本方法;
4、建立功能模型的方法。 |
掌握:
面向对象分析的基本过程;建摸方法。
|
4学时 |
11 |
第十一章 面向对象设计
1、面向对象设计的准则;
2、掌握面向对象设计的方法。 |
掌握:
面向对象设计的方法。 |
3学时 |
12 |
第十二章 面向对象实现
1、面向对象程序设计风格;
2、面向对象测试策略,测试用例的技术。 |
掌握:
面向对象测试策略,测试用例的技术。 |
3学时 |
13 |
第十三章 软件项目管理
1、软件管理的必要性;
2、软件成本估算和管理技术;
3、能力成熟度模型。 |
掌握:
软件成本估算和管理技术。 |
2学时 |
总 计 |
52学时 |
三、说明
本课程除要向学生讲清概念、原理和技术方法,帮助他们建立正确的软件工程观点,学会典型的技术方法外。还应加强课程设计和上机实习等实践环节,增强学生理论联系实际能力的培养,熟悉工程化的软件开发技术和文档编制。本课程是一门实践性很强的课程,为保证学习效果,加强教学的实践性环节是非常必要的。
上机实践的内容:
题目:附录B《一个汉字行编辑程序的设计》(20学时)
要求:
1、设计采用 VC++编写程序;
2、编写分析、设计的技术文档;
3、进行单元测试和集成测试,编写测试方案,实测结果及调试的文档。
软件工程基础(2)
课程编号:2008X025
适用专业:计算机科学与技术
课程性质:专业课(方向3)
学 时:讲课40 实验8
先修课程:程序语言、数据结构、数据库
一、本课程的地位、作用与任务
软件工程是指导计算机软件开发和维护的一门工程学科,是从事计算机和软件专业学生的必修课。其主要任务是采用工程的概念、原理、技术和方法和科学的管理方法从事软件开发和维护。
本课程要求学生具有一定的计算机硬件知识;掌握一种以上的程序语言和数据库管理系统的应用知识;熟悉程序设计和数据结构;对各种应用系统和信息管理系统有一定的了解。
本课程可以作为计算机专业学生毕业设计的前修课。
二、内容、学时及基本要求
- 内容和基本要求
(1)软件工程学概述
了解软件危机产生的原因及其解决途径,掌握软件工程的概念、基本原理,了解软件的生命周期和软件过程。
(2)可行性研究
了解可行性研究的任务,掌握可行性研究的过程,熟悉系统流程图、数据流图、数据字典的作用和绘制方法,了解成本/效益分析的方法。
(3)需求分析
了解需求分析的任务,了解与用户沟通获取需求的方法,了解书写软件需求规格说明的要求,熟悉实体——联系图、状态转换图、层次方框图、Warnier图和IPO图的作用和绘制方法,了解验证软件需求的方法。
(4)总体设计
了解总体设计阶段的任务,掌握总体设计的原理和规则,熟练使用层次图、HIPO图进行软件结构的描绘,熟练掌握变换分析和事务分析两种面向数据流的设计方法。
(5)详细设计
了解结构化程序设计的思想,熟练运用过程设计工具(程序流程图、盒图、PAD图、判定表、判定树)进行详细设计,了解PDL语言,掌握程序复杂程度的定量度量方法:McCabe和Halstead方法。
(6)实现
了解编码风格对于软件过程的重要意义,掌握良好的编码风格(可以参考Java编码规范);了解软件测试的目的、掌握白盒测试和黑盒测试两种单元测试技术,掌握自顶向下集成和自底向上集成两种集成测试策略,了解软件测试的总体规划;了解调试的意义,过程和途径;了解软件可靠性的评估指标。
(7)维护
理解软件维护的定义、分类和特点,了解软件维护的过程和软件可维护性的决定因素,了解软件的再工程过程。
(8)面向对象方法学引论
理解面向对象的基本概念、掌握对象模型、动态模型和功能模型的作用、符号和他们之间的关系。
(9)面向对象分析
理解面向对象分析的基本过程,掌握建立对象模型、动态模型和功能模型的步骤和方法。
(10)面向对象设计
掌握面向对象设计的原理和过程。
(11)面向对象实现
了解程序设计风格、测试策略和设计测试用例的方法。
(12)软件项目管理
了解工作量估算、进度计划、人员组织、质量保证和软件配置管理的过程和方法。
2.学时
序号 |
教学内容 |
学时分配 |
1 |
软件工程学概述 |
2 |
2 |
可行性研究 |
4 |
3 |
需求分析 |
4 |
4 |
总体设计 |
4 |
5 |
详细设计 |
4 |
6 |
实现 |
6 |
7 |
维护 |
2 |
8 |
面向对象方法学引论 |
2 |
9 |
面向对象分析 |
4 |
10 |
面向对象设计 |
3 |
11 |
面向对象实现 |
3 |
12 |
软件项目管理 |
2 |
合计 |
|
40 |
三、实验内容
序号 |
教学内容 |
学时分配 |
1 |
利用VISIO进行面向数据流的设计 |
2 |
2 |
利用VISIO进行数据库设计 |
2 |
3 |
利用ROSE进行面向对象设计 |
2 |
4 |
利用ROSE进行代码自动生成 |
2 |
合计 |
|
8 |
3.信息与计算科学专业教学大纲
软件工程基础I
课程编号: 2018B014
课程名称:Software Engineering Fundamentals
适用专业: 信息与计算科学
课程性质: 必修
学 时: 72学时,其中讲课:52学时,上机:20学时
先修课程:C语言程序设计、数据结构
一、本课程的地位、作用与任务
软件工程是继高级语言程序设计后,直接用于提高学生软件开发能力的一门计算机基础课。通过本课程的学习培养学生能按照工程化、标准化和规范化的方法,开发出具有实用价值的软件系统,并提高学生编写相关技术文档的能力,及分析问题和解决问题的能力。
二、内容、学时及基本要求
序号 |
内 容 |
基本要求 |
学时 |
1 |
第一章 软件工程学概述
1、软件危机的含义和原因;
2、消除软件危机的途径;
3、软件的特点;
4、软件工程诞生的必然性及软件工程的基本原理;
5、软件生命周期各阶段的基本任务。 |
了解:
软件危机的含义;快速原型法和面向对象方法学要点。
理解:
软件的特点;软件工程诞生的必然性及软件工程的基本原理。
掌握:
消除软件危机的途径;软件生命周期各阶段的基本任务。 |
6 |
2 |
第二章 可行性研究
1、可行性研究的任务与步骤;
2、系统流程图的用途和画法;
3、数据流图的符号使用和画法。 |
掌握:
系统流程图的用途和画法;数据流图的符号使用和画法。 |
4 |
3 |
第三章 需求分析
1、需求分析的任务和过程;
2、数据流图的使用;
3、建立模型技术、相关图形工具的应用;
4、验证软件需求的方法。 |
理解:
验证软件需求的方法。
掌握:
数据流图的使用;建立模型技术、相关图形工具的应用。 |
5 |
4 |
第四章 形式化说明技术
1、形式化方法的准则;
2、形式化技术的应用。 |
了解:
形式化方法的准则。 |
1 |
5 |
第五章 总体设计
1、总体设计的任务和必要性;
2、总体设计应遵循的准则;
3、软件设计过程和原理;
4、软件设计的启发规则和相关的图形工具的应用。 |
了解:
总体设计的任务和必要性。
理解:
总体设计应遵循的准则。
掌握:
软件设计过程和原理;软件设计的启发规则和相关的图形工具的应用。 |
6 |
6 |
第六章 详细设计
1、结构程序设计技术的含义;
2、程序流程图和盒图的画法;
3、面向数据结构的设计技术;
4、程序复杂度的定量度量。 |
理解:
结构程序设计技术的含义。
掌握:
图形工具的使用;程序复杂度的定量度量。 |
4 |
7 |
第七章 实现
1、软件开发程序语言的重要性;
2、编码风格的重要性;
3、软件测试的目标、准则、方法、步骤;
4、单元测试的内容和过程;
5、集成测试的渐增式与非渐增式测试的区别;
6、白盒测试和黑盒测试技术;
7、调试策略和常用调试技术;
8、软件估算平均无故障时间。 |
了解:
选取适用于软件开发项目程序语言的重要性;编码风格的重要性。
掌握:
软件测试的目标、准则、方法、步骤;软件估算平均无故障时间。 |
8 |
8 |
第八章 维护
1、软件可维护性的定义和特点;
2、软件维护过程;
3、影响软件可维护性的因素。 |
理解:
软件可维护性的定义和特点。
掌握:
软件维护过程。 |
2 |
9 |
第九章 面向对象方法学引论
1、面向对象的基本概念;
2、对象模型、动态模型、功能模型的建模技术; |
了解:
面向对象的基本概念。
掌握:
对象模型、动态模型、功能模型的建模技术。 |
4 |
10 |
第十章 面向对象分析
1、面向对象分析的基本过程;
2、建立对象模型的基本方法;
3、建立动态模型的基本方法;
4、建立功能模型的方法。 |
掌握:
面向对象分析的基本过程;建摸方法。 |
4 |
11 |
第十一章 面向对象设计
1、面向对象设计的准则;
2、掌握面向对象设计的方法。 |
掌握:
面向对象设计的方法。 |
3 |
12 |
第十二章 面向对象实现
1、面向对象程序设计风格;
2、面向对象测试策略,测试用例的技术。 |
掌握:
面向对象测试策略,测试用例的技术。 |
3 |
13 |
第十三章 软件项目管理
1、软件管理的必要性;
2、软件成本估算和管理技术;
3、能力成熟度模型。 |
掌握:
软件成本估算和管理技术。 |
2 |
总计 |
52 |
三、说明
本课程除要向学生讲清概念、原理和技术方法,帮助他们建立正确的软件工程观点,学会典型的技术方法外。还应加强课程设计和上机实习等实践环节,增强学生理论联系实际能力的培养,熟悉工程化的软件开发技术和文档编制。本课程是一门实践性很强的课程,为保证学习效果,加强教学的实践性环节是非常必要的。
上机实践的内容:
题目:附录B《一个汉字行编辑程序的设计》(20学时)
要求:
1、设计采用 VC++编写程序;
2、编写分析、设计的技术文档;
3、进行单元测试和集成测试,编写测试方案,实测结果及调试的文档。
|