软件设计与体系结构知识总结——第十四章 Architecture Evaluation

目录

0.前言

ATAM

ATAM Evaluation

LAE 的典型议程

CBAM


0.前言

        本系列文章旨在软件设计与体系结构的知识点,资料来源四川大学授课内容,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗部分为重点。

第十四章整体框架

评估的作用:体系结构是系统成功的重要因素,因此有必要确保体系结构能够提供所有预期功能。

评价通常有三种形式:设计师在设计过程中进行评价;同行在设计过程中进行评价;设计完成后由外部人员进行分析

①设计师的评估:设计者每次做出关键设计决策或完成设计里程碑时,都应对所选方案和竞争方案进行评估;设计者的评估是生成和测试方法的测试部分

②同行的评估:同行评审可在设计过程的任何阶段进行,只要存在候选架构,或至少存在一个连贯的可评审部分;同行评审应分配一定的时间,至少几个小时,可能的话半天

步骤:1.评审员确定若干质量属性情景,以驱动评审;2.架构师提出要评估的架构部分;3.评审员访问每个情景是否满足要求;4.评审时捕捉潜在问题

③外部评估:外部评估人员可以对架构进行客观的评估;外部是相对的:在开发项目之外;在项目所在的业务部门之外,但在同一公司之内;在公司之外

原则上,外部团队可以评估一个完整的架构、一个不完整的架构或架构的一部分。

对于同行评审或外部评估,有许多背景因素必须考虑:可用的工具;评估结果是公开的还是私下的;评估者的数量和技能;利益相关者的数量和身份;如何理解业务目标

ATAM

ATAM架构权衡分析法,一直被用于评估从汽车、金融到国防等领域的软件架构。

ATAM揭示了架构满足特定质量目标的程度,并让人深入了解质量目标如何相互作用,即它们如何相互权衡

ATAM需要三个群体的参与和相互合作:评估团队;项目决策者;架构利益相关者

①评估团队是:该团队不属于项目,通常由三至五人组成。评团队组的每个成员都被赋予一些特定的职责,无论如何,他们都必须是公认的有能力、不带偏见的局外人。

评估团队包括以下角色:团队组长;评估组长;情景记录员;会议记录员;提问者

②项目决策者:有权代表开发项目发言或有权要求对项目进行修改(项目经理、重要客户);架构评估的一条基本规则是,架构师必须愿意参与其中

③架构利益相关者在架构中拥有既得利益,包括:开发人员、测试人员、集成人员、维护人员、性能工程师、用户、与所考虑的系统交互的系统的构建人员,以及其他人员。

基于 ATAM 的评估至少会产生以下输出结果:架构的简明介绍;业务目标的阐述;质量属性要求的优先级,以质量属性方案表示;一组风险和非风险;一组风险主题;架构决策与质量要求的映射;一组已确定的敏感点和权衡点

敏感性Sensitivity--对一个质量属性有明显影响的架构决策

权衡点Tradeoff points--对更多质量属性有明显影响的架构决策

风险Risks--风险是可能导致不良后果的架构决策

非风险Nonrisks--经分析认为安全的架构决策

以 ATAM 为基础的评估活动分为四个阶段:Partnership and preparation;Evaluation 1;Evaluation 2 (continued)(续);Follow-up后续行动

在第 0 阶段,评估团队的领导和项目的主要决策者举行非正式会议,制定评估工作的细节:项目代表向评估人员简要介绍项目情况;两组人员共同商定会议的时间和地点等后勤事宜;他们还就利益相关者的初步名单达成一致;制定出向评估小组提供任何架构文件的方案;评估团队组长解释在第 1 阶段期间希望管理者和建筑师提供哪些信息。

ATAM Evaluation

第 1 阶段和第 2 阶段为评估阶段,其中包括:介绍 ATAM;介绍业务驱动因素;介绍架构;确定架构方法;生成质量属性实用树;分析架构方法;集思广益并确定优先级;分析架构方法;介绍结果。

①第一步要求评估组长向与会的项目代表介绍 ATAM,利用这段时间解释大家将遵循的流程。在这段时间里,领导者将使用标准演示文稿,简要介绍 ATAM 的步骤和评估结果。

②了解系统的背景以及开发该系统的主要业务驱动因素:系统最重要的功能;任何相关的技术、管理、经济或政治限制;与项目相关的业务目标和背景;主要利益相关者;架构驱动因素

③首席架构师进行演示,以适当的详细程度描述架构: 已设计和记录了多少架构;有多少时间可用;行为和质量要求的性质

④ATAM 的重点是通过了解架构方法来分析架构。评估团队将很好地了解架构师在设计系统时使用了哪些模式和方法。在这个简短的步骤中,评估团队只需对明显的模式和方法进行编目。

⑤质量属性目标通过一种称为 "效用树"的机制详细阐述。效用树的作用是使需求具体化;评估团队与项目决策者合作,确定、优先考虑并细化系统最重要的质量属性目标,这些目标被表述为以下方案

效用是根节点。效用是系统整体 "好坏 "的体现;质量属性构成中间层;场景构成效用树的叶子

