【软件架构设计(19)】软件架构评估二:软件架构分析方法分类、质量属性场景、软件评估方法发展历程

文章目录

壹、软件评估方法分类与质量属性场景分析

软件架构评估方法体现了从定性到定量、从主观到客观的演进过程

  1. 早期的调查问卷方法虽然简单易行,但结果主观性强;
  2. 基于场景的方法针对性更强,但仍有一定主观色彩;
  3. 基于度量的方法则提供了客观精确的评估结果。

这种演进反映了软件工程学科的成熟,从经验驱动逐步转向数据驱动。

另外,质量属性场景分析构建了一个标准化的描述框架

通过刺激源、刺激、环境、制品、响应、响应度量这六个要素,将复杂的系统行为分解为可理解、可分析的组件。

这种标准化方法确保了不同评估者能够使用统一的语言和标准,提高了评估结果的一致性和可比性。同时,场景分析方法将抽象的质量需求转化为具体的测试场景,使得架构师能够在设计阶段就验证架构对各种质量属性的支持程度。

一、 软件架构评估方法分类

软件架构评估方法按照分析深度和客观程度分为三大类,每类方法适用于不同的项目阶段和评估目标

评估方法 定义与特点 具体示例 适用场景
基于调查问卷 通用性强,适用于广泛收集意见 评估者只需对架构粗略了解 新软件产品概念设计阶段向潜在用户发放问卷 了解功能需求、界面风格等方面的期望 项目早期,架构了解有限 需要广泛收集各方看法
基于检查表 针对特定领域,评估者无限制 实施阶段适中,具有主观性 BIM项目中依据特定检查表 核查模型是否符合行业规范和标准 特定领域规范核查 标准化评估场景
基于场景 针对特定系统,要求中等程度了解 实施阶段为中期,主观性较强 电商系统设定用户高并发下单、库存不足等场景 评估系统架构应对能力 项目中期,特定系统深入评估 发现实际使用中的问题
基于度量 通用性或特定领域,需精确了解架构 实施阶段适中,相对客观 测量系统响应时间、吞吐量等性能指标 评估网络架构优劣 需要客观精确评估结果 评估者对架构有深入了解

二、质量属性场景的六个标准化要素

质量属性场景分析通过六个标准化要素,将抽象的质量需求转化为具体可测试的场景。

场景要素 定义与作用 具体示例 分析重点
刺激源 产生刺激的源头 影响系统行为的外部因素 电商APP用户点击"立即购买"按钮 物流系统向电商系统发送发货状态更新 识别所有可能的刺激来源 区分内部和外部刺激源
刺激 到达系统的具体条件 触发系统响应的具体事件 用户点击"立即购买"按钮操作 特定时间点系统接收新订单数据 明确刺激的具体形式和频率 分析刺激的时间特性
环境 刺激发生时的系统状态 影响响应的环境条件 双11大促期间高并发状态 平常时段正常运行状态 考虑不同环境下的系统表现 识别环境变化对响应的影响
制品 被刺激影响的对象 系统的重要组成部分 订单处理模块、整个购物流程系统 视频播放模块、用户界面 确定影响范围和程度 分析制品间的依赖关系
响应 系统对刺激的反应 采取的具体行动 进行库存检查、生成订单操作 视频停止播放、显示暂停图标 评估响应的正确性和效率 分析响应的完整性
响应度量 衡量响应效果的指标 量化的评估标准 订单生成时间是否在1秒内完成 点击暂停到实际停止播放时间<0.5秒 建立可测量的评估标准 确定度量的精度要求

三、不同方面的场景分析

1、可用性

可用性场景分析关注系统持续稳定提供服务的能力,通过具体场景验证系统的可用性设计。

场景要素 具体内容 实际示例 评估指标
刺激源 系统内部故障 外部攻击或误操作 服务器硬件老化导致故障 用户频繁错误输入导致系统异常 故障源识别准确性 故障类型覆盖度
刺激 疏忽、错误、崩溃、时间因素 运维人员配置错误、程序逻辑错误 软件闪退、长时间高负载运行 刺激类型分类完整性 触发条件明确程度
环境 正常操作环境 降级模式运行 日常业务正常运行状态 电商系统高并发时关闭非核心功能 环境状态转换机制 降级策略有效性
制品 系统处理器、通信信道 持久存储器、进程 CPU故障影响运算、网络中断 硬盘损坏致数据丢失、进程崩溃 制品故障影响范围 关键制品识别准确性
响应 检测事件、记录通知 禁止错误源、继续运行 向运维人员发送警报邮件 发现恶意IP后将其封禁 响应时间 响应措施有效性
响应度量 可用时间百分比 故障修复时间 每月99.9%时间可用 平均修复时间不超30分钟 可用性目标达成率 修复效率指标

