13.5质量属性-架构评估

张开发
2026/5/28 11:34:56 15 分钟阅读
13.5质量属性-架构评估
一、软件系统的质量属性 00:001. 开发阶段的质量属性 01:22易理解性设计被开发人员理解的难易程度反映代码可读性可扩展性适应新需求增加功能的能力又称灵活性可重用性系统或组件被复用的难易程度可测试性验证系统满足需求规范的难易程度可维护性修改缺陷/增加功能时的识别和实施难度可移植性系统在不同运行环境间迁移的难易程度2. 运行阶段的质量属性 02:071性能 06:57定义系统响应能力包括响应时间如1秒内打开网页和吞吐量如5秒处理100个请求设计策略优先级队列调度、增加计算资源、减少计算开销、引入并发机制、资源调度考点提示选择题常通过用户要求响应时间/处理量的描述考查性能属性判断2可靠性 08:23核心指标MTTF平均无故障时间、MTBF平均故障间隔时间、MTTR平均修复时间设计策略心跳机制定期发送同步信号检测存活、冗余备份、Ping/Echo、选举算法与可用性区别可靠性强调错误发生后的容错能力可用性关注正常运行时间比例3可用性 12:30计算公式可用性正常运行时间/(正常运行时间故障时间)如系统运行100小时有90小时正常则可用性为90%考试技巧当可靠性与可用性描述相似时优先选择可用性二者设计策略相同冗余/心跳等4安全性 14:08核心特性保密性、完整性、不可抵赖性、可控性设计策略加密技术对称/非对称、数字签名、防火墙、入侵检测、用户认证/授权、审计追踪典型场景系统能阻止非法访问同时服务合法用户5可修改性 15:45双重维度既要能修改又要性价比高修改成本低于重开发设计原则接口-实现分离、抽象化、信息隐藏等面向对象设计原则关联知识与结构化开发中的高内聚低耦合原则密切相关6功能性 17:15典型描述如系统每月15号自动发放工资特点无具体子特性和设计策略主要通过功能需求文档体现7可变性 18:07本质体系结构的可扩展能力能通过修改成为新体系结构应用场景作为系列产品基础架构时需要重点考虑8互操作性 18:40实现关键提供精心设计的外部接口和数据交换机制典型场景不同编程语言系统间的数据交互和服务调用3. 质量属性场景 19:211场景组成要素 20:19刺激源行为主体用户/开发人员/管理员刺激具体操作如增加/删除功能环境操作时机设计时/编译时/运行时制品操作对象用户界面/平台等响应系统实际执行动作响应度量修改成本、影响范围等量化指标2应用方法 20:30测试流程通过构造特定场景如模拟高并发检验质量属性达标情况评估关系是架构评估方法中基于场景的评估的基础工具记忆技巧类比人主体在特定环境对系统客体进行操作刺激并观察反应响应的生活场景二、软件架构评估 25:231. 敏感点、权衡点、风险点 25:49敏感点定义为实现特定质量属性如性能、安全性等一个或多个构件具有的特性。判断标准是仅影响单一质量属性例如某功能只影响系统性能。权衡点特征影响多个质量属性的特性本质上是多个敏感点的集合。典型例子是安全性与性能的冲突设计需在两者间取得平衡。风险点识别非官方术语但真题常考指可能引发风险的因素。若某做法存在隐患则为风险点若方案可行可接受则为非风险点。2. 软件架构评估的概念 27:56评估时机位于架构设计完成后系统设计开始前独立于实现和测试阶段。核心目的基础要求验证架构是否满足功能需求扩展目标还需评估质量属性如888大质量属性、成本控制等非功能性需求质量属性扩展除标准888种外可测试性等也可纳入考量范围3. 架构评估方式 28:451基于调查问卷的方式 28:53实施形式通过设计架构领域的问卷或检查表如包含888大质量属性细分项评审人员逐项核对典型场景检查响应时间是否达标如111秒内响应、事件处理量如100100100个事件/秒适用特点通用性强适合早期评估评审人员仅需粗略了解架构主观性较强2基于度量的方式 30:25量化标准制定客观指标如代码行数、响应时间分级111秒优秀222秒良好333秒及格实施要求需建立质量属性与度量值的映射关系评估者必须精确掌握架构细节优势相比其他方式更具客观性3基于场景的方式 31:05核心步骤建立功能与架构结构的映射设计体现质量属性的场景如414141视图中的场景分析架构对场景的支持度场景三要素刺激触发事件如管理员点击查询按钮环境事件发生的条件如高并发场景响应架构反馈如333秒内返回查询结果对比优势针对特定领域设计需要评估者具备中等架构知识实施阶段灵活中期为主4. 基于场景的架构分析方法 35:251SAAM方法 35:51历史地位: 最早形成文档并得到广泛应用的软件架构分析方法核心目标: 验证架构假设和原则评估应用程序属性文档质量属性特点:将任何质量属性具体化为场景主要关注可修改性最初仅针对可修改性后扩展为所有质量属性架构描述要求:用于架构最终版本早于详细设计阶段描述形式需被所有参与者理解包含功能、结构、分配三个主要方面方法流程:输入问题描述、需求声明、架构描述5个步骤场景开发架构描述迭代过程单个场景评估类似单元测试场景交互评估类似集成测试关注敏感点和权衡点总体评估2ATAM方法 40:31核心特点:专门用于权衡多个质量属性8个质量属性中的多个以质量属性为架构评估的核心概念主要关注性能、可用性、安全性、可修改性参与者:评估小组项目决策者其他项目相关人包含多类角色四大活动领域:场景和需求收集体系结构视图和场景实现属性模型构造和分析架构评估和折中评估过程:描述和介绍阶段描述ATM方法描述业务动机需求描述架构调查和分析阶段确定架构方法生成质量属性效用树重要工具分析架构方法测试阶段讨论和分级场景分析架构方法基于场景报告阶段产出评估结果质量属性效用树:结构系统→质量属性→子特性→具体描述示例性能→响应时间→网站打开时间≤1秒用途系统化分析各质量属性满足情况3CBAM方法 50:40定位: ATAM的补充在质量属性合理基础上进行成本效益分析核心思想: 通过投资收益率选择最优架构主要步骤:整理场景确定并排序选择前1/3高优先级场景场景细化分析最好/最坏情况确定场景优先级干系人投票分配效用建立策略-场景-响应级别表格形成对应关系确定期望效用计算各架构策略总收益选择收益最高的架构策略收益总收益-成本考试重要性: 极少考查了解即可5. 应用案例 52:121例题:质量属性判断题目解析性能属性判断当题目描述交易请求应在3秒内完成时主要关注的是系统响应速度属于性能属性。实现策略应选择资源调度。可用性判断技巧描述中出现自动切换至备用站点等容灾恢复内容时优先考虑可用性属性而非性能即使包含时间指标。实现策略通常采用心跳机制。安全性特征识别当题干出现安全保护措施、“抵挡恶意入侵”、攻击行为报警记录等关键词时明确对应安全性属性。实现策略选择追踪审计。高频考点提醒质量属性判断是每年必考题型通常以5-6题组形式出现在选择题、案例分析和论文中都会涉及属于送分题型需重点掌握。2例题:架构权衡分析方法 55:29题目解析ATAM核心属性架构权衡分析方法(ATAM)主要评估性能、可用性、安全性和可修改性四大质量属性这是方法定义中的固定组合。四阶段流程包含需求收集→架构视图描述→属性模型构造分析→架构决策与折中其中架构视图特指41视图模型。评估核心概念ATAM全过程以质量属性为核心评估指标区别于其他以用例或模型为核心的方法。特殊属性判断操作方式保持一致体现用户友好性属于易用性而非八大基础属性开放API接口支持远程调试明确对应可测试性属性关键工具与概念质量属性刻画使用效用树(Utility Tree)影响多个属性的设计决策称为权衡点(Trade-off Point)综合考察特点该题型通常7分左右会全面考察ATAM的定义、流程、工具和概念需注意早期考题可能涉及非八大基础属性。三、其他评估方法 59:141. SAEM方法 01:00:17评估视角: 将软件架构同时视为最终产品和设计中间产品属性分类:外部属性: 用户定义的质量属性内部属性: 开发者决定的质量属性评估流程:质量属性规约建模创建度量准则需明确评估目的、角度和环境评估执行数据收集→度量→结果分析特点: 为架构质量评估建立基础框架强调从多维度定义评估目标2. SAABNet方法 01:01:00方法论来源: 人工智能领域的不确定性推理技术知识表示:定性描述: 贝叶斯信念网络(BBN)的结点图定量描述: 结点状态的条件概率变量层级:架构质量属性如可维护性度量准则变量如容错性架构特征变量如继承深度特点: 支持不完整知识的推理通过概率网络实现质量属性的层级分解3. SACMM方法 01:01:27核心功能: 量化评估架构修改的影响应用场景: 测量架构变更后的成本、时间等指标特点: 专注于架构演化过程的度量4. SASAM方法 01:01:41对比维度:预期架构: 设计阶段描述材料实际架构: 源代码实现的架构评估方式: 静态映射比较特点: 通过设计-实现一致性检测评估架构质量5. ALRRA方法 01:02:01评估对象: 架构可靠性风险核心准则:动态复杂度: 分析组件执行行为动态耦合度: 分析连接件消息协议技术支撑: 失效模式与影响分析(FMEA)特点: 结合运行时行为分析评估可靠性6. AHP方法 01:02:12方法论特点: 定性→定量转化的多准则决策实施步骤:建立有序层次结构两两比较构造判断矩阵计算层次单排序权重一致性检验优势: 整合专家经验与客观数据适用于复杂决策场景7. COSMICUML方法 01:02:26评估目标: 架构可维护性技术特点:统一度量模型(COSMIC)UML组件图验证应用价值: 评估架构演化方案的可行性实证案例: 开源系统DCMMS的架构评估四、知识小结知识点核心内容考试重点/易混淆点难度系数软件系统质量属性分为开发阶段易理解性、可扩展性、可重用性等和运行阶段性能、安全性、可用性等区分开发阶段与运行阶段属性运行阶段属性如性能、可用性是考试重点⭐⭐架构评估质量属性性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性性能 vs. 可用性 vs. 可靠性安全性设计策略加密、审计等⭐⭐⭐性能系统响应能力响应时间、吞吐量设计策略优先级调度、增加资源、并发机制性能描述如“3秒内响应”易与可用性混淆带时间但不强调容错⭐⭐可用性 vs. 可靠性可用性系统正常运行时间比例可靠性容错能力心跳、冗余机制优先选可用性设计策略相同冗余、心跳⭐⭐⭐安全性阻止非授权访问保密性、完整性、审计等设计策略加密、防火墙、认证授权安全描述如“防御恶意攻击”⭐⭐可修改性快速低成本修改系统抽象、接口隔离等设计策略结构化/面向对象原则与功能性区分功能性是基础需求⭐⭐质量属性场景包含刺激源、刺激、环境、制品、响应、度量六要素场景构造方法如测试可修改性需“增删改”操作⭐⭐⭐架构评估方法ATAM以质量属性为核心四阶段需求收集、架构描述、模型分析、评估折中质量属性效用树权衡点影响多属性 vs. 敏感点影响单属性⭐⭐⭐⭐SAAM方法早期评估方法侧重可修改性通过场景验证架构假设与ATAM对比ATAM更全面⭐⭐CBAM方法成本效益分析作为ATAM补充基于投资收益率选择架构适用场景成本敏感项目⭐⭐

更多文章