2026/7/25 2:54:47
网站建设
项目流程
一、软件系统质量属性 (一)质量属性概念 软件系统的质量就是“软件系统与明确地和隐含地定义的需求相一致的程度”。
软件系统质量属性是一个系统的可测量或可测试的属性,基于软件系统的生命周期,可将软件
系统的质量属性分为开发期质量属性和运行期质量属性。
1.开发期质量属性
(1)易理解性:指设计被开发人员理解的难易程度。
(2)可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性。
(3)可重用性:指重用软件系统或某一部分的难易程度。
(4)可测试性:对软件测试以证明其满足需求规范的难易程度。
(5)可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度。
(6)可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。
2.运行期质量属性
(1)性能:性能是指软件系统及时提供相应服务的能力,如速度、吞吐量和容量等的要求。
(2)安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
(3)可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如,通
过增加服务器来提高能力。
(4)互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度。
(5)可靠性:软件系统在一定的时间内持续无故障运行的能力。
(6)可用性:指系统在一定时间内正常工作的时间所占的比例。可用性会受到系统错误, 恶意攻击,高负载等问题的影响。
(7)鲁棒性:是指软件系统在非正常情况(如用户进行了非法操作、相关的软硬件系统发生了故障等)下仍能够正常运行的能力,也称健壮性或容错性。
(二)面向架构评估的质量属性 在架构评估过程中,评估人员普遍关注的质量属性见下表 1.性能: 提升性能的策略可以从以下几个方面考虑:
资源的需求:减少处理事件时对资源的占用、减少处理事件的数量、控制资源的使用。 资源管理:并发机制、增加资源。 资源仲裁:先来先服务、固定优先级、动态优先级、静态调度。 2.可靠性: (1)容错。(2)健壮性。 通常用平均失效等待时间 (Mean Time To Failure,MTTF) 和平均失效间隔时间 (Mean Time Between Failure,MTBF) 来衡量。
3.可用性: 提升可用性的策略可以从以下几个方面考虑:
错误检测:心跳、 Ping/Echo 、异常。 错误恢复:表决、主动冗余、被动冗余、重新同步、内测、检查点 / 回滚。 错误避免:服务下线、事务、进程监控器。 4.安全性: 提升安全性的策略可以从以下几个方面考虑:
抵抗攻击:用户身份验证、用户授权、维护数据机密性与完整性、限制暴露、限制访问。 检测攻击:入侵检测系统。 从攻击中恢复:恢复状态、识别攻击者。 5.可修改性: (1)可维护性 (Maintainability)。(2)可扩展性 (Extendibility)。(3)结构重组 (Reassemble)。(4)可移植性 (Portability)。
提升可修改性的策略可以从以下几个方面考虑:
局部化修改:高内聚低耦合、预测变更、使模块通用。 防止连锁反应:信息隐藏、维持现有接口、限制通信路径、使用中介。 推迟绑定时间:运行时注册、多态、配置文件。 (三) 质量属性场景描述 由6部分组成:
● 刺激源 (Source): 这是某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)。
● 刺 激 (Stimulus): 该刺激是当刺激到达系统时需要考虑的条件。
● 环 境 (Environment): 该刺激在某些条件内发生。当激励发生时,系统可能处于过载、运行或者其他情况。
● 制品 (Artifact): 某个制品被激励。这可能是整个系统,也可能是系统的一部分。
● 响应 (Response): 该响应是在激励到达后所采取的行动。
● 响应度量 (Measurement): 当响应发生时,应当能够以某种方式对其进行度量,以对 需求进行测试。
1.可用性质量属性场景
2.可修改性质量属性场景
3.性能质量属性场景
4.可测试性质量属性场景
5.易用性质量属性场景
6.安全性质量属性场景
二、 系统架构评估 系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策,通常分为:
1.基于调查问卷和检查卷的方法
2.基于场景的评估方法
软件架构分析方法(Software Architecture Analysis Method,SAAM) 架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM) 成本效益分析法(Cost Benefit Analysis Method,CBAM) 架构层次的软件可维护性预测(Architecture Level Prediction of Software Maintenance,ALPSM) 层次分析法 (Analytical Hierarchy Process,AHP) 3.基于度量的评估方法
(一) 系统架构评估中的重要概念 (1)敏感点 (Sensitivity Point) 和权衡点 (Tradeoff Point) 。
敏感点:实现质量目标时应注意的点,是一个或多个构件的特性。 权衡点:影响多个质量属性的敏感点。 (2)风险承担者 (Stakeholders) 或者称为利益相关人。 影响体系结构或被体系结构影响的群体。
(3)场景 (scenarios)。 确定架构质量评估目标的交互机制,一般采用触发机制(“刺激”、环境和影响三方面来描述)。
系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
(二) 系统架构评估方法 1. 软件架构分析SAAM 方 法
SAAM 是卡耐基梅隆大学软件工程研究所的 Kazman 等人于 1983 年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛应用的软件架构分析方法。 SAAM 的主要输入是问题描述、需求说明和架构描述, SAAM分析评估架构的过程包括5个步骤,即场景开发、架构描述、单个场景评估、场景交互和总体评估。
2. 架构权衡分析ATAM方法
架构权衡分析法( Architecture Tradeoff Analysis Method , ATAM)是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。
传统的 ATAM 可以分为 4 个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
ATAM 方法采用效用树 (Utility tree) 这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根—质量属性—属性分类—质量属性场景(叶子节点)。
现代的 ATAM 方法采用效用树对质量属性进行分类和优先级排序。用 ATAM 方法评估软件体系结构分为演示、调查和分析、测试和报告,如下图 所示。
上述两种主要评估方法的对比,见下表 。
3.CBAM 方法
成本效益分析法 (the Cost Benefit Analysis Method,CBAM) 是在ATAM上构建,用来对架构设计决策的成本和收益进行建模, 是优化此类决策的一种手段。
分为以下8个步骤。
(1)整理场景。整理 ATAM 中获取的场景,根据商业目标确定这些场景的优先级,并选取优先级最高的1/3的场景进行分析。
(2)对场景进行求精。为每个场景获取最坏情况、当前情况、期望情况和最好情况的质量属性响应级别。
(3)确定场景的优先级。项目关系人对场景进行投票,其投票是基于每个场景“所期望的”响应值,根据投票结果和票的权值,生成一个分值(场景的权值)。
(4)分配效用。对场景的响应级别(最坏情况、当前情况、期望情况和最好情况)确定效用表。
(5)架构策略涉及哪些质量属性及响应级别,形成相关的“策略一场景一响应级别”的对应关系。
(6)使用内插法确定“期望的”质量属性响应级别的效用。即根据第4步的效用表以及第5步的对应关系,确定架构策略及其对应场景的效用表。
(7)计算各架构策略的总收益。根据第3步的场景的权值及第6步的架构策略效用表,计算出架构策略的总收益得分。
(8)根据受成本限制影响的 ROI选择架构策略。根据开发经验估算架构策略的成本,结合第7步的收益,计算出架构策略的ROI, 按 ROI排序,从而确定选取策略的优先级。
4.其他评估方法
1)SAEM 方法: 将软件架构看作一个最终产品以及涉及过程中的一个中间产品,从外部质量属性和内部质量属性阐述的评估模型。
2)SAABNet 方法: 辅助架构的定性评估,帮助诊断软件问题的可能原因,分析架构中的修改给质量属性带来的影响、预测架构的质量属性,帮助架构设计人员做决策。SAABNet 度量的对象包括架构属性、质量准则和质量因素。
(1)识别架构中的相关变量。
(2)定义变量之间的概率依赖,这就是BBN的定性描述。
(3)评估条件概率,这就是BBN 的定量描述。
(4)测试BBN来验证其输出是否正确。
SAABNet度量的对象包括架构属性、质量准则和质量因素3部分
3)SACMM 方法: 一种软件架构修改的度量方法,首先基于内核定义差异度量准则来计算两个软件架构之间的距离,然后分析对象之间的相似性。
4)SASAM 方法:通过对预期架构和实际架构进行映射和比较来静态地评估软件架构。
(1)产品线可能性。分析几个不相干的系统是否适用于某个共有的架构,即分析它们是否能成为预期产品线的一部分。
(2)产品对准性。评估系统的软件架构是否与产品线的软件架构一致。
(3)重用可能性。分析组件是否能重用。
(4)组件充分性。评估组件的内在质量。
(5)对软件架构的理解。
(6)一致性。评估架构文档和执行的一致性。
(7)完备性。检测未被文档化的架构实体。
(8)软件系统或产品线的文档。
(9)控制演化。
(10)支持架构结构的分解
5)ALRRA 方法法:是软件架构可靠性风险评估方法,使用动态复杂度准则和动态耦合度准则来定义组件和连接件的复杂性因素。
6)AHP方法: 层次分析法 (Analytical Hierarchy Process,AHP) 是多种架构评估度量方法的基础理论。把定性分析和定量计算相结合,对各种决策因素进行处理。
7)COSMIC+UML方法 :针对不同表达方式的软件架构,采用统一的软件度量 COSMIC 方法来进行度量和评估。
(1)将面向对象的度量准则与COSMIC 方法相关联。
(2)对COSMIC标记进行完善以适用于描述UML组件图。
(3)提出 UML 组件图的度量准则:复杂度、耦合度和内聚度等。
敏感点是为 了实现某种特定质量属性,一个或多个系统组件所具有的特性。
权衡点是影响多个质量属性,并对 多个质量属性来说都是敏感点的系统属性。
三、ATAM 方法架构评估实践 (一)阶段1——演示 (Presentation) 使用 ATAM 评估软件体系结构的初始阶段,包括 3 个步骤:
①介绍 ATAM :描述 ATAM 评估过程。
②介绍业务驱动因素:着重业务视角,提供有关系统功能、主要利益相关方、业务目标和其他限制等信息。
③介绍要评估的体系结构:侧重可用性以及体系结构的质量要求。
(二)阶段2——调查和分析 使用 ATAM 技术评估架构第 2 阶段,对一些关键问题彻底调查,包括 3 个步骤:
①确定架构方法:涉及能够理解系统关键需求的关键架构方法。
1)胡佛的架构
2)“银行”活动架构
②生成质量属性效用树:确定最重要的质量属性,并确定优先次序。
1)情景生成
2)质量属性效用树生成
③分析体系结构方法:彻底调查和分析,找出处理相应质量属性架构的方法。包括 4 个主要阶段:
● 调查架构方法。
● 创建分析问题。
● 分析问题的答案。
● 找出风险、非风险、敏感点和权衡点。
(三) 阶段3——测试 ①头脑风暴和优先场景:将头脑风暴的优先列表与生成质量属性效用树中所获取的优先方案进
行比较。
②分析架构方法。
这里只关注新出现的属于安全和 性能质量属性的情况。
(四) 阶段4——报告ATAM 提供评估期间收集的所有信息,呈现给利益相关者。