




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、哈尔滨工业大学计算机学院唐好选Email:u“净室”(Cleanroom)一词源自半导体工业中硬件生产车间,通过严格、洁净的生产过程预防了缺陷的产生,而不是在事后再去排除故障。借用这个词,充分显示了净室技术“防患于未然”的主导思想u净室软件工程(CSE)是一种应用数学和统计学理论生产软件的工程技术。力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷3u通过在第一次正确的书写代码增量,并在测试前验证其正确性来避免成本过高的缺陷消除过程。它的过程模型是在代码增量集成到系统的同时,进行代码增量的统计质量验证。u强调规格说明和设计上严格性,使用基于数学的正确性证明对结果设计模型的每个元素进行
2、形式化验证,在规格说明和设计中消除错误,以“干净”的方式进行制造。u20世纪70年代末80年代初,资深数学家和IBM客座科学家Harlan Mills阐述了将数学、统计学及工程学上的基本概念应用到软件的设想 uMills的观点:程序中出现错误的唯一方式是作者将错误引入进去的。没有其他的方式正确实践的目标是:设法避免引入错误,通过测试或其它任何运行程序的方式来消除错误。5u 两大基本观点促进了Mills的工作:首先,程序是数学函数规则,其次,潜在的程序执行是无穷的,质量认证必须进行统计采样u 第一个观点使所有函数理论向软件开发敞开大门,导致以下技术的产生:盒式结构规范及设计、函数理论正确性检验及
3、增量开发u 第二个观点使所有统计理论在软件测试方面得到应用,导致了统计使用测试和质量认证u 致力于通过防止软件缺陷来提高软件质量u 立足于严格的科学理论基础u 强调净室小组:制定系统规范、开发和认证;u 基本目标是:开发过程的可管理性和使用时的无失效性u 函数理论和抽样理论u 函数理论u 一个函数定义了从定义域到值域的映射。一个特定的程序好似定义了一个从定义域(所有可能的输入序列的集合)到值域(所有对应于输入的输出集合)的映射。这样,一个程序的规范就是一个函数的规范u 抽样理论u 不可能对软件的所有可能应用都进行测试。把软件的所有可能的使用情况看作总体,通过统计学手段对其进行抽样,并对样本进行
4、测试,根据测试结果分析软件的性能和可靠性u统计过程控制下的增量式开发(统计过程控制下的增量式开发(Incremental Development):增量是最终软件产品的功能子集,系统功能随时间增加u基于函数的规范、设计基于函数的规范、设计:盒子结构方法按照函数理论定义了三种抽象层次:行为视图、有限状态机视图和过程视图。u 规范从一个外部行为视图(称为黑盒)开始u 然后被转化为一个状态机视图(称为状态盒)u 最后由一个过程视图(明盒)来实现u 盒子结构是基于对象的u正确性验证正确性验证:是CSE的核心,正是由于采用了这一技术,净室项目的软件质量才有了极大的提高 u统计测试(统计测试(Statis
5、tically Based Testing)和软件认证)和软件认证:净室测试方法采用统计学的基本原理,即当总体太大时必须采取抽样的方法。首先确定一个使用模型(usage model)来代表系统所有可能使用的(一般是无限的)总体。然后由使用模型产生测试用例。因为测试用例是总体的一个随机样本,所以可得到系统预期操作性能的有效统计推导项目规划、项目管理、性能改善、工程变化项目规划、项目管理、性能改善、工程变化结构规范结构规范( 概念、模块、执行概念、模块、执行)功能规范功能规范需求分析需求分析 使用规范使用规范 增量设计、正确性验证增量设计、正确性验证统计测试、认证统计测试、认证 使用模型、测试规划
6、使用模型、测试规划增量增量 规划规划 用用户户用户评价的用户评价的累计规范累计规范用户评价的用户评价的累计认证增量累计认证增量系系统统工工程程需求需求收集收集盒结构盒结构规格规格 形式化形式化 设计设计正确性正确性验证验证代码代码检查检查测试计划测试计划 统计性统计性使用使用测试测试认证认证 需求需求 收集收集盒结构盒结构规格规格形式化形式化 设计设计正确性正确性验证验证代码代码检查检查测试计划测试计划 统计性统计性使用使用测试测试认证认证 净室技术净室技术- -增量开发技术增量开发技术u引用透明性原理引用透明性原理: :u一个表达式可用与其等值的任意子表达式代替一个表达式可用与其等值的任意子
7、表达式代替, ,一个给一个给定函数定函数( (规范规范)f)f能改进为如下任何一种形式能改进为如下任何一种形式do f1,f2 enddodo f1,f2 enddoif p then f1 else f2 endifif p then f1 else f2 endifwhile p do f1 enddowhile p do f1 enddou函数的合并对原函数函数的合并对原函数f f在数值影响上必须等价在数值影响上必须等价u软件增量开发的基础在于为程序制定数学函数规则软件增量开发的基础在于为程序制定数学函数规则 因此程序开发作为一种自顶向下的控制结构或子函数因此程序开发作为一种自顶向下的控
8、制结构或子函数( (子规范子规范) )的函数改进的函数改进( (规范规范) )过程过程, ,将导致将导致对象或函数的分解对象或函数的分解或结合或结合功能规范功能规范. 增量规划增量规划增量设计增量设计/验证验证 增量增量1设计设计/验证验证使用规范使用规范 增量测试与认证增量测试与认证 增量增量2设计设计/验证验证增量增量n设计设计/验证验证产品评估与过程改进产品评估与过程改进增量增量1统计统计增量增量1-2统计统计增量增量1-n统计统计增量开发的进度分配增量开发的进度分配增量增量1:定义顶层结构及桩组件定义顶层结构及桩组件增量增量2:根据用户反馈根据用户反馈,用新的可重用用新的可重用桩组件代
9、替桩组件桩组件代替桩组件 增量增量3:用新的可重用桩组件部件代替用新的可重用桩组件部件代替桩组件桩组件规范:u从一个外部视图(黑盒)开始转化为一个状态视图(状态盒),由一个过程视图(明盒)来实现u三个盒形式不同,但行为等价,称为盒结构u将数学函数逐步扩展为逻辑连接词(如if-then-else)和子函数构成的结构,这种扩展一直进行下去,直到所有标识出来的子函数可以用程序设计语言直接表达16u每个明盒规格说明代表了一个完成状态盒转换所需的过程(子函数)的设计,使用结构化程序设计结构和逐步求精u在每个求精层次上,净室团队执行一次形式化正确性验证。为此,将一类正确性条件集合附加到结构化程序设计结构上
10、u如果函数f被扩展为序列g和h,则f所有输入的正确性条件是:执行g之后再执行h能完成f的功能吗?u如果一个函数p被精化为ifthen q else r的条件形式,则对p的所有输入的正确性条件是(1)只要条件c为真,q能完成p的功能吗?(2)只要条件c为假,r能完成p的功能吗?u如果状状 态态 变换变换 状态盒状态盒输入输入S输出输出R精精化化过过程程验验证证过过程程状态状态 BB1 BB2明盒明盒SR盒结构盒结构精化和精化和验证验证F=s* RRSH黑盒黑盒(所需行为所需行为)历史激励历史激励响应响应u对系统拥有者和用户:黑盒定义了他们分析和协商所需的行为u对系统开发者:黑盒定义待设计和实现所
11、需的行为u对系统测试者:黑盒定义了在测试过程中待确认所需的行为基于基于1212个月平均销售额的预测部分情况个月平均销售额的预测部分情况规则号规则号 1 激励历史条件激励历史条件历史记录历史记录包含小于包含小于11个个月的月的历史记历史记录至少有录至少有11个个月的月的 响应响应 接收接收 的的 不求平均不求平均当前激励当前激励2 的最近的最近加上加上当前的当前的后求平均后求平均对系统或其组件进行初步细化;定义状态空间状态信息来自黑盒中需要保存的激励元素变换当前的激励S (Stimulus) 映射响应R (Response)旧状态OS (old State )映射到新状态NS (new Stat
12、e) 即 (OS,S) (NS,R) 销售额情况表销售额情况表规则号规则号 旧状态旧状态 激励激励 新状态新状态 响应响应 黑盒规则号黑盒规则号不含不含记录记录 1在在中中为为增加记增加记录出现最新录出现最新收到收到的的但但不能求平均值不能求平均值121中中包含的包含的记记录少于录少于11个月个月 记录己记录己在在中中,把把作为最新作为最新收到收到的的但不能求平但不能求平均值均值明盒(清晰盒)是一个计算机程序或程序集将 (OS,S) (NS,R),借助过程实现明盒的过程可以重用己有的黑盒或在求精过程中引入新的黑盒明盒的正确性验证是基于数学方法,证实一个过程与其规范相符黑盒黑盒状态盒状态盒白盒白
13、盒黑盒状态盒明盒黑盒状态盒明盒黑盒状态盒明盒u 引用透明性(Referential Transparency) 明确组件所有需求,在逻辑上不需进一步规范u 事务闭包(Transaction Closure) 事务是充分、足够的、可获得及保留所有状态数据u 状态迁移(State Migration) 系统数据应该迁移和封装到最小的系统部分,不必复制更新u 共享服务(Common Services) 对于多次用到的系统部分可定义共享服务,创建重用机会 当测试的规模太大时,要采取抽样方法,选择一个模型(马尔可夫模型、形式化语言等)代替使用的规模,然后用模型产生测试用例(测试用例是规模的一个随机样本)
14、,可以得到系统预期操作性能的有效统计推导 统计使用测试等同于“以用户试图使用软件的方式来测试软件”。为了完成测试工作,净室测试团队必须确定软件的使用概率分布,按照使用概率为每个触发集合生成测试用例 (1) 定义系统需求 (2) 确定和确认黑盒 (激励) (响应) (3) 确定和验证状态盒 (状态,激励) (新状态,响应) (4) 设计和验证明盒 (5) 对新黑盒重复上述过程27u 设计并验证一个小的程序,该程序对某给定的整数x,找出其平方根的整数部分y28u定义入口和出口条件。为了证明设计的正确性,需要证明图中表示的条件init、loop、cont、yes和exit在所有情形下都是正确的29u
15、条件init:假定入口条件是正确的,因此,init条件的第一部分x0 是满足的,在流程图中,init条件前的语句设置为y=0,因此,init条件的第二部分也是满足的,因此,init为真u条件loop可能以两种方式之一出现(1)直接从init(满足)或(2)通过穿过cont的控制流,因为条件cont与loop相同。无论从哪条路径到达,条件loop都为真u条件cont:如果(y+1)2 x,则y2 x,条件成立u条件yes在条件逻辑中被测试,一定为真ux为被赋值或修改,保持不变,测试条件(y+1)2 x不成立时才能到达exit,因此(y+1)2 x,loop条件必须为真,因此exit满足uy递增而
16、x不变,循环一定终止u CMM是软件组织进行软件过程改进以及评估和评价软件能力的基准。但在具体的过程改进实施中,需要有效的软件工程方法支持u 净室软件工程正是为过程改进提供了具体实施方法,它能够及早发现并消除缺陷,显著提高软件的正确性、可靠性和可理解性,降低项目的成本,提高软件质量,延长软件的生命周期u可将净室软件工程应用到CMM的实践中,从组织管理和技术工程实践两个方面改进软件过程,从而更加经济有效地提升软件质量u在CMM中,关键实践仅仅描述了应该“做什么”,并没有给出更没有规定“如何”去具体操作,操作的方法和步骤必须由软件组织自己去解决uCMM只是对软件组织过程改进的指导,而非解决一切软件
17、开发过程中的问题的法宝。在实施CMM的过程中,仍然需要有效的软件工程技术和方法,如“净室软件工程”方法的支持基于基于CMM的净室裁剪的净室裁剪u由于净室过程和技术的优点以及在软件企业中实施所遇到的困难,有必要对净室进行基于CMM的裁剪基于基于CMM的裁剪原则的裁剪原则u裁剪必须符合净室的基本原则(是净室区别于传统软件工程方法的关键)u设计原则:开发人员应该并且能够生产出在被测试前就已经达到趋于零缺陷的产品u测试原则:净室测试的目的不是寻找缺陷,而是度量软件产品的质量和性能,为软件过程的改进提供统计数据u必须结合软件组织自身的能力成熟度现状。自身软件能力不同,过程改进的主要目标也不相同u必须结合
18、所开发软件的类型基于净室的裁剪方法基于净室的裁剪方法u引入净室的三个阶段u初始阶段:首先要引入净室小组开发的组织模式和质量控制下的增量式生命周期模型,将开发与测试分离,建立起基本项目过程。结合自身能力,引入形式化程度较低的黑盒规范与验证方法u中级阶段:加入更多必须的管理规范,明确定义自身的软件过程。同时引入比较形式化的净室规范和验证技术,进一步降低开发阶段的缺陷率,提高软件生产率。并根据需要进行有限的统计测试u高级阶段:引入净室统计测试技术,很好地实现对质量和性能的量化,为高层的决策提供可靠的数据依据针对净室技术形式化程度的裁剪针对净室技术形式化程度的裁剪(1) 对盒式规范技术的裁剪:u黑盒规
19、范对系统的外部可见行为做一个完整的定义,隐藏了软件设计和实现的所有细节,适用于软件开发的任何粒度中。规范的描述形式可以不同:自然语言、半形式化的规范语言、而严格的函数表达方法u状态盒规范是对系统内部数据的描述,它的实现形式依赖于黑盒规范u明盒规范是对黑盒与状态盒逐步求精的实现,最终形式便是源代码。既可以是结构化的,也可以是面向对象的,不受开发方法和语言的限制针对净室技术形式化程度的裁剪针对净室技术形式化程度的裁剪(2) 对盒式规范验证技术的裁剪:验证过程基于非执行的测试方法寻找并消除开发阶段的缺陷。因盒式规范的形式化不同,验证方法也有相应变化。u检查方法简单易行,但是不够严格,基于潜在错误清单
20、的审查方法有规范的步骤,是一种经济有效的错误检测方法u基于函数理论的正确性证明,要求在盒式规范过程中,建立明确的预期函数,这就要求盒式规范本身的形式化程度较高,此外要求评审人员有相应的数学知识和专用CASE工具的支持(3) 对统计测试技术的裁剪:规范和验证阶段采用的技术都不严格时,更需测试过程来保证产品发布前的低缺陷,以减少产品的维护费用针对净室技术形式化程度的裁剪针对净室技术形式化程度的裁剪uCMM与净室技术都不是万能的。CMM提出的是完整的软件开发和管理的过程,而净室更多的是技术方面的支持。两者相互一致并相互补充。将二者合理地结合,能够获得更高的软件质量、更低的开发成本,更高的生产效率和更长的软件生命周期净室过程的优点净室过程的优点特点小组开发的组织模式统计控制下的增量开发开发与测试并行进行所起作用 1)降低人员间的通信和协调2)减少对权威的依赖3)提高团队的开发能力4)小组评审尽早发现缺陷并显著降低成本1)开发过程可预测2)开发进度可见3)开发在智能控制下易于适应需求的变化,促进持续的求精1)开发阶段就完成预防缺陷和修正缺陷的工作2)测试过程完全从用户使用角度出发3)重视质量的度量与反馈u CSE太理论化,需要更多的数学知识。其正确性验证的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子宠物智能定位器考核试卷
- 电感器在电力系统动态稳定性分析中的应用考核试卷
- 石材加工过程中的色彩管理考核试卷
- 肉类副产品加工新技术在提升食品安全水平中的应用考核试卷
- 电池制造与医疗救护设备考核试卷
- 粮食仓储管理考核试卷
- 现代农业园区建设与管理考核试卷
- 物联网城市安全与应急响应考核试卷
- 矿山机械信息化建设与数据管理考核试卷
- 新能源汽车动力电池级碳酸锂全球市场销售与推广合同
- 03D201-4 10kV及以下变压器室布置及变配电所常用设备构件安装
- 湖南中医药大学学位英语历年真题及答案
- DL-T+1860-2018自动电压控制试验技术导则
- 单螺杆泵说明书
- JT-T-1213-2018陆港设施设备配置和运营技术规范
- 五年级劳动课件收纳
- 行政复议法-形考作业2-国开(ZJ)-参考资料
- 2023-2024学年人教版数学八年级下册期中复习卷
- (高清版)TDT 1044-2014 生产项目土地复垦验收规程
- MBA-组织行为学课件
- 白云枕头-模板参考
评论
0/150
提交评论