软件产品质量模型8个属性

  • Post author:
  • Post category:其他


软件产品质量模型最新的是GB/T 25000.10—2016,该国标对应的国际标准为ISO/IEC 25010—2011。

软件产品质量模型

将一个软件产品需要满足的质量要求总结为

8个属性

(功能性、兼容性、安全性、可靠性、易用性、效率、可维护性和可移植性),每个属性又可细分出了很多子属性。


软件产品质量模型对产品设计时需要考虑的地方进行了高度概括

。一个高质量的产品,一定是一个在质量的8个属性上都设计得很出色的产品;如果一个产品的设计在质量的8个属性上存在缺失,这个产品的质量一定不会太高。

1. 功能性

软件产品质量属性中的

功能性

是指

软件产品在指定条件下使用时

,提供

满足明示和隐含要求的功能的能力

功能性又被划分成4个“子属性”,这些“子属性”给了我们分析

“明示”+“隐含”需求的思考方向



完备性

指功能集对指定任务和用户目标的覆盖程度。

正确性

指产品或系统提供具有所需精度的正确结果。

适合性

指功能促使指定的任务和目标实现的程度。

功能的依从性

指产品或系统遵循与该功能相关的标准、约定或法规。

2. 兼容性

软件产品质量属性中的

兼容性

是指软件产品在共享软件或者硬件的条件下,

产品、系统或者组件

能够与

其他产品、系统或组件交换信息



实现所需功能的能力

3. 安全性

软件产品质量属性中的

安全性

是指软件产品或系统

保护信息和数据的程度

,其可使用户、产品或系统具有

与其授权类型、授权级别一致的数据访问程度

对于一个应用或服务来说,安全性不仅需要考虑这个

应用或服务本身

,还需要考虑这个

应用或服务承载的系统或者平台

。对于C/S或者B/S架构的产品来说,不仅要考虑“端点”(Client、Browser和Server)本身的安全性,还要考虑数据在

网络传输过程中的安全性

。对于云架构的产品,还要考虑

云端的安全性

,从“云”-“管”-“端”整体去考虑。

从产品设计的角度来说,

无论产品的目标对象是什么,形态是什么,都至少需要具备如下功能

(又称产品隐藏的安全需求)来满足基本的安全属性。

1)

认证和授权功能

:产品、系统、组件需要通过认证才能访问,通过授权来确认访问者的访问权限,不能非法越权、提权。

2)

加密功能

:数据在存储和传输过程中均需要加密。

3)

审计功能

:提供审计功能,并能将审计信息存储足够长的时间(如6个月)。

其中“认证和授权功能”和“加密功能”主要满足

“保密性”和“真实性”

方面的要求;“审计功能”主要满足“

抗抵赖性”和“可核查性”

方面的要求。产品自身在设计上还需要有一定抵御攻击的能力,来满足“

完整性”

方面的要求。

产品自身防脆弱性基本要求,能够抵御端口、用户口令、用户权限、数据传输、安全存储、重放、异常协议、web管理平台或接口的8种安全性攻击,对不

当产品在受到攻击时,可能会对业务造成影响,但是在攻击消除后,产品和系统应该能快速恢复,这个隐含的要求在“可靠性——易恢复性”中描述。

4. 可靠性

软件产品质量属性中的可靠性是指

在特定条件下使用时,软件产品维持规定的性能级别的能力

第一层:产品、系统最好不要出故障,即

成熟性

第二层:产品、系统对故障和异常

有一定的容忍度

,出现故障了不要影响主要的功能和业务,即

容错性

第三层:如果影响了

主要功能和业务

,系统可以尽快定位并恢复,即

易恢复性



可用性代表成熟性(不要出故障,控制失效的频率)、容错性(对故障的容忍度)和易恢复性(控制每个失效发生后系统无法工作的时间)的组合

,实际工作中常用系统、产品可用状态百分比来评估可用性,也就是常说的几个9。

“几个9”是衡量

系统可用性的一种标准方式

,其表示产品、系统在1年的使用过程中最多可能出现的业务中断时间。

