第27卷 第 l期
2005年 3月
湘潭师范学院学报(自然科学版)
Journal of X'kangt~ Normal University(Natural Science Edition)
Vo1.27 No.1
Mar.200I5
净室软件工程探讨
游新娥
(湖南娄底职业技术学院,湖南 娄底417000)
摘 要:净室软件工程是软件开发的一种形式化方法,它使用盒结构规约进行分析和设计建模,强调将正确性验证作
为发现和消除错误的主要机制,从而大大提高了软件的质量。论述了净室软件工程的理论基础及所使用的主要技术,并阐
述了净室过程与其他软件工程实践的关系。
关键词:净室软件工程;增量;盒子结构;统计测试
中图分类号:TP311 文献标识码:A 文章编号:1671—0231(2005)01—0031—04
净室软件工程⋯是一种在软件开发过程中强调建立正确性的需要的方法,通过在第一次正确地书写
代码增量并在测试前验证它们的正确性,从而避免依赖于成本很高的错误消除过程。净室方法不是先制
作一个产品,再去消除缺陷,而是要求在规约和设计中消除错误,然后以“净”的方式制作,可以降低软件开
发中的风险。以合理的成本开发出高质量的软件。
1 净室理论基础
净室理论基础建立于20世纪 7O年代末 80年代初,资深数学家和 IBM客座科学家 Harlan Mills阐述了
将数学、统计学及工程学上的基本概念应用到软件的设想。
1.1 函数理论
净室开发方法基于数学中的函数理论。一个函数定义了一个从定义域到值域的映射,定义域中的每
个元素都可在值域中找到惟一的元素与之对应。一个特定的程序好似定义了一个从定义域(程序所有可
能输入序列的集合)到值域(所有对应于输入的输出集合)的映射。这样一个程序的规范就是一个函数的
规范。描述了一个程序的定义域(或输入序列)到值域(或输出空间)的映射。
一 个定义明确的函数有如下特性:完备性、一致性和正确性。因为一个程序规范描述了一个函数,所
以它也必须是完备的、一致的和正确的。
1.2 统计理论
净室测试方法基于统计学。在软件中,用于采样的全体是所有可能使用情况的集合,其中集合中的每个元
素代表系统的一种可能运行隋况。统计的目的是度量系统正确运行一个样本的能力。因为总体是无限的,完全
的测试是不可能的。所以必须利用统计学方法来对系统发生做一个有效的推理。测试过程不论如何扩展,在所
有可能的输入序列中都只能算一个很小的集合,所有的测试活动只能是无限总体中的抽样。
在净室软件工程中,统计测试既可用于产品检测,也可用于过程检测。净室采用增量开发的迭代过
程。这样可测量和提高运行的一致性。
上述两大基本观点促进了 Mills的工作:首先,程序是数学函数规则,其次,潜在的程序执行是无穷的,
质量认证必须进行统计采样。第一个观点使所有函数理论向软件开发敞开大门,导致以下技术的产生:盒
收稿 日期 :2oo4一lO一26
作者简介:游新娥(1968一),女,湖南双峰人,讲师,高级程序员,研究方向:软件开发。
31
维普资讯
第玄7 卷第 1 期
革x>5年 3 月
湘潭师莲学院学报(自然科学版)
J∞mal of XIangtan 油rmaI υni晦rsity(Natural S:抽回 Edit阳。
净室软件工程探讨
港新娥
(湖离委底职业技术学院,湖离委底 417'仅泊}
VoI. 27 No .1
K恒r. 2(冶5
摘 要:净室软件工程是软件开发的一种形式化方法,它使用金结构规约进行分析和设计建摸,强调将正确性验证作
为发现和消除错误的主要机制,从而大大提高了软件的质量。论述了净室软件工程的理论基础及所使用的主要技术,并阐
述了净室过程与其他软件工程实践约关系。
关键词:净室软件工程;增量;盒子结构;统计测试
中图分类号 :1白11 文献标识码 :A 文章编号:1671-但31以赔)01-∞31-04
净室软件工程旧是一种在软件开发过程中强调建立正确性的需要的方法,通过在第一次正确地书写
代码增量并在测试菌验证它们的正确性,从西避免依赖于成本银高的错误消除过程。净室方法不是先制
作一个产品,再去消除缺陷,币是要求在规约和设计中消除错误,然后以"净"的方式题作,可以降保软件开
发中的风险,以合理的成本开发出高质量的软件。
1 净室理论基础
净室理诠基础建立于却主纪 70年代末 80 年代初,资深数学家和 ffiM 客座科学家Harlan Mills 阐述了
将数学、统计学及工程学上的基本概念应用到软件的设想。
1. 1 函数理诠
净室开发方法基于数学中剖函数理论。一个量数定义了一个从定义壤到值域的秧射,定义壤中的每
个元素都可在值域中找到锥一的元素与之对应。一个特定的程序好似定义了一个从定义域(程序所有可
能输入序列韵集合)到古董壤〈所有对应于输入的输出集合〉的映射。这样一个程序的规范就是一个函数的
规莲,撞述了一个程序的定义域(或输入序亮)到值域〈或输出空间〉的映射。
一个定义晓确的量数有如下特性:完备性、一致性和正确佳。因为一个程序规琵描述了一个量数,所
以它也必须是完备的、一致的和正确的。
1. 2 统计理诠
净室测试方法基于统计学。在软件中,用于采样的全体是所有可能使用情况的集合,其中集合中的每个元
素代表系统的一种可能运行情捏。统计的自的是度量系统正确运行一个样本的能力。因为总体是无限的,完全
的割试是不可能的,所以必须利黑统计学方法来对系统发生最一个有效的挂理。测试过程不论如伺扩展,在所
有可能的输入序列中都只能算一个穰小的集合,所有的测试活动只能是无盟总体中的抽样。
在净室软件工程中,统计测试既可用于产品捡瓣,也可用于过程检测。净室采用增量开发的迭代过
程,这样可商量和提高运有的一致性。
上述两大基本观点促进了 Mills 的工作:首先,程序是数学虽数规则,其次,潜在的程序执行是无穷的,
质量认证必须进行统计采祥。第一个政点使所有菌数理论向软件开发敲开大门,导致以亨技术的产生:盒
收稿日篇 :2α>>-10-26
作者简介:游新娥(1968-) ,女,湖南双蝇人,讲师,离级程序员,研究方向:软件开发。
31
式结构规范及设计、函数理论正确性检验及增量开发,第二个观点使所有统计理论在软件测试方面得到应
用,导致了统计使用测试和质量认证。
2 净室技术
净室软件工程可用如下三个关键技术来刻画:置于统计过程控制之下的增量开发,基于函数的规范、
设计和验证以及统计测试和软件认证。这些技术可分开使用,也可一起使用。采用这些技术可改进技术
生产过程。
2.1 在统计过程控制下的增量开发
增量开发基于产品开发中受控迭代的工程原理——控制迭代。增量开发不是把整个开发过程作为一
个整体,而是将其划分为一系列较小的、累积的增量。小组成员在任何时刻只需把注意力集中于工作的一
部分,而不需一次考虑所有的事情。
增量开发把一个净室项目分成一个有序的开发周期序列。在每个周期完成一些用户功能。在每个增
量开发完成时,产品的功能便可向客户演示。这样客户对产品有真实的感观认识,他们可不受约束重新确
认需求或使需求更加清晰。这将使产品在完成时双方的不满程度降到最低。
给定一个系统结构,在增量规划中,有许多因素要考虑。在嵌入式系统中,硬件开发的进度协调是一
个要考虑的要素。在图形用户界面(GUI)系统中,第一个增量通常是制定用户接口原型,需求的最易改变
部分是可讨论的。因为增量开发避免了整体框架,在给增量分配开发任务时总要考虑功能依赖的问题。
比如,一个文件中的记号有其他用处时,必须对该文件做语法分析。影响增量开发的其他因素还有危险
性、复杂性、新颖性、重用性以及使用频率等。如果可能,在较早的增量中要包含最具不确定性的部分
,这
样可尽早理解影响进度的因素。
在每一增量开发结束时,要度量产品的质量并和小组的质量目标进行比较。比较的结果可以确定是
否在控制之下,出现较小的偏差时~-X',J-项目进行追踪,而出现不可接受的偏差时要进行仔细的性能主审。
如果确定了问题,小组要进行过程调整以便在下一个增量中改进性能。
2.2 基于函数的规范、设计和验证
净室采用的方法不仅有坚实的理论基础,而且可操作性很好。规范从一个外部视图(称之为状态盒)
开始,最后由一个过程(明盒)来实现。这些形式上不同、行为上等价的视图统称为盒子结构。盒子结构是
基于对象的,并支持软件工程的关键原则:信息隐藏和实现分离。
黑盒规范定义了一个系统或其组件从输入到输出的映射的外部行
为。只需定义外部行为,而不必描述内部状态或实现细节。图 1从概念
上描述了一个黑盒,其中 s代表激励历史(stimulus history),R代表相应的S
响应(response)。
一 个激励可能由用户、硬件,或另一软件组件产生。一系列这样的
激励组成一个独一无二的激励序列,它必须对应一个响应。黑盒由所有 图1 黑盒的概念视图
R
可能的激励列表、响应列表以及激励到响应的映射规则组成。黑盒是一种与状态无关,与过程无关的函数
描述,其映射必须是完备的、一致的和可跟踪正确性的。
状态盒规范由黑盒导出,是通向实现的第一步。状态盒把为获得
黑盒指定的外部行为而需保存的激励元素定义为状态数据。状态盒把
系统或其组件所需行为定义为一个从当前激励和旧状态到对应响应和
新状态的映射(变换)。定义状态数据后,就不必考虑激励历史了。 s
图2描述了状态盒的概念视图。
状态盒只描述了系统或其组件的响应和状态更新,仍不包括过程实现细
节。和黑盒卜祥,状态盒 足完备陛、— rJ胜和可跟踪正确性。 图2 状态盒的概念视图
32
R
维普资讯
式结构规莲及设计、画数理论正确性桂验及增量开发,第二个现在使所有统计理论在软件费试方菌得到应
用,导致了统计使用测试和质量认证。
2 净室技术
净室软件工程可用如于三个关键技术来揭画:量于统计过程主霸之下的增量开发,基于函数的规范、
设计和验证以及统计褪试和软件认涯。这些技术可分开使用,也可一起使用。采用这些技术可改进技术
生产过程。
在统计过程控制下的增量开发
增量开发基于产品开发中受控迭代的工程原理一一控制迭代。增量开发不是捏整个开发过程作为一
个整体,面是将其~J分为一系列较小的、累裂的增量。小组成员在任何时刻只需捂注意力集中于工作的一
部分,而不需一次考虑所有的事屠。
增量开发担一个净室项目分成一个有序的开发周期ff列。在每个周期完成一些用户功能。在每个增
量开发完成时,产品的功能使可向客户演示。这样客户对产品有真实的感现认识,他们可不受约束重新确
认需求或使需求更加清晰。这将使产品在完成时及方的不满程度挥到最佳。
给定-个系统结构,在增量震聋j中,有许多因素要考虑。在嵌入式系统中,硬件开发的进度势谓是一
个要考虑的要素。在囡彭用户界面(GUI)系统中,第一个增量通常是制定用户接口原翠,需求的最易改变
部分是可讨论的。因为增量开发避免了整体框架,在给增量分配开发任务时总要考虑功能依赣的前题。
比如,一个文件中的记号有其他用处时,必须对该文件最语法分析。影响增量开发的其他因素还有危险
性、复杂性、新主要性、重用性以及使用颜率等。如果可能,在较早的增量中要包含最具不确定性的部分,这
样可尽早理解影响进度前因素。
在每一增量开发结束时,要度量产品的质量井和小组的震量吕标进行比较。比较的结果可以确定是
否在控制之下,出现较小的偏差时要对项吕进行追踪,商出现不哥接受的编差时要进行仔缩的性能主审。
如果确定了问题,小组要进行过程调整以便在于一个增量中改进性能。
基于画鼓的最莞、设计和验汪
净室采用的方法不仅有坚实的理论基础,高且可操作性徨好。规莲从一个外部视图(称之为状态盒)
开始,最后串一个过程(萌盒〉来实现。这些形式上不同、行为上等价的视图统称为盒子结构。盒子结构是
基于对象的,并支持软件工程的关键原则:信息隐藏租实现分离。
黑盒摆在E定义了一个系统或其组件从输人到输出的映射的外部行
为。只需定义外部号子为,雨不必描述内部状态或实瑰细节。理 1 从攘念
上描述了-个黑盒,其中 S代表鼓励历史(stimulus hísto肘, R 代表相应的5
响应(respo脱)。
一个激励可能由用户、程件,或另一软件组件产生。一系壳这样的
激励组成一个强一无二的激励序列,它必续对应一个响应。黑盒由所有 困 l 黑盒的概念视图
R
可能的激蹲到表、响应列表以及激励到确应的映射蔑则组成。黑盒是一种与状态无关,与过程无关的量数
描述,其映射必须是完备的、一致的和可摆踪正确性的。
状态盒规莲由黑盒导出,是通向实现的第一步。状态盒把为获得
黑盒搓定的外部行为而需保存的激励元素定义为状态数据。状态盒把
系统或其组件所需行为定义为一个从当前激励和18状态到对应鸥应布
新状态的映射(变换〉。定义状态数据后,就不必考虑激黯历史了。 s
图 2 插述了状态盒的概念视图。
状态盒只描述了系统或其组件鸪响应和技态更新,仍不包括过程实现缰
节c 和黑盒一样,找态盏蓝领满足完备性、一致性和可跟踪正确性。
32
R
图 2 状态盒的概念视图
明盒规范用过程实现了对应的状态盒。这些过
程实现了状态盒的映射规则,也有可能引进代表宏操
作的新黑盒。过程必须足以完成必要的状态更新和
所需的响应。图 3描述了明盒的概念视图,为一顺序
控制结构。分支、循环和并发控制结构也可在明盒中
出现。引入的黑盒将在随后的求精过程中细化为状
态盒和明盒。
与黑盒和状态盒一样,明盒也必须满足完备性、 图3 明盒的概念视图
R
一 致性和可跟踪正确性。明盒可由系统的设计语言或目标语言来加以定义。
2.3 正确性验证
在盒子结构规范设计中,定义黑盒来记录所需的行为。状态盒是黑盒的细化,定义了所需的状态数
据,明盒是状态盒的细化,定义了所需的过程。每一种盒结构在小组评审时都要经正确性验证。小组采用
基于函数理论的推理根据前一步来验证每一细化步骤的正确性。一个可行而有力的验证过程使得开发组
可以根据规范彻底验证软件的正确性。验证步骤对删除错误很有效,这也是净室提高软件质量的主要因
素。
2.4 统计测试和软件认证
净室测试方法[ ]采用统计学的基本原理,即当总体太大时必须采取抽样的方法。首先确定一个使用
模型来代表系统所有可能使用的总体。然后由使用模型产生测试用例。因为测试用例是总体的一个随机
样本,所以可得到系统预期操作性能的有效的统计推导。
使用模型是指系统使用中所有可能的情形及其发生的概率,是可重用的项目资源,它能产生任意数目
的测试用例。实际上,测试一个系统可采用多种使用模型,对每种使用模型可采用多种概率分布。例如,
许多系统提供一些很少使用的功能,但这些功能处理失误的严重后果,如在核电厂关闭反应堆。这种功能
在一般的使用模型中的执行概率是很小的。当集中测试这种能产生重大后果的功能时,需要采用严格安
全使用模型、冒险使用模型、恶意使用模型或其他特定环境使用模型。统计测试可以容易地结合其他测试
一 起进行。
3 与其他软件工程实践的关系
净室过程对许多当前使用中成功的软件实践提供了强有力的支持。
3.1 面向对象 ·
净室过程为面向对象开发提供了可管理性和技术严密性。对象从本质上来说是封装了数据和一系列
服务的状态机器。一个净室组件用黑盒视图(一个对象的外部行为)、状态盒视图(一个对象的封装数据)
和明盒视图(处理外部需求和访问封装数据的服务)来定义。一个净室组件从技术上讲就是一个对象。净
室盒子结构有助于产生一个完备、一致和正确的对象行为规范。而且,盒子结构有助于定义和管理数据并
且控制数据在各个对象之间的流动。
3.2 软件复用
成功的软件组件复用需要对组件功能在语义上有精确的定义,还需组件在特定使用环境中得到质量
和可靠性认证。没有这些保证,复用将是不可预见的和冒险的。
净室黑盒规范能从语义上定义所有可能的使用情况。如果内部重用的范围窄于组件的范围(如减小
了可变范围),可通过限制黑盒函数的定义域来制定范围减小的规范。一个“包装”(一个包含重用组件的
组件)可以加强调用组件的并置条件。
一 个现成重用组件的适应性常常是通过试运行来评估的。净室认证通过统计测试能提高特定使用环
境的质量和可靠性度量。统计测试允许从特定使用情况和指定置信度水平评估组件的可靠性。
33
维普资讯
明盒兢莲用过程实现了对应的状态盒。这些过
程实现了状态盒的陕射烧则,也有可能引进代表宏操
作的新黑盒。过程必须是以完成必要的状态更新在
所需的响应。图 3 撞述了明盒的摄念提图,为一顺岸 s
控制结构。分支、循环和并发控制结梅也可在明盒中
出现。引人的黑盒将在随后的求精过程中细化为状
态盒和明盒。
与黑盒和状态盒一样,明盒也必须满足完备性、
图 3 明盒的概念视图
一致性和可跟踪正确性。明盒可æ系统的设计语言或目标语言来加以定义。
正确性验证
R
在盒子结构规莲设计中,定义黑盒来记录既需的行为。状态盒是黑盒的缰化,定义了所需位状态数
据,明盒是状态盒的细化,定义了历需的过程。每一种盒结构在小组评审时都要经正确性验证。小组采用
基于函数理论的推理根据前一步来撞证每一缠住步臻的正确性。一个可行司有力的验证过程使得开发组
可以根据规莲德底验证软件的正确性。验证步骤对霸除错误徨有效,这也是净室提高软件屡量的主要因
素。
2 .4 统计黯试和软骨认汪
净室掘试方法[2]采用统计学的基本原理,即当总体太大对必须采取抽样的方法。首先确定一个使用
模型来代表系统所有可能使爵的总体。然后由使用摸型产生测试用锅。因为醋试用倒是总体的一个撞机
样本,所kJ.可得到系统预期操作性能的有效的统计推导。
使用模型是指系统使用中所有可能的情形及其发生的概率,是可重用的项吕资嚣,它能产生任意数目
的费试用例。实际上,测试一个系统可采用多种使用模型,对每种使用模型可采南多种概率分布。例如,
许多系统提供一些很少使甫的功能,但这些功能处理失误的严重后果,如在核电厂关闭反应堆。这种功能
在一般的使用模型中的拉行模率是很小的。当集中测试这种能产生重大后果的功能时,需要采用严格安
全使用模型、冒险使用模型、恶意使用模型或其他特定环境使黑模型。统计测试可以容易地结合其他费试
一起进行。
3 与其他软件工程实践的关系
净室过程对许多当前使用中成功的软件实践提供了强有力的支持。
iIi向对象
净室过程为菌向对象开发提供了可管理性和技术严密性。对象从本质上来说是封装了数据和一系列
服务的状态扭器。一个净室组件用黑盒视图〈一个对象的外部行为)、状态盒视菌(一个对象的封装数据〉
和胡盒视图〈处理外部需求和请问封装数据的服务)来定义。一个净室组件从技术上讲就是一个对象。净
室盒子结构有助于产生一个完备、一致和正确的对象行为规莲。市旦,盒子结梅有助于定义和管理数据并
且控制数据在各个对象之间的流动。
软件复南
成功的软件组件复用需要对缰件功能在语义上有精确的定义,还需组持在特定费用环境中得到震量
和可靠性认证。没有这些保证,复用将是不可预见的和冒璋的。
净室黑盒规革能从语义上定义所有可能的使用情况。如果内部重用的草屋窄于组件的莲围〈如减小
了可变莲匿),可通过黑制黑盒画数的定义壤来制定莲自减小的兢莲。一个"包装"(一个包含重用组件的
组件)可以如强调用组件的并重条件。
一个理或重用组件的适应性常常是通过试运行来评锚的。净室认证通过统计模i试能提高特定使用环
境的质量和可靠性度量。统ìt测试允许从特定使用情况租指定置信度水平评估组件的可靠性。
33
结合净室可靠性方案,Mills等改进了一种复用分析的定量方法。利用这种方法,在顶层设计时就可
建立组件的可靠性和转移概率。如果给定组件的可靠性指标,通过顶层组件网的定量分析可得到关于系
统可靠性的上界。分析结果可用于评估组件重用的生命力。
3.3 软件体系结构
在众多软件体系结构的定义中,一个共同的主题是:软件体系结构定义了主要的组件和它们之间的关
系。净室提供了一个过程来准确定义体系结构的功能性语义——是什么组件以及它们之间有什么关系。
净室状态盒和明盒中高层的内部设计关系到系统主要组件以及它们之间的关系:主要的数据对象由
状态盒设计确定,数据对象的主要操作由明盒设计完成。最后,高层明盒设计体现了系统体系结构的主要
元素。净室系统总在明晰体系结构,但从没命名(除“系统顶层明盒”之外)。
3.4 检查和评审
净室正确性验证允许在检查和评审中增加额外的技术严密性和精确性。除了使用本地检查列表外,
净室还利用基于函数的理论:一个程序(代码)实现一个函数(规范)对代码和设计进行评审。净室评审的
目的是验证实现了的功能规范的正确性。对代码的评审总是对照其所实现的功能规范进行,而不是空对
空的。
净室规范和设计产品具有内部的可跟踪性。在盒子结构规范和设计的每一步都要进行同样的评审。
要对每个工作产品进行评审,对应的小组成员要对工作产品的正确性负责。健全的技术和小组对正确性
的责任的结合是预防缺陷非常有效的方法。
3.5 软件测试方法
净室测试基于使用模型对给定版本的软件的预期操作性能产生有根据的统计参考。净室使用模型也
可用于其他测试目的,如最大覆盖测试和加强关键功能。使用模型为模型覆盖测试、随机测试、重点测试、
划分测试和其他形式的测试提供了科学的基础。
人工测试同样可用于净室过程。有必要为特定环境的系统运行提供专门的测试用例以消除不确定
性。另外,在后台运行的代码覆盖工具可作为使用测试的补充。回归测试、结构(白盒)测试和其他测试方
法和净室是兼容的。
净室软件工程是软件开发的一种形式化方法,它可以生成有非常高的质量的软件。它使用盒结构规
约(或形式化方法)进行分析和设计建模,并且强调将正确性验证,而不是测试,作为发现和消除错误的主
要机制。使用统计测试来获取认证被交付的软件的可靠性所必需的出错率信息。
净室哲学是一种严格的软件工程方法,它是一种强调正确性的数学验证和软件可靠性的认证的软件
过程模型,其目标和结果出错率非常低,这是使用欠形式化方法难于或不可能达到的。
净室技术研究者在决策理论、先进统计设计、建模与仿真等有关理论和工程实践领域内已取得进展,
净室软件工程也一定会随着得到进一步的改进,其应用将会越来越广泛。
参考文献:
[1]黄柏素.软件工程实践者的研究方法[M].梅 宏译.北京:机械工业出版社,1999.
[2]罗晓沛,侯炳辉.系统分析员教程[M].北京:清华大学出版社,2003.
维普资讯
结合净室可靠性方案,施lls 等改进了一种复用分析的定量方法。利用这种方法,在顶层设计时就可
建立组件的可靠性租转移摄率。如果给定组件的可靠性指挥,逗过京层组件阔的定量分析可得到关于系
统可靠性的上界。分析结果可屑于评估徨件重用的生命力。
软件体系结掏
在众多软件体系结掏的定义中,一个共陀的主题是:软件体系结掏定义了主要的组件和它们之i写的关
系。净室提供了一个过程来准确定义体系结构的功能性语义一一是什么组件以及它们之间有什么关系。
净室状态盒和明盒中高层的内部设计关系到系统主要组件以及它们之间的关系:主要的数据对象自
状态盒设计确定,数据对象的主要操作由费盒设计完成。最后,高层明盒设计体现了系统体系结掏的主要
元素。净室系统总在晓新体系结构,担从没命名(除"系统顶层明盒"之外〉。
检查和评审
净室正确性验证允许在撞查租评审中增如额外的技术严密性和精确性。除了使用本地检查列表外,
净室还利用基于函数的理论:一个程序〈代码〉实现一个函数(规莲)对代码和设计进行评审。净室评审的
目的是验证实现了的功能麓革的王磷性。对ft码的评审总是对照其所实现的功能规革进行,再不是空对
空的。
净室规范和设计产品具有内部的可跟踪性。在盒子结构规革和设计的每一步都要进行肉样的评审。
要对每个工作产品进行评审,对应的小组成员要对工作产品的正确位负责。健全的技术和小组对正确性
的责任的结合是预前缺摇非常有效的方法。
软件测试方法
净室挺试基于使用模型对给定版本的软件的亲期操作住能产生有根据的统计参考。净室使用模型也
可自于其能挺试吕的,如最大覆盖测试和如强关键功能。使用模型为模望覆盖测试、随机费试、重点摇试、
是i分费试和其他形式的测试提供了科学的基础。
人工测试同样可用于净室过程。有必要为特定环境的系统运行提供专门的费试用偌以消除不确定
性。另外,在后台运行的代码覆盖工具可作为使用测试的补充。回归测试、结构(自盒〉翻试租其他摇试方
法和净室是兼容的。
净室软件工程是软件开发的一种形式化方法,它可以生或有非常高的质量的软件。它使用盒结构规
约(或形式化方法〉进行分析和设计建摸,并且强调将正确性验证,而不是测试,作为发漠和消除错误的主
要机髓。爱用统计揭试来获取认证被交付的软件的可靠性所必需的出错率信息。
净室哲学是一种严结的软件工程方法,它是一种强调正确性的数学验证有软件可靠性的认证的软件
过程摸型,其吕标和结果出错率非常链,这是使用欠形式化方法难于或不可能达到的。
净室技术研究者在决策理论、先进统计设计、建模与仿真等有关理论和工程实践领域内5取得进展,
净室软件工程也一定会随着得f1J进一步的改造,其应用将会越来越广泛。
参考文献z
[1]黄拍素.软件工程实践者的研究方法[M工梅 宏泽.北京:机械工业出版社, 1织)9.
[2] 罗晓沛,侯炳辉.系统分析员教程[M]. 北京:清华大学出版社,2003.
34