ATAM方法架构评估实践

2024-04-09 03:28
文章标签 实践 方法 评估 架构 atam

本文主要是介绍ATAM方法架构评估实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        用ATAM方法评估软件体系结构,其工作分为4个基本阶段,即演示、调查和分析、测试和报告ATAM(如图1所示)。接下来分别就每个阶段的实践进行详细介绍。

 图1 ATAM方法的评估实践阶段划分

1.阶段1——演示(Presentation)

        这是使用ATAM评估软件体系结构的初始阶段。此阶段有3个主要步骤:介绍ATAM、介绍业务驱动因素、介绍要评估的体系结构。 

1.1第1步:介绍ATAM

        这一步涉及ATAM评估过程的描述。在此步骤中,评估负责人向所有相关参与者提供有关ATAM过程的一般信息。领导者说明评估中使用的分析技术以及评估的预期结果。领导者解决小组成员的任何疑虑、期望或问题。 

1.2第2步:介绍业务驱动因素

        在这一步中,提到了系统体系结构驱动程序的业务目标。这一步着重于系统的业务视角。它提供了有关系统功能、主要利益相关方、业务目标和系统其他限制的更多信息。 

1.3第3步:介绍要评估的体系结构

        在这一步中,架构团队描述了要评估的架构。它侧重于体系结构、时间可用性以及体系结构的质量要求。此步骤中的体系结构演示非常重要,因为它会影响分析的质量。这里涉及的关键问题包括技术约束,与正在评估的系统交互的其他系统,以及为满足质量属性而实施的架构方法。系统的质量属性是代表系统所需质量的问题。这些属性的例子包括性能、可靠性等。

2.阶段2——调查和分析

         这是使用ATAM技术评估架构的第2阶段。在这个阶段,人们对评估期间需要重点关注的一些关键问题进行彻底调查。这个阶段被细分为3个步骤:确定架构方法、生成质量属性效用树、分析体系结构方法。

2.1第4步:确定架构方法

         这一步涉及能够理解系统关键需求的关键架构方法。在这一步中,架构团队解释了架构的流程控制,并提供了关于如何达成关键目标以及是否达到关键目标的适当解释。

2.2第5步:生成质量属性效用树

        在评估阶段,系统最重要的质量属性目标被确定,并确定优先次序和完善。这一步至关重要,因为它将所有利益相关方和评估人员的注意力集中在关系到体系成功至关重要的体系结构的不同方面。这是通过建立效用树来实现的。

2.3第6步:分析体系结构方法

        这是“调查和分析”阶段的最后一步。在这一步中,人们分析前一步生成的效用树的输出,并进行彻底调查和分析,找出处理相应质量属性架构的方法。

3.阶段3——测试 

3.1第7步——头脑风暴和优先场景

         这是ATAM测试阶段的第一步。前者代表利益相关者的利益,用于理解质量属性要求。在效用树生成步骤中,主要结果是从架构师的角度来理解质量属性。在这一步中,目标是让更大的利益相关者参与其中。

        将头脑风暴情景的优先列表与在步骤5中或得的优先方案进行比较。利益相关者需要使用头脑风暴的三种场景:用例场景、增长情景、探索性场景

3.2第8步——分析架构方法

        这是“测试”阶段的最后一步。在这一步中,我们分析上一步中高优先级的质量属性。我们找到了处理这些质量属性的架构设计方案,并检查相应的架构设计方案是否可支持满足这些属性。这一步重复“调查和分析”阶段的第6步。唯一的区别在于,在步骤6种,高优先级质量属性来自效用树,而这一步需要考虑在头脑风暴的步骤中,高得票数的质量属性。一些在步骤6中被认为是高优先级的质量属性可能在头脑风暴的步骤中,仍被认为是高优先级的质量属性。同时,头脑风暴的过程也可能产生一些新的高优先级的质量属性。最后,分析架构设计方案中的风险、非风险、敏感点和权衡点。

4.阶段4——报告ATAM

        这是ATAM评估的最后阶段,其中提供了评估期间收集的所有信息。ATAM团队将他们的发现呈现给利益相关者。

        ATAM团队的主要发现通常包括:

  •         一种效用树;
  •         一组生成的场景;
  •         一组分析问题;
  •         一套确定的风险和非风险;
  •         确定的架构方法。

        报告中包含的所有内容在前述的8个步骤中已经进行了介绍。

这篇关于ATAM方法架构评估实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/887063

相关文章

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据