89
软 软 软 软 软 软 软 软 软软软软软软软软 2005.6

软 件 工 程 推 进 方 法

  • Upload
    ulani

  • View
    115

  • Download
    0

Embed Size (px)

DESCRIPTION

软 件 工 程 推 进 方 法. 李 超. 成都信息工程学院. 2005.6. 第四章 软件开发的标准过程. 标准软件开发过程 软件开发过程:把用户的要求转变成软件产品的过程。即把需求转换为设计,再把设计转变为代码,最后进行软件测试和交付使用。. 第四章 软件开发的标准过程. 标准软件开发过程. 必须建立规范的开发工程. 用户要求的多元化,高度化. 当前:软件开发面临的主要问题有. 用户需求的竞争和冲突急剧. 提高系统开发能力. 系统规模大. 保证系统开发质量. 系统复杂程度高. 系统维护量大. 第四章 软件开发的标准过程. 标准软件开发过程 - PowerPoint PPT Presentation

Citation preview

Page 1: 软 件 工 程 推 进 方 法

软 件 工 程 推 进 方 法

李 超

成都信息工程学院 2005.6

Page 2: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

标准软件开发过程

软件开发过程:把用户的要求转变成软件产品的过程。即把需求转换为设计,再把设计转变为代码,最后进行软件测试和交付使用。

Page 3: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

标准软件开发过程

当前:软件开发面临的主要问题有

用户要求的多元化,高度化

用户需求的竞争和冲突急剧

系统规模大

系统复杂程度高

系统维护量大

必须建立规范的开发工程

提高系统开发能力

保证系统开发质量

Page 4: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

标准软件开发过程标准软件开发过程 标准软件开发过程通常指一个软件企业内部

制订的、供所有软件项目或软件产品开发使用的、组织级的软件过程规范。主要用于指导项目组以有序、规范的方式开发高质量的软件产品。

按照工程化的思想,系统开发的过程可归纳为:系统分析、系统计划、系统设计、程序设计、程序编制、测试、安装、运行评价等 8 个大的过程。其相互关系:

Page 5: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

标准软件开发过程

软件开发过程包括用于软件开发的方法、工具、活动及具体实践。软件项目经理利用它可以系统地、有效地组织开发工作;软件工程师通过它可以更好地掌握开发工作步骤及具体工作方法,实现项目组成员间的协同工作。

PJ

A 系统分析和系统计划Analysis

D 程序设计 Detail-design

C 系统设计 Component-design

P 程序编制Programming

T 测试 Test

O 运行评价 Operation

I 移植安装 Installation

SM

软件开发工程体系图

Page 6: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

目前软件行业通常采用“迭代化开发过程”完成企业级应用软件

的开发IBM

Rational

Page 7: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 系统分析概貌

策定新系统构想现行业

务系统调查 /分析

需求分析

命题

现行业务系统

制约

用户

系统分析的概念图

现行业务

系统模型

建立新

系统方案

新系统

模型

评价新

系统方案

新系统

构想

Page 8: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 重视需求分析

把握现行的事务作业和现行系统的构造、内容、特征是至关重要的。

客户对现行业务处理系统计算机化或者是对已计算机化的现行系统作改善的期待、要求是我们构造新系统的源泉。

Page 9: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 重视需求分析

客户单位的领导,管理者和业务人员各自的立场不同,对系统的要求也各不相同。因此,我们在作需求分析时,要充分听取、考虑各方的意见、要求,探讨尽可能实现客户各个方面要求的方案。

Page 10: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 重视需求分析

在考虑新系统的方案时,虽然客户期望能够将全部事务管理实现计算机化,但必须从重要性、效果、成本、影响范围等方面全盘考虑,从最优先的事件开始着手,是计算机化成功的保证。

可以建议分成各个阶段进行一次开发、二次开发,逐步实现计算机化是成功地构想新的系统的关键。

Page 11: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 结构化分析的思考方法

结构化分析方法建立系统模型的思考方法 :

事件 / 处理观点数据流观点

功 能 层次观点

业务处理流程图

数据流 系 统

功能层次图

系统模型建立的思考方法

Page 12: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 事件 / 处理分析方法

事件 谁作(时间)

结果 N 次作业

Page 13: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 数据流分析方法

输入 结果处理

Page 14: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 功能层次分析方法

