首页 | 课程特色 | 教学大纲 | 电子课件 | 参考书目 | 相关资源

  教学大纲 | 实验大纲 | 实验指导
教学大纲
 

 

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. 内容和基本要求

(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、进行单元测试和集成测试,编写测试方案,实测结果及调试的文档。