系统架构评估可以分为3类
基于调查问卷或检查表方式
这种方法的缺点是依赖于系统评估人员的经验和知识,客观性难以保证,因此用的少。
基于场景的评估方法
筛选出系统的关键场景,根据系统在不同场景中的表现进行评估,这种方式客观程度介于2者之间,这也是目前较为流行的结构评估方法。
这种方法主要有以下几种方式:
- 架构权衡分析法(Architecture Tradeoff Analysis Method, ATAM)
- 软件架构分析方法(Software Architecture Analysis Mehtod, SAAM)
- 基于成本分析方法(the Cost Benefit Analysis Method, CBAM)
基于度量的评估方法
强调量化指标,最客观,但是这种方式实施难度大,因为需要评估者对系统非常熟悉,不然很难量化清楚各项指标。
ATAM方法架构评估实践
用ATAM方法评估软件体系结构,其工作分为4个基本阶段,即演示、调查和分析、测试和报告ATAM(如下图)。
阶段1——演示(Presentation)
第1步:介绍ATAM
这一步涉及ATAM评估过程的描述。在此步骤中,评估负责人向所有相关参与者提供有关ATAM过程的一般信息。领导者说明评估中使用的分析技术以及评估的预期结果。领导者解决小组成员的任何疑虑、期望或问题。
第2步:介绍业务驱动因素
在这一步中,提到了系统体系结构驱动程序的业务目标。这一步着重于系统的业务视角。它提供了有关系统功能、主要利益相关方、业务目标和系统其他限制的更多信息。
第3步:介绍要评估的体系结构
在这一步中,架构团队描述了要评估的架构。它侧重于体系结构、时间可用性以及体系结构的质量要求。此步骤中的体系结构演示非常重要,因为它会影响分析的质量。这里涉及的关键问题包括技术约束,与正在评估的系统交互的其他系统,以及为满足质量属性而实施的架构方法。系统的质量属性是代表系统所需质量的问题。这些属性的例子包括性能、可靠性等。
8.3.2阶段2——调查和分析
在这个阶段,人们对评估期间需要重点关注的一些关键问题进行彻底调查。这个阶段被细分为后边的3个步骤
第4步:确定架构方法
这一步涉及能够理解系统关键需求的关键架构方法。在这一步中,架构团队解释了架构的流程控制,并提供了关于如何达成关键目标以及是否达到关键目标的适当解释。
第5步:生成质量属性效用树
在评估阶段,系统最重要的质量属性目标被确定,并确定优先次序和完善。这一步至关重要,因为它将所有利益相关方和评估人员的注意力集中在关系到体系成功至关重要的体系结构的不同方面。这是通过建立效用树来实现的。
效用树提供了一种使系统目标更加具体的方法,还提供了质量属性目标重要性的比较方式。因此,效用树表达了系统的整体“良好”程度。最重要的是,效用树包含了与系统有关的质量属性,以及对利益相关者重要的质量属性要求(称之为情景)。情景是一个说明利益相关者和系统之间的相互作用的陈述。这些情景用来判断架构的质量目标。
此阶段完成的结果将成为ATAM评估步骤其余部分使用的情景优先列表。它缩小了在架构中探索的风险和架构的选择范围。因此,这一步在评估过程中是非常宝贵的。
1)情景生成
情景生成是创建效用树之前的重要步骤。表1格显示了与每个利益相关者有关的情景以及它所代表的质量属性。
| 利益相关者 | 场景 | 质量属性 |
|---|---|---|
| 用户 | 针对系统的未授权访问 | 安全性 |
| 所有操作以尽可能快的速度处理 | 性能 | |
| 失效发生后应该立即恢复 | 可用性 | |
| 处理使用系统过程中的用户错误 | 可靠性 | |
| 处理针对系统功能的新需求 | 可修改性 | |
| 架构师 | 框架的主要部分应该支持重用 | 可变性 |
| 框架的修改开销小、速度快、时间短 | 可修改性 | |
| 框架中的组件能够协同交互 | 功能性 | |
| 框架能够扩展以支持更复杂的选项 | 可变性 | |
| 可以在不同环境中执行 | 可移植性 | |
| 合适的数据封装和安全的数据结构 | 安全性 | |
| 可以用其他编程语言灵活实现 | 可移植性 | |
| 架构层面上期望有着全局一致的行为 | 概念一致性 | |
| 应用开发人员 | 框架应该完整、清晰并与需求一致 | 功能性 |
2)质量属性效用树生成
效用树以"效用"作为根结点,质量属性构成效用树的辅助级别。这些属性位于表1的第3列。在每个质量属性中都会包含特定的质量属性说明,以提供对方案更精确的描述。后者形成了实用程序树中的叶节点。效用树沿着两个维度进行优先顺序:每个场景对系统成功的重要性以及对此场景实现(从架构师的角度来看)所带来的难易程度的估计。效用树中的优先级排名为高(H)、中(M)和低(L)。
第6步:分析体系结构方法
这是“调查和分析”阶段的最后一步。在这一步中,人们分析前一步生成的效用树的输出,并进行彻底调查和分析,找出处理相应质量属性架构的方法。人们根据这些质量属性分析这两种架构,并为它们提供适当的解释。这里还确定了每种架构方法的风险、非风险、敏感点和权衡点。
从步骤5的效用树中,提取高优先级场景。例如,请考虑步骤5中效用程序树的以下两个方案:
- (L,M)所有操作都以最快的速度处理(性能)。
- (H,M)应该处理系统中的用户错误(可靠性)。
场景旁边的(L,M)和(H,M)所示这些场景的优先级,从而决定选择哪个质量属性。在这个例子中,选择第2种方案是因为它对系统的成功和架构师的中等难度具有高度重要性。第1种情况不被考虑,因为它对系统的重要性不高。从效用树中获得的高优先级属性是可变性、可靠性、集成性(Conceptual Integrity)、功能性和可修改性。质量属性(如性能、可用性、安全性和可移植性)没有被赋予高优先级,因为它们对系统目标不那么重要。 这一步可分为四个主要阶段:
- 调查架构方法。
- 创建分析问题。
- 分析问题的答案。
- 找出风险、非风险、敏感点和权衡点。
1)调查架构方法
在识别出对系统目标至关重要的质量属性后,我们分析两种架构并确定它们如何支持这些质量属性。我们对体系结构进行详细的调查,以了解这些质量属性要求是否得到满足。
2)创建分析问题
本步骤的下一个阶段涉及收集上面讨论过的高优先级场景中产生的分析问题。在现实生活中,所有利益相关者都会收集分析问题。在这个项目中,我们只是简单地创建了优先场景中显著的示例问题。分析问题与上面讨论的每种架构方法相关联;并面向重要的质量属性。以下是分析问题列表和正在解决的属性:
①架构的组件可以重复用于未来的项目吗?(变化性)
②未来可以扩展框架以适应新的应用程序或新组件吗?(变化性)
③系统会处理用户提供的任何输入并处理无效输入吗?(可靠性)
④架构的行为是否一致?(概念完整)
⑤是否可以将任何新的应用程序特定功能添加到架构中?(可修改性)
⑥系统能否以短时间和成本效益的方式进行修改?(修改性)
⑦组件是否正确交互?(功能性)
⑧体系结构是否正确执行其事件处理任务?(功能)
3)分析问题的答案
这一步的第三阶段是根据两种评估架构对上述分析问题提供合理的解释或答案。
4)找出风险、非风险、敏感点和权衡点。
此步骤的最后阶段是确定风险、无风险、敏感点和权衡点。
风险是架构中的一个问题点,后者不支持给定的优先级质量属性。非风险是体系结构的优势,后者实现特定的优先级质量属性。敏感点是一个或多个组件的属性,对于实现给定的质量属性至关重要。如果架构对多个属性敏感,那么该点称为权衡点。
阶段3——测试
第7步——头脑风暴和优先场景
这是ATAM测试阶段的第一步。前者代表利益相关者的利益,用于理解质量属性要求。在效用树生成步骤中,主要结果是从架构师的角度来理解质量属性。在这一步中,目标是让更大的利益相关者参与其中。
将头脑风暴情景的优先列表与在步骤5中从树中获得的优先方案进行比较。利益相关者需要使用头脑风暴的三种场景:
- 用例场景:在这种情况下,利益相关者就是最终用户。
- 增长情景:代表了架构发展的方式。
- 探索性场景:代表架构中极端的增长形式。
这一步执行的活动如下: - 首先,情景是在利益相关者的大风暴活动之后收集的。
- 场景优先。与相同质量属性有关的所有场景都被合并,利益相关者投票选出他们认为最重要的场景。每个利益相关者都被分配了一定数量的选票:
- 投票结束后,投票结果会被记录下来,场景按总票数排序。采取截止线以上的情况,其余不予考虑。
- 将优先头脑风暴情景列表与优先情景进行比较。优先方案从步骤5中的效用树中获得,增加头脑风暴中的场景。 在实用程序树中适当的分支可能是树中已经存在的场景的副本,或者它可能在新的叶子下,或者可能不适合任何分支。 在这个阶段提及这一点很重要,因为我们可以进行两次ATAM。
一个项目中的体系结构只能模拟利益相关者以及他们的想法和兴趣。这个阶段有一些步骤,在现实生活中有很多利益相关者,如评估团队、架构师和开发人员,这些步骤更加明智。在这个项目中,应尽可能地尝试表示这个过程的不同部分。
第8步——分析架构方法
这是“测试”阶段的最后一步。在这一步中,我们分析上一步中高优先级的质量属性。我们找到了处理这些质量属性的架构设计方案,并检查相应的架构设计方案是否可支持满足这些属性。这一步重复“调查和分析”阶段的第6步。唯一的区别在于,在步骤6中,高优先级质量属性来自效用树,而这一步需要考虑在头脑风暴投票中,高得票数的质量属性。一些在步骤6中被认为是高优先级的质量属性可能在头脑风暴的步骤中,仍被认为是高优先级的质量属性。同时,头脑风暴的过程也可能产生一些新的高优先级的质量属性。最后,分析架构设计方案中的风险、非风险、敏感点和权衡点。
从上一步的投票表中,高质量的质量属性是功能性、可靠性、可修改性、安全性、性能和可变性。由于其中一些质量属性已经在步骤6中讨论过,所以这里只关注新出现的属于安全和性能质量属性的情况。在这一步中,仅根据这两种情况分析两种体系结构。 这一步分为四个主要阶段:
- 调查架构方法。
- 创建分析问题。
- 分析问题的答案。
- 找出风险、非风险、敏感点和权衡点。
1)调查架构方法
(1)安全性。此属性验证系统是否有能力限制未经授权的访问,以及体系结构是否提供任何数据机密性。 (2)性能。该属性使我们能够了解系统的响应性。性能因素通常表示为每单位时间的交易次数或执行一次交易所花费的时间。
2)创建分析问题
以下是利益相关方收集的分析问题清单,并基于高投票数的情景。
①系统是否允许未经授权的访问?(安全)
②架构是否描绘数据机密性?(安全)
③架构是否以最快的速度处理任何任务?(性能)
3)分析问题的答案
4)找出风险、非风险、敏感点和权衡点。
阶段4——报告ATAM
这是ATAM评估的最后阶段,其中提供了评估期间收集的所有信息。ATAM团队将他们的发现呈现给利益相关者。
ATAM团队的主要发现通常包括:
- 一种效用树;
- 一组生成的场景;
- 一组分析问题;
- 一套确定的风险和非风险;
- 确定的架构方法。 报告中包含的所有内容在前述的8个步骤中已经进行了介绍。