架构设计 相关文档,希望互相学习,****************************
****************************共同进步
知识总览
共19章内容,主要包括:
1)1绪论、2计算机系统、3信息系统、4信息安全技术、5软件工程
2)6数据库设计、7系统架构设计基础知识
3)8系统质量属性与架构评估、9软件可靠性、
10软件架构演化与维护、11未来信息综合技术
4)12信息系统架构设计、13层次式架构设计、14云原生架构设计、
15面向服务架构设计、16嵌入式系统架构设计、17通信系统架构设计、
18安全架构设计、19大数据架构设计

每天进步一点点,加油!小伙伴们!💪
本文学习第8章 系统质量属性与架构评估,以下为个人笔记,希望有所帮助,共同学习。 (侧重于概念知识,来源教材,涉及单选8-15分 +案例25分 +论文)
包括:软件系统质量属性(基本概念、面向架构评估的质量属性、质量属性场景描述)
系统架构评估(系统架构评估中的重要概念、系统架构评估方法)、
ATAM方法评估实践
第8章 系统质量属性与架构评估
软件系统属性包括功能属性和质量属性,软件架构重点关注的是质量属性。为了精确、定量地表达系统的质量属性,通常会采用质量属性场景的方式进行描述。 软件系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。
软件架构的基本需求是在满足功能属性的前提下,关注软件系统的质量属性,在精确描述软件质量场景后,可通过对架构的评估决定架构策略及架构评审。是案例和论文的考试重点。

8.1 软件系统质量属性
【架构专栏】第8章 系统质量属性与架构评估 1/2
https://blog.csdn.net/weixin_42081167/article/details/165241210
8.2 系统架构评估
8.2.1 系统架构评估中的重要概念

系统架构评估:是在对架构分析、评估的基础上,对架构策略的选取进行决策。利用数学 或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、 预测性和指令性的分析结果。
系统架构评估,通常分为:
(1)基于调查问卷或检查表的方法:缺点是很大程度上依赖于评估人员的主观判断。
(2)基于场景的评估方法:
应用在架构权衡分析法(ATAM)和软件架构分析方法(SAAM)。
通过分析软件架构对场景(也就是对系统的使用或修改活动)的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。
(3)基于度量的评估方法:建立质量属性和度量之间的映射原则
→ 在软件文档中获取度量信息 → 分析推导系统质量属性。
系统架构评估中的重要概念:(1)敏感点 (Sensitivity Point) :
实现质量目标时应注意的点,是一个或多个构件的特性。
(2)权衡点 (Tradeoff Point):
影响多个质量属性的敏感点。
(3)风险承担者或利益相关人 (Stakeholders) :
影响体系结构或被体系结构影响的群体。
(4)场景(scenarios):确定架构质量评估目标的交互机制,一般采用触发机制("刺激")、 环境、影响三方面来描述。
8.2.2系统架构评估方法
1 软件架构分析方法 SAAM

软件架构分析方法(Software Architecture Analysis Method,SAAM)。SAAM 是卡耐基梅隆 大学软件工程研究所的 Kazman 等人于 1983 年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛应用的软件架构分析方法。
SAAM 的主要输入:++问题描述、需求说明、架构描述++ 。分析过程主要包括5个步骤:++场景开发、架构描述、单个场景评估、场景交互、总体评估。++

2 架构权衡分析方法 ATAM

架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM)。ATAM 是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和 折中。
传统的 ATAM 分为 4 个主要的活动阶段:
1)需求收集、
2)架构视图描述、
3)属性模型构造和分析、
4)架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
现代的 ATAM 方法采用效用树对质量属性进行分类和优先级排序。用 ATAM 方法评估软件体系结构分为:1)演示、2)调查和分析、3)测试和报告
3 成本效益分析法 CBAM

