欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件体系结构 第5章 软件质量属性.ppt

    • 资源ID:2218964       资源大小:3.42MB        全文页数:46页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件体系结构 第5章 软件质量属性.ppt

    第5章,软件质量属性,刘 伟(Sunny Liu)weiliu_,教学内容,引言 质量目标与商业目标 外部质量 内部质量 过程质量,引言,软件已经成为我们日常生活的一个重要部分。软件已经成为许多组织的生命线,在此之前他们从来没有想象到会如此依赖软件来工作。,引言,软件越来越重要,对其质量要求也越来越高。,引言,高质量软件应用领域,引言,高质量软件应用领域,引言,质量目标与商业目标,质量定义词典对质量的定义是:典型的或本质的特征;事物固有的或区别于其他事物的特征或本质;优良或出色的程度。CMM 对质量的定义是:一个系统、组件或过程符合特定需求的程度;一个系统、组件或过程符合客户或用户的要求或期望的程度。,质量目标与商业目标,质量定义古时候人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因素都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某个方面不健康,医生会对症下药。软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改善软件的各种质量属性,从而提高软件的整体质量。,质量目标与商业目标,具有质量的软件是那些与它们的最初目的相一致的软件。高质量的软件符合商业目标和用户需求。它具有正确的功能和优良的属性。,$oftware,质量目标与商业目标,商业目标增加市场占有额快速而准确的市场化有效利用有限的资源产品的系列化低成本生产低成本维护市场的灵活性产品流水线,质量目标与商业目标,用户需求必要的功能低的学习成本使用容易可预测的行为可靠的服务快速的响应快速的输出对非法访问者和病毒的防范,质量目标与商业目标,商业目标决定质量目标大凡软件工程教科书为了强调质量的重要性,总是要举一些历史上发生过的重大软件质量事故,例如航天飞机爆炸、核电站失事、爱国者导弹发生故障等等。这些事故的确不是危言耸听,给人们敲响了质量的警钟。学术界总是喜欢宣扬质量至上的理念,而忽视企业的商业利益,将质量目标凌驾于商业目标之上。许多软件人员都有“质量越高越好”的观念,从教科书学来的,而不是他自己领悟出来的。,质量目标与商业目标,商业目标决定质量目标航空航天等系统对质量要求极高,任何缺陷都有可能导致机毁人亡,所以人们不惜一切代价去消除缺陷。在发射航天器之前,只要发现任何异常,就会立即取消发射指令,直到异常被消除为止。前苏联做得最过分,许多重大武器系统的负责人都签了生死状,系统研制成功则获得英雄勋章,失败则被枪毙。在这种压力下没有人敢对质量有一丝松懈。,质量目标与商业目标,商业目标决定质量目标上述严格系统毕竟是少数,绝大多数普通软件的缺陷并不会造成机毁人亡这样的重大损失,否则没有人愿意从事软件开发了。在日常工作中,我们接触过的软件几乎都是有缺陷的,即便是软件业最优秀的Microsoft,它的软件产品也经常出错甚至导致死机,但人们照样使用有缺陷的软件。,质量目标与商业目标,商业目标决定质量目标企业的根本目标是为了获取尽可能多的利润,而不是生产完美无缺的产品。如果企业销售出去的软件的质量比较差,轻则挨骂,重则被退货甚至被索赔,因此为了提高用户对产品的满意度,企业必须提高产品的质量。但是企业不可能为了追求完美的质量而不惜一切代价,当企业为提高质量所付出的代价超过销售收益时,这个产品已经没有商业价值了,还不如不开发。企业必须权衡质量、效率和成本,产品质量太低了或者太高了,都不利于企业获取利润。企业理想的质量目标不是“零缺陷”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。,质量目标与商业目标,软件策略:实现商业目标和产品目标,质量目标与商业目标,软件开发流程,质量目标与商业目标,质量属性质量属性需求来源于商业和产品目标。关键的质量属性必须刻画系统的细节特征。质量属性场景是用于描述质量属性和表达项目干系人观点的强有力的工具。,质量目标与商业目标,质量属性软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性等等。软件质量属性场景用于描述软件的质量属性。质量属性场景是一种面向特定的质量属性的需求。,质量目标与商业目标,几个重要的质量属性,质量目标与商业目标,质量属性场景质量属性场景由以下六部分组成:刺激源(Stimulus Source):某个生成该刺激的实体。刺激(Stimulus):刺激达到系统时需要考虑的条件。环境(Environment):该刺激在某些条件下发生。制品(Artifact):被刺激的对象,可以是系统或系统的一部分。响应(Response):在刺激达到后采取的行动。响应度量(Response Measure):以某种方式对其进行度量,对需求进行测试。,质量目标与商业目标,质量属性场景,质量目标与商业目标,质量属性场景,质量目标与商业目标,质量属性场景样例可修改性场景:刺激源:开发人员刺激:希望改变用户界面环境:设计时制品:代码响应:修改不产生副作用响应度量:在3小时内,质量目标与商业目标,质量属性场景样例安全性场景:刺激源:未授权用户刺激:希望改变和删除系统中的数据环境:运行时制品:系统中的数据响应:系统拒绝用户访问响应度量:访问成功概率低于0.01%,99.99%遭到拒绝,外部质量,外部质量对于用户而言是可见的包括正确性、健壮性、可靠性、性能、安全性、易用性、兼容性等。,外部质量,正确性正确性是指软件按照需求正确执行任务的能力。“正确性”的语义涵盖了“精确性”。正确性无疑是第一重要的软件质量属性。技术评审和测试的第一关都是检查工作成果的正确性。机器不会主动欺骗人,软件运行出错通常都是人造成的。,外部质量,健壮性健壮性是指在异常情况下,软件能够正常运行的能力。在无法预测的环境中具有“合理的”行为。正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。健壮性有两层含义:一是容错能力,二是恢复能力。从语义上理解,恢复不及容错那么健壮。Unix容错能力很强,可惜不好用。Windows容错能力较差,但是恢复能力很好,而且很好用,占了90%的操作系统市场。,外部质量,可靠性可靠性是指在一定的环境下,在给定的时间内,系统不发生故障(可以正常运行)的概率。软件可靠性分析通常采用统计方法,遗憾的是目前可供第一线开发人员使用的成果很少见,大多数文章限于理论研究。口语中的可靠性含义宽泛,几乎囊括了正确性、健壮性。只要人们发现系统有毛病,便归结为可靠性差。从专业角度讲,这种说法是确切的。时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序设计,预防可靠性祸害。,外部质量,性能性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高,并且占用资源少。性能优化的关键工作是找出限制性能的“瓶颈”。程序员可以通过优化数据结构、算法和代码来提高软件的性能。例如数据库程序的优化。分析算法的复杂度是很好的方法,可以达到“未卜先知”的功效。性能优化就好像从海绵里挤水一样,你不挤,水就不出来,越用力去挤海绵越干。有些程序员认为现在的计算机不仅速度越来越高,而且内存越来越大,因此软件性能优化的必要性下降了。这种看法是不对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,性能优化仍然大有必要。,外部质量,安全性安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。信息安全是一门比较深奥的学问,其发展是建立在正义与邪恶的斗争之上。这世界似乎不存在绝对安全的系统,连美国军方的系统都频频遭黑客入侵。如今全球黑客泛滥,真是“道高一尺,魔高一丈”啊!开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。究竟什么样的安全性是令人满意的呢?一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客行为。,外部质量,易用性易用性是指用户使用软件的容易程度。现代人的生活节奏快,做什么事都想图个方便。所以把易用性作为重要的质量属性对待无可非议。导致软件易用性差的根本原因:理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开发人员不知道如何设计易用的软件产品。开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也就会满意。软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好”、“方便易用”等词来评价软件产品。,外部质量,兼容性兼容性是指不同产品(或者新老产品)相互交换信息的能力。例如两个字处理软件的文件格式兼容,那么它们都可以操作对方的文件,这种能力对用户很有好处。兼容性又称为互操作性。兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则市场将被瓜分。金山软件公司的WPS与微软的Word之争。WPS一定要与Word兼容,否则活不下去。但是Word绝对不会与WPS兼容,除非WPS又在中国占有绝对优势。中国联通和中国移动的手机互联互通问题。(互联网的价值与用户数量的平方成正比),内部质量,内部质量只有开发人员关心它们可以帮助开发人员实现外部质量包括易理解性、可测试性、可维护性、可扩展性、可移植性、可复用性等,内部质量,易理解性易理解性是开发人员理解软件产品的能力,意味着所有的工作成果要易读、易理解,可以提高团队开发效率,降低维护代价。开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工作“精益求精”的结果,而不是潦草应付的结果。,内部质量,可测试性可测试性指的是测试软件组件或集成产品时查找缺陷的简易程度,又称为可验证性。如果产品中包含复杂的算法和逻辑,或如果具有复杂的功能性的相互关系,那么对于可测试性的设计就很重要。如果经常更改产品,那么可测试性也是很重要的,因为将经常对产品进行回归测试来判断更改是否破坏了现有的功能性。,内部质量,可维护性可维护性表明了在软件中纠正一个缺陷或做一次更改的简易程度。可维护性取决于理解软件、更改软件和测试软件的简易程度,可维护性与灵活性密切相关。高可维护性对于那些经历周期性更改的产品或快速开发的产品很重要。你可以根据修复一个问题所花的平均时间和修复正确的百分比来衡量可维护性。,内部质量,可扩展性可扩展性反映软件适应“变化”的能力。在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的改进,程序的变化等等。现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。谈到软件的可扩展性,开发人员首先想到的是怎样提高可扩展性,于是努力去设计很好的体系结构来提高可扩展性,却不考虑该不该做这件事。从商业角度考虑,如果某个软件将不断地推出新版本,那么可扩展性很重要。但是如果软件永远都不会有下个版本(一次性买卖),那么根本无需提高可扩展性。,内部质量,可移植性可移植性指的是软件不经修改或稍加修改就可以运行于不同软硬件环境(CPU、OS和编译器)的能力,主要体现为代码的可移植性。编程语言越低级,用它编写的程序越难移植,反之则越容易。这是因为,不同的硬件体系结构(例如Intel CPU和SPARC CPU)使用不同的指令集和字长,而OS和编译器可以屏蔽这种差异,所以高级语言的可移植性更好。Java程序号称“一次编译,到处运行”,具有100%的可移植性。为了提高Java程序的性能,最新的Java标准允许人们使用一些与平台相关的优化技术,这样优化后的Java程序虽然不能“一次编译,到处运行”,仍然能够“一次编程,到处编译”。软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。,内部质量,可复用性可复用性是指一个软件的组成部分可以在同一个项目的不同地方甚至在不同的项目中重复使用的能力。传统的软件复用技术包括代码的复用、算法的复用和数据结构的复用等,但这些复用有时候会破坏系统的可维护性,可以通过设计模式、面向对象的继承和多态等机制提高软件的可复用性。,过程质量,过程质量与开发活动相关 产品通过过程来进行开发 如开发效率,时间控制等,过程质量,过程质量如果想保持一如既往的开发高质量的产品,过程必须是可靠的如果想适应无法预计的工具或环境改变,过程必须是稳健的过程的执行必须是高效的如果想适应新的管理方式或组织形式,过程必须是可扩展的如果想跨项目和组织来使用,过程必须是可重用的,过程质量,过程改进指南CMM:Capability Maturity Model for Software(软件能力成熟度模型)CMM由美国卡内基-梅隆大学软件工程研究所(CMU-SEI)研制。CMM是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。,思考与练习,某软件公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求:(1)在线交易平台必须在1s内完成客户的交易请求。(2)该平台必须保证客户个人信息和交易信息的安全。(3)当发生故障时,该平台的平均故障恢复时间必须小于10s。(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须要在6小时内完成。针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。请对该在线交易平台的4个要求进行分析,指出每个要求对应何种软件质量属性;并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。,END,Thanks!,

    注意事项

    本文(软件体系结构 第5章 软件质量属性.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开