以业务处理的体系为出发点,采取自顶向下,逐步分解和抽象,找到系统的功能层次。

Page 15: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程

定货系统

定货信息处理

填写定货单

检查定货单

定货处理

检查定货条件

确认库存量

顾客交涉

功能层次分析方法示意图(定货系统实例)

eg.

Page 16: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 以数据为中心的系统分析方法

该方法是以数据为中心,找到系统的标准数据,并对标准数据进行维护处理。此种方法就是在以处理流程为主的分析方法中加入数据分析的方法。

Page 17: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 现行系

统模型新系统

构想方案新系统

模型

现行系统调查 / 分析

数据分析

标准数据

信息要求分析

现行系统

新系统设计开发

新系统

数据标准化过程

数据中心分析方法

Page 18: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 面向对象分析的思考方法

面向对象的开发方法是与传统的面向过程的开发方法相对而提出的。

它比面向过程的方法更能够容易地对应业务和操作的变化,更容易扩展系统的功能。

Page 19: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 面向对象分析的思考方法

它不是以对信息、数据的功能处理为中心,而是以处理的对象(包含有固定的信息、数据)为中心。

在进行系统分析时,不是以用什么方法去整理为重点,而是以整理什么东西为重点,要点是记录下事件的原样。

Page 20: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 面向对象分析的思考方法

分析的结果是:静态的对象关系图。

描述对象间的关系和构造。

动态的对象关系图。 描述对象的事件间的实行顺序和动态的转移关系。

Page 21: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 功能关系图 做什么:

。对象,类。动态关系

。功能

怎样做:。系统设计。模块设计

OOPA

面向对象分析( OOA)

面向对象设计( OOD)

面向对象编程( OOP)

OOAA

OODA

面向对象的开发方法

Page 22: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程系统分析作业过程

系统分析的过程 系统分析的内容包含了三个部分 :

现行系统的调查 需求分析、 策定新系统构想

Page 23: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程现行系统的调查分析

现行系统的调查分析现行系统的调查分析

整理业务清单

绘制业务流程图

描述业务内容

作出业务数据流程

构造业务系统功能关系

作出现行系统调查报告

Page 24: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程

需求分析

需求分析

客户新要求的调查

新要求的整理

作出要求分类表

绘制要求关联图

Page 25: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程新系统的构想

新系统的构想

新系统功能要求定义

新系统功能关联图

新系统功能层次图

新系统数据流程图

新系统处理流程图

各种方案评价、 比较

Page 26: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程系统分析的结果

系统分析作业完成后将产生各种报告书。用户需求分析报告书

用户需求分析报告书的内容主要含有: 对用户需求的分析说明。

系统分析报告书系统分析报告书的内容主要包含有:

Page 27: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

系统构成系统软硬件、支持环境的构成图及 说明,系统运行环境

的要求;系统功能系统的功能模块划分,系统的各个功能模块说明;系统数据分析系统输入数据的分析说明,系统输出数据的分析说明。

Page 28: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程系统分析作业过程

编制系统计划书

系统计划是在需求分析基础上对所开发的对象系统进行开发前的计划,特别是大、中型软件开发系统,编制好的系统计划书对加强开发项目管理,确保项目获得成功具有非常重要的意义。

Page 29: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程 系统计划的作业内容

确认所开发的基本的系统构想;对类似系统进行调查、以确定业务流程;确定计算机处理的范围、内容、规模;计算机系统软件、硬件构成,处理能力,测

试方案,运用方法的讨 论;开发计划的确定(安装方法、作业规模、费

用、开发体制、日程);成本计算、成本 / 效果比较。

Page 30: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

分析工程系统计划书的内容主要有:

开发方针开发阶段、周期、工数开发体制及责任分担开发环境(软、硬件)开发技术要求(语言、数据库、网络、

相关技术等)软、硬件设备购置费直接开发费间接开发费

Page 31: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程

设计工程是将需求分析阶段对新系统的构想变换成实际运行系统的过程。它包含了两个过程:

外部设计内部设计

Page 32: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程 外部设计:外部设计主要是从用户的立场出发,明确如何使用系统,它通过对用户和系统间的界面、作业流程,精心设计达到可用和易用的目标,它通过对本系统和其他关联系统之间的界面设计,达到整合资源,实现效用最大化的目标。