2、可修改性

可修改性场景分析评估系统适应变化的能力,通过变更场景验证架构的灵活性。

场景要素 具体内容 实际示例 评估指标
刺激源 最终用户需求变更 开发人员优化需求 系统管理员配置调整 电商APP用户希望增加分组购物车功能 开发人员发现代码性能问题需优化 需求来源多样性 变更请求合理性
刺激 增加、删除、修改功能 调整质量属性和容量 社交软件删除某冷门功能 在线办公软件提升文件存储容量 变更类型覆盖度 变更复杂度评估
环境 设计时、编译时 构建时、运行时 设计时优化架构、编译时调整代码语法 构建时增减组件、运行时修复紧急漏洞 不同阶段修改便利性 环境切换成本
制品 用户界面、平台 环境、交互系统 UI改版、底层架构升级 服务器迁移、对接新支付渠道 制品修改影响范围 制品间耦合程度
响应 定位改动位置、确保功能不受影响 全面测试、部署更新 修改网站登录功能不影响商品浏览 修改后进行完整的回归测试 修改准确性 影响控制效果
响应度量 成本、努力、资金投入 对其他功能的影响程度 更改Web界面接口在2人周内完成 评估修改对订单处理效率的影响 修改成本控制 质量属性影响评估

3、性能

性能场景分析关注系统的响应能力和处理效率,通过负载场景验证系统性能表现。

场景要素 具体内容 实际示例 评估指标
刺激源 用户请求 其他系统触发 搜索引擎用户输入关键词搜索 物流系统发送订单状态更新消息 请求来源分布 触发频率统计
刺激 定期事件、随机事件 偶然事件到达 系统定时数据备份任务 用户随机发起在线客服咨询 电商平台突发限时抢购活动 事件类型分类 负载模式识别
环境 正常模式 超载模式 在线教育平台日常学习时段 双11期间电商平台高并发状态 负载水平分级 环境切换阈值
制品 整个系统 前端页面响应、后端数据处理 数据库查询、网络传输 系统整体性能 各组件性能贡献
响应 处理刺激 改变服务级别 社交软件处理动态发布流程 视频直播平台降低分辨率保证流畅 处理效率 服务质量调整策略
响应度量 等待时间、期限、吞吐量 抖动、缺失率、数据丢失率 网页加载等待时间<3秒 支付确认必须在3秒内完成 Web服务器每秒处理1000个HTTP请求 性能指标达标率 服务质量稳定性

4、可测试性

可测试性场景分析评估系统测试的便捷程度,通过测试场景验证系统的可测试性设计。

场景要素 具体内容 实际示例 评估指标
刺激源 开发人员、增量开发人员 系统验证人员、客户验收人员 开发人员对新算法模块进行单元测试 客户按合同要求进行验收测试 测试人员角色覆盖 测试责任分配清晰度
刺激 已完成的分析、架构、设计 类和子系统集成、交付系统 架构设计完成后测试不同负载下性能 系统交付后进行验收测试 测试阶段完整性 测试触发条件明确性
环境 设计时、开发时 编译时、部署时 设计文档评审和走查 开发过程单元测试和代码审查 部署前环境兼容性测试 不同环境测试便利性 测试环境搭建效率
制品 设计文档、代码段 完整应用 架构设计文档、接口设计文档 单个函数或类的单元测试 整个软件应用系统测试 制品测试覆盖度 测试粒度适当性
响应 提供状态值访问、计算值获取 准备测试环境 测试计数器功能时获取当前值 数据库功能测试时准备测试数据 测试数据可访问性 测试环境准备完整性
响应度量 代码覆盖率、故障概率 测试执行时间、依赖复杂度 单元测试80%代码覆盖率 测试人员20分钟内完成代码单元测试 测试质量指标 测试效率指标

5、易用性

易用性场景分析关注用户体验,通过用户操作场景验证系统的易用性设计。