成本效益分析法 (the Cost Benefit Analysis Method,CBAM) 是在ATAM上构建,用来对架构设计决策的成本和收益进行建模, 是优化此类决策的一种手段。 CBAM的思想就是架构策略影响系统的质量属性,反过来这些质量属性又会为系统的项目干系人带来一些收益(称为"效用"), 协助项目干系人根据其投资回报 (Return On Investment,ROI) 选择架构策略。
成本效益分析法(Cost Benefit Analysis Method,CBAM)分为8个步骤:
1)整理场景→据商业目标确定场景的优先级,并选取 优先级最高的1/3的场景进行分析
2)对场景进行求精→为每个场景获取最坏、当前、期望、最好情况的质量属性响应级别
3)确定场景的优先级→项目关系人对场景进行投票,基于每个场景"所期望的" 响应值,据投票结果和票的权值,生成一个分值(场景的权值)
4)分配效用→对场景的响应级别(最坏情况、当前情况、期望情况和最好情况)确定效 用表
5)架构策略涉及哪些质量属性及响应级别→形成"策略一场景一响应级别"的对应关系
6)使用内插法确定"期望的"质量属性响应级别的效用→
7)计算各架构策略的总收益→
8)根据受成本限制影响的 ROI 选择架构策略。
4 其他评估方法

1)SAEM 方法:将软件架构看作一个最终产品以及涉及过程中的一个中间产品,从外部质量 属性、内部质量属性阐述的评估模型。

外部属性:用户定义的质量属性,内部属性:开发者决定的质量属性。
该评估模型包含以下几个流程:
(1)对待评估的质量属性进行规约建模,参考ISO/IEC 9126-1 标准中的质量模型,先从用 户的角度描述架构的外部质量属性,再基于外部质量属性规约从开发者的角度描述架构的内部质量属性。
(2)为外部和内部的质量属性创建度量准则,先从评估目的(如软件架构比较、最终产品 的质量预测),评估角度(如开发者、用户、维护者),评估环境(架构作为最终产品或设计中 间产品)出发来定义架构评估的目标,再根据目标相关的属性来提出问题,然后回答每个问题并提出相应的度量准则。
(3)评估质量属性,包括数据收集、度量和结果分析3个活动。该模型已在相关系统领域 得到应用。
2)SAABNet 方法:辅助架构的定性评估,帮助诊断软件问题的可能原因,分析架构中的修改 给质量属性带来的影响、预测架构的质量属性,帮助架构设计人员做决策。SAABNet 度量的对象 包括架构属性、质量准则、质量因素。

软件架构定性的评估技术依赖于专家知识,包括某些特定类型问题的解决方案以及可能的 诱导因素、统计知识、审美观等,这些定性的知识比较含糊且难以文档化。 SAABNet是一种用来表达和使用定性知识以辅助架构的定性评估。
该方法来源于人工智能 (AI), 允许不确定、不完整知识的推理。该方法使用 BBN (Bayesian Belief Networks) 来表示和使用开发过程中的知识,包含定性和定量的描述,其中定性:是所有结点的图,定量的描述:是每个结点状态相关的条件概率。
为了将软件架构开发中的定性知识放到 BBN 中,需要经过以下几个步骤:
(1)识别架构中的相关变量。
(2)定义变量之间的概率依赖,这是B B N的定性描述。
(3)评估条件概率,这就是B B N 的定量描述。
(4)测试B B N来验证其输出是否正确。
3)SACMM 方法:一种软件架构修改的度量方法,首先基于内核定义差异度量准则来计算两 个软件架构之间的距离,然后分析对象之间的相似性。

4)SASAM 方法:通过对预期架构和实际架构进行映射和比较来静态地评估软件架构。

静态评估方法对 预期架构模型和实际架构模型中的每个元素进行映射,比较某个模型元素 或关联是否在两个架构模型中都存在,还是只存在于其中某个架构模型中,从而得到评估结果, 其中映射需要手工完成,比较评估可以在软件架构可视化和评估工具SAVE 中执行。
10个评估 目的包括:
(1)产品线可能性。分析几个不相干的系统是否适用于某个共有的架构,即分析它们是否能成为预期产品线的一部分。
(2)产品对准性。评估系统的软件架构是否与产品线的软件架构一致。
(3)重用可能性。分析组件是否能重用。
(4)组件充分性。评估组件的内在质量。
(5)对软件架构的理解。
(6)一致性。评估架构文档和执行的一致性。
(7)完备性。检测未被文档化的架构实体。
(8)软件系统或产品线的文档。
(9)控制演化。
(10)支持架构结构的分解。
5)ALRRA 方法:是软件架构可靠性风险评估方法,使用动态复杂度准则和动态耦合度准则来定义组件和连接件的复杂性因素。动态复杂度准则:在某个场景的执行中分析组件的动态行为来度 量组件的复杂性,动态耦合度准则:某个场景的执行中分析连接件的消息传递协议来度量连接件的复杂性。