内部设计:内部设计是从软件开发人员的立场出发,为实现需求和外部设计的目标对系统内部的构造、功能、性能等方面进行的设计。

Page 33: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程

外部设计 外部设计工程,都是对本系统与外部的接口、界面方面进行设计。所以被称作外部设计。

首先要考虑确定新业务系统的组成,即确定业务流程。

如果系统规模大,则应分割成几个子系统进行设计。

同时要对相关的屏幕显示、表格、关联系统的连接、外部设备的连接界面等进行设计。要从业务的实用性方面对数据库进行逻辑设计。

Page 34: 软 件 工 程 推 进 方 法

应用、故障对应

第四章 软件开发的标准过程

设计工程

外部设计

分割子系统

确定外部输入 /出

设计新业务系统 批准

设计安全性

策划安装

设计新系统功能

设计 DB 选择系统方式

外部设计的作业内容和作业流程

制定开发计划

Page 35: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程设计工程的思考方法

内部设计 内部设计是从开发者的立场出发,考虑采用什么样的方

法来构造新的系统、以及确定新系统的组成结构。

根据设计的结果,考虑系统运行时的设备的容量、性能等因素,进行评估,最后确定设计方案。

设计测试方案

程序设计 分析性能 / 容量

作成开发计划

开发准备 构造设计内部系统 设计物理 DB

内部设计的作业内容和作业流程

Page 36: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程

模块设计基本方法和基本原则 数据流设计方法 以数据流为着眼点,对模块进行设计。

有: STS 分析方法 TR 分析方法 共通模块分析方法。

Page 37: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程

控制

源功能 1

变换功能 2

吸收功能 3

: 处理数据 : 控制数据

功能 1

源( S) 变换( T)

数据 数据

出错

STS 分析方法示意图

功能 2 功能 3

吸收( S )

模块化

Page 38: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程

数据流设计方法 TR 分析方法是将不同的事务处理( TRansaction)按不同的分支设计成不同的处理模块。在模块内部,数据流又是直线型的,所以, 该分析方法又被说成是 STS 分析的准备作业。这种分析方法也被称为水平分析方法。

Page 39: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程

功能 2功能 4

控制

功能 1 功能 4

:处理数据 :控制数据

功能 1

模块化

数据

数据

功能 3

功能 2 功能 3

数据

Page 40: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程 从外部设计(概要设计)到内部设计(详细设计)

模块的关联性考虑

通常判断模块的关联性(或独立性)的两条重要准则是模块的聚合性和耦合性(详细介绍在第四章)。

对已设计好的模块,评价其模块的独立性,检查共通模块,以及模块间的界面、参数的多寡,复杂程度等。然后进行必要的修改,得到完善的分割方案。

Page 41: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程 从外部设计(概要设计)到内部设计(详细设计)

清真寺院屋顶的设计方法

该设计方法主要是将功能模块的组成方法象清真寺的屋顶一样,上面是控制模块和固定的模块,下面是集中一些共通模块。

Page 42: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程 从外部设计(概要设计)到内部设计(详细设计)

模块的影响范围和控制范围 模块的独立性是评价该系统分割是否合理,结构化设计是否合理的重要准则。组成系统的模块间独立性强,模块间不容易造成关连的错误链,可修改性强、可理解性好,这样模块的影响范围、控制范围容易把握。为此,一定要将模块的影响范围纳入模块的控制范围之内。

Page 43: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程从外部设计(概要设计)到内部设计(详细设计)

模块 A

影响范围

输出

出错报告错误

控制范围输入

影响范围

控制范围

输入

错误

出错报告

模块 A

模块B

输出模块B

控制范围:上层模块调用下层模块的范围影响范围:由模块设定的条件产生动作的范围

Page 44: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程 从外部设计(概要设计)到内部设计(详细设计)

评价模块间的界面 模块间的界面一定要清晰,参数要少而单纯,减少复杂性。设计容易理解的功能模块

容易理解的功能模块就象黑箱一样,虽然看不见模块的内部结构,但从模块的输入,就能知道模块的输出状态。

Page 45: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程从外部设计(概要设计)到内部设计(详细设计)

数据库的物理设计

在外部设计时,从应用的角度对数据库进行了讨论,在进行内部设计时应考虑系统运行环境的制约,对数据库进行具体的设计。数据库的设计过程是由概念设计、逻辑设计和物理设计。

