质量属性定义与风险点敏感点权衡点
阅读数:872 评论数:0
跳转到新版页面分类
架构学
正文
一、质量属性
常见的软件质量属性有多种,例如性能、可用性、安全性、可修改性、易用性、可测试性等。
性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
响应时间、吞吐量
增加计算资源、改善资源需求(减少计算复杂度等)、资源调试(优先级队列等)、资源管理(并发、数据复制等)。
可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
故障间隔时间
冗余、心跳、Ping/Echo、异常。
安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性。
抵御攻击(授权、认证、限制访问等)、追踪审计、信息隐藏、攻击检测、从攻击中恢复。
可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
软件模块泛化、限制模块之间通信、使用中介、延迟绑定。
可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。
(1)影响因素
运行环境、软件规模、软件内部结构、软件的开发方法和开发环境、软件的可靠性投入等。
故障树分析方法:
一种自顶向下的软件可靠性分析方法,即从软件系统不希望发生的事件(顶 事件),特别是对人员和设备的安全及可靠性产生重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件),从而确定软件故障原因的各种可能组合方式和(或)发生概率。基本的步骤是软件故障树的建立、定性分析和定量分析。
失效模式与效应分析方法:
在软件开发阶段的早期,通过识别软件失效模式,分析造成的后果,研究分析各种失效模式产生的原因,寻找消除和减少其有害后果的方法,以便尽早发现潜在的问题,并采取相应的措施,从而提髙软件的可靠性和安全性。
容错设计(N版本程序设计、恢复块设计、冗余设计、双机热备或集群):
恢复块设计(冗余设计):
一个恢复块包含有若干个功能相同、设计差异的程序块文本(一个运行文本、多个备份文本),一旦运行文本出现故障,则用备份文本替换。
N版本程序设计:
通过设计出多个不同版本,对于相同初始条件和相输入的操作结果,实现多数表决,防止其中某一软件模块/版本的故障提供错误的服务。
检测技术:
在软件系统中,无需在线容错的地方,或不能采用冗余设计技术的部分,如果对可靠性要求较高,故障有可能导致严重的后果时,一般采用检错技术,在软件出现故障后能及时发现并报警,其缺点是不能自动解决故障。
降低复杂度设计:
降低复杂度设计的思想是在保证实现软件功能的基础上,简化软件结构,缩短程序代码,优化软件数据流向,降低软件复杂度,从而提高软件可靠性
二、风险点、敏感点、权衡点
指系统架构设计中架构决策所带来的隐患。
指为了实现某种特定的质量属性,多个构件所具有的特性。
影响多个质量属性的特性,是多个质量属性的敏感点。