软件工程教学大纲详解.docx
《软件工程教学大纲详解.docx》由会员分享,可在线阅读,更多相关《软件工程教学大纲详解.docx(17页珍藏版)》请在冰豆网上搜索。
软件工程教学大纲详解
一、说明
1、本课程的性质和内容
本课程属于计算机应用专业课程。
其内容包括软件计划、软件设计方法、面向对象、软件开发模型,以及软件的编码、测试、维护等内容。
2、本课程的任务和基本要求
(1)本课程的任务是通过本课程的学习,使学生了解计算机软、硬件发展的历史以及现代软件开发过程的特点,了解软件工程的研究范围和软件开发环境,熟悉软件工程的基本原理,基本概念,软件分析和设计方法,软件测试与维护的基本方法。
本课程的重点将放在软件开发过程的流程,软件分析方法、软件测试技术、软件工程标准化和软件文档等方面。
(2)通过本课程的教学,应使学生达到下列基本要求:
(2.1)理论方面
1)计算机软、硬件发展的历史及重大事件回顾
2)软件工程背景与软件危机,软件生存周期
3)软件过程的各个阶段
4)软件文档规范化
(2.2)实践技能方面
1)能使用项目管理技术进行系统策划、可行性研究
2)能用快速原型方法进行需求分析
3)能用结构化思想进行软件系统的设计
4)能根据实际情况设计测试用例,提交测试报告
5)能编写符合预定标准的规范化文档。
6)能用系统化和规范化的方法维护软件。
7)能制作进度计划并按进度计划执行开发任务。
(2.3)素质方面
由于软件开发是知识密集型的工作,要求消除个人英雄主义,培养团队意识,团结协作、服从大局,要有质量意识和时间意识,重视开发和管理的规范化和标准化。
3、先修课程要求
高级语言程序设计、数据结构、数据库系统概论、操作系统原理
4、教学中应注意的几个问题
讲授与学生选择实际软件项目按工程化方法实践相结合,在弄清软件开发过程、方法及相关技术基础上,通过具体软件项目的实践,达到工程化软件开发过程的实际训练与培养。
二、学时分配表
章节名称
总课时
讲课
习题课
第一章软件工程绪论
4
1.1引言
0
1.2软件与软件危机
1
1.3软件工程的概念
1
1.4软件生存周期及软件开发模型
2
第二章:
可行性研究与需求分析
6
2.1可行性研究
1
2.2需求分析
1
1
2.3结构化分析方法
2
2.4需求分析评审
1
2.5需求分析实例
1
第三章:
软件设计
7
3.1软件设计的任务
1
3.2软件设计的基本概念
1
3.3结构化设计方法
2
3.4设计优化
1
3.5详细设计
2
第四章:
面向对象技术
8
4.1面向对象的概念
2
4.2面向对象的开发过程
1
4.3面向对象分析
1
2
4.4面向对象的设计与实现
1
4.5Coad与Yourdon方法
1
4.6软件复用技术
2
第五章:
统一建模语言UML
8
5.1UML的基本概念
1
5.2UML语言概述
2
5.3静态建模
2
1
5.4动态建模
2
5.5物理架构建模
1
第六章:
编码和编程语言
3
6.1编码的目的
1
6.2编码的风格
1
6.3编码语言
1
第七章:
软件测试
10
7.1软件测试的基本概念
1
7.2黑盒测试
2
7.3白盒测试
2
7.4软件测试的步骤与过程
2
7.5软件的调试及排错
1
2
7.6面向对象的软件测试
2
第八章:
软件维护
7
8.1软件维护概述
2
8.2软件维护的过程
2
8.3软件的可维护性
1
8.4提高可维护性的途径
2
第九章:
软件工程管理与质量保证
6
9.1软件度量技术
2
9.2软件估算
2
9.3质量保证
0
9.4软件可靠性
1
9.5软件配置管理
1
第十章:
软件工程标准化
7
10.1软件工程标准化
2
10.2软件质量认证
2
10.3软件文档
2
10.4CMM模型
1
第十一章:
软件工程环境
3
11.1什么是软件工程环境
1
11.2CASE环境
2
第十二章:
嵌入式系统软件技术
7
12.1嵌入式系统的基础知识
1
12.2嵌入式系统开发过程
2
12.3嵌入式软件的测试
2
12.4嵌入式系统的调试
2
合计
76
机动
4
总课时
80
三、课程内容
第1章软件工程概论
教学要求:
1.掌握软件的概念及特点。
2.了解软件危机的产生。
3.掌握软件工程的概念及其研究内容。
4.掌握软件生存周期的定义及其模型。
教学内容:
1.1引言(了解)
1.2软件与软件危机(掌握)
1.2.1软件的定义
1.2.2软件的特点
1.2.3软件的分类
1.2.4软件危机
1.3软件工程的概念(掌握)
1.3.1软件工程的产生及发展
1.3.2软件工程的定义及目标
1.3.3软件工程学的范畴
1.4软件生存周期及软件开发模型(掌握)
1.4.1软件生存周期
1.4.2软件生存周期模型
1.4.3瀑布模型(Waterfallmodel)
1.4.4演化模型(evolutionalmodel)
1.4.5螺旋模型(spiralmodel)
1.4.6智能模型(intelligencemodel)
教学建议:
建议采用以教师为主导,以学生为中心的教学手段,在课堂练习时充分发挥学生的主观能动性,促使其学习中发挥想象力和创造性,通过课堂练习对所学的知识巩固加强、综合练习、融会贯通。
第二章可行性研究与需求分析
教学要求:
1、了解可行性研究的定义、任务、步骤及工具。
2、掌握软件需求分析的任务与目标及Warnier图的使用,熟悉需求规格说明书的。
基本结构
3、了解软件需求分析的过程
4、掌握结构化分析方法和快速原型方法
5、掌握数据流图与数据字典的基本元素与应用
教学内容:
2.1可行性研究(了解)
2.2需求分析(掌握)
2.2.1需求分析的目标和任务
2.2.2软件需求的获取
2.2.3需求分析的过程
2.2.4快速原型方法
2.3结构化分析方法(掌握)
2.3.1结构化分析模型
2.3.2数据流图与数据字典
2.3.3Warnier图
2.4需求分析评审(了解)
2.5需求分析实例(掌握)
2.5.1画分层数据流图
2.5.2确定数据定义与加工策略
2.5.3实例的需求分析评审
教学建议:
数据流图比较难理解,但是在后期的学习中非常关键,需要多加重视。
第三章软件设计
教学要求:
1、了解软件设计的任务。
2、掌握模块划分的评价准则—模块独立性的判别。
3、掌握结构化设计方法。
4、掌握一些常用的详细设计工具。
教学内容:
3.1软件设计的任务(了解)
3.2软件设计的基本概念(掌握)
3.2.1软件设计的概念
3.2.2模块化与模块独立性
3.2.3抽象与信息隐蔽
3.2.4软件设计原则
3.3结构化设计方法(掌握)
3.3.1系统结构图
3.3.2变换分析
3.3.3事务分析
3.4设计优化(了解)
3.5详细设计(掌握)
3.5.1详细设计概述
3.5.2程序流程图
3.5.3N-S图(盒图)
3.5.4PAD图
3.5.5判定表与判定树
3.5.6PDL
教学建议:
可以通过一个实例来说明结构化设计方法的步骤及将数据流图转化为软件结构图的具体方法。
第四章面向对象技术
教学要求:
1、掌握面向对象的基本概念和特征。
2、掌握面向对象的分析与设计方法。
3、掌握面向对象的开发过程。
4、掌握软件重用技术的基本概念及分类。
教学内容:
4.1面向对象的概念(掌握)
4.2面向对象的开发过程(掌握)
4.3面向对象分析(掌握)
4.3.1面向对象分析
4.3.2论域分析
4.3.3应用分析
4.3.4对象模型技术
4.4面向对象的设计与实现(掌握)
4.4.1高层设计
4.4.2类的设计
4.4.3系统的实现
4.5Coad与Yourdon方法(掌握)
4.5.1面向对象分析(OOA)
4.5.2面向对象设计(OOD)
4.5.3Booch的方法
4.6软件复用技术(掌握)
4.6.1软件复用的基本概念
4.6.2软件复用技术分类
4.6.3论域工程
4.6.4基于构件的软件开发
4.6.5面向对象方法与软件复用
教学建议:
1、面向对象技术和软件复用技术互相支持,互相促进,可以起到相辅相成的作用。
2、实现软件复用的主要因素是软件构件开发。
它是基于面向对象发展起来的,是未来发展的一个方向。
第五章统一建模语言UML
教学要求:
1、掌握UML的基本概念、通用机制、扩展机制和规则。
2、掌握静态建模和动态建模。
3、了解物理架和基于UML的统一建模过程。
教学内容:
5.1UML的基本概念(掌握)
5.1.1UML语言的产生
5.1.2UML的定义
5.1.3UML的目标
5.1.4UML语言的应用
5.2UML语言概述(掌握)
5.2.1视图
5.2.2图
5.2.3UML的模型元素及表示方法
5.2.4UML的通用机制和扩展机制
5.2.5UML的规则
5.3静态建模(掌握)
5.3.1用例模型
5.3.2类和对象模型
5.3.3类之间的关系
5.4动态建模(掌握)
1、消息
2、状态图和时序图
3、协作图和活动图
5.5物理架构建模(了解)
教学建议:
1、UML是一种可视化的、用于绘制软件蓝图的标准建模语言。
可以用UML对软件系统的各种制品(包括程序、文档等)进行描述。
2、请注意标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
第六章编码和编程语言
教学要求:
1、掌握编码的目的
2、掌握编码的风格
3、掌握编码语言的发展
4、掌握编码语言的选择
教学内容:
6.1编码的目的(掌握)
6.1编码的目的
6.2编码的风格
6.3编码语言
6.2编码的风格(掌握)
6.2.1结构化程序设计
6.2.2编码风格
6.3编码语言(掌握)
6.3.1编码语言的发展
6.3.2常用的编码语言
6.3.3编码语言的选择
教学建议:
1、编码的目的是把详细设计的结果翻译成用选定的语言书写的源程序。
2、不同语言具有不同特点,在选择编程语言时,程序员不仅要考虑到程序设计语言的特点,同时,还应考虑到系统的应用领域,用户的要求等一系列实际因素。
第七章软件测试
教学要求:
1、掌握软件测试的目的和原则
2、掌握软件测试的过程和策略
3、掌握软件测试用例设计的方法
4、掌握程序调试的概念和方法
教学内容:
7.1软件测试的基本概念(了解)
7.2黑盒测试(掌握)
7.2.1等价类划分法
7.2.2边界值分析法
7.2.3错误推测法
7.2.4因果图法
7.2.5功能图
7.3白盒测试(掌握)
7.3.1逻辑覆盖
7.3.2基本路径测试
7.4软件测试的步骤与过程(掌握)
7.4.1单元测试
7.4.2集成测试
7.4.3确认测试
7.4.4系统测试
7.4.5人工测试
7.4.6软件测试过程
7.5软件的调试及排错(掌握)
7.5.1错误的诊断及排除
7.5.2常用的几种调试方法
7.6面向对象的软件测试(掌握)
7.6.1面向对象的测试模型
7.6.2面向对象软件的测试策略
7.6.3面向对象软件测试用例设计
教学建议:
1、先复习第四章内容再对本章内容进行学习效果最佳。
2、软件的测试过程一般按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。
第八章软件维护
教学要求:
1、掌握软件维护的概念及类型
2、掌握软件维护的过程
3、掌握软件维护的可维护性
4、了解提高软件了维护性的途径
教学内容:
8.1软件维护概述(掌握)
8.1.1软件维护的基本概念
8.1.2软件维护的种类
8.1.3影响软件维护工作量的因素
8.1.4软件维护的策略
8.2软件维护的过程(掌握)
8.2.1维护机构
8.2.2软件维护申请报告
8.2.3软件维护工作流程
8.2.4软件维护记录及评价
8.2.5修改程序的副作用
8.3软件的可维护性(掌握)
8.3.1可维护性的定义
8.3.2可维护性的度量
8.4提高可维护性的途径(了解)
教学建议:
1、不同的维护应当适用不同的策略。
软件的维护应当遵循一系列的维护流程。
2、提高软件的可维护性,应当首先建立明确的软件质量目标和优先级,利用模块花、结构化等提高软件质量的技术和工具进行软件设计,要进行明确的质量保证审查,选择可维护的高级语言来进行程序的编写。
第九章软件工程管理与质量保证
教学要求:
1、掌握软件工程管理的目的和内容
2、掌握软件估计及成本估算方法
3、掌握软件质量的概念及度量与评价方法
4、了解软件质量保证实施的有关内容
教学内容:
9.1软件度量技术(掌握)
9.1.1代码行度量技术
9.1.2功能点度量
9.1.3COCOMO模型
9.2软件估算(掌握)
9.2.1资源估算
9.2.2成本估算
9.2.3人员的分配与组织
9.2.4项目进度安排
9.3质量保证(了解)
9.4软件可靠性(掌握)
9.4.1软件可靠性的定义及主要指标
9.4.2可靠性分析
9.5软件配置管理(了解)
教学建议:
1、质量是技术与管理结果的最终体现。
本章需从运行、维护、与软件移植等三个方面介绍软件的质量属性,强调质量保证是贯穿于整个软件生存周期的重要活动。
2、无论是分析、设计、编码与测试,以及配置控制中必须遵守软件的开发规范。
第十章软件工程标准化
教学要求:
1、掌握软件工程标准的定义与层次
2、了解ISO9000系列标准及在质量认证中的实施
3、掌握软件文档的概念、作用与分类
4、了解CMM模型的登记划分与评价标准
教学内容:
10.1软件工程标准化(掌握)
10.1.1软件工程标准化的概念
10.1.2软件工程标准化的意义
10.2软件质量认证(了解)
10.3软件文档(掌握)
10.3.1软件文档的作用
10.3.2软件文档的分类
10.3.3文档的管理与维护
10.3.4常用的软件文档
10.4CMM模型(了解)
教学建议:
1、讲解时注意分析软件工程标准的分类和层次。
2、注意文档编制的质量要求与文档的管理与维护要求。
第十一章软件工程环境
教学要求:
1、掌握软件工程环境的概念及分类
2、了解软件工程环境的构成及特性
3、掌握软件开发工具的概念及分类
4、掌握CASE环境的组成与结构
教学内容:
11.1什么是软件工程环境(掌握)
11.1.1软件开发环境的特点
11.1.2软件开发环境的模型
11.2CASE环境(掌握)
11.2.1CASE环境
11.2.2CASE环境的组成与结构
教学建议:
1、环境在现代软件开发中占有重要地位。
软件开发活动中各阶段有各种支持工具,这些工具是环境的最重要组成部分。
所以这章内容的重点放在CASE环境上。
2、由硬件平台和操作系统组成的体系结构,是CASE环境的基础(地层)。
第十二章嵌入式系统软件技术
教学要求:
1、了解嵌入式系统的基本知识与应用
2、掌握嵌入式的基本开发过程
3、掌握嵌入式系统的测试与调试方法
教学内容:
12.1嵌入式系统的基础知识(了解)
12.2嵌入式系统开发过程(掌握)
12.2.1嵌入式软件的开发特点
12.2.2嵌入式软件的开发过程
12.3嵌入式软件的测试(掌握)
12.3.1嵌入式软件的测试方法
12.3.2嵌入式软件的测试策略
12.3.3嵌入式软件的测试工具
12.4嵌入式系统的调试(掌握)
12.4.1嵌入式系统的调试方式
12.4.2嵌入式系统的调试方法
教学建议:
1、嵌入式系统在日常生活中应用很广泛。
可用一些生活中用到嵌入式系统的例子来讲解。
2、注意嵌入式系统有软件调试和硬件调试两种调试方法。
说明:
1、本大纲21世纪高等院校规划教材《软件工程——原理、方法与应用》制定。
2、各知识点分“重点”、“掌握”、“了解”三个层次,教学难点已标出。
教学时应根据不同的要求选择合适的教学方法,确保教学任务及时完成。
大纲修订人:
郭翠
审核人:
修订时间:
2012年5月6日