Page 46: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程从外部设计(概要设计)到内部设计(详细设计)

设计新逻辑DFD

设计新物理DFD

概念设计

物理设计

· 决定数据项目· 分析数据特性 使用方法,增、删、改频率 数据量、增加频率、更新周期。· 选择数据表

· 决定数据表. 决定键字· 设计视图· 推算数据量· 设计故障对应方法

· 分配数据库· 定义数据库· 定义表· 定义视图· 定义权限· 定义索引

逻辑设计

Page 47: 软 件 工 程 推 进 方 法

设计工程 从外部设计(概要设计)到内部设计(详细设计)

性能 / 容量分析

通过性能 / 容量分析找到解决时间消耗太多的过程。对该过程进行优化处理,对提高系统性能和增加系统处理数据能力是有效的。

第四章 软件开发的标准过程

输入输出时间

请求 程序处理时间

程序处理时间

数据库

数据库

请求请求

应答时间

应答时间

回答

反应时间图示

处理处理

输入输出输入输出

处理处理

回答回答

Page 48: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程设计工程的输入和输出

在外部设计工程中所作成的各种文档构成外部设计书。外部设计书所包含的内容有:

系统的硬件设备构成 网络结构图 数据流程图

系统使用的软件( OS , DBMS , NETWARE ,其他相关软件) 外部代码表

屏幕设计 报表 外部接口

数据库表 数据定义 安全设计书

系统功能图 业务流程图 系统安装计划

系统应用计划 故障对应计划 开发计划

Page 49: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

设计工程设计工程的输入和输出

在内部设计工程中所作成的各种文档构成内部设计书。其内部设计书包含有:

共通程序模块设计书 共通用表设计书 出错处理设计书

程序设计书 物理数据库定义 数据库容量 / 系统性能分析

系统测试方针 命名规则 程序开发指南

开发环境 开发计划

Page 50: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程 软件制造工程就是把系统工程师按照用户的

需求设计出来的系统构架变为真正可运行的软件系统的工程。即是把软件生存周期过程中上流工程(需求分析、系统设计)所产生的结果作为制造工程的输入,而制造工程又将上一阶段提出的方案进一步具体化,经过程序设计、程序编码、单元测试,变为真正可以运行的软件产品。

制造工程是软件开发工程的一部分,通常叫做开发工程中的中流工程,它所包含的内容有程序设计、程序编制和单元测试三个部分。

Page 51: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程工程 内容

D2.1.1 模块划分

D2.1.2 模块功能设计

D2.1.3 工作区变量定义

D2.1.4 模块逻辑设计

D2.2.1 程序设计检查

D2程序设计

D2.2

以详细设计中确认的程序单元为基础,对程序单元内的功能模块进行分割处理。

对所分割的模块进行功能处理说明。

定义程序中使用的公共变量和重要变量。

设计各个模块的处理内容,处理流程及算法。

进行程序设计检查,作出程序检查结果报告。

Page 52: 软 件 工 程 推 进 方 法

工程 内容

D3.1.1 程序编码

D3.1.2 编译连接

D3.2.1 程序代码检查

D3程序编码

D3.2

以程序设计说明书为依据,按照选定的语言和编码规则,进行各个程序单元的代码编制。

对程序代码进行编译,修改语法错误,生成可以执行的目标程序。

打印出程序代码清单,在办公桌上进行程序逻辑和规范性检查。

Page 53: 软 件 工 程 推 进 方 法

工程 内容 D4程序单元设计D4.1 程序单元测试的准备

D4.1.1 设定测试项目D4.1.2 测试项目检查

D4.1.3 作出测试数据

D4.2 组合测试环境准备D4.2.1 组合测试环境准备

的确认

D4.3 单元测试实施D4.3.1 组合测试环境准

按照程序设计说明书写示程序测试项目表( PCL),对设定的测试项目进行检查,填写质量汇总数据表。

按照程序测试项目表,作出要用于测试的测试数据,设定相关的数据库表及文件的数据。

为进入下一个测试工程,确认组合测试环境准备情况,以进入测试工程。

1 、实施程序单元测试。2 、填写问题处理票(称为 B票)3 、如果问题原因是由于设计书产生,要通知修改程序设计书。

