回顾一下ISO25010软件产品质量模型所定义的8个特性。

软件的8大特性是:

1. 功能适用性

2. 易用性

3. 兼容性

4. 运行效率

5. 可靠性

6. 安全性

7. 可维护性

8. 可移植性

(网络盗图,侵权删除)

前文针对软件的3个特性进行了说明,下面继续对另外5个特性大类进行讨论。

运行效率(performance efficiency)

(网络盗图,侵权删除)

软件的运行效率不单单是一句“流畅”就能够描述的,它指的是在规定的条件下,相对于所利用的资源数量来说,软件所能提供性能的程度。

严格来说,软件的资源利用,包括了其他的软件产品、系统资源、硬件配置、外设配置、各种材料等等。存储介质,传输介质都是能够对软件的运行效率产生比较大的影响的。

运行效率这个特性也是被分为3个子特性来描述的。

时间特性(time behavior)

软件在规定的条件下,产品执行其功能时,能够提供适当的相应和处理时间以及吞吐率的能力。也就是完成一个指令或者用户的功能需求的响应时间。app的打开时间,网页的访问时间,输入数据到得到返回结果的时间,都用时间特性来衡量。

资源利用性(resource utilization)

它是指在特定条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。

资源利用方面即包括了软件方面的接口、吞吐量,也包括了硬件的cpu占有率、内存占有率等。

容量(capability)

一个软件产品或者软件系统参数最大限度满足要求的程度。

参数可以包括存储的项目数、并发用户、通信带宽、事务吞吐率、数据库的大小等。

天猫双十一、12306,这都是对软件的容量有着极高的要求的场景。

可靠性(reliability)

(网络盗图,侵权删除)

可靠性指的是在规定的时间以及条件下,软件产品所能维持其正常的功能操作、性能水平的程度。

一般的衡量可靠性指标是平均无故障时间,平均恢复时间,平均失效间隔时间。

软件的可靠性,是很重要的特性,对这个特性的衡量,并不是说不允许出现软件失效,而是要在规定的场景下满足规定的条件。可靠性在软件特性里,是有四个子特性的。

成熟性(maturity)

软件产品为了避免由软件中错误而导致失效的能力。它是一种内部的接口防范规则。

成熟性主要是指软件产品避免自身产生的错误、自身模块之间的出现的故障而导致的软件失效。子系统、模块、单元模块的设计人员需要仔细分析和自身有关系的子系统、模块、单元,识别出来这些接口上可能会传递的错误。

在模块代码中,需要对这些可能产生的错误预先做出预防,规避可能产生的错误导致自身的失效。而且,在实际的操作中,也要将可能产生的上下游错误尽数考虑,并体现在日志记录中,方便调试时的故障定位。

比方说经常会遇到的接口参数传递时会产生的字段空置,如果不进行非空判断或者空值检查,就很有可能会引起模块抛出空指针,进而导致软件失效。

容错性(fault tolerance)

软件出现故障或者违反指定接口定义的情况下,软件产品维持规定的性能级别的能力,也包括了是小防护能力。它是一种外部的接口防范规则。

容错性主要是指软件和外部的接口进行通信时,软件设计人员需要充分的分析外部接口可能产生的错误,然后在设计时,对这些可能发生的错误进行一一防范或者规避,防止这些由外部传入的错误导致软件自身发生失效。

可用性(availability)

系统、产品或者组建在需要使用时,可操作的和可访问的程度。

可用性可以在系统、产品或者组建处于升级状态期间,通过总时间的比例进行评估。因此可用性时成熟性(管理失败的频率)、容错性、可恢复性(每次失败后的故障停机时间)的组合。

比如对于网站应用来说,成熟性是指该网站能够持续访问的时间长短,而可用性则是网站可访问的时间占总时间的比例。

易恢复性(recoverability)

软件产品在实际的使用过程中,因为各种因素的影响,必然会出现失效的情况,那么易恢复性所衡量的,就是当软件失效发生时,软件产品重新建立规定的性能级别并且恢复受到影响的数据的能力。这个指标不仅要考虑恢复的程度,也要考虑到恢复的速度。

