文章目录
一、前言
笔记目录大纲请查阅:【软考速通笔记】系统架构设计师——导读
二、软件系统质量属性
2.1 开发期质量属性
- 易理解性:指软件系统的源代码、设计文档和架构的清晰程度,以及开发人员理解这些元素的容易程度。
- 可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性。
- 可重用性:指重用软件系统或某一部分的难易程度。
- 可测试性:对软件测试以证明其满足需求规范的难易程度。
- 可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度。
- 可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。
2.2 运行期质量属性
- 性能:软件系统及时提供相应服务的能力,如速度、吞吐量和容量等的要求。
- 安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
- 可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。
- 互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度。
- 可靠性:软件系统在一定的时间内持续无故障运行的能力。
- 可用性:指系统在一定时间内正常工作的时间所占的比例。
- 鲁棒性:指软件系统在非正常情况下仍能正常运行的能力,也称为健壮性或容错性。
三、质量属性场景描述
- 刺激源:生成某个刺激的实体(用户操作、环境变化、其他系统或设备的信号等)。
- 刺激:刺激源产生的具体事件或条件。
- 环境:刺激在某些条件内发生。
- 制品:某个制品被刺激,可能是整个系统,也可能是系统的一部分。
- 响应:刺激达到后采取的行动。
- 响应度量:是用来量化和评估响应的指标。
四、系统架构评估方法
4.1 方法分类
- 基于调查问卷或检查表的方法:依赖于设计良好的问卷或检查表,通过收集系统相关人员的经验和知识,对架构进行评估。
- 基于场景的评估方法:架构权衡分析法(ATAM)和软件架构分析方法(SAAM)。
- 基于度量的评估方法:这种方法建立在软件架构度量的基础上,涉及三个基本活动:首先建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。
场景:确定架构质量评估目标的交互机制,一般采用刺激、环境和影响三方面来描述。
4.2 软件架构分析方法
软件架构分析方法(Software Architecture Analysis Method,简称SAAM)是最早形成文档的软件架构分析方法。
- 特点:把任何形式的质量属性都具体化为场景。
- 输入:问题描述、需求说明和架构描述。
- 过程:场景开发、架构描述、单个场景评估、场景交互评估、总体评估。
4.3 架构权衡分析法
架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM)是评价软件架构的一种综合且全面的方法。
- 主要:对性能、可用性、安全性和可修改性等质量属性进行评估和折中。
- 核心:属性作为架构评估的核心。
- 传统ATAM:需求收集、架构视图描述、属性模型构造和分析、架构决策与这种。
- 现代ATAM:
- 演示阶段:
- 由评估小组负责人(如架构师)介绍ATAM方法。
- 由项目决策者(如产品经理)从业务角度介绍开发系统的商业动机。
- 架构师介绍系统整体架构,包括体系结构、领域划分、层次结构等。
- 调查和分析阶段:
- 利益相关者提出相关需求,涉及质量场景。
- 根据这些场景生成质量属性效用树,并进行彻底调查和分析。
- 找出处理质量属性的架构方法,分析架构的风险点、敏感点、权衡点。
- 测试阶段:
- 确定场景优先级,根据系统特点对质量属性进行优先级排序。
- 具体阐述针对每个质量属性系统采取的方案。
- 进行仿真、建模或基于现有系统的实验评估,量化每个方案在不同质量属性上的表现。
- 报告阶段:
- 记录评估过程和结果,包括质量属性效用树、风险点、敏感点、权衡点和每次评估会议纪要。
- 提出最终的架构决策和改进建议。
- 演示阶段:
4.4 成本效益分析法
成本效益分析法(Cost Benefit Analysis Method, CBAM)
- 整理场景
- 对场景进行求精
- 确定场景的优先级
- 分配效用
- 架构策略涉及哪些质量属性及响应级别
- 使用内插法确定“期望的”质量属性响应级别的效用
- 计算各架构策略的总收益
- 根据受成本限制影响的ROI选择架构策略
若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。