可靠性风险主要包含两个因素:故障发生的可能性、故障所致后果的严重性。
ALRRA是一种软件架构可靠性风险评估方法,该方法使用动态复杂度准则和动态耦合度准则来定义组件和连接件的复杂性因素,该方法利用失效模式和影响分析 ( FMEA ) 来定义故障引起的后果的严重性因素, 并将复杂度和严重性因素组合起来定义组件和连接件的启发式风险因素,然后基于组件依赖图定义风险分析模型和风险分析算法,将组件和连接件的风险因素集成到架构层次的风险因素中。
使用 ALRRA方法进行软件架构可靠性风险评估的步骤:
(1)使用架构描述语言 ( ADL ) 建模软件架构。
(2)使用仿真进行复杂性分析。
(3)使用 FMEA和失效严重性分析。
(4)为组件和连接件启发式地定义可靠性风险因素。
(5)构造架构的 CDG , 对每个结点 C;赋予组件的可靠性风险 hrf, 对 C, 和 C;之间连接件赋连接件的可靠性风险hrf。
(6)用图遍历算法执行架构的风险评估和分析,架构的可靠性风险因素可以通过集成其组件和连接件的风险因素获取。
6)AHP 方法:把定性分析和定量计算相结合,对各种决策因素进行处理。

在软件架构评估量化方式中,层次分析法 (Analytical Hierarchy Process,AHP) 是多种架构评估度量方法的基础理论。
AHP 方法的特点是:把复杂问题中的各种因素通过划分为 相联系的有序层次使之条理化,并在一般情况下通过两两对比,根据一定客观现实的主观判断结构,把专家意见和分析者的客观判断结果直接、有效地结合起来, 将一定层次上元素的某些重要性进行定量描述,之后利用数学方法计算反映每一层次元素的相对重要性次序的权值,并最后通过所有层次之间的总排序计算所有元素的相对权重及对权重进行排序。
该方法可以把定性分析和定量计算相结合,并对各种决策因素进行处理,而且该方法的使用过程较为简单,已经在包括软件架构分析与评估、能源系统分析、城市规划、经济管理、 科研评估等很多领域得到广泛的重视与应用。
层次分析法对AHP 问题域的分析、度量一般分为5步:
(1)通过对系统的深入认识,确定该系统的总目标,得出规划决策所涉及的范围、所要采 取的措施方案和政策、实现目标的准则以及策略和各种约束条件等,并广泛收集在分析过程中 要用到的多种信息。
(2)建立一个多层次的递阶结构,按目标不同、实施功能的差异,将系统分为几个等级层次。
(3)确定以上递阶结构中相邻层次元素间的相关程度,通过构造比较判断矩阵及矩阵运算 的数学方法,确定对于上一层次的某个元素而言本层次中与其相关元素的重要性排序,即相对权值。
(4)计算各层元素对系统目标的合成权重,进行总排序,确定递阶结构图中底层的各个元素的重要程度。
(5)根据分析计算结果,考虑相应的决策。
软件架构评估包括对各种质量属性的评估以及其他一些非功能非质量因素的评估,这些属性之间有时存在某些冲突。 A H P是一种重要的辅助决策方法,通常被用来解决这种冲突。 A H P 可以帮助对提供的设计方案进行整体排名。
7)COSMIC+UML 方法:针对不同表达方式的软件架构,采用统一的软件度量 COSMIC 方法 来进行度量和评估。