场景要素 具体内容 实际示例 评估指标
刺激源 最终用户 手机APP使用者 办公软件新用户 用户类型多样性 用户技能水平分布
刺激 学习系统特性、有效使用系统 降低错误影响、适配系统、系统满意 新用户学习绘图软件工具使用 用户快速完成文档编辑任务 财务软件提供转账撤销功能 用户需求覆盖度 使用场景完整性
环境 系统运行时 配置时 在线购物平台购物流程体验 设置电脑桌面背景和快捷键 不同环境易用性 配置操作便利性
制品 整个系统 界面设计、功能模块 交互逻辑、帮助系统 系统组件易用性 整体用户体验
响应 提供学习支持、优化界面布局 错误恢复、个性化配置 新游戏新手引导关卡 常用功能聚合展示、撤销操作 多语言界面支持 支持功能有效性 用户体验改善程度
响应度量 任务时间、错误数量 用户满意度、成功操作比例 文件查找打开时间<30秒 新用户学习系统时间不超过2小时 易用性指标达标率 用户学习成本控制

6、安全性

安全性场景分析关注系统安全防护能力,通过攻击和防护场景验证系统安全性设计。

场景要素 具体内容 实际示例 评估指标
刺激源 内部/外部个人或系统 已授权/未授权用户 外部攻击者虚假身份登录企业系统 企业员工超权限访问敏感数据 黑客试图窃取大量客户数据 威胁来源识别准确性 攻击者类型覆盖度
刺激 显示数据、改变/删除数据 访问系统服务、降低可用性 非法查看患者病历信息 篡改电商系统商品价格 DoS攻击使网站服务器瘫痪 攻击类型分类完整性 威胁场景覆盖度
环境 在线/离线、联网/断网 有防火墙/直接连网 在线时面临网络攻击风险 防火墙保护vs直接连网暴露 不同环境安全风险 防护措施有效性
制品 系统服务 系统中的数据 网站登录服务、支付服务 用户信息、业务数据 资产价值评估 保护对象重要性
响应 身份认证、访问控制 数据加密、攻击检测 用户名密码、指纹识别认证 敏感数据哈希加密存储 异常流量检测和IP封禁 防护措施覆盖度 安全响应及时性
响应度量 成功防护概率、攻击成本 检测可能性、恢复能力 信用卡支付99.999%安全性 攻击者突破防护所需时间成本 安全指标达标率 安全投资回报率

贰、软件评估方法

软件架构评估方法体现了从单一属性关注到多属性权衡的演进过程。SAAM最初专注于可修改性评估,就像早期的质量检测只关注产品是否能用;ATAM发展为多属性权衡分析,如同现代质量管理需要综合考虑性能、安全、成本等多个维度;CBAM进一步引入经济模型,体现了从技术导向向商业价值导向的转变。

1、软件架构评估方法发展历程

软件架构评估方法按照发展时间和关注重点,形成了三个主要的发展阶段。

评估方法 发展脉络与特点 关注重点 典型应用场景
SAAM 最早形成文档的架构分析方法 为后续方法发展奠定基础 初期聚焦可修改性 后扩展到可移植性、可扩充性 在线购物系统需求变更评估 系统功能扩展可行性分析
ATAM 在SAAM基础上发展而来 继承理念并进行拓展 性能、实用性、安全性、可修改性 多属性权衡分析 在线教育平台多场景评估 高并发系统质量属性平衡
CBAM 在ATAM基础上建立 构建软件"经济"模型 成本效益分析 经济可行性评估 企业级系统架构选型 投资回报率驱动的架构决策

2、SAAM方法详解

SAAM(Software Architecture Analysis Method)专注于可修改性评估,通过场景分析验证架构的灵活性和适应性。

实施阶段 主要活动 具体示例 关键输出
问题描述 明确系统要解决的问题 定义业务目标和用户需求 开发在线购物系统:商品展示、交易功能 用户需求:便捷购物流程、快速响应 问题定义文档 业务目标清单
需求分析 梳理功能需求和非功能需求 深入分析问题本质 功能需求:商品搜索、订单管理 非功能需求:性能要求、安全性要求 需求规格说明 约束条件清单
架构设计 确定组件划分和交互方式 制定架构解决方案 采用微服务架构实现购物系统 各功能模块独立部署与交互 架构设计文档 组件接口定义
场景开发 开发反映系统使用的场景 覆盖可能面临的变化 高并发下单场景、商品信息修改场景 促销活动场景、系统升级场景 场景描述集合 变更需求清单
场景评估 评估架构对各场景的支持 识别潜在问题和风险 高并发下单时系统稳定性评估 订单处理与库存更新协调性分析 场景评估报告 风险识别清单
总体评估 综合评估结果比较方案 选择最优架构设计 比较不同架构在各场景下表现 确定最符合需求的架构方案 架构评估报告 推荐架构方案

