2005年(第34卷)第2期 饭 是技 术
净室软件工程
杨 梅 ,黄 毅
(1.贵州大学数学系,贵州 贵阳 550025;2.贵阳市信息中心,贵州 贵阳 550001)
摘要:净室软件工程是一种以合理的成本开发高质量软件
的基于理论、面向工作组的方法。本文从净室软件工程的理论
基础 出发,进行 了其理论上的正确性验证。并提 出了具体的净
室过 程 。
关蕾词:净室软件 盒子结构 统计测试
0 引言
“净室”一词借 自半导体业,强调“防患胜于除患”的思想。它
是在硬件生产过程中预防缺陷,而不是在事后排除问题和故障。
净室理论的重点是通过设计和测试中的质量认证来保证软件开
发的正确性。净室理论基础建立于2O世纪7O年代末 8O年代
初,资深数学家和 IBM 客座科学家 Hadan Mills阐述了将数学 、
统计学及工程学上的基本概念应用到软件的设想。它是一种以
合理的成本开发高质量软件的基于理论、面向工作组的方法。
1 理论基础
1.1函数理论
净室软件工程的数学函数理论基础。设函数定义了一个映
射,该映射中,定义域的每个元素有且仅有值域元素与其一一
对应。从软件角度上来说,一个具体的程序既是一个定义了一
个从定义域(程序所有可能输入序列的集合)到值域(所有对应
于输入的输出集合)的映射。这样一个程序的规范就是一个函
数的规范,该规范描述了一个程序的定义域(或输入序列)到值
域(或输出空间)上的映射。
而一个定义明确 (well-defined)的函数应有如下三个基本
特性:完备性、一致性和正确性。所以如果一个程序规范描述了
一 个函数,该程序就必须是完备的、一致的和正确的。
(1)数学完备性。对定义域中的每个元素,值域中至少有一
个元素与之对应。即每种可能的输入都必须有定义,且有一个
输 出与 之对应 。
(2)数学一致性要求在值域中最多有一个元素与定义域中
的同一元素对应,也就是说,每个输入只能对应一个输 出。
(3)相对于需求的规范正确性由定义域专家判断。然而对
于一个给定的正确的规范,某项设计及其规范的正确性是可以
通过基于函数理论的推理来验证的。
Linger、Mills和 Hevner于 1986提出的用于净室软件开发的
盒子结构的方法,即三种功能形式的盒子:黑盒、状态盒和明盒。
1.2统计理论
同时,净室测试方法基于统计学理论。统计学在工程 中的
应用相 当广泛。其 中极大的应用了如下思想 :由于从经济上或
技术上的原因,无法测试样本全体时,则使用统计抽样的方法。
如果统计结果达到质量目标,这完成测试过程,反之,生产过程
需做必要调整;然后再进行抽样一测试一分析结果一改进过程,
这种以统计学为基础,的从产品度量到生产过程之间的反馈循
环 ,已得到了极大程度上的认可和极为广泛地应用 。那么该理
论又是如何应用到软件工程中呢?
在软件中 ,用 于采样的全体 (population)是所有可能 使用
情况的集合其中集合中的每个元素代表系统的一种可能运行
情况。统计的目的是度量系统正确运行一个样本的能力。因为
总体是无限的,完全的测试是不可能的,所以必须利用统计学
方法来对系统发生做一个有效的推理。测试过程不论如何扩
展,在所有可能的输入序列中都只能算一个很小的集合所有的
测试活动只能是无限总体 中的抽样。
在净室软件工程中,统计测试既可用于产品检测(单开发
过程循环的结果),也可用于过程检测 (多开发过程循环的结
果)。净室采用增量开发的迭代过程,这样可测量和提高运行的
一 致性 。
2 净室技术
净室软件工程可用如下三个关键技术来刻画,这些技术可
分开使用,也可一起使用。采用这些技术可改进技术生产过程。
●置于统计过程控制之下的增量开发 ,
●基于函数的规范、设计和验证 ,
●统计测试和软件认证
3 净室过程
净室参考模型(CRM)由软件工程所(Linger和Tranmlen
1996)提出,它为净室项目运行定义了一套完整的过程和工作
产品。图 1显示了 CRM 由 14个分别对应于软件管理 、规范 、
开发和认证的独立过程组成:
项目舰划,项 目管理,性能改善和工程受化
!坚蔓厂1用户悍价白_】
1累计规范
软件再工程,增量设
计,正确性验证
用户评忻的幕
认证增量
图 1 净室参考模型
(1)管理过程包括项 目计划 、项 目管理 、性能改进以及工程
变更。
(2)规范过程包括需求分析 、功能规范、使用规范 、使用规
范 、结构规范和增量计划。
(3)开发过程包括软件再工程 、增量设计和正确性验证 。
(4)认证过程包括使用建模、测试计划、统计测试和认证。
在图最上部的四个管理过程影响着所有其他的过程。在项目
计划过程中,要根据项目环境裁剪净室过程,并制定和维护软件
开发计划。在项目管理过程中,这些计划管理和控制着增量开发
和认证。性能改进过程用来不断评估项目性能,明确并切实改进。
工程变更过程为所有可能的变化提供配置管理和工程规则。
结构规范过程跨越整个生命周期,定义了体系结构和策
略 它将影响从需求到底层设计的许多方面。
需求分析过程对用户需求做一个初始定义。在函数规
范过程(产生外部行为的规范)和使用规范过程(下转 11页)
维普资讯
2005~( 第 34 卷)第 2 期 付焦 U. 本 边~凶JW民
〉夺窒软件工程
杨梅黄敬2
(1.贵州大学数学系,贵州贵阳 550025 ;2.贵阳市信息中心,贵州贵阳 550001)
摘哥哥:净支软件工程是一种以合珑的成本开发高质受软件
的~于缓伦、偏向工作组的方法。本文从净发软件工程的攻论
基础出发,进行了其理论上的五确性验证。并提出了具体的净
盆过程 o
关罐询:净窒软件盒子结构统计测试
O 引|富
"净室"一词借自半导体业,强调"防患胜于除患"的思想。它
是在硬件生产过程中预防缺陷,而不是在事后排除问题和故障ω
净笼理论的黛点是通过设计和测试中的质最认证来保证软件开
发的正确性。净3夜理论基础建立于 20 世纪 70 年代末 80 年代
初,资深数学家和 IBM 客座科学家 Harlan Mills阐述了将数学、
统计学及工程学上的基本概念应用到软件的设想。它是…种以
合现的成本开发高质盘软件的基于理论、丽向工作组的方法。
1 理论莓础
函触理论
净3夜软件工程的数学函数理论荔础。设函数定义了一个映
射,该映射中,定义域的每个元素有且仅有值域元素与其一一
对应。从软件角度上来说,一个具体的程序既是…个定义了一
个从定义域(程序所有可能输入序列的集合)到值域(所有对应
于输入的输出集合)的映射。这样一个程序的规况就是一个函
数的规范,该规范描述了一个程序的定义域(或输入序列)到值
域(或输出空间)上的映射。
而一个定义明确 (well-defined)的函数应有如下三个基本
特性:完备性、一致性和正确性。所以如果一个程序规范描述了
一个函数,该程序就必须是完备的、一致的和正确的 o
(1)数学完备性。对定义域中的每个元素,值域中至少有一
个元素与之对应。即每种可能的输入都必须有定义,且有一个
输出与之对应。
(2)戴学一致性要求在值域中最多有一个元素与定义域中
的同一元续对应,也就是说,每个输入只能对应一个输出。
(3)相对于常求的规范正确性囱定义域专家判断。然而对
于一个给定的正确的规范,某项设计及其规范的正确性是可以
通过蒸子函数理论的推恩来验证的。
Linger ,Mills和 Hevner 于 1986 提出的用于净蜜软件开发的
盒子结构的方法,即三种功能形式的盒子:黑盒、状态盒和明盒。
1. 2 统计现论
问时,净宽测试方法基于统计学现论。统计学在工程中的
应用相当广泛。其中极大的应用了如下思想;由于从经济上或
技术上的原因,无法测试样本全体时,则使用统计抽样的方法。
如果统计结果达到质量目标,这完成测试过程,反之,生产过程
需做必要调按:然后再进行抽样-测试-分析结果一改进过程,
这种以统计学为基础,的从产品度量到生产过程之间的反馈循
环,已得到了极大程度上的认可和极为广泛地应用 O 那么该理
论又是如何应用到软件工程中呢?
在软件中,用于采样的全体 (pop时ation)是所有可能使用
情况的集合其中集合中的每个元萦代表系统的一种可能运行
情况。统计的目的是度量系统正确运行…个样本的能力。因为
总体是无限的,完全的测试是不可能的,所以必须利用统计学
方法来对系统发生做一个有效的推理。测试过程不论如何扩
展,在所有可能的输入序列中都只能算一个很小的集合所有的
测试活动只能是无限总体中的抽样。
在净宽软件工程中,统计测试既可用于产品检测(单开发
过程循环的结果) .也可用于过程检测(多开发过程循环的结
果)。净笼采用增量开发的法代过程,这样可测景和提高运行的
…致性。
2 净窒技术
净3夜软件工程可用如下三个关键技术来刻画,这些技术可
分开使用,也可…起使用。采用这些技术可改进技术生产过程。
·置于统计过程控制之下的增撞开发,
·毒§子函数的规范、设计和验证,
·统计测试和软件认证
3 净嚣过程
净案参考模型 (C议M) 由软件工程所 (Linger 和丁rammell
1996)提出,它为净窒项目运行定义了一套完整的过程和工作
产品。图 1 显示了 CRM 由 14 个分别对应予软件管理、规范、
开发和认证的独立过程组成:
结构呗iQ;
图 1 净蜜参考模型
(1)管理过程包括项目计划、项目管理、性能改进以及工程
变更。
(2)规范过程包括需求分析、功能规范、使用规范、使用规
范、结构规范和增最计划。
(剖开发过程包括软件离工程、增黛设计和正确性验证。
(4)认证过程包括使用建模、测试计划、统计测试和认证。
在图最上部的四个管理过程影响着所有其他的过程。在项目
计划过程中,要根据项目环境裁剪净策过程,并制定和维护软件
开发计划。在项目管理过程中,这些计划管理和控制着增黛开发
和认证。性能改进过程用来不断评估项目性能,明确并切实改进。
工程变更吐程为所有可能的变化提供配置管理和工程规则。
结构规范过程跨越整个生命周期,定义了体系结构和策
略 J 它将影响从需求到底层设计的许多方面。
需求分析过程对用户需求做一个初始定义。在函数规
范过程(产生外部行为的规范)和使用规范过程(下特 11 页)
25
2005年(第34卷)第2期 境科学
4.8过程前期 ,强冷锋锋线位于天 山附近 ,8日05时,冷锋
翻越天 山,进入河西走廊后猛烈加强 ,南疆东部至酒泉 、老东
庙 出现大范围大风 、沙尘暴天气。8日08时冷高压位于乌鲁木
齐附近 ,中心值为 1040hpa,南疆每个站出现沙尘暴且大部分
地方能见度降至 0.1—0.2千米,达强沙尘暴。冷锋在东移过程
中分为南北两段 ,南段经阿尔金山越过青藏高原进入柴达木
盆地 ,在该盆地西部出现沙尘暴,北段冷锋 东移南下至武威地
区,沙尘暴区域在冷空气前方 ,呈南北带状分布。8日 14时锋
面的北段位于祁连山北侧一乌哨岭一宁夏东部,南段移至柴达
木盆地中部,与低压中心重合,锋后沙尘暴范围进一步扩大,
向东影响至宁夏、向南影响至乌鞘岭 。酒泉地区持续降温降
雪 ,雪 区向东发展到张掖 ,15时冷锋过境兰州 ,出现大风扬沙
天气 ,15时 35分观测到沙尘暴 ,23时 45分降雪开始 ,沙尘天
气结束。
4.29过程与4.8过程基本相似,前 24小时(28日08时)。
锋线位于天山附近 ,28日 14点冷高压位于乌鲁木齐附近 ,其
中心值为 1024hpa,锋线东移至哈密一若羌一带,大风沙尘暴
范围从柴达木盆地 、河西 、内蒙西部 ,南到乌哨岭 ,东至贺兰
山。29日08时 ,冷高压中心加强到 1036hpa,09时,冷锋过境
兰州,两县区出现沙尘暴,市区出现扬沙,沙尘暴范围向南缩
小。之后逐渐减弱为扬沙、浮尘 ,并向东南方向移去。(见图 5、
图 6)
图 5 2001年 4月 7-8日冷锋动态图
图 6 2001年 4月 28-29日冷锋动态图
分析表明,锋面经过某地的时间、地点则是大风 、沙尘暴出
现的时间和地点。
4 小结
(1)结合 2001年“4.8”、“4.29”沙尘暴产生 的气象 因素
可以看出,兰州沙尘暴的出现必然伴随着北方强冷空气的过
境。因兰州地区特殊 的地理条件很少能产生本地大风 ,故只
有北方冷空气足够强时,才能产生形成沙尘暴天气的动力条
件。
(2)由于冬、春季空气相对干燥,冷暖空气频繁交替出现,
故冬、春季容易产生沙尘天气。而且,兰州的沙尘天气经常比河
西的沙尘持续时间要长,强度大。这也是地理条件使然。
(3)一槽一脊的大环流形势有利于北方冷空气向南爆发。
当乌拉尔脊稳定发展时,脊前冷空气不断堆积加强。如果乌拉
尔脊略为东移,脊前横槽转竖,冷空气就沿西北路径南下。这是
兰州沙尘暴天气产生的最主要的环流背景。
(4)兰州本站的前期天气背景也决定 了兰州沙尘暴的强
度。长时间的干旱少雨,使得气温不断升高.气压不断降低。一
旦有冷空气过境,强烈的气压差产生大风天气,使沙尘暴天气
具备 了动力起沙条件。
综上述分析 ,沙尘暴天气是下垫面土壤条件及大气环流条
件相互作用而形成的。过程发生时,在农业生产中.要做好防风
防冻工作。此外,也要改善兰州地区秃山荒岭的下垫面状况,用
大生态的眼光积极治理自然环境,减少这种天气的产生。
(上接 58页)投资者的利益,还会造成企业资金的闲置浪费 ,不
利于企业的稳定和发展。所 以说制定正确的收益分配政策 ,确
定合理的股利支付比率是降低收益分配风险的关键所在,它的
基本原则应该是既有利于保护投资者(股东)的合法权益,又有
利于企业长期、稳定的发展。切不可盲目的任意提高分配标准。
而减少企业积累,也不可盲目地降低分配标准,而损害投资者
的积极性。另外公司即使制定了合理的收益分配政策 ,还要正
确处理留利中积累与消费的比例关系,更新设备,推进技术进
步 ,并及时适量补充流动资金 ,使流动资产与流动负债相关联
系的资金流动比例恰当,支付能力适度。
研究财务风险是为了控制财务风险,加强财务风险的管理
工作,以增强企业经营管理者对财务风险的预见性和应变能
力,防患于未然。
参考文献:
【1】李媛芳 浅谈加强财务管理。减少财务风险.1998.36—40.
【2】倪静.提高财务风险意识加强财务管理 当代经济科学 1999,94
【3】曾韶华 论稳健性原则与财务风险决策 财会研究 1997,28—30
【4】刘韬.论现代企业的资金筹集及其风险.当代经济科学.20O0,59—61.
(上接 25页)(产生用户 、使用环境 和软件系统使用模型的规
范)中将对这种需求定义做精确描述。增量开发计划为特定的
软件功能分配一系列增量,并根据整个项目结构和进度来安排
这些增量的开发和认证进度。
开发和认证过程在图右边的层叠框中,这些层叠框代表成
功开发的增量。增量设计和正确性验证过程用来为一个增量开
展设计和编码,并认证其正确性。在每个增量中使用模型和测
试计划过程的引入与开发工作并行,并从使模型产生测试用
例。统计测试和认证过程评价增量是否好用。在一个增量结束
时,用户对运行系统进行主人并为需求确认提供反馈 。
4 小结
· 净室软件工程具有坚实的函数理论基础和统计理论基础。
同时,它又是面向工作组的。因为成功的软件是由团队开发而
不是个人 ,并且理论必须简化到实际应用才能引导人的创造力
和协作精神。并且它是针对经济实用软件的生产。因为在现实
生活中,业务和资源的限制必须在软件工程中予以满足。最后,
净室 旨在提高质量软件的生产 ,因为高质量改进管理 ,降低风
险及成本,满足用户需求,提供竞争优势。
目前净室理论已在软件工程中相关领域等得到应用 ,并 已
取得极大成功,具有良好的应用前景。
维普资讯
2005 :êj:(踹 34 卷)鳝 2 期 . i克制管 边~凶JfJJ,i这
过程前期,强冷锋锋线位于天山附近,8 日 05 时,冷锋
翻越天山,进入河西走廊后猛烈加强,南疆东部至酒泉、老东
庙出现大范围大风、沙尘暴夭气。 8 日 08 时冷高压位于乌鲁木
齐附近,中心僚为 1 040hpa ,商猫每个站出现沙尘暴且大部分
地方能见度降至 … 千米,达强沙尘暴。冷锋在东移过程
中分为南北两段,商段经阿尔金山越过青藏高原进入柴达木
盆地,在该盆地阁部出现沙尘缘,北段冷锋东移南下至武威地
区,沙尘暴阻城在冷空气前方,是南北带状分布。 8 日 14 时锋
圆的北段位于祁连山北侧…乌哨岭…宁夏东部,商段移至柴达
木盆地中部,与低压中心重合,锋后沙尘暴范围进一步扩大,
向东影响至宁夏、向南影响宝马稍岭。酒泉地区持续降温降
笃,笃区向东发展到j张掖, 15 时冷锋过境兰兰州,出现大风扬沙
夭气, 15 时 35 分观测到沙尘暴,23 时 45 分降雪开始,沙尘天
气结束。
过程与 过程基本相似,前 24 小时 (28 日 08 时) ,
锋线位于天山附近,28 日 14 点冷高压位于乌鲁木齐附近,其
中心值为 1024h阳,锋线东移至哈密-若羌一带,大风沙尘暴
范围从柴达木盆地、河西、内蒙西部,南到乌哨岭,东至贺兰
山。 29 日 08 时,冷高压中心加强到 1036hpa , 09 时,冷锋过境
兰州,两县区出现沙尘暴,市区出现扬沙,沙尘暴范阁向南缩
小。之后逐渐减弱为扬沙、浮尘,并向东南方向移去 o (见图 5 、
图的
固 5 2001 年 4 月 7-8 日冷镰动态阁
阁 6 2001 年 4 月 28-29 日冷镰动态阁
分析表明,锋面经过某地的时间、地点则是大风、沙尘暴出
现的时间和地点。
4 小铺
(札1)结合 2却O∞O创1 年"飞
可以幸看牙出,兰州沙尘暴的出现必然伴随着北方强冷空气的过
境 Q 因兰州地区特殊的地理条件很少能产生本地大风,故只
有北方冷空气足够强时,才能产生形成沙尘暴夭气的动力条
件。
(2) 由于冬、春季空气相对于燥,冷暖空气频繁交替出现,
故冬、春季容易产生沙尘夭气。而且,兰州的沙尘夭气经常比前
阔的沙尘持续时间要长,强度大。这也是地现条件使然。
(3) 一槽一脊的大环流形势有利于北方冷穷气向南爆发。
当乌拉尔脊稳定发展时,脊前冷空气不断堆积加强。如果乌拉
尔脊略为东移,脊前横槽转盟,冷空气就沿西北路径南下。这是
笠州沙尘暴天气产生的最主要的环流背景。
(4 )兰州本站的前期天气背景也决定了兰州沙尘怨的强
度 o 长时间的干旱少雨,使得气温不断升高.气屈不断降低 G 一
旦有冷空气过境,强烈的气压整产生大风天气,健沙尘暴天气
具备了动力起沙条件。
综上述分析,沙尘暴夭气是下势丽土壤条件及大气环流条
件相互作用而形成的。过程发生时,在农业生产中.要做好防风
防冻工作。此外,也要改善兰州地区秃山荒岭的下垫面状况,用
大生态的眼光积极治理自然环境,减少这种天气的产生。
…←·喃←·叶情--←..喃←..叶嗣耻"→E树叶悟--←..-←--←'→--叶胁--←'→--叶--咛庸"→』国咛胁国喃←国咛--叶--喃←--←-~胁--←--←"→--→--→--斗--→--→--→F叩『←"→--斗--付胁"喻←--←-→F阳咛胁'→--咛胁"→--→「
(上4是 58 页)投资者的利兹,还会造成企业资金的闲置E浪费,不 系的资金流动比例恰当,支付能力适度。
利于企业的稳定和发展。所以说制定正确的收益分配政策,确 研究财务风险是为了控制财务风险,加强财务风险的管理
定合理的股利支付比率是降低收益分配风险的关键所在,它的 工作,以增强企业经营管理者对财务风险的预见性和应变能
基本原则应该是既有利于保护投资者(股东)的合法权益,又有 力,防患于未然。
利于企业长期、稳定的发展。切不可盲目的任意提高分配标准, 拍#考文献:
而减少企业积累,也不可盲目地降低分配标准,而损害投资者 [1] ~1量分浅谈加强财务管理,减少财务风险.叫O.
的积极性。另外公司即使制定了合理的收益分配政策,还要正 [2] 倪静提高财务风险意识加强财务管理、茄代级济科学1999 , 94、
确处理留利中积累与消费的比例关系,更新设备,推进技术进 口1 曾哥哥华论稳健性尿则与财务风险决策、财会研究1997 , 28寸O.
步,并及时适黛补充流动资金,使流动资产与流动负债相关联 [4] 刘枪论现代企业的资金筹集及其风险古代经济科学2翩,59哈1.
·咛胁"唰轩"唰轩"唰轩"唰轩-付…‘山伺+←胁.灿、伺+←胁.归←.归←"恤+←--→由"咀←幽咀←"咀←"恤+←-
(上 4接暴 2却5 J贸o川(产 E生k用户、使用环境和软件系统使用模刻的规 4 小结
范)中将对这种需求定义做精确描述。增撞开发计划为特定的 '净窒软件工程具有坚实的函数理论基础和统计理论基础。
软件功能分配一系列增量,并根据整个项目结构和进度来安排 同时,它又是面向工作组的。因为成功的软件是由团队开发而
这些增量的开发和认证进度。 不是个人,并且理论必须简化到实际应用才能引导人的创造力
开发和认证过程在阁右边的层接框中,这些层叠框代表成 和协作精神。并且它是针对经济实用软件的生产。因为在现实
功开发的增囊。增援设计和正确性验证过程用来为一个增最开 生活中,业务和资源的限制必须在软件工程中予以满足。最后,
展设计和编码,并认证其正确性。在每个增量中使用模型和测 净窒旨在提高质量软件的生产,因为高质量改进管理,降低风
试计划过程的引人与开发工作并行,并从使模型产生测试用 险及成本.满足用户需求,提供竞争优势。
例。统计测试和认证过程评价增援是否好用 o 在一个增援结束 目前净交现论日在软件工程中相关领域等待到应用,并日
时,用户对运行系统进行主人并为需求确认提供反馈。 取得极大成功,具有良好的应用前景。
11