软件架构的质量属性分为 6 种:可用性、可修改性、性能、安全性、可测试性、易用性。其他的质量属性一般可纳入这几个属性中。

软件架构方案设计要点(软件架构质量属性之性能)(1)

采用质量属性场景作为一种描述质量属性需求的规范,它由6个部分组成(刺激源、刺激、环境、制品、响应、响应度量)

软件架构方案设计要点(软件架构质量属性之性能)(2)

刺激源:生成该刺激的实体(人、计算机系统或其他激励器);

刺激:刺激到达系统时可能产生的影响(即需要考虑和关注的情况);

环境:该刺激在某条件内发生。如系统可能正处于过载情况;

制品:系统中受刺激的部分(某个制品被刺激);

响应:刺激到达后所采取的行动;

响应度量:当响应发生时,应能够以某种方式对应其度量,用于对是否满足需求的测试。

性能及其实现战术

(1)性能的描述。

软件架构方案设计要点(软件架构质量属性之性能)(3)

对于性能一般场景的图示及性能具体场景,读者可仿照前面可用性的描述方式,自行练习。

(2)性能战术。性能与时间相关,影响事件的响应时间有两个基本因素。

资源消耗:事件到达后进入一系列的处理程序,每一步处理都要占用资源,而且在处理过程中消息在各构件之间转换,这些转换也需要占用资源。

闭锁时间:指对事件处理时碰到了资源争用、资源不可用或对其他计算的依赖等情况,就产生了等待时间。

性能的战术有如下几种。

① 资源需求

减少处理事件流所需的资源:提高计算效率(如改进算法)、减少计算开销(如在可修改性与性能之间权衡,减少不必要的代理构件)。

减少所处理事件的数量:管理事件率、控制采样频率。

控制资源的使用:限制执行时间(如减少迭代次数)、限制队列大小。

② 资源管理

引入并发:引入并发对负载平衡很重要。

维持数据或计算的多个副本:C/S 结构中客户机 C 就是计算的副本,它能减少服务器计算的压力;高速缓存可以存放数据副本(在不同速度的存储库之间的缓冲)。

增加可用资源:在成本允许时,尽量使用速度更快的处理器、内存和网络。

③ 资源仲裁

资源仲裁战术是通过如下调度策略来实现的。

先进/先出(FIFO);

固定优先级调度:先给事件分配特定的优先级,再按优先级高低顺序分配资源;

动态优先级调度:轮转调度、时限时间最早优先;

静态调度:可以离线确定调度。

,