最重要的方案优先考虑 (H,M,L),困难的方案也优先考虑 (H,M,L)。 现在,每个方案都有一个相关的有序对:(H,H)、(H,M)、(H,L),依此类推,我们关注 (H,H)、(H,M) 或 (M,H)。

⑥评估团队逐一检查排名最高的方案:要求架构师解释架构如何支持每个方案;提问者询问架构师用于实现方案的架构方法;记录相关的架构决策,并识别和编目其风险、非风险、敏感点和权衡点;通过情景演练,讨论可能的风险、非风险、敏感点或权衡点

⑦情景集思广益Brainstorm的目的是为更大范围的利益相关者群体把脉;在这一步骤中,评估团队要求利益相关者集思广益,提出对利益相关者的个人角色有操作意义的方案。

一旦收集到各种方案,就必须对其进行优先排序;首先,要求利益相关者将他们认为代表相同行为或质量问题的方案合并,然后投票选出他们认为最重要的方案。

⑧在收集了各种方案并对其进行优先排序后,评估团队指导架构师实施步骤 7 中排名最靠前的方案,建筑师解释了相关的建筑决策如何有助于实现每一个目标

⑨最后,对收集到的信息进行总结和介绍:记录在案的架构方法;通过头脑风暴确定的一系列方案及其优先次序;实用树;发现的风险;记录在案的非风险;找到的敏感点和权衡点。

第 4 阶段是后续行动,评估团队编写并提交书面最终报告。 然而,这一阶段的实质是团队的自我检查和改进。在会后会议上,团队讨论了哪些方面做得好,哪些方面做得不好。团队成员在履行职能的过程中寻求改进,以便下一次评估更加顺利或更加有效;团队记录评估过程中花费的精力;在适当的月数之后,团队组长与评估客户联系,评估评估工作的长期效果,以便对成本和效益进行比较。

LAE 的典型议程

CBAM

CBAM(成本效益分析法)是一种软件系统经济建模方法,其核心是对软件系统架构的分析,它提供了对技术和经济问题以及架构决策的评估。

软件架构师或决策者希望最大限度地提高系统收益与实施设计成本之间的差额

ATAM和CBAM的区别:目的不同 ATAM 关注产品本身,它为软件架构师提供了一种评估技术权衡的方法,CBAM 关注经济性,它考虑到成本、收益、风险和进度影响。

ATAM 确定了与业务目标所引出的质量属性情景相关的一系列关键架构决策,CBAM 直接考虑了业务目标的成本和收益。

利益相关者决定他们是否应该:使用冗余硬件;故障转移;负载平衡;节省这个项目的成本,投资另一个项目,例如:冗余软件

CBAM 方法的基础:CBAM 背后的理念是,架构策略会影响质量属性,而质量属性反过来又会给利益相关者带来一些好处。CBAM 可以帮助利益相关者根据其成本价值(VFC)选择架构策略,VFC = benefit / cost。

我们将利益称为效用Utility。每种架构策略都为利益相关者提供了特定水平的效用,效用就是系统利益相关者获得的利益。CBAM 实际上使用的是一组情景(通过改变反应值生成),而不是 ATAM 中的单个值。这就产生了效用-反应曲线的概念 CBAM 结构情景通常包括:刺激、环境和反应

我们可以将一组效用指标和一组相应的响应指标之间的关系描绘成一幅图--效用-响应曲线URC

与架构策略无关的四个值:

最佳情况Best-case(0.1 秒的实时时间对人来说是瞬时的,因此 0.03 并不重要)= 100

最差情况Worst-case(最低要求)= 0

当前Current(相对于最佳和最差情况)= x%

需求Desired(相对于最佳和最差情况)= y%

为确定每种方案的相对重要性,通过两步投票法分配权重;利益相关者对方案进行投票,以确定它们之间的排序;然后,利益相关者对评级最高的方案分配 1 的权重,对其他方案分配一定的权重。

对于每种策略,我们可以得出:每种情况下响应的预期值;架构策略对其他相关属性的影响;实施架构策略的成本估算。

我们计算一种架构战略在不同情景下的总体效用,对每种架构战略,我们计算出的效益 Bi 如下:

Bi =∑(bi,j*Wj)

bi,j = Uexpected - Ucurrent

其中,bi,j是策略i因影响方案j而获得的收益,Wj 是方案 j 的权重。

每个架构策略的 VFC 值是实施该策略的总收益 Bi与成本 Ci 之比:VFCi = Bi / Ci

利用此 VFC 分数,可以对架构策略进行排序;排序结果可用于确定实施各种策略的最佳顺序。

CBAM的步骤:①整理方案Collate scenarios:排定优先级,选出前三分之一 (1/3) ;②完善方案Refine scenarios:确定最佳、最差、当前和理想方案的质量属性响应级别;③确定方案优先级Prioritize scenarios:剔除一半方案(1/6);④为每个方案的当前和理想级别分配效用Assign utility;⑤为各种情景制定架构策略,并确定质量属性响应水平;⑥利用内插法确定架构策略的预期效用值;⑦计算从架构策略中获得的总收益;⑧根据成本限制,选择基于 VFC 的架构策略;⑨利用直觉确认结果

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五倍子的代码空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值