比如说文本编辑软件,当计算机系统发生故障时,编辑器有可能会发生失效,而此时系统逐渐恢复了正常后,编辑器是否能够从失效中恢复,比如“未响应”这种常见的失效,而恢复后的编辑器,是否丢失了已经录入的内容,这些就是易恢复性来衡量的。

安全性(security)

(网络盗图,侵权删除)

安全性是众多对隐私要求高的软件最重要的特性。安全性指的是产品或者系统在保护信息和数据的前提下,方便人员或其它产品、系统对信息和数据访问的程度。

安全性在特性里拥有5个子特性。

保密性(confidentiality)

软件产品或系统确保数据只能被拥有权限进行访问的用户访问的程度。

保密性是防止信息泄露给非授权个人或实体,信息只能被授权用户使用的特性。

现在的保密技术主要包括如下几种:

  • 防侦收:使得攻击者侦听不到有用的信息。
  • 防辐射:防止有用的信息从各种途径辐射出去。
  • 信息加密:这是常见的方式,在加密下,经过密钥的控制,用加密算法对信息进行处理,即使攻击者得到了信息,也会因为没有密钥,无法揭秘信息的内容。
  • 物理加密:使用物理手段,在信息的保护时,采取限制、隔离、掩蔽、控制等措施。

完整性(integrity)

软件产品、系统或者组件防止未经过授权修改计算机程序或者数据信息的程度。

完整性是在信息的存储以及传输过程中,需要保持数据不被偶然或者蓄意的增删改、伪造、重放、更改序列、插入语句等破坏和丢失的特性。它是一种面向信息的安全性,它要求保持信息的原样,要确保数据信息正确的生成以及传输和接受并且存储。

与保密性不同,保密性要求信息不能泄露给未授权的人,而完整性则要求信息不能受到各种因素的破坏。一般的,会影响信息完整性的因素有:设备故障、传输误码、处理误码、存储误码、定是稳定度或精度引起的误码、干扰因素造成的误码、人为攻击系统、计算机病毒破坏等。

而一般的保证信息完整性的手段主要有:

  • 协议:通过各种安全协议,可以有效地检测出被复制的信息、被删除的数据、失效的字段以及被修改的内容。
  • 纠错编码方法:可以完成检错和纠错功能的方法。比较简单的纠错编码方法有奇偶校验法。
  • 密码校验:这种方式是防止篡改和传输失败的重要手段。
  • 数字签名:可以保证信息的真实性。
  • 公证:申请网络管理或者第三方中介机构证明数据的真实性。

不可抵赖性(non-repudiation)

指的是操作命令已下达,软件动作或者事件可以证明已经发生了,这样的事件或者动作不能被否定的程度。

所以不可抵赖性也被称为不可否认性。在信息系统进行信息交互的过程中,确信参与者的真实同一性。利用信息源证据可以防止发信方否认已发送的信息,利用递交接受证据可以防止收信方事后否认已经接受了信息。

可核查性(accountability)

指的是用户或者一个实体在进行了操作后,可以追溯到唯一的操作实体的程度。

简单说就是谁做了什么,在之后可以精准的找到这个操作者的程度。

真实性(authenticity)

指的是用户或者一个实体,他的身份是可以被证明的。

早些年实行的火车票实名制、手机号码实名制,就是为了保障用户信息的真实性。

可移植性(portability)

(网络盗图,侵权删除)

一个软件产品或系统或者组件从一种硬件、三方软件或者其他的操作系统和使用环境转移到另一个环境的有效性和效率的程度。

它包含3个子特性:

适应性(adaptability)

软件产品无需采用有别于为考虑该软件的目的而准备的活动或者手段就可能适应不同的指定环境的能力。也就是软件系统无需做任何变动就能适应不同运行环境的能力。