Page 54: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

程序设计 程序设计过程

程序设计

程序单元内的功能模块分割

模块功能说明及处理内容说明

程序功能层次图及模块关联说明

定义公共变量和重要变量

详细设计书理解

程序设计作业实施

程序设计书作成

Page 55: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

程序设计 作成程序设计书

程序设计书所包含的内容有:程序处理概要图程序功能说明图程序功能层次图模块关联图( PAD 图)模块的说明定义书

Page 56: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程 制造工程作业内容

程序设计

由于 PC 计算机的发展,对于小型开发系统,要求在短时间内完成编程工作,多数情况是不再作成程序设计书、而是作成高质量的详细设计书,根据详细设计书进行编程。

Page 57: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程 制造工程作业内容

程序设计 但是对于中、大型开发系统及需要大规模的协作单位的开发项目,

程序设计书仍然是必不可少的。但在作成时需要注意:设计书的首要条件是易读,结构、逻辑清楚,便于程序员理解,顺利编程;

边界、界限处理要明确。数值的判定使用数学符号;

设计书中一般对正常处理都有说明,而易忽略对非正常处理的说明。非正常处理一般要有提示信息,设计时要给予充分的注意。

Page 58: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

程序编制就是根据程序设计阶段作成的设计书,编制成可以实现其功能的源程序,并通过单元测试验证其正确性。

程序编制

详 细 设 计 书 或程序设计书的理解

PCL 作成(程序测试清单)

程序编制

Page 59: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

程序编制程序编制原则

根据程序设计书或详细设计书用确定的程序语言编制程序,在编程时应遵守如下编程的基本原则:

易读;易维护;逻辑性强;界面友好,易于操作。

Page 60: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

编程时的注意事项 同一系统的编程风格要一致,严格遵守系统的编

程基准书; 不明确点一定要向设计者明确; 尽量利用共通模块,提高生产性和质量; 由于程序员的能力差别,根据同样的设计书作成

的程序,处理速度、可维护性都有很大差别。因此必须要求程序员严格按照设计书编程,遵守编程基准书,做出风格一致、高性能的程序;

程序修正时要注意不要引起新的错误。一定要检查修正点的前后及关联的逻辑,确认有无影响。

Page 61: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

程序编制程序编制的结果程序编制作业完成后,将产生如下成果:① 源程序清单;② 程序检测清单( PCL):确定检测程序的

测试点。

Page 62: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

单元测试 单元测试又称模块测试(或者又叫单体测试),

它是制造工程中编程阶段一项重要内容,根据程序作出程序检测清单( PCL),确定程序的测试点, PCL 是保证程序质量的有效方法。

单元测试是用程序处理的各种类型数据以及满足各个分支条件的数据通过程序的运行结果对该模块实现功能是否正确进行验证(即测试)。

单元测试是运行单个模块,主要为了验证模块的内部逻辑的测试,通常由编码的程序员担任。

Page 63: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

制造工程制造工程作业内容

单元测试 单元测试原则是根据源程序代码,作成能测试所有逻辑分支的测试分支,验证是否能得到设想的结果。这个阶段主要发现的是编程错误,常称之为 BUG 。

Page 64: 软 件 工 程 推 进 方 法

lx=1Do Until lx > 10 Wk金额( lx ) = Wk 单价( lx ) + Wk数量( lx) If Wk金额( lx)> 1000000 Then错误表示 = True Else 错误表示 = False End if Wk 件数 = Wk 件数 + 1 Wk合计 = Wk合计 + Wk金额Loop

累计项目(Wk 件数、 Wk合计)忘记清

零。 应该用乘法符号却错用了加法符号

应该用“≥”却错用了“>”

数组下标变量 lx未累加计数

错误编码例子

Page 65: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程

测试工程就是通过运行已经编制完成的程序,找到并修正发现的错误,使程序达到设计的要求。测试是一个过程,并根据不同的要求划分为几个阶段。各个不同的阶段目的不同,所采用的方法也不同,测试的重点也不同。

Page 66: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 测试工程的意义

一般认为软件的正确度是通过测试工程来确认。如果是有这样的想法,软件的测试就不会顺利进行。

要证明有错误很容易,只要找到一个错误就足够了。而要证明没有错误就很困难了。而且,直到现在也没有找到一种能证明没有错误的好的方法。换句话说,没有一种能直接证明程序的正确性的方法。

