1、关注软件架构的系列主题-如何评估架构 Overview2016.4.22一、引言二 、 ATAM三、 CBAM提纲四 、架构编档与评估为什么要评估软件架构为什么要评估软件架构时间参与者收益技巧前置条件结果为什么要评估软件架构?我们需要了解软件架构设计的原因,因为很多事情都依赖于架构,并且我们 能够对架构进行评估。在每个基于架构的开发方法中都应该进行架构评估。软件架构评估的重要因素软件架构评估的重要因素时间参与者收益技巧前置条件结果时间在软件的生命期内近可能早的评估软件架构几乎总是经济高效的。可以在系统生命周期的许多个点上进行架构评估。参与者项目负责人、架构师有经验的评估团队其他涉众软件架构评估
2、的重要因素软件架构评估的重要因素时间参与者收益技巧前置条件结果经济性在 8年的时间内对架构进行评估的经验表明,进行全面的架构评估平均可以节约 10%的成本促进编档向被评审人员说明架构评估的重点并要求他们在评估前表述构架,意味着被评审人员必须对架构进行编档了解原理架构评估通常侧重于需要回答的一些具体问题的某几个特定的方面,回答这些问题通常需要解释设计选择及其基本原理验证需求讨论和检查架构满足其需求的情况可以展开对需求的讨论,结果是能更清楚的理解需求,通常还能够知道需求的优先级架构改进架构评估不仅在评估后得到了更好的架构,随着时间的推移,组织就培养了一种提倡优秀的架构设计的文化软件架构评估的重要因
3、素软件架构评估的重要因素时间参与者收益技巧前置条件结果提问技巧ATAM和 CBAM方法就是 “ 提问技巧 ” 的示例,在假定的架构上就可以很好的应用它,并且可以在生命期的早期应用。度量技巧提问技巧的补充是度量技巧,它依赖于对某些类似的定量度量, 使用度量技巧时,必须有已经存在的、可以被度量的工作产品。软件架构评估的重要因素软件架构评估的重要因素时间参与者收益技巧前置条件结果前置条件表述清晰的架构目标与需求 ,只有需求明确,才能评估一个架构是好还是坏;可控制的范围 ,列出几个明确的目标,数量最少应该有 3-5个;经济高效 , ATAM与 CBAM方法适用于大中型项目,对于小项目可能就不是经济高效
4、的了;关键人员参与 ,务必确保能够系统、清晰表述架构的人能参与;称职的评估团队 ,在理想状态下,评估团队应该是公司内的一个独立实体,它们必须公正、客观并受人尊重。软件架构评估的重要因素软件架构评估的重要因素时间参与者收益技巧前置条件结果结果 (应该包含,但不限于)一个简洁清晰的架构表述一个简洁清晰的业务目标表述代表质量需求的场景集合架构决策到质量需求的映射确定的敏感点和权衡点集合有风险决策和无风险决策风险主题的集合根据 ROI(投资回报率)对架构策略的排序( 仅限于 CBAM)一、引言二 、 ATAM三、 CBAM提纲四 、架构编档与评估ATAM概念概念ATAM,架构权衡分析法, 是评估软件架
5、构的一种综合全面的方法,它不仅可以揭示出架构满足特定质量目标的情况,而且可以使我们更清楚的认识到质量目标之间的联系 -即如何权衡诸多质量目标。第 0阶段通常是评估小组的负责人与项目 决策者 进行沟通,做好评估前的准备工作第 1阶段通常是评估小组与项目 决策者 联合工作,收集有价值的资料并对其进行整理分析第 2阶段通常是评估小组、项目 决策者 以及 架构 涉众联合工作,继续第一阶段的分析,并最终给出评估结果第 3阶段通常是评估小组和评估的客户,是对前两个阶段工作的总结以及进行自我反省与改进评估小组 , 由 3-5个有经验的架构师组成项目决策者 , 项目经理、开发经理等对项目决策负责的人架构涉众 ,高级主管, 开发人员、测试人员、运维人员等分析阶段