1、软件工程三要素 : 方法 工具 过程
2、软件工程中根本上来说是为了研究软件开发技术
3、软件工程的定义 : 应用于计算机软件的定义、开发维护的一整套方法、工具、文档、实践标准和工序
4、软件危机的表现 :
软件的生命周期:
(一)定义阶段:
1、问题的定义及规划
2、需求分析
(1)需求获取
(2)需求分析
(3)编写需求规格说明书
软件需求规格说明书的作用:
1)便于用户、开发人员进行理解和交流
2)反映用户问题结构,作为软件开发工作的基础和依据
3)作为确认测试和验收的依据
软件需求规格说明书内容:
1)软件的目标
2)软件的功能需求
3)性能需求
4)外部接口
5)属性
6)约束条件
(4)需求评审
(二)开发阶段:
包括 :
1、总体设计:
(1)系统设计:确定系统的具体实现方案
任务: 确定软件的总体结构、子系统和模块的划分,并确定模块间接口和评价模块划分质量,以及进行数据分析
(2)结构设计 :确定软件结构,其中包括软件功能的分解
任务:确定每一模块实现的定义,包括数据结构、算法和接口。
任务的第二种说法 :
1)数据结构及数据库的设计、编写概要设计文档、概要设计文档评审
2、详细设计
任务 : 为软件结构图中每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
3、编码和测试
软件设计阶段的任务 :
设计软件系统结构、数据库结构及数据库设计、编写概要设计文档、概要设计文档评审
其中,数据结构及数据库设计任务中,需要结合算法设计,确定算法所必需的逻辑数据结构及其操作。
软件设计阶段产生的文档 : 概要设计说明书、详细设计说明书、测试计划初稿
确认测试阶段的任务:
验证软件的功能和性能及其他图特性是否满足了需求规格说明中确定的各种需求,以及软件配置是否完全、正确。
(三)维护阶段:
数据流图(DFD)
作用:支持软件系统功能建模
软件设计方法 :
逐步求精、自顶向下、模块化
常见的过程设计工具 :
程序流程图、N-S图、PAD图和HIPO图,其中为了避免程序流程图在描述程序逻辑时的灵活性、提出了使用方框图(N-S图)来代替流程图
软件总体结构图:
用图形方式描述软件的整体结构,直观反映各个模块间关系
程序流程图(PFD):
一种传统的、应用广泛的软件过程设计表达工具,通常也称为程序框图,其箭头代表控制图。详细设计阶段使用的表达工具。
系统结构图:
软件设计准则:
黑白盒测试法:
(一)黑盒
一、测试方法:
1、等价类划分法
2、边界值分析法
3、错误推测法
4、因果图
主要用与软件确认测试
(二)白盒
一、测试方法
1、逻辑覆盖
2、基本路径测试
二、设计测试用例应根据软件产品内部工作工程
三、白箱测试法将程序看成是地址的集合
软件测试过程四个步骤:
单元测试、集成测试、验收测试(确认测试)、系统测试
注: 验收测试不等于确认测试
(一)单元测试
1、单元测试是对模块(程序单元)测试
2、目的:发现各模块内部可能存在的各种错误
3、依据详细设计说明书和源程序
4、针对模块的五个基本特性进行
(1)模块接口测试
(2)局部数据结构的测试
(3)重要执行路径的检查
(4)出错处理测试
(5)影响以上各点及其他相关点的边界条件测试
(二)集成测试
将模块组装成程序的两种方式
一、非增量方法组装(一次性组装方式)
方式 :将测试号的每一个软件单元一次性组装在一起再进行整体测试
二、增量方式组装
方式 :自顶向下、自底向上 两者混合使用称为混合增量方式
三、目的
发现接口有关的错误,发现概要设计的错误
(三)确认测试:
1、任务 : 验证软件的功能和性能及其他特性是否满足了需求规格中说明的确定的各种需求,以及软件配置是否完全、正确。
试图设计
三种设计次序:
1、自顶向下
2、自底向上
3、由内向外
软件测试用例
(一)组成:
1、测试的数据数据
2、预期的输出结果
软件测试的对象
包括:源程序、目标程序、数据及相关文档
软件调试技术
强行排错法、回溯法、原因排除法