系统架构设计师——架构评估(二)

其他质量属性

  1. 敏感点
    • 敏感点是指那些对特定质量属性影响较大的系统部分。例如,对于性能来说,数据库访问可能是一个敏感点;对于安全性来说,用户认证模块可能是一个敏感点。
    • 识别敏感点有助于架构师优先处理可能影响关键质量属性的系统部分,从而在设计过程中进行重点优化和测试。
  2. 权衡点
    • 权衡点是指在不同质量属性之间需要进行平衡的系统部分。例如,为了提高性能可能需要牺牲一定的可维护性或可扩展性。
    • 架构师需要在这些质量属性之间做出合理的权衡,以确保系统整体上能够满足业务需求和用户期望。
  3. 风险
    • 风险是指那些可能导致项目失败或质量属性不达标的因素。这包括技术风险、市场风险、人员风险等。
    • 在架构设计过程中,需要识别和评估潜在的风险,并制定相应的缓解措施以降低风险的影响。
  4. 非风险
    • 非风险是指那些与风险相对的、不太可能对项目成功构成威胁的因素。它们通常是项目中已解决或可控的部分。
    • 虽然非风险因素不需要像风险那样重点关注,但它们也是项目成功的重要组成部分,因此需要保持其稳定和可靠。

架构评估方法

基于调查问卷或检查表的方式

  • 定义:这种方法通过设计一系列的问题或检查项,来收集反馈并评估架构特性。这些问题可能涉及架构的可维护性、可扩展性、安全性等方面。
  • 作用:通过问卷调查或检查表,可以系统地收集来自不同利益相关者的意见和反馈,帮助识别潜在的问题和改进点。

基于场景的方式

  • 定义:这种方法通过定义一系列具体的使用场景或质量场景,来模拟系统在特定条件下的行为,并评估架构如何满足这些场景的需求。
  • 作用:场景驱动的评估方法能够更直观地展示架构在实际情况下的表现,帮助开发团队更好地理解架构的优势和局限。
