【系统架构设计师】面向架构评估的质量属性

目录

        • 1.说明
        • 2.质量属性
          • [2.1 性能](#2.1 性能)
          • [2.2 可靠性](#2.2 可靠性)
            • [2.2.1 容错](#2.2.1 容错)
            • [2.2.2 健壮性](#2.2.2 健壮性)
          • [2.3 可用性](#2.3 可用性)
          • [2.4 安全性](#2.4 安全性)
          • [2.5 可修改性](#2.5 可修改性)
            • [2.5.1 可维护性(Maintainability)](#2.5.1 可维护性(Maintainability))
            • [2.5.2 可扩展性(Extendibility)](#2.5.2 可扩展性(Extendibility))
            • [2.5.3 结构重组(Reassemble)](#2.5.3 结构重组(Reassemble))
            • [2.5.4 可移植性(Portability)](#2.5.4 可移植性(Portability))
          • [2.6 功能性](#2.6 功能性)
          • [2.7 可变性](#2.7 可变性)
          • [2.8 互操作性](#2.8 互操作性)
        • 3.例题
          • [3.1 例题1](#3.1 例题1)
1.说明
  • 1.为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。
  • 2.在架构评估过程中,评估人员所关注的是系统的质量属性。
  • 3.评估方法所普遍关注的质量属性有以下几种。
  • 4.P272。
2.质量属性
2.1 性能
  • 1.性能(Performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
  • 2.经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量表示。
  • 3.性能测试经常要使用基准测试程序。
2.2 可靠性
  • 1.可靠性(Reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。
  • 2.可靠性是最重要的软件特性,通常用来衡量在规定的条件和时间内,软件完成规定功能的能力。
  • 3.可靠性通常用平均失效等待时间(Mean Time To Failure,MTTF)和平均失效间隔时间(Mean Time Between Failure,MTBF)来衡量。
  • 4.在失效率为常数和修复时间很短的情况下,MTTF和MTBF几乎相等。
  • 5.可靠性可以分为两个方面:容错和健壮性。
2.2.1 容错
  • 1.容错的目的是在错误发生时确保系统正确的行为,并进行内部"修复"。
  • 2.例如在一个分布式软件系统中失去了一个与远程构建的连接,接下来恢复了连接。
  • 3.在修复这样的错误之后,软件系统可以重新或重复执行进程间的操作,直到错误再次发生。
2.2.2 健壮性
  • 1.这里说的是保护应用程序不受错误使用和错误输入的影响,在发生意外错误事件时确保应用系统处于预先定义好的状态。
  • 2.值得注意的是,和容错相比,健壮性并不是说在错误发生时软件可以继续运行,它只能保证软件按照某种已经定义好的方式终止执行。
  • 3.软件架构对软件系统的可靠性有巨大的影响。
  • 4.例如,软件架构设计上通过在应用程序内部采用冗余机制,或集成监控构件和异常处理,以提升系统可靠性。
2.3 可用性
  • 1.可用性(Availability)是系统能够正常运行的时间比例。
  • 2.经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
2.4 安全性
  • 1.安全性(Security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
  • 2.安全性可根据系统可能受到的安全威胁类型来分类。
  • 3.安全性又可划分为机密性 、完整性 、不可否认性 及可控性等特性。
  • 4.其中,机密性保证信息不泄露给未授权的用户、实体或过程。
  • 5.完整性保证信息的完整和准确,防止信息被非法修改。
  • 6.不可否认性是指信息交换的双方不能否认其在交换过程中发送或接收信息的行为。
  • 7.可控性保证对信息的传播及内容具有控制的能力,防止为非法者使用。
2.5 可修改性
  • 1.可修改性(Modifiability)是指能够快速地以较高的性价比对系统进行变更的能力。
  • 2.通常以某些具体的变更为基准,通过考查这些变更的代价来衡量可修改性。
  • 3.可修改性包含以下4个方面。
2.5.1 可维护性(Maintainability)
  • 1.这主要体现在问题的修复上,在错误发生后"修复"软件系统。
  • 2.可维护性好的软件架构往往能做局部性的修改并能使对其他构件的负面影响最小化。
2.5.2 可扩展性(Extendibility)
  • 1.这一点关注的是使用新特性来扩展软件系统,以及使用改进版本方式替换构件并删除不需要或不必要的特性和构件。
  • 2.为了实现可扩展性,软件系统需要松散耦合的构件。
  • 3.其目标是实现一种架构,能使开发人员在不影响构件客户的情况下替换构件。
  • 4.支持把新构件集成到现有的架构中也是必要的。
2.5.3 结构重组(Reassemble)
  • 1.这一点处理的是重新组织软件系统的构件及构件间的关系,例如通过将构件移动到一个不同的子系统而改变它的位置。
  • 2.为了支持结构重组,软件系统需要精心设计构件之间的关系。
  • 3.理想情况下,它们允许开发人员在不影响实现的主体部分的情况下灵活地配置构件。
2.5.4 可移植性(Portability)
  • 1.可移植性使软件系统适用于多种硬件平台、用户界面、操作系统、编程语言或编译器。
  • 2.为了实现可移植,需要按照硬件、软件无关的方式组织软件系统。
  • 3.可移植性使系统能够在不同计算环境下运行的能力,这些环境可能是硬件、软件,也可能是两者的结合。
  • 4.如果移植到新的系统需要做适当更改,则该可移植性就是一种特殊的可修改性。
2.6 功能性
  • 1.功能性(Functionality)是系统能完成所期望的工作的能力。
  • 2.一项任务的完成需要系统中许多或大多数构件的相互协作。
2.7 可变性
  • 1.可变性(Changeability)是指架构经扩充或变更而成为新架构的能力。
  • 2.这种新架构应该符合预先定义的规则,在某些具体方面不同于原有的架构。
  • 3.当要将某个架构作为一系列相关产品(例如,软件产品线)的基础时,可变性是很重要的。
2.8 互操作性
  • 1.作为系统组成部分的软件不是独立存在的,通常与其他系统或自身环境相互作用。
  • 2.为了支持互操作性,软件架构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。
  • 3.程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操作性也影响应用的软件架构。
3.例题
3.1 例题1
  • 1.题目

    1.在架构评估过程中,评估人员所关注的是系统的质量属性。其中,(B)是指系统的响应能力:即经过多长时间才能对某个事件做出响应,
    或者在某段时间内系统所能处理的事件的(A)。
    问题1
    A.安全性
    B.性能
    C.可用性
    D.可靠性
    问题2
    A.个数
    B.速度
    C.消耗
    D.故障率

  • 2.解析

    1.性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
    2.可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
    3.安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
    4.可靠性:产品在规定的条件和规定的时间内,完成规定功能的能力。

相关推荐
长不大的杨瑞杰2 天前
ChatGPT 广告技术栈架构拆解:多轮意图、LLM 工具编排、ANN 召回与拍卖闭环
人工智能·chatgpt·系统架构·推荐系统·广告
艺杯羹3 天前
Windows原生软件锁设计:从暴力杀进程丢数据到零轮询事件驱动架构
windows·系统架构·开源·开源软件·内存管理·开源协议
jktantan3 天前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构
艺杯羹5 天前
MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信
人工智能·python·ai·系统架构·大语言模型·ai编程·mcp
奇树谦5 天前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
无心水6 天前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
拆房老料7 天前
DeepSeek Super-agent 架构解析:从单任务 Agent 到持续运行的任务系统
人工智能·设计模式·系统架构
Jmyd01237 天前
文物3D数字化的技术选型指南:从WW/T 0115标准到落地工程,一次讲透采集、建档、管理与展示
3d·系统架构·博物馆·数字展厅·博物馆数字化
薛定谔的猫-菜鸟程序员8 天前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
被放养的研究生8 天前
第一章 信息系统架构
系统架构·金融监管计算机类