适应性的例子,比如说java开发的软件,因jvm这样的虚拟层的思路,所以java在各个平台各个系统里的适应性都很强。

易安装性(installability)

易安装性指的是软件产品在制定环境中被安装的能力。

如果是个人软件,安装的操作者是用户,鉴于水平的高低,那么易安装性就可能会导致用户对适应性以及易操作性的体验感。

易替换性(replaceability)

易替换性指的是一个软件产品在相同的操作环境下,替代另一个用途相同的软件产品的能力。

可维护性(maintainability)

(网络盗图,侵权删除)

指的是软件的维护者可以对软件进行修改的有效性和效率的程度。

这种修改,包括了对软件的纠正、改进或者软件对环境、需求和功能的升级变化,也包括软件的升级和更新的安装。

可维护性包含了5个子特性:

模块化(modularity)

模块化指的是软件由各个组件组成,改变一个组件会对其他组件的影响程度。

开发同学常听到的“解耦”,就是这个根据这个特性。

可复用性(reusability)

指的是软件的程序可以被重复调用的程度。

大部分的软件程序代码,都会被严格的控制重码率,因为软件体量如不加控制,必然会影响性能,也会对可维护性造成较大影响。一般的,比如参数校验这种小功能,会在设计阶段就分类,所有用到该参数的都调用此方法,会降低许多的冗余代码书写。

易分析性(analyzability)

指的是评估软件产品在改变其各个部分中的一个或者多个功能,或者诊断软件中的缺陷或失效原因或者识别待修改部分的有效性和效率的程度。

比较贴合测试工作的易分析性体现的场景,就是软件所产生的日志,日志记录要精简,并且能切中要害,对于发生问题,能够快速的使得分析人员找到问题所在是必须要考虑的。

易修改性(modifiability)

好的代码不是看起来简简单单功能强大,而是能够让人快速读懂所实现的功能。易修改性指的是软件可以有效和高效的修改,并且不会引入缺陷或者影响现有软件质量的程度。

易测试性(testability)

易测试性指的是软件产品的能力能够被确认的程度。

易测试性也叫做可测试性,当软件发生故障并隔离、定位其故障的能力特性,在一定的时间和成本前提下,软件能够进行测试设计并执行测试的能力。

一般的可测试性包括可操作性、可观察性、可控制性、可分解性、简单性、稳定性还有易理解性。实际的软件设计中,通常考虑软件的可观察性和可控制性。

(网络盗图,侵权删除)

以上就是对于ISO25010软件产品质量模型所定义的8个特性以及31个子特性的介绍。

在IT行业工作,尤其是开发岗位以及测试岗位,工作内核必不可少的要绕着这些特性展开,如果不了解,可能就会产生许许多多的bug,所以,希望业内看客重视,当然啦,只是浅显的介绍,以了解为主。

