系统质量属性与架构评估

前言

软件系统属性包括功能属性和质量属性,软件架构的重点是质量属性。

软件系统质量属性

软件质量属性的本质是软件系统与各种需求(显性的和隐性的)的一致性。

质量属性的概念

可测量,用来描述stockholder的期望。分为:

  1. 开发期质量属性
    • 易理解性,容易理解
    • 可扩展性,适应新需求
    • 可重用性,可以复用的难易程度
    • 可测试性,可以被测试
    • 可维护性,维护简单
    • 可移植性,迁移系统
  2. 运行期质量属性
    • 性能,速度、吞吐量等
    • 安全性,阻止非授权
    • 可伸缩性,服务增加减少,自动变化
    • 互操作性,其他系统交互
    • 可靠性,持续无故障
    • 可用性,正常工作的占比
    • 鲁棒性,非正常情况下仍能正常运作。也成健壮性和容错性
知识点
  1. 可伸缩性和可扩展性容易混淆,前者是系统根据俄流量自动伸缩服务质量。后者是面对新变化更加容易修改。
  2. 性能测试需要基准测试程序来衡量。
  3. 可靠性MTBF=MTTF+MTTR,失效间隔时间等于修复时间和失效等待时间,可靠性强调失效时间短,修复时间快。而可用性强调用户是否有感知,99.99%的可用用户是无法感知的。
  4. 容错性是系统错误后仍能确保正常运作,而健壮性不一定,系统有任何不确定的问题后按照既定的策略执行即可,确保系统不会毁坏。

面向架构的质量属性

  1. 性能
  2. 可靠性
  3. 可用性
  4. 安全性
  5. 可修改性
    • 可维护性
    • 可扩展性
    • 结构重组
    • 可移植性
  6. 功能性
  7. 可变形性
  8. 互操作性

质量属性场景描述

  1. 刺激源,生成刺激的实体
  2. 刺激,刺激到达系统时的条件
  3. 环境,系统处于什么状况
  4. 制品,被激励的一部分
  5. 响应,激励到达后采取的行动
  6. 响应度量,如何度量响应

系统架构评估

对架构的选取进行决策。包括,基于问卷调查、基于场景、基于度量。

系统架构评估的重要概念

  1. 敏感点,一个或多个构件的特性。
  2. 权衡点,影响多个质量属性的特性。

评估方法

  1. SAAM,1983年,非功能质量属性。
  2. ATAM,多个质量属性相互竞争下,折中的必要性。
  3. CBAM,,成本效益。Cost- Benefit。
  4. SAEM,起步阶段使用。
  5. SAABNet,不确定性和不完整的知识推理。
  6. SACMM,软件架构修改的度量方法。
  7. SASAM,预期和实际架构的比较。
  8. ALRRA,可靠性风险。
  9. COSMIC + UML,面向对象和组件图。
  10. AHP,层次分析法。
知识点
  1. ATAM,是多个质量属性折中的策略。
  2. SAEM,这里的M时model,所以他是原型,一般作为起始。
  3. CB,是成本效益。
  4. ATAM使用适量效用树描述场景。ATAM关注的是性能、安全性、可修改性、可用性。
  5. 质量属性效用树可以进行优先级的排序,(H/M/L),它的机构是,树根-》质量属性-》属性分类-》场景(叶子结点)。(H、L)表示,非常重要,容易实现。

ATAM方法架构实践

阶段一(演示)

  1. 介绍ATAM
  2. 介绍业务驱动因素
  3. 介绍要评估的体系结构

阶段二(调查与分析)

  1. 确定架构方法
  2. 生成质量效用树
  3. 分析体系结构方法,这里就要用到权衡带你敏感点和优先级。

阶段三(测试)

  1. 头脑风暴和优先场景
  2. 分析结构方法

阶段四(报告)

收集所有信息:

  1. 效用树
  2. 场景
  3. 分析问题
  4. 风险
  5. 最终确定的架构
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容