基于面向对象系统源代码的可维护性度量准则(包括复杂度、耦合度和内聚度的度量准则), Anjos等人提出了基于度量模型来评估软件架构可维护性的方法。
针对不同表达方式的软件架构,采用统一的软件度量COSMIC方法来进行度量和评估。例如,针对UML组件图描述 的软件架构,其可维护性度量包括以下3个步骤。
(1)将面向对象的度量准则与C O S M I C 方法相关联。
(2)对C O S M I C标记进行完善以适用于描述U M L组件图。
(3)提出 U M L 组件图的度量准则:复杂度、耦合度和内聚度等。
该方法主要是为了辅助分析软件架构的演化方案是否可行,并在开源软件DCMMS 的软件架构UML组件图上得以验证。
8.3 ATAM方法架构评估实践

用ATAM方法评估软件体系结构,其工作分为4个基本阶段:即演示、调查和分析、测试、报告
8.3.1 阶段1------演示 (Presentation)

8.3.2 阶段2------调查和分析

8.3.3 阶段3------测试

8.3.4 阶段4------报告A T A M


ok, 今天就到这里吧 🤗
相关系列文章,欢迎点赞、收藏,提供意见!
****
计算机系统基础知识 1分:概述、计算机硬件、计算机软件
操作系统 3分:进程管理、存储管理、文件管理、设备管理
数据库技术 3分:数据库设计、关系代数、范式、事务并发、数据库安全、新技术
嵌入式技术 3分:嵌入式硬件、嵌入式操作系统、嵌入式软件开发
计算机网络 3分(超纲较多):OSI七层模型、TCP/IP协议族、网络生命周期、IP地址
其他计算机系统基础知识 1分:计算机语言、多媒体、系统工程
系统性能 1分:性能指标、性能设计
信息系统基础知识 3分:信息系统生命周期、开发方法、五大典型系统
信息安全技术基础 5分:安全属性、信息安全技术、网络安全技术、安全协议
软件工程 12分:概述、需求工程、系统设计、运维、测试、基于构件;
面向对象技术 3分:面向对象基础、分析设计、UML关系、图
项目管理 1分:进度管理、配置管理、质量管理、风险管理
系统架构设计 20分:架构概念、生命周期、ABSD、DSSA、架构风格、
架构复用、质量属性、架构评估
软件可靠性 2分:可靠性建模、软件可靠性设计
软件架构的演化和维护1分:架构演化分类、评估、面向对象架构演化
未来信息综合技术 3分:信息物理系统、人工智能、边缘计算、机器人、数字李生、云计算
数学与经济管理 2分:最小生成树、最短路径、网络与最大流量、线性规划、决策论
知识产权和标准化 2分:知识产权属性、保护期限、产权人确定、侵权判定
专业英语 5分:完形填空,大学英语3级难度,自学
|--------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
| 【架构专栏】架构考试介绍 | 【架构专栏】架构知识点 |
| 【架构专栏】第1章 绪论 | 【架构专栏】第11章 未来信息综合技术 |
| 【架构专栏】第2章 计算机基础知识 | 【架构专栏】第12章 信息系统架构设计理论与实践 |
| 【架构专栏】第3章 信息系统基础知识 | 【架构专栏】第13章 层次式架构设计理论与实践 |
| 【架构专栏】第4章 信息安全技术基础知识 | 【架构专栏】第14章 云原生架构设计理论与实践 |
| 【架构专栏】第5章 软件工程基础知识 | 【架构专栏】第15章 面向服务架构设计理论与实践 |
| 【架构专栏】第6章 数据库设计基础知识 | 【架构专栏】第16章 嵌入式系统架构设计理论与实践 |
| 【架构专栏】第7章 系统架构设计基础知识 | 【架构专栏】第17章 通信系统架构设计理论与实践 |
| 【架构专栏】第8章 系统质量属性与架构评估 | 【架构专栏】第18章 安全架构设计理论与实践 |
| 【架构专栏】第9章 软件可靠性基础知识 | 【架构专栏】第19章 大数据架构设计理论与实践 |
| 【架构专栏】第10章 软件架构的演化和维护 | |
[架构专栏 知识点]
希望有所帮助,互相学习、共同进步,欢迎点赞、收藏!

