知识卡片

UML性能模型的早期预测价值

普通读书笔记卡

内容

传统软件开发方法通常只关注功能性需求,性能问题往往到生命周期后期才被引入——只有等到系统测试之后,才能确定设计是否真正满足性能需求,一旦不满足就要重新设计,导致项目成本急剧增加。性能模型(又称面向分析的模型)的价值正是把这个”事后发现、事后返工”的模式,提前到设计早期:”如果在软件开发早期就对软件模型的性能进行研究,则可通过对现有的软件架构设计方案进行定量的预测和评价,以及对各种设计决策进行比较,选择更优的软件架构设计方案,并指导整个设计过程”——这本质上是把性能验证从”测试环节的事后检查”变成”设计环节的事前比较”。UML本身侧重描述功能性行为,缺少表达性能需求的能力,为此OMG采纳了SPT性能文档这一扩展语言,通过构造型和标记值扩展UML以反映性能需求。其核心是通用资源模型(GRM,任何UML模型定量分析的基础)与通用时间模型(描述响应时间等时间相关机制);性能分析领域建模则围绕”性能上下文”展开,由三个要素构成:场景(描述系统执行细节的有序步骤序列,附带响应时间/吞吐量等QoS需求)、资源(执行场景步骤的实体,分处理资源如处理器/接口设备与被动资源如受访问控制、被多个并发操作共享的资源)、负载(体现执行某场景对相关资源的需求强度)。有了这三要素,架构师可以在UML活动图上标记执行时间、访问频率等性能参数,再用LQN等求解工具对导出的性能模型求解,把”这个架构方案性能好不好”从一句直觉判断,变成一个有具体数字支撑的比较过程。

参考来源

- 位置:《软件架构理论与实践》第3章《软件架构模型》"3.2.2 基于UML的建模方法"节之"2.基于UML的性能模型"(源文件:_epub-src/OEBPS/text00024.html) - 结论依据:原文说明"如果在软件开发早期就对软件模型的性能进行研究,则可通过对现有的软件架构设计方案进行定量的预测和评价……并指导整个设计过程",并给出性能上下文由场景、资源、负载三部分组成的具体定义,直接支撑本卡片结论。 - 原始内容:性能上下文(PerformanceContext)用来描述系统在各种情况下的性能特征,它由场景(PScenario)、资源(PResource)和负载(Workload)组成……可以利用SPT性能文档在UML活动图中标记性能信息,比如执行时间、访问频率或资源需求等,然后利用LQN模型求解工具对导出的性能模型求解。