故障处理 软件 需求_软件的质量模型(二)相关推荐

  1. 软件需求与软件需求规约

    软件需求与软件需求规约 需求与需求获取 不论是自顶向下的软件开发,还是自底向上的软件开发,正确定义问题,是解决问题的前提 自顶向下:问题到平台 自底向上:平台到问题 --定义问题的基本要素是什么? - ...

  2. 什么是软件需求?软件需求是什么意思?

    什么是软件需求?软件需求是什么意思?   对大多数人来说,若要建一幢数百万元的房子,他一定会与建房者详细讨论各种细节,他们都明白完工以后的修改会造成损失,以及变更细节的危害性.然而,涉及到软件开发,人 ...

  3. 故障处理 软件 需求_如何根据GJB 102A开展软件安全性分析 —— 下篇

    前言 在中,我们介绍了GJB 102A的现状.解读.建议等.今天,我们继续介绍GJB 102A应用详细步骤. 上  篇 1.GJB 102A的型号应用现状 2.GJB 102A与其他标准的关系 3.G ...

  4. 软件需求可测试性,软件需求管理与可跟踪性

    软件需求管理与可跟踪性 发表于:2009-09-15来源:作者:点击数: 软件需求管理与可跟踪性 软件需求管理 需求可跟踪性是需求管理的一部分.需求管理还包括处理 测试 需求. 人们需要根据成本评估需 ...

  5. wpf 360软件管家_软件管家对比及推荐,避免全家桶的坑

     大家好,我是海掌柜,一位专注软件分享.执迷互联网技术,认真工作的 90 后.00 前言 之前海掌柜曾经推荐意见过软件拆卸软件,但是没有介绍过软件管理软件,今天提供软件管家的独立版,免去了小伙伴们下载 ...

  6. 故障处理 软件 需求_「行业知识」地铁车辆故障智能处理分析

    摘 要:为保障地铁线路运营秩序,提高运营服务质量,降低人为因素所导致的故障的影响,必须研究地铁车辆故障智能处理系统,以适应未来地铁车辆的全自动化运行模式.基于此,笔者就地铁车辆故障智能处理进行简要分析 ...

  7. 故障处理 软件 需求_一分钟了解软件测试类型

    根据特定的用户需求关注点.测试目标或测试原因,可以采取针对被测对象特定质量特性的测试活动.一般可分为功能测试.性能测试.负载测试.压力测试.容量测试.安全性测试.兼容性测试等. 1.1 功能测试 功能 ...

  8. 故障处理 软件 需求_几款软件解决日常办公生活所有图片处理需求!

    今天开篇讲讲图像处理,当然这个级别的图像处理和PS修图是比不了的,但它可以处理一些日常应急的工作,比如压缩和转格式什么的,常言道有备无患嘛,具体有哪些一起来看吧.画像浏览器 介绍: 虽然Windows ...

  9. 故障处理 软件 需求_自动挡变速箱故障什么问题

    知乎视频​www.zhihu.com 在日常使用的过程中,如果变速箱出现问题的话,都会在组合仪表上进行故障的提示,变速箱的故障提示因为比较多,简单为大家列举了几种: 第一种,变速箱过热:请停车!不要继 ...

最新文章

  1. 码农技术炒股之路——配置管理器、日志管理器
  2. python一个富翁试图与陌生人做一笔生意_VB实验报告一
  3. boost::math模块使用 Brent 方法求函数最小值的示例
  4. win7 桌面右下角音量图标消失的解决办法 参考
  5. c++ 多态 运行时多态和编译时多态_C++学习笔记之多态
  6. ASP.NET的路由系统:URL与物理文件的分离
  7. python快速入门 数据输出和基本类型 常用的循环遍历等
  8. springboot的使用html页面及css、js路径的配置
  9. Linux学习笔记1-在CentOS 7中安装配置JDK8
  10. 4.jenkins 添加一台 Linux 服务器
  11. 33.卷1(套接字联网API)---调试技术
  12. Web API 方法的返回类型、格式器、过滤器
  13. xml.html一键解密工具,AutoJs一键解密
  14. Android对话框集合
  15. 看图工具MassiGra使用指南
  16. win10邮箱怎么设置qq邮箱服务器地址,老鸟给你说win10自带邮件怎么添加qq邮箱的解决方式...
  17. CQOI2016滚粗记
  18. 计算机主机内有的硬件有哪些,电脑主机内有哪些硬件
  19. 基于JavaScript的餐厅点餐系统微信小程序的设计与实现
  20. APP服务器与Web服务器的区别是什么?

热门文章

  1. 基于ROS的手眼标定程序解决方案|支持眼在手外/上
  2. Private关键字详解
  3. 红孩子VS腾讯合作项目,API对接被评为腾讯优秀案例
  4. 在MAC 中修改虚拟机配置文件
  5. 浪漫故事:常见HTTP状态码的另类解析
  6. ENVI Classic:如何将多个单波段影像合成为一个多波段影像?
  7. 软件项目管理期末复习--软件需求
  8. Java笔记--自己工作涉及
  9. 联发科4G方案因势利导 2016年芯片市场有望迎来大反转
  10. 前端在线预览 tiff 格式的图片