第七讲软件质量概述课件.ppt
《第七讲软件质量概述课件.ppt》由会员分享,可在线阅读,更多相关《第七讲软件质量概述课件.ppt(84页珍藏版)》请在三一办公上搜索。
1、第 七 讲软件质量概述,第 七 讲,内 容,一、软件面临的问题二、问题分析三、从质量到可信四、设计质量五、安全漏洞,内 容 一、软件面临的问题,一、软件面临的问题,从与软件相关的一些重大事故谈起,一、软件面临的问题从与软件相关的一些重大事故谈起,2014年 3 月 22日:漏洞报告平台乌云网在其官网上公布了一条网络安全漏洞信息指出“携程”安全支付日志可遍历下载导致大量用户银行卡信息泄露(包含持卡人姓名身份证、银行卡号、卡CVV码、6位卡Bin)并称已将细节通知厂商并且等待厂商处理中此外,携程还被曝某分站源代码包可直接下载(涉及数据库配置和支付接口信息),携程网曝支付日志漏洞,2014年 3 月
2、 22日:携程网曝支付日志漏洞,CSDN 网站 600 万用户密码泄露,继CSDN后,天涯、开心网、多玩、世纪佳缘、珍爱网、美空网、百合网、178、7K7K等知名网站也被网友爆出采用明文密码,用户数据资料被放到网上公开下载,2011年12月21日,新浪微博爆出 CSDN 网站 600 多万用户的账户明文密码库泄露,当天出现迅雷快传链接12月22日晚,CSDN发表声明:向公安机关正式报案临时关闭用户登录并要求“2009年4月以前注册的帐号,且2010年9月之后没有修改过密码”的用户立即修改密码,CSDN 网站 600 万用户密码泄露继CSDN后,天涯、开,2012年3月20日,北京警方宣布成功侦
3、破了曾在互联网上造成巨大影响的网站用户数据泄露案,涉案犯罪嫌疑人已经被刑事拘留2012年2月4日,专案组在浙江温州将网民曾某抓获,曾某承认,2010年 4 月利用 CSDN 网站漏洞,非法侵入服务器获取用户数据。在审查中,犯罪 嫌疑人曾某交代,他曾经入侵过某充值平台及某股票系统。警方介绍,在追查 CSDN 数据库泄露源头的过程中,侦查员又破获了另外起网络泄密案,先后抓获 4 名“黑客”。关键线索:”2010 年 9 月,一网民发帖自称掌握 CSDN 数据库,要求与公司进行合作”。,2012年3月20日,北京警方宣布成功侦破了曾在互联网上造成,黑客入侵深圳福彩 篡改数据欲骗3305万巨奖,事件:
4、2009年6月9日,双色球2009066 期开奖,全国共中出一等奖9注,其中深圳有5注。深圳市福彩中心在开奖(程序)结束后发现系统出现异常。经多次数据检验,工作人员判断,福彩中心销售系统 疑被非法入侵,中奖彩票数据记录被人为篡改,5注一等奖中奖数据系伪造。6月10日凌晨2时,福彩中心工作人员报案结果:经调查,这是一起企图利用计算机网络信息系统技术诈骗彩票奖金的案件,所涉金额高达3305万元原因:深圳市某信息技术公司软件开发工程师程某,利用在深圳福彩中心实施其它技术合作项目的机会,通过木马攻击程序,恶意篡改彩票数据,以达到伪造双色球一等奖中奖事实,黑客入侵深圳福彩 篡改数据欲骗3305万巨奖事件
5、:2009,2007年10月30日,奥运门票第二阶段阶段预售首日,科技奥运?,2007年10月30日,奥运门票第二阶段阶段预售首日科技,2007年8月14日14时,美国洛杉矶国际机场电脑发生故障,60个航班的2万旅客无法入关。直至次日凌晨时分,所有滞留旅客才全部入关。原因分析:包含旅客姓名和犯罪记录的部分数据系统(海关和边境保护系统:决定旅客是否可以进入美国领土)瘫痪 2004年9月发生过类似问题,2007年8月14日14时,美国洛杉矶国际机场电脑发生故障,,2006年3月2日14点10分,沪深大盘忽然发生罕见大跳水,7分钟之内上证指数跌去近 20 点。原因分析:当日下午刚上市的招商银行认股权
6、证成交量巨大,导致其行情显示时总成交量字段溢出,使其价格在股票分析软件上成为一条不再波动的直线,让市场产生了恐慌。,2006年3月2日14点10分,沪深大盘忽然发生罕见大跳水,,2005年4月20日上午10时56分,中国银联系统通信网络和主机出现故障,造成辖内跨行交易全部中断。这是2002年中国银联成立以来,首次全国性因系统故障造成的跨行交易全面瘫痪。原因:银联新近准备上线的某外围设备的隐性缺陷诱发了跨行交易系统主机的缺陷,使主机发生故障 软件能否提供支持?,2005年4月20日上午10时56分,中国银联系统通信网络和,2003年8月14日下午4时10分,美国及加拿大部分地区发生历史上最大的停
7、电事故。15日晚逐步恢复后果:经济损失250亿到300亿之间原因分析 俄亥俄州的第一能源(FirstEnergy)公司x下属的电力监测与控制管理系统软件 XA/21 出现错误,系统中重要的预警部分出现严重故障,负责预警服务的主服务器与备份服务器连接失控,错误没有得到及时通报和处理,最终多个重要设备出现故障,导致大规模停电2003年国际十大,2003年8月14日下午4时10分,美国及加拿大部分地区发生,1996年6月4日,欧洲空间局的阿丽亚娜火箭,发射后37秒爆炸。损失6亿美元原因分析:ADA语言编写的一段程序,将一个64位浮点整数转换为16位有符号整数时,产生溢出,导致系统惯性参考系统完全崩溃
8、,1996年6月4日,欧洲空间局的阿丽亚娜火箭,发射后37秒爆,1994年12月30日,美国弗吉尼亚州 Lynchburg 大学的T.R.Nicely博士使用装有 Pentium 芯片的计算机时发现错误:(4195835/3145727)*3145727-4195835!=0后果:Intel 花费4亿多美元更换缺陷芯片原因:Pentium 刻录了一个软件缺陷(浮点除法),1994年12月30日,美国弗吉尼亚州 Lynchburg,2002年6月28日美国商务部的国家标准技术研究所(NIST)发布报告:,“据推测,(美国)由于软件缺陷而引起的损失额每年高达 595 亿美元。这一数字相当于美国国内
9、生产总值的 0.6%”。,2002年6月28日“据推测,(美国)由于软件缺陷而引起的损,二、问题分析,从质量谈起,1、什么是质量?2、什么是软件质量?3、为什么软件质量保障困难?,二、问题分析从质量谈起1、什么是质量?,1、什么是“质量”“好坏程度”ISO 9000(2000版)质量是(产品)的 一组固有特性满足要求的程度,1、什么是“质量”,特性:可区分的特征 物理特征:机械运动、温度、电流等 化学特征:成分组合、合成、分解等,固有特性:某事物中本来就有的、持久的特征直径、硬度、高度、频率 赋予特性:对事物增加的特性 价格、位置二者有一定的相对性,特性:可区分的特征固有特性:某事物中本来就有
10、的、持久的特征,要求:显式要求:有明确规定的要求(行业标准或用户指定)计算机屏幕尺寸隐式要求:约定成俗的要求大楼要有楼梯,产品质量特性:内部特性、外部特性,满足的 程度!满足的 成本!,要求:产品质量特性:内部特性、外部特性满足的 程度!,2、什么是软件质量?,软件质量是:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,2、什么是软件质量?软件质量是:,来源于 Barry Boehm的软件质量模型形成了 ISO-9126的软件质量模型框架影响了 软件生存周期中的不同阶段,区分不同的软件!,来源于 Barry Boehm的软件质量模型区分不同的软件!,Barry Boehm的软件质量模
11、型,阐述性,互用性,数据公开性,正确性,可靠性,效率,完整性,可用性,可维护性,可测试性,灵活性,可移植性,重复性,连贯性,容错性,执行效率/储存效率,存取控制/存取检查,可训练,沟通良好,简单性,易操作的,工具,自我操作性,扩展性,一般性,模块性,软件系统独立性,机器独立性,通讯公开性,正确性,可操作性,Barry Boehm的软件质量模型阐述性互用性数据公开性正,ISO-9126的软件质量模型框架,过程质量 有助于提高 产品质量产品质量 有助于提高 使用质量,ISO-9126的软件质量模型框架外部内部外部使用过程过程过,软件生存周期中的质量,用户质量使用内部质量内部外部质量外部使用和反馈确
12、认验证有助于,*的依从性:软件产品遵循与*相关的标准、约定或法规以及类似规定的能力,外部和内部质量功能性可靠性易用性效率维护性可移植性适合性成熟,使用质量有效性生产率安全性满意度,3、为什么软件质量保障困难?,(1)软件产品与需求符合的程度(2)软件的本质(3)软件度量困难,3、为什么软件质量保障困难?(1)软件产品与需求符合的程度,(1)软件产品与需求符合的程度需求与成本之间的矛盾需求是永无止境的成本是永远有限的微软:质量只要好到能使大量的产品卖给客户NASA:可靠性要达到 99.999%Motorola:6,软件产品属性完全满足用户需求是不现实的,(1)软件产品与需求符合的程度软件产品属性
13、完全满足用户需求是,(2)软件的本质规模、复杂性、演化性网络环境软件研发过程缺乏基础理论支撑软件产品的验证缺乏基础理论支持,(2)软件的本质,(3)软件度量困难“You cant control what you dont measure”Tom DeMarco,1982对比物理属性:尺子、秤、时钟、温度计、测速仪 它们的发展过程!代码、过程、组织,度量无处不在!,(3)软件度量困难度量无处不在!,三、从质量到可信,1、什么是可信?2、什么样的软件是可信的?,Compaq、HP、IBM、Intel和Microsoft等发起(1999):Trusted Computing Platform Al
14、liance 后来增加软件:Trusted Computing Group(2003)微软倡导(2002):Trustworthy Computing,三、从质量到可信1、什么是可信?Compaq、HP、IBM、,1、什么是可信?,TrustedTrustworthyDependabilityConfidenceAssurance,一个实体在实现给定目标时,其行为与结果总是可以预期的,1、什么是可信?Trusted一个实体在实现给定目标时,其行,可信软件,软件是可信的,如果:其服务总是与用户的预期相符(质量?)即使在运行过程中出现一些特殊情况,可信软件软件是可信的,如果:,1、硬件环境(计算机
15、、网络)发生故障2、低层软件(操作系统、数据库)出现错误 3、其它软件(病毒软件、流氓软件)对其产生影响4、出现有意(攻击)、无意(误操作)的错误操作,什么特殊情况?,1、硬件环境(计算机、网络)发生故障什么特殊情况?,2、什么样的软件是可信的?,可用功能:正确、不少、不多可靠性(容错):高安全性(机密性、完整性):高响应时间(从输入到输出):小维护费用(监测、演化):小,2、什么样的软件是可信的?可用,质量与可信(1),可信更多关主体与客体的关系是系统“承诺”与实际表现的符合程度。存在这样一种情形,质量不是很高,但有具体的说明,仍然有高的可信性。同一个系统的质量是确定的,但对不同主体的可信度
16、可能不一样:一个受侵害的系统,对于实际用户是不可信的,对于黑客是可信的对于同一个系统,当用户对其信息掌握得有限时,可信度低,掌握了较多的正面信息时,可信度提升,质量与可信(1)可信更多关主体与客体的关系,质量与可信(2),质量主要是针对客体自身而言的,质量与可信之间的关系 类似于 软件与服务之间的关系,服务、可信 更多地关注 主体:最终用户,软件、质量 更多地关注 客体:软件自身,质量与可信(2)质量主要是针对客体自身而言的质量与可信之间的,1、例子2、模型检测概述3、模型检测算法概览4、模型检测工具,四、设计质量,1、例子四、设计质量,Needham-Schroeder 身份认证协议,N,S
17、1Z,S1,S2N,S2Z,通信过程可能被窃听!加密可以防止窃听!如何约定加密数字?每人 有自己的标识:N每人 公布自己的公钥:只有N才能解开的消息:*N每个对话过程 用一对数字对内容加密:S1,S2每次对话前 需要首先建立这对数字,该协议于1978年被提出并得到广泛应用,N,Z,1、例子,Needham-Schroeder 身份认证协议N,S1,N,S1W,S1,S2N,S2W,N,S1Z,S1,S2N,S2Z,1996年,发现该协议存在设计缺陷:攻击者可以伪装一方的身份,利用模型检测方法!,被欺骗!不可信!,开始伪装,Z,W,N,N,S1WS1,S2NS2WN,S1Z,1992 年,美国C
18、MU 的 Clarke 和学生尝试用 SMV 验证IEEE Future+cache coherence 协议 发现协议设计中的几个以前未被发现的错误 这是 首次 用形式化方法发现 IEEE 标准中的错误 尽管从1988年就开始制定协议,以前都是使用非形式化的方法验证协议,1992 年,美国CMU 的 Clarke 和学生尝试用 S,1992年,美国斯坦福大学的 Dill 和学生用 Murphito 验证 IEEE cache coherence 协议中的Scalable Coherent 接口 发现了几个错误,包括未初始化的变量和逻辑错误等 在上述协议的完整版也存在错误,尽管协议被深入地讨论
19、、模拟甚至实现,1992年,美国斯坦福大学的 Dill 和学生用 Murph,AT&T 的 NewCoRe 项目(89-92)第一个将形式化验证方法应用于软件项目 在CCITT ISDN User Part 协议的开发中,使用了一个特殊的 model checker 5个“验证工程师”分析了 145 条需求 7,500 lines of SDL 源码被验证 发现了112 个错误,大约55%的院士设计需求存在逻辑不一致,AT&T 的 NewCoRe 项目(89-92)第一个将形,ACM 2007年度图灵奖(Turing Award),Edmund M.Clarke,E Allen Emerson
20、,Joseph Sifakis1981年,美国的Edmund Clarke和Allen Emerson以及在法国的Sifakis分别提出了模型检测(Model Checking)的最初概念他们开发了一套用于判断硬件和软件设计的理论模型是否满足规范的方法当系统检测失败时,还能利用它确定问题存在的位置,ACM 2007年度图灵奖(Turing Award)Edm,软件设计模型?Statecharts,用于软件?,软件代码?Use static analysis to extract a finite state synchronization skeleton from the program.M
21、odel check the result.Bandera-Kansas State Java PathFinder-NASA Ames Slam Project(Bebop)-Microsoft,软件设计模型?用于软件?软件代码?,2、模型检测概述,1)基本情况2)什么是模型检测3)基本思想4)过程描述,2、模型检测概述1)基本情况,产生 20世纪80年代初,Clarke,Emerson等提出了用于并发系统性质的CTL逻辑,设计了检测有穷状态系统是否满足给定CTL公式的算法特性能给出反例自动化程度高应用计算机硬件、通信协议、控制系统、安全认证协议、软件安全 等,1)基本情况,产生1)基本情况
22、,定义Clarke&Emerson 1981“Model checking is an automated technique that,given a finite-state model of a system and a logical property,systematically checks whether this property holds for(a given initial state in)that model.”给定一个系统的有限状态模型,和一个逻辑性质,系统地检测:这个模型(含初始状态)满足该性质,2)什么是模型检测,定义Clarke&Emerson 19812)
23、什么是,3)基本思想(1)用状态迁移系统(S)表示系统的行为,用模态/时序逻辑公式(F)描述系统的性质。(2)“系统是否具有某种期望的性质”就转化数学问题“状态迁移系统S是否是公式F的一个模型?”公式表示:S|=F?对于有限状态迁移系统,这个问题是可以判定的。,3)基本思想,4)过程描述,OK,Error trace,or,1、建立模型Finite-state model,2、描述系统性质Temporal logic formula,3、输入工具Model Checker,(F W),Line 5:Line 12:Line 15:Line 21:Line 25:Line 27:Line 41:
24、Line 47:,4)过程描述OKError traceor1、建立模型2、描,3、模型检测算法概览,1)系统的表示(建立模型)2)属性的表示(描述系统性质)3)搜索状态空间(工具分析),2个例子:CTL 与 LTL,3、模型检测算法概览1)系统的表示(建立模型)2个例子:CT,1)系统的表示,通常用有限状态自动机,状态集合Ss1,s2,s3标记(观察)集合Ap,q迁移关系 S Ss1 s2,标记函数L:S P(A)L(s1)=p,1)系统的表示通常用有限状态自动机状态集合Ss1,例子:微波炉系统,StartCloseHeatError,StartCloseHeatError,StartClo
25、seHeatError,StartCloseHeatError,StartCloseHeatError,StartCloseHeatError,StartCloseHeatError,1,3,2,4,6,7,5,start oven,open door,open door,close door,open door,cook,warmup,start oven,reset,start cooking,close door,例子:微波炉系统StartStartStartStar,2)属性表示(Property Specification)用各种模态/时序逻辑表示:线性时序逻辑(LTL:Linear
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 软件 质量 概述 课件
链接地址:https://www.31ppt.com/p-2110112.html