Page 67: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 测试工程的意义

J.G.Myers 的著书中提到“所谓测试是确认程序正确性的过程,而不是为了表示没有错误。”,并定义测试为“以发现错误为目的而运行程序的过程”。

人总是会产生错误,不能期待程序完成时完全没有错误。因此,要以完成的程序不正确为前提,尽量检查出缺陷,并消除缺陷,以这样的思维方法来认识测试工程。缺陷消除达到一定的程度,就可以推断程序中不存在潜在的缺陷。程序的正确性只能是采用这样间接的形式予以证明。

Page 68: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程

测试阶段与工程阶段的对应关系

方 案 / 预算

合同

计划

需求分析

应用测试

安装 应用

基本设计

详细设计

程序设计

综合测试

组合测试

单元测试

程序编制

Page 69: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程

测试阶段与工程阶段的对应关系 ⑴ 单元测试对应于程序设计,单元

测试除了验证程序编制中的错误外,还将检查程序编制与程序设计的符合性; ⑵ 组合测试对应于详细设计,验证与详细设计的符合性;

Page 70: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程测试阶段与工程阶段的对应关系

⑶ 综合测试是对开发系统的整体进行测试,验证与基本设计的符合性; ⑷ 应用测试一般是客户的实机测试,

在应用过程中,验证该系统是否满足客户的需求,功能和性能是否达到预定目标、可靠性、结果正确性是否达到预定目标。

Page 71: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程测试工程与生产性

软件开发的生产性是指开发者在 1小时内完成的工作量,软件开发所花费的人 · 时间称之为工数。

软件开发工程一般最费工数的测试工程。除去维护工程,开发工程的 40% ~ 50% 都是测试工程。因此测试工程的效率影响整体软件开发的生产性。

软件只有通过实际运行才能得到确认。各个阶段遗留的质量问题和缺陷,也是在测试工程中开始明朗化。测试工程的推进方法也是根据前期工程所遗留的错误情况而有所不同。

Page 72: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程测试工程与生产性

缺陷防止工作做得好,测试作业进展就顺利,按照预算和预定的时间交付产品的可能性就越高。

而缺陷多的软件,易发生大量修正、返工,工数和费用迅速增加,日程大幅度延期,最坏的情况是不能遵守产品的交付期,甚至于缺陷过多,涉及上流工程大幅度修正,势必造成工程失败。

为此,上流工程只有尽量努力作好,作出用户满足的需求分析,作出优良的设计,用足够的工数防止缺陷。上流工程保证了足够的工数,测试工程则可能削减数倍的工数。

Page 73: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

组合测试主要是针对所开发系统的子系统验证各个模块的连接,连接运行是否顺利,整体功能是否正确具备,数据是否进行正确传递、处理。实施组合测试的前提是单元测试已完成。

在组合测试阶段发现的错误,主要是模块间的界面接口问题。例如,上位模块与下位模块间的传输数据的顺序、数值长度发生错误,设想的上位模块和下位模块关联的某个功能可能被遗漏等等。

Page 74: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

上位模块

5 字节数字型

5 字节字符型

传输数据的长度错误 传输数据的个数不一致

模块间传输数据 界面接口错误示例

下位模块

5 字节数字型

7 字节字符型

1 字节字符型

传输数据的长度错误 传输数据的个数不一致

Page 75: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

模块间的数据传输在详细设计时作了明确规定,在组合测试时要注意验证相应的内容。在进行模块分割时,应该定义各个模块的功能和界面接口。在模块分割时发生的错误则应在组合测试时检测出。

组合测试中,模块连接的顺序有从上至下方法和从下至上方法之分。下图列出了组合测试的推进方法

Page 76: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

模块 A

C

E F

G

B

D

G

整体模块:

Page 77: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

从上至下测试:

最上位的模块称为主模块。从主模块开始,按顺序与下位模块连接的方法称为从上至下测试。该方法需要准备替代下位模块的虚拟模块(带括弧的模块),使连接成可执行的程序。

Page 78: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测

模块 A

( B ) ( C )

模块 A

B C

( D)

( E)

( F)

Page 79: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

从下至上测试:

相反,从最下位模块开始,按顺序与上位模块的连接的方法称为从下至上测试。该方法必需要准备称之为测试引导的测试工具。