MTBF(Mean Time Between Failure)为平均故障间隔时间。

MTTR(Mean Time To Repair)为平均故障修复时间。

系统在遭遇攻击后,产品、系统应该能快速恢复,这个隐含的要求也属于可靠性,也就是易恢复性。

5. 易用性

软件产品质量属性中的

易用性

是指

用户在指定条件下使用软件产品时,其被用户理解、学习、使用,以及吸引用户的能力

。总结8个字:易懂、易学、易用、漂亮。


可辨识性

有比较丰富的内涵:第一,

要求产品可以自动辨别当前的使用环境是否符合基本要求

,如操作系统的要求、浏览器版本的要求、系统资源(如CPU、内存、硬盘)的最小要求等;第二,

用户要能够方便地知道产品能够提供哪些功能

,例如很多产品都提供了升级后对新功能进行自动介绍或演示的功能,除此之外,产品提供的配套教程、网页等也算可辨识性;第三,

产品要直观、易于理解


用户差错防御性

是指系统有

引导用户进行正常操作,避免出错的能力

,例如配置向导功能。


用户界面舒适性

主要包含两个方面的内容:第一,

产品的吸引力,包括风格、设计感、配色等

;第二,

页面交互能力

,如为用户配置页面的跳转功能、提高增删查改操作的方便性等。


易访问性

中要求产品在设计时可以考虑使用者的使用障碍,如年龄障碍、能力障碍等。一个比较典型的例子是在进行UI设计配色时,需要考虑

色弱因素

,保证色彩之间不仅色相有差异,明度也要拉开层次,增加特殊人群的辨识度。


易用性

还需要充分考虑各种

“隐喻”

,例如我们常用“红色”来隐喻严重错误或警告,如果我们用“蓝色”来标识错误,就会让用户觉得不易用。

6. 效率(性能)

软件产品质量属性中的

效率

指在规定条件下,相对于所用资源的数量,

软件产品可提供适当性能的能力

7. 可维护性

软件产品质量属性中的可维护性是指

软件产品可被修改的能力。

这里的修改是指软件产品被纠正、改进,以及为适应环境、功能、规格变化被更新。


模块化属性

是ISO/IEC 25010—2017和GB/T 25000.10—2016新增加的,体现了研发模式的变化对质量的影响。在DevOps下,虚拟化和容器成为很多系统的基础环境,服务/微服务成为流行架构的趋势更加明显,

“解耦”和“模块化”

已成为最基本的架构设计要求。与此同时,模块化也进一步催生了

可复用性

要求,很多公司都有专门的架构师来负责平台、中台或者通用组件的规划和建设,避免“重复造轮子”。


易分析性

是指在系统出现问题后,开发者可以快速定位问题所在的能力。很多产品中的日志、告警、troubleshooting等功能,都属于易分析性。


易修改性

对外的一个重要体现就是产品的升级能力。企业级产品往往对升级都有比较严格的要求,比如升级不能影响业务、能够及时判断升级是否成功(如果升级失败了还要有回退机制)。


易测试性

简单来说就是我们可以很方便地确认系统某个功能是否满足预期。对于易测试性,用户一般不会直接关注(用户往往在出了问题且需要开发者提供已修复证明的时候才会关注),所以常常被开发者和测试者忽视。易测试性可以帮助开发者、测试者快速确认结果,提高处理调试、测试和反馈问题的效率。

8. 可移植性

软件产品质量属性中的

可移植性

是指软件产品从一种环境迁移到另外一种环境的能力。这里的环境,可以理解为硬件、软件或系统等不同的环境。


适应性

,产品能够正常运行在应当支持的不同的硬件、操作系统、平台、浏览器、终端(手机、Pad)上。

如果产品能够被最终用户安装,那么易安装性也会影响易操作性、易修改性和功能性。

易替换性通常和升级功能有关,也会影响到易修改性。但是易替换性还有另外一层深意,就是如果产品是按照标准来设计的,那么不同品牌的产品就是可以互联和互替换的。换句话说,易替换性将降低用户被锁定的风险。



版权声明:本文为weixin_58335587原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。