3、ATAM方法详解

ATAM(Architecture Tradeoff Analysis Method)在SAAM基础上发展,专注于多质量属性的权衡分析。

分析阶段 核心活动 具体示例 分析重点
场景和需求收集 与利益相关者沟通收集场景 明确需求、约束和环境 在线教育平台:大量学生同时学习场景 教师上传课程资料场景 覆盖所有关键使用场景 识别系统约束条件
架构视图描述 从多角度描述软件架构 分析场景实现方式 逻辑视图:课程管理模块、用户管理模块 物理视图:服务器部署、网络架构 架构完整性验证 场景可实现性分析
属性模型构造 运用理论分析质量属性 识别敏感点和权衡点 排队论分析系统性能和吞吐量 数据库设计对性能和安全性敏感 质量属性深度分析 架构敏感点识别
权衡折中 平衡冲突的质量属性 制定架构决策 在线教育平台安全性与性能平衡 确保学习体验不受安全策略影响 质量属性优先级确定 折中策略制定

ATAM质量效用树分析:

质量属性 具体场景 权重评估 实现策略
性能 1000名学生同时在线学习 视频播放响应时间<2秒 高优先级 权重:30% 内容分发网络(CDN) 负载均衡、缓存优化
可修改性 新增课程类型功能 2周内完成开发部署 中等优先级 权重:25% 模块化设计 微服务架构、API标准化
安全性 学生个人信息保护 防止数据泄露99.9% 高优先级 权重:25% 数据加密、访问控制 身份认证、审计日志
可用性 系统全年可用性99.5% 故障恢复时间<5分钟 中等优先级 权重:20% 冗余部署、健康检查 自动故障转移

4、CBAM方法详解

CBAM(Cost Benefit Analysis Method)在ATAM基础上建立,构建软件架构的经济评估模型。

分析维度 评估内容 具体示例 决策指标
成本分析 开发成本、维护成本 部署成本、培训成本 微服务架构开发成本:500万元 单体架构开发成本:300万元 年度维护成本:微服务80万,单体120万 总拥有成本(TCO) 成本分解结构
效益分析 业务价值、用户体验 系统性能、可扩展性 微服务架构支持快速功能迭代 预计年收入增长:200万元 用户满意度提升:15% 投资回报率(ROI) 净现值(NPV)
风险评估 技术风险、市场风险 实施风险、维护风险 微服务架构技术复杂度高 团队学习成本:50万元 实施失败概率:20% 风险调整收益 风险缓解成本
决策支持 多方案对比分析 最优方案推荐 方案A:3年ROI 35%,风险中等 方案B:3年ROI 25%,风险较低 推荐方案A 综合评分模型 敏感性分析

CBAM经济模型示例:

架构方案 初期投资 年度运营成本 年度收益 3年净现值 风险调整后NPV
微服务架构 500万 80万 280万 320万 256万
单体架构 300万 120万 200万 180万 162万
混合架构 400万 100万 240万 220万 198万
相关推荐
用户Taobaoapi20144 小时前
京东图片搜索相似商品API开发指南
大数据·数据挖掘·数据分析
镭眸4 小时前
因泰立科技:用激光雷达重塑智能工厂物流生态
大数据·人工智能·科技
阿豪Jeremy4 小时前
使用MS-SWIF框架对大模型进行SFT微调
人工智能
慧星云5 小时前
双节模型创作大赛开赛啦:和魔多一起欢庆中秋国庆
人工智能·云计算·aigc
爆改模型5 小时前
【ICCV2025】计算机视觉|即插即用|ESC:超越Transformer!即插即用ESC模块,显著提升图像超分辨率性能!
人工智能·计算机视觉·transformer
带娃的IT创业者5 小时前
《AI大模型应知应会100篇》第69篇:大模型辅助的数据分析应用开发
人工智能·数据挖掘·数据分析
小胖墩有点瘦5 小时前
【基于yolo和web的垃圾分类系统】
人工智能·python·yolo·flask·毕业设计·课程设计·垃圾分类
bylander5 小时前
【论文阅读】自我进化的AI智能体综述
人工智能·大模型·智能体
却道天凉_好个秋5 小时前
计算机视觉(十二):人工智能、机器学习与深度学习
人工智能·深度学习·机器学习·计算机视觉