Page 80: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试

测试引导

D

测试引导

G

测试引导

E

测试引导

F

G G

Page 81: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程 组合测试 从上至下测试与从下至上测试的比较

实际测试中,一般同时采用两种方法,称为夹心测试。对于较小规模的程序,一般一次性连接所有模块进行测试,称为爆炸测试。

优点 缺点 能够尽快检测出界面接口错误等重

大缺陷。通过对重要度高的上位模块反复测

试,可以提高整体的质量。不需要测试引导。

分散作业较困难。需要准备虚拟模块。 从上至

下测试

能较容易的分业、并行作业,尽早测试各个模块。

能够先行测试缺陷影响大的共通模块,提高共通模块的质量。

不需要准备虚拟模块。

重要缺陷的发现较迟缓。必须要准备测试引导。 从下至

上测试

Page 82: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程综合测试 综合测试又称为系统测试,系统测试主要是检测系统整体的功能、性能的测试。系统测试最好在尽可能接近实际运行的环境下进行。

概要设计阶段,输出设计、数据库设计中的缺陷,在系统测试工程时检测出来。期待的性能是否实现是系统测试的重要验证点。使用大量的数据和实际运行使用的终端数,确认是否实现预想的单位时间的处理量、应答时间等。

有时还要根据具体情况对系统增加负荷,测试系统的承受力。这种测试称为强度测试或耐力测试。

Page 83: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程应用测试 应用测试是由客户进行实际运行的测试。又称

为验收测试。 这时,软件是否满足客户需求,也即需求定义的质量开始明朗化。系统作为黑箱,主要针对某个输入是否按设计要求得到输出的问题。

应用测试工程除了进行实际运行测试外,还包括用户培训。在开发的系统交付给客户使用之前,必须让客户掌握今后该系统运行时必要的操作方法。因此,在此期间,还须编制系统运行手册和系统操作手册,并且我们还将对系统进行评价,对操作手册、运行手册等也要进行评价。

Page 84: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

测试工程测试的实施 测试是最花费工数的工程,我们必须在系统开

发的相应工程阶段作出相应的测试计划,并根据测试计划有效地实施测试。

具体实施方法如下: 1 、首先进行共通模块的测试 进行共通模块的测试对提高组合测试的生产性

最有效方法 2 、特殊部分的测试要先行、集中实施 对某个子系统有意识的先行测试是很有效的。

Page 85: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

系统安装

计算机应用系统在完成开发以后,都要实际安装到计算机中,提供给客户实际使用。在系统的安装阶段通常分为实机测试和移植安装两个步骤来进行。

Page 86: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

系统安装

实机测试 实机测试是在系统正式运行的环境下,与现

行系统并行运行, 检测系统整体的错误及不良点,确认系统是否满足客户的要求。系统可靠性测试 在实际运行环境下检测系统处理的数据、信息的正确性及系统整体的可靠性。

系统性能测试 在实际运行环境下检测系统整体的运

行时间及空间占有率。

Page 87: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

系统安装实机测试的注意事项

实机测试主要从系统功能、用户界面、系统性能、加载测试、强化测试、容量测试、配置测试、安装测试等方面检测系统的整体性能。由客户确认测试结果。

Page 88: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

系统安装 移植安装

移植安装是在产品交付给客户,待客户验收通过后,正式将系统(包括全套需求分析、设计文档、程序源代码、测试资料、用户操作手册、安装手册等)移交给客户,指导客户安装系统,确认系统的正常运行及客户的正确操作。

系统运行环境的考察 考察是否具备系统运行所要求的软、硬

件环境。系统安全、可靠性检测 系统安装后的安全、可靠性检测

Page 89: 软 件 工 程 推 进 方 法

第四章 软件开发的标准过程

系统安装 移植安装的注意事项

确认系统运行的环境 在移植安装时,要确认新系统运行的软件、硬

件环境是否符合设计时的要求。 确认系统的运行状况 系统安装后,运行的状况是否正常。 确认客户的操作 各使用者是否按操作手册的规定进行操作,并

掌握了异常情况下的处理方法。 收集客户的意见。 在客户使用新系统的过程中,要注意收集客户

新的要求,并整理成新的系统需求。以便在系统维护、更新升级时提供依据,以满足客户的需要。