软件架构分析方法(Architecture Tradeoff Analysis Method( ATAM)
  • 定义:软件架构分析方法是一种基于场景的评估技术,它通过分析架构对特定场景的响应来评价架构的质量属性。
  • 作用:这种方法有助于识别架构中的潜在问题,并提供改进的方向。

架构权衡分析方法(ATAM)是一种系统架构评估方法,旨在综合评价性能、可用性、安全性和可修改性等质量属性,并进行适当的权衡。该方法由卡耐基梅隆大学软件工程研究所提出,最初目的是为了解决在架构设计中对多个质量属性的综合考量问题。以下是关于其的详细介绍:

  1. 介绍
    • 背景与发展:ATAM全称为Architecture Tradeoff Analysis Method,是由卡耐基梅隆大学软件工程研究所提出的架构评估方法。它从SAAM方法发展而来,着重于评估架构对质量属性的支持并进行权衡。
    • 核心理念:ATAM的核心在于通过一个综合的过程,分析架构特征并评估其对不同质量属性的影响,从而做出最佳决策。
  2. 活动阶段
    • 需求收集:这一阶段主要收集与系统相关的业务动机、需求和预期目标。评估团队通过与项目决策者和架构涉众沟通,明确系统要实现的主要功能和特性。
    • 架构视图描述:架构师需详细描述系统的架构设计,包括技术约束、交互系统和架构方法等信息。这一步骤确保所有参与者对架构有清晰理解。
    • 属性模型构造和分析:在这一步骤中,评估小组将构建质量属性效用树,从高级效用到具体的质量属性场景逐步细化,并分析架构对这些场景的支持情况。
    • 架构决策与折中:基于前几步的分析和评估,确定架构决策的风险点、敏感点和权衡点。这些信息将用于制定最终的架构改进建议。
  3. 实施步骤
    • 评估方法介绍:评估负责人向参与者详细介绍ATAM流程和方法,确保所有人对评估过程有统一的理解。
    • 商业动机表述:项目经理或系统客户阐述系统的商业目标及主要驱动因素,明确项目的重点和风险承担者。
    • 架构表述:架构设计师全面描述架构设计,包括用于支持质量属性的关键架构方法和重要的用例场景。
    • 场景优先级确定:通过集体讨论和投票,确定不同场景的优先级,以指导后续的分析工作。
    • 架构方法分析:根据高优先级场景,深入分析架构方法,识别潜在的风险点和敏感点,并制定相应的改进建议。
    • 结果表述:最后,评估小组将评估结果整理成报告,向所有参与者展示,包括架构方法、场景优先级、关键质量属性和推荐的设计决策等内容。
  4. 优点与局限
    • 优点:ATAM能够全面评估架构对多种质量属性的支持,并通过权衡分析提供明确的决策依据。同时,该方法适用于不同行业和领域,具有较强的通用性和适应性。
    • 局限:尽管ATAM提供了全面的评估框架,但由于依赖于具体参与者的经验和判断,可能存在一定的主观性。此外,评估过程较为复杂,需要多方参与和充分的时间投入。
现代的ATAM

ATAM的评估活动步骤如下:

  1. 描述ATAM方法:评估小组负责人向参与会议的项目干系人介绍ATAM评估方法,确保所有人对评估流程有清晰的认识。

  2. 描述业务动机:项目决策者从业务的角度介绍系统的概况,包括系统的主要功能、技术或管理或经济和政治方面的限制、与项目相关的业务目标和上下文、关键干系人以及架构的驱动因素。

  3. 描述架构:详细说明技术约束(如操作系统、硬件和中间件)、将与系统交互的其他系统以及为满足质量属性要求而采用的架构方法。

  4. 确定架构方法:架构设计师通过理解架构方法来分析架构,并确定适合的架构策略。

  5. 生成质量属性效用树:评估小组、设计小组、管理人员和客户代表共同确定系统最重要的质量属性目标,对这些质量目标设置优先级并进行细化。

  6. 分析架构方法:此步骤会产出架构方法或风格的列表、相关问题及设计师对这些问题的回答,通常会产生一个包含风险、敏感点和权衡点的列表。

  7. 讨论场景和对场景分级:项目干系人集体讨论用例场景和改变场景,并通过投票表决的方式对收集到的场景进行优先级排序。

  8. 分析架构方法:在收集和分析场景后,设计师将最高级别的场景映射到所描述的架构中,并解释相关架构是如何帮助实现这些场景的。评估小组会重复第6步中的工作,将新得到的最高优先级场景与尚未得到的架构工作产品对应起来。如果在第7步中没有产生任何高优先级的场景,则第8步主要是测试步骤。

  9. 描述评估结果:最后,将ATAM分析中得到的各种信息进行归纳,并反馈给项目干系人。ATAM的评估结果包括简洁的架构描述、清晰的业务目标、用场景集合捕获的质量属性、确定的敏感点和权衡点集合、有风险决策和无风险决策、风险主题的集合。

架构权衡分析法(Software Architecture Analysis Method, SAAM)
  • 定义:架构权衡分析法是一种系统化的方法,用于评估在满足不同质量属性时所做的权衡。
  • 作用:它帮助架构师明确在追求某一质量属性时可能对其他属性产生的影响,从而做出更加明智的决策。

软件体系结构分析方法(SAAM)是一种用于评估软件架构质量的早期方法。SAAM的核心在于通过场景与体系结构的映射,来评估架构对业务需求的适应性。这种方法最早由卡耐基梅隆大学软件工程研究所的Kazman等人于1983年提出,最初用于比较不同的软件体系结构,以分析其可修改性。实践证明,SAAM也可用于评估其他质量属性如可移植性和可扩展性等。

SAAM的目标是验证基本架构假设和原则,同时评估架构固有的风险。通过协调不同参与者所感兴趣的方面,SAAM提供了对体系结构的公共理解,帮助后续的决策制定。该方法适用于架构的最后版本,但早于详细设计阶段。

SAAM的评估过程包括场景开发、体系结构描述、单个场景评估、场景交互和总体评估五个步骤。在场景开发阶段,风险承担者共同讨论并形成一系列任务场景,体现系统所需支持的各种活动。接着,通过一种易于理解的方式描述体系结构,包括计算构件、数据构件及构件之间的关系。对场景进行分类,生成特定体系结构的场景描述列表,然后逐一评估这些场景,并分析它们之间的相互作用。最终,对场景及其交互进行全面权衡和评价,得出总体结论。

成本收益分析方法CBAM(Cost Benefit Analysis Method)
  • 定义:成本收益分析方法是一种评估架构选择的经济性的方法,通过比较不同选择的成本和预期收益来进行。
  • 作用:这种方法有助于确定在资源有限的情况下,哪些架构决策能够带来最大的净收益。

CBAM(Concern-Based Adoption Model)是一种用于评估架构设计决策成本和收益的模型,其基本思想是架构策略会影响系统的质量属性,而这些质量属性又会为系统的项目干系人带来一些收益(称为“效用”)

CBAM可以看作是ATAM的补充,在ATAM评估结果的基础上对架构的经济性进行评估。CBAM的核心在于通过精细化的关注和空间注意力模块,从不同维度优化架构设计,从而提升系统的整体性能和经济效益。这种模型不仅适用于传统的软件架构设计,还可以广泛应用于其他领域,如业务过程管理和组织变革等。

基于度量的方式

  • 定义:基于度量的评估方法是通过收集和分析与架构相关的量化数据来评估架构的质量。
  • 作用:度量数据可以包括代码复杂度、耦合度、响应时间等,这些数据为评估提供了客观的证据,有助于量化架构的优缺点

你可能感兴趣的:(#,系统架构设计师,系统架构,架构,数据库,系统架构设计师)