目录

一、评估人员关注的系统质量属性

  • 1.性能

系统的响应能力

经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数

  • 2.可靠性

软件系统在应用或系统错误面前,在意外或错误使用的情况下维持功能特性的基本能力(容错,健壮性

  • 3.可用性

系统能够正常运行的时间比例

  • 4.安全性

系统在向合法用户提供服务的同时,能够阻止非授权用户使用的企图或拒绝服务的能力

  • 5.可修改性

能够快速的用高性价比对系统进行变更的能力。

  • 6.可维护性

在错误发生后“修复”软件系统

  • 7.功能性

系统所能完成所期望的工作的能力

  • 8.可变性

体系结构经扩充或变更而成为新体系结构的能力

  • 9.互操作性

经常与其他系统或自身环境互相作用

  • 10.可测试性

软件发现故障并隔离定位其故障的能力特性

二、架构策略对应实现属性

  • 1.性能

增加计算资源,减少计算开销,引入并发机制,采用资源调度(队列调度)

  • 2.可靠性

主动冗余

  • 3.可用性

心跳,Ping/Echo,主动冗余,被动冗余,选举

  • 4.安全性

侵入检测,用户认证,用户授权,追踪审计,限制访问

  • 5.可修改性

软件模块泛化,限制模块之间通信,使用中介和延迟绑定,运行时注册,接口实现分离,信息隐蔽

  • 6.可维护性

局部性修改

  • 7.功能性

构件协作

  • 8.可变性

预先定义规则,作为相关产品基础

  • 9.互操作性

交互作用

  • 10.可测试性

记录回放

三、体系结构决策

风险点:架构设计潜在的、存在问题的架构决策带来的隐患,影响到系统的某种质量属性

非风险点:在一个范围内可接受的影响某个质量属性

敏感点:为了实现某个质量属性,一个或多个构件的特性

权衡点:影响多个质量属性的特性,是多个质量属性的敏感点

非功能性需求

非功能性需求通常被看做是能力,主要跟服务质量有关,